.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/thirdorderblwdf.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_thirdorderblwdf.py: ============================= Third-order Bireciprocal LWDF ============================= Small bireciprocal lattice wave digital filter. .. GENERATED FROM PYTHON SOURCE LINES 8-29 .. code-block:: Python import numpy as np from mplsignal.freq_plots import freqz_fir from b_asic.core_operations import Addition, SymmetricTwoportAdaptor from b_asic.schedule import Schedule from b_asic.signal_flow_graph import SFG from b_asic.signal_generator import Impulse from b_asic.simulation import Simulation from b_asic.special_operations import Delay, Input, Output 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") .. GENERATED FROM PYTHON SOURCE LINES 30-31 The SFG looks like .. GENERATED FROM PYTHON SOURCE LINES 31-33 .. code-block:: Python sfg .. raw:: html
%3 in0 x (in0) in0.0 in0->in0.0 t0 t0 in0.0->t0 sym2p0 sym2p0 in0.0->sym2p0 0 add0 add0 t0->add0 1 sym2p0->add0 0 0 t2 t2 sym2p0->t2 1 out0 y (out0) add0->out0 t1 t1 t1->sym2p0 1 t2->t1


.. GENERATED FROM PYTHON SOURCE LINES 34-35 Set latencies and execution times .. GENERATED FROM PYTHON SOURCE LINES 35-40 .. code-block:: Python sfg.set_latency_of_type(SymmetricTwoportAdaptor, 4) sfg.set_latency_of_type(Addition, 1) sfg.set_execution_time_of_type(SymmetricTwoportAdaptor, 1) sfg.set_execution_time_of_type(Addition, 1) .. GENERATED FROM PYTHON SOURCE LINES 41-42 Simulate .. GENERATED FROM PYTHON SOURCE LINES 42-46 .. code-block:: Python sim = Simulation(sfg, [Impulse()]) sim.run_for(1000) .. rst-class:: sphx-glr-script-out .. code-block:: none [0.0] .. GENERATED FROM PYTHON SOURCE LINES 47-48 Display output .. GENERATED FROM PYTHON SOURCE LINES 48-50 .. code-block:: Python freqz_fir(np.array(sim.results['0']) / 2) .. image-sg:: /examples/images/sphx_glr_thirdorderblwdf_001.png :alt: thirdorderblwdf :srcset: /examples/images/sphx_glr_thirdorderblwdf_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none
.. GENERATED FROM PYTHON SOURCE LINES 51-52 Create and display schedule .. GENERATED FROM PYTHON SOURCE LINES 52-54 .. code-block:: Python schedule = Schedule(sfg, cyclic=True) schedule.show() .. image-sg:: /examples/images/sphx_glr_thirdorderblwdf_002.png :alt: thirdorderblwdf :srcset: /examples/images/sphx_glr_thirdorderblwdf_002.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 1.225 seconds) .. _sphx_glr_download_examples_thirdorderblwdf.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: thirdorderblwdf.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: thirdorderblwdf.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: thirdorderblwdf.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_