策划一个信号的频谱

4视图(30天)
你好,我写这段代码获得频谱的情节我的信号:
clc;清晰的所有;关闭所有;
% % &策划正常阅读。wav文件
正常= audioread (“normal.wav”);
图(1)
情节(正常);
包含(“数据”,“字形大小”12“fontweight”,“b”);
ylabel (“振幅”,“字形大小”12“fontweight”,“b”);
标题(“正常心音信号的,“字形大小”14岁的“fontweight”,“b”);
% % &阅读策划杂音。wav文件
杂音= audioread (“murmur.wav”);
图(2)
情节(杂音);
包含(“数据”,“字形大小”12“fontweight”,“b”);
ylabel (“振幅”,“字形大小”12“fontweight”,“b”);
标题(“心脏杂音的声音信号”,“字形大小”14岁的“fontweight”,“b”);
% %傅里叶变换
fft_nor = fft(正常);
fft_mur = fft(杂音);
% %计算fs
% fs_normal
t_nor = 6;% s
N_nor =长度(正常);
fs_nor = N_nor / t_nor;%赫兹
% fs_murmur
t_mur = 8;% s
N_mur =长度(杂音);
fs_mur = N_mur / t_mur;%赫兹
% %计算频率轴
f_nor = fs_nor / 2 * linspace (1, 1, fs_nor);
f_mur = fs_mur / 2 * linspace (1, 1, fs_mur);
% %策划频谱
%正常的声音
图(3)
情节(f_nor、abs (fft_nor));
包含(的频率(赫兹),“字形大小”12“fontweight”,“b”);
ylabel (“级”,“字形大小”12“fontweight”,“b”);
标题(“正常信号的FFT级”,“字形大小”14岁的“fontweight”,“b”);
%低语的声音
图(4)
情节(f_mur、abs (fft_mur));
包含(的频率(赫兹),“字形大小”12“fontweight”,“b”);
ylabel (“级”,“字形大小”12“fontweight”,“b”);
标题(“杂音信号的FFT级”,“字形大小”14岁的“fontweight”,“b”);
但在运行它我有这个错误:
错误使用阴谋向量必须相同的长度。
错误Q5b(40行)情节(f_nor、abs (fft_nor));
会有人帮我修理它吗?

接受的答案

约翰BG
约翰BG 2017年3月28日
嗨,哈
这是约翰BG ( < mailto: jgb2012@sky.com jgb2012@sky.com >)我有另类声音文件,发现以下修复脚本:
1。
运行脚本的一个方法是窗口fft_nor和fft_mur f_nor和f_nur碰巧的长度短于各自的信号。
而不是
图(3)
情节(f_nor、abs (fft_nor));
使用
图(3)
情节(f_nor、abs (fft_nor([1 +元素个数(fft_nor)元素个数(f_nor):结束))));
情节(f_nor、abs (fft_nor([1:元素个数(f_nor)))));
而不是
图(4)
情节(f_mur、abs (fft_mur));
使用
情节(f_mur、abs (fft_mur([1:元素个数(f_mur)))));
情节(f_mur、abs (fft_nor([1 +元素个数(fft_mur)元素个数(f_mur):结束))));
2。
另一种方法是首先定义参数的时间以及频率上你想要的数量,然后,不是之前,计算FFT,设定频率的数量你想已经定义的频率,这样的
. .
t_nor = 6;% s
N_nor =长度(海军);
fs_nor = N_nor / t_nor;%赫兹
% fs_murmur
t_mur = 8;% s
N_mur =长度(杂音);
fs_mur = N_mur / t_mur;%赫兹
% %计算频率轴
f_nor = fs_nor / 2 * linspace (1, 1, fs_nor);
f_mur = fs_mur / 2 * linspace (1, 1, fs_mur);
% %傅里叶变换
fft_nor = fft(海军研究实验室,元素个数(f_nor));
fft_mur = fft(杂音元素个数(f_mur));
% %策划频谱
%正常的声音
图(3)
情节(f_nor、abs (fft_nor));
包含(的频率(赫兹),“字形大小”12“fontweight”,“b”);
ylabel (“级”,“字形大小”12“fontweight”,“b”);
标题(“正常信号的FFT级”,“字形大小”14岁的“fontweight”,“b”);
%低语的声音
图(4)
情节(f_mur、abs (fft_mur));
包含(的频率(赫兹),“字形大小”12“fontweight”,“b”);
ylabel (“级”,“字形大小”12“fontweight”,“b”);
标题(“杂音信号的FFT级”,“字形大小”14岁的“fontweight”,“b”);
3所示。
或者你也可以oversample:增加Fs在两个信号直到你得到相同数量的频率fft()分配默认情况下。
有不同的方法,但在这种情况下,事实上,如果你样品速度由以下因素
分别6和8、信号和杂音,我看到K1 K2因素引入f_nor和f_mur的定义
然后脚本还好,添加这样的:
% %傅里叶变换
fft_nor = fft(海军);
fft_mur = fft(杂音);
% %计算fs
% fs_nrl
t_nor = 6;% s
N_nor =长度(海军);
fs_nor = N_nor / t_nor;%赫兹
% fs_murmur
t_mur = 8;% s
N_mur =长度(杂音);
fs_mur = N_mur / t_mur;%赫兹
% %计算频率轴
K1 =元素个数(fft_nor) / fs_nor
K2 =元素个数(fft_mur) / fs_mur
f_nor = fs_nor / 2 * linspace (1, 1, fs_nor * K1);
f_mur = fs_mur / 2 * linspace (1, - 1, fs_mur * K2);
% %策划频谱
%正常的声音
图(3)
情节(f_nor、abs (fft_nor));
包含(的频率(赫兹),“字形大小”12“fontweight”,“b”);
ylabel (“级”,“字形大小”12“fontweight”,“b”);
标题(“正常信号的FFT级”,“字形大小”14岁的“fontweight”,“b”);
%低语的声音
图(4)
情节(f_mur、abs (fft_mur));
包含(的频率(赫兹),“字形大小”12“fontweight”,“b”);
ylabel (“级”,“字形大小”12“fontweight”,“b”);
标题(“杂音信号的FFT级”,“字形大小”14岁的“fontweight”,“b”);
如果你发现这些线有用请是考虑将我的答案标记为接受答案?
其他读者,如果你发现这个答案的任何帮助请点击竖起大拇指投票链接,
提前感谢你的时间和精力
约翰BG
1评论
哈扎尔曼公司
哈扎尔曼公司 2017年3月28日
编辑:哈扎尔曼公司 2017年3月30日
谢谢你,我的问题解决了你的解决方案。

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!