用matlab写矩形窗、blackman窗、汉宁窗、汉明窗的低通滤波器
时间: 2023-09-30 07:06:27 浏览: 57
以下是使用 MATLAB 编写矩形窗、Blackman 窗、汉宁窗、汉明窗的低通滤波器的示例代码。
```matlab
%% 定义滤波器参数
fc = 0.2; % 截止频率
N = 101; % 滤波器长度
n = 0:N-1; % 时间序列
%% 矩形窗滤波器
h1 = fc*sinc(fc*(n-(N-1)/2)); % 矩形窗函数
h1 = h1/sum(h1); % 归一化
figure;
freqz(h1); % 绘制频率响应图
title('Rectangular Window');
%% Blackman 窗滤波器
a0 = 0.42; a1 = 0.5; a2 = 0.08; % Blackman 窗系数
w = a0 - a1*cos(2*pi*n/(N-1)) + a2*cos(4*pi*n/(N-1)); % Blackman 窗函数
h2 = fc*sinc(fc*(n-(N-1)/2)).*w; % 乘上窗函数
h2 = h2/sum(h2); % 归一化
figure;
freqz(h2); % 绘制频率响应图
title('Blackman Window');
%% 汉宁窗滤波器
w = hann(N)'; % 汉宁窗函数
h3 = fc*sinc(fc*(n-(N-1)/2)).*w; % 乘上窗函数
h3 = h3/sum(h3); % 归一化
figure;
freqz(h3); % 绘制频率响应图
title('Hanning Window');
%% 汉明窗滤波器
w = hamming(N)'; % 汉明窗函数
h4 = fc*sinc(fc*(n-(N-1)/2)).*w; % 乘上窗函数
h4 = h4/sum(h4); % 归一化
figure;
freqz(h4); % 绘制频率响应图
title('Hamming Window');
```
运行以上代码,将会绘制出矩形窗、Blackman 窗、汉宁窗、汉明窗的低通滤波器的频率响应图。可以根据需要调整截止频率 `fc` 和滤波器长度 `N`。