extract max and min frequency of a spectrum
2 次查看(过去 30 天)
显示 更早的评论
How Determine the bandwidth as well as the minimum and maximum frequency of each audio channel by writing a Matlab code?
0 个评论
采纳的回答
更多回答(1 个)
Walter Roberson
2024-12-29
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Audio I/O and Waveform Generation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
