Hi

I'm busy designing a decimation filter which takes 8 bits from a

excessively oversampled ADC and decimates the signal. I need a FIR

filter to have an increased resolution. For example 8 bits into the

filter but I need 13 bits out.

If anyone could tell me how to make design that filter in matlab it

would be of great help.

Thank you.

# FIR filter design

Started by ●September 13, 2007

Reply by ●September 14, 20072007-09-14

Hi,

I am working in the same topic, I hope if I can be helpful. Would you send me more detailed data and then I can send you a complete design flow. The type of data I need are;

Primary data:

------------------

Sampling frequency

Oversampling ratio

Signal frequency

Secondary data:

---------------------

Passband ripples and cutoff band suppression

Transition band width ((fc-fp)/fc, where fc = cutoff band frequency and fp = passband frequency)

Number of decimation stages

Decimation factor for each single decimation stage

Allowed IBN penalty

In the following there is an simple DESIGN EXAMPLE for single stage decimation.

Design parameters:

*******************

Fs: Sampling frequency

Fp: Passband frequency

Fc: Cutoff band frequency

Rp: Passband ripples

Rc: Cutoff band suppression

OSR: Oversampling ratio

SDM_Data: Sigma-Delta Modulator output

Matlab Commands for Single Stage Decimation:

***************************************

[n fo ao w] = remezord([Fp Fc], [1 0], [Rp Rc], Fs);

b = remez(n fo ao w);

filtered_data = filter(b, [1], SDM_Data);

decimator_output = downsample(filtered_data, OSR)

The recommended plot for analyzing your results is to use the PSD plot for decimator input and output.

Concerning the input and output resolution of the decimator, after you finish the decimator design you have to quantize the filter coefficients and then convert them to a any binary arithmetic representation, i.e. like fixed point , CSD, SPT, ... etc. After this step you will get the filter coefficient bit width which is very helpful to estimate your output bit width. Regarding this you have to expect the output bit width from the SDM data, i.e. output resolution = max(SNR)/5.

Feel free if you has further questions.

Best regards.

Yours,

Ahmed.

----- Original Message ----

From: marinus.yates

To: m...

Sent: Thursday, September 13, 2007 8:25:28 PM

Subject: [matlab] FIR filter design

Hi

I'm busy designing a decimation filter which takes 8 bits from a

excessively oversampled ADC and decimates the signal. I need a FIR

filter to have an increased resolution. For example 8 bits into the

filter but I need 13 bits out.

If anyone could tell me how to make design that filter in matlab it

would be of great help.

Thank you.

I am working in the same topic, I hope if I can be helpful. Would you send me more detailed data and then I can send you a complete design flow. The type of data I need are;

Primary data:

------------------

Sampling frequency

Oversampling ratio

Signal frequency

Secondary data:

---------------------

Passband ripples and cutoff band suppression

Transition band width ((fc-fp)/fc, where fc = cutoff band frequency and fp = passband frequency)

Number of decimation stages

Decimation factor for each single decimation stage

Allowed IBN penalty

In the following there is an simple DESIGN EXAMPLE for single stage decimation.

Design parameters:

*******************

Fs: Sampling frequency

Fp: Passband frequency

Fc: Cutoff band frequency

Rp: Passband ripples

Rc: Cutoff band suppression

OSR: Oversampling ratio

SDM_Data: Sigma-Delta Modulator output

Matlab Commands for Single Stage Decimation:

***************************************

[n fo ao w] = remezord([Fp Fc], [1 0], [Rp Rc], Fs);

b = remez(n fo ao w);

filtered_data = filter(b, [1], SDM_Data);

decimator_output = downsample(filtered_data, OSR)

The recommended plot for analyzing your results is to use the PSD plot for decimator input and output.

Concerning the input and output resolution of the decimator, after you finish the decimator design you have to quantize the filter coefficients and then convert them to a any binary arithmetic representation, i.e. like fixed point , CSD, SPT, ... etc. After this step you will get the filter coefficient bit width which is very helpful to estimate your output bit width. Regarding this you have to expect the output bit width from the SDM data, i.e. output resolution = max(SNR)/5.

Feel free if you has further questions.

Best regards.

Yours,

Ahmed.

----- Original Message ----

From: marinus.yates

To: m...

Sent: Thursday, September 13, 2007 8:25:28 PM

Subject: [matlab] FIR filter design

Hi

I'm busy designing a decimation filter which takes 8 bits from a

excessively oversampled ADC and decimates the signal. I need a FIR

filter to have an increased resolution. For example 8 bits into the

filter but I need 13 bits out.

If anyone could tell me how to make design that filter in matlab it

would be of great help.

Thank you.