资源描述:
《信号处理及分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、信号的具体处理及分析方法1、引言随着数字信号处理DSP迅速发展,医学信号的处理手段也变得更加高明。在我们实验阶段常使用MATLAB软件对生物医学信号进行处理。MATLAB是一种数值计算软件,可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。基于MATLAB软件的强大功能,我们采用滤波、小波变换、阈值去噪与最大似然估计法对信号进行处理。2、处理方法心电:closeall;什={*0卩。11('(3:1^巧(:1^11\'011511>^1<10卩心附抗\旧
2、八1^七呂陈敬雄 4020140321094256.匕轻’,
3、1'’);[A,ls]=frcad(fr;doublcI);%A:从指定文件中读取二进制数据并写入矩阵A,Is参数川•丁•返回成功读入的元素数荒,力可选参数。fclose(fr);lcngth=4000;%10000;ls/4;Is=4channels*1000samplingfrequency,lengthisthelengthofeverychannelfori=l:lengthecg(i)=A(5*(600+i-1)+2);endecg=-ecg;n=sizc(ccg);s=ecg(1:4000);%%%%output
4、thesignalsof4channelsfigured);plot(ecg);title(•心电信号’);%%%FFTfrequencyspectrumanalysisfigure(2)Y=fft(ecg,1024);Pyy=Y.*conj(Y)/1024;f=1000*(0:512)/1024;pIot(f,Pyy(1:513));titlef心屯信号频谱图i);xlabelffrequency(Hz)*);%%%filteredusingbutterworthfilterfigure(3)%filteredfigures%w=l10/500,40/500];%[b,a]=butter
5、(5,w,’stop’);%butterworthfilter,500ishalfofsamplingfrequency,stopfilter[b,a]=butter(6,30/500,’low.);%butterworthfilter,50()ishalfofsamplingfrequency;y=fikfilt(b,a,ecg);
6、b,a
7、=butter(5,O.5/5OO.'high');ecgyy=filtfilt(b,a,y);plot(ecgyy);titlef经带通滤波器消噪后的心电信号’);%%%%dzdtyy'sdenoisingusingdb5wavelettransf
8、ormfigure(4)
9、(2丄
10、=\^^(;(叫,4,1^(^5.5
11、);%用(0)5小波分解信号到第8层;(;:各层分呈,L:各层分景长废N:分解层数%从c中提取尺度8下的近似小波系数cA4=appcoef(C,L,’bior5.5’,4);%从信兮C中提取尺度1,2,3,4,5,6,7,8下的细节小波系数cDl=detcoef(C,L,1);cD2=detcoef(C,L,2);cD3=detcoef(C,L,3);cD4=detcoef(C,L,4);%使用stein的无偏似然估计原理进行选择各层的阈値%cDl,cD2,cD3/j各层小波系数,%%trigrsure,为无偏似然估
12、计阈位类型thrl=thselect(cDl,’rigrsure’);thr2=thselect(cD2/rigrsure,);thr3=thselect(cD3,,rigrsure,);thr4=thselect(cD4/rigrsure,);%各层的阈ffiTR=[thrl,thr2,thr3,thr4];%*s’为软阈值;'h1硬阈值。SORH=s';%去噪%xc为去噪后信号%[CXC,LXC1为的小波分解结构%?£1^0和PERF2是恢复和压缩的范数百分比。%’lvd1力允许设界.各层的阈值,%^1^为固定阈值。%3为阈值的长度[XC,CXC,LXC,PERF0,PERF2]=wd
13、encmpClvdecg,.bior5.5*,4,TR,SORH);%去噪效果衡量(SNR越大效果越好,%MSE越小越好)%选取信兮的长度。N=n(2);x=ecg;y=XC;F二0;M=();forii=l:Nm(ii)=(x(ii)-y(ii))A2;t(ii)=y(ii)A2;f(ii)=t(ii)/.n(ii);F=F+f(ii);M=M+m(ii);end:SNR=10*logl0(F);MSE=M/N;SM