【问题标题】:How to use Matlab function cfirpm with arbitrary frequency grid gf如何使用具有任意频率网格 gf 的 Matlab 函数 cfirpm
【发布时间】:2025-11-24 06:20:07
【问题描述】:

我正在尝试使用 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 不能设置为任意值? 谢谢!

【问题讨论】:

    标签: matlab signal-processing


    【解决方案1】:

    gf 不是用户可以直接控制的参数:cfirpm 在内部生成 gf,根据可选 lgrid 参数指定的“密度”值在 f 中的点之间进行插值。

    【讨论】: