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
Coefficients of cascaded FIR filters using matlab
Started by ●March 3, 2006
Reply by ●March 3, 20062006-03-03
"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. > > Billyhttp://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
Reply by ●March 3, 20062006-03-03
>Hello all, > >I have two filters, which are the cfir and pfir in the DDC. Now I wantto>implement the filter in GC5016 (DDC chip) and need to cascade (orcombine)>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
Reply by ●March 17, 20062006-03-17
>>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 theconvolution>>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 ordersand>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 of137>orders. Does anyone know why there is difference between these 2methods.>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)