MATLAB 计算门信号的傅里叶变换
假设门信号的表达式为:
g(t) = \begin{cases}
1, & 0 \leq t < T \
0, & \text{otherwise}
\end{cases}
其中 T 表示门的宽度。
则门信号的傅里叶变换为:
G(\omega) = \int_{-\infty}^{\infty} g(t) e^{-i\omega t} dt = \int_{0}^{T} e^{-i\omega t} dt = \frac{1}{-i\omega} \left(e^{-i\omega T} - 1\right)
在 MATLAB 中,可以通过以下代码计算门信号的傅里叶变换:
syms t w T;
g = heaviside(t) - heaviside(t-T); % 定义门信号
G = fourier(g); % 计算傅里叶变换
G = simplify(G); % 化简表达式
其中 heaviside 表示 Heaviside 阶跃函数,即:
\text{heaviside}(t) = \begin{cases}
0, & t < 0 \
1, & t \geq 0
\end{cases}
计算结果为:
G(\omega) = \frac{1}{-i\omega} \left(e^{-i\omega T} - 1\right)
可以通过以下代码绘制门信号及其傅里叶变换的图像:
t = linspace(-2*T, 2*T, 1000);
g_t = heaviside(t) - heaviside(t-T);
G_w = subs(G, w, linspace(-10, 10, 1000));
subplot(2, 1, 1);
plot(t, g_t);
xlim([-2*T, 2*T]);
title('Gate signal');
subplot(2, 1, 2);
plot(linspace(-10, 10, 1000), abs(G_w));
xlim([-10, 10]);
title('Fourier transform of gate signal');
绘制结果如下图所示:

原文地址: https://www.cveoy.top/t/topic/oy2s 著作权归作者所有。请勿转载和采集!