From: jungledmnc on 6 Aug 2010 17:33 Hi, I want to create a frequency shifter for audio. First I need to get an analytical signal via a hilbert transformer. I started by checking out how long the Hilbert FIR would be. Unfortunately I ended with 20ms, which seems to be related to -3dB at 50Hz (1/0.02). Isn't there another way to do that? I mean 20ms is a relatively long delay for realtime processing and also 800 taps would need relatively lots of CPU power. Thanks.
From: Vladimir Vassilevsky on 6 Aug 2010 18:01 jungledmnc wrote: > Hi, > I want to create a frequency shifter for audio. First I need to get an > analytical signal via a hilbert transformer. I started by checking out how > long the Hilbert FIR would be. Unfortunately I ended with 20ms, which seems > to be related to -3dB at 50Hz (1/0.02). Isn't there another way to do that? > I mean 20ms is a relatively long delay for realtime processing and also 800 > taps would need relatively lots of CPU power. Don't use Hilbert FIR. Use IIR allpass filter. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
From: jungledmnc on 6 Aug 2010 18:24 Thanks. Could you please point me to some keywords to search for?
From: Tim Wescott on 6 Aug 2010 18:32 On 08/06/2010 03:24 PM, jungledmnc wrote: > Thanks. Could you please point me to some keywords to search for? "Allpass filter" is a good start. You have two options: an allpass network that gives a pretty good approximation to 90 degrees phase shift in the frequency range of interest, or a pair of allpass networks that have about 90 degrees phase shift between the two channels. Check back here if those keywords don't help. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html
From: jungledmnc on 6 Aug 2010 20:53 Thanks Tim. I was checking about the solution with 2 allpass networks. What I don't understand is why do I have to use networks? I tried just for curiosity to use 2 biquad allpasses, found some points where they were around 90 degrees to each other, but the differences were quite big. Is that why we have to use multiple sections? And how should I compute the coefficients? I read this text: http://www.katjaas.nl/hilbert/hilbert.html There were also "polyphase IIRs" mentioned. I quite don't understand how they should work. First why is there some 1 sample delay on the second channel? And again, how could I get the coefficients? There are some raw numbers, but now explanation how to find them out.
|
Next
|
Last
Pages: 1 2 3 4 5 6 Prev: Tools to create ADSP Windows application SW? Next: A question for Gordon Sande |