用matlab用解析方法计算矩形脉冲x[n]=u[n]-u[n-10]的DTFT
时间: 2024-06-04 13:10:06 浏览: 144
matlab-signal6.zip_K._MATLAB计算DTFT_dtft 频率
矩形脉冲信号 $x[n] = u[n] - u[n-10]$ 表示为:
$$
x[n] =
\begin{cases}
1 &,\ 0 \leq n \leq 9 \\
0 &,\ \text{otherwise}
\end{cases}
$$
矩形脉冲信号的 DTFT 计算如下:
$$
\begin{aligned}
X(e^{j\omega}) &= \sum_{n=-\infty}^{\infty} x[n] e^{-j\omega n} \\
&= \sum_{n=0}^{9} e^{-j\omega n} - \sum_{n=10}^{\infty} e^{-j\omega n} \\
&= \frac{1 - e^{-j\omega 10}}{1 - e^{-j\omega}} - e^{-j\omega 10} \sum_{n=0}^{\infty} e^{-j\omega n} \\
&= \frac{1 - e^{-j\omega 10}}{1 - e^{-j\omega}} - e^{-j\omega 10} \cdot \frac{1}{1 - e^{-j\omega}} \\
&= \frac{1 - e^{-j\omega 10} - e^{-j\omega 10} + e^{-j\omega 11}}{1 - e^{-j\omega}} \\
&= \frac{1 - e^{-j\omega 11}}{1 - e^{-j\omega}}
\end{aligned}
$$
在 MATLAB 中,可以使用以下代码计算矩形脉冲信号的 DTFT 并绘制其幅度和相位谱:
```matlab
% 定义矩形脉冲信号
x = [ones(1, 10), zeros(1, 90)];
% 计算 DTFT
w = linspace(-pi, pi, 200);
X = (1 - exp(-1j * 11 * w)) ./ (1 - exp(-1j * w));
% 绘制幅度谱
subplot(2, 1, 1);
plot(w, abs(X));
xlabel('\omega');
ylabel('|X(e^{j\omega})|');
title('Magnitude Spectrum');
% 绘制相位谱
subplot(2, 1, 2);
plot(w, angle(X));
xlabel('\omega');
ylabel('\angle X(e^{j\omega})');
title('Phase Spectrum');
```
绘制出来的幅度和相位谱如下图所示:
![矩形脉冲信号的幅度和相位谱](https://i.loli.net/2021/06/08/5gGp8yMq2vLFfXK.png)
阅读全文