| Topic: |
Science > Physics |
| User: |
"Paul" |
| Date: |
04 Jul 2004 04:43:59 PM |
| Object: |
FFT & overtones |
Hello, i'm developing an application for tuning string instruments
especially electric guitar. I'm having a problem with the FFT. The problem
is that signal processed often exhibits a lot of overtones and harmonics,
that are louder than the actual pitch, that yields very inaccurate results.
I've also tried applying autocorrelation process before the FFT which seems
to help a tiny bit but the signal still has a lot of overtones. I've seen
commercial and free tuner programs that don't seem to have the problems that
mine does. And those programs were very tolerant of the signal quality or
lack of. Is there any additional processing that can be added to estimate
the frequency correctly?
.
|
|
| User: "Franz Heymann" |
|
| Title: Re: FFT & overtones |
05 Jul 2004 02:54:35 AM |
|
|
"Paul" <nospam@nospam.com> wrote in message
news:40e879fb$0$3059$61fed72c@news.rcn.com...
Hello, i'm developing an application for tuning string instruments
especially electric guitar. I'm having a problem with the FFT. The
problem
is that signal processed often exhibits a lot of overtones and
harmonics,
that are louder than the actual pitch, that yields very inaccurate
results.
I've also tried applying autocorrelation process before the FFT
which seems
to help a tiny bit but the signal still has a lot of overtones.
I've seen
commercial and free tuner programs that don't seem to have the
problems that
mine does. And those programs were very tolerant of the signal
quality or
lack of. Is there any additional processing that can be added to
estimate
the frequency correctly?
Filter like hell to get rid of as much of the harmonic content as you
can.
Franz
.
|
|
|
| User: "Paul" |
|
| Title: Re: FFT & overtones |
05 Jul 2004 09:40:13 AM |
|
|
Any particular algorithm or process that you have in mind?
"Franz Heymann" <notfranz.heymann@btopenworld.com> wrote in message
news:ccb1fr$oa8$4@hercules.btinternet.com...
"Paul" <nospam@nospam.com> wrote in message
news:40e879fb$0$3059$61fed72c@news.rcn.com...
Hello, i'm developing an application for tuning string instruments
especially electric guitar. I'm having a problem with the FFT. The
problem
is that signal processed often exhibits a lot of overtones and
harmonics,
that are louder than the actual pitch, that yields very inaccurate
results.
I've also tried applying autocorrelation process before the FFT
which seems
to help a tiny bit but the signal still has a lot of overtones.
I've seen
commercial and free tuner programs that don't seem to have the
problems that
mine does. And those programs were very tolerant of the signal
quality or
lack of. Is there any additional processing that can be added to
estimate
the frequency correctly?
Filter like hell to get rid of as much of the harmonic content as you
can.
Franz
.
|
|
|
| User: "Franz Heymann" |
|
| Title: Re: FFT & overtones |
05 Jul 2004 04:27:25 PM |
|
|
"Paul" <nospam@nospam.com> wrote in message
news:40e96827$0$3090$61fed72c@news.rcn.com...
"Franz Heymann" <notfranz.heymann@btopenworld.com> wrote in message
news:ccb1fr$oa8$4@hercules.btinternet.com...
"Paul" <nospam@nospam.com> wrote in message
news:40e879fb$0$3059$61fed72c@news.rcn.com...
Hello, i'm developing an application for tuning string
instruments
especially electric guitar. I'm having a problem with the FFT.
The
problem
is that signal processed often exhibits a lot of overtones and
harmonics,
that are louder than the actual pitch, that yields very
inaccurate
results.
I've also tried applying autocorrelation process before the FFT
which seems
to help a tiny bit but the signal still has a lot of overtones.
I've seen
commercial and free tuner programs that don't seem to have the
problems that
mine does. And those programs were very tolerant of the signal
quality or
lack of. Is there any additional processing that can be added
to
estimate
the frequency correctly?
Filter like hell to get rid of as much of the harmonic content as
you
can.
Any particular algorithm or process that you have in mind?
I was thinking of either a common or garden analogue low pass filter
wih a variable cut-off frequency, or a tuned circuit, tuned to the
fundamental of the note being tuned.
Franz
.
|
|
|
|
| User: "Randy Poe" |
|
| Title: Re: FFT & overtones |
05 Jul 2004 04:58:36 PM |
|
|
"Paul" <nospam@nospam.com> wrote in message news:<40e96827$0$3090$61fed72c@news.rcn.com>...
"Franz Heymann" <notfranz.heymann@btopenworld.com> wrote in message
news:ccb1fr$oa8$4@hercules.btinternet.com...
I've seen
commercial and free tuner programs that don't seem to have the
problems that
mine does. And those programs were very tolerant of the signal
quality or
lack of. Is there any additional processing that can be added to
estimate
the frequency correctly?
Filter like hell to get rid of as much of the harmonic content as you
can.
Any particular algorithm or process that you have in mind?
What data rate are you sampling at? What range of frequencies
are you interested in?
For a start, you might want to consider applying a windowing
function such as a Hanning window
(http://mathworld.wolfram.com/HanningFunction.html) before you
do your FFT. This is multiplied point by point by your time
window, to reduce edge artifacts while distorting the true
spectrum as much as possible.
Digital filtering is pretty straightforward. Do a search for
Butterworth filters or Chebyshev filters to see a couple of
common examples that might be good enough for your purposes.
Filtering consists of either doing a convolution in the time
domain (the point at time t is replaced by a weighted sum of
the samples from time t to some previous time t-T) or by
multiplication in the frequency domain, which is equivalent.
- Randy
.
|
|
|
|
| User: "Gregory L. Hansen" |
|
| Title: Re: FFT & overtones |
05 Jul 2004 03:55:22 PM |
|
|
In article <40e96827$0$3090$61fed72c@news.rcn.com>,
Paul <nospam@nospam.com> wrote:
Any particular algorithm or process that you have in mind?
"Franz Heymann" <notfranz.heymann@btopenworld.com> wrote in message
news:ccb1fr$oa8$4@hercules.btinternet.com...
"Paul" <nospam@nospam.com> wrote in message
news:40e879fb$0$3059$61fed72c@news.rcn.com...
Hello, i'm developing an application for tuning string instruments
especially electric guitar. I'm having a problem with the FFT. The
problem
is that signal processed often exhibits a lot of overtones and
harmonics,
that are louder than the actual pitch, that yields very inaccurate
results.
I've also tried applying autocorrelation process before the FFT
which seems
to help a tiny bit but the signal still has a lot of overtones.
I've seen
commercial and free tuner programs that don't seem to have the
problems that
mine does. And those programs were very tolerant of the signal
quality or
lack of. Is there any additional processing that can be added to
estimate
the frequency correctly?
Filter like hell to get rid of as much of the harmonic content as you
can.
Franz
Low-pass, presumably. The electronic circuit would look like
e ----\/\/\/\------ u
|
---
---
|
v
If your filter has a time constant a, and a sampling time T, a digital
filter would look like
u[k] = exp(-a*T)*u[k-1] + e[k]
As long as the sampling time is short enough.
You can put a second filter in series, to put a sharper knee in the
amplitude versus frequency graph. Electronically you'd put a buffer
between them, a unity gain amplifier, to present appropriate impedences
to the first and second stages.
|\
e ----\/\/\/\------| >---\/\/\/\----- u
| |/ |
--- ---
--- ---
| |
v v
If the second filter has a time constant b, then the digital filter would
look like
u[k] = (exp(-a*T)+exp(-b*T))*u[k-1] - exp(-(a+b)*T)*u[k-2] + e[k]
Unfortunately, selecting the time constants would depend on knowing in
advance about what the frequency should be. But since I've already
written out the above, I may as well send it.
You could select the first frequency in the FFT that's above some critical
amplitude, and simply discard the rest.
--
"For every problem there is a solution which is simple, clean and wrong."
-- Henry Louis Mencken
.
|
|
|
|
|
| User: "EjP" |
|
| Title: Re: FFT & overtones |
06 Jul 2004 09:59:51 AM |
|
|
Franz Heymann wrote:
"Paul" <nospam@nospam.com> wrote in message
news:40e879fb$0$3059$61fed72c@news.rcn.com...
Hello, i'm developing an application for tuning string instruments
especially electric guitar. I'm having a problem with the FFT. The
problem
is that signal processed often exhibits a lot of overtones and
harmonics,
that are louder than the actual pitch, that yields very inaccurate
results.
I've also tried applying autocorrelation process before the FFT
which seems
to help a tiny bit but the signal still has a lot of overtones.
I've seen
commercial and free tuner programs that don't seem to have the
problems that
mine does. And those programs were very tolerant of the signal
quality or
lack of. Is there any additional processing that can be added to
estimate
the frequency correctly?
Filter like hell to get rid of as much of the harmonic content as you
can.
Franz
While this might work, I suspect he's got other problems. A musical
instrument that needs to be filtered in order to be tuned is
going to sound pretty lousy anyway.
-E
.
|
|
|
|
|
| User: "Julian Streicher" |
|
| Title: Re: FFT & overtones |
06 Jul 2004 11:33:29 AM |
|
|
Maybe your sampling rate isn't high enough.
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
.
|
|
|
|
| User: "John Popelish" |
|
| Title: Re: FFT & overtones |
05 Jul 2004 03:17:58 PM |
|
|
Paul wrote:
Hello, i'm developing an application for tuning string instruments
especially electric guitar. I'm having a problem with the FFT. The problem
is that signal processed often exhibits a lot of overtones and harmonics,
that are louder than the actual pitch, that yields very inaccurate results.
I've also tried applying autocorrelation process before the FFT which seems
to help a tiny bit but the signal still has a lot of overtones. I've seen
commercial and free tuner programs that don't seem to have the problems that
mine does. And those programs were very tolerant of the signal quality or
lack of. Is there any additional processing that can be added to estimate
the frequency correctly?
Since all overtones are integer multiples of the fundamental (or very
nearly so for tonal instruments) you can use the overtone pattern to
deduce the fundamental. he big problem with using FFT to find these
frequencies is that the FFT algorithm outputs the spectrum of
frequencies that have periods that are related to the sample interval
and the number of samples taken. For example, if you sample a tenth
of a second with 512 samples and use that data for a FFT, you get an
output that measures the energy of frequencies with periods of .1sec,
..1sec/2, .1sec/3, ... .1sec/(512/2). If the actual frequency does
not coincide with any of these, then it will be only approximately
measured and its energy will be divided between several or all of the
above specific frequencies.
--
John Popelish
.
|
|
|
|
| User: "EjP" |
|
| Title: Re: FFT & overtones |
05 Jul 2004 02:41:34 PM |
|
|
Paul wrote:
Hello, i'm developing an application for tuning string instruments
especially electric guitar. I'm having a problem with the FFT. The problem
is that signal processed often exhibits a lot of overtones and harmonics,
that are louder than the actual pitch, that yields very inaccurate results.
I've also tried applying autocorrelation process before the FFT which seems
to help a tiny bit but the signal still has a lot of overtones. I've seen
commercial and free tuner programs that don't seem to have the problems that
mine does. And those programs were very tolerant of the signal quality or
lack of. Is there any additional processing that can be added to estimate
the frequency correctly?
If your overtones are larger than the fundamental, I suspect you've
made a mistake in your signal processing somewhere. Musical
instruments are dominated by the fundamental. Even a guitar
through a fuzzbox should be clean enough to tune on.
Bottom line: the FFT should show you pretty much what your
ear is hearing. If you hear the fundamental tone and it doesn't
show up on your spectrum, there's a problem somewhere.
Perhaps if you told us a little bit more about how you're
doing this, we might be able to help.
For example, if you sample the input of your sound card
at 44 Khz, and run it through a simple fast FFT algorithm,
you should get a beautiful signal.
-E
.
|
|
|
|

|
Related Articles |
|
|