如何向信号中插入随机噪声

How to insert a random noise to a signal

我有一个随机信号,我想给它添加一个随机噪声。

我可以通过使用 awgnrandn

向标准信号(如正弦波、余弦波、方波、锯齿波等)添加噪声

但是当我尝试在像 signal = [200 180 160 120 80 80 70 70 65 50 55 120 10 10];

这样的随机信号上添加相同的噪声时,这不起作用

这是我尝试过的两种方法:

signal = [200 180 160 120 80 80 70 70 65 50 55 120 10 10 10]; %original signal
plot(signal)
sigma = 0.07; %noise standard deviation
noisy = signal + sigma*randn(size(signal)); %noisy signal
plot(noisy)

signal = [200 180 160 120 80 80 70 70 65 50 55 120 10 10 10];
s = awgn(signal,10,'measured');
plot([signal s])

如何为这些随机信号添加噪声?为什么我不能使用标准命令完成此任务?

如果我理解你的问题,你想以比信号本身的采样频率更小的间隔向你的信号添加一些噪声。

在这种情况下,您可以使用 interp1 来插入您的信号:

signal   = [200 180 160 120 80 80 70 70 65 50 55 120 10 10];
n        = length(signal);
sinterp  = interp1(1:n,signal,1:0.1:n); %interpolation of your signal with interp1(x,y,new_x)
sigma    = 10; %a bigger sigma so we can observe the noise.
noisy    = sinterp + sigma*randn(size(sinterp));
plot(1:n,signal,'b',1:0.1:n,noisy,'r')