![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
scott wrote:
>> (You might think, for example, that you could just snip your 5-minute
>> song into, say, 50 ms chunks and take the Fourier transform of each
>> chunk. Alas, snipping it up introduces phantom frequencies that aren't
>> really there.)
>
> Use something other than a rectangular window function then, that helps
> with the phantom frequencies.
The [discrete] Fourier transform reduces a signal to a finite number of
frequencies by assuming that the signal is periodic - i.e., the samples
you've fed it repeat forever. If the endpoints don't match up, that
introduces a discontinuity, which causes phantom frequencies to appear.
(They represent the discontinuity.)
You can reduce this by using another window function - but then,
strictly speaking, you're multiplying your signal by a window, which
convolves its spectrum with the spectrum of the window. In other words,
by windowing the signal you're blurring its spectrum.
>> I've spent a significant amount of time trying to come up with some
>> mathematics for analysing sound the way that the human auditry system
>> does... So far, nothing works.
>
> If you don't need it in realtime then just run a band-pass filter over
> the whole song at varying frequencies, you can then read off the
> amplitude at any frequency at any time during the song.
This, of course, is effectively what the human ear does. (As in, the
physical organ, not the elaborate post-processing that undoubtably
happens when the data reaches the brain.) Each hair in the cochlea is
essentially a crude band-pass filter. (I don't imagine they actually
have a great frequency response; much like the human eye isn't actually
a very good camera.)
So far, everything I've ever learned about DSP seems to hinge on one
single equation:
sin X + sin Y = 2 cos (X-Y)/2 sin (X+Y)/2
This says many things. But most obviously, it says that the sum of any
two waves is also the product of two *other* words, and vice versa. So
the question is, at what frequency does a wave become "sound" rather
than "variation in sound"?
The *other* question, of course, is "how many frequency bands do I need?"
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 4/30/2010 7:02 AM, Invisible wrote:
> Mike Raiford wrote:
>
>> It's amazing when you look at how your auditory system works. Your
>> brain essentially gets the Fourier transform of what you're listening to.
>
> Be careful with that...
Yeah, I was simplifying greatly what is happening... If you want to
display a voiceprint or Realtime spectrum, you'll need to move a window
across the signal.
> (You might think, for example, that you could just snip your 5-minute
> song into, say, 50 ms chunks and take the Fourier transform of each
> chunk. Alas, snipping it up introduces phantom frequencies that aren't
> really there.)
>
> I've spent a significant amount of time trying to come up with some
> mathematics for analysing sound the way that the human auditry system
> does... So far, nothing works.
Yeah, someone said it before, but there are windowing functions for
that. If you want to get quick and dirty, you can use a rectangular
window, but this will introduce artifacts in the resulting spectrum.
Strangely enough the other day I was experimenting with windowing in a
Fourier transform to analyze a rather complex FSK signal (Trying to get
a grip on how the signal worked ...) The major problem I had with it was
the fact that there was significant smearing between samples, that I
couldn't tell when the frequencies were changing, not only that it made
it exceedingly difficult to determine what the frequencies were. I tried
various windowing functions and window sizes.
I should pick up my little DSP project I was working on and fiddle with
it again.
--
~Mike
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Mike Raiford wrote:
> Strangely enough the other day I was experimenting with windowing in a
> Fourier transform to analyze a rather complex FSK signal (Trying to get
> a grip on how the signal worked ...) The major problem I had with it was
> the fact that there was significant smearing between samples, that I
> couldn't tell when the frequencies were changing, not only that it made
> it exceedingly difficult to determine what the frequencies were. I tried
> various windowing functions and window sizes.
Yeah, Scotts idea of using a bank of bandpass filters is probably the
way to go for that. Split the signal into several dozen signals, each
containing only a narrow band of frequencies. See how much energy each
signal has.
(I have no idea how you measure signal energy...)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> You can reduce this by using another window function - but then,
> strictly speaking, you're multiplying your signal by a window, which
> convolves its spectrum with the spectrum of the window. In other words,
> by windowing the signal you're blurring its spectrum.
Usually a slightly blurred spectrum is the preferred outcome.
> So far, everything I've ever learned about DSP seems to hinge on one
> single equation:
>
> sin X + sin Y = 2 cos (X-Y)/2 sin (X+Y)/2
>
> This says many things. But most obviously, it says that the sum of any
> two waves is also the product of two *other* words, and vice versa. So
> the question is, at what frequency does a wave become "sound" rather
> than "variation in sound"?
20 Hz?
> The *other* question, of course, is "how many frequency bands do I need?"
Experiment!
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> (I have no idea how you measure signal energy...)
You mean how to assign a number to "loudness" given the waveform? I'd guess
that taking the RMS over a few cycles followed by some log scaling would be
a good start, but the ear is complex...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
scott wrote:
>> You can reduce this by using another window function - but then,
>> strictly speaking, you're multiplying your signal by a window, which
>> convolves its spectrum with the spectrum of the window. In other
>> words, by windowing the signal you're blurring its spectrum.
>
> Usually a slightly blurred spectrum is the preferred outcome.
Preferable to phantom frequencies, sure...
>> This says many things. But most obviously, it says that the sum of any
>> two waves is also the product of two *other* words, and vice versa. So
>> the question is, at what frequency does a wave become "sound" rather
>> than "variation in sound"?
>
> 20 Hz?
That's approximately the lowest frequency that the human ear can
mechanically detect. There's no particular reason to expect this to be
in any way related to the rate of change in frequency spectrum that the
human mind can percieve. (One is related to the physics of the ear, the
other is related to the internal operation of the brain...)
>> The *other* question, of course, is "how many frequency bands do I need?"
>
> Experiment!
Science: It works, bitches! :-D
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> 20 Hz?
>
> That's approximately the lowest frequency that the human ear can
> mechanically detect. There's no particular reason to expect this to be in
> any way related to the rate of change in frequency spectrum that the human
> mind can percieve.
Modulate a 1 kHz tone with a N Hz square wave. At what value of N do you
cease to be able to recognise the 1 kHz tone turning on and off? I suspect
it's somewhere around 20 Hz, you could easily figure it out with a sound
editor program like Audacity.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
scott wrote:
> Modulate a 1 kHz tone with a N Hz square wave. At what value of N do
> you cease to be able to recognise the 1 kHz tone turning on and off?
Yes, this is the experiment to perform.
> I suspect it's somewhere around 20 Hz, you could easily figure it out with
> a sound editor program like Audacity.
I'd probably use my synthesizer actually, but anyway... ;-)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Invisible wrote:
> at what frequency does a wave become "sound" rather
> than "variation in sound"?
Around 10Hz to 12Hz.
--
Darren New, San Diego CA, USA (PST)
Linux: Now bringing the quality and usability of
open source desktop apps to your personal electronics.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
scott wrote:
> suspect it's somewhere around 20 Hz,
Closer to 10Hz. Between 10Hz and 20Hz, you detect sufficiently loud sound
with different organs, such as your eyeballs vibrating or your sinuses
resonating. If you play a tone in that range, you get the "spooky" feeling,
or unaccountably sad, or mystical feelings, or things like that, depending
on the frequency.
--
Darren New, San Diego CA, USA (PST)
Linux: Now bringing the quality and usability of
open source desktop apps to your personal electronics.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |