77范文网 - 专业文章范例文档资料分享平台

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

来源:网络收集 时间:2018-12-11 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

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

图1 信号分离原理框图

x(n)?Acos(wn)?v(n);v(n),方差为?2的高斯白噪声。

仿真结果:

输入周期性信号10.5幅值0-0.5-10123456随机噪声信号0.80.60.40.2幅值0-0.2-0.4-0.6-0.80123时间456 周期为1的余弦输入信号,随机噪声信号

滤波器输入信号21.51幅值0.50-0.5-1-1.50123时间456自适应滤波器输出信号1.510.5幅值0-0.5-1-1.50123时间456 滤波器输入信号,自适应滤波的输出信号

自适应滤波器1.5自适应滤波器输出预期输出误差1 0.5幅值0-0.5-1-1.5 0123时间456 自适应滤波的输出信号,期望输出,误差

代码:

function [ output_args ] =SeSiNoi( input_args ) close all % 周期信号的产生 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) ; % 收敛因子 0 < mu < 1/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('{自适应滤波器输出信号}');

% 绘制自适应滤波器输出信号,预期输出信号和两者的误差 figure

plot(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(Least Mean Squre)算法 % 输入参数:

% xn 输入的信号序列 (列向量) % dn 所期望的响应序列 (列向量) % M 滤波器的阶数 (标量)

% mu 收敛因子(步长) (标量) 要求大于0,小于xn的相关矩阵最大特征值的倒数

% itr 迭代次数 (标量) 默认为xn的长度,M

% W 滤波器的权值矩阵 (矩阵) % 大小为M x itr,

% en 误差序列(itr x 1) (列向量) % yn 实际输出序列 (列向量) % 参数个数必须为4个或5个

if nargin == 4 % 4个时递归迭代的次数为xn的长度 itr = 5*length(xn);

elseif nargin == 5 % 5个时满足Mlength(xn)*6 | itr

error('请检查输入参数的个数!'); end % 初始化参数

en = zeros(itr,1); % 误差序列,en(k)表示第k次迭代时预期输出与实际输入的误差

W = zeros(M,itr); % 每一行代表一个加权参量,每一列代表-次迭代,初始为0 % 迭代计算

for k = 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)); for k = M:length(xn) x = xn(k:-1:k-M+1); yn(k) = W(:,end).'* x; end

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库设计一个自适应滤波器对信号x(n)进行分离在线全文阅读。

设计一个自适应滤波器对信号x(n)进行分离.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/359508.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: