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
Reply by Fred Marshall●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 John Herman●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 robert bristow-johnson●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 Govind●October 17, 20052005-10-17
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