AnyMath 文档

FIR 插值

具有FIR滤波器的多相插值。

模块类型: FIRInterpolation

库中的路径:

/Signal Operations/Filters/MultirateFilters/FIR Interpolation

资料描述

座 *FIR 插值*使用整数插值系数执行高效的多相插值 据所述第一测量。

从概念上讲,插值与有限脉冲响应滤波器(FIR滤波器)表示在频率的增加 一次,随后使用重构FIR滤波器,其通常是具有有限频带的理想内插滤波器的近似。

将每个输入通道的采样率增加到更高的采样率是通过添加 样本之间没有零。 接下来,FIR滤波器对变换后的数据的每个信道进行滤波。 所得到的离散信号具有采样频率在 原始采样率的倍。

fir interpolation 1

然而,实块算法实现了直接形式FIR滤波器的多相结构,这是图中所示的组合系统的有效等价物。 有关详细信息,请参阅算法

座 *FIR 插值*可以在触发器子系统中使用,如果参数 *速率选项*值已设置 强制单速率处理.

港口

输出

# OUT_1 — 插值后输出数据
标量,标量 | 向量资料 | 矩阵

Details

插值后的输出数据,作为标量、矢量或矩阵返回。

块的行为取决于参数的值 速率选项:

  • 强制单速率处理 —当选择此值时,单位保存输入采样率和内插信号,增加输出帧的大小在 有一次。

  • 允许多速率处理 -当选择此值时,单位内插信号的方式,输出采样频率在 倍于输入采样率。

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

复数支持

是的

输入

# IN_1 — 输入数据
标量,标量 | 向量资料 | 矩阵

Details

块的输入数据,指定为向量或矩阵。

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

复数支持

是的

# Num — 滤波器传递函数分子的系数
向量资料

Details

矢量形式的FIR滤波器分子的系数的输入端口。

传递函数 FIR滤波器定义为

为作为有效重建滤波器工作,系数通常对应于归一化截止频率值不大于内插系数的逆的值的低通滤波器。

系数值是可配置的。 也就是说,它们的值可以在建模过程中发生变化,而它们的属性(如大小、数据类型和复杂性)保持不变。

依赖关系

要使用此端口,请设置参数 *系数来源*价值 输入端口.

数据类型

漂浮物16, 漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

复数支持

是的

参数

主机

# 系数来源 — 系数的设置方法
参数 | 输入端口

Details

如果参数设置为 参数,然后在参数设置窗口中设置滤波器系数。 如果参数设置为 输入端口,然后通过输入端口*Num*设置滤波器系数。

Dialog parameters | Input port

默认值

Dialog parameters

程序使用名称

CoefficientSource

可调谐

可计算

# FIR滤波器系数 — 低通FIR滤波器的系数
String

Details

指定FIR滤波器传递函数的分子的系数 :

为作为有效重建滤波器工作,通常选择系数以便对应于归一化截止频率值不大于内插系数的逆的值的低通滤波器。

块将所有滤波器状态初始化为零。

依赖关系

若要使用此参数,请为参数设置 *系数来源*价值 参数.

默认值

[0; -0.000129061486199961; -0.000228040316280948; 0; 0.000554613738572437; 0.000802607430267054; 0; -0.00152912350278902; -0.00203638780675590; 0; 0.00342230705979440; 0.00433928347039265; 0; -0.00673109372352446; -0.00825637814441869; 0; 0.0121125402586868; 0.0145130044012328; 0; -0.0204721583515830; -0.0241392529239787; 0; 0.0332125142618354; 0.0388230898504630; 0; -0.0529640018790903; -0.0619837024555044; 0; 0.0860610417481775; 0.102712774109103; 0; -0.154048515452570; -0.197567026018057; 0; 0.408837525145054; 0.824655115145336; 1; 0.824655115145336; 0.408837525145054; 0; -0.197567026018057; -0.154048515452570; 0; 0.102712774109103; 0.0860610417481775; 0; -0.0619837024555044; -0.0529640018790903; 0; 0.0388230898504630; 0.0332125142618354; 0; -0.0241392529239787; -0.0204721583515830; 0; 0.0145130044012328; 0.0121125402586868; 0; -0.00825637814441869; -0.00673109372352446; 0; 0.00433928347039265; 0.00342230705979440; 0; -0.00203638780675590; -0.00152912350278902; 0; 0.000802607430267054; 0.000554613738572437; 0; -0.000228040316280948; -0.000129061486199961]

程序使用名称

FilterCoefficients

可调谐

可计算

# 插值因子 — 的插值系数
Real number

Details

指定整数系数 . 块根据该因子增加输入序列的采样率。

默认值

3

程序使用名称

InterpolationFactor

可调谐

可计算

# 输入处理 — 输入信号处理类型
列作为通道(基于帧) | 将元素作为通道处理(基于采样)

Details

指定块是基于参考还是帧执行处理。 可供选择的选项:

  • 将元素作为通道处理(基于采样) -输入信号的每个元素被视为独立的通道(基于样本的处理)。

  • 列作为通道(基于帧) -输入信号的每一列被视为独立的信道(基于帧的处理)。

有关详细信息,请参阅 按帧和计数进行信号处理.

Columns as channels (frame based) | Elements as channels (sample based)

默认值

Columns as channels (frame based)

程序使用名称

InputProcessing

可调谐

可计算

# 速率选项 — 块对输入数据进行插值的方法
允许多速率处理 | 强制单速率处理

Details

指定块应插入输入数据的方法。 可供选择的选项:

  • 强制单速率处理 -当选择此方法时,单位保存输入信号的采样率和内插信号,增加输出帧的大小在 有一次。 要选择此方法,参数 *输入处理*必须有一个值 列作为通道(基于帧).

  • 允许多速率处理 -当选择此方法时,单位内插信号以这样的方式,输出采样率 倍于输入采样率。

