使用MATLAB窗函数法设计FIR数字滤波器的基本方法有哪几种?请列写出主要的程序语句
时间: 2024-03-03 15:51:14 浏览: 107
MATLAB窗函数法设计FIR数字滤波器的基本方法有以下两种:
1. 矩形窗法
矩形窗法的程序语句如下:
```matlab
% 设计FIR数字滤波器
fs = 1000; % 采样频率
fpass = 200; % 通带截止频率
fstop = 300; % 阻带截止频率
Rp = 1; % 通带最大衰减
Rs = 40; % 阻带最小衰减
wp = 2*pi*fpass/fs; % 通带归一化角频率
ws = 2*pi*fstop/fs; % 阻带归一化角频率
Wp = 1; % 通带归一化频率
Ws = ws/wp; % 阻带归一化频率
N = ceil(3.3*pi/(ws-wp));% 滤波器阶数
b = fir1(N, Ws, 'low', rectwin(N+1)); % 矩形窗法设计低通滤波器
freqz(b, 1, 512, fs); % 绘制滤波器频率响应
```
2. Kaiser窗法
Kaiser窗法的程序语句如下:
```matlab
% 设计FIR数字滤波器
fs = 1000; % 采样频率
fpass = 200; % 通带截止频率
fstop = 300; % 阻带截止频率
Rp = 1; % 通带最大衰减
Rs = 40; % 阻带最小衰减
wp = 2*pi*fpass/fs; % 通带归一化角频率
ws = 2*pi*fstop/fs; % 阻带归一化角频率
Wp = 1; % 通带归一化频率
Ws = ws/wp; % 阻带归一化频率
N = ceil(3.3*pi/(ws-wp));% 滤波器阶数
beta = 5; % Kaiser窗参数
b = fir1(N, Ws, 'low', kaiser(N+1, beta)); % Kaiser窗法设计低通滤波器
freqz(b, 1, 512, fs); % 绘制滤波器频率响应
```
注意:以上程序语句中,`fir1`函数用于设计FIR数字滤波器,`freqz`函数用于绘制滤波器的频率响应。具体函数使用方法可以在MATLAB帮助文档中查看。
阅读全文