如何使用具有任意频率网格gf的Matlab函数cfirpm
How to use Matlab function cfirpm with arbitrary frequency grid gf
我正在尝试使用 Matlab 函数 cfirpm
来设计具有具有任意复杂期望响应的复杂脉冲响应的 FIR 滤波器。但是,似乎 Matlab 不允许我设置任意频率网格 gf
.
这是一个虚拟示例,其中频率网格最初设置为只有四个值。但是,在 fresp
函数内部,网格 gf
有 256 个值。
n = 10;
f = [-1 1];
gf = linspace(-1,1,4);
h = cfirpm(n,f,@fresp);
function [dh,dw]=fresp(n,f,gf,w)
dh = [1+1j;1+2j;-6-4j;-8];
dw = ones(size(gf))
end
是我做错了什么还是gf
不能设置为任意值?
谢谢!
gf 不是用户可以直接控制的参数:cfirpm 在内部生成 gf,根据可选 lgrid 参数指定的 'density' 值在 f 中的点之间进行插值。
我正在尝试使用 Matlab 函数 cfirpm
来设计具有具有任意复杂期望响应的复杂脉冲响应的 FIR 滤波器。但是,似乎 Matlab 不允许我设置任意频率网格 gf
.
这是一个虚拟示例,其中频率网格最初设置为只有四个值。但是,在 fresp
函数内部,网格 gf
有 256 个值。
n = 10;
f = [-1 1];
gf = linspace(-1,1,4);
h = cfirpm(n,f,@fresp);
function [dh,dw]=fresp(n,f,gf,w)
dh = [1+1j;1+2j;-6-4j;-8];
dw = ones(size(gf))
end
是我做错了什么还是gf
不能设置为任意值?
谢谢!
gf 不是用户可以直接控制的参数:cfirpm 在内部生成 gf,根据可选 lgrid 参数指定的 'density' 值在 f 中的点之间进行插值。