如何在SciPy Python中执行离散傅里叶变换?

如何在SciPy Python中执行离散傅里叶变换?

离散傅里叶变换(DFT)是一种数学技术,可将空间数据转换为频率数据。

快速傅里叶变换(FFT)是一种算法,用于计算空间数据的离散傅里叶变换。

空间数据通常采用多维数组的形式。 频率数据是指包含有关特定时间段内信号或波长数量的数据。

让我们看看如何使用“SciPy”库实现这个DFT。

该图形使用matplotlib库创建,数据使用NumPy库生成 –

更多Python相关文章,请阅读:Python 教程

示例

From matplotlib import pyplot as plt
import numpy as np
my_freq = 6
freq_samp = 70
time_val = np.linspace(0, 3, 3 * freq_samp, endpoint = False )
amp_val = np.sin(my_freq * 3 * np.pi * time_val)
figure, axis = plt.subplots()
axis.plot(time_val, amp_val)
axis.set_xlabel ('Time (in seconds)')
axis.set_ylabel ('Amplitude of signal')
plt.show()
from scipy import fftpack
A = fftpack.fft(amp_val)
frequency = fftpack.fftfreq(len(amp_val)) * freq_samp
figure, axis = plt.subplots()
axis.stem(frequency, np.abs(A))
axis.set_xlabel('Frequency in Hz')
axis.set_ylabel('Frequency Spectrum Magnitude')
axis.set_xlim(-freq_samp / 2, freq_samp/ 2)
axis.set_ylim(-7, 125)
plt.show()

输出

如何在SciPy Python中执行离散傅里叶变换?

说明

  • 所需软件包已导入。
  • 使用Numpy库生成数据。
  • 使用matplotlib库将此数据作为正弦波绘制到控制台。
  • 接下来,使用“fftpack”包查找所生成数据的快速傅里叶变换。
  • 再次将此数据绘制在图形上。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程