wc = 0.5*pi; % 截止频率 N = 21; % 阶数 n = -(N-1)/2:(N-1)/2; % 窗口长度 h = wc/pi * sinc(wc*(n-(N-1)/2)/pi); % 线性相应相位低通数字滤波器单位脉冲响应 % 绘制单位脉冲响应 stem(n, h); xlabel('n'); ylabel('h(n)'); title('单位脉冲响应'); % 绘制幅度响应 [H, w] = freqz(h, 1); plot(w/pi, 20*log10(abs(H))); xlabel('Normalized Frequency (\times\pi rad/sample)'); ylabel('Magnitude'); title('幅度响应');改进代码
时间: 2024-01-21 13:19:51 浏览: 81
pwa-i18n-webpack:基于vaadin教程应用程序的lit-html I18N示例应用程序
以下是改进后的代码,主要增加了注释和代码缩进,使代码更易读和易懂:
```matlab
wc = 0.5*pi; % 截止频率
N = 21; % 阶数
n = -(N-1)/2:(N-1)/2; % 窗口长度
% 计算线性相应相位低通数字滤波器的单位脉冲响应
h = wc/pi * sinc(wc*(n-(N-1)/2)/pi);
% 绘制单位脉冲响应
stem(n, h);
xlabel('n');
ylabel('h(n)');
title('单位脉冲响应');
% 绘制幅度响应
[H, w] = freqz(h, 1);
plot(w/pi, 20*log10(abs(H)));
xlabel('Normalized Frequency (\times\pi rad/sample)');
ylabel('Magnitude (dB)');
title('幅度响应');
```
此代码计算和绘制了一个线性相应相位低通数字滤波器的单位脉冲响应和幅度响应。其中,`sinc()` 函数是 MATLAB 自带的函数,用于计算正弦函数的反函数。`freqz()` 函数用于计算数字滤波器的频率响应,返回的 `H` 和 `w` 分别表示频率响应的复数值和频率值。`plot()` 函数用于绘制幅度响应的图像,其中使用 `20*log10()` 函数将幅度值转换为分贝单位。
阅读全文