Hi Experts, I am newbie to DSP. If I have a filter which is sum of some other filters of same signal source x(n), for example: y1(n) = a1*y1(n-1)+b1*x(n); y2(n) = a2*y2(n-1)+b2*x(n); y3(n) = a1*y3(n-1)+b3*x(n); y4(n) = y1(n)+y2(n)+y3(n); What is overall structure of y4(n) then? can any one help me with this. Many thanks. Datu
Adding IIR filter together
Started by ●November 23, 2007
Reply by ●November 24, 20072007-11-24
On 24 Nov, 04:52, "datu" <daturas...@gmail.com> wrote:> Hi Experts, > > I am newbie to DSP. If I have a filter which is sum of some other filters > of same signal source x(n), for example: > > y1(n) = a1*y1(n-1)+b1*x(n); > y2(n) = a2*y2(n-1)+b2*x(n); > y3(n) = a1*y3(n-1)+b3*x(n); > > y4(n) = y1(n)+y2(n)+y3(n); > > What is overall structure of y4(n) then? can any one help me with this.Try to draw a block diagram fro this filter. Maybe you can see the overall structure in the drawing. Rune
Reply by ●November 24, 20072007-11-24
>> >> y4(n) = y1(n)+y2(n)+y3(n); >> >> What is overall structure of y4(n) then? can any one help me withthis.> >Try to draw a block diagram fro this filter. Maybe you can see the >overall structure in the drawing. > >RuneThanks Rune, I can draw the block diagram, But I want some overall format only with y4(n) and x(n)? Can I use z-transform to do Y4(z) = Y1(Z)+Y2(Z)+Y3(Z); Then transform this back to y4(n)?
Reply by ●November 24, 20072007-11-24
On 24 Nov, 08:20, "datu" <daturas...@gmail.com> wrote:> >> y4(n) = y1(n)+y2(n)+y3(n); > > >> What is overall structure of y4(n) then? can any one help me with > this. > > >Try to draw a block diagram fro this filter. Maybe you can see the > >overall structure in the drawing. > > >Rune > > Thanks Rune, I can draw the block diagram, But I want some overall format > only with y4(n) and x(n)? > > Can I use z-transform to do > > Y4(z) = Y1(Z)+Y2(Z)+Y3(Z); > > Then transform this back to y4(n)?Yes. The Z transform is what is known as a "linear transform". The term "linear" means that ZT{a(n)+b(n)} = ZT{a(n)} + ZT{b(n)}. Rune
Reply by ●November 24, 20072007-11-24
>> Y4(z) = Y1(Z)+Y2(Z)+Y3(Z); >> >> Then transform this back to y4(n)? > >Yes. The Z transform is what is known as a "linear transform". >The term "linear" means that > >ZT{a(n)+b(n)} = ZT{a(n)} + ZT{b(n)}. > >Runethanks Rune, since we can do that I can get final y(n) format. Why some implementations use the y1(n) y2(n)... and then y(n) = y1(n)+y2(n)... format? for example this pink filter: http://www.musicdsp.org/showone.php?id=76 use "a weighted sum of first order filters". Is there any advantages to do so or some design approaches lead to this? Many thanks
Reply by ●November 24, 20072007-11-24
On 24 Nov, 16:20, "datu" <daturas...@gmail.com> wrote:> >> Y4(z) = Y1(Z)+Y2(Z)+Y3(Z); > > >> Then transform this back to y4(n)? > > >Yes. The Z transform is what is known as a "linear transform". > >The term "linear" means that > > >ZT{a(n)+b(n)} = ZT{a(n)} + ZT{b(n)}. > > >Rune > > thanks Rune, since we can do that I can get final y(n) format. Why some > implementations use the y1(n) y2(n)... and then y(n) = y1(n)+y2(n)... > format? > for example this pink filter:http://www.musicdsp.org/showone.php?id=76 > use "a weighted sum of first order filters". Is there any advantages to do > so or some design approaches lead to this?I don't know. I can guess that one advantage with parallel form filters in audio applications is that the gain of each filter can be easily be scaled independently of the others. That way one can implement some sort of bass and treble controls. Rune
Reply by ●November 24, 20072007-11-24
On 24 Nov., 04:52, "datu" <daturas...@gmail.com> wrote:> Hi Experts, > > I am newbie to DSP. If I have a filter which is sum of some other filters > of same signal source x(n), for example: > > y1(n) = a1*y1(n-1)+b1*x(n); > y2(n) = a2*y2(n-1)+b2*x(n); > y3(n) = a1*y3(n-1)+b3*x(n); > > y4(n) = y1(n)+y2(n)+y3(n); > > What is overall structure of y4(n) then? can any one help me with this.It's a parallel connection of three first-order lowpass filters (provided the a_k are positive). You can easily calculate the resulting transfer function: http://groups.google.com/group/comp.dsp/browse_frm/thread/cc743c73701025fe/f465eacd6979d25a?#f465eacd6979d25a Regards, Andor
Reply by ●November 25, 20072007-11-25
On Nov 24, 4:25 pm, Andor <andor.bari...@gmail.com> wrote:> On 24 Nov., 04:52, "datu" <daturas...@gmail.com> wrote: > > > If I have a filter which is sum of some other filters > > of same signal source x(n), for example: > > > y1(n) = a1*y1(n-1)+b1*x(n); > > y2(n) = a2*y2(n-1)+b2*x(n); > > y3(n) = a1*y3(n-1)+b3*x(n);i think you mean "a3" here, right datu? also, just a form, so we know what are continuous functions and what are discrete sequences, might i suggest using brackets [] for discrete-time indices? it's not a C thing (even though C uses brackets for discrete indices), it's a notational convention that i think is used reasonably often in DSP texts now. y1[n] = a1*y1[n-1] + b1*x[n] y2[n] = a2*y2[n-1] + b2*x[n] y3[n] = a3*y3[n-1] + b3*x[n] y4[n] = y1[n] + y2[n] + y3[n] Y4(z) = Y1(z) + Y2(z) + Y3(z) = ( H1(z) + H2(z) + H3(z) )*X(z)> > What is overall structure of y4(n) then? can any one help me with this.H4(z) = H1(z) + H2(z) + H3(z) where H_k(z) = b_k/( 1 - a_k*z^(-1) ) k=1,2,3 so stick it together. if you want a convolution for y4[n] in the time domain, the ensemble impulse response is the sum of the 3 impulse response and those are exponential functions for n>=0. r b-j
Reply by ●November 25, 20072007-11-25
robert bristow-johnson wrote: (Someone wrote)> y1[n] = a1*y1[n-1] + b1*x[n] > y2[n] = a2*y2[n-1] + b2*x[n] > y3[n] = a3*y3[n-1] + b3*x[n]> y4[n] = y1[n] + y2[n] + y3[n]> Y4(z) = Y1(z) + Y2(z) + Y3(z) > = ( H1(z) + H2(z) + H3(z) )*X(z)It seems to me, though, that the result won't be any easier to compute, most likely harder. I have somewhere a Motorola application note on building a digital graphic equalizer with the 56001. (I believe it is available on the web.) I am pretty sure it adds up the result of all the filters. -- glen
Reply by ●November 25, 20072007-11-25
>On Nov 24, 4:25 pm, Andor <andor.bari...@gmail.com> wrote: >> On 24 Nov., 04:52, "datu" <daturas...@gmail.com> wrote: >> >> > If I have a filter which is sum of some other filters >> > of same signal source x(n), for example: >> >> > y1(n) = a1*y1(n-1)+b1*x(n); >> > y2(n) = a2*y2(n-1)+b2*x(n); >> > y3(n) = a1*y3(n-1)+b3*x(n); > >i think you mean "a3" here, right datu? also, just a form, so we know >what are continuous functions and what are discrete sequences, might i >suggest using brackets [] for discrete-time indices? it's not a C >thing (even though C uses brackets for discrete indices), it's a >notational convention that i think is used reasonably often in DSP >texts now. > > y1[n] = a1*y1[n-1] + b1*x[n] > y2[n] = a2*y2[n-1] + b2*x[n] > y3[n] = a3*y3[n-1] + b3*x[n] > > > y4[n] = y1[n] + y2[n] + y3[n] > > Y4(z) = Y1(z) + Y2(z) + Y3(z) > = ( H1(z) + H2(z) + H3(z) )*X(z) > >> > What is overall structure of y4(n) then? can any one help me withthis.> > H4(z) = H1(z) + H2(z) + H3(z) > >where > > H_k(z) = b_k/( 1 - a_k*z^(-1) ) k=1,2,3 > >so stick it together. if you want a convolution for y4[n] in the time >domain, the ensemble impulse response is the sum of the 3 impulse >response and those are exponential functions for n>=0. >Hi robert, thank you let me know this convention. I manually calculated this the numerator of H4(Z)= (-b1*a2*a3-b2*a1*a3-b3*a1*a2)*z^-2+(b1*a3+b1*a2+b2*a3+b2*a1+b3*a2+b3*a1)*z-1-b1-b2-b3 and the denominator of of H4(Z) = -1+a1*a2*a3*z^-3+((-a2-a1)*a3-a1*a2)*z^-2+(a3+a2+a1)*z-1 So this is third order IIR filter! WHY people design three first-order filters and parallel connect them, why not directly design this third order filter? Rune replied earlier that this might because easy adjust individual parameters. Is there any literature for this?






