参考书籍《Adaptive Filter Theory (5th Edi - Haykin, Simon O_》
下图为维纳滤波的框图
损失函数定位为输出误差平方期望最小,最后经过推到得出结论为权值系数计算:
时域维纳滤波代码如下:
import numpy as np
import matplotlib.pyplot as plt
import scipy.signal
def awgn(x, snr, seed=7):
'''
加入高斯白噪声 Additive White Gaussian Noise
:param x: 原始信号
:param snr: 信噪比
:return: 加入噪声后的信号
'''
np.random.seed(seed) # 设置随机种子
snr = 10 ** (snr / 10.0)
xpower = np.sum(x ** 2) / len(x)
npower = xpower / snr
noise = np.random.randn(len(x)) * np.sqrt(npower)
return noise,npower
x = np.arange(0,80,0.