自适应滤波器之块自适应滤波器
本文对块自适应滤波器作以介绍,如有表述不当之处欢迎批评指正。欢迎任何形式的转载,但请务必注明出处。
目录
- 1. 引言
- 2. 划分数据块
- 3. 滤波器的输入矩阵
- 4. 块 LMS 算法
- 5. 块长的选择
- 6. 总结
- 7. 参考文献
1. 引言
自适应滤波算法主要包含滤波和滤波器系数更新两个阶段。从滤波器系数更新这个角度来说,传统的 LMS(可参考 自适应滤波器之 LMS 算法)和 NLMS(可参考 自适应滤波器之 NLMS 算法)算法都是 sample-based algorithm,因为每来一个采样点,它们便更新一次滤波器系数。而块自适应滤波器是来了一个数据块之后才更新一次滤波器系数,本文依然使用横向滤波器(可参考 自适应滤波器之横向滤波器)结构,以块 LMS 算法为主,对块自适应滤波器作以简单介绍。
2. 划分数据块
首先,令
x⃗(n)=[x(n),x(n−1)⋯x(n−M+1)]T(1)\vec{x}(n) = [x(n), x(n-1) \cdots x(n-M+1)]^T \tag{1}x(n)=[x(n),x(n−1)⋯x(n−M+1)]T(1)
表示时刻 nnn 的滤波器输入向量(即横向滤波器每个抽头的输入值组成的向量),其中 MMM 表示滤波器的长度,[⋅]T[\cdot]^T[⋅]T 表示向量或矩阵转置。需要注意的是,只有 x(n)x(n)x(n) 是时刻 nnn 到来的新采样点,而其它采样点都是旧的历史数据;
接着,举例说明如何将单独的采样点划分为数据块,令 LLL 表示数据块的长度,kkk 表示数据块的索引。 假设有如下序列,按照数据块的方式(令 L=4L = 4L=4),该序列可以被划分为:
⋯−4,−3,−2,−1,⏟k−10,1,2,3,⏟k4,5,6,7,⏟k+1⋯\cdots \; \underbrace{-4, \, -3, \, -2, \, -1,}_{k-1} \; \underbrace{0, \, 1, \, 2, \, 3,}_{k} \; \underbrace{4, \, 5, \, 6, \, 7,}_{k+1} \cdots ⋯k−1−4,−3,−2,−1,k0,1,2,3,k+14,5,6,7,⋯
可以看到,划分数据块的过程其实很简单,即每 LLL 个采样点就划分出一个块而已。kkk、LLL 、nnn 之间的关系可以表示为:
n=kL+i,i=0,1⋯L−1andk=1,2⋯(2)n=kL+i, \quad i=0, 1 \cdots L-1 \; and \; k=1, 2 \cdots \tag{2}n=kL+i,i=0,1⋯L−1andk=1,2⋯(2)
3. 滤波器的输入矩阵
上节提到,当接受到一个新的采样点时,对应的滤波器输入为一个向量。那么当接收到一个新的数据块时,对应的滤波器输入为什么形式那?答案是:矩阵形式,且表示为:
A⃗T(k)=[x⃗(kL),x⃗(kL+1)⋯x⃗(kL+L−1)](3)\vec{A}^T(k) = [\vec{x}(kL), \vec{x}(kL+1) \cdots \vec{x}(kL+L-1)] \tag{3}AT(k)=[x(kL),x(kL+1)⋯x(kL+L−1)](3)
以上节划分得到的第 kkk 个数据块为例,其对应的滤波器输入矩阵 A⃗(k)\vec{A}(k)A(k) 由表1 给出(令 M=6M=6M=6)。
表1 滤波器输入矩阵示例
表1 中横向表示滤波器的长度 M=6M=6M=6,纵向表示块长 L=4L=4L=4。数值 0,1,2,30,1, 2, 30,1,2,3 是第 kkk 个数据块;−1,−2,−3,−4-1, -2, -3, -4−1,−2,−3,−4 是第 k−1k-1k−1 个数据块;−5-5−5 属于第 k−2k-2k−2 个数据块。
可以看到,当接收到一个新数据块时,滤波器的输入就是将新数据块中每个采样点对应的滤波器输入组织成了矩阵的形式而已。
4. 块 LMS 算法
在对整个数据块滤波期间,滤波器的抽头权向量(即横向滤波器每个抽头权值组成的向量)是固定不变的,这是因为块自适应算法是以块为单位来更新滤波器系数的。
令:
h⃗(k)=[h0(k),h1(k)⋯hM−1(k)]T(4)\vec{h}(k) = [h_0(k), h_1(k) \cdots h_{M-1}(k)]^T \tag{4}h(k)=[h0(k),h1(k)⋯hM−1(k)]T(4)
表示滤波器的抽头权向量,则滤波器对数据块中每个采样点产生的输出为:
y(kL+i)=x⃗T(kL+i)h⃗(k),i=0,1⋯L−1(5)y(kL+i) = \vec{x}^{T}(kL+i) \vec{h}(k), \quad i=0, 1 \cdots L-1 \tag{5}y(kL+i)=xT(kL+i)h(k),i=0,1⋯L−1(5)
令 d(kL+i)d(kL+i)d(kL+i) 表示对应点的期望响应,则误差信号为:
e(kL+i)=d(kL+i)−y(kL+i),i=0,1⋯L−1(6)e(kL+i) = d(kL+i) - y(kL+i), \quad i=0, 1 \cdots L-1 \tag{6}e(kL+i)=d(kL+i)−y(kL+i),i=0,1⋯L−1(6)
其矩阵形式为:
y⃗(k)=[y(kL),y(kL+1),⋯,y(kL+L−1)]T=A⃗(k)h⃗(k)(7)\begin{aligned} \vec{y}(k) &= [y(kL), y(kL+1), \cdots, y(kL+L-1)]^{T} \\ &= \vec{A}(k) \vec{h}(k) \end{aligned} \tag{7} y(k)=[y(kL),y(kL+1),⋯,y(kL+L−1)]T=A(k)h(k)(7)
d⃗(k)=[d(kL),d(kL+1),⋯,d(kL+L−1)]T(8)\vec{d}(k) = [d(kL), d(kL+1), \cdots, d(kL+L-1)]^{T} \tag{8} d(k)=[d(kL),d(kL+1),⋯,d(kL+L−1)]T(8)
e⃗(k)=[e(kL),e(kL+1),⋯,e(kL+L−1)]T=d⃗(k)−y⃗(k)(9)\begin{aligned} \vec{e}(k) &= [e(kL), e(kL+1), \cdots, e(kL+L-1)]^{T} \\ &= \vec{d}(k) - \vec{y}(k) \end{aligned} \tag{9} e(k)=[e(kL),e(kL+1),⋯,e(kL+L−1)]T=d(k)−y(k)(9)
结合传统的 LMS 算法,块 LMS 算法的抽头权向量更新公式可以表示为:
h⃗(k+1)=h⃗(k)+μ∑i=0L−1x⃗(kL+i)e(KL+i)(10)\vec{h}(k+1) = \vec{h}(k) + \mu \sum_{i=0}^{L-1} \vec{x}(kL+i) e(KL+i) \tag{10}h(k+1)=h(k)+μi=0∑L−1x(kL+i)e(KL+i)(10)
其矩阵形式为:
h⃗(k+1)=h⃗(k)+μA⃗T(k)e⃗(k)(11)\vec{h}(k+1) = \vec{h}(k) + \mu \vec{A}^{T}(k) \vec{e}(k) \tag{11}h(k+1)=h(k)+μAT(k)e(k)(11)
(7)、(9)、(11)(7)、(9)、(11)(7)、(9)、(11) 共同构成了块 LMS 算法。
5. 块长的选择
L=ML=ML=M,从计算复杂度观点看,这是最佳选择;
L<ML<ML<M,由于块的长度小于滤波器的长度,这种情况有降低处理时延的好处;
L>ML>ML>M,在自适应过程中会产生冗余计算。
一般选取 L=ML=ML=M,它是大多数实际应用中人们更喜欢的一种自适应滤波选择。
6. 总结
块自适应滤波器是研究频域自适应滤波器的基础,关于块自适应滤波器的步长 μ\muμ 及其它更多的讨论可参考 论文笔记之 BLMS。
7. 参考文献
[1] 自适应滤波器原理(第四版) 原作者:simon haykin
自适应滤波器之块自适应滤波器相关推荐
- 自适应滤波器之 LMS 算法
本文对 LMS 算法作以介绍,如有表述不当之处欢迎批评指正.欢迎任何形式的转载,但请务必注明出处. 目录 1. 引言 2. 基本概念 2.1. 横向滤波器 2.2. 误差性能曲面 2.3. 最陡下降法 ...
- 自适应滤波:最小均方误差滤波器(LMS、NLMS)
作者:桂. 时间:2017-04-02 08:08:31 链接:http://www.cnblogs.com/xingshansi/p/6658203.html 声明:欢迎被转载,不过记得注明出处哦 ...
- 【 FPGA 】FIR 滤波器之内插 FIR 滤波器(Interpolated FIR Filter)
内插 FIR 滤波器简写为 IFIR 滤波器,英文名为:Interpolated FIR Filter 内插 FIR 滤波器和传统的 FIR 滤波器有类似的结构,唯一的区别就是将单位延迟替换为了 k ...
- 常用模拟低通滤波器的设计~经典 IIR 滤波器之巴特沃斯滤波器
目录 常用模拟低通滤波器的设计--巴特沃斯(Butterworth)滤波器 1.确定系统函数的极点 2.巴特沃斯(Butterworth)滤波器 2.1.buttap 函数 2.2.buttord 函 ...
- 【 FPGA 】FIR 滤波器之Single-rate FIR滤波器的系数数据(Filter Coefficient Data)
首先要明确什么是单速率 FIR 滤波器? The basic FIR filter core is a single-rate (input sample rate = output sample r ...
- 自适应滤波(LMS,RLS)
1.背景及相关知识介绍 自适应滤波存在于信号处理.控制.图像处理等许多不同领域,它是一种智能更有针对性的滤波方法,通常用于去噪. 图中x(j)表示 j 时刻的输入信号值,y(j)表示 j 时刻的输出信 ...
- 4)自适应滤波(一)[LMS算法]
目录 一.LMS算法 1.滤波器--改变信号频谱 模拟滤波器: 数字滤波器: 2.自适应滤波器简介 自适应滤波器: 非自适应滤波器: 自适应滤波器应用: 自适应滤波场景: 自适应滤波处理逻辑(处理非平 ...
- 第四章 自适应滤波 笔记
第四章 自适应滤波 [待补充] 文章目录 第四章 自适应滤波 4.1自适应滤波器的基本概念 4.2 自适应滤波器的结构 4.3 LMS 自适应滤波器 4.3.1 最陡下降法原理 4.3.2 LMS 算 ...
- 频域自适应 matlab,频域自适应滤波算法及应用.doc
频域自适应滤波算法及应用 本科毕业设计 频域自适应滤波算法及应用 华 南 理 工 大 学 毕 业 设 计 (论文) 任 务 书 兹发给 级 班学生毕业设计(论文)任务书,内容如下: 1.毕业设计(论文 ...
- GNSS说第(七)讲---自适应动态导航定位(八)---抗差自适应滤波
GNSS说第(七)讲-自适应动态导航定位(八)-抗差自适应滤波 抗差自适应滤波 概述 运动定位与导航一般应用Kalman滤波算法.可靠的Kalman滤波算法要求有可靠的函数模型.随机模型以及合理的估计 ...
最新文章
- 哪个厂家的监控平台用的云服务器_哪个品牌的云服务器最好用?
- android控件ems,Android登录等待效果
- 【整理】Smartforms的导出和导入
- 关于面象接口编程的理解
- 我对创业和管理的一些看法
- Context.getExternalFilesDir()和Context.getExternalCacheDir()方法
- 组策略里更改更新和设置客户端首页
- python获取请求中的参数_python – 在Tastypie中获取请求参数
- 信息安全系统设计基础实验三:实时系统的移植
- 【u008】瑞瑞的木棍
- 门户通专访草根站长九天狼:做站贵在坚持
- 光继电器一体化控制实训系统
- html用百度网盘怎么看,百度网盘怎么使用?别人给了我一串字母
- 7-2 地下迷宫探索
- 详细分析contrex-A9的汇编代码__switch_to(进程切换)
- “有钱了”的理想汽车,能否拿下自动驾驶赛道入场券?
- Android程序员的春天!Android项目开发如何设计整体架构?太香了
- 医学图像配准之形变场可视化(绘制形变场)
- springboot学校学校运动会信息管理系统毕业设计-附源码
- 2021考研数学真题试卷(数学一)