matlab频谱图峰值
时间: 2023-07-13 16:09:45 浏览: 104
matlab开发-峰值查找和测量
在MATLAB中,可以使用`findpeaks`函数来找到频谱图中的峰值。该函数的语法如下:
```
[pks,locs] = findpeaks(y)
```
其中,`y`是频谱图数据,`pks`是峰值的幅值,`locs`是峰值对应的频率位置。
例如,假设我们有一个频谱图数据`y`,可以使用以下代码找到其峰值:
```matlab
[y,Fs] = audioread('example.wav'); % 读取音频文件
N = length(y); % 信号长度
Y = fft(y); % 进行FFT变换
P2 = abs(Y/N); % 计算单侧频谱
P1 = P2(1:N/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = Fs*(0:(N/2))/N; % 计算频率
[pks,locs] = findpeaks(P1,f); % 找到峰值
plot(f,P1,f(locs),pks,'o'); % 绘制频谱图并标出峰值
xlabel('频率(Hz)');
ylabel('幅值');
```
上述代码中,我们首先读取了一个音频文件,然后进行FFT变换得到频谱图数据`P1`和对应的频率`f`。接着使用`findpeaks`函数找到峰值`pks`和`locs`,最后使用`plot`函数绘制频谱图并标出峰值。
阅读全文