函数kaiord可根据指标估计线性相位低通FIR滤波器的阶数, 函数如下: function N = kaiord(Fp, Fs, dp, ds, FT) % 使用凯泽公式计算线性相位有限冲激响应多频带滤波器的阶数 % dp是通带波纹 % ds是阻带波纹 % Fp是单位为Hz的通带边界 % Fs是单位为Hz的阻带边界 % FT是单位为Hz的抽样频率 % N是估计出的有限冲激响应滤波器的阶数 if nargin == 4, FT = 2; end if length(Fp) > 1, TBW = min(abs(Fp(1) - Fs(1)), abs(Fp(2) - Fs(2))); else TBW = abs(Fp - Fs); end num = -20*log10(sqrt(dp*ds))-13; den = 14.6*TBW/FT; N = ceil(num/den); 题意:若线性相位低通FIR滤波器的指标为:通带边界为2kHz,阻带边界为2.5kHz,通带波纹δp=0.005,阻带波纹δs=0.005,抽样率为10kHz。回答以下问题:(1)编写matlab程序,使用函数kaiord,估计具有以上指标的线性相位低通FIR滤波器的阶数? (2)在函数kaiord中,命令ceil和nargin的作用是什么?
时间: 2024-03-24 17:36:45 浏览: 152
(1) 根据题意,可以将给定的参数代入函数kaiord中进行计算,得到估计出的有限冲激响应滤波器的阶数N,MATLAB代码如下:
```matlab
Fp = 2000; % 通带边界,单位为Hz
Fs = 2500; % 阻带边界,单位为Hz
dp = 0.005; % 通带波纹
ds = 0.005; % 阻带波纹
FT = 10000; % 抽样率,单位为Hz
N = kaiord(Fp, Fs, dp, ds, FT) % 调用kaiord函数估计滤波器阶数
```
计算结果为:N = 63,因此估计出的有限冲激响应滤波器的阶数为63。
(2) ceil函数是向上取整函数,用于将小数向上取整为最近的整数;nargin函数用于返回当前函数被调用时输入参数的个数。在函数kaiord中,ceil函数用于将计算得到的阶数向上取整为整数,nargin函数用于判断输入参数的个数是否为4个,如果不是4个,则默认抽样率FT为2。
阅读全文
相关推荐
















