Binary Communication System●BPSK Modulation : 0 to 1 and 1 to -1●Channel : AWGN●BPSK Demodulation : Check the sign of received signal to decide whether "0"or"1"1. Matlab 코드%모든 변수 삭제clear all% Number of simulated bitsN = 1000000;% Set the signal powerSignalPower = 1;% Set the SNRSNR = 0:2:10;for k = 1:length(SNR),% the noise power according to SNR(k)NoisePower = SignalPower*10^(-SNR(k)/10);→SNR=log(N/S) 공식을 N으로 정리% Data source generation: use unidrnd();TxData = randint(1,N);→함수 발생(0,1,0,1,0,1....)% BPSK modulationModSignal = -2.*TxData+1;→설계 조건에 따라 TxData값이 0일 때 Mod는 1, 1일 때 -1이 된다% Channel: use randn()Noise = sqrt(NoisePower).*(randn(size(TxData)));RxSignal = ModSignal + Noise;→Noise는 NoisePower½ * 입력과 동일하게 생성된 함수를 곱해준다→Modulation한 신호와 Noise의 합을 RxSignal로 정의해준다% BPSK demodulation: use sign()RxData = (1-sign(RxSignal))/2;→RxSignal은 Noise가 섞여서 1또는 -1이 나올 것이다.1일 때 RxData의 값은 0, -1일 때 1이 될 것이다.(초기 설계 조건과 동일하게 나옴)% Check bit errorsNumError = sum(abs(TxData-RxData));→처음 생성된 값과 demodulation을 한 값을 뺀다. Error가 없다면 0 Error가 났다면 1이 나올 것이다.% Calculate BERBER(k) = NumError/N;→Error의 개수를 처음 생성한 N으로 나눠주면 BER(k)값이 된다.% Calculate BER_theoryBER_theroy=qfunc(sqrt(10.^(SNR/10)));→이론적인 확률은 Q-function을 사용. 선형적으로 구해야 되기 때문에 S/N에 루트 값을 취한 값이 될 것이다.endsemilogy(SNR,BER,'-',SNR,BER_theroy,'*')→시뮬레이션 값과, 이론적인 확률 값을 표현해주었다.2. 결과 및 분석그래프에 이론적확률과 시뮬레이션이 둘 다 나타났다. Y축은 BER, X축은 SNR값이 된다. 이론적확률과 시뮬레이션 모두 SNR값이 커질수록 확률이 작아지는 것을 확인 할 수 있었으며, 실제 수업에서 배운 그래프와 모양이 비슷하게 나왔다.