大理大学实验报告
课程名称 生物医学信号处理 实验名称 维纳-霍夫方程 专业班级 姓名 学号 实验日期 实验地点
2015—2016学年度第 3 学期
一、 实验目的 学习求解维纳-霍夫方程,寻找最小均方误差意义下的最优滤波器。 二、实验环境 1、硬件配置: 处理器:AMD A10-5750M APU with Radeon(tm) Graphics 2.50GHz 安装内存:(RAM)4.00GB 系统类型:64位操作系统,基于x64位处理器 2、软件环境:Matlab R2012b 三、实验原理 根据正交原理可以推导出维纳-霍夫方程,满足该方程的滤波器输出信号的估计值与信号在最小均方误差意义下最接近。 RxsjmhmRjmoptxxj,,0,, 根据滤波器的形式,维纳滤波器可以分为三种情况:非因果IIR型,因果IIR型,FIR型,对于实时性有要求的情况下用后两种形式。 xnsnwn hnˆnyns 图1 维纳滤波器 对于FIR型维纳滤波器,维纳-霍夫方程的形式为 RxsjhoptmRxxjmm0N1j0,1,,N1 或者写成矩阵形式 RxxHoptRxs 其中 Hopth0h1hN1T RxsRxs0Rxs1RxsN1 TRxx1Rxx0R1Rxx0xxRxxRxxN1RxxN2RxxN1RxxN2Rxx0 这样,如果信号和噪声的二阶统计特性已知,则易求解 1HRxxRxs 维纳滤波的均方误差是 EenRss0hoptmRxsm 2m0N1 四、实验内容 已知信号的自相关函数和噪声的能量,编写程序求解维纳-霍夫方程,寻找最优滤波器。 编写程序仿真信号,噪声和观察波形,然后把观察信号通过滤波器得到的信号估计与原始信号比较,观察是否达到了去噪的目的。 选择不同信号(仿真信号,实际采集的心电,脑电信号),人工添加噪声,调整噪声的相对强度,观察滤波效果。 五、 实验结果与分析 试验程序: clear; clc; M = input('信号的长度 M = '); n = 1:M; %s = exp(-0.002*n).*sin(pi*n/50); % 仿真信号,可以自己生成,任意形式 % s = ecgdata(1:M)'; % load eegdata; % 实际脑电信号 % s = eegdata(1:M)'; %load respdata; %s =respdata(1:M)'; %呼吸信号 load icpdata; s =icpdata(1:M)'; %颅内压信号 w = 4*randn(1,M); % 白噪声,系数代表噪声相对强度 x = s+w; % 仿真信号 Rss = xcorr(s,s); %估计信号自相关函数 Rww = xcorr(w,w); % 估计噪声自相关函数 [h,e] = WH(Rss,Rww,M); ss = filter(h,1,x); %用维纳滤波器滤波 figure; subplot(2,2,1);plot(n,s);title('信号'); subplot(2,2,2);plot(n,w);title('噪声'); subplot(2,2,3);plot(n,x);title('观测值'); subplot(2,2,4);plot(n,ss);title('信号估计'); figure; plot(n,ss-s);title('估计误差'); error=mean((ss-s).^2) 实验结果: 1、s为仿真信号,w强度为0.4,1和2,M=1024: 信号10.50-0.5-1050010001500210-1-2050010001500噪声10.50-0.5-1050010001500信号420-2-4050010001500噪声10.50-0.5-1050010001500信号1050-5-10050010001500噪声观测值210-1-205001000150010.50-0.5-10信号估计420-250010001500-40观测值10.50-0.550010001500-10信号估计1050-550010001500-100观测值10.50-0.550010001500-10信号估计 图1-1 N =99 图1-2 N=72 图1-3 N=68 50010001500 error =0.0093 error=0.0330 error=0.618 2、s为心电信号,w强度为0.4,1和2,M=1024: 信号10.50-0.5-1050010001500210-1-2050010001500噪声10.50-0.5-1050010001500信号420-2-4050010001500噪声10.50-0.5-1050010001500信号1050-5-10050010001500噪声观测值210-1-2050010001500-0.50.50信号估计420-2050010001500-40观测值0.20-0.2-0.450010001500-0.60信号估计1050-550010001500-100观测值0.20-0.2-0.450010001500-0.60信号估计-1 图2-1 N=99 图2-2 N=164 图2-3 N=201 50010001500 error=0.0236 error=0.0365 error=0.0580 3、s为脑电信号,w强度为0.4,1和2,M=1024: 信号1050-5-10050010001500210-1-2050010001500噪声1050-5-10050010001500信号420-2-4050010001500噪声1050-5-10050010001500信号1050-5-10050010001500噪声观测值1050-5-100500100015001050-5-100信号估计1050-550010001500-100观测值5信号估计10500-5观测值420-2050010001500-40信号估计 图3-1 N=186 图3-2 N=406 图3-3 N=504 error=0.1264 error=0.4329 error=0.8640 4、s为呼吸信号,w强度为0.4,1和2,M=1024: 50010001500-5050010001500-1050010001500 信号1000215000-10050010001500-20500噪声1000信号425000-2100015000050010001500-40500噪声1000信号1055000噪声100015000050观测值100150-5050100150观测值10005001000500信号估计1000500观测值1000500信号估计1000500信号估计1000500000000-5000500 图4-1 N=46 图4-2 N=73 图4-3 N=38 10001500-500050010001500-500050010001500-500050010001500-500050100150-500050100150 error=0.1611 error=0.9491 error=4.8401 5、s为颅内压信号,w强度为0.4,1和2,M=1024: 信号644202-2050010001500-40500100015002噪声64信号210-1050010001500-20500100015002噪声64信号1050-5050010001500-10050010001500噪声000观测值10564200050010001500-20信号估计105观测值64信号估计15105观测值864205001000150000信号估计020050010001500-5-550010001500-5050010001500050010001500 图5-1 N=318 图5-2 N=119 图5-3 N=46 error=0.1738 error=0.0683 error=0.5802 6、s为仿真信号,w强度为0.4,M取值为:1024,2000,3000,4000,5000,6000: 信号10.50-0.5-1050010001500210-1-2050010001500噪声10.50-0.5-1050010001500观测值210-1050010001500-2050010001500200010.50-0.5-105001000150020002000信号210-1-205001000信号估计210-1-2010002000300015002000噪声10.50-0.5-10100020003000信号210-1-20100020003000噪声观测值210-1-205001000150010.50-0.5-1信号估计观测值10.50-0.5-10信号估计 图6-1 M=1024 图6-2 M=2000 图6-3 M=3000 N=145 N=207 N=248 error =0.0126 error =0.0059 error =0.0067 100020003000 信号10.50-0.5-10100020003000观测值210-1-20100020003000400010.50-0.5-1010004000210-1-201000噪声10.50-0.5200030004000-10信号210-1200040006000-20噪声10.50-0.5200040006000-10信号210-1200040006000-20噪声200040006000信号估计210-1200030004000-20观测值10.50-0.5200040006000-10信号估计210-1200040006000-20观测值10.50-0.5200040006000-10信号估计 图6-4 M=4000 图6-5 M=5000 图6-6 M=5000 N=123 N=215 N=222 error=0.0059 error =0.0049 error =0.0037 200040006000 7、s为心电信号,w强度为0.4,M取值为:32、64、128、256、512、1024: 信号-0.05-0.1-0.15-0.2-0.2501020观测值100-0.1-0.2-1-0.3010203040-0.4010203040304010.50-0.5-101020信号估计210-1-20204060803040噪声0-0.1-0.2-0.3-0.402040观测值0.40.20-0.2-0.40204060806080000信号21噪声10.5信号21噪声-102040信号估计6080-0.5050观测值100150-1050100150信号估计10.50-0.5210-1-2050100150-2-1 图7-1 M=32 图7-2 M=64 图7-3 M=128 N=26 N=46 N=123 error=0.0036 error=0.0186 error=0.0256 信号10.510噪声10.500-1-0.50100200300-10200观测值210-0.5-10100200300-20200400600-0.50.50400600信号210-1-20200400600噪声10.50-0.5-1050010001500信号210-1-205001000噪声050100150 -0.50100观测值200300-21500信号估计0.50信号估计210-10200400600-20观测值0.50信号估计210-1-20100200300-0.5-1-1 图7-4 M=256 图7-5 M=512 图7-6 M=1024 N=69 N=34 N=273 error=0.0234 error=0.0230 error=0.0184 50010001500-1050010001500 8、s为脑电信号,w强度为0.4,M取值为:32、64、128、256、512、1024: 信号420-2-401020观测值2020304010.50-0.5-1010噪声420-220信号估计4203040-4020信号21噪声4200-202040信号估计420-2420-2020406080-40506080-4050信号210-1100150-2050噪声40观测值6080-1100150观测值420-2100150-40信号估计-2-2-2010203040-4020406080-4010 图8-1 M=32 图8-2 M=64 图8-3 M=128 N=28 N=17 N=6 203040-4-450100150 error=0.0788 error=0.098 error=0.1400 信号5021噪声50信号210-50-5-10200观测值5000-505400600-20200400600噪声1050-5-10050010001500信号210-1-2050010001500噪声-100100观测值200300-10100200300-10信号估计5信号估计1050-5观测值105信号估计50-50100 图8-4 M=256 图8-5 M=512 图8-6 M=1024 N=187 N=116 N=123 200300-50100200300-100200400600-50200400600-10050010001500-5050010001500 error=0.01176 error=0.01305 error=0.1327 9、s为呼吸信号,w强度为0.4,M取值为:32、64、128、256、512、1024: 信号100010.55000-0.5001020观测值100050010005003040-101020信号估计10005003040002040观测值10005006080500噪声1000信号10.50-0.5-102040信号估计100050060800050观测值1000500100150500-1噪声1000信号10噪声-2050100150信号估计000000-500010 图9-1 M=32 图9-2 M=64 图9-3 M=128 N=3 N=6 N=5 203040-500010203040-500020406080-500020406080-500050100150-500050100150 error=0.2054 error=0.1426 error=0.1567 信号1000215000-100100观测值10005001000500200300-20100噪声1000信号215000-120030000200观测值10005001000500400600-20200噪声1000信号215000-14006000050010001500-20500噪声10001500信号估计信号估计1000500观测值1000500信号估计000000-5000100 图9-4 M=256 图9-5 M=512 图9-6 M=1024 N=4 N=3 N=45 200300-5000100200300-5000200400600-5000200400600-500050010001500-500050010001500 error=0.1392 error=0.1763 error=0.1542 10、s为颅内压信号,w强度为0.4,M取值为: 128、256、512、1024: 信号6410.502-0.5050观测值6420-20501001506420-2050100150100150-10501001502噪声64信号210-10100观测值6420-201002003006420-2010020030000200300-201002003002噪声64信号210-10200观测值105105400600-20200400600噪声000信号估计信号估计信号估计-5 图10-1 M=128 图10-2 M=256 图10-3 M=512 N=85 N=121 N=63 error=0.0852 error=0.0897 error=0.0933 0200400600-50200400600 信号642102-1050010001500-2050010001500噪声0观测值10564200050010001500-20信号估计-550010001500 图10-4 M=1024 N=119 error=0.0677 11、s为仿真信号,w强度为0.4,M取值为1024,阈值为:10、10、10、10、10 86321信号10.50-0.5-1050010001500210-1-20500噪声10.50-0.510001500-10500信号210-110001500-20500噪声10.50-0.510001500-10500信号210-110001500-20500噪声10001500观测值210-1-205001000150010.50-0.5-10信号估计210-150010001500-20观测值10.50-0.550010001500-10信号估计210-150010001500-20观测值10.50-0.550010001500-10信号估计50010001500 图11-1 abs(e0-e1)>1e-8 图11-2 abs(e0-e1)>1e-6 图11-3 abs(e0-e1)>1e-3 N=375 N=144 N=62 error=0.0092 error=0.0092 error=0.0100 信号10.50-0.5-1050010001500210-1-2050010001500噪声10.50-0.5-1050010001500信号210-1-2050010001500噪声观测值210-1-2050010001500-110信号估计42观测值10.500-0.5050010001500-10信号估计-2050010001500-250010001500 图11-4 abs(e0-e1)>1e-2 图11-5 abs(e0-e1)>1e-1 N=13 N=13 error=0.0256 error=0.0209 12、s为心电信号,w强度为0.4,M取值为1024,阈值为:10、10、10、10、10 信号10.50-0.5-1050010001500210-1-2050010001500噪声10.50-0.5-1050010001500信号210-1-2050010001500噪声10.50-0.5-1050010001500信号210-1-2050010001500噪声86321观测值210-1-2050010001500-0.50.50信号估计210-1050010001500-20观测值0.50信号估计210-0.5-1050010001500-20观测值0.50信号估计-0.5-150010001500-150010001500-1050010001500 图12-1 abs(e0-e1)>1e-8 图12-2 abs(e0-e1)>1e-6 图12-3 abs(e0-e1)>1e-3 N=157 N=152 N=74 error=0.0199 error=0.0228 error=0.0227 信号10.50-0.5-1050010001500210-1-20500噪声10.50-0.510001500-10500信号210-110001500-20500噪声10001500观测值210-1-2050010001500-0.50.50信号估计210-1050010001500-20观测值10.50-0.550010001500-10信号估计-150010001500 图12-4 abs(e0-e1)>1e-2 图12-5 abs(e0-e1)>1e-2 N=41 N=28 error=0.0234 error=0.0220 13、s为脑电信号,w强度为0.4,M取值为1024,阈值为:10、10、10、10、10 信号1050-5-10050010001500210-1-2050010001500噪声1050-5-10050010001500信号210-1-2050010001500噪声1050-5-10050010001500信号210-1-2050010001500噪声86321观测值55信号估计105观测值5信号估计10500-5观测值5信号估计000-50-5050010001500-5050010001500-10050010001500-5050010001500-10050010001500-5050010001500 图13-1 abs(e0-e1)>1e-8 图13-2 abs(e0-e1)>1e-6 图13-2 abs(e0-e1)>1e-3 N=77 N=189 N=22 error=0.1369 error=0.1226 error=0.1448 信号1050-5-10050010001500210-1-2050010001500噪声1050-5-10050010001500信号210-1-2050010001500噪声观测值1050-5-100500100015000105信号估计1050-5050010001500-100观测值1050-550010001500-100信号估计-550010001500 图13-4 abs(e0-e1)>1e-2 图13-5 abs(e0-e1)>1e-2 N=8 N=3 error=0.1382 error=0.1369 14、s为呼吸信号,w强度为0.4,M取值为1024,阈值为:10、10、10、10 信号1000215000-10050010001500-20500100015000050010001500500噪声1000信号210-1-20500100015000050010001500500噪声1000信号210-1-2050010001500噪声6321观测值10005001000500信号估计1000500观测值1000500信号估计1000500观测值1000500信号估计000000-500050010001500-500050010001500-500050010001500-500050010001500-500050010001500-500050010001500 图14-1 abs(e0-e1)>1e-6 图14-2 abs(e0-e1)>1e-3 图14-3 abs(e0-e1)>1e-2 N=8 N=3 N=3 error=0.1536 error=0.1596 error=0.1716 信号1000215000-10050010001500-2050010001500噪声观测值10005001000500信号估计00-500 050010001500-500050010001500 图14-4 abs(e0-e1)>1e-1 N=2 error=0.1607 15、s为颅内压信号,w强度为0.4,M取值为1024,阈值为:信号642102-1050010001500-20500100015002噪声64信号210-1050010001500-20500100015002噪声64108、10、10、10、10 噪声210-16321信号000050010001500-2050010001500观测值10564200050010001500-20信号估计105观测值64200050010001500-20信号估计105观测值64200050010001500-20信号估计-550010001500-550010001500-550010001500 图15-1 abs(e0-e1)>1e-8 图15-2 abs(e0-e1)>1e-6 图15-3 abs(e0-e1)>1e-3 N=865 N=141 N=22 error=0.0619 error=0.0727 error=0.0878 信号642102-1050010001500-20500噪声64信号2102-1050010001500-20500噪声010001500010001500观测值105105信号估计105观测值105信号估计0000-5050010001500-5050010001500-5050010001500-5050010001500 图15-4 abs(e0-e1)>1e-2 图15-5 abs(e0-e1)>1e-1 N=6 N=6 error=0.0979 error=0.0983 结果分析: 1、由图1-1至图5-3可知,噪声强度越大,误差有增大的趋势,即噪声越大,滤波效果越差。 2、由图6-1至图10-4可知,信号长度越长,误差有减小的趋势,即信号长度越长,滤波效果越好。 3、由图11-1至图15-5可知,随着信号阈值的减小,最小均方误差有下降的趋势,维纳滤波效果越好。 4、通过多以上个图的比较,可以发现脑电信号的最小均方误差值最大,所以脑电信号的滤波效果最差。 六、实验小结: 1、维纳滤波是解决线性滤波和预测问题的方法,并且以最小均方误差为准则。它是根据全部过去观测值和当前观测值来估计信号的当前值。 2、维纳预测器是一种估计器,是用过去的观测值来估计当前的或将来的信号y(n)s(nN),(N≥0),也是用真值和估计值的均方误差最小为估计准则。 ^ 六、 思考题: 观察实验结果,对于几种不同的信号,维纳滤波是否都取得了较好的效果?如果效果不好,试分析原因。 5、答:对于不同的信号类型,通过比较可以发现脑电信号的最小均方误差值最大,所以脑电信号的滤波效果最差。产生这种现象的原因是因为脑电为非平稳随机信号。 手写签名:
因篇幅问题不能全部显示,请点此查看更多更全内容