Professional Documents
Culture Documents
QPSK Simülasyon
QPSK Simülasyon
İlk for döngüsü ‘gain’ ile tanımlanan gürültüye bağlı olarak SNR’yi değiştiren
değerler için yazılmıştır.
İkinci ve üçüncü for döngüleri ortalaması alınan 1000 adet kanal için tanımlanmıştır.
Bu kısımda, QPSK modülasyonlu veri, ‘veri_1’ ile üretilmiştir, burada veriyi üretmek için
“randn” Matlab komutu kullanılmıştır. Rastgele gürültü ise “randn” Matlab komutu
kullanılarak ‘gurultu’ tanımı ile üretilmiştir.’ p_s’ ve ‘p_n’ sırasıyla işaret ve gürültü
güçleridir ve ‘veri’ ile tanımlanan kısım ise gönderilen işarete gürültü eklenmiş durumdur.
Üçüncü for döngüsünde QPSK demodülasyonu ve ‘t_ber’ (bit hatası) ile tanımlanan BER
değerine ulaşmak için kullanılan değerler vardır.
Programın son kısmında ise BER ve SNR değerleri oluşturulup, Matlab’ın “semilogy”
komutuyla BER-SNR grafiği çizdirilmiştir.
clear all,clc
close all
1
for qq=2:n_gain
gain(qq)=gain(qq-1)/sqrt(1.6); % SNR artışını ayarlamak için
end
for gn=1:n_gain
for kanal_sayisi=1:1000
veri_1=2*(rand(1,sembol_sayisi)>.5)-1+(2*(rand(1,sembol_sayisi)>.5)-1)*1i;%QPSK'lı veri
gurultu=gain(gn)*(randn(1,length(veri_1))+randn(1,length(veri_1))*1i);%random gürültü
% Kanal çıkışı
veri=veri_1+gurultu;
for n = 1 : sembol_sayisi
SNR(gn)=10*log10(p_s/p_n);
fprintf('SNR=%f\t BER=%f\n',SNR(gn),BER(gn));
end%gain
2
%SNR-BER grafiği
semilogy(SNR,BER)
grid
xlabel('SNR(dB)')
ylabel('BER')
title('QPSK modülasyonlu gürültülü gürültülü kanalda performans grafiği')
Aşağıdaki simülasyon sonucu oluşan BER ve SNR sayısal değerleri verilmiş olup, performans
grafiğinde gösterilmişlerdir.
SNR=-0.001396 BER=0.158797
SNR=2.037834 BER=0.103064
SNR=4.085659 BER=0.054670
SNR=6.124375 BER=0.021475
SNR=8.167714 BER=0.005226
SNR=10.207329 BER=0.000613
SNR=12.250051 BER=0.000021
SNR=14.289667 BER=0.000000
SNR=16.334178 BER=0.000000
SNR=18.375615 BER=0.000000
3
QPSK modülasyonlu gürültü kanalda performans grafiği
0
10
-1
10
-2
10
BER
-3
10
-4
10
-5
10
-2 0 2 4 6 8 10 12 14
SNR(dB)