MATLAB - 如何在 wav 文件中找到峰值
MATLAB - How to find the peaks in a wav file
我试图找到我的 .wav 文件的峰值并使用了 findpeaks 方法
a = audioread('FilterNew.wav');
[pks,locs] = findpeaks(a)
但是当我 运行 脚本时,它给了我 3 个错误
使用 findpeaks 时出错
期望 Y 是一个向量。
findpeaks 错误>parse_inputs(第 189 行)
验证属性(尹,{'numeric'},{'nonempty','real','vector'},...
findpeaks 错误(第 131 行)
[y,yIsRow,x,xIsRow,minH,minP,minW,maxW,minD,minT,maxN,sortDir,annotate,refW] ...
我试过谷歌搜索,但没有找到任何答案,所以我希望在这里得到一些帮助。代码有什么问题?还是我的 .wav 文件损坏了?!?
谢谢
由于 mathematician1975 的帮助,设法绘制了图表。
现在,我正在尝试绘制峰值图并标记左侧和右侧的峰值,但它给我一个错误
使用绘图时出错
向量长度必须相同
所以我检查了尺寸
>> size(a(1,:))
ans =
1 2
>> size(a(:,2))
ans =
467712 1
我的代码
a = audioread('FilterNew.wav');
[pks,locs] = findpeaks(a(:,1));
[pks2,locs2] = findpeaks(a(:,2));
figure
x = (1:length(a));
plot(x,a,'k');
figure
z = (1:length(a));
plot(z,a,'k');
hold on
plot(locs,pks,'go');
hold on
plot(locs2,pks2,'ro');
我该如何解决?再次感谢您!
在 Matlab 2015a 中,函数 audioread() 的输出是双重的,矩阵和采样频率。只需输入:
a = audioread('filename.wav');
应该return一个音频样本矩阵。 Findpeaks() 需要一个向量,因此您只需要选择矩阵中的哪一列数据是您感兴趣的:
[pks,locs] = findpeaks(a(:,1));
我试图找到我的 .wav 文件的峰值并使用了 findpeaks 方法
a = audioread('FilterNew.wav');
[pks,locs] = findpeaks(a)
但是当我 运行 脚本时,它给了我 3 个错误
使用 findpeaks 时出错 期望 Y 是一个向量。
findpeaks 错误>parse_inputs(第 189 行) 验证属性(尹,{'numeric'},{'nonempty','real','vector'},...
findpeaks 错误(第 131 行) [y,yIsRow,x,xIsRow,minH,minP,minW,maxW,minD,minT,maxN,sortDir,annotate,refW] ...
我试过谷歌搜索,但没有找到任何答案,所以我希望在这里得到一些帮助。代码有什么问题?还是我的 .wav 文件损坏了?!?
谢谢
由于 mathematician1975 的帮助,设法绘制了图表。
现在,我正在尝试绘制峰值图并标记左侧和右侧的峰值,但它给我一个错误 使用绘图时出错 向量长度必须相同
所以我检查了尺寸
>> size(a(1,:))
ans =
1 2
>> size(a(:,2))
ans =
467712 1
我的代码
a = audioread('FilterNew.wav');
[pks,locs] = findpeaks(a(:,1));
[pks2,locs2] = findpeaks(a(:,2));
figure
x = (1:length(a));
plot(x,a,'k');
figure
z = (1:length(a));
plot(z,a,'k');
hold on
plot(locs,pks,'go');
hold on
plot(locs2,pks2,'ro');
我该如何解决?再次感谢您!
在 Matlab 2015a 中,函数 audioread() 的输出是双重的,矩阵和采样频率。只需输入:
a = audioread('filename.wav');
应该return一个音频样本矩阵。 Findpeaks() 需要一个向量,因此您只需要选择矩阵中的哪一列数据是您感兴趣的:
[pks,locs] = findpeaks(a(:,1));