《生物医学信号处理》实验3报告 下载本文

评分

大理大学实验报告

2015—2016学年度第 3 学期

课程名称 生物医学信号处理 实验名称 数字相关和数字卷积

专业班级 2013级生物医学工程1班

姓 名 张雪 路康

学 号 2013166133 2013166148

实验日期 2016年5月13日星期五

实验地点 理科楼GC612

《生物医学信号处理》实验报告 一、实验目的 熟悉数字相关的运算,初步在信号处理中应用相关技术。 二、实验环境 1. 硬件配置:处理器(Intel(R) Pentium(R) 4 cpu 2.80GHz)、CD-ROM驱动器、鼠标、内存1GB(1024MB)、32位操作系统 2. 软件环境:MATLAB R2012b 三、实验内容 1. 实验原理 相关可以从时域角度表现信号间的相似(关联)程度,是统计信号处理最基本的一种手段之一。设有离散信号x(n)和y(n),线性相关函数定义为: rxy?m??n????x?n?y?n?m? ?实际采集的信号总是有限长度,用有限的样本估计相关(自相关)函数 ??m??1RxNN?m?1?xxn?0nn?mm?0,?1,?2,? 求和项总数不是N而是N-|m|,因为当n=N-|m|-1时,n+|m|=N-1。此时xn+m已经到了数据边沿。这种估计是渐进无偏估计和一致估计。 计算中,只要将其中一个序列反转,就可以用计算线性卷积的程序计算线性相关 rxy?m??x?n??y??n? 因此可以用FFT来加速相关运算,即对序列补零后,用循环相关计算线形相关,然后用循环卷积的快速算法计算循环相关,得到最终结果。 2. 实验内容 已知发射波形,利用相关技术,在有强背景噪声的情况下检测回波的延时和强度。 首先使用已知信号模版及其若干次衰减延迟生成仿真回波波形,然后与白噪声背景叠加,构造仿真信号。然后计算模版与仿真信号的相关函数,判断回波位置及相对强度。 3. 思考题 尝试修改程序,包括改变仿真信号中模版的形状,噪声的强弱,噪声的类型(对白噪声滤波可以获得各种有色噪声),哪些因素会影响相关函数的结果? 第2页 共14页

《生物医学信号处理》实验报告 四、实验结果与分析 程序代码: clear; clc; disp('请选择信号'); disp('1 ---- 实际测量的心电信号'); disp('2 ---- 实际测量的脑电信号'); disp('3 ---- 实际测量的颅内压信号'); disp('4 ---- 实际测量的呼吸信号'); disp('5 ---- 方波信号'); disp('6 ---- 正弦信号'); disp('7 ---- 指数衰减信号'); disp('8 ---- 指数衰减正弦信号'); b = input('信号:'); np = 0:99; %生成0到99的序列 switch b % 输入序号,产生相应信号 %心电、脑电、颅内压、呼吸 case 1 load ecgdata; p= ecgdata (1:100); p=p' case 2 load eegdata; p= eegdata (1:100); p=p' case 3 load icpdata; p= icpdata (1:100); p=p' case 4 load respdata; p= respdata (1:100); p=p' case 5 p = ones(size(np)); % 方波 case 6 p= sin(pi/5*np); % 正弦 case 7 p= exp(-0.06*np); % 指数衰减 case 8 p= sin(pi/5*np).*exp(-0.06*np); % 指数衰减正弦 end 第3页 共14页

《生物医学信号处理》实验报告 % 估计两个相似信号间的时间延迟 np = 0:99; figure; subplot(1,1,1); plot(np,p); %绘制方波函数图像 n = 0:1000; w = randn(size(n)); %产生白噪声 均值为0方差为一 %%%改变噪声类型 %%A=fspecial('average'); %生成均值滤波器 %%w=filter2(A,w); %用生成的滤波器进行滤波 %%w=medfilt1(w); %中值滤波 %%%改变噪声强度 %w =2+sqrt(1)*w %w =4+sqrt(1)*w %w =sqrt(0.5)*w %w =sqrt(2)*w s = zeros(size(n)); A = 3; %衰减系数 %构造仿真回波信号 s(100:199) = s(100:199)+A*(p); s(500:599) = s(500:599)+A/3*(p); s(800:899) = s(800:899)+A/3/3*(p); %构造仿真信号 x = s+w; figure; subplot(3,1,1); plot(n,w); title('Noise'); subplot(3,1,2); plot(n,s); title('Signal'); subplot(3,1,3); plot(n,x); title('Signal with Noise'); p = [p,zeros(1,length(x)-length(p))]; %如果要求归一化相关系数(相干系数),两个序列要同样长 %计算线性相关函数 Rps = xcorr(s,p);%加'coeff'求相干系数 Rpw = xcorr(w,p); Rpx = xcorr(x,p); n2 = (n(1)-n(end)):(n(end)-n(1)); %绘制线性相关函数图 figure; subplot(3,1,1); plot(n2,Rpw); title('Rpw of p(n) and w(n)'); subplot(3,1,2); plot(n2,Rps); title('Rps of p(n) and s(n)'); subplot(3,1,3); plot(n2,Rpx); title('Rpx of p(n) and x(n)'); 第4页 共14页

《生物医学信号处理》实验报告 输出为: 请选择信号 1 ---- 实际测量的心电信号 2 ---- 实际测量的脑电信号 3 ---- 实际测量的颅内压信号 4 ---- 实际测量的呼吸信号 5 ---- 方波信号 6 ---- 正弦信号 7 ---- 指数衰减信号 8 ---- 指数衰减正弦信号 键入1(实际测量的心电信号) 1Noise50-550-550-50.50200400600Signal800100000200400600800Signal with Noise1000-0.5020406080100 02004006008001000 Rpw of p(n) and w(n)100-10-1000-800-600-400-2000200400Rps of p(n) and s(n)40200-1000-800-600-400-2000200400Rpx of p(n) and x(n)500-50-1000-800-600-400-2000200400600800100060080010006008001000 (a) (b) (c) 图1 实际测量的心电信号(a)衰减系数为3、均值为0、方差为1的噪声仿真信号(b)线性相关函数图(c) 键入2(实际测量的脑电信号) 3210-1-2100-101000200400600Signal with Noise8001000Noise50-50200400Signal6008001000Rpw of p(n) and w(n)500-50-10005000-500-10005000-500-1000-5000Rpx of p(n) and x(n)5001000-5000Rps of p(n) and s(n)5001000 -3020406080100 -1002004006008001000 -50005001000 (a) (b) (c) 图2 实际测量的脑电信号(a)衰减系数为3、均值为0、方差为1的噪声仿真信号(b)线性相关函数图(c) 键入3(实际测量的颅内压信号) 654321002040608010020100200-2050-5NoiseRpw of p(n) and w(n)2000-200-100050000-5000-100050000-5000-10000200400600Signal8001000-5000Rps of p(n) and s(n)50010000200400600Signal with Noise8001000-5000Rpx of p(n) and x(n)5001000 02004006008001000 -50005001000 (a) (b) (c) 图3 实际测量的颅内压信号(a)衰减系数为3、均值为0、方差为1的噪声仿真信号(b) 线性相关函数图(c) 第5页 共14页