From: yves@mars.dgrc.doc.ca (Yves Jolly)
Newsgroups: comp.dsp
Subject: Re: DSP project: spectrum reversal
Date: 26 Jan 93 14:50:37 GMT
Reply-To: yves@mars.dgrc.doc.ca
Organization: Communication Research Centre

In article 1k28e0INNddk@fido.asd.sgi.com, gints@prophet.esd.sgi.com (Gints Klimanis) writes:
> In article <1k25kgINNb73@geraldo.cc.utexas.edu>,
> ccdo017@bongo.cc.utexas.edu (David Kirk) writes:
> |> I am beginning a DSP project and need some assistance as to which
> |> direction I should head.
> |> 
> |> The project entails taking the frequency response of any signal
> |> after
> |> it has passed through a simple filter (ie RC filter) and producing a
> |> new signal which has its response reversed:
> |> 
> |> |				|
> |> |------------  			|          ----------
> |> |            \	       ----->   |         /		
> |> |	      \			|        /
> |> |	       \		|       /
> |> |___________________ f          |_____________________  f
> |> 
> |> I know that taking the FFT will give the spectrum, but it would
> |> be different for different signals. The only constant is the
> |> (analog)
> |> filters response. My design should be able to take any signal of any
> |> spectral make-up.
> |> 
> 
> Hi !
> 
> I am only guessing what you want to do.  If you change the sign of every
> other sample of your signal, you will mirror the frequency response
> around Fs/4 (process also termed spectral inversion: swapping the highs
> with the lows).  If you want to mirror the frequency response of, for
> example an FIR filter, change the sign of every other sample in the
> filter impulse response (be sure not to flip the central sample. 
> Otherwise you will invert the signal).  This is a simple way to convert
> a low pass FIR to a high pass FIR with the frequency response mirrored
> around Fs/4.
> 
> Changing the sign of every sample is the operation of multiplying the
> signal by a full amplitude sinusoid at f=fs/2.  This process amplitude
> modulates the signal out of band such that it aliases perfectly into the
> base band.

Congratulations !  This is one of the simplest solution I have ever seen to
a DSP problem.  Since we know that a reverse image of the spectrum "hides" in
the negative (-fs/2 -> 0 Hz) frequencies, let's just use modulation to shift
this image in the positive (0 -> fs/2 Hz) spectrum.  One can also generalize
this for a complex input signal, by using a complex (quadrature) modulator.
That's a DSP project that won't take too much time....

David, if you insist on using FFTs to do that, be aware that the more one plays
around with the result of an FFT, the more trouble one has in reconstructing
the signal after (using IFFTs).  In your case, the changes would be pretty
drastic and I don't think you would get a high quality signal out of it.  In
any case, you can try it, but I would recommend you use lots of windowing
(100 % raised-cosine (Hanning)) and 100 % overlap to try to minimize the
effects of block discontinuities.  I'd go for the other solution.

Good luck.

---
Yves Jolly		Email:	yves@mars.dgrc.doc.ca
Communications Research Centre, Dept. of Communications
P.O. Box 11490, Stn. H, Ottawa, Ont., CANADA  K2H 8S2
Phone: (613) 998-2780		Fax: (613) 990-7987
Xref: sparky comp.dsp:3111 comp.speech:493