高斯白噪声的添加

SNR的定义

高斯白噪声的添加
SNR:信噪比,信号与噪声的比率
P:平均能量
信号功率和噪声功率有着相同的带宽
如果信号是一个常量s,或者随机变量S,那么对于随机噪声N的SNR为
高斯白噪声的添加
E:期望
高斯白噪声的添加
如果噪声的期望为0,显然
高斯白噪声的添加
高斯白噪声的添加
显然,高斯白噪声的添加

分贝

因为信号动态范围很大,所以,经常用对数分贝缩放,
高斯白噪声的添加
高斯白噪声的添加
高斯白噪声的添加
因此,
高斯白噪声的添加
高斯白噪声的添加
高斯白噪声的添加

matlab代码

function [res] = add_noise(data,snr_db)
%ADD_NOISE 此处显示有关此函数的摘要
%   此处显示详细说明
% snr input actually  is snr_db
% input:data,snr_dB
%snr_db=10log10(snr)
%snr=10^(snr_dn/10)
snr=power(10,snr_db/10);
% snr=p_s/p_n
% D(s)=E(s^2)-E(s)^2
p_s=var(data)+mean(data)^2;
p_n=p_s/snr;
sigma=sqrt(p_n);
noise=normrnd(0,sigma,100,1);
% x=(1:100)';
% plot(x,data,'r.');
% hold on;
% plot(x,data+noise);
% legend('原始数据','15dB噪声');
res=data+noise;
end
上一篇:字符串转换成浮点数


下一篇:机器视觉行业嵌入式将逐渐取代板卡式产品