Additive White Gaussian Noise (AWGN), Kanal Rayleigh, SNR, dan Eb/N0


AWGN merupakan singkatan dari Additve White Gaussian Noise.  Additive artinya ditambahkan. Gaussian berarti mengikuti distribusi Gaussian atau kadang juga disebut distribusi normal. Sedangkan noise ini disebut white karena terdiri dari seluruh frekuensi dalam spektralnya sebagai cahaya putih. White noise ini sebagai WSS noise yang memiliki rapat spektral daya yang konstan. Biasanya white noise dihasilkan dalam simulasi dengan fungsi rand, sedangkan Gaussian noise dihasilkan dengan fungsi randn pada MATLAB [1].

Colored noise adalah white noise yang sudah difilter oleh band pass filter (BPF) yang telah ditentukan terlebih dahulu frekuensi tengah dan bandwidth-nya sehingga memiliki porsi frekuensi dalam spektrumnya sebagai colored light. Colored noise yang disebut sebagai bandlimited white noise ini dipakai sebagai sinyal testing untuk mengevaluasi algoritma DSP  [1]. Akan tetapi, [4] membedakan antara bandlimited white Gaussian dengan bandlimited colored Gaussian. White noise yang ditapis oleh penapis (filter) finite impulse response (FIR) orde tinggi maka sinyal yang keluar akan mendekati Gaussian noise.  Contoh aplikasi Gaussian noise ini adalah sebagai model pengaruh thermal noise pada rangkaian elektronik [1].

gaussian

Perhatikan model sinyal di bawah ini

y=x+n

jika x adalah sinyal yang diterima pada receiver (penerima), dan n adalah noise AWGN.  Maka y adalah sinyal pada penerima yang telah ditambahkan AWGN.

jika x adalah bilang complex misalnya x=a+ib, maka kita bisa mensimulasikan AWGN dengan menggunakan MATLAB yaitu dengan menambahkan AWGN pada tiap komponen real dan komplex. Misalnya

x=ones(1,1000)+i*ones(1,1000);

y=x+randn(1,1000)+i*randn(1,1000);

randn adalah fungsi di matlab untuk meng-generate distribusi normal / distribusi Gaussian. AWGN kompleks ditambahkan khusus untuk simbol dengan modulasi yang menggunakan bilangan kompleks yaitu QPSK dan 4-QAM ke atas. Sedangkan untuk modulasi BPSK cukup bilangan real saja.

Jika dalam simulasi kita menggunakan Signal Noise to Ration (SNR), maka kita gunakan SNR ini dalam unsur magnitude yang dikalikan pada fungsi randn.

P_n=10^{-\frac{SNR}{10}}

di mana jika P_n adalah power dari noise AWGN. Misalnya SNR adalah 30 dB, maka P_n = 0.001.

Sedangkan karena sinyal yang diterima dan AWGN dalam tegangan (voltage), maka tegangan adalah akar dari Power.

Sedangkan probability density function (pdf) dari Power Spectral Density AWGN mempunyai variance \frac{1}{2}N_o [2], maka magnitude atau attenuasi dari randn adalah \sqrt{\frac{P_n}{2}}.

Sehingga sinyal di penerima yang sudah ditambahkan AWGN adalah sebagai berikut

y=x+\sqrt{\frac{P_n}{2}}*(randn(1,1000)+i*randn(1,1000)).

Atau MATLAB juga sebenarnya sudah ada fungsi AWGN yaitu awgn:

y = awgn(x,SNR),

y = awgn(x,SNR,SIGPOWER) , jika Power dari sinyal yang diterima diukur dulu sebelum ditambahkan AWGN.

AWGN ini adalah noise alami, yang selalu ada di setiap perangkat. Jadi setiap pada setiap perhitungan komunikasi yang melakui kanal maka harus ditambahkan AWGN.

Definisi dari White Gaussian Noise adalah sebuah sinyal acak yang dikarakteristikan oleh: keluaran dari sebuah detektor linier (energi terbatas) adalah sebuah variabel acak Gaussian dengan rata-rata nol [3].

