chantling
Newbie level 3
I'm trying to find the best (simplest/cheapest) solution to detect a specific audio frequency embedded within an audio file. Basically, I'm looking to make an Audiostrobe decoder, but one that I can control the outputs of for various experiments. Audiostrobe embeds a signal at 19200Hz into an audio file; the decoder detects this signal and activates an LED when the signal is present, using the amplitude of the signal to determine the brightness of the LED. The embedded signal is usually a sine wave oscillating between ~7-30Hz; the Audiostrobe glasses usually accompany auditory stimulation and are used for brainwave entrainment.
Several years ago I built a simple decoder and posted my results here on instructables. I've used these glasses for years with decent results. I'd like to experiment with magnetism, though, something similar to the Koren helmet, and I'd like to address one of the shortcomings of my design: I can't detect the amplitude of the Audiostrobe signal. Although my circuit does change in brightness to some extent with varying Audiostobe brightness levels (I can't figure out why, as the LM567 used seems to be a simple on/off switch), it's neither linear nor smooth. A sine wave test signal does not result in a smooth transition between on and off, and some of the studies I've read indicate that an accurate reproduction of amplitude is important, i.e. a triangle wave has a different effect on the brain than a square wave.
What I specifically need to do:
I've searched and searched online, but almost everything I find involves either audio spectrum analyzers (usually too large of a passband to be of use here) and guitar tuners (which don't usually distinguish between the target frequency and harmonics). I can't seem to come up with the right terms to search for.
It's probably fairly obvious, but I'm not well versed in electronics, and I know nothing about signal processing. I'm ready to do the research necessary to design the circuitry involved, but I'd like some suggestions as to which route I should be looking into before I waste days or weeks on a dead end. I originally planned to just use a microcontroller to analyze the signal; I figured surely an mc running at 20Mhz should be able to detect a 19.2khz frequency. But after finding this PIC-based frequency detector, with a top range of 2148 Hz, I see I was apparently mistaken. I thought about using an analog bandpass filter to only pass a narrow band around the target frequency and simply vary the output based on the total signal level within that band, but my requirements (very steep rolloff, narrow bandwidth) make that seem unlikely. Would digital filters do the trick? Any that aren't too pricey? Are there any specialty ICs that already do what I need but don't cost a fortune? I'm looking into Schmitt triggers, but from what I understand, they suffer from the same limitation as my circuit; either on or off.
A friend suggested that DSP is the best solution to my issue, but while I'm willing to learn what I need to get this going, DSP's seem like a significant investment of time and effort to learn to program for just this one project, not to mention a hefty cost when factoring in development tools. If it comes to that, I'll probably just stick with my existing circuit and live without the ability to alter output magnitude.
Several years ago I built a simple decoder and posted my results here on instructables. I've used these glasses for years with decent results. I'd like to experiment with magnetism, though, something similar to the Koren helmet, and I'd like to address one of the shortcomings of my design: I can't detect the amplitude of the Audiostrobe signal. Although my circuit does change in brightness to some extent with varying Audiostobe brightness levels (I can't figure out why, as the LM567 used seems to be a simple on/off switch), it's neither linear nor smooth. A sine wave test signal does not result in a smooth transition between on and off, and some of the studies I've read indicate that an accurate reproduction of amplitude is important, i.e. a triangle wave has a different effect on the brain than a square wave.
What I specifically need to do:
- Detect a specific (19200 Hz) frequency embedded within a noisy background
- Bandwidth is probably around 400 Hz. Shouldn't be too much audio up around this frequency, so if that's unrealistic, might be able to loosen that up a bit
- Determine the amplitude of the embedded signal so that I can vary the output accordingly. Was planning to use an ADC input of a microcontroller to do this
I've searched and searched online, but almost everything I find involves either audio spectrum analyzers (usually too large of a passband to be of use here) and guitar tuners (which don't usually distinguish between the target frequency and harmonics). I can't seem to come up with the right terms to search for.
It's probably fairly obvious, but I'm not well versed in electronics, and I know nothing about signal processing. I'm ready to do the research necessary to design the circuitry involved, but I'd like some suggestions as to which route I should be looking into before I waste days or weeks on a dead end. I originally planned to just use a microcontroller to analyze the signal; I figured surely an mc running at 20Mhz should be able to detect a 19.2khz frequency. But after finding this PIC-based frequency detector, with a top range of 2148 Hz, I see I was apparently mistaken. I thought about using an analog bandpass filter to only pass a narrow band around the target frequency and simply vary the output based on the total signal level within that band, but my requirements (very steep rolloff, narrow bandwidth) make that seem unlikely. Would digital filters do the trick? Any that aren't too pricey? Are there any specialty ICs that already do what I need but don't cost a fortune? I'm looking into Schmitt triggers, but from what I understand, they suffer from the same limitation as my circuit; either on or off.
A friend suggested that DSP is the best solution to my issue, but while I'm willing to learn what I need to get this going, DSP's seem like a significant investment of time and effort to learn to program for just this one project, not to mention a hefty cost when factoring in development tools. If it comes to that, I'll probably just stick with my existing circuit and live without the ability to alter output magnitude.