⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main256.m

📁 程序是MIMO-OFDM系统下
💻 M
字号:

clear all;
mul=2;% 12000bit的倍数
M=2;
N=2;
data_num=224;
N_total=224*2*mul;
Lh=6;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%555
%%%%%%%%%%generate sdbc parameter
FRAME_NUM=N_total/data_num/M;

Cons=1/sqrt(M)*[1 j -1 -j];
Tdata=Cons(2*round(rand(1,N_total))+round(rand(1,N_total))+1);


SNR=20:2:20;
Ps=zeros(1,length(SNR));

data=reshape(Tdata,M,N_total/M);
%for snr=1:1:length(SNR)
    
%[H ,tx_data]=ofdm_transmitter(FRAME_NUM,M,N,Tx.',SNR(snr));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%555
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%% OFDM
ant_num=M;
rx_num=N;
sub_num=256;
dK=8;
pre_ratio=1/8;
fd=5;%hz
deltaT=5e-8;%s
pilot_num=32;
pilot=Cons(2*round(rand(ant_num,pilot_num*FRAME_NUM))+round(rand(ant_num,pilot_num*FRAME_NUM))+1);
[pilot_position, Tx_data]=OFDM_tx1(pilot,pilot_num,data,data_num,dK,ant_num,sub_num,pre_ratio,FRAME_NUM);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5  channel

Power = 10.^([ 0 -8 -16 -24 -34 -40 ]'./10);  % 6径信道每条径的功率
Delay = 2/100*[ 0 100 200 300 400 500 ]';      % 最大多径时延 10us 室外信道
NS=sub_num*(1+pre_ratio)*FRAME_NUM+max(Delay);

R=channel(fd,deltaT,NS,M,N,Power,Delay,Tx_data);

for snr=1:1:length(SNR)
SNR(snr)
RD=zeros(size(R));    
Es=zeros(1,N);
Noise=zeros(size(R));


for rn=1:1:N
Es(rn)=(R(rn,:)*R(rn,:)')/length(R(rn,:));
Noise(rn,:)=sqrt(Es(rn)/(10^(SNR(snr)/10))/2)*(randn(1,length(R))+randn(1,length(R))*i);
end


RD=R+Noise;


%%%%%%%%%%receiver
[H,tx_data]=OFDM_rx(M,N,FRAME_NUM,sub_num,pre_ratio,pilot,RD,pilot_position,Lh,pilot_num,data_num);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5

%H=rand(M,length(Tx)/ds)+rand(M,length(Tx)/ds)*i;
Rx=zeros(N_total,1);
for k=1:1:length(tx_data)
    Rd=tx_data((k-1)*ds+1: k*ds,:);
    h=reshape(H(k*ds,:),M,N);
    Rx(dt*(k-1)+1:dt*k,1)=decode_stbcMO(Rd,M,N,index,h,Cons);
end
Rdata=reshape(Rx,1,N_total);
%R(10:100)=1;
%R(N_total-100:N_total)=1;
%xa=1:1:N_total;
%;semilogy(xa,abs(R-Tdata));
error=0;
for k=1:1:N_total
    if Rdata(k)~=Tdata(k);
        error=error+1;
    end
end
Ps(snr)=error/N_total;
end

Ps
%ratio(SNR/2-4)=error/N_total;
%end


semilogy(SNR,Ps);
hold on ;
grid on ;
xlabel('Eb/No (dB)','FontSize',10);
ylabel('ZF','FontSize',10);
title('系统ZF~Eb/No性能曲线');
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -