如何向信号中插入随机噪声
How to insert a random noise to a signal
我有一个随机信号,我想给它添加一个随机噪声。
我可以通过使用 awgn
或 randn
向标准信号(如正弦波、余弦波、方波、锯齿波等)添加噪声
但是当我尝试在像 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')
我有一个随机信号,我想给它添加一个随机噪声。
我可以通过使用 awgn
或 randn
但是当我尝试在像 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')