Allow multirate processing | Enforce single-rate processing

默认值

Enforce single-rate processing

程序使用名称

RateOptionsFrameBased

可调谐

可计算

# 输出缓冲区初始条件 — 初始条件

Details

仅当块配置为多速处理时,即对于参数,此参数才会出现 速率选项*值已设置 允许多速率处理 在这种情况下,在块中存在数据传输的延迟。 多速、多任务处理期间的延迟量取决于参数的值。 *输入处理.

输入处理 延迟

将元素作为通道处理(基于采样)

选择

列作为通道(基于帧)

框架( 每帧样本)

当块显示延迟时,默认情况下初始条件为零。 或者,您可以使用参数 *输出缓冲区初始条件*为每个通道指定包含一个值的初始条件矩阵,或块应用于所有通道的标量初始条件。 块划分初始条件 *输出缓冲区初始条件*在 *插值因子*并输出缩放初始条件,直到第一滤波输入样本可用。

初始条件存储在输出数据类型和缩放中。

块中的延迟的附加信息 *FIR 插值*在延迟时间部分给出。

依赖关系

若要使用此参数,请为参数设置 *速率选项*价值 允许多速率处理.

默认值

0

程序使用名称

OutputBufferIC

可调谐

可计算

此外

基于帧的处理

Details

如果为参数 *输入处理*值已设置 列作为通道(基于帧),然后该块在时间上重新采样输入信号的每一列。 在这种模式下,单元可以执行单速和多速处理两者。 您可以使用参数 *速率选项*指定块将如何重新计算输入数据:

*如果为参数 *速率选项*值已设置 强制单速率处理,则该块的输入和输出数据具有相同的采样率。 以在保持输入数据的采样率的同时内插输出数据,所述块重新计算每个输入数据列中的数据,使得输出数据帧的大小 曾在 大于输入数据帧大小的倍: .

*如果为参数 *速率选项*值已设置 允许多速率处理,那么FIR滤波器插值的输入和输出数据具有相同的大小。 然而,输出数据的采样率在 倍于输入数据的采样率。 在这种模式下,块检查输入矩阵 如何 独立的频道。 块随时间内插输入信号的每一列,保持帧大小恒定( ),而输出帧的周期( )在 比输入帧的周期短的倍( ).

基于样本的处理

Details

如果为参数 *输入处理*值已设置 将元素作为通道处理(基于采样),则该块考虑输入矩阵 如何 独立的信道并且在时间上内插每个信道。 输出端的采样周期 比输入端的采样周期短倍: 与此同时,输入和输出数据的大小保持相同。

延迟时间

Details

如果为参数 输入处理*值已设置 列作为通道(基于帧),而对于参数 *速率选项强制单速率处理,则块 *FIR 插值*始终具有零延迟。 零延迟意味着块传输在给定时间接收的第一滤波输入样本。 ,作为第一输出样本。 第一个输出样本随后是 的内插值、第二滤波的输入样本等等。

唯一一次当块 FIR 插值*演示延迟,这是参数的if *速率选项*值已设置 允许多速率处理. 多速、多任务处理期间的延迟量取决于参数的值。 *输入处理.

输入处理 延迟

将元素作为通道处理(基于采样)

选择

列作为通道(基于帧)

框架( 每帧样本)

当块显示延迟时,默认情况下初始条件为零。 或者,您可以使用参数 *输出缓冲区初始条件*为每个通道指定包含一个值的初始条件矩阵,或块应用于所有通道的标量初始条件。 块划分初始条件 *输出缓冲区初始条件*在 *插值因子*并输出缩放的初始条件,直到第一个滤波的输入样本可用。

当块处于基于样本的处理模式时,它在每个通道的开始处输出缩放的初始条件,紧接着是第一个滤波的输入样本,然后 内插值,等等。

块处于基于帧的处理模式并且使用初始默认值零时,第 输出行包含零,其中 -输入帧的大小。 第一个滤波的输入样本(输入矩阵的第一个滤波行)在输出中显示为 选择。 然后如下 的内插值、第二滤波的输入样本等等。

算法

利用多相结构有效地实现了FIR滤波器插值。

为了推导出多相结构,我们首先定义FIR滤波器的传递函数。:

哪里 -这是FIR滤波器的长度。

您可以按如下方式重新排列此等式:

哪里 —这是多相分量的数量,其值等于插值系数,该系数在参数设置窗口中设置。

你可以把这个方程写成

哪里 -FIR滤波器的多相组件 .

从概念上讲,FIR滤波器插值由一个插值系数和一个低通FIR滤波器组成 .

fir interpolation 1

更换/更换 其多相表示。

fir interpolation 3

这里是多维插值的标识。

fir interpolation 4

应用用于内插的标识移动在滤波操作之后插入零样本的操作。 此举允许您以较低的速率过滤信号。

fir interpolation 5

可以用切换开关代替零样本插入运算器、延迟块和加法器。 开关从第一个分支0开始,逆时针移动,每次从每个分支获得一个样本。 内插器有效地输出 接收的每个输入样本的样本。 因此,FIR滤波器插值输出端的采样率为 .

fir interpolation 6

文学作品

  1. Fliege,N.J. _Multirate数字信号处理:多速率系统,滤波器组,小波。_西萨塞克斯,英格兰:约翰*威利&儿子,1994.

  2. Orfanidis,Sophocles J._Introduction To Signal Processing。_上鞍河,NJ:普伦蒂斯-霍尔,1996.