写一段MATLAB程序利用频率采样法设计线性相位低通滤波器 要求截止频率为3db,采样点数选用N=33的情况,选用h(n) = h(N-n+1)的情况。分别显示理想幅频特性的采样序列和实际滤波器的幅频响应
时间: 2024-03-06 12:51:35 浏览: 22
好的,这是您的问题:
以下是 MATLAB 代码,可以使用频率采样法设计线性相位低通滤波器,截止频率为3dB,采样点数为N=33,选用了h(n) = h(N-n+1)的情况。代码显示了理想幅频特性的采样序列和实际滤波器的幅频响应。
```matlab
% 设计理想低通滤波器
fc = 0.3; % 截止频率
N = 33; % 采样点数
n = -(N-1)/2:(N-1)/2; % 采样点
h = 2*fc*sinc(2*fc*n); % 理想低通滤波器
% 频率响应
f = 0:0.01:1; % 频率取值
H = freqz(h,1,f); % 频率响应
% 频率采样
fs = linspace(0,1,N); % 采样频率
Hs = freqz(h,1,fs); % 采样频率响应
% 用反相延迟方法实现线性相位滤波器
h = h(N:-1:1); % 反相延迟
H = H(N:-1:1); % 反相延迟
% 显示幅频响应
subplot(2,1,1);
plot(f,abs(H),'b',fs,abs(Hs),'ro');
title('幅频响应');
xlabel('频率');
ylabel('幅度');
legend('理想滤波器','采样滤波器');
% 显示相位响应
subplot(2,1,2);
plot(f,angle(H),'b',fs,angle(Hs),'ro');
title('相位响应');
xlabel('频率');
ylabel('相位');
legend('理想滤波器','采样滤波器');
```
这段代码将产生两幅图像。第一幅图像显示了幅频响应,其中理想滤波器使用蓝色线绘制,采样滤波器使用红色圆圈标记。第二幅图像显示了相位响应,其中理想滤波器使用蓝色线绘制,采样滤波器使用红色圆圈标记。