>On Tue, 25 Mar 2014 23:14:08 -0700 (PDT),
>girishbabu2490@gmail.com wrote:
>
>>On Wednesday, March 12, 2014 3:41:52 PM UTC+5:30, girishb...@gmail.com wrote:
>>> please help me to find pitch of a speech signal using AMDF method. If u have matlab code please post here.
>
>Another approach you might consider is to skip the
>autocorrelation and just find the N strongest peaks in the
>spectrum, assume they are harmonically related, and find
>their greatest common factor. That will help you resolve
>the missing fundamental problem. It will also help with
>interpolation to find that fundamental, since the upper
>peaks will add resolution. (The spectral bin width is a
>smaller percentage of a high frequency, so you have a better
>resolution when scaled back down to the fundamental.)
>
>You can also use the relative amplitudes of adjacent
>spectral lines to interpolate to the single frequency that
>is assumed to be causing both of them, but this doesn't work
>too well near DC.
>
For several years I had an iPhone app I developed to estimate the
pitch of internal combustion engines, to determine the RPM. It was
very marginal and got terrible reviews. I was using just the approach
you suggested - taking an FFT and looking for peaks and trying to sort
them out by their greatest common factor. I even did the
interpolation you mentioned to refine the peaks.
Then, a year ago, I updated the app to use the autocorrelation
function instead of the simple FFT. The app because much more
reliable and got better reviews. I am a strong believer in the
effectiveness of autocorrelation over a simple FFT for pitch
estimation when the underlying source is truly periodic. I would not
make any such claim for applications to unvoiced sounds, though.
Robert Scott
Hopkins, MN
Reply by Bob Masta●April 16, 20142014-04-16
On Tue, 25 Mar 2014 23:14:08 -0700 (PDT),
girishbabu2490@gmail.com wrote:
>On Wednesday, March 12, 2014 3:41:52 PM UTC+5:30, girishb...@gmail.com wrote:
>> please help me to find pitch of a speech signal using AMDF method. If u have matlab code please post here.
Another approach you might consider is to skip the
autocorrelation and just find the N strongest peaks in the
spectrum, assume they are harmonically related, and find
their greatest common factor. That will help you resolve
the missing fundamental problem. It will also help with
interpolation to find that fundamental, since the upper
peaks will add resolution. (The spectral bin width is a
smaller percentage of a high frequency, so you have a better
resolution when scaled back down to the fundamental.)
You can also use the relative amplitudes of adjacent
spectral lines to interpolate to the single frequency that
is assumed to be causing both of them, but this doesn't work
too well near DC.
Of course, with speech you'll also need to make a
voiced/unvoiced determination.
Best regards,
Bob Masta
DAQARTA v7.50
Data AcQuisition And Real-Time Analysis
www.daqarta.com
Scope, Spectrum, Spectrogram, Sound Level Meter
Frequency Counter, Pitch Track, Pitch-to-MIDI
FREE Signal Generator, DaqMusiq generator
Science with your sound card!
Reply by robert bristow-johnson●April 15, 20142014-04-15
On 4/15/14 10:43 AM, info@audiopoison.com wrote:
> On Wednesday, 12 March 2014 03:11:52 UTC-7, girishb...@gmail.com wrote:
>> please help me to find pitch of a speech signal using spectral autocorrelation method.
>>
>>
>
>
> 1. Do a DFT on your signal
> 2. Multiply the real parts by the conjugate
> 3. Take the absolute of the result and perform an inverse transformation
> 4. Perform peak finding
and you also have to decide between many peaks that you found.
at this point, you should know something about scale here. computing
autocorrelation by this method implies a rectangular window on the data
that also gets offset by the lag. so the window is smaller, so even if
you had a perfectly periodic function, there is a maximum value
"envelope" (decreasing with lag) that the normalized autocorrelation can
reach. that has to be used to pick the correct peak.
and there's even more to it (to avoid the "octave problem").
> 5. Extrapolate your estimated frequency via the Nyquist of your sampling rate
interpolate, i think. so how would you do that?
--
r b-j rbj@audioimagination.com
"Imagination is more important than knowledge."
Reply by ●April 15, 20142014-04-15
On Wednesday, 12 March 2014 03:11:52 UTC-7, girishb...@gmail.com wrote:
> please help me to find pitch of a speech signal using spectral autocorrelation method.
>
>
>
> Thank You
>
>
>
> Regards
>
> Girish Babu S
1. Do a DFT on your signal
2. Multiply the real parts by the conjugate
3. Take the absolute of the result and perform an inverse transformation
4. Perform peak finding
5. Extrapolate your estimated frequency via the Nyquist of your sampling rate
--
Audio Poison
Reply by ●March 26, 20142014-03-26
On Wednesday, March 12, 2014 3:41:52 PM UTC+5:30, girishb...@gmail.com wrote:
> please help me to find pitch of a speech signal using AMDF method. If u have matlab code please post here.
>
>
>
> Thank You
>
>
>
> Regards
>
> Girish Babu S
Reply by ●March 12, 20142014-03-12
Le mercredi 12 mars 2014 06:11:52 UTC-4, girishb...@gmail.com a �crit�:
> please help me to find pitch of a speech signal using spectral autocorrelation method.
>
>
>
> Thank You
>
>
>
> Regards
>
> Girish Babu S