Python 代码生成不同类型的白噪音
使用 Python 中的 NumPy 库可以生成不同类型的白噪音。
以下代码示例展示如何生成各种白噪音并绘制其图像:
import numpy as np
import matplotlib.pyplot as plt
# 生成均匀分布的白噪音
def generate_uniform_noise(length):
return np.random.uniform(-1, 1, length)
# 生成高斯分布的白噪音
def generate_gaussian_noise(length):
return np.random.normal(0, 1, length)
# 生成均值为0,方差为1的高斯分布的白噪音
def generate_standard_gaussian_noise(length):
return np.random.randn(length)
# 生成Pink噪音
def generate_pink_noise(length):
pink_noise = np.random.randn(length)
pink_noise = np.cumsum(pink_noise)
pink_noise -= np.mean(pink_noise)
pink_noise /= np.max(np.abs(pink_noise))
return pink_noise
# 生成Brown噪音
def generate_brown_noise(length):
brown_noise = np.random.randn(length)
brown_noise = np.cumsum(brown_noise)
brown_noise -= np.mean(brown_noise)
brown_noise /= np.max(np.abs(brown_noise))
return brown_noise
# 生成Violet噪音
def generate_violet_noise(length):
violet_noise = np.random.randn(length)
violet_noise = np.cumsum(violet_noise)
violet_noise -= np.mean(violet_noise)
violet_noise /= np.max(np.abs(violet_noise))
violet_noise = np.diff(violet_noise)
return violet_noise
# 生成White噪音
def generate_white_noise(length):
return np.random.randn(length)
# 设置噪音长度
length = 100000
# 生成不同种类的噪音
uniform_noise = generate_uniform_noise(length)
gaussian_noise = generate_gaussian_noise(length)
standard_gaussian_noise = generate_standard_gaussian_noise(length)
pink_noise = generate_pink_noise(length)
brown_noise = generate_brown_noise(length)
violet_noise = generate_violet_noise(length)
white_noise = generate_white_noise(length)
# 绘制噪音图像
plt.figure(figsize=(12, 6))
plt.subplot(2, 4, 1)
plt.plot(uniform_noise)
plt.title('Uniform Noise')
plt.subplot(2, 4, 2)
plt.plot(gaussian_noise)
plt.title('Gaussian Noise')
plt.subplot(2, 4, 3)
plt.plot(standard_gaussian_noise)
plt.title('Standard Gaussian Noise')
plt.subplot(2, 4, 4)
plt.plot(pink_noise)
plt.title('Pink Noise')
plt.subplot(2, 4, 5)
plt.plot(brown_noise)
plt.title('Brown Noise')
plt.subplot(2, 4, 6)
plt.plot(violet_noise)
plt.title('Violet Noise')
plt.subplot(2, 4, 7)
plt.plot(white_noise)
plt.title('White Noise')
plt.tight_layout()
plt.show()
代码使用 NumPy 库中的 np.random.uniform 和 np.random.normal 函数生成均匀分布和高斯分布的随机数。然后使用 np.cumsum 对噪声进行累加,并进行归一化处理。最后使用 matplotlib 库绘制每种噪声的图像。
该代码可以帮助您理解和生成不同类型的白噪音,并可以应用于声音处理、信号处理等领域。
原文地址: https://www.cveoy.top/t/topic/pfsQ 著作权归作者所有。请勿转载和采集!