如何在 3d 中绘制具有虚部和实部的 fft 或计算旋转度数

信息处理 fft 傅里叶变换 频谱
2022-02-16 18:31:42

维基百科

我想制作一个像1这样的情节,并在 3d 空间中查看实部和虚部。我不想制作完全相同的情节。对我来说,如果我看到两个信号的峰值都发生了变化就可以了。如果我只能在不绘图的情况下计算旋转,这对我来说也可以。

我用 3d plot python matplotlib 试过了

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3d

//create example Signal, sinus and cosinus-> they are shifted in time so i would like to see the rotation in complex plane

time = np.arange(1000)/1000)
signalSinus= np.sin(100*2.0*np.pi*time)
signalCosinus = np.sin(100*2.0*np.pi*time+np.pi)

fftSinus = np.fft.fft(signalSinus)
ftCosinus = np.fft.fft(signalCosinus)

fig=plt.figure()
ax=fig.gca(projection='3d')
ax.plot(np.fft.rfft(len(fftSinus),d=1/1000),np.imag(fftSinus),np.real(ffSinus)) // three axis plot but how to?
plt.show() //

我没有得到正确的结果,这对我来说看起来很奇怪:D 如果我绘制两个信号它们看起来相同。

1个回答

(1) nparange -> np.arange,和

(2) np.fft.rfft(len(fftSinus),d=1/1000)

您需要频率值。您可以从 np.arange(1000) 开始用于归一化频率或频率索引,稍后再考虑实际值。

组织你的 ax.plot() 如下:

  1. x = 频率指数
  2. y = 图像
  3. z = 实数