matlab如何添加自定义信噪比的噪声信号?

matlab如何添加自定义信噪比的噪声信号?,第1张

clear all

close all

x=0:0.2:10

data1=sin(x)

plot(x,data1)

hold on

data2=awgn(data1,10*log10(0.05))

plot(x,data2,'r-')

hold off

扩展资料

matlab添加白噪声叠加信号

function [Y,NOISE] = noisegen(X,SNR)

% noisegen add white Gaussian noise to a signal.

% [Y, NOISE] = NOISEGEN(X,SNR) adds white Gaussian NOISE to X.  The SNR is in dB.

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

其中X是纯信号,SNR是要求的信噪比,Y是带噪信号,NOISE是叠加在信号上的噪声。

matlab中awgn函数用来在信号中加入高斯白噪声,用法为:

y = awgn(x,SNR)

信噪比SNR以dB为单位。题目要求信噪比为5%,那就是大噪声中的小信号。

如果纯信号为幅值为1的正弦信号,代码如下:

clear all

close all

x=0:0.2:10

data1=sin(x)

plot(x,data1)

hold on

data2=awgn(data1,10*log10(0.05))

plot(x,data2,'r-')

hold off

运行结果如下图,蓝色是纯信号,红色是加了5%信噪比高斯白噪声的信号。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11912657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存