DSPRelated.com
Forums

Spectrum shift near zero frequency

Started by Vladimir Vassilevsky October 31, 2010
There is a real signal sampled in the time domain. I need to take a 
frequency band of this signal near zero frequency, and shift this band 
to some other frequency. The band width is small compared to Nyquist, 
but large compared to the lowest frequency of interest. The procedure 
should keep the output images and input aliases suppressed by at least 
40dB; the input and output sample rates are the same.

I thought of the different options; all of them seem to require either 
very sharp filters, or Hilbert Transformer operating near zero, or a 
large FFT. Although filters or hilberts could be implemented using FRM, 
that is still neither elegant nor very efficient. Is there a secret 
trick of how to deal with the near zero frequency bandpass signals?

VLV

Vladimir Vassilevsky  <nospam@nowhere.com> wrote:

>There is a real signal sampled in the time domain. I need to take a >frequency band of this signal near zero frequency, and shift this band >to some other frequency. The band width is small compared to Nyquist, >but large compared to the lowest frequency of interest. The procedure >should keep the output images and input aliases suppressed by at least >40dB; the input and output sample rates are the same.
>I thought of the different options; all of them seem to require either >very sharp filters, or Hilbert Transformer operating near zero, or a >large FFT. Although filters or hilberts could be implemented using FRM, >that is still neither elegant nor very efficient. Is there a secret >trick of how to deal with the near zero frequency bandpass signals?
I have sometimes faced this same problem. I have thought of the following solution but have not put it into practice so I can't confirm that it works: Let's say the sample rate is Fs, and the singal of interest is centered around F, 0 < F << Fs. Upsample to N*Fs (say, N = 4, filling in with zeros), and you should see an image of the signal of interest around 2*Fs - F, which you can then filter out with a reasonable bandpass filter. You can then process/decimate/flip/etc. this signal. Steve
Vladimir Vassilevsky <nospam@nowhere.com> wrote:
 
> There is a real signal sampled in the time domain. I need to take a > frequency band of this signal near zero frequency, and shift this band > to some other frequency. The band width is small compared to Nyquist, > but large compared to the lowest frequency of interest. The procedure > should keep the output images and input aliases suppressed by at least > 40dB; the input and output sample rates are the same.
As I read this, I was thinking about analog processing, where I believe it is done by mixing to some (much) higher frequency filtering, and then mixing down again. As one example, cable TV block converters which convert the whole cable band to some other band. It isn't obvious to me now whether something like that can or can't be done digitally. -- glen
> >There is a real signal sampled in the time domain. I need to take a >frequency band of this signal near zero frequency, and shift this band >to some other frequency. The band width is small compared to Nyquist, >but large compared to the lowest frequency of interest. The procedure >should keep the output images and input aliases suppressed by at least >40dB; the input and output sample rates are the same. > >I thought of the different options; all of them seem to require either >very sharp filters, or Hilbert Transformer operating near zero, or a >large FFT. Although filters or hilberts could be implemented using FRM, >that is still neither elegant nor very efficient. Is there a secret >trick of how to deal with the near zero frequency bandpass signals?
Maybe I'm missing something, but isn't a simple multi-rate processing going to cut it? Downsample; shape up the spectrum; upsample and frequency shift. Steve

steveu wrote:
>>There is a real signal sampled in the time domain. I need to take a >>frequency band of this signal near zero frequency, and shift this band >>to some other frequency. The band width is small compared to Nyquist, >>but large compared to the lowest frequency of interest. The procedure >>should keep the output images and input aliases suppressed by at least >>40dB; the input and output sample rates are the same. >> >>I thought of the different options; all of them seem to require either >>very sharp filters, or Hilbert Transformer operating near zero, or a >>large FFT. Although filters or hilberts could be implemented using FRM, >>that is still neither elegant nor very efficient. Is there a secret >>trick of how to deal with the near zero frequency bandpass signals? > > > Maybe I'm missing something, but isn't a simple multi-rate processing going > to cut it? Downsample; shape up the spectrum; upsample and frequency > shift.
FRM is the way to do multirate processing without changing the sample rate. But you still have to do very sharp filters. VLV

