clc; close all; clear all; N=10^7; %Üretilecek toplam bit sayısı % Rand Fonksiyonunun tanımlanması rand("state",100); % Randn Fonksiyonunun tanımlanması randn("state",200); bits = rand(1,N)>0.5; a=2*bits-1; % bit değerleri ayarlandı n=[randn(1,N)+1i*randn(1,N)]; Eb_No_dB=[-3:18];% Eb/N0 olarak bilinen SNR değerleri (dBcinsinden) %N0 ı bulmakiçin ise her bir SNR değerine karşılık gelen N0 hesaplanmıştır. %%SNR(db)=10*log(Eb/N0) formulunden N0 çekilirse (Eb=1 için) %%[1/10^(10*SNR)] =N0 elde edilir. Eb_No = 10.^(Eb_No_dB/10); % db olarak oluşturulan SNR ınnormal değere N0 = 1./Eb_No % Eb=1 için %dönüştürülmesi gama = N0/2*log(2); % teorik hesaplama sonucu gama,gama=0.3465*N0 olarak bulunmustur for i=1:length(Eb_No_dB) y=a+10^(-Eb_No_dB(i)/20)*n; % elde edilen z(T) değerinin karşılaştırılması bits_new=real(y)>(gama(i)); % Hataların sayılması nErr(i)=size(find ([bits-bits_new]),2); end % Simulasyon Eğrisi Psim=nErr/N; % Teorik olarak grafiğin çizdirilmesi işlemi matlab ın Q fonksiyonu olan % qfunc ile yapilmistir for i=1:length(Eb_No_dB) Pthe(i)= (1/3) - (1/3)* qfunc((0.3465*N0(i)-1)/sqrt(N0(i)))+ (2/3)*qfunc((0.3465*N0(i)+1)/(sqrt(N0(i)))); end % Teorik ve simulasyon grafiklerinin çizdirilmesi figure semilogy(Eb_No_dB,Pthe, "b.-"); hold on semilogy(Eb_No_dB,Psim, "mx-"); axis([-3 14 10^-5 0.5]); grid on legend("Teorik","simulasyon"); xlabel("Eb/ No , dB"); ylabel(" BER rate"); title("Bit Hata Olasılığı Eğrisi");