如何给信号加高斯白噪声

2025-01-05 13:34:12
推荐回答(1个)
回答1:

MATLAB中,论证加噪信号经FRFT变换、滤波后,有效滤除噪声中需要给信号加入高斯白噪声,不要以为轻易的产生一个随机矩阵直接加到信号中就可以喽。那样的噪声大小既不可控,又没有意义。下面是给信号xt加入信噪比为-10db的MATLAB程序段: SNR_db=-10; SNR=10^(SNR_db/10); %%%%%%%给LFM信号加高斯白噪声%%%%%%% %计算信号能量 sigpower=0; for i=1:length(xt) sigpower=sigpower+xt(1,i).^2;end%生成噪声 noisepower=sigpower/SNR;%所需噪声能量 noise=randn(1,length(xt));%产生均值为零,方差为一的随机高斯序列 noise=noise-repmat(mean(mean(noise)),1,length(xt));%让均值更接近于零%噪声校正 AWGNpower=0; for i=1:length(xt) AWGNpower=AWGNpower+noise(1,length(xt)).^2;%生成噪声的能量end K=noisepower/AWGNpower;%所需噪声能量与实际生成噪声能量的比值 k=sqrt(K);%校正生成噪声加权值 snr=10*log10(sigpower/sum((k*noise).^2));%实际输出信噪比