freqz
数字滤波器的频率响应。
库::`工程师`
语法
函数调用
* [参数:h],[参数:f_out]=freqz(___,[参数:n],[参数:fs]) -返回频率响应向量 [参数:h] 和物理频率的对应向量 [参数:f_out] 用于设计用于过滤以频率采样的信号的数字滤波器 [参数:fs].
* freqz(___,<参数:out>=:情节) -绘制滤波器的频率响应。
争论
输入参数
# *n*是 用于评估特性的频率点的数量
+
512 (默认情况下)| 一个正整数
Details
特性进行评价的频率点的个数,设定为至少正整数 2. 如果论点是 n 未指定,默认值为 512. 为获得最佳结果,请设置参数 n 超过筛选顺序的值。
# *B,A*是 级联传递函数的系数
+
标量,标量 | 向量资料 | 矩阵
Details
级联传递函数的系数,指定为标量、矢量或矩阵。 在矩阵中 B 和 A 分别列出了级联传递函数的分子和分母的系数。
矩阵 B 必须有一个大小 上 ,和矩阵 A — 上 ,在哪里
* -过滤器部分的数量; * -过滤器的分子的顺序; * -过滤器分母的顺序。
有关级联传递函数格式和系数矩阵的详细信息,请参阅以CTF格式设置数字滤波器。
如果矩阵的任何元素 A[:,1] 不等于 1,则函数 *freqz* 通过归一化滤波器系数 A[:,1]. 在这种情况下 A[:,1] 它必须是非零。
|
| 数据类型 |
|
# *sos* — 二阶段的系数
+
矩阵
Details
二阶段的系数,指定为矩阵。 论点 sos —这是一个大小矩阵 上 ,节数在哪里 必须大于或等于 2. 如果节数较少 2,该函数将输入数据处理为数值器的向量。 每行 sos 对应于二阶滤波器(biquadrate filter)的系数; -我是一根绳子 sos 回应 繝ウ繝舌シ縺ォ縺、縺縺ヲ縺ッ縺薙■繧峨r縺碑ヲァ縺上□縺辅>缧.
| 数据类型 |
|
#
*财政司司长* —
抽样调查
费率+
标量,标量
Details
的采样率,设置为正标量。 如果时间单位是秒,则 财政司司长 以Hz表示。
| 数据类型 |
|
例子:
传递函数的频率响应
Details
让我们计算并显示三阶IIR低通滤波器的幅度-频率响应,由以下传递函数描述:
让我们以多项式卷积的形式表达分子和分母。 让我们找到频率响应 2001 复盖整个单位圆的点。
import EngeeDSP.Functions: conv, freqz
b0 = 0.05634
b1 = [1 1]
b2 = [1 -1.0166 1]
a1 = [1 -0.683]
a2 = [1 -1.4461 0.7957]
b = b0 * conv(b1, b2)
a = conv(a1, a2)
h, w = freqz(b, a, "whole", 2001)
让我们绘制振幅-频率响应,以dB表示。
plot(w./(maximum(w)/2), 20*log10.(abs.(h)),
xlabel = "Normalized Frequency (×π rad/sample)",
ylabel = "Magnitude (dB)",
legend = false,
ylims = (-100, 20))
FIR滤波器的频率响应
Details
让我们设计一个低通FIR滤波器 80-顺序,使用凯撒窗口与 . 设置归一化截止频率 rad/倒计时。 让我们显示滤波器的幅频和相位特性。
import EngeeDSP.Functions: fir1, kaiser, freqz
b = fir1(80, 0.5, kaiser(81, 8))
freqz(b, 1, out = :plot)

二阶段的频率响应
Details
让我们计算并显示三阶IIR低通滤波器的幅度-频率响应,由以下传递函数描述:
让我们用二阶段来表达传递函数。 让我们找到频率响应 2001 复盖整个单位圆的点。
import EngeeDSP.Functions: freqz
b0 = 0.05634
b1 = [1 1]
b2 = [1 -1.0166 1]
a1 = [1 -0.683]
a2 = [1 -1.4461 0.7957]
sos1 = [b0*[b1 0] [a1 0]]
sos2 = [b2 a2]
h, w = freqz([sos1; sos2], "whole", 2001)
让我们绘制振幅-频率响应,以dB表示。
plot(w./(maximum(w)/2), 20*log10.(abs.(h)),
xlabel = "Normalized Frequency (×π rad/sample)",
ylabel = "Magnitude (dB)",
legend = false,
ylims = (-100, 20))
此外
以CTF格式设置数字滤波器
Details
过滤器的影响
形式设置系数时 -小写矩阵
假设滤波器被设置为
哪里
*如果
*如果
*如果
|
*要将二阶截面矩阵转换为级联传递函数,请使用函数 |
效应和放大
如果有一个共同的尺度增益或几个尺度增益因子在滤波器系数的值之外,则可以将系数和增益指定为元组。 (B,A,g). 在使用定点运算时,缩放滤波器部分尤其重要,以确保每个滤波器部分的输出信号具有相似的幅度水平,这有助于避免由于计算精度有限而导致滤波器频率响应的不准确性。
增益可以是标量总增益或区段增益系数的向量。
*如果增益是标量的,则其值均匀地应用于级联滤波器的所有部分。
*如果增益因子是矢量,则它必须包含比滤波器节数多一个元素。
如果将滤波器系数矩阵和增益系数向量指定为
假设滤波器系统的传递函数具有形式
算法
数字滤波器的频率响应可以解释为在点计算的传递函数
功能 *freqz* 定义来自您指定的分子和分母多项式(实数或复数)的传递函数,并返回复数频率响应
功能 *freqz* 如果没有指定频率矢量作为输入参数,它通常使用FFT算法来计算频率响应。 它将频率响应计算为分子和分母的转换系数之比,用零填充到所需长度。
如果频率矢量指定为输入参数,则函数 *freqz* 计算每个频率点的多项式的值,并将分子特性的值除以分母特性的值。 为了计算多项式的值,该函数使用Horner方法。