急!!!在线等,求解答:一个小波去噪的matlab程序,高手进

急!!!在线等,求解答:一个小波去噪的matlab程序,高手进,第1张

%%%%%%%%%%%%%%%%%%心电信号降噪

%%%%%%%%%%%%%%%Birge-Massart策略阈值降噪

%基于小波变换的心电信号的降噪

ecg=fopen('100.dat','r')% 调用心电数据库 r为只读,ecg是打开文件的识别符

N=1201%常数赋值,要读数据个数

data=fread(ecg,N,'int16')%从一个流中读N个数据,数据格式是int16,16进制整数

data=data/10000%数据缩小10000倍

fclose(ecg)%关闭打开的文件

x=data%把数据转赋给x变量

wavename='db5'%db5是小波名

level=4%4级分解

[c,l]=wavedec(x,level,wavename)%4级小波分解,c保存各级分解系数,l是薄记矩阵,保存各级的系数的个数

alpha=1.5%1.5用于信号压缩,3用于降噪

sorh='h'%为硬阈值

[thr,nkeep]=wdcbm(c,l,alpha)%使用Birgé-Massart策略计算一维小波分解或压缩的阈值thr和各级的系数个数nkeep

[xc,cxc,lxc,perf0,perfl2]=wdencmp('lvd',c,l,wavename,level,thr,sorh)%小波压缩重构后的图像

t1=0:0.004:(length(x)-1)*0.004%一行数据

figure(4)%打开一个图形窗口

subplot(211)%子图1

plot(t1,x)%画图形

title('从人体采集的原始的ECG信号')%加上子图名称

subplot(212)%子图2

plot(t1,xc)%画图形

title('Birge-Massart策略阈值降噪后的ECG信号(wname=db5 level=4)')%加上子图名称

小波图像去噪的方法大概分为3类

1:基于小波变换摸极大值原理

2:基于小波变换系数的相关性

3:基于小波阈值的去噪。

基于小波阈值的去噪方法3个步骤:

1: 计算含噪声图像的小波变换。选择合适的小波基和小波分解层数J,运用Matlab 分解算法将含有噪声图像进行J层小波分解,得到相应的小波分解系数。

2:对分解后的高频系数进行阈值量化,对于从1 到J的每一层,选择一个适当的阈值和合适的阈值函数,将分解得到的高频系数进行阈值量化,得到估计小波系数。

3:进行小波逆变化,根据图像小波分解后的第J层,低频 系数(尺度系数)和经过阈值量化处理的各层高频系数(小波系数),运用Matlab重构算法进行小波重构,得到去噪后的图像。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7806026.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存