Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
11 years ago

DC in the CIC-FIR filter result

Hi All,

I have attached a figure showing my filter issue. Please subtract 28 MHz from the x axis values (it was a typo). It is apparent that there is a strong DC peak in the plot. My question is how to reduce the DC to the noise level?

This fft result is generated by the following process:

Input signal: 28.05 MHz (generated from signal generator)

Input sample rate: 160 MHz

Output sample rate: 250 KHz

NCO frequency: 28 MHz

CIC decimation rate: 160

Fir decimation rate: 4

Cutoff frequency (fir filter): 100 KHz

The design is doing digital down-conversion for the input signal with total decimation rate 640. First, the mixer generates the baseband I and Q signals, input signal multiplied with cos and (-sin) from NCO. Then the cic filter does decimation by 160 for both baseband I and Q signals. The results of cic filter are sent to the fir filter to perform the cic compensation and decimation by 4. The plot shows the result of fft of (y = I + Q*j). The peak at 50KHz is correct (28.05 MHz on the plot) but the peak on 0 Hz (28MHz) is wrong.

Many Thanks,

Lee

14 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    That is what you should get by design. you are moving input tone at 20.05MHz using nco at 20MHz so you should expect output to be at 50KHz. This is not dc per se but your design target.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi Kaz,

    I got two major peaks in the 16 bit baseband signal. The main peak is 82 dB at 50 KHz and the second peak is 1 dB of DC whereas the noise level is around -100 dB. This 1dB DC is not acceptable. Once I extended the baseband signal to 32 bits, the DC reduced to -71 dB where as the 50KHz still still the same 82 dB. This reduced DC is what I want. I just have no idea why extending the baseband bit width reducing the DC level. I copied this technique from a project without knowing what is the theory behind it.

    Lee
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    such tiny dc spike is likely due to truncation. do rounding instead of direct truncation. Normal rounding will do. alternatively do dc non-biased rounding.