Dear Sean,
the maximum and minimum values of the signal can be determined by deriving the
signal. Here the zeroes of the derivative give these values.
A more simple alternative would be to determine the zero crossings of the signal
itself. You may rectify the signal by getting the absolute value - if this is
beyond a certain threshold (to be determined) you can consider the signal to be
zero.
I can remember a limiter algorithm based on this idea as well - this was
published in the AES (Audio Engineering Society) Journal:
Dan Mapes-Riordan and W. Marshall Leach jr.: The Design of a Digital Signal
Peak Limiter for Audio Signal Processing, JAES Vol. 36, No. 7/8 1988
July/August, pp. 652-574.
Counting samples between thos zeroes could be used to determine the fundamental
frequency. The drawback of this algorithm is that the defined fundamental is not
defined as precisely as by an FFT algorithm - it minds me to an anlog octave
divider used for electric bass guitars in the late sevenies - sometimes it added
the octave sometimes it was irritated by the signal...
Anoher drawback of this idea is that the minimum signal latency is defined by
the lowest fundamental frequency you want to determine - for instance to
determine 20Hz you have to wait for 50ms. Can this latency be tolerated for a
life musical instrument application? I am not that sure.
Regards
Christian
> Hello,
>
> I posted a message just a while back regarding the identification of
> fundamental frequency of a variable signal. I appreciate the information
that
> was sent back to me. However, since I do not need the entire spectrum; I
> would like to know if anyone has ever seen an algorithm dealing only with
> finding how long it takes a cycle to repeat. If I know my sampling
frequency
> and I can identify n-cycles that it took for (let's say the two
highest
> values), then theoretically I should be able to determine the overall
> frequency of the waveform. If anyone has ever implemented anything like this
on a
> 563xx system I would really appreciate any help.
>
> Thank you,
>
> Sean Foley