Python 傅里叶变换:将时域图转换为频域图
要将时域图转换为频域图,我们可以使用傅里叶变换。在 Python 中,我们可以使用'numpy'库来执行傅里叶变换,并用'matplotlib'库来绘制频域图。请确保你已经安装了这两个库。
首先,我们需要对输出电压进行傅里叶变换,然后计算频谱:
import numpy as np
# 对输出电压进行傅里叶变换
frequency = np.fft.fftfreq(len(voltage), time[1]-time[0]) # 计算频率
spectrum = np.fft.fft(voltage, axis=0) # 计算频谱
接下来,我们可以绘制频域图:
# 绘制频域图
plt.plot(frequency, np.abs(spectrum))
plt.xlabel('频率')
plt.ylabel('振幅')
plt.legend(voltage.columns) # 添加图例,显示每列的名称
plt.show()
这段代码将绘制频域图,横轴为频率,纵轴为振幅。图例将显示每列的名称。
完整代码如下:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# 读取Excel数据
data = pd.read_excel('your_excel_file.xlsx')
# 获取采样时间和输出电压列的数据
time = data.iloc[:, 0] # 第一列采样时间
voltage = data.iloc[:, 1:5] # 第2到5列输出电压
# 对输出电压进行傅里叶变换
frequency = np.fft.fftfreq(len(voltage), time[1]-time[0]) # 计算频率
spectrum = np.fft.fft(voltage, axis=0) # 计算频谱
# 绘制频域图
plt.plot(frequency, np.abs(spectrum))
plt.xlabel('频率')
plt.ylabel('振幅')
plt.legend(voltage.columns) # 添加图例,显示每列的名称
plt.show()
记得将'your_excel_file.xlsx'替换为你实际的Excel文件路径。这段代码将读取Excel文件中的第一列作为采样时间,第2到5列作为输出电压,然后进行傅里叶变换并绘制频域图。
希望对你有帮助!如果有任何问题,请随时问我。
原文地址: https://www.cveoy.top/t/topic/bcsf 著作权归作者所有。请勿转载和采集!