我已经使用抽头延迟线方法实现了 FIR 滤波器。一旦第一个输入样本传递给它,我就开始获得输出,我想知道从哪个样本中我将从过滤器获得正确的输出(没有瞬态输出)。
它取决于最大幅度抽头的位置还是仅取决于滤波器的长度。我使用的滤波器系数的数量是 N(奇数)和对称的。为了验证,我以以下过滤器抽头为例:-
依此类推,如果我使用滤波器系数通过正弦波那么输出的第一个样本本身是有意义的,但如果我使用和那么有意义的输出分别来自第二个和第三个输出样本。我也想知道matlab如何命令作品。
我已经使用抽头延迟线方法实现了 FIR 滤波器。一旦第一个输入样本传递给它,我就开始获得输出,我想知道从哪个样本中我将从过滤器获得正确的输出(没有瞬态输出)。
它取决于最大幅度抽头的位置还是仅取决于滤波器的长度。我使用的滤波器系数的数量是 N(奇数)和对称的。为了验证,我以以下过滤器抽头为例:-
依此类推,如果我使用滤波器系数通过正弦波那么输出的第一个样本本身是有意义的,但如果我使用和那么有意义的输出分别来自第二个和第三个输出样本。我也想知道matlab如何命令作品。
如果它是线性相位FIR 滤波器,则输入信号将在输出端偏移(延迟)一定量的群延迟。
对于长度为的线性相位 FIR 滤波器群延迟将是样品。长度均匀FIR 滤波器将在; 半样本位置。
对于非线性相位 FIR 滤波器,群延迟将取决于所应用输入信号的特定频率。它应该从计算
在哪里是滤波器的相位响应。
matlab 函数filter(b,a,x)计算从输入信号长度开始的所有样本。所以第一个样本是瞬态的。
这取决于您所说的“有意义”是什么意思。所有输出都是有意义的,因为它们将当前输入值与过去的输入值结合在一起。最初,当然没有过去的输入样本。但是,如果您同意“没有过去的样本”意味着“具有零值的过去样本”,那么如果延迟元素用零初始化,就会发生这种情况。如果对给定应用程序更有意义,也可以使用任何其他值初始化延迟元素。
Matlab的filter例程只是实现了一个具有有理传递函数的滤波器的直接form-II转置结构(通常是IIR,但FIR是一个特例)。默认情况下,延迟元素用零初始化,但可以提供其他初始条件。