- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
自适应滤波器对系统辨识1.自适应滤波器系统辨识原理
对于一个真实的物理系统,人们主要关心其输入和输出特性,即对信号的传输特性,而不要求完全了解其内部结构。系统可以是一个或多个输入,也可以有一个或多个输出。通信系统的辨识问题是通信系统的一个非常重要的问题。所谓系统辨识,实质上是根据系统的输入和输出信号来估计或确定系统的特性以及系统的单位脉冲响应或传递函数。系统辨识和建模是一个非常广泛的概念,在控制、通信和信号处理等领域里都有重要意义。实际上,系统辨识和建模不仅局限于传统的工程领域,而且可以用来研究社会系统、经济系统和生物系统等。本节只讨论通信和信号处理中的系统辨识和建模问题。采用滤波器作为通信信道的模型,并利用自适应系统辨识的方法对通信信道进行辨识,从而可以进一步地对通信信道进行均衡处理。
如果把系统看成是一个“黑箱”,仅知道“黑箱”的输入和输出;以一个自适应滤波器作为这个“黑箱”的模型,并且使滤波器具有与“黑箱”同样的输入和输出。自适应滤波器通过调制自身的参数,使滤波器的输出与“黑箱”的输出相“匹配”。这里的“匹配”通常指最小二乘意义上的匹配以均方误差最小为准则的。这样,滤波器就模拟了对信号的传输行为。尽管自适应滤波器的结构和参数与真实的不一样,但是它们在输入、输出响应上保持高度一致。因此,在这个意义上,自适应滤波器就是这个未知“黑箱”系统的模型。
图1 自适应滤波器系统辨识原理
假定未知信道为有限冲激响应(FIR)结构,构造一个FIR结构的自适应滤波器,如图。在图中,用一伪随机系列作为系统的输入信号x(n),同时送入未知信道系统和自适应滤波器。调整自适应滤波器的系数,使误差信号e(n)的均方误差达到最小,则自适应滤波器的输出y(n)近似等于通信系统的输出d(n)。可以证明,加性噪声v(n)的存在并不影响自适应滤波器最终收敛到最优维纳解。可以认为,具有相同输入和相似输出的两个FIR系统,应该具有相似的特性。因此,可以采用自适应滤波器的特性或其单位脉冲响应来近似替代未知系统的特性或单位脉冲响应。
2.辨识结果
图2 FIR系统辨识结果
图 FIR辨识系统
下来我们对一个IIR系统利用自适应滤波器进行辨识,这个IIR系统本质上是一个巴特沃斯带通滤波器。图4中展示了对其辨识的结果。
图IR系统辨识结果
图5 L=10点时对IIR系统的辨识
L=20点时对IIR系统的辨识
图7 L=30点时对IIR系统的辨识
图8 N=200点时候对IIR系统辨识结果
图9 N=500点时候对IIR系统辨识结果
图10 N=1000点时候对IIR系统辨识结果
最后改变滤波器的迭代因子:分别为u=0.08,0.008,0.0008,对系统进行辨识,结果如图11,图12和图13所示。迭代因子的选择对辨识的结果有重要的影响。从图11,12和13中可以看出,迭代因子选的合适,系统辨识收敛的速度快,辨识结果准确,如图12。迭代因子如果选择的太大的话,此时自适应滤波器可能不收敛,就会发散,如图11所示。相反,如果迭代因子选择的过小,系统的收敛就会很慢,需要较多的迭代才能收敛到稳定的值,计算耗时。如图12所示,由于迭代因子选择过小,因此在迭代500次后还没有收敛,因此用自适应滤波器辨识的系统和待辨识系统的幅度频率响应误差比较大。如果增加迭代次数,最终也会收敛到相应的最优值,但这需要耗费较长时间。
图11 u=0.08时对IIR系统的辨识
图12 u=0.008时对IIR系统的辨识
图13 u=0.0008时对IIR系统的辨识
3.辨识程序代码
%本程序实现利用自适应滤波器进行系统辨识;
close all;
clear;
clc;
%辨识系统
%辨识FIR系统;
x = randn(1,500); %输入信号;
b = fir1(31,0.5); %待辨识的FIR系统;
n = 0.1*randn(1,500); %噪声信号;
d = filter(b,1,x); %参考信号;
mu = 0.008; %下降速率;
ha = adaptfilt.lms(32,mu);
[y,e] = filter(ha,x,d);
figure(1);
subplot(2,1,1);
plot(1:500,[d;y;e]);
title(FIR系统的辨识);
legend(参考值,输出值,误差);
xlabel(时间值);
ylabel(信号值);
subplot(2,1,2);
stem([b.,ha.coefficients.]);
legend(实际值,估计值);
xlabel(系数);
ylabel(系数值);
figure(2);
[H1,W1]=freqz(b,1);
Hf1=abs(H1);
plot
文档评论(0)