- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
四、实验内容:
上机1 随机梯度法的实现,编写一个matlab函数实现
上机2 自适应噪声抵消器的实现
上机3 自适应谱线增强的应用
上机4 语音信号的去噪
上机5 综合比较
五、实验数据及结果分析:
1.随机梯度法的实现,编写一个matlab函数实现
a)观察到p个值计算,,初值W和eT预先给定,μ先给定。
关键代码:
function [w,y]=mylms(x,d,delta,N)
% LMS Algorithm for coefficient adjustment
% w=estimated FIR FILTER
% y=output array
% x=input array
% d=desired array,length must be same as x
% delta=step size 1
% N=length of FIR filter,Nlength of x
%----初始化-----
w=zeros(1,N);
M=length(x);
y=zeros(1,M);
b)当有新观测值XT+1后,,计算新的误差,不断调整W,使之接近最优解。
关键代码:%---求权重w----
for n=N:M
xt=x(n:-1:n-N+1);
y(n)=w*xt;
et=d(n)-y(n);
w=w+2*delta*et*xt;
end
自适应噪声抵消器的实现
实现工频干扰的自适应噪声抵消。要求s=母亲心电或胎儿心电信号;d=n+s;n为50Hz的正弦干扰信号;n通过一个线性系统后产生x信号。
a)载入母亲心电信号s,50Hz正弦信号n,让n通过线性系统得到相关的噪声信号x,观测信号d=n+s。
关键代码:
s=load(mecg1.dat);
s=s(500:1500);
t=0:1:length(s)-1;
n=0.7*10^11*sin(100*pi*t);%f=50hz
x=filter([2,1],1,n);%产生相关的噪声
d=s+n;
b)对含噪声的母亲心电进行自适应滤波,得到自适应滤波后的输出和自适应噪声抵消后的输出误差。
关键代码:
[w,y]=mylms(x,d,0.001,15);
分析2.1:
n和x相关,而与s不相关。右图我们可以看到,第四幅图是自适应滤波后的得到的图像,相比第二幅噪声滤除了很多,利用c=corr(s,(d-y));SNR=10*log10(var(s)/var(n));
我们求得c=0.9546,SNR=4.47,在这个信噪比可见相关系数很大,滤波效果很好。
3.自适应谱线增强的应用
信号较弱,在宽带噪声背景下,突出信号而压制噪声,就是谱线增强。
载入胎儿心电信号s,我选取其中的1001点,产生对应长度的白噪声n,进行自适应滤波,步长μ=0.001,阶数N=15。得到了滤波前后的对比图如下。
关键代码:%------s=胎儿心电信号 n=白噪声信号----
s=load(fecg1.dat);
s=s(500:1500);
N=length(s);
n=0.5*randn(1,N);
x=s+n;
d=[0 x(1:end-1)]; %移位delta x
[w,y]=mylms(d,x,0.001,15)
分析3.1:
使得d与x不相关,但信号s延迟后与原信号是相关的。使得自适应后输出y趋于s,eT趋于n。我们在第三幅图中得到滤波后的图像y,利用
c=corr(y,s);SNR=10*log10(var(s)/var(n));
求得c=0.6936,SNR=6.47,在这个信噪比下得到的相关系数不算很高,滤波的效果不算理想,可能和步长有关。
b)改变信噪比,与维纳滤波器比较去噪效果。
关键代码:%-----改变信噪比,与维纳滤波器比较去噪效果------
weight=0.1:0.05:30;
for i=1:150
X=s+weight(i)*n;D=[0 X(1:end-1)];
SNR(i)=10*log10(var(s)/var(weight(i)*n)); %信噪比
[ww,yy]=mylms(D,X,0.001,15);%自适应滤波
y1=X-yy;
[h,err]=weiner(X,(weight(i)*n));%维纳滤波
y2=filter(h,1,X);
ceof1(i)=corr(y1,s); ceof2(i)=corr(y2,s); %相关系数
end
分析3.2:
我们给定权重weight,进行了150次循环,花费的时间也很多,这也是我截取1001点的原因。我们分别用自适应滤波和维纳滤波对信号进行处理,通过计算相关系数和信噪比,得到右图,可以看出维纳滤波的效果优于自适应滤波,维纳
文档评论(0)