频域自适应滤波器
计算输出,错误,并使用频域FIR自适应滤波器系数
库:
DSP系统工具箱/过滤/自适应滤波器
描述
的频域自适应滤波器块实现了一种自适应有限脉冲响应(杉木)滤波器在频域中使用快速块至少意味着广场(LMS)算法。的滤波器长度和块长度参数指定滤波器长度和算法使用的块长度值。当您选择输出滤波器FFT系数复选框,块输出电流的离散傅里叶变换滤波器系数。块提供了约束和无约束的算法与分区和分区模式。有关详细信息,请参见算法。
港口
输入
输入- - - - - -数据输入
列向量
信号的频域FIR自适应滤波器过滤。数据输入和期望信号的输入必须有相同的大小和数据类型。输入向量的长度必须整除块长度参数值。
数据输入可以适应信号只要帧长度的倍数块长度。你可以改变的数量列向量中的元素在建模仿真。
数据类型:单
|双
复数的支持:金宝app是的
想要的- - - - - -期望信号
列向量
频域自适应滤波器调整滤波器权值误差降到最低,错误,收敛输入信号与期望信号尽可能密切。
输入和期望信号的数据必须具有相同的大小和数据类型。期望信号向量的长度必须整除块长度参数值。
所需的信号可以适应信号只要帧长度的倍数块长度。你可以改变的数量列向量中的元素在建模仿真。
数据类型:单
|双
复数的支持:金宝app是的
μ- - - - - -步长输入
真正的标量范围(0,1)
适应步长因子,指定为一个真正的标量范围(0,1)。使用一个小的步长可以确保一个小的稳态误差。然而,一个小的步长减少由此产生的自适应滤波器的收敛速度。增加步长提高了收敛速度,在稳态均方误差增加的成本。当步长值1
,该算法提供了最佳的权衡之间的收敛速度和稳态均方误差。
依赖关系
这个端口出现当您选择从港口指定步长参数。
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
泄漏- - - - - -泄漏因素输入
真正的标量范围(0,1)
泄漏系数用于漏水的自适应滤波器,指定为一个真正的标量范围(0,1)。值小于1时,块实现了一个漏水的自适应算法。当价值1
没有泄漏,块提供了适应方法。
依赖关系
这个端口出现当您选择从港口指定泄漏因素复选框。
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
Avrg- - - - - -平均因子输入
真正的标量范围(0,1)
用于计算平均因素指数窗口的快速傅里叶变换(FFT)输入信号系数更新力量,指定为一个真正的标量范围(0,1)。
依赖关系
这个端口出现当您选择从港口指定平均因子复选框。
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
抵消- - - - - -抵消标准化术语
非负实数
抵消的标准化术语系数更新,指定为非负的标量值。使用这个值来避免部门由零个或部门非常小的数字,如果输入信号的FFT权力变得非常小。
依赖关系
这个端口出现当您选择指定偏移量从端口复选框。
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
适应- - - - - -使滤波器系数的更新
非负实数
如果你通过这个端口,输入一个非零的标量值块不断更新滤波器系数。如果你输入一个零通过这个端口,滤波器系数不更新,和它们的值保持在当前的价值。
依赖关系
这个端口出现当您选择使适应港口复选框。
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
重置- - - - - -使滤波器状态重置
非负实数
如果你通过这个端口,输入一个非零的标量值块重置所有内部状态。如果你通过这个端口输入一个零,内部状态复位。
依赖关系
这个端口出现当您选择启用复位端口复选框。
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
输出
输出- - - - - -过滤后的输出
列向量
过滤输出,作为一个列向量返回。块调整滤波器权值收敛输入信号与期望信号尽可能密切。滤波器输出融合信号。
数据类型:单
|双
复数的支持:金宝app是的
错误- - - - - -输出和期望信号的区别
列向量
输出信号与期望信号的区别,作为一个列向量返回。自适应滤波器的目标是最小化这个错误。块调整权重收敛到最优滤波器权值产生一个输出信号尽可能匹配所需的信号。更多的细节错误计算,看引用。
数据类型:单
|双
复数的支持:金宝app是的
FFTCoeffs- - - - - -目前FFT滤波器的系数
行向量
当前滤波器系数的离散傅里叶变换,返回一个行向量。为限制FDAF
和无约束FDAF
算法,这个向量的长度等于之和滤波器长度价值和块长度价值。最初这个端口输出的FFT值最初的时域系数参数。在建模仿真,该端口输出FFT的当前值滤波器系数。
依赖关系
这个端口出现当您选择输出滤波器FFT系数复选框。
数据类型:单
|双
复数的支持:金宝app是的
参数
方法- - - - - -法计算滤波器系数
限制FDAF
(默认)|分区限制FDAF
|无约束FDAF
|分区无约束FDAF
方法用于计算滤波器系数,指定为:
限制FDAF
——强加一个梯度约束过滤阀重量。分区限制FDAF
——分区滤波器的脉冲响应减少延迟。无约束FDAF
——没有梯度约束对过滤阀重量。分区无约束FDAF
——分区滤波器的脉冲响应减少延迟。没有梯度约束对过滤器利用权重。
更多细节,请参阅算法。
滤波器长度- - - - - -滤波器系数向量的长度
32
(默认)|积极,整数值标量
数字滤波器系数向量的长度,指定为一个积极,整数值标量。
块长度- - - - - -块长度系数的更新
32
(默认)|积极,整数值标量
块长度系数更新,指定为一个积极,整数值标量。自适应滤波器处理输入数据和期望信号的样本块长度设定这个参数。有关这些数据是如何处理的过滤器,明白了算法。输入向量的长度必须整除块长度参数值。默认值的块长度参数设置的值滤波器长度参数。
从港口指定步长- - - - - -标志指定步长
(默认)|
当您选择此复选框,输入通过适应步长μ端口。清除此复选框时,步长块对话框中通过指定步长参数。
步长- - - - - -适应步长
1
(默认)|真正的标量范围(0,1)
适应步长因子,指定为一个真正的标量范围(0,1)。设置步长参数1
在适应提供了最快的收敛。
可调:是的
依赖关系
这个参数出现当你清楚从港口指定步长复选框。
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
从港口指定泄漏因素- - - - - -标志指定泄漏的因素
(默认)|
选中此复选框时,泄漏的因素是输入通过泄漏端口。清除此复选框时,泄漏的因素是通过在块中指定对话框泄漏的因素参数。
LeakageFactor- - - - - -适应泄漏因素
1
(默认)|真正的标量范围(0,1)
泄漏系数用于漏水的自适应滤波器,指定为一个真正的标量范围(0,1)。值小于1
块实现了一个漏水的自适应算法。当价值1
没有泄漏,块提供了适应方法。
可调:是的
依赖关系
这个参数出现当你清楚从港口指定泄漏因素复选框。
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
从港口指定平均因子- - - - - -标志指定平均因子
(默认)|
当您选择此复选框,输入信号功率的平均因素通过Avrg端口。清除此复选框时,平均因子是通过在块中指定对话框平均的因素参数。
平均的因素- - - - - -平均信号功率因素
0.9
(默认)|真正的标量范围(0,1)
平均因子用于计算系数的指数窗口FFT输入信号力量更新,指定为一个真正的标量范围(0,1)。
可调:是的
依赖关系
这个参数出现当你清楚从港口指定平均因子复选框。
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
指定偏移量从端口- - - - - -标志指定偏移量
(默认)|
选中此复选框时,抵消的标准化术语系数更新输入通过抵消端口。当你清除此复选框,通过抵消指定块对话框抵消参数。
抵消- - - - - -抵消标准化术语
0
(默认)|非负实数
抵消的标准化术语系数更新,指定为非负的标量值。使用这个值来避免部门由零个或部门非常小的数字,如果输入信号的FFT权力变得非常小。
可调:是的
依赖关系
这个参数出现当你清楚指定偏移量从端口复选框。
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
最初的FFT输入信号功率- - - - - -最初的FFT输入信号功率
1
(默认)|积极数字标量
最初的共同价值的所有输入信号FFT权力,指定为一个积极的数字标量值。
如果你改变这个值在仿真期间,变更生效后重置事件发生。
可调:是的
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
最初的时域系数- - - - - -最初的时域滤波器的系数
0
(默认)|标量|向量
最初的时域自适应滤波器的系数,指定为一个标量或矢量的长度等于中指定的值滤波器长度参数。自适应滤波器的块使用这些系数来计算初始频域滤波器系数。
如果你改变这个值在仿真期间,变更生效后重置事件发生。
可调:是的
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
使适应港口- - - - - -国旗使系数更新
(默认)|
选中此复选框时,适应输入端口启用。如果你通过这个端口,输入一个非零的标量值块不断更新滤波器系数。如果你输入一个零通过这个端口,滤波器系数不更新和它们的值保持在当前的价值。
启用复位端口- - - - - -国旗重置内部状态
(默认)|
选中此复选框时,重置输入端口启用。如果你通过这个端口,输入一个非零的标量值块重置所有内部状态。如果你通过这个端口输入一个零,内部状态复位。
输出滤波器FFT系数- - - - - -国旗输出滤波器的DFT系数
(默认)|
选中此复选框时,FFTCoeffs输出端口启用。通过这个端口,块输出电流的离散傅里叶变换滤波器系数。
模拟使用- - - - - -类型的模拟运行
代码生成
(默认)|解释执行
模拟运行的类型指定为以下之一:
代码生成
使用生成的C代码,模拟模型。第一次运行模拟,仿真软件金宝app®生成C代码块。为后续模拟C代码重用,只要不改变模型。这个选项需要额外的启动时间但模拟提供了更快的速度比解释执行
。解释执行
——使用MATLAB模拟模型®翻译。这个选项可以缩短启动时间,但仿真速度比慢代码生成
。
块特征
数据类型 |
|
直接引线 |
|
多维信号 |
|
适应信号 |
|
讨论二阶导数过零检测 |
|
算法
频域自适应滤波包括三个步骤——过滤、误差估计,tap-weight适应。该算法在频域实现了冷杉过滤使用overlap-save或交叠相加的方法。这两个方法的实现细节,看到算法部分的dsp.FrequencyDomainFIRFilter
对象页面。误差估计和tap-weight适应使用快速实现块LMS算法(FBLMS)。
快块LMS算法
频域自适应滤波器处理输入数据和期望信号数据作为样本块使用快速块LMS (FBLMS)算法。这是框图的频域自适应滤波器使用FBLMS算法。这个图中的频域滤波器使用overlap-save方法。
地点:
N——滤波器长度
l——块长度
μ——步长参数
x (n)——输入信号
X (k)——改变了输入信号在频域
d (n)——期望信号
e (n)——期望信号和滤波器输出之间的误差
E (n)——转换误差信号在频域
W (k)——Tap-weights向量在频域
更多细节的错误估计和tap-weights改编,明白了[2]。
约束和无约束FBLMS算法
前面的图是限制版本。如果删除的梯度约束部分算法,无约束FBLMS实现。有关的收敛行为约束和无约束的变化,看到的[2]。
分区FBLMS算法
滤波器的延迟大约等于冷杉分子的长度。如果滤波器的脉冲响应非常长,变得明显的延迟。分区的分区FBLMS算法减少了延迟脉冲响应。分区的频域冷杉过滤速度比长脉冲响应的时域滤波,成本的增加延迟。减少延迟和频域滤波效率更高,脉冲响应算法分区为多个短块和对每个块执行overlap-save或交叠相加。不同的块组合的结果获得最终的输出。这种方法的延迟块长度的顺序,而不是整个脉冲响应长度。这减少了延迟付出额外的成本计算。更多细节的实现,明白了[2]。
引用
[1]Shynk, J.J.“频域和多重速率的自适应过滤。”IEEE信号处理杂志,1号卷。9日,页。14-37,1992年1月。
[2]Farhang-Boroujeny, B。,自适应滤波器:理论和应用程序奇切斯特,英国,威利,1998年。
[3]Stockham, t·G。,小。“高速卷积和相关性。”学报1966年春季联合计算机会议,AFIPS,28卷,1966年,页229 - 233。
扩展功能
C / c++代码生成
使用仿真软件生成C和c++代码®编码器™。金宝app
版本历史
介绍了R2018a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。