Sebuah sejarah menarik di [4] menceritakan bahwa Shannon yang pertama kali menganalisis kanal dengan additive Gaussian noise. Gaussian noise tersebut adalah jenis white. Sehingga dibuatlah formula untuk kapasitas kanal dengan bandlimited white Gaussian. Kemudian Gallager dalam bukunya menghadirkan bentuk teorema pengkodean kanal untuk kanal tanpa memori yang kontinyu. Selanjutnya, Wayner membuktikan formula kapasitas untuk kanal bandlimited white Gaussian. Shannon juga mengembangkan solusi water-filling untuk kapasitas kanal bandlimited colored Gaussian yang dibuktikan oleh Pinsker.

Kanal AWGN (Channel AWGN)

Apakah kanal AWGN itu?

Untuk mengetahuinya, terlebih dahulu kita lihat formula di bawah ini:

y=hx+n,

dimana y adalah sinyal yang diterima, x adalah sinyal yang dikirimkan, h adalah kanal, dan n adalah AWGN atau biasa disebut noise.

Kanal AWGN adalah kanal dengan nilai h=1, artinya kita ingin mengetes efek dari noise atau AWGN saja, sehingga nilai kanal diset 1.

Kanal Rayleigh

Kanal Rayleigh adalah kanal yang mengikuti distribusi Rayleigh. Kanal Rayleigh ini biasanya digunakan untuk kanal yang tidak LOS (Line-of-Sight) atau juga sering disebut NLOS (non-Line-of-sight). Kanal ini didapatkan pada bilangan acak kompleks Gaussian. Sehingga kita bisa menggunakan fungsi berikut ini untuk kanal Rayleigh dengan one path:

hr=randn(1,1)+j*randn(1,1);

Jika kita melihat histogram dari kanal Rayleigh dengan jumlah yang sample yang banyak, maka kita akan mendapatkan distribusi Rayleigh seperti pada gambar di bawah ini,

rayleigh

MALTAB Coding Script: AWGN and Rayleigh Channel BER

Berikut ini adalah contoh skrip MATLAB untuk mensimulasikan BER kanal AWGN dan kanal Rayleigh. Simlasi ini adalah simulasi yang menggunakan modulasi Binary Phase Shift Keying (BPSK), uncoded, 4,000 bit/frame, dengan total frame 100,000 frame, sehingga total bit dalam simulasi ini adalah 400 juta bit. Uncoded di sini maksudnya adalah channel coding tidak dimasukkan ke dalam simulasi.

Pada simulasi di bawah ini saya bandingkan antara zero forcing yaitu sebelum di-demapping modulasi BPSK dengan matched filter, yaitu dikalikan dengan conjugate dari kanal Rayleigh. Dalam simulasi saya terlihat bahwa hasil zero forcing dengan matched filter hasilnya sama. Hal ini dikarenakan fungsi untuk meng-generate bilangan acak Gaussian atau distribusi normal yaitu min(abs(randn(1,4e8))), maka nilai absolut yang paling kecil adalah 1.0923 \cdot 10^{-9} atau sekitar 10^{-9} karena setiap kita run maka hasilnya akan berbeda. Oleh karena itu karena ada nilai kanal yang hampir 0, maka jika kita menggunakan zero forcing yaitu dengan cari sinyal yang diterima dibagi oleh kanal tersebut, maka nilai noise AWGN akan menjadi besar sekali. Oleh karena itu, sebaiknya kita menggunakan matched filter dengan cara mengalikan sinyal yang diterima setelah ditambahkan AWGN kemudian dikalikan dengan conjugate dari kanal tersebut.

Untuk mengecek kebenaran dari hasil simulasi kita. Untuk kanal AWGN kita lihat pada BER 10^{-5} tepat berada pada SNR 9.5 dB. Sedangkan untuk kanal Rayleigh one diversity seperti pada simulasi ini, kita bisa lihat untuk delta SNR 10 dB maka delta BER sebesar 0.1.

BER

% ———————————————————————–
% BER AWGN
% Muhammad Reza Kahar Aziz
% Rev A: 12 Feb 2014. AWGN
% Rev B: 12 Feb 2014. Rayleigh
% Rev C: 13 Feb 2014. Deleted others not used
%————————————————————————-

