要求的完整测试代码:
import numpy as np
import matplotlib.pyplot as plt
# Numtopad determines number of padding points
numtopad = 512
# Define axis
x = np.arange(numtopad)
y = x[:,np.newaxis]
# Offsets which are zero
x0 = 256*0
y0 = 256*0
# Exponentially decaying function in 2D
f = np.exp( -((y-y0) + (x-x0))/(10))
# Fourier transform above function and move zero frqeuencies to center of graph
f2 = np.fft.fft(f,axis=0)
f2 = np.fft.fft(f2,axis=1)
f2 = np.fft.fftshift(f2,axes=0)
f2 = np.fft.fftshift(f2,axes=1)
Delta_t = x[1]-x[0]
# Define a frequency
freq_t = np.fft.fftfreq(numtopad,d = Delta_t)
freq_offset = 200
E1 = freq_t + freq_offset
E2 = freq_t + freq_offset
# plt.contourf(abs(f2))
plt.contourf(E1,E2,abs(f2))
你能给你完整的代码,因为图片不可用,请,只是为了确保我得到的目的?你知道吗
如果我正确理解了您的问题,那么数组E1和E2的中心是0:[-0.5,…,0.5],而函数f是以256为中心的高斯函数。您应该将函数f更改为相对于数组E1和E2正确放置,或者规范化数组X,Y:
如果您只想重新缩放数据,可以使用此代码,甚至使用此代码生成x和y(但必须更改f):
相关问题 更多 >
编程相关推荐