On Sep 16, 2010, at 1:55 PM, Alan Bloom wrote:

> I think there are some free filter design programs on the web that can design 
> an all-pass network.  It may need to be a big filter (i.e. lots of 
> coefficients) to get good amplitude and phase accuracy over a 10:1 frequency 
> range (300 Hz to 3 kHz).

All-pass 90 degree networks (Hilbert Transforms) are really not that tough to 
implement anymore with the speed of today's computers.  

Just a couple of weeks ago, I did an implementation of cocoaPath's Hilbert 
transformer using Grand Central Dispatch to see how many cores I can use up 
concurrently.  I ended up with a Hilbert transformer for 3 kHz passband (100 Hz 
to 3.1 kHz) with 16000 samples/second that ran at 300x real time on an 8 core 
Intel processor.   Source code is free if anyone is interested.

Unlike the good old analog days (you can find an analog design in Paul W1HFA's 
"Art of Electronics" book) you can get much more accurate quadratures using 
digital Hilbert transforms. The one is cocoaPath is good to 2.5 milli-degrees 
(yes, 2.5 thousandths of a degree deviation) over a span of 3 kHz.  You can see 
the plots of the phase accuracy in Figures 3-2 and 3-3 here

http://homepage.mac.com/chen/w7ay/cocoaPath/Contents/technical.html

They are not a very long FIRs either -- two 511 tap filters, one to create the 
in-phase signal and one to create the quadrature signal.

If the passband that you need is much narrower than the sampling rate, it is 
probably cheaper to just remodulate using sine/cosine "local oscillators" 
followed by low pass decimation filters (like what the SoftRock analog hardware 
does, but more accurately in the digital world :-).

73
Chen, W7AY

______________________________________________________________
Elecraft mailing list
Home: http://mailman.qth.net/mailman/listinfo/elecraft
Help: http://mailman.qth.net/mmfaq.htm
Post: mailto:Elecraft@mailman.qth.net

This list hosted by: http://www.qsl.net
Please help support this email list: http://www.qsl.net/donate.html

Reply via email to