clear all;
clf;

SNR=0:30; % SNR in dB

data=4000; % number of data
frame=100000; % frame or block

for k=1:length(SNR)
k
for f=1:frame

x=round(rand(1,data)); % data uses random uniform

bpsk=1-x*2; % Mappng BPSK modulation, 0 –> 1, 1 –> -1

% channel
h=1; % awgn channel
hr=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); % rayleigh

% AWGN
amplitude_awgn=sqrt((10^(-SNR(k)/10))/2);
awgnr=randn(1,data)+1i*randn(1,data); % bpsk has only real part

% AGWN only transmission
y_bpsk=bpsk*h+amplitude_awgn*real(awgnr); % reveived bpsk symbol

% Rayleigh + AWGN transmission
y_bpsk_r=bpsk.*hr+amplitude_awgn*awgnr; % reveived bpsk symbol

% Channel equalization
y_bpsk_rd=y_bpsk_r./hr;
y_bpsk_rc=y_bpsk_r.*hr’;

% Decision
for d=1:data
% AWGN only
if y_bpsk(d)>=0
y_bpsk2(d)=1;
else
y_bpsk2(d)=-1;
end

% Rayleigh + AWGN
if real(y_bpsk_rd(d))>=0
y_bpsk_rdr(d)=1;
else
y_bpsk_rdr(d)=-1;
end

if real(y_bpsk_rc(d))>=0
y_bpsk_rcr(d)=1;
else
y_bpsk_rcr(d)=-1;
end
end

% Demapping BPSK Modulation
y2=(1-y_bpsk2)/2; % AGWN only
yrdr=(1-y_bpsk_rdr)/2; % Rayleigh + AWGN
yrcr=(1-y_bpsk_rcr)/2;

% Bit error
error2(f,k)=sum(abs(x-y2));
error_rdr(f,k)=sum(abs(x-yrdr));
error_rcr(f,k)=sum(abs(x-yrcr));

end
end

% Bit error for all SNR
error_snr_2=sum(error2);
error_snr_rdr=sum(error_rdr);
error_snr_rcr=sum(error_rcr);

total=data*frame;

% BER
ber_2=error_snr_2/total;
ber_rdr=error_snr_rdr/total;
ber_rcr=error_snr_rcr/total;

semilogy(SNR,ber_2,SNR,ber_rdr,SNR,ber_rcr,’*’,…
‘linewidth’,4,’markersize’,15);
legend(‘AWGN’,’Rayleigh div’,’Rayleigh conj’);

 

Terima Kasih

Terima kasih untuk diskusi berharga bersama Prof. Khoirul Anwar and teman seperjuangan Ade Irawan, Muhammad Nur Hasan, dan Ardimas Andi Purwita.

Referensi

[1] S. M. Kuo, B. H. Lee, and W. Tian, Real Time Signal Processing: Fundamental, Implementation and Application, 3rd Ed., Wiley, West Sussex: 2013

[2] E. Biglieri, Coding for Wireless Channels, pp.39, Springer, 2005

[3] H. Schulze and C. Leuders, Theory and Application of OFDM and CDMA: Wideband Wireless Communication, Wiley, England: 2005

[4] R. W. Yeung, Information Theory and Network Coding, pp. 297, Springer, New York: 2008

6 Balasan ke Additive White Gaussian Noise (AWGN), Kanal Rayleigh, SNR, dan Eb/N0

  1. Ping balik: AWGN AdditiveWhite Gaussian Noise via MATLAB | Menyambut Akhir Zaman

  2. Antonny berkata:

    maaf mas, mau tanya
    awgn itu selalu koma ya hasilnya

  3. Antony Wibowo berkata:

    min boleh tanya gak?
    kodingan bagian decision itu ada rumusnya dari teori?

  4. adee berkata:

    assalamualaikum wr. wb. Dr. Reza saya ingin bertanya, apakkah bapak pernah membahas mengenai kanal awgn pada QAM ?

Tinggalkan komentar