具有功能手柄的复杂和非线性相位等波纹FIR滤波器设计

时间:2018-10-14 10:49:34

标签: matlab

  

可以使用用户可定义的功能代替@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中使用功能句柄的正确方法吗?

0 个答案:

没有答案