Steve Pope wrote:

> Vladimir Vassilevsky <nospam@nowhere.com> wrote: > > >>There is a real signal sampled in the time domain. I need to take a >>frequency band of this signal near zero frequency, and shift this band >>to some other frequency. The band width is small compared to Nyquist, >>but large compared to the lowest frequency of interest. The procedure >>should keep the output images and input aliases suppressed by at least >>40dB; the input and output sample rates are the same. > > >>I thought of the different options; all of them seem to require either >>very sharp filters, or Hilbert Transformer operating near zero, or a >>large FFT. Although filters or hilberts could be implemented using FRM, >>that is still neither elegant nor very efficient. Is there a secret >>trick of how to deal with the near zero frequency bandpass signals? > > > I have sometimes faced this same problem. I have thought of the following > solution but have not put it into practice so I can't confirm that it works: > > Let's say the sample rate is Fs, and the singal of interest is centered > around F, 0 < F << Fs. Upsample to N*Fs (say, N = 4, filling in with > zeros), and you should see an image of the signal of interest around > 2*Fs - F, which you can then filter out with a reasonable bandpass filter. > You can then process/decimate/flip/etc. this signal.
Upsampling will produce positive and negative images around n x Fs. Those images are separated by 2 x lowest frequency of the signal. Quite difficult to filter out the right image. I downshift the original spectrum (centered around W) to zero frequency by multiplication by exp(iWt), then lowpass to get I and Q. With I and Q, everything else is simple. But, still the lowpassing has to suppress the images which are separated by 2 x lowest frequency, which is not very trivial as the signal bandwidth >> lowest frequency. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
> > Steve
On Oct 30, 9:58&#4294967295;pm, Vladimir Vassilevsky <nos...@nowhere.com> wrote:
> There is a real signal sampled in the time domain. I need to take a > frequency band of this signal near zero frequency, and shift this band > to some other frequency. The band width is small compared to Nyquist, > but large compared to the lowest frequency of interest. The procedure > should keep the output images and input aliases suppressed by at least > 40dB; the input and output sample rates are the same. > > I thought of the different options; all of them seem to require either > very sharp filters, or Hilbert Transformer operating near zero, or a > large FFT. Although filters or hilberts could be implemented using FRM, > that is still neither elegant nor very efficient. Is there a secret > trick of how to deal with the near zero frequency bandpass signals?
Isn't this identical to the requirement for a complex domain filter with a transition band much narrower than the pass band? In this case the transition band is from -Fmin to Fmin, and the pass band is from Fmin to Fmax. In general, very narrow transitions require wide filters. How many ways do they do this for SSB modulation? -- rhn A.T nicholson d.0.t C-o-M

Ron N. wrote:

