Matlab 用magnitute值提取频率

Matlab 用magnitute值提取频率,matlab,fft,frequency,Matlab,Fft,Frequency,我有一个matlab函数,它接受一个.wav文件并绘制它的FFT function [ output_args ] = plotFFT( file_name ) [file,Fs] = wavread(file_name); L = length(file); NFFT = 2^nextpow2(L); Y = fft(file,NFFT)/L; f = Fs/2*linspace(0,1,NFFT/2+1); bar(f,2*abs(Y(1:NFFT/2+1))) 从这里开始,我该如何

我有一个matlab函数,它接受一个.wav文件并绘制它的FFT

function [ output_args ] = plotFFT( file_name )

[file,Fs] = wavread(file_name);
L = length(file);

NFFT = 2^nextpow2(L);
Y = fft(file,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);

bar(f,2*abs(Y(1:NFFT/2+1)))
从这里开始,我该如何检测图形中的峰值?我只需要一个峰值频率列表和它们的幅值。我可以设置一个阈值,但这不是最好的方法,因为高频谐波的幅值与低频噪声相似


提前谢谢

“你有访问权限吗?它对你有用吗?”Schorsch我查了一下,似乎这就是我需要的,谢谢!只需要调整一下。