正弦函数的一维傅里叶变换 代码实现
时间: 2024-11-04 19:08:58 浏览: 3
正弦函数的一维傅里叶变换(Discrete-Time Fourier Transform, DTFT)描述了一个周期信号在频域的表现。对于正弦信号 f(t) = A * sin(2πft + φ),其DTFT可以表示为:
\[ F(\omega) = \frac{A}{2} \left[ δ(\omega - f) + δ(\omega + f) \right] + \frac{A \cdot e^{j\phi}}{2} \left[ δ(\omega - f + \pi) + δ(\omega + f + \pi) \right] \]
这里 \( δ \) 是狄利克雷函数,\( j \) 是虚数单位,\( f \) 是频率,而 \( ω \) 是离散频域变量。
在实际编程中,例如用Python的`numpy`库,你可以使用`fft`函数来计算。以下是一个简单的例子:
```python
import numpy as np
def sine_function_ft(sine_signal, sample_rate):
# 假设sample_rate是采样率,sine_signal是时间序列的正弦信号
freq_domain = np.fft.fft(sine_signal)
# 计算频率轴(范围通常是0到采样率-1)
freq_axis = np.linspace(0, sample_rate - 1, len(freq_domain))
# 对实部和虚部分别处理
real_part = freq_domain.real
imag_part = freq_domain.imag
# 返回幅度谱和相位谱
amplitude_spectrum = np.abs(freq_domain)
phase_spectrum = np.angle(freq_domain)
return freq_axis, amplitude_spectrum, phase_spectrum
# 示例用法
sine_wave = np.sin(2 * np.pi * 5 * np.arange(1000) / 1000) # 创建一个5Hz的正弦波
freq_axis, amp_spec, phase_spec = sine_function_ft(sine_wave, 1000)
阅读全文