Simulasi Kinerja BER pada Kanal AWGN dan Kanal Fading

Semester kemarin saya mengambil mata kuliah ET4081 – Sistem Komunikasi Seluler dengan dosen Pak Adit Kurniawan. Pada akhir masa kuliah, kami diberi tugas akhir untuk men-simulasikan kinerja bit error rate (BER) pada kanal AWGN dan kanal fading. Tugas ini dikerjakan berkelompok (saya, Timor, Copi, Fadel).

So, begini permasalahannya:

Untuk verifikasi formula BER pada kanal AWGN, dibuat simulasi komputer dengan menggunakan perangkat lunak MATLAB untuk melihat kinerja BER tersebut pada komunikasi digital. Simulasi dilakukan untuk nilai-nilai Eb/No = 0, 2, 4, 6, dan 8 dB. Bit error dihitung secara Monte Carlo sebanyak 5 kali run simulasi untuk masing-masing nilai Eb/No tersebut. Kemudian, kurva BER vs Eb/No hasil simulasi Monte Carlo digambarkan dan dibandingkan dengan kurva teoritis.

Pertama-tama, kita lihat dulu kurva teoritis untuk menentukan jumlah bit dengan minimal 10 error. Kurva teoritis dapat ditampilkan di MATLAB dengan script berikut:

figure(1);
SNR = [0:2:10];
i = 1:length(SNR);
BER(i)= 0; t = [0:0.1:10];
Pe = 0.5*erfc(sqrt( 10.^(t./10)));      %BER teoritis
semilogy(t, Pe, ‘blue”);                           %Plot data secara logaritmik
grid on;
title(‘BER vs SNR (AWGN)’);
xlabel(‘SNR (dB)’);
ylabel(‘Bit Error Rate (BER)’);

(script ini diperoleh dari modifikasi script yang ada di bagian paling terakhir)

Kurva teoritis BER vs SNR untuk kanal AWGN

Pada posting ini, sebagai contoh akan dilakukan simulasi untuk SNR = 4dB saja. Dari kurva teoritis tersebut terlihat bahwa untuk SNR 4dB, BER teoritis adalah 0.0125, sehingga untuk minimal 10 error jumlah bit yang harus diuji adalah 1000 bit.

Simulasi dilakukan dengan menggunakan script berikut:

N = 1000;                                        %Jumlah bit = 1000
SNR = 4;                                           %SNR = 4 dB
signal = sign(randn(1, N));      %Generate sinyal random NRZ bipolar 1V
t=1:length(signal);
figure(1); plot(t, signal);           %Menampilkan sinyal yang dibangkitkan
noise = randn(1, N)./10^(SNR/20)./sqrt(2);      %Generate noise
figure(2); plot(t, noise);                                                %Menampilkan noise    
r = signal + noise;         %r = sinyal yang tercampur noise
figure(3); plot(t, r);      %Menampilkan sinyal yang tercampur noise
r = sign(r);               
err = sum(abs(signal-r)/2)      %Menghitung jumlah error

(script ini diperoleh dari penjelasan dosen di kelas)

Bit error dihitung secara Monte Carlo sebanyak 5 kali run simulasi. Proses Monte Carlo sebanyak 5 kali dilakukan karena proses ini bersifat acak, sehingga untuk memperoleh hasil yang akurat perlu diambil beberapa sampel. Simulasi memberikan hasil sebagai berikut:

Hasil simulasi untuk SNR 4dB pada kanal AWGN

Lima kali run simulasi memberikan hasil bit error sebanyak 8, 18, 12, 18, dan 11, sehingga rata-rata bit error adalah sebanyak 13,4 bit dari setiap 1000 bit sinyal yang dibangkitkan. Sehingga dari simulasi ini diperoleh BER = 0.0134, cukup dekat dengan BER teoritis.

Untuk membandingkan kurva teoritis dan kurva hasil simulasi, dapat dilakukan secara manual dengan membuat grafik setelah simulasi pada semua nilai SNR dilakukan. Namun, dapat juga dilakukan dengan menggunakan script seperti berikut:

figure(1);
clear; clf;
N = [1000 1000 1000 10000 100000 1000000];
%Jumlah bit untuk minimal 10 error
SNR = [0:2:10];                  %SNR = 0, 2, 4, 6, 8, dan 10 dB
for i = 1:length(SNR);      %Loop untuk 5 kondisi SNR
    BER(i) = 0;                        %Inisiasi nilai BER untuk kasus i (i = 1,2,3,4,5)
    N(i);
    for j = 1:5                           %Monte Carlo sebanyak 5 kali
        signal = sign(randn(1, N(i)));      %Generate sinyal random NRZ bipolar 1V
        noise = randn(1, N(i))./10^(SNR(i)/20)./sqrt(2);      %Noise AWGN
        r = signal + noise;      %Sinyal yang tercampur noise
        r = sign(r);
        err(i) = sum(abs(signal-r)/2);      %Hitung error kasus ke-i
        BER(i) = BER(i) + err(i);                   %Simpan nilai error kasus ke-i
    end
    BER(i) = BER(i)/(5*N(i));                    %Hitung rata-rata error
end
t = [0:0.1:10];
Pe = 0.5*erfc(sqrt( 10.^(t./10)));       %Nilai error teoritis
semilogy(t, Pe, ‘blue’, SNR, BER, ‘r-*’);      %Kurva teoritis dan hasil simulasi
grid on;
title(‘BER vs SNR (AWGN)’);
xlabel(‘SNR (dB)’);
ylabel(‘Bit Error Rate (BER)’);

(script ini diperoleh dari sini :) )

Perbandingan antara kurva teoritis (biru) dan kurva hasil simulasi kanal AWGN (merah)

Untuk yang kanal fading, begini permasalahannya:

Simulasi komputer dibuat untuk mensimulasikan kanal fading pada nilai Eb/No = 0, 5, 10, 15, 20, dan 25 dB. Simulasi dilakukan untuk Doppler shift fD = 30Hz, serta laju data = 10Kbps. Fading simulator telah diberikan dalam fungsi MATLAB oleh dosen.

Simulasi kedua ini serupa dengan yang sebelumnya. Namun, pada simulasi ini diberikan fading yang berupa fungsi dari jumlah bit, doppler shift, dan periode bit. Fading ini nantinya akan dikalikan pada sinyal yang di-generate. Jangan lupa untuk mengubah persamaan BER teoritis menjadi persamaan BER pada kanal fading. Kemudian, untuk menentukan jumlah bit, selain melihat kurva teoritis dilakukan pula perhitungan dengan persamaan:

selanjutnya jumlah bit yang digunakan adalah hasil yang terbesar antara kurva teoritis dan perhitungan di atas.

Yap, sekali-sekali deh posting hal yang berisi. :P

Sambil belajar, sambil inget-inget, sambil sharing juga.

Semoga berguna buat yang baca… :)

5 thoughts on “Simulasi Kinerja BER pada Kanal AWGN dan Kanal Fading

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s