[hpsdr] FIR filtering and HPSDR

Phil Harman phil at pharman.org
Tue Sep 2 19:07:37 PDT 2014


Hi Erik,

I use Matlab to do the FIR simulation and designs for the FPGA code.

The current DSP path on receive is  CICs followed by cascaded Polyphase
FIRs, one decimating by 2 and the other by 4.

The design parameters are as follows:

For decimate by 2 - 512 tap, 0.01dB ripple, 110dB ultimate rejection.
For decimate by 4 - 1024 tap, 0.01dB ripple, 110dB ultimate rejection.

You will find the filter coefficients in the *.mif files under \<project
name>\Source\Polyphase under SVN.

If you would like the coefficients as a straight coefficient file rather
than in Polyphase format then please drop me an email.

See also fir2r2.v and fir4r4.v for a description as to how the filters are
implemented. In order to meet the timing at the highest sampling rate the
first filter is actually two filters (odd and even coefficients) operating
in parallel.

The very low ripple is a requirement of PureSignal.

73 Phil...VK6PH






> ***** High Performance Software Defined Radio Discussion List *****
>
> Hi Erik,
>
>
> Each filter is usually custom-designed for a specific purpose, so it's
> hard
> to just grab some filter - likely you won't
> find it interesting. Instead if you want to experiment with FIR filters,
> one possibility is to find a filter design program
> that will let you experiment with the taps and response. I use gnuradio
> filter designer, which is bundled with gnuradio,
> so it's the best possible price.
>
> A google search on 'FIR filter design software free' yields a lot of hits.
> Use one to design a small filter, then code
> it and see how it works.
>
> The large matched filter is a correlator. The taps are simply the
> time-reversed value of the expected sequence, so
> computing the taps is trivial. A very large number of taps can give a lot
> of correlation gain.
>
>
>
> Here's a filter: when sample rate = 48 ksps, the passband ends at 3 KHz,
> the stopband starts at 8 KHz, and the stopband
> attenuation is 35 dB. It has 15 taps, and a gain of 2.
>
> taps = [0.0035640986170619726, 0.012058229185640812, 0.038125719875097275,
> 0.08916111290454865, 0.16120941936969757, 0.2382189929485321,
> 0.29765212535858154, 0.3200206458568573, 0.29765212535858154,
> 0.2382189929485321, 0.16120941936969757, 0.08916111290454865,
> 0.038125719875097275, 0.012058229185640812, 0.0035640986170619726]
>
>
> -- Tom, N5EG
> _______________________________________________
> HPSDR Discussion List
> To post msg: hpsdr at openhpsdr.org
> Subscription help:
> http://lists.openhpsdr.org/listinfo.cgi/hpsdr-openhpsdr.org
> HPSDR web page: http://openhpsdr.org
> Archives: http://lists.openhpsdr.org/pipermail/hpsdr-openhpsdr.org/



 1409710057.0


More information about the Hpsdr mailing list