频率波数图python

时间:2018-06-21 13:47:57

标签: imshow

我有一个csv文件,其中包含62503行和513列,每列是一个不同的位置,该列中的所有行均表示时间信号。 我需要使用imshow绘制频率波数表示。我已经直接在数据上使用了fft2,但是我什么也没得到,我不知道我是否必须编写一个循环,但是我对此并不熟悉。 你能帮我吗。 谢谢`

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import scipy.fftpack
import pylab as py
from scipy import misc, fftpack
from scipy.fftpack import fft,ifft,fft2,fftshift

df=pd.read_csv('/home/sarah/Documents/data/data7/myline2.csv', delimiter=',',header=None)

x= df.iloc[0]  #the positions
y = np.linspace(0.000000016,0.000008208,513)  #time vector

data=df.iloc[3:62503,0:513]     # matrix of amplitudes 


plt.imshow(data, aspect='auto', interpolation='none',extent=[x.min(), x.max(), y.min(), y.max()] , cmap= 'seismic') # this to plot a B-scan(amplitude plot with respect to position and time) and it works perfectly.

x,y= np.meshgrid(x, y)

plt.figure(1)

plt.savefig('my2lineshow.png')

plt.figure(2)

z=fft2(data)  # i tried this to switch from the time/position domain to the frequency/wavenumber domain without actually switching the axes too.
plt.imshow(abs(z), aspect='auto', interpolation='none', cmap= 'seismic')

plt.savefig('fft2.png')

plt.show()` # it showed an empty figure!

0 个答案:

没有答案