过滤器的Matlab
Matlab FIR Filter
我必须分析有限脉冲响应 (FIR) 滤波器的系数以获得最小字长,因此不应有影响输出的内部溢出。
-0.0041 0.0077 0.0893 0.3276 0.0893 0.0077 -0.0041
我试过了
f = fdesign.bandpass(0.0041,0.0077,0.0893,0.3276, 0.0893, 0.0077,0.0041);
Hd = design(f, 'equiripple');
fvtool(Hd)
我收到以下错误:
Frequency specifications must be between 0 and 1.
然后我计算了比例因子并将所有系数相乘
coefficients h[0] + h[1] + h[2] +…+ h[M] = S
Log base 2 (S )+ 1
但我仍然遇到同样的错误:
Frequency specifications must be between 0 and 1.
fdesign.bandpass
可用于根据滤波器规格设计带通滤波器,包括以下参数:
- 第一个阻带开始边缘的频率
- 通带起点和终点边缘的频率
- 第二个阻带开始边缘的频率
- 阻带衰减
- 通带中允许的纹波量
- 过滤顺序
您所拥有的似乎是滤波器系数,而不是基于上述参数的滤波器规格。要使用这些系数创建滤波器对象,您可以使用 dfilt
中的许多可用结构选项之一。在您的情况下,适合 FIR 滤波器的结构是 dfilt.dffir
:
b = [-0.0041,0.0077,0.0893,0.3276, 0.0893, 0.0077,-0.0041];
Hd = dfilt.dffir(b);
fvtool(Hd)
我必须分析有限脉冲响应 (FIR) 滤波器的系数以获得最小字长,因此不应有影响输出的内部溢出。
-0.0041 0.0077 0.0893 0.3276 0.0893 0.0077 -0.0041
我试过了
f = fdesign.bandpass(0.0041,0.0077,0.0893,0.3276, 0.0893, 0.0077,0.0041);
Hd = design(f, 'equiripple');
fvtool(Hd)
我收到以下错误:
Frequency specifications must be between 0 and 1.
然后我计算了比例因子并将所有系数相乘
coefficients h[0] + h[1] + h[2] +…+ h[M] = S
Log base 2 (S )+ 1
但我仍然遇到同样的错误:
Frequency specifications must be between 0 and 1.
fdesign.bandpass
可用于根据滤波器规格设计带通滤波器,包括以下参数:
- 第一个阻带开始边缘的频率
- 通带起点和终点边缘的频率
- 第二个阻带开始边缘的频率
- 阻带衰减
- 通带中允许的纹波量
- 过滤顺序
您所拥有的似乎是滤波器系数,而不是基于上述参数的滤波器规格。要使用这些系数创建滤波器对象,您可以使用 dfilt
中的许多可用结构选项之一。在您的情况下,适合 FIR 滤波器的结构是 dfilt.dffir
:
b = [-0.0041,0.0077,0.0893,0.3276, 0.0893, 0.0077,-0.0041];
Hd = dfilt.dffir(b);
fvtool(Hd)