加性高斯白噪声及维纳滤波的基本原理与Python实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了加性高斯白噪声及维纳滤波的基本原理与Python实现相关的知识,希望对你有一定的参考价值。
参考技术A加性高斯白噪声属于白噪声的一种,有如下两个特点:
random.gauss(mu, sigma) 其值即服从高斯分布,若想要是实现加性高斯白噪声,循环作加即可
实际上逆滤波是维纳滤波的一种理想情况,当不存在加性噪声时,维纳滤波与逆滤波等同。
在时域内有
根据时域卷积定理,我们知道 时域卷积等于频域乘积
则有
这意味着,当我们已知系统函数时,我们可以很简单的完成滤波。
理解了逆滤波的基本过程之后,实际上维纳滤波就不是太大问题了。实际上,逆滤波对于绝大多数情况滤波效果都不好,因为逆滤波是通过傅里叶变换将信号由时域转换到频域,再根据 时域卷积定理 ,在频域作除法。对于乘性干扰这当然是没问题的,甚至是完美的。而如果存在加性噪声,例如:加性高斯白噪声。逆滤波效果就不好了,某些情况下几乎无法完成滤波情况。
输入信号经过系统函数后
时域上
频域上
若存在加性噪声则为
时域上
频域上
则
于是,从上面对输入信号的估计表达式可以看出,多出了一项加性噪声的傅里叶变换与系统函数的比值。尤其当 相对于 很小时,滤波后的信号差距十分严重。
而我们又知道: 白噪声的白为噪声的功率谱为常数 ,即 为常数,于是,从直观上看,当 相对于 较大时,则 较小,上式第一项则较小,而第二项较大从而保持相对平稳。
click me!
加性高斯白噪声 AWGN
加性高斯白噪声 AWGN(Additive White Gaussian Noise) 是最基本的噪声与干扰模型。
加性噪声:叠加在信号上的一种噪声,通常记为n(t),而且无论有无信号,噪声n(t)都是始终存在的。因此通常称它为加性噪声或者加性干扰。
白噪声:噪声的功率谱密度在所有的频率上均为一常数,则称这样的噪声为白噪声。如果白噪声取值的概率分布服从高斯分布,则称这样的噪声为高斯白噪声。
Matlab中实现加性高斯白噪声:
y = awgn(x,SNR)
在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。
y = awgn(x,SNR,SIGPOWER)
如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为‘measured‘,则函数将在加入噪声之前测定信号强度。
y = awgn(x,SNR,SIGPOWER,STATE)
重置RANDN的状态。
y = awgn(…,POWERTYPE)
指定SNR和SIGPOWER的单位。POWERTYPE可以是‘dB‘或‘linear‘。如果POWERTYPE是‘dB‘,那么SNR以dB为单位,而SIGPOWER以dBW为单位。如果POWERTYPE是‘linear‘,那么SNR作为比值来度量,而SIGPOWER以瓦特为单位
以上是关于加性高斯白噪声及维纳滤波的基本原理与Python实现的主要内容,如果未能解决你的问题,请参考以下文章