clear
clc
% parameter definition
N = 256; % total number of Subchannels
nIteration = 500; % number of iteration in each evaluation
SNR_V = [0:1:30]; % signal to noise ratio vector in dB
GI = N/4; % guard interval length
ber = zeros(1,length(SNR_V)); % initializing bit error rate
M=16;
channelTest=[0.1 1 10]; % three tests of constant channel
for l=1:length(channelTest)
% generating a constant channel coefficients
h=channelTest(l);
for( i = 1 : length(SNR_V))
SNR = SNR_V(i);
for(k = 1 : nIteration)
% Tx Data
TxDataBit = randint(N,1,M);
TxDataMod = pskmod(TxDataBit,M);
TxDataIfft = ifft(TxDataMod,N);
TxDataIfftGi = [TxDataIfft(N-GI+1:N);TxDataIfft]; % Insertion of guard interval
% Rx Data
RxDataIfftGi = h*TxDataIfftGi; % channel effect
% adding awgn noise
RxDataIfftGiNoise = awgn(RxDataIfftGi,SNR-db(std(RxDataIfftGi))); % normalization to signal power
RxDataModIfft = RxDataIfftGiNoise(GI+1:N+GI);
RxDataMod = fft(RxDataModIfft,N);
% Demodulation
RxDataBit = pskdemod(RxDataMod./h,M);
% bit error rate computation
[nErr bErr(i,k)] = symerr(RxDataBit,TxDataBit);
end
end
% Simulation Results
figure(2);
grid on;
if (h==0.1)
semilogy(SNR_V,mean(bErr'),'-go');
hold on;
elseif (h==1)
semilogy(SNR_V,mean(bErr'),'-b*');
hold on;
else
semilogy(SNR_V,mean(bErr'),'-r.');
hold on;
end
end
xlabel('SNR in dB')
ylabel('Bit Error Rate')
title('SNR Vs BER pour des canaux constants suppos�s connues au r�cepteur(OFDM) ')
legend('h=0.1','h=1','h=10')
MATLAB_Dorra.rar_ofdm matlab
版权申诉
153 浏览量
2022-07-14
08:09:27
上传
评论
收藏 68KB RAR 举报
御道御小黑
- 粉丝: 61
- 资源: 1万+