Page 1 of 1

DSP Filter Analyser?

Posted: Tue Oct 28, 2014 2:21 am
by sa-penguin
What I'm hoping for is: input to channel 1, signal is viewed via Oscilloscope OR Spectrum Analyser. Signal is then passed through a DSP filter: FIR, IIR, CIC, possibly even Hilbert Transformer.
The output is stored in the buffer normally used for channel 2, and is again viewable on scope / SpecAn.
Other options include: sending the filtered signal back out via DAC, saving to RAM, etc.

While there are several online DSP filter designers, like there are very few that let you see the effect of modifying a filter value.
What I want is a series of boxes, where I put in the filter parameters... and the effect on the filter performance is immediately visible. For those learning DSP, immediate feedback can be extremely helpful.

One aspect of this looks troublesome. DSP filters multiply input terms by the filter parameters, then sum these.
When there are many parameters (or stages) FPGA designed use optimisation tricks. These methods may not be suitable where any filter value can be changed "on the fly".

For those who have made FPGA DSP filters: is such a design even possible?

Re: DSP Filter Analyser?

Posted: Wed Nov 19, 2014 10:25 am
by Nils Roos
The optimisations that are performed on the logic will not optimize away steps from a sequence of calculations. The most that can happen is that some steps are condensed into a suitable DSP block, but all the arithmetic, parameters and input values will still be there.
So what you are proposing seems possible, and very interesting. With my superficial knowledge of digital filters, I certainly would be glad to have such a tool, where the effect of filter coefficients can be experienced hands-on.

Re: DSP Filter Analyser?

Posted: Thu Nov 20, 2014 1:34 am
by BrandonKinman
Have you ever used GNU Radio? It's a pretty awesome tool. There is a graphical utility that comes with it called gnuradio-companion which allows you to drag-and-drop blocks into a signal flow graph in much the same way you would do in LabView or Simulink. It has blocks for viewing signals in the time/frequency domains. Additionally there are a plethora of blocks for filtering signals. Filter coefficients and parameters can easily be controlled via GUI slider widgets and text fields.

It's not too terribly difficult to send a continuous stream of samples for the RP to GNURadio. You may have to do a little bit of C programming though.