Electronic – Dedicated digital filter

digital filterdspfilterlow pass

I have built a DDS (0-80MHz) with an FPGA (XC3S400) that I can program it for making almost any wave form (limited frequency by the wave form complexity). After weeks of struggling with making a suitable low pass filter for it, I realized that it is almost impractical to build a near perfect analog filter that can remove all high frequency images (Nyquist) + all low frequency aliases (photos of the results here; hindrances made by low frequency aliases in DDS, figure-1 here).

Now I want to turn into a low pass (or preferably tunable band pass) digital filter but I really have not time for learning DSP from the scratch. I searched some major companies (Analog Devices, Texas Instruments,…) for a dedicated digital filter product but my search always redirects to DSP products.

I want to know if there are dedicated digital filters with a simple interface (for example, frequency selection by a micro-controller interface or something?). For example, sending the desired filter behavior via a serial/parallel word to the device and it works with that.

Edition:

I realized from the answer below that I can use the current FPGA for my purpose. I tried 2 approaches: 1- DDS > DAC > ADC > FIR (FPGA ) > DAC. this makes again aliases related to the DAC. 2- DDS > FIR ( no external ADC ) > DAC. This is not bad but the problem with aliases remains to some extend. I am looking for a good resource / method of thinking for this problem ( the easiest perhaps ! )

Best Answer

Such products definitely exist, but it will be difficult for you to find a product which will fit into your project requirements precisely. For an audio frequency digital filters you can check out QuickFilterTech. For higher radio frequencies (>1GHz) Hittite comes to mind.

However, if you need to operate in the smaller 10s of MHz range, you will probably have to do what most people do: get yourself a smallish DSP or FPGA and use vendor supplied tools to generate a filter firmware (all major vendors have those; parametric design with GUI wizards and pictures supported).

In fact, the best (and most often used) contemporary approach for a single chip embedded design may be just this: FPGA implementing both the MCU and digital filter in the same firmware.

Update

Just noticed that you've already got a Spartan FPGA in your project. You can use Xilinx FIR compiler to generate a fixed filter out of the box (and use frequency shifter to do the tuning) or you can research some of the approaches for tunable filter implementation in the FPGA (some are not very difficult, plenty of publications around).