如何给一个信号加上高斯白噪声信号
答案:1 悬赏:40
解决时间 2021-02-01 19:04
- 提问者网友:冷场帝
- 2021-02-01 15:37
如何给一个信号加上高斯白噪声信号
最佳答案
- 二级知识专家网友:有钳、任性
- 2021-02-01 17:10
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));%实际输出信噪比
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));%实际输出信噪比
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