Oscillator and audio harmonic filtering...

Jun 29, 2006 13 Replies

Greetings. I'm currently working on a project that requires recording multiple audible frequencies to the same audio file. Basically I'm recording the tone and monitoring the freq spectrum for freq changes over a long period of time. I'm using a 555 to produce the tone, since its frequency changes as the condition of what I'm monitoring changes. My issue is, when I view the spectrum, I end up w/ all of the harmonics. I am wanting to remove these harmonics so I can use that bandwidth for other tones simultaneously. Therefore I'd be able to monitor several sensors at once... each sensor consisting of the same 555 circuit of course. I realize I could use a notch filter on every oscillator, but I'm wanting to see if there is a different way of filtering the harmonics, or even a way to produce the tones w/out even creating the harmonics. I was considering using an electret mic element coupled w/ a transducer assuming that the harmonics wouldn't be broadcasted to the mic. But I don't know if this will work.



Any thoughts? Any help would be appreciated.



Thanks as always J.Shrum snipped-for-privacy@gmail.com


Better to use a sinewave generating IC. Intersil 8038 as I recall; maybe some others available today.

Luhan

You dont need a notch filter just a low pass RC filter. If you can ensure you have a square wave output the even harmonics are supressed anyway.

Google on "Wien Bridge Oscillator". Built right one of those would have very low harmonics so you could really pack the tones in, and a diode-stabilized version, while not having the very lowest harmonics, would be smaller than the harmonic filter you'd need to put after a 555.

Tim Wescott Wescott Design Services http://www.wescottdesign.com Posting from Google? See http://cfaj.freeshell.org/google/ "Applied Control Theory for Embedded Systems" came out in April. See details at http://www.wescottdesign.com/actfes/actfes.html

You either need to generate a sine wave to start with or use the output of your square wave oscillator and filter it right at the source. Either with LC or with an active filter around opamps. I don't think a microphone/speaker combo will cut it, plus it would likely consume more space than a real filter and pick up surrounding audio noises.

Regards, Joerg http://www.analogconsultants.com

Using square waves for that is one of the best ways to make your life harder unnecessarily. I would use sine waves generated and added digitally (with an MCU or a DSP). You said "audible" frequencies, so you should be able to also include some noise shaping, in case you need higher resolution. You may not even need a DAC. Just a PWM output and an external filter could work.

However, I think the whole strategy is bad. If the only information that your tones carry is their frequency, why don't you just store, for each tone, a value that is proportional to its frequency? Your file will be much smaller.

What do your sensors provide? A variable voltage? A wave with variable frequency? In the first case, you should digitize the voltage and store it. In the second case, you should measure the frequency (easy with an MCU) and store that measurement. Forget about storing the whole wave.

Best,

Hello Tim,

Such as this one here:

formatting link

Regards, Joerg http://www.analogconsultants.com

Take a look on XR2206 , generate a sinewave with low distortion.

Eduardo.

J.Shrum wrote:

Why not periodically sample the signals and perform an FFT on the samples? You could then just store the single number (for each "track") that represents the frequency of the fundamental.

With a square wave, the first harmonic is the third. Depending on the magnitude of the expected frequency deviation, you might be able to put the frequencies of several sensors in the space before the third harmonic of the lowest frequency one.

-- john

Excellent advice everyone. I'm going to carefully review all of the suggestions and decide what is most feasible.

To describe my exact useage: I am using thermistors to vary the tone freq of the 555. I then record that over a period of hours. Then I can go back and view the spectral readout of the wav/mp3, and look for any temperature dips, and spikes. So far its worked very well, ... just gotta get rid of the harmonics so I could monitor more locations w/ the use of the same recorder.

If you go to: http://www.linear.com/designtools/index.jsp and download their free simulator into C:\\Program Files\\LTC\\SWCADIII, you\'ll find that there\'s a phase shift oscillator at \\examples\\educational\\phaseshift.asc which, if you watch out for the supply voltage variations and the temperature excursions the circuit will be subjected to, might be perfect for your needs. Substitute your thermistor for R5, and if it\'s not nominally 10k, punt.

Greg, If I understand you correctly, are you suggesting use a circuit to alternate between each sensor and record a 1-2 second bit of each one? I assume if that was done, I would be able to identify the current sample, because it would be the current lowest frequency in that particular time space. Did I understand this right?

Well, that should work. But the main point I was making was that if you perform on-the-fly FFT's on the samples that you gather from the sensors, you don't have to record all of the sound samples but only the single number that represents the fundamental frequency for each sampling period. You then have many choices of how to arrange the numbers in your data file, including timestamped records or even as a serial stream if, as you say, the individual sensor's range of frequencies do not overlap each other.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required