返回

在python中生成二维行波方程时,如何修复时间不连续性?

发布时间:2022-05-03 16:48:34 229
# node.js

我想生成二维正弦波。为此,我为平面波设置了参数,并为任意时刻生成了波浪,如下所示:

import numpy as np
import random
import matplotlib.pyplot as plt
f = 10         # frequency
fs = 100       # sample frequency
Ts = 1/fs      # sample period
t = np.arange(0,0.5, Ts)   # time index
c = 50             # speed of wave
w = 2*np.pi *f     # angular frequency
k = w/c            # wave number

resolution = 0.02
x = np.arange(-5, 5, resolution)
y = np.arange(-5, 5, resolution)
dx = np.array(x); M = len(dx)
dy = np.array(y); N = len(dy)
[xx, yy] = np.meshgrid(x, y);
theta = np.pi / 4         # direction of propagation
kx =  k* np.cos(theta)
ky = k * np.sin(theta)

所以平面波是

plane_wave = np.sin(kx * xx + ky * yy - w * t[1])
plt.figure(); 
plt.imshow(plane_wave,cmap='seismic',origin='lower', aspect='auto')

这给出了一个平滑的平面波,此外,正弦波随 plt.figure() 变化; plt.plot(plane_wave[2,:]) 时间。但是,当我想在不同的时刻附加平面波时, 时间不连续性和 04 平面波 w.r.t 的不连续性会出现一些不连续性。 时间,我想摆脱这个问题。

我是 python 新手,任何帮助将不胜感激。 提前致谢。

arr = []
for count in range(len(t)):
    p = np.sin(kx * xx + ky * yy - w * t[count]); # plane wave
    arr.append(p)
arr = np.array(arr)
print(arr.shape)
pp,q,r = arr.shape
sig = np.reshape(arr, (-1, r))
print('The signal shape is :', sig.shape)

plt.figure(); plt.imshow(sig.transpose(),cmap='seismic',origin='lower', aspect='auto')
plt.xlabel('X'); plt.ylabel('Y')
plt.figure(); plt.plot(sig[2,:])
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像