matlab采用remez设计FIR滤波器代码
时间: 2024-01-04 09:02:50 浏览: 33
Matlab中采用remez函数设计FIR滤波器可以使用以下代码:
```matlab
% 设置滤波器的参数
fs = 1000; % 采样频率
fpass = 200; % 通带频率
fstop = 300; % 阻带频率
Ap = 1; % 通带最大衰减
Ast = 60; % 阻带最小衰减
% 计算滤波器的阶数
delta_p = (10^(0.05*Ap)-1)/(10^(0.05*Ap)+1);
delta_s = 10^(-0.05*Ast);
A = -20*log10(min(delta_p,delta_s));
if A > 50
N = ceil( (A-8)/(2.285*(2*pi*(fstop-fpass)/fs)) + 1 );
else
N = ceil( (A-8.4)/(2.285*(2*pi*(fstop-fpass)/fs)) + 1.6/((2*pi*(fstop-fpass)/fs)) );
end
% 使用remez函数设计FIR滤波器
h = remez(N, [0 fpass fstop fs/2]/(fs/2), [1 0], [1/delta_p delta_s/delta_p]);
```
其中,fs是采样频率,fpass是通带频率,fstop是阻带频率,Ap是通带最大衰减,Ast是阻带最小衰减。根据这些参数,首先计算出滤波器的阶数N,然后使用remez函数设计FIR滤波器,返回滤波器系数h。最后,可以将h应用于信号进行滤波处理。