From 39038a006e2b73ef53a462b8ca74d9cc4584e4a0 Mon Sep 17 00:00:00 2001 From: Oscar Gustafsson <oscar.gustafsson@gmail.com> Date: Tue, 16 May 2023 08:37:24 +0200 Subject: [PATCH] Update example --- examples/thirdorderblwdf.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/examples/thirdorderblwdf.py b/examples/thirdorderblwdf.py index 117041fc..df19a1ed 100644 --- a/examples/thirdorderblwdf.py +++ b/examples/thirdorderblwdf.py @@ -5,9 +5,13 @@ Third-order Bireciprocal LWDF Small bireciprocal lattice wave digital filter. """ +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 @@ -21,19 +25,28 @@ a = s.output(0) + D0 out0 = Output(a, "y") sfg = SFG(inputs=[in0], outputs=[out0], name="Third-order BLWDF") +# %% +# The SFG looks like +sfg -# Set latencies and exection times +# %% +# Set latencies and execution 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]) +# %% +# Simulate +sim = Simulation(sfg, [Impulse()]) sim.run_for(1000) -import numpy as np -from mplsignal.freq_plots import freqz_fir +# %% +# Display output freqz_fir(np.array(sim.results['0']) / 2) +# %% +# Create and display schedule schedule = Schedule(sfg, cyclic=True) +schedule.show() -- GitLab