📄 ofdmmywork.m
字号:
%MY OFDM PROGRAMME
clear
clc
%block=20;
n=512; % no. of users
SNR=1:20; %SNR with step size 1dB
M=2; %bpsk data
m=16; %data length
sl=16; %spread length
chiplen=m*sl; %chip length
for ii=1:length(SNR)
error_total=0;
for iteration=1:50
% generate data
data=randint(n,m,M)
%spreading sequence producing {+1,-1,+1,-1--------}
for i=1:sl
spreading(1,i)=1-2*rem(i-1,2);
end
%spreading sequence generation ends
for j=1:chiplen
if spreading(1,i)<=0;
c1(i,j)=0;
else
c1(i,j)=spreading(1,i);
end
end
d1=c1
%transmitd data
data1=pskmod(d1,M);
transmit=ifft(data1);
%channel
rx_data1=awgn(transmit,SNR(ii),'measured');
%received data
receive=fft(rx_data1);
rx=pskdemod(receive,M)
% error calculation
error=0;
for k=1:n
if rx(k)~=d1(k)
error=error+1;
end
end
error_total=error_total+error;
end
ber(ii,1)=error_total/(n*50);
end
semilogy(ber,'-k*','LineWidth',2,...
'MarkerEdgeColor','g',...
'MarkerFaceColor','b',...
'MarkerSize',10)
xlabel('Eb/No(dB)')
ylabel('Bit Error Rate')
grid on
hold on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -