資源簡介
在matlab仿真平臺上對某一心音信號進行采樣、小波分解、消噪處理、信號重構等信號處理。
代碼片段和文件信息
clc
clear
[ufs]=wavread(‘f:\matlab\work\11.wav‘);
y=resample(u115);
fs=fs/15;
figure
plot(u);
title(‘源心音信號‘);
figure
plot(y);
title(‘采樣后的心音信號‘);
u_beg=4000;
u_end=8000;
xn=y(u_beg:u_end);
figure;
plot(xn);
title(‘截取一段心音信號‘);
ls=length(xn);
w_name=‘db6‘;
%對心音信號進行小波分解
[cl]=wavedec(xn5w_name);%5層小波分解(層:尺度)
ca5=appcoef(clw_name5);%?提取一維小波變換低頻系數(第五層的逼近系數)
cd5=detcoef(cl5);%提取一維小波變換高頻系數?(細節系數)
cd4=detcoef(cl4);
cd3=detcoef(cl3);
cd2=detcoef(cl2);
cd1=detcoef(cl1);
figure;
subplot(611);plot(ca5);title(‘低頻系數‘);
subplot(612);plot(cd5);title(‘第五層高頻系數‘);
subplot(613);plot(cd4);title(‘第四層高頻系數‘);
subplot(614);plot(cd3);title(‘第三層高頻系數‘);
subplot(615);plot(cd2);title(‘第二層高頻系數‘);
subplot(616);xlabel(‘小波的各層頻率系數‘);plot(cd1);title(‘第一層高頻系數‘);
%消除噪聲處理
[thrsorhkeepapp]=ddencmp(‘den‘‘wv‘xn);
s1=wdencmp(‘gbl‘clw_name3thrsorhkeepapp);
figure;
subplot(212);
plot(s1);
title(‘小波去噪后的信號‘);
subplot(211);
plot(xn);
title(‘含有噪聲的信號‘);
%去除噪聲,重構信號對一維小波系數進行單支重構(重構之后得到的是信號,單支重構的目的在于獲得原信號中某頻率段的分量信號。分量信號的長度(點數)、采樣
%頻率均與原信號相同。將單支重構得到的各個分量信號直接按對應點求和,可恢復原信號。)
%重構第5層逼近信號(重構各分解尺度(層)上的信號)
a5=wrcoef(‘a‘clw_name5);%是對尺度5上的低頻部分進行重構,a是低頻,d是高頻,cl是wavedec所得
%重構第1~5層細節信號
d5=wrcoef(‘d‘clw_name5);
d4=wrcoef(‘d‘clw_name4);
d3=wrcoef(‘d‘clw_name3);
d2=wrcoef(‘d‘clw_name2);
d1=wrcoef(‘d‘clw_name1);
figure;
subplot(211);
plot(xn);
title(‘噪聲污染的信號‘);
?
subplot(212);
y=a5+d4;
plot(y);
title(‘小波分解重構去噪后的信號‘);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????275962??2012-10-13?11:30??心音信號處理分析\11.wav
?????文件???????1848??2012-12-15?14:54??心音信號處理分析\xinhaochuli.m
?????文件??????89600??2013-05-30?15:31??心音信號處理分析\心音信號處理分析.doc
?????目錄??????????0??2013-05-30?15:31??心音信號處理分析
-----------?---------??----------?-----??----
???????????????367410????????????????????4
- 上一篇:MATLAB實現彈道仿真
- 下一篇:matlab的pde工具箱使用方法
評論
共有 條評論