设计一个自适应滤波器对信号x(n)进行分离

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

作业3:设计一个自适应滤波器,对信号x(n)进行分离图1信号分离原理框图的高斯白噪声方差为2),();()cos()(nvnvwnAnx。仿真结果:0123456-1-0.500.51幅值输入周期性信号0123456-0.8-0.6-0.4-0.200.20.40.60.8幅值时间随机噪声信号周期为1的余弦输入信号,随机噪声信号0123456-1.5-1-0.500.511.52幅值时间滤波器输入信号0123456-1.5-1-0.500.511.5幅值时间自适应滤波器输出信号滤波器输入信号,自适应滤波的输出信号0123456-1.5-1-0.500.511.5时间幅值自适应滤波器自适应滤波器输出预期输出误差自适应滤波的输出信号,期望输出,误差代码:function[output_args]=SeSiNoi(input_args)closeall%周期信号的产生t=0:0.01:6;xs=cos(2*pi*t);figure;subplot(2,1,1);plot(t,xs);grid;ylabel('幅值');title('{输入周期性信号}');%噪声信号的产生randn('state',sum(100*clock));snr=10;s_power=var(xs);%var函数:返回方差值linear_snr=10^(snr/10);factor=sqrt(s_power/linear_snr);xn=randn(1,length(xs))*factor;subplot(2,1,2);plot(t,xn);grid;ylabel('幅值');xlabel('时间');title('{随机噪声信号}');%信号滤波xn=xs+xn;xn=xn.';%输入信号序列dn=xs.';%预期结果序列M=20;%滤波器的阶数rho_max=max(eig(xn*xn.'));%输入信号相关矩阵的最大特征值mu=rand()*(1/rho_max);%收敛因子0mu1/rho[yn,W,en]=LMS(xn,dn,M,mu);%绘制滤波器输入信号figure;subplot(2,1,1);plot(t,xn);grid;ylabel('幅值');xlabel('时间');title('{滤波器输入信号}');%绘制自适应滤波器输出信号subplot(2,1,2);plot(t,yn);grid;ylabel('幅值');xlabel('时间');title('{自适应滤波器输出信号}');%绘制自适应滤波器输出信号,预期输出信号和两者的误差figureplot(t,yn,'b',t,dn,'g',t,dn-yn,'r');grid;legend('自适应滤波器输出','预期输出','误差','输入信号');ylabel('幅值');xlabel('时间');title('{自适应滤波器}');End其中自适应滤波器采用LMS最小均方算法LMS()函数源代码如下:function[yn,W,en]=LMS(xn,dn,M,mu,itr)%LMS(LeastMeanSqure)算法%输入参数:%xn输入的信号序列(列向量)%dn所期望的响应序列(列向量)%M滤波器的阶数(标量)%mu收敛因子(步长)(标量)要求大于0,小于xn的相关矩阵最大特征值的倒数%itr迭代次数(标量)默认为xn的长度,Mitrlength(xn)%输出参数:%W滤波器的权值矩阵(矩阵)%大小为Mxitr,%en误差序列(itrx1)(列向量)%yn实际输出序列(列向量)%参数个数必须为4个或5个ifnargin==4%4个时递归迭代的次数为xn的长度itr=5*length(xn);elseifnargin==5%5个时满足Mitrlength(xn)ifitrlength(xn)*6|itrMerror('迭代次数过大或过小!');endelseerror('请检查输入参数的个数!');end%初始化参数en=zeros(itr,1);%误差序列,en(k)表示第k次迭代时预期输出与实际输入的误差W=zeros(M,itr);%每一行代表一个加权参量,每一列代表-次迭代,初始为0%迭代计算fork=M:itr%第k次迭代x=xn(k:-1:k-M+1);%滤波器M个抽头的输入y=W(:,k-1).'*x;%滤波器的输出en(k)=dn(k)-y;%第k次迭代的误差%滤波器权值计算的迭代式W(:,k)=W(:,k-1)+2*mu*en(k)*x;end%求最优时滤波器的输出序列yn=inf*ones(size(xn));fork=M:length(xn)x=xn(k:-1:k-M+1);yn(k)=W(:,end).'*x;end

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功