实验二 数字相关
(一)实验目的
熟悉数字相关的运算,初步在信号处理中应用相关技术。
(二)实验原理
相关可以从时域角度表现信号间的相似(关联)程度,是统计信号处理最基本的手段之一。
设有离散信号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来加速相关运算,即对序列补零后,用循环相关计算线形相关,然后用循环卷积的快速算法计算循环相关,得到最终结果。
(三)实验内容和步骤
已知发射波形,利用相关技术,在有强背景噪声的情况下检测回波的延时和强度。
首先使用已知信号模版及其若干次衰减延迟生成仿真回波波形,然后与白噪声背景叠加,构造仿真信号。然后计算模版与仿真信号的相关函数,判断回波位
置及相对强度。
(四)思考题
尝试修改程序,包括改变仿真信号中模版的形状,噪声的强弱,噪声的类型(对白噪声滤波可以获得各种有色噪声),哪些因素会影响相关函数的结果?
(五)实验报告要求
简述实验原理及目的;
按实验要求编程进行相关分析并调整程序参数,记录运行结果; 简要回答思考题。
附:参考程序
% 估计两个相似信号间的时间延迟 np = 0:99;
% p = sin(pi/5*np); % 正弦 % p = exp(-0.06*np); % 指数衰减
% p = sin(pi/5*np).*exp(-0.06*np); % 指数衰减正弦 p = ones(size(np)); % 方波 figure;
subplot(2,2,1); plot(np,p);
n = 0:1000; w = randn(size(n)); 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,'coeff'); Rpx = xcorr(x,p,'coeff');
n2 = (n(1)-np(end)):(np(end)-n(1)); figure;
subplot(3,1,1); plot(Rpw); axis([0,2001,-1,1]); title('Rxy of p(n) and w(n)'); subplot(3,1,2); plot(Rps); axis([0,2001,-1,1]); title('Rxy of p(n) and s(n)'); subplot(3,1,3); plot(Rpx); axis([0,2001,-1,1]); title('Rxy of p(n) and x(n)'); % subplot(3,1,1); plot(Rpw); title('Rxy of p(n) and w(n)'); % subplot(3,1,2); plot(Rps); title('Rxy of p(n) and s(n)'); % subplot(3,1,3); plot(Rpx); title('Rxy of p(n) and x(n)');
实验三 维纳-霍夫方程
(一)实验目的
学习求解维纳-霍夫方程,寻找最小均方误差意义下的最优滤波器。
(二)实验原理
根据正交原理可以推导出维纳-霍夫方程,满足该方程的滤波器输出信号的估计值与信号在最小均方误差意义下最接近。
Rxs?j??m????h?m?R?j?m?optxx??j???,?,0,?,??
根据滤波器的形式,维纳滤波器可以分为三种情况:非因果IIR型,因果IIR型,FIR型,对于实时性有要求的情况下用后两种形式。
x?n??s?n??w?n? h?n???n?y?n??s 图1 维纳滤波器
对于FIR型维纳滤波器,维纳-霍夫方程的形式为
Rxs?j???hopt?m?Rxx?j?m?m?0N?1j?0,1,?,N?1
或者写成矩阵形式
RxxHopt?Rxs其中
Hopt??h?0?h?1??h?N?1??T
TRxs??Rxs?0?Rxs?1??Rxs?N?1??
Rxx?1??Rxx?0??R?1?Rxx?0?xxRxx???????Rxx?N?1?Rxx?N?2??Rxx?N?1???Rxx?N?2????????Rxx?0??
这样,如果信号和噪声的二阶统计特性已知,则易求解
1H?R?xxRxs
维纳滤波的均方误差是
Ee?n??Rss?0???hopt?m?Rxs?m?
2m?0??N?1
(三)实验内容和步骤
已知信号的自相关函数和噪声的能量,编写程序求解维纳-霍夫方程,寻找最优滤波器。
编写程序仿真信号,噪声和观察波形,然后把观察信号通过滤波器得到的信号估计与原始信号比较,观察是否达到了去噪的目的。
选择不同信号(仿真信号,实际采集的心电,脑电信号),人工添加噪声,调整噪声的相对强度,观察滤波效果。
(四)思考题
观察实验结果,对于几种不同的信号,维纳滤波是否都取得了较好的效果?如果效果不好,试分析原因。
(五)实验报告要求
简述实验原理及目的;
按要求编程求解维纳-霍夫方程,并对信号去噪,记录运行结果; 简要回答思考题。
附:参考程序
function [h,e] = WH(Rss,Rww,M)
% 求解维纳-霍夫方程的函数,其中M为信号的长度 e1 = 10; e0 = 0;
N = 0; % 给e1,e0,N 赋初值