I have an application for which I need to generate a "broadened sine wave". An example of such a waveform would be the reflection of a wave from a rotating cylinder. Reflection of a sine wave, frequency F from the center of that cylinder would be reflected
back at frequency F. Reflection from the side of the cylinder approaching me would be reflected back at a frequency F+D, where D is the doppler shifted signal from some part of the approaching surface. The value of D would depend on exactly where the flection
took place. Similarly, on the other side of the cylinder which was moving away from me, the reflection would be at F-D. The amplitude of the received reflected signal from the sides of the cylinder would be also be lower than that from the center. If you look
at the FFT of the received reflection, it's not a single frequency, but broadened peak. That's what I want to simulate. and create a .wav file from. The exact profile of the broadening isn't important at this point, just a technique to do it! Gaussian would
be fine to start with.
I can generate a sine wave and save to a .wav file. That's easy. But how do I broaden it? I suppose I could sum a bunch of sine waves of very similar frequencies and different amplitudes but that seems like a slow, clumsy and laborious way to do it. But maybe
not. There may be something very clever that could be done by taking the FFT of the original sine wave, doing some manipulation with it and then doing in IFFT, but the math of that is beyond me. There's might be some other trick or set of functions in Octave
that is obvious to those skilled in signal processing, but which escapes me.
Any clue in which direction to look would be much appreciated.
Bob
|