반응형

 

Additive White Gaussian Noise

 

AWGN 공식은 아래와 같다

S 는 신호,

n 은 신호의 길이

SNR 은 Signal to Noise Ratio, 신호 전력 대 잡음 전력 비율 (보통 db 스케일로 표현함 - SNR(db) 이것은 10log(SNR) 에 해당함)

따라서 E(s)/SNR 은 E(n) 이 되는 것이다.그러면 E 는 전력 성분 (해당 신호의 제곱의 평균) 이므로 루트를 씌워 주면,noise 의 크기에 해당하는 성분을 얻을 수 있다.

이를 σ 로 표현했다.

 

따라서 최종식은 "σ x 가우시안 noise" 이다!

 

matlab 코드는 아래와 같다.

%% awgn
function [noised_signal] = my_awgn(signal, SNR_dB)

% Specify SNR in dB. Try setting various different value here and see how the result changes

% Get the number of symbols
N = length(signal);

% Calculate Symbol Energy
Eavg = sum(abs(signal) .^ 2)/N;

% Convert SNR (in dB) to SNR (in Linear)
SNR_lin = 10 .^ (SNR_dB/10);

% Calculate the Sigma (Standard Deviation) of AWGN
awgnSigma = sqrt(Eavg/(2*SNR_lin));
 
% Generate a sequence of noise with Normal Distribution and rescale it with the sigma
awgn = awgnSigma*(randn(1,N)+1i*randn(1,N));
awgn = awgn';

% Add AWGN to PSS

noised_signal = signal + awgn;

end
반응형

+ Recent posts