On 19/12/2018 6:34, robert.szymiec@gmail.com wrote:
> W dniu wtorek, 18 grudnia 2018 17:20:36 UTC+1 użytkownik Eduardo napisał:
>> On 18/12/2018 7:31, wrote:
>>
>>> dyn should be 0 at first sample i think
>>> c1,c2,c3 are coefficients
>>> t1,t2 and dyn are temporaries
>>
>> t1,t2 are temporary values for calculations.
>>
>> It's a 1st order filter
>>
>> The state variable is dyn
>> dyn = in + t1*c1 = in + (dyn-in*c1)*c1
>> --> dyn = dyn*c1 + in*(1-c1*c1)
>>
>>
>> out = t2 + in*c3 = t1*c2 + in*c3 = (dyn-in*c1)*c2 + in*c3
>> --> out = dyn*c2 + in*(c3-c1*c2)
>
> Thanks for reply
>
> Do you have some references about this type of filter (how this type of filter is described in literature ? ). I need to calculate coefficients c1,c2, c3 for high and low shelving filter from gain and cutoff frequency
>
> reagards,
> Robert
>
Writing terms of Z transform:
dyn = dyn*c1 + in*(1-c1*c1) ==> z DYN = DYN*c1 + IN*(1-c1*c1) ==> DYN
= IN*(1-c1^2)/(z-c1)
out = dyn*c2 + in*(c3-c1*c2) ==> OUT = DYN*c2 + IN*(c3-c1*c2) = IN*(
c2*(1-c1^2)/(z-c1) + (c3-c1*c2))
Applying the bilinear transformation z = (2+s T)/(2-s T) ; T:
sampling time
...algebra...and finally OUT(s) = (a + b*c*s)/(1+c*s) * IN(s)
a= c3+c2
b= c3-c2
c= (1+c1)/(1-c1) * T/2
(1-c1)/(1+c1) * 2/T = cutoff frequency (radians)
If
c2 = c3 ==> Lowpass filter
c2 = -c3 ==> Highpass filter
Warning: I not did any check :)
Regards.
Reply by ●December 19, 20182018-12-19
W dniu wtorek, 18 grudnia 2018 17:20:36 UTC+1 u=C5=BCytkownik Eduardo napis=
a=C5=82:
> On 18/12/2018 7:31, wrote:
>=20
> > dyn should be 0 at first sample i think
> > c1,c2,c3 are coefficients
> > t1,t2 and dyn are temporaries
>=20
> t1,t2 are temporary values for calculations.
>=20
> It's a 1st order filter
>=20
> The state variable is dyn
> dyn =3D in + t1*c1 =3D in + (dyn-in*c1)*c1
> --> dyn =3D dyn*c1 + in*(1-c1*c1)
>=20
>=20
> out =3D t2 + in*c3 =3D t1*c2 + in*c3 =3D (dyn-in*c1)*c2 + in*c3
> --> out =3D dyn*c2 + in*(c3-c1*c2)
Thanks for reply
Do you have some references about this type of filter (how this type of fil=
ter is described in literature ? ). I need to calculate coefficients c1,c2,=
c3 for high and low shelving filter from gain and cutoff frequency
reagards,
Robert
Reply by Eduardo●December 18, 20182018-12-18
On 18/12/2018 7:31, robert.szymiec@gmail.com wrote:
> dyn should be 0 at first sample i think
> c1,c2,c3 are coefficients
> t1,t2 and dyn are temporaries
t1,t2 are temporary values for calculations.
It's a 1st order filter
The state variable is dyn
dyn = in + t1*c1 = in + (dyn-in*c1)*c1
--> dyn = dyn*c1 + in*(1-c1*c1)
out = t2 + in*c3 = t1*c2 + in*c3 = (dyn-in*c1)*c2 + in*c3
--> out = dyn*c2 + in*(c3-c1*c2)
Reply by ●December 18, 20182018-12-18
Hi everyone,
I've got only formula for filter and seeking for how to calculate coefficients:
Do this code for every incoming sample in
t1 = dyn - in*c1
dyn = in + t1*c1
t2 = t1* c2
out = t2 + in* c3
dyn should be 0 at first sample i think
c1,c2,c3 are coefficients
t1,t2 and dyn are temporaries
This suppose to be shelving filter and parameters are gain and cutoff
From expansion to in-3 sample I've got:
t1 = in + (in-1 + (in-2 + ((in-3 + (dyn-4 - in-3*c1)*c1) - in-2*c1)*c1 -in-1*c1)*c1)
so this is some kind of exponential filter which I never saw because it includes old samples with increasing power of c1 coefficient
I also assume that filter type is FIR because it doesn't account for output samples
Appreciate any help !!!
reagards,
Robert