extract max and min frequency of a spectrum
2 views (last 30 days)
Show older comments
Mudhar Altikriti
on 29 Dec 2024
Commented: Star Strider
on 1 Jan 2025
How Determine the bandwidth as well as the minimum and maximum frequency of each audio channel by writing a Matlab code?
0 Comments
Accepted Answer
More Answers (1)
Walter Roberson
on 29 Dec 2024
You could fft(), and take the first half of the results, and find the last bin such that abs(BIN)>0 . That last bin will correspond to the highest frequency. Likewise, the first such bin (other than the very first bin) with abs()>0 corresponds to the minimum frequency.
However... fft() is prone to round-off errors, and there is a high chance of numeric noise. So you want abs(BIN)>TOLERENCE to ignore the numeric noise.
But... in practice, if the audio was not created by ifft(), then chances are high that abs(BIN) is non-zero for extended periods. Real audio seldom represents a repeating signal, and the effect of silence is to effectively add a sinc() signal to the fft, so the high frequency bins of fft of real audio almost always have non-zero content.
See Also
Categories
Find more on Audio I/O and Waveform Generation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!