DSPRelated.com
Forums

Coefficients of cascaded FIR filters using matlab

Started by billykao March 3, 2006
Hello all,

I have two filters, which are the cfir and pfir in the DDC. Now I want to
implement the filter in GC5016 (DDC chip) and need to cascade (or combine)
them into one FIR filter. I have trouble to get the coefficients using
matlab. Theoretically, I know the final coefficients are the convolution
of numerators of two filters.  In matlab, I used
fir=mfilt.cascade(cfir,pfir) to see the overall frequency response and
failed to use fir.numerator to have the coefficients. Do you have any
suggestion to the question? Thanks.

Billy



"billykao" <billy.kao@gmail.com> wrote in message 
news:7eednXsEru5e45XZnZ2dnUVZ_sadnZ2d@giganews.com...
> Hello all, > > I have two filters, which are the cfir and pfir in the DDC. Now I want to > implement the filter in GC5016 (DDC chip) and need to cascade (or combine) > them into one FIR filter. I have trouble to get the coefficients using > matlab. Theoretically, I know the final coefficients are the convolution > of numerators of two filters. In matlab, I used > fir=mfilt.cascade(cfir,pfir) to see the overall frequency response and > failed to use fir.numerator to have the coefficients. Do you have any > suggestion to the question? Thanks. > > Billy
http://www.accelchip.com/newsletter/2005-09/multirate-filter-systems-in-fpgas.html If it's just two filters in cascade then convolve them as you said. But, isn't there a decimation in between? You have to deal with that somehow. Fred
>Hello all, > >I have two filters, which are the cfir and pfir in the DDC. Now I want
to
>implement the filter in GC5016 (DDC chip) and need to cascade (or
combine)
>them into one FIR filter. I have trouble to get the coefficients using >matlab. Theoretically, I know the final coefficients are the convolution >of numerators of two filters. In matlab, I used >fir=mfilt.cascade(cfir,pfir) to see the overall frequency response and >failed to use fir.numerator to have the coefficients. Do you have any >suggestion to the question? Thanks. > >Billy > > > >
I tried to use the convolution in time domain. My cfir is of 60 orders and pfir is of 17 orders. The convolution result is of 78 taps, which is reasonable. But using mfilt.cascade function, I found the result is of 137 orders. Does anyone know why there is difference between these 2 methods. Thanks. Billy
>>Hello all, >> >>I have two filters, which are the cfir and pfir in the DDC. Now I want >to >>implement the filter in GC5016 (DDC chip) and need to cascade (or >combine) >>them into one FIR filter. I have trouble to get the coefficients using >>matlab. Theoretically, I know the final coefficients are the
convolution
>>of numerators of two filters. In matlab, I used >>fir=mfilt.cascade(cfir,pfir) to see the overall frequency response and >>failed to use fir.numerator to have the coefficients. Do you have any >>suggestion to the question? Thanks. >> >>Billy >> >> >> >> > >I tried to use the convolution in time domain. My cfir is of 60 orders
and
>pfir is of 17 orders. The convolution result is of 78 taps, which is >reasonable. But using mfilt.cascade function, I found the result is of
137
>orders. Does anyone know why there is difference between these 2
methods.
>Thanks. > >Billy >
Yes, Fred, in this article, mfilt.cascade is use to cascade 2 multirate filters. But the coefficients are still separated in 2 sections. I also found that FDAtool create 137 taps by using 17 + 60 * 2. Now I am thinking how matlab expand 60 into 120 taps. (The decimation factors of my cfir and pfir are 2,2)