可以使用用户可定义的功能代替@fresp的预定义频率响应功能。从cfirpm内部调用该函数。
我正在使用handle函数来添加群延迟和电网频率,
我在这段代码中尝试了很多次
%the function handle
function [dh,dw]=fresp(n,gf)
c= exp(-1i*pi*gf*n/2 );
%dw=ones(size(gf));
[dh,dw]=freqz(c,1,100);
end
%example
n = 30; % Filter order
f = [-1 -0.5 -0.4 0.7 0.8 1]; % Frequency band edges
gf = [linspace(-1,-.5,170),linspace(-.4,-.7,100),linspace(.8,1,130)];
b = cfirpm(n,f,@fresp);
fvtool(b,1,'OverlayedAnalysis','phase');
但是我在matlab中发现了相同的错误
Error in cfirpm>eval_grid (line 455)
[DES_CRMZ, WT_CRMZ] = filt_call(M, 2*edges, 2*GRID_CRMZ, wgts,
other_params{:});
Error in cfirpm (line 284)
[Lfft, indx_edges] = eval_grid (edges, num_bands, M, L, ...
这是在cfirpm中使用功能句柄的正确方法吗?