> On Oct 30, 9:58 pm, Vladimir Vassilevsky <nos...@nowhere.com> wrote: > >>There is a real signal sampled in the time domain. I need to take a >>frequency band of this signal near zero frequency, and shift this band >>to some other frequency. The band width is small compared to Nyquist, >>but large compared to the lowest frequency of interest. The procedure >>should keep the output images and input aliases suppressed by at least >>40dB; the input and output sample rates are the same. >> >>I thought of the different options; all of them seem to require either >>very sharp filters, or Hilbert Transformer operating near zero, or a >>large FFT. Although filters or hilberts could be implemented using FRM, >>that is still neither elegant nor very efficient. Is there a secret >>trick of how to deal with the near zero frequency bandpass signals? > > > Isn't this identical to the requirement for a complex domain > filter with a transition band much narrower than the pass band?
This is what I am afraid of. Because if it is so, then there is no silver bullet but perhaps to split the passband by some kind of filtebank.
> In this case the transition band is from -Fmin to Fmin, and > the pass band is from Fmin to Fmax. In general, very narrow > transitions require wide filters. > > How many ways do they do this for SSB modulation?
They have plenty of the different named methods for analog SSB; however those methods are doing basically the same thing. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
On Oct 31, 9:36&#4294967295;am, Vladimir Vassilevsky <nos...@nowhere.com> wrote:
> steveu wrote: > >>There is a real signal sampled in the time domain. I need to take a > >>frequency band of this signal near zero frequency, and shift this band > >>to some other frequency. The band width is small compared to Nyquist, > >>but large compared to the lowest frequency of interest. The procedure > >>should keep the output images and input aliases suppressed by at least > >>40dB; the input and output sample rates are the same. > > >>I thought of the different options; all of them seem to require either > >>very sharp filters, or Hilbert Transformer operating near zero, or a > >>large FFT. Although filters or hilberts could be implemented using FRM, > >>that is still neither elegant nor very efficient. Is there a secret > >>trick of how to deal with the near zero frequency bandpass signals? > > > Maybe I'm missing something, but isn't a simple multi-rate processing going > > to cut it? Downsample; shape up the spectrum; upsample and frequency > > shift. > > FRM is the way to do multirate processing without changing the sample > rate. But you still have to do very sharp filters.
what's "FRM", Vlad? in the past i did a frequency shifter using a hilbert transformer that was decimated by a factor of 4. since the original hilbert transformer was designed with half-band symmetry, every even indexed tap was zero. but after stretching it out by 4, it was 7 out of 8 taps were zero and could be efficiently skipped. this made the transition band around DC 4 times steeper which was important to me. the downside was that frequencies above 6 kHz (the sampling rate was 48 kHz) but below 12 kHz were shifted in the opposite direction. between 12 and 18 they were shifted in the correct direction (or the same as the lowest baseband, if you call that "correct") and between 18 and 24, again in the wrong direction. i just put on a sloppy 6 kHz LPF, which was good enough for the guitar processor this was s'posed to be. r b-j

robert bristow-johnson wrote:
> On Oct 31, 9:36 am, Vladimir Vassilevsky <nos...@nowhere.com> wrote: > >>steveu wrote: >> >>>>There is a real signal sampled in the time domain. I need to take a >>>>frequency band of this signal near zero frequency, and shift this band >>>>to some other frequency. The band width is small compared to Nyquist, >>>>but large compared to the lowest frequency of interest. The procedure >>>>should keep the output images and input aliases suppressed by at least >>>>40dB; the input and output sample rates are the same. >> >>>>I thought of the different options; all of them seem to require either >>>>very sharp filters, or Hilbert Transformer operating near zero, or a >>>>large FFT. Although filters or hilberts could be implemented using FRM, >>>>that is still neither elegant nor very efficient. Is there a secret >>>>trick of how to deal with the near zero frequency bandpass signals? >> >>>Maybe I'm missing something, but isn't a simple multi-rate processing going >>>to cut it? Downsample; shape up the spectrum; upsample and frequency >>>shift. >> >>FRM is the way to do multirate processing without changing the sample >>rate. But you still have to do very sharp filters. > > > what's "FRM", Vlad?
Frequency Response Masking. A combination of a sparse FIR and some other filter to attenuate the unwanted images.
> in the past i did a frequency shifter using a hilbert transformer that > was decimated by a factor of 4. since the original hilbert > transformer was designed with half-band symmetry, every even indexed > tap was zero. but after stretching it out by 4, it was 7 out of 8 > taps were zero and could be efficiently skipped. this made the > transition band around DC 4 times steeper which was important to me. > the downside was that frequencies above 6 kHz (the sampling rate was > 48 kHz) but below 12 kHz were shifted in the opposite direction. > between 12 and 18 they were shifted in the correct direction (or the > same as the lowest baseband, if you call that "correct") and between > 18 and 24, again in the wrong direction. i just put on a sloppy 6 kHz > LPF, which was good enough for the guitar processor this was s'posed > to be.
Thank you for the good advice; that approach offers higher numeric savings then I thought. VLV