[sdiy] Frequency shifters, again

Czech Martin Martin.Czech at micronas.com
Mon Sep 29 15:57:50 CEST 2003


My approach was to hear an almost ideal FS.
Therefore I aggreed in having some delay
(due to computing time, get a faster computer,
and due to the enormous filter length of ~8000
about 60ms, can't change it).

I have no filter design software available,
so I used a Dolph-Chebycheff window which I
programed myself. The www is full on Dolph
information, the problem is that most of the math
that is displayed is WRONG. The same applies to some
old Fortran routines you can find. Basically one paper
got the math right.

If you are thinking about a realtime solution
you should consider the following:
-bandwidth of your input signal, I used 50Hz-22000Hz
 in order to get ideal, but for some signals you may
 save computing with lower bandwidth
-instead of FIR approach (be it LP or Hilbert)
 use steep IIR filters. A Cheby type II or a
 Cauer type should do the trick
-implementing the dome filter by bilinear transform
 will not work so good, because the basic concept
 behind that is that the filter curves be box shaped,
 i.e. flat. This works for a lp filter, but certainly
 not for the phase lag of an all pass.
 I guess designing the allpass chains in the z plane 
 would be better. In the digital domain you will
 be able to have a large number of pole/zero
 pairs, as long as real time computing allows.
 Also the parameter sensitivity problem does not
 exist (for floats).

m.c.

> -----Original Message-----
> From: Carles Vila [mailto:cvila at salleURL.edu]
> Sent: Montag, 29. September 2003 13:57
> To: Czech Martin
> Cc: synth-diy
> Subject: Re: [sdiy] Frequency shifters, again
> 
> 
> 
> El Lunes, 29 septiembre, 2003, a las 11:54 AM, Czech Martin escribió:
> 
> > btw., in my vacation I finished a first version of a 
> "digital" software
> > frequency shifter. (or , to be more exact: I completed a suite of 
> > little
> > number file (sequences) programs that can do most of the stuff
> > digital signal processing offers: generating waves, 
> filtering (FIR and 
> > IIR),
> > convolution, creating filters, doing fft, multiplying, upsampling,
> > downsampling, etc. , etc).
> >
> Wow, seems that frequency shifters are in fashion...
> Congratulations for your results, they seem interesting!
> I'm doing a project on a digital FS too using the Soundart Chameleon
> The main use should be for acoustic feedback suppression, but 
> it should
> be simple to expand for musical applications. I need a frequency 
> up-shift
> of about 3-7 Hz only.
> I'm basing on a quadrature processing (phase method as you describe 
> it). First I use a FIR Hilbert transformer (256 coefficients)
> for generating quadrature input signals. I delay the 
> unfiltered branch 
> by the group delay introduced by the filter to get them "in sync".
> Then I multiply the input branches with sin and cos carrier 
> signals and 
> do the final summing- substracting.
> The problem I have is rejection of the unwanted sideband which is a 
> poor -30 dB
> approximately. I still have to do some tests about the efficiency of 
> the Hilbert filter, as i suspect that the phase shift is not exactly 
> -90 deg. Oscilloscope in X/Y mode should show a perfect circle.
> With higher shifts my "direct" implementation would show aliasing. I 
> would place
> the multiplier between an oversampling and undersampling 
> block to avoid 
> this.
> 
> What SW do you use for Filter design? I use Matlab FDATool we 
> have here 
> in University.
> 
> 



More information about the Synth-diy mailing list