绘制随机波浪曲线,振幅符合瑞利分布,相位符合均匀分布
时间: 2024-10-24 18:17:47 浏览: 19
要在Python中绘制随机波浪曲线,我们通常会使用matplotlib库来创建图形,numpy库用于生成符合特定分布的随机数。瑞利分布(Rayleigh Distribution)描述的是垂直方向上的速度分量的平方,而相位通常使用正弦或余弦函数来表示波形的起伏。以下是一个简单的示例,展示了如何实现这个需求:
```python
import numpy as np
import matplotlib.pyplot as plt
# 设置参数
amp_distribution = "rayleigh" # 使用瑞利分布,也可以用其他分布如gaussian(高斯)
num_samples = 1000
wavelength = 5 # 波长
phase_distribution = "uniform" # 使用均匀分布
# 生成随机数据
if amp_distribution == "rayleigh":
amplitude = np.random rayleigh(scale=1, size=num_samples) # 产生瑞利分布的振幅
else:
raise ValueError("Unsupported distribution. Please use 'rayleigh' for Rayleigh distribution.")
phases = np.random.uniform(0, 2 * np.pi, num_samples) # 产生均匀分布在[0, 2π]范围内的相位
# 创建波形
waveform = amplitude * np.cos(wavelength * phases)
# 绘制波浪曲线
plt.plot(waveform)
plt.xlabel('Sample Index')
plt.ylabel('Amplitude')
plt.title(f'Realistic Wave with Random Amplitudes ({amp_distribution}) and Phases')
plt.grid(True)
plt.show()
阅读全文