LMS滤波器
使用LMS自适应算法计算输出、误差和权重
- 库:
DSP系统工具箱/滤波/自适应滤波器
DSP系统工具箱HDL支持/滤波金宝app
描述
LMS Filter模块可以通过使用五种不同的算法实现自适应FIR滤波器。该块估计了最小化误差所需的滤波器权重或系数,e (n),输出信号之间y (n)而期望的信号,d (n).输出是经过滤波的输入信号,这是对期望信号的估计。错误端口输出输出信号减去所需信号的结果。
在特定条件下,该块还支持SIMD代码生成。金宝app详细信息请参见代码生成.
港口
输入
输入
-输入信号
标量|向量
连接要过滤的信号,指定为标量或列向量。
当输入是定点时,必须有符号。
当你设置算法参数符号误差LMS
,Sign-Data LMS
,或Sign-Sign LMS
,数据通过输入Port必须为实端口。
数据类型:单
|双
|不动点
想要的
-所需信号
向量|矩阵
连接指定为矢量或矩阵的所需信号。信号的数据类型、复杂性和维度必须与输入
信号。
当输入为定点,所期望的信号必须是有符号的定点。
当你设置算法参数符号误差LMS
,Sign-Data LMS
,或Sign-Sign LMS
,数据通过想要的Port必须为实端口。
数据类型:单
|双
|不动点
适应
-更新过滤器权重
标量|向量
当该端口的输入大于零时,块将不断更新过滤器权重。当该端口的输入小于或等于零时,过滤器权重保持在当前值。
依赖关系
属性时,此端口才会出现适应港口
参数在
.
数据类型:单
|双
|int8
|int16
|int32
|布尔
重置
-重置过滤器权重
标量|向量
信号,将过滤器权重值重置为它们的初始值,指定为一个向量。只要在reset端口检测到复位事件,块就会重置筛选器权重。复位信号速率必须与输入的数据信号速率一致。
有关重置事件类型,请参见重置
参数。
依赖关系
属性时,此端口才会出现重新设置端口参数前沿
,下降沿
,要么边缘
,或零的样本
.
数据类型:单
|双
|int8
|int16
|int32
|布尔
输出
参数
主要选项卡
算法
-选择算法
LMS
(默认)|归一化LMS
|符号误差LMS
|Sign-Data LMS
|Sign-Sign LMS
选择用于计算过滤器权重的算法。
滤波器长度
-过滤器长度
32
(默认)|标量
输入FIR滤波器权重向量的长度。
指定步长
-指定步长via
对话框
(默认)|输入端口
对话框
属性指定步长步长(mu)参数。输入端口
属性指定步长步长
端口。
步长(mu)
-步长
0.1
(默认)|正标量
泄漏系数(0 ~ 1)
-泄漏系数
1.0
(默认)|标量
输入泄漏因子,0 < 1 - μα≤1.
可调:是的
过滤器权重的初始值
—过滤器权重的初始值
0
(默认)|向量|标量
输入初始过滤器权重w(0)作为向量或标量。输入标量时,块将使用标量值创建过滤器权重向量。这个向量的长度等于过滤器的长度,它的所有值都等于标量值。
适应港口
—开启适配端口
在
(默认)|从
选中此复选框可启用适应
输入端口。
重新设置端口
—复位端口
没有一个
(默认)|前沿
|下降沿
|要么边缘
|零的样本
方法将筛选器权重值重置为初始值时,请使用重新设置端口参数。复位信号必须与输入的数据信号速率相同。
选择没有一个
禁用重置
端口。要启用重置端口,从列表中选择一个:
前沿
—当重置输入执行以下操作之一:从负值上升到正值或零
从0上升到正值,其中的上升不是从负值上升到零的延续(见下图)
下降沿
—当重置输入执行以下操作之一:从正值下降到负值或零
从0下降到负值,其中下降不是从正值下降到0的延续(参见下图)
要么边缘
—当重置Input是前沿
或下降沿
零的样本
—在每个reset输入不为零的采样时间触发复位操作
输出滤波器权重
-输出滤波器权重
在
(默认)|从
选择输出滤波器权重参数导出筛选器权重出世
端口。对于每次迭代,块从这个端口输出当前更新的过滤器权重。
数据类型标签
舍入模式
-舍入运算方法
地板上
(默认)|天花板
|收敛
|最近的
|轮
|简单的
|零
饱和整数溢出
-溢出动作方式
Off(默认)| on
当您选择此参数时,块将使其定点操作的结果饱和。清除此参数时,块将包装其定点操作的结果。有关详情饱和
而且包装
,请参阅溢出模式用于定点运算。
参数
——参数
与第一次输入相同的字长
(默认)|指定字长
|二进位点缩放
选择如何指定字长和泄漏因子和步长的分数长度:
与第一次输入相同的字长
——泄漏因子的字长和步长与块的第一个输入相匹配。在此模式下,泄漏因子和步长的分数长度将自动设置为仅二进制点缩放,该缩放为给定系数的值和字长提供了可能的最佳精度。指定字长
—您可以输入泄漏因子的字长和步长,以位为单位。在此模式下,泄漏因子和步长的分数长度将自动设置为仅二进制点缩放,该缩放为给定系数的值和字长提供了可能的最佳精度。二进位点缩放
—您可以输入字长和泄漏因子和步长的分数长度,以比特为单位。泄漏因子和步长必须具有相同的字长,但分数长度可以不同。
为指定步长
参数,如果您选择输入端口
,泄漏因子的字长与步长输入处的字长相同步长
端口。泄漏因子的分数长度根据泄漏因子的字长自动设置为可能的最佳精度。
依赖关系
此参数仅当设置为指定步长参数对话框
权重
-过滤器权重的字和分数长度
和第一次输入一样
(默认)|二进位点缩放
选择如何指定单词长度和块过滤器权重的分数长度:
和第一次输入一样
——过滤器权重的单词长度和分数长度与第一个输入块的长度相匹配。二进位点缩放
—您可以输入单词长度和过滤器权重的分数长度,以比特为单位。
积和商
-积和商的字和分数长度
和第一次输入一样
(默认)|二进位点缩放
选择如何指定单词长度和分数长度u 'u,W 'u, , ,商q,这里,u是输入向量,W是滤波器权值的向量,μ是步长,e是错误,和问商的定义是
和第一次输入一样
——这些数量的字长和分数长度与第一个输入块的字长和分数长度匹配。二进位点缩放
—您可以输入单词长度和这些数量的分数长度,以比特为单位。数量的单词长度必须相同,但分数长度可以不同。
锁定数据类型设置,防止由定点工具更改
—防止定点工具覆盖数据类型
从
(默认)|在
选择此参数可防止定点工具覆盖在块对话框中指定的数据类型。
块特征
数据类型 |
|
直接引线 |
|
多维信号 |
|
适应信号 |
|
讨论二阶导数过零检测 |
|
更多关于
LMS滤波算法
当你选择LMS
为算法
参数时,块将使用最小均方(LMS)算法。该算法由这些方程定义。
本块中可用的各种LMS自适应滤波器算法定义为:
LMS——
规范化LMS——
在归一化LMS中,为了克服权重更新中潜在的数值不稳定性,在分母中添加了一个小的正常数ε。对于双精度浮点输入,ε是
每股收益
函数。对于单精度浮点输入,ε是的输出每股收益(“单一”)
.对于定点输入,ε = 0。符号错误LMS——
签名数据LMS——
在哪里u(n)是实数。
签名LMS——
在哪里u(n)是实数。
变量 | 描述 |
---|---|
n |
当前时间索引 |
u(n) |
在阶跃处缓冲输入样本的向量n |
u *(n) |
缓冲输入样本的矢量在阶跃处的复共轭n |
w(n) |
滤波权值的矢量按阶跃估计n |
y (n) |
按步骤过滤的输出n |
e (n) |
阶跃估计误差n |
d (n) |
按阶跃得到所需的响应n |
µ |
自适应步长 |
α | 泄漏因子(0 < α≤1) |
ε |
修正在权重更新过程中发生的任何潜在的数值不稳定性的常数。 |
参考文献
海耶斯,M.H.统计数字信号处理与建模“,”纽约:John Wiley & Sons出版社,1996年。
扩展功能
C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。金宝app
生成的代码依赖于memcpy
或memset
函数(string.h
)在某些条件下。
的LMS滤波器块支持SIM金宝appD代码生成使用英特尔AVX2技术在这些条件下:
算法设置为
LMS
或归一化LMS
.输入信号为实值。
输入信号的数据类型为
单
或双
.
SIMD技术显著提高了生成代码的性能。
HDL代码生成
使用HDL Coder™为FPGA和ASIC设计生成Verilog和VHDL代码。
HDL Coder™提供了影响HDL实现和合成逻辑的额外配置选项。
默认情况下,LMS Filter实现对过滤器的FIR部分使用线性和。
LMS Filter在以下条件下实现树求和(具有更短的关键路径):
LMS过滤器用于真实数据。
累加器的字长W 'u数据类型至少为
装天花板(log2(滤波器长度))
比Product W’u数据类型的字长宽的位。累加器W 'u数据类型具有与乘积相同的分数长度W 'u数据类型。
ConstrainedOutputPipeline | 通过在设计中移动现有延迟来放置在输出端的寄存器数量。分布式管道不会重新分发这些寄存器。默认为 |
InputPipeline | 要在生成的代码中插入的输入管道阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认为 |
OutputPipeline | 要在生成的代码中插入的输出管道阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认为 |
此块支持复杂信号的代码金宝app生成。
HDL Coder不支持金宝app
归一化LMS
LMS滤波器的算法。的
重置
仅支持端口金宝app布尔
而且无符号
输入。的
适应
仅支持端口金宝app布尔
输入。滤波器长度必须大于等于2。
定点转换
使用定点设计器设计和模拟定点系统。
如果输入是一个固定点,它必须是一个带符号的整数或带符号的固定点,其斜率为2的幂,且偏差为零。
定点数据类型
下面的图表显示了LMS Filter块中用于定点信号的数据类型。下表总结了图表中使用的变量的定义。
变量 | 定义 |
---|---|
u |
输入向量 |
W |
滤波器权值向量 |
µ |
步长 |
e |
错误 |
问 |
商, |
产品u'u |
能源计算图中的产品数据类型 |
蓄电池u'u |
能量计算图中的蓄能器数据类型 |
产品W'u |
卷积图中的产品数据类型 |
蓄电池W'u |
卷积图中的累加器数据类型 |
产品 |
step size和error diagram中的Product数据类型 |
产品 |
权重更新图中的产品和累加器数据类型。1 |
1此数量的累加器数据类型将自动设置为与产品数据类型相同。该累加器的最小值、最大值和溢出信息记录为产品信息的一部分。自动伸缩将此积和累加器视为一种数据类型。
可以设置块掩码中参数、权重、积、商、累加的数据类型。下载188bet金宝搏该块的定点输入、输出、掩码参数必须具备以下特征:
输入信号和期望信号必须具有相同的字长,但它们的分数长度可以不同。
步长和泄漏因子必须具有相同的字长,但它们的分数长度可以不同。
输出信号和误差信号具有与所需信号相同的字长和相同的分数长度。
商和乘积的输出u'u,W'u, , 操作必须具有相同的字长,但它们的分数长度可以不同。
属性的累加器数据类型u'u而且W'u操作必须具有相同的字长,但它们的分数长度可以不同。
如果乘数的输入中至少有一个是实数,则乘数的输出为乘积输出数据类型。如果乘数的两个输入都是复杂的,则乘法的结果为累加器数据类型。详细信息请参见乘法数据类型.
版本历史
R2006a之前介绍
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。