From 6698c9a9429b2e722ae4f4b88e249d0a5be523ce Mon Sep 17 00:00:00 2001 From: Simon Bjurek <simbj106@student.liu.se> Date: Tue, 28 Jan 2025 11:59:46 +0100 Subject: [PATCH] improved some of the styling --- b_asic/sfg_generators.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/b_asic/sfg_generators.py b/b_asic/sfg_generators.py index 910b3fd6..789cd161 100644 --- a/b_asic/sfg_generators.py +++ b/b_asic/sfg_generators.py @@ -264,6 +264,8 @@ def direct_form_1_iir( mult_properties: Optional[Union[Dict[str, int], Dict[str, Dict[str, int]]]] = None, add_properties: Optional[Union[Dict[str, int], Dict[str, Dict[str, int]]]] = None, ) -> SFG: + if len(a) != len(b): + raise ValueError("size of coefficient lists a and b are not the same") if name is None: name = "Direct-form I IIR filter" if mult_properties is None: @@ -271,10 +273,8 @@ def direct_form_1_iir( if add_properties is None: add_properties = {} - input_op = Input() - output = Output() - # construct the feed-forward part + input_op = Input() muls = [ConstantMultiplication(b[0], input_op, **mult_properties)] delays = [] prev_delay = input_op @@ -290,8 +290,8 @@ def direct_form_1_iir( # construct the feedback part tmp_add = Addition(op_a, None, **add_properties) - # muls = [ConstantMultiplication(a[0], tmp_add, **mult_properties)] muls = [] + output = Output() output <<= tmp_add delays = [] @@ -318,6 +318,8 @@ def direct_form_2_iir( mult_properties: Optional[Union[Dict[str, int], Dict[str, Dict[str, int]]]] = None, add_properties: Optional[Union[Dict[str, int], Dict[str, Dict[str, int]]]] = None, ) -> SFG: + if len(a) != len(b): + raise ValueError("size of coefficient lists a and b are not the same") if name is None: name = "Direct-form I IIR filter" if mult_properties is None: @@ -325,18 +327,12 @@ def direct_form_2_iir( if add_properties is None: add_properties = {} - input_op = Input() - + # construct the repeated part of the SFG left_adds = [] right_adds = [] left_muls = [] right_muls = [] delays = [Delay()] - - if len(a) != len(b): - raise ValueError("size of coefficient lists a and b are not the same") - - # all except the final op_a_left = None op_a_right = None for i in range(len(a) - 1): @@ -361,7 +357,8 @@ def direct_form_2_iir( op_a_left = left_muls[-1] op_a_right = right_muls[-1] - # finalize + # finalize the SFG + input_op = Input() if left_adds: left_adds.append(Addition(input_op, left_adds[-1], **add_properties)) else: @@ -369,7 +366,6 @@ def direct_form_2_iir( delays[-1] <<= left_adds[-1] mul = ConstantMultiplication(b[0], left_adds[-1], **mult_properties) add = Addition(mul, right_adds[-1], **add_properties) - output = Output() output <<= add return SFG([input_op], [output], name=Name(name)) -- GitLab