Hello, I have implemented polyphase SRC code for ratio of 3/2 (8KHz<=>12KHz). I am using 396 tap filter, which gives 1584000 [ = (24000(Fs)*396)/(3*2)] MAC operations per second (MPS). Now I want to reduce the computations by making use of IFIR method. But I find that the implementation becomes too complicated to be put in a formula that can be implemented on Matlab. Can you please give your feedbacks/suggestions on this? Thank you very much. Govind This message was sent using the Comp.DSP web interface on www.DSPRelated.com

# Problem with IFIR in SRC

Started by ●October 17, 2005

Reply by ●October 17, 20052005-10-17

in article 2smdnfa8foZzoc7eRVn-tA@giganews.com, Govind at govind_s@conceptemsys.com wrote on 10/17/2005 01:55:> I have implemented polyphase SRC code for ratio of 3/2 (8KHz<=>12KHz).which way is it? 8 ==> 12 kHz or 8 <== 12 kHz ? and by 8 and 12 kHz, i presume you mean the sampling rate, correct?> I am using 396 tap filter, which gives 1584000 > [ = (24000(Fs)*396)/(3*2)] MAC operations per second (MPS).where does the "24000" come from? surely that isn't 24000 *times* Fs, is it?> Now I want to reduce the computations by making use of IFIR method.what, the heack, is that??? the "IFIR" method?> But I find that the implementation becomes too complicated > to be put in a formula that can be implemented on Matlab. > Can you please give your feedbacks/suggestions on this?if you are up sampling from 8 to 12 kHz and your FIR filter has 396 taps per phase (or is it a total of 396 taps, making it 139 taps per phase, can you clear that up?) your MACS per second will be 12000 * 396 (or 12000*139 if that's the correct number of taps per polyphase). no way to beat that. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."

Reply by ●October 18, 20052005-10-18

And why so many taps? Surely 50 or 60 would be enough. What are your design specs? In article <BF794CD1.B440%rbj@audioimagination.com>, robert bristow-johnson <rbj@audioimagination.com> wrote:>in article 2smdnfa8foZzoc7eRVn-tA@giganews.com, Govind at >govind_s@conceptemsys.com wrote on 10/17/2005 01:55: > >> I have implemented polyphase SRC code for ratio of 3/2 (8KHz<=>12KHz). > >which way is it? 8 ==> 12 kHz or 8 <== 12 kHz ? and by 8 and 12 kHz, i >presume you mean the sampling rate, correct? > >> I am using 396 tap filter, which gives 1584000 >> [ = (24000(Fs)*396)/(3*2)] MAC operations per second (MPS). > >where does the "24000" come from? surely that isn't 24000 *times* Fs, is >it? > >> Now I want to reduce the computations by making use of IFIR method. > >what, the heack, is that??? the "IFIR" method? > >> But I find that the implementation becomes too complicated >> to be put in a formula that can be implemented on Matlab. >> Can you please give your feedbacks/suggestions on this? > >if you are up sampling from 8 to 12 kHz and your FIR filter has 396 taps per >phase (or is it a total of 396 taps, making it 139 taps per phase, can you >clear that up?) your MACS per second will be 12000 * 396 (or 12000*139 if >that's the correct number of taps per polyphase). no way to beat that. >

Reply by ●October 18, 20052005-10-18

"robert bristow-johnson" <rbj@audioimagination.com> wrote in message news:BF794CD1.B440%rbj@audioimagination.com...> > what, the heack, is that??? the "IFIR" method? >Interpolated FIR = IFIR .... Google is your friend :-) Ummmmm..... Matlab "help ifir"?????? Fred

Reply by ●October 18, 20052005-10-18

Apologies for vague presentation of the problem. Since I am not an expert in the development field, it's possible that I am using wrong terminologies. I want to convert sampling rate from 8KHz to 12KHz and vice versa. I have used 'Efficient structure for Fractional Decimation (and Interpolation)' introduced in P. P. Vaidyanathan (page 129). The book mentions that each stage works at a common sampling frequency, which in my case is 8K * 3 = 24KHz for fractional interpolation and 12K * 2 = 24K for fractional decimation. Let's consider the fractional interpolation. Input sampling frequency Fsi is 8KHz and the required output sampling frequency Fso is 12KHz. With the fractional interpolation of ratio 3/2, the input Fs would be upsampled to Fsmid (8K*3=)24KHz and then downsampled to Fso (8K*3/2=)12KHz. With 396 tap (396 total taps and 139 per phase for upsampler) filter and non-polyphase implementation MACs per sample would be 396. But with 'Efficient structure for Fractional Decimation (and Interpolation)' MACs are reduced to (396/3)/2=66 per output sample. And MPS (MACs per second) is 66*24000 = 1584000. (I have verified this by using a counter in the filter loop of matlab code with input file of duration 1 second). I am using the same filter (396 total taps and 198 per phase for downsampler) for fractional decimation, in which case fractional ratio is 2/3, Fsi = 12KHz, Fsmid = 24Khz and Fso = 8KHz. I hope that the above paragraphs helps you understand what I have done so far. I want to use the Interpolated FIR approach (P.P. Vaidyanathan, page:134) to reduce the computations further. I need to have at least 60 dB attenuation in the stop band and ripple of not more than 1 dB in the passband. Following remez design specification was used for the FIR filter. [n,fo,mo,w] = remezord( [3800 3999], [1 0], [0.001 0.001], 24000); Thanks n regards, Govind> >"robert bristow-johnson" <rbj@audioimagination.com> wrote in message >news:BF794CD1.B440%rbj@audioimagination.com... >> >> what, the heack, is that??? the "IFIR" method? >> > >Interpolated FIR = IFIR .... Google is your friend :-) > >Ummmmm..... Matlab "help ifir"?????? > >Fred > > > > > >This message was sent using the Comp.DSP web interface on www.DSPRelated.com