DSP自适应滤波器设计

一、自适应滤波原理
所谓自适应滤波器,就是利用前一时刻已获得的滤波器参数,自动地调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。根据环境的改变,使用自适应算法来改变滤波器的参数。

二、自适应LMS算法
根据小均方误差准则以及均方误差曲面,自然的我们会想到沿每一时刻均方误差的陡下降在权向量面上的投影方向更新,也就是通过目标函数ξ(k)的反梯度向量来反复迭代更新。由于均方误差性能曲面只有一个极小值,只要收敛步长选择恰当,不管初始权向量在哪,后都可以收敛到误差曲面的小点,或者是在它的一个邻域内。这种沿目标函数梯度反方向来解决小化问题的方法,我们一般称为速下降法,表达式如下:

基于随机梯度算法的小均方自适应滤波算法的完整表达式如下:

LMS自适应算法是一种特殊的梯度估计,不必重复使用数据,也不必对相关矩阵和互相关矩阵进行运算,只需要在每次迭代时利用输入向量和期望响应,结构简单,易于实现。虽然LMS收敛速度较慢,但在解决许多实际中的信号处理问题,LMS算法是仍然是好的选择。

三、LMS算法程序流程

f1f8c604498e47cc9e825c76627ec821.png

四、滤波器C语言代码

#include "math.h"
#include "stdio.h"
int     N=16;                            //滤波器阶数
float   u=0.005;                       //LMS的收敛步长
float   pi=3.1415926;
int     i,j;
float   x[1039];
float   y[1024];
float   d[1024];
float   e[1024];
float   X[16];
float   W[16];
void main()
{
    for (i=0;i<1024;i++)                //参考信号
    {
        x[i]=sin((9*i-36)*pi/180);
    }


    for (i=0;i<1024;i++)                //期望信号
    {
        d[i]=x[i+N-1];
    }

    for (i=0;i<N;i++)                  //初始化滤波器参数
    {
        W[i]=0;
    }

    for (i=0;i<1024;i++)
    {
        y[i]=0;
        for(j=0;j<N;j++)
        {
            X[j]=x[i+N-j-1];
        }
        for (j=0;j<N;j++)
        {
            y[i]=y[i]+W[j]*X[j];       //计算滤波信号
        }
        e[i]=d[i]-y[i];
        for(j=0;j<N;j++)
        {
            W[j]=W[j]+2*u*e[i]*X[j];   //更新自适应滤波器
        }
    }
}

ccs仿真自适应滤波器:

工程目录:

44142e7f84934823938c6ab971ca694d.png

仿真设计:

1e2808337a554e07b7036e2bc1ef9979.png

编译工程后转入Debug环境:

仿真波形

e659af65a819435cb89f9951558ebce0.png

8b84bc2babb048c7b257c2fee6354c84.png

f1b7f055cc194a70ba60cbccb9652fe4.png

718a709fe6334e42bb810e900adee9a0.png

8c038bac29164923a6767f8db6467adc.png

497f4db72b644c4f811a20e2d5ef6bcb.png

 

 

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值