这个例子演示了RLS自适应算法使用逆系统识别模型。
的自适应滤波器级联一个未知的过滤器使自适应滤波器收敛到一个未知的逆系统的解决方案。
如果未知系统的传递函数和自适应滤波器H(z),G(z),分别测量误差之间的期望信号和信号级联系统达到最低的时候G (z) H (z) =1。这个关系是真实的,G(z)必须等于1 /H (z)未知的,传递函数的逆系统。
证明这是真的,创建一个信号年代级联滤波器对输入。
s = randn (3000 1);
在级联滤波器的情况下,未知的过滤结果的延迟信号到达后求和点两个过滤器。防止自适应滤波器试图适应信号还没有见过(相当于预测未来),延迟12个样本的期望信号,这是未知的系统。
一般来说,你不知道你们的订单的系统识别。在这种情况下,推迟期望信号样本的数量等于半自适应滤波器的顺序。延迟输入要求将12新鲜感样本输入年代
。
延迟= 0(12日1);d =[延迟;s (1:2988)];%连接延迟和信号。
你必须保持所需的信号向量d
一样的长度x
,所以调整信号元素计数允许延迟样本。
虽然不是通常情况下,对于这个例子你知道未知的过滤器的顺序,所以添加一个延迟等于订单未知的过滤器。
对于未知的系统,使用一个低通滤波器,12阶数字滤波器。
filt = dsp.FIRFilter;filt。0.55分子= fir1(12日,“低”);
过滤年代
提供了自适应算法的输入数据信号的功能。
x = filt(年代);
利用RLS算法,创建一个dsp.RLSFilter
对象和设置它长度
,ForgettingFactor
,InitialInverseCovariance
属性。
更多信息的输入条件准备RLS算法对象,引用dsp.RLSFilter
。
p0 = 2 *眼(13);λ= 0.99;rls = dsp.RLSFilter(13日“ForgettingFactor”λ,…“InitialInverseCovariance”、p0);
这个例子旨在开发一个逆解,你需要小心的信号携带的数据和所需的信号。
自适应滤波器的早期例子使用过滤噪声作为所需的信号。在这种情况下,过滤噪音(x
)携带未知系统的信息。高斯分布和方差为1,过滤噪音d
所需的信号。代码运行这个自适应滤波器的方法是:
[y, e] = rls (x, d);
在哪里y
返回输出和过滤e
包含误差信号作为筛选适应发现未知的逆系统。
获得RLS滤波器的估计系数。
b = rls.Coefficients;
视图改编RLS滤波器的频率响应(逆系统,G(z))使用freqz
。逆系统看起来像一个高通滤波器和线性相位。
freqz (b, 1)
查看未知系统的频率响应,H(z)的响应是一个低通滤波器截止频率为0.55。
freqz (filt.Numerator, 1)
级联的结果未知的系统和适应滤波器是一种补偿系统延长截止频率为0.8。
overallCoeffs = conv (filt.Numerator, b);freqz (overallCoeffs, 1)
[1]海耶斯,曼森H。统计数字信号处理和建模。新泽西州霍博肯:1996年,约翰·威利& Sons pp.493 - 552。
[2]微积分,西门,自适应滤波器理论。上台北:新世纪,Inc ., 1996年。