FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
Announcements

## Filtering Problems

Honored Contributor II
1,274 Views

I've a sort of digital white noise (I mean I expect that my data in of the filter is completely random) generated at a Fs= 10Mhz.

For simplicity imagine a signal whose spectrum is flat with an amplitude of 1.

Call that xn.

Imagine that I wanna filter it with a rectangular window (-6Mhz,+6MHz). Call that hn.

Cause 6MHz > 5MHz (Nyquist), I oversampled the xn of a factor 2.

So I do zero padding and filter it.

Cause my signal is digital what I expect is that when I do zero padding I change the Fs to 2Fs (20Mhz). For this reason now I can do my previous filtering.

I expect to have in out a signal yn that has a rectangular shaping spectrom centered at 0Hz and large 12Mhz (from -6Mhz to +6Mhz).

Moreover I've replication of this specter at each multiple frequency of 20Mhz.

Is all true or I miss something?

Thanks
4 Replies
Honored Contributor II
351 Views

Although your question is more of a filter theory question rather than an Altera Question, it still sounds interesting. Perhaps someone could help more easily with some clarification. You said you have digital data at a rate of 10 MHz, but then said you were going to oversample it, implying a Nyquist rate. I normally apply oversampling of a signal to a situation where I am sampling an analog signal to a digital signal. Oversampling a 10 MHz based signal would put the resulting digital data stream at a frequency of at least 20 MS/S. Could you restate your data input details?

Honored Contributor II
351 Views

Imagine to have a analogue signal that can be seen as white noise (I mean a sort of flat spectrum in all frequencies) and to sample it at a Fs=10Mhz.

You know that when you sample an analogue signal to "transform" it in a digital one, you've spectral replicates at k*Fs (where k= 0,+-1,+-2,..)

After that you have some digital sample at Fs rate.

When you oversampling it you do 2 things:

2) filtering

When you zero padding the initial signal, the thing that changes is that between the initial samples you put (N-1) zeroes. This increase the "spectral resolution" of the signal without changing anything else.1

Consequence of it is that your Fs(final) increase to N*Fs(start).

At this point you filter this resulting signal in order to keep it in the bandwith you need and "kill" the spectral replicates at Fs(start) among the true one at Fs(final).

Hope this help someone else.

For do an example let Fs(start) = 10 MHz

This mean that you've the replication of your base spectrum at 0MHz, 10MHz, 20MHz, 30MHz, 40MHz, and so on

Now let N = 2.

So we insert between each original sample a 0.

In frequencies we also have our Fs(Final)= 2*10Mhz = 20Mhz.

If we've sampled the initial signal at Fs=20Mhz we expect the spectral replication af 0MHz, 20Mhz, 40Mhz, 60Mhz, and so on.

So we need to filter the replication at 10MHz, 30Mhz, 50Mhz, etc..

And that's what we do.

Try to make a picture of it is very simpler than writing it.
Honored Contributor II
351 Views

I'm glad you figured it out so quickly :D . You are doing a technique I don't use, but remember mention of in my trusty old ref. book. Your phrasology is a little different than what I am used to, which reference book are you are using that you would recommend?

Honored Contributor II
351 Views

For reference book I find that Richard G. Lyons "Understanding Digital Signal Processing" is a very nice book (also because it use math only when is needed but try to make you understand what it's going on).

If you're interested in a more mathematical view the best book is alwasy the usual "Digital Signal Processing" by John G. Proakis and Dimitris K Manolakis.

I find Lyons book very well written and full of examples that can clarify the things.