Here you can download the signal and python file
我正试着做一个psd图:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.read_csv('signal.csv')
fft = pd.DataFrame(np.abs(np.fft.rfft(df['1']))) #y
n = df['0'].size
unit_freq = 1000000000 #Giga
sample_rate = 10000000000 #10 GS/s
freq_sample_fact = sample_rate/unit_freq
freq = np.fft.rfftfreq(n, 1/freq_sample_fact) #x
fft.index = freq
fft.values[0] = 0
arfft = fft.to_numpy().T
plt.psd(arfft, 512, 0.01)
plt.xlabel('Frequenz / GHz')
plt.ylabel('Signalstärke')
plt.title('FFT')
plt.show()
警告:
Warning (from warnings module):
File "C:\Users\Artur\AppData\Local\Programs\Python\Python37\lib\site-packages\matplotlib\axes\_axes.py", line 7179
line = self.plot(freqs, 10 * np.log10(pxx), **kwargs)
RuntimeWarning: divide by zero encountered in log10
输出:
有什么办法可以实现吗?你知道吗
psd
函数执行内部的所有FFT操作。你知道吗参见文档中的示例: https://matplotlib.org/3.1.1/gallery/lines_bars_and_markers/psd_demo.html#sphx-glr-gallery-lines-bars-and-markers-psd-demo-py
如果时间矢量以秒为单位,则采样率为10毫秒/秒,最大频率为5兆赫。你知道吗
相关问题 更多 >
编程相关推荐