2014-11-27 1 views
0

Как добавить белый гауссовский шум в сигнал.
Теперь я использую функцию awgn, но она не работает.
Я могу указать неверный параметр?Как добавить белый гауссовский шум в сигнал

EDITED

x = -2:.002:2; 

% Initail variables 
M = 0; 
V = 500*10^(-6); 

% Creating a singal 
T = -pi + (pi+pi)*rand(1,1); 
S = (13.5)*cos(2*pi*x+T); 

% Creating Noise singal 
W = M+sqrt(V)*rand(1,2500); 

% Adding Noise to signal // This doesn't work 
SW = awgn(S,W,'measured'); 
% or this doesn't work too 
SW = S + W; 

Спасибо заранее.

enter image description hereenter image description here

+2

Что значит «это не работает»? Происходит ли код, но дают неверные результаты (в этом случае мы даем ожидаемый и фактический результат и небольшой тестовый пример), или он дает ошибку и не заканчивается (в этом случае мы получаем сообщение об ошибке и небольшой тестовый пример)? – David

+1

Ваш пример не может быть запущен. Пожалуйста, поставьте все необходимые значения (особенно 'x'). Я полагаю, что ваши векторы 'S' и' W' не имеют одинакового размера, иначе 'SW = S + W;' должен определенно работать. Просто убедитесь: попробуйте 'W = M + sqrt (V) * rand (size (S));' – hbaderts

+0

вам нужно определить V и x, а размеры S и W должны быть одинаковыми, я предлагаю вам отлаживайте свой код шаг за шагом и дайте нам знать, какова конкретная проблема. – shoham

ответ

1

Ваши векторы не имеют одинакового размера. S - 1x2001 и W - 1x2500. Попробуйте

W = M + sqrt(V)*rand(size(S)); 

Тогда вы можете просто добавить сигналы

SW = S + W; 

Как Костя уже писал, awgn можно использовать, если вы знаете, желаемый SNR.

1

От Matlab руководства

у = АБГШ (х, ОСШ) добавляет белый гауссов шум к вектору сигнала х. Скаляр snr определяет отношение сигнал/шум для образца в дБ.