function [Y,NOISE] = add_noise(X,SNR) %加噪 NOISE=randn(size(X)); NOISE=NOISE-mean(NOISE); signal_power = 1/length(X)*sum(X.*X); noise_variance = signal_power / ( 10^(SNR/10) ); NOISE=sqrt(noise_variance)/std(NOISE)*NOISE; Y=X+NOISE; end
时间: 2023-12-09 11:04:29 浏览: 107
vco_phase_noise_3.mdl.zip_NOISE
这是一个用于对信号加噪的函数。函数名为add_noise,它接受两个输入参数:原始信号X和信噪比SNR。
首先,函数生成一个与原始信号X相同大小的随机噪声NOISE,其数值服从正态分布,并且均值为0。函数通过减去噪声的均值来确保噪声是零均值的。
接着,函数计算原始信号的能量(即信号的平方和除以信号长度),并计算所需的噪声方差,以满足所需的信噪比。
然后,函数将噪声标准差缩放以匹配所需的噪声方差,并将其加到原始信号X上,得到最终的加噪信号Y。函数还返回了生成的噪声NOISE,以便后续处理使用。
阅读全文