from sympy import fourier_transform, inverse_fourier_transform
from sympy.abc import t, omega
from sympy import exp, plot, Piecewise# 定义原始信号(示例使用矩形函数)
f = Piecewise((0, t < -1), (0, t > 1), (1, True))# 计算傅里叶变换
F = fourier_transform(f, t, omega)print("原始信号:")
plot(f, (t, -2, 2), title='Original Signal')print("\n傅里叶变换结果:")
print(F)
原始信号:
傅里叶变换结果:
Piecewise((sin(2piomega)/(pi*omega), ((omega > -oo) | (omega > 0)) & ((omega > -oo) | (omega < oo)) & ((omega > 0) | (omega < 0)) & ((omega < 0) | (omega < oo))), (2, omega >= 0))
原函数:
{ 0 for t > 1 ∨ t < − 1 1 otherwise \displaystyle \begin{cases} 0 & \text{for}\: t > 1 \vee t < -1 \\1 & \text{otherwise} \end{cases} {01fort>1∨t<−1otherwise
变换后函数:
{ sin ( 2 π ω ) π ω for ( ω > − ∞ ∨ ω > 0 ) ∧ ( ω > − ∞ ∨ ω < ∞ ) ∧ ( ω > 0 ∨ ω < 0 ) ∧ ( ω < 0 ∨ ω < ∞ ) 2 for ω ≥ 0 \displaystyle \begin{cases} \frac{\sin{\left(2 \pi \omega \right)}}{\pi \omega} & \text{for}\: \left(\omega > -\infty \vee \omega > 0\right) \wedge \left(\omega > -\infty \vee \omega < \infty\right) \wedge \left(\omega > 0 \vee \omega < 0\right) \wedge \left(\omega < 0 \vee \omega < \infty\right) \\2 & \text{for}\: \omega \geq 0 \end{cases} {πωsin(2πω)2for(ω>−∞∨ω>0)∧(ω>−∞∨ω<∞)∧(ω>0∨ω<0)∧(ω<0∨ω<∞)forω≥0