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

📄 ofdm_systom.m

📁 OFDM的发射端
💻 M
字号:
clc;
clear all;
k=0;
AMPLITUDE=210000;   
AMPLITUDE1=70000;
AMPLITUDE3=148493;
data=zeros(1,32);
module_table2=zeros(1,8);
module_table2(1)= AMPLITUDE;
module_table2(2)= AMPLITUDE3+AMPLITUDE3*j   ;
module_table2(3)= AMPLITUDE*j  ;
module_table2(4)= -AMPLITUDE3+AMPLITUDE3*j ;
module_table2(5)= -AMPLITUDE ;
module_table2(6)= -AMPLITUDE3-AMPLITUDE3*j ;
module_table2(7)= -AMPLITUDE*j ;
module_table2(8)= AMPLITUDE3+-AMPLITUDE3*j;
data_send=[3 3 2 3 1 3 0 3 3 2 2 2 0 0 1 2 0 2 3 1 2 1 1 1 0 1 3 0 2 0 1 0];
phase_refer_copy= [4 ,3  ,1, 0 ,7 , 5  ,2 ,6,7, 4, 5, 2, 1, 3, 3, 0,5, 6, 2, 0, 1, 2, 6, 2,1, 2, 4, 7, 3, 0, 5, 6]+1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%data_send数组组帧%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%调制%%%%%%
for i=1:32
	
		    if data_send(i)==3 
                    k =rem((phase_refer_copy(i) + 1),8);
                    if k==0
                        k=8;
                    end
					data(i)= module_table2(k);
					phase_refer_copy(i) = k;
					
            
            elseif data_send(i)==2 
                    k = rem((phase_refer_copy(i) + 7), 8);
                    if k==0
                        k=8;
                    end
					data(i)= module_table2(k);
					phase_refer_copy(i) = k;
					
          
            elseif data_send(i)==1 
                    k =  rem((phase_refer_copy(i) + 3) ,8);
                    if k==0
                        k=8;
                    end
					data(i)= module_table2(k);
					phase_refer_copy(i) = k;
					
            else 
                    k =  rem((phase_refer_copy(i) + 5) , 8);
                    if k==0
                        k=8;
                    end
					data(i)= module_table2(k);
					phase_refer_copy(i) = k;
					
            end
			
end
%figure(1)

   % plot(data,'r*')
    %grid on
%%%%%%%2倍过采样%%%%%%%%    
data_insert0=[data(1:16) zeros(1,32) data(17:32)];
out_ifft=ifft(data_insert0,64);

out_ifft_real=real(out_ifft);
out_ifft_imag=imag(out_ifft);
infosymbol=zeros(1,160);
m=33;n=34;
for i=1:64
    infosymbol(m)=out_ifft_real(i);
    infosymbol(n)=out_ifft_imag(i);
    m=m+2;
    n=n+2;
end
for i=1:32
  infosymbol(i)=infosymbol(i+128);%infosymbol是符号信息
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%加帧头%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
syn_PN=zeros(1,32);
syn_PN(1)=-AMPLITUDE+j*AMPLITUDE;syn_PN(2)=-AMPLITUDE-AMPLITUDE*j;syn_PN(3)=AMPLITUDE+AMPLITUDE*j;syn_PN(4)=AMPLITUDE+AMPLITUDE*j;
syn_PN(5)=-AMPLITUDE+AMPLITUDE*j;syn_PN(6)=AMPLITUDE-AMPLITUDE*j;syn_PN(7)=AMPLITUDE-AMPLITUDE*j;syn_PN(8)=-AMPLITUDE+AMPLITUDE*j;
syn_PN(25)=AMPLITUDE-AMPLITUDE*j;syn_PN(26)=AMPLITUDE+AMPLITUDE*j;syn_PN(27)=AMPLITUDE-AMPLITUDE*j;syn_PN(28)=AMPLITUDE-AMPLITUDE*j;
syn_PN(29)=-AMPLITUDE+AMPLITUDE*j;syn_PN(30)=-AMPLITUDE+AMPLITUDE*j;syn_PN(31)=-AMPLITUDE+AMPLITUDE*j;syn_PN(32)=-AMPLITUDE+AMPLITUDE*j;
syn_PN_IFFT=ifft(syn_PN,32);  
synsymbol=zeros(1,320);
M=33;N=34;
for i=1:32
    synsymbol(M)=real(syn_PN_IFFT(i));
    synsymbol(N)=imag(syn_PN_IFFT(i));
    M=M+2;
    N=N+2;
end
for i=33:96
    synsymbol(i+64)=synsymbol(i);
end%%%同步头
phase_refer_copy_IFFT=ifft([phase_refer_copy(1:16)+1 zeros(1,32)  phase_refer_copy(17:32)],64);
M1=193;N1=194;
for i=1:64
synsymbol(M1)=real(phase_refer_copy_IFFT(i));
synsymbol(N1)=imag(phase_refer_copy_IFFT(i));
M1=M1+2;
N1=N1+2;
end
for i=161:192
synsymbol(i)=synsymbol(i+128);%synsymbol是帧头信息 是为了同步和解调用的,因为有初始相位
end
%%%%%%%%%%%%%%%%组成帧%%%%%%%%%%%%%%
frame=[synsymbol,infosymbol,infosymbol,infosymbol,infosymbol,infosymbol,infosymbol,infosymbol,infosymbol,infosymbol,infosymbol,infosymbol,infosymbol,infosymbol,infosymbol,infosymbol,infosymbol,];




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%完成的DSP部分的组帧部%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



    



⌨️ 快捷键说明

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