diff --git a/examples/thirdorderblwdf.py b/examples/thirdorderblwdf.py
new file mode 100644
index 0000000000000000000000000000000000000000..e3bd53cff404dd0e3bf52a38d74fa09bcd22cc5f
--- /dev/null
+++ b/examples/thirdorderblwdf.py
@@ -0,0 +1,38 @@
+"""
+Small bireciprocal lattice wave digital filter.
+"""
+from b_asic.core_operations import Addition, SymmetricTwoportAdaptor
+from b_asic.special_operations import Delay, Input, Output
+from b_asic.signal_flow_graph import SFG
+from b_asic.simulation import Simulation
+from b_asic.schedule import Schedule
+
+in0 = Input("x")
+D0 = Delay(in0)
+D1 = Delay()
+D2 = Delay(D1)
+s = SymmetricTwoportAdaptor(-0.375, in0, D2)
+D1 << s.output(1)
+a = s.output(0) + D0
+out0 = Output(a, "y")
+
+sfg = SFG(inputs=[in0], outputs=[out0],
+          name="Third-order BLWDF")
+
+# Set latencies and exection times
+sfg.set_latency_of_type(SymmetricTwoportAdaptor.type_name(), 4)
+sfg.set_latency_of_type(Addition.type_name(), 1)
+sfg.set_execution_time_of_type(SymmetricTwoportAdaptor.type_name(), 1)
+sfg.set_execution_time_of_type(Addition.type_name(), 1)
+
+sim = Simulation(sfg, [lambda n: 0 if n else 1])
+sim.run_for(1000)
+
+import scipy.signal
+w, h = scipy.signal.freqz(sim.results['0'])
+
+import numpy as np
+import matplotlib.pyplot as plt
+plt.plot(w, 20*np.log10(np.abs(h)/2))
+
+schedule = Schedule(sfg, cyclic=False)