首页 > 解决方案 > 用傅里叶变换python去除噪声

问题描述

我创建了一个模拟形状来模拟引力波信号,然后向其添加噪声。我现在想做的是使用傅里叶变换恢复初始形状,并比较两者以查看白化噪声的准确度

我该怎么做呢?当我尝试使用 fft 时,每次运行代码时,我都会得到变化的图。这是我的“信号”


import numpy as np
import matplotlib.pyplot as plt


surge_point = 50.25

x_normal = np.linspace(0, surge_point, 1000)
x_surge = np.linspace(surge_point, 70, 1000)

z_normal= [(1/250)*i**2.2*np.sin(2*i) for i in x_normal]
z_surge = [  (1/250)*(100.5-i)**1.8*np.sin(4*i) for i in x_surge] 

plt.plot(x_normal, z_normal , 'r')
plt.plot(x_surge, z_surge , 'r')
plt.title("Mock Whitened Gravitational Wave Signal")
plt.show()

noise = np.random.normal(0, 1, 1000)

znn = z_normal + 3*noise
zsn = z_surge + 3*noise


plt.plot(x_normal, znn, 'r')
plt.plot(x_surge, zsn, 'r')
plt.title("Mock Raw Gravitational Wave Signal")
plt.show()



标签: pythonsignalsfftnoise

解决方案


推荐阅读