DSPRelated.com
Forums

Help: Digital Up Convert(DUC) in FPGA.

Started by huhu October 14, 2006
Hi,
I am trying to implement a Nicam modulator in a fpga.
The Nicam modulation is a digital sound modulation of analog TV, and
use DQPSK.

I have some problem when implement the digital up converter(DUC) in
fpga.

The DUC comprise the cascade of pulse filter, CIC compensation filter
CIC filter, and then multiply with carrier generated by a NCO.
The interpolator of the pulse filter and cic compensation filter is 2.
The data sample rate input to the cascade filters is 364K.
The sample rate of carrier generated by NCO is 24.576M.

My question is:
How to match the sample rate of the cascade filters and NCO?
How to chose the interpolator of the CIC filter?

Thanks.

huhu wrote:
> Hi, > I am trying to implement a Nicam modulator in a fpga. > The Nicam modulation is a digital sound modulation of analog TV, and > use DQPSK. > > I have some problem when implement the digital up converter(DUC) in > fpga. > > The DUC comprise the cascade of pulse filter, CIC compensation filter > CIC filter, and then multiply with carrier generated by a NCO. > The interpolator of the pulse filter and cic compensation filter is 2. > The data sample rate input to the cascade filters is 364K. > The sample rate of carrier generated by NCO is 24.576M. > > My question is: > How to match the sample rate of the cascade filters and NCO? > How to chose the interpolator of the CIC filter? > > Thanks. >
It would be much easier if your NCO sample rate was an integer multiple of your input sample rate. If that were the case, then you just set the CIC interpolation ratio to multiply the data rate out of the interpolating FIR filters. Since it is not, it is probably easiest to use a resampler near the input to convert the input sample rate to an intermediate rate that is an integer submultiple of your NCO sample rate and then proceed with the filters you've proposed. The resampling is easier at the lower data rate, which is why I suggested putting it first. You'll need to either find a ratio of relatively small integers for the resample and use a polyphase resampler, or use one of the interpolating techniques such as a Farrow resampler for the resampling.
Hi Ray Andraka,
Thank you very much for your help!
It help me a lot!

Ray Andraka wrote:
> huhu wrote:
> > > > > It would be much easier if your NCO sample rate was an integer multiple > of your input sample rate. If that were the case, then you just set the > CIC interpolation ratio to multiply the data rate out of the > interpolating FIR filters. > > Since it is not, it is probably easiest to use a resampler near the > input to convert the input sample rate to an intermediate rate that is > an integer submultiple of your NCO sample rate and then proceed with the > filters you've proposed. The resampling is easier at the lower data > rate, which is why I suggested putting it first. You'll need to either > find a ratio of relatively small integers for the resample and use a > polyphase resampler, or use one of the interpolating techniques such as > a Farrow resampler for the resampling.