discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] FPGA Filter Implementation


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] FPGA Filter Implementation
Date: Fri, 7 Jan 2005 22:58:09 -0800
User-agent: Mutt/1.5.6i

On Sat, Jan 08, 2005 at 04:46:26AM +0000, Dan Gisselquist wrote:
> Eric,
> 
> In the September, 2004, Linux Journal article you mentioned a technique  
> by Van Bose for applying a downconverter/filter/decimation operation  
> without ever calling a sine or cosine trig function.
> 
> (For those of you who missed the article, the sine and cosine were  
> coupled into the filter definition itself.  Two filters were applied to  
> a real data stream, one producing the real part and the other the  
> imaginary part of a complex sample.  Following the filters, the  
> computer needed only multiply the output by a complex exponential-- 
> requiring only one exponential library call in the whole process.  --  
> See the Vanu Bose article at http://tns-www.lcs.mit.edu/~vanu/JSAC98.ps  
> for a description of the technique.)
> 
> I'm curious to know if you are using this type of filter within the  
> FPGA code?

We're not using it in the FPGA.

The technique as implemented has poor numerical stability, and needs
help to keep the magnitude of the phase vector from trending to zero.
We do use it in the gr_freq_xlating_fir_filter code (See
gr_rotator.h).  The fix for the magnitude problem could probably be
sped up a bunch.  The recently added table lookup sine/cosine might be
faster than the complex magnitude and division.

The CORDIC implementation is perfectly suited for the FPGA.  It can be
completely pipelined and requires no multipliers, just add/sub and
hardwired shifts.

Eric




reply via email to

[Prev in Thread] Current Thread [Next in Thread]