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

📄 zt4dat.m

📁 OFDM的接收和发射
💻 M
字号:
%%%双载频调制实现方法仿真%%%
%说明:实部乘以cos,虚部乘以sin,实现中心频率为10KHz,子带间隔为5Hz的800个子带方案,宽4000HZ
%sample rate is 200KHz
%the size of file is 64000
%transmitter
clear;
close all;
%fp1=fopen('block-2f.dat','w');
fp1=fopen('zt4.dat','w');
fp2=fopen('sourcedata.dat','r');
s=fscanf(fp2,'%d\n');
%chirp signal B=4kHz,T=50ms 同步码
n=1:2000;%2000=0.01/0.000005
%pt(n)=0.007*cos(2*3.1416*8000*(0.0.000005)*n+3.1416*400000*(0.000005*n)^2);
pt=0.002*cos(0.2513274*n+0.0000314159*n.^2);
%前面添了796个零
 data(n+1000)=7000000*pt(n);
%m sequence as pilot  symbol for信道估计
a=ones(1,10); %赋初始状态
for m=1:1023
 if(a(8)==-1)&(a(1)==-1)
    b=-1;      
 elseif(a(8)==1)&(a(1)==-1)
    b=1;
 elseif(a(8)==-1)&(a(1)==1)
    b=1;   
 else
    b=-1;
 end
  n=1:9;
    a(n)=a(n+1);
    a(10)=b;
    tt(m)=b;
end

for m=1:50  %40 symbols and 10 pilots
    t=rem(m-1,5);
    if(t==0)
         n=1:800;
        ss(n)=1.8*tt(n);
    else
       for n=1:800   %800 subcarriers/symbol
      odd=(4*fix((m-1)/5)+t-1)*1600+2*n-1;
      even=(4*fix((m-1)/5)+t-1)*1600+2*n;
          if (s(odd)==0)&(s(even)==0)
       ss(n)=1+i;
          elseif (s(odd)==0)&(s(even)==1)  
       ss(n)=-1+i;
          elseif (s(odd)==1)&(s(even)==1)
       ss(n)=-1-i;
          else  
       ss(n)=1-i;
          end
       end
     end  
     ss(40000)=0;
          y=ifft(ss) ;   %IFFT调制
  %plot(y);             
      k=8001:48000;  %N=10000,Ng=1764
      da(k)=y(k-8000); 
      k=1:8000;
      da(k)=da(k+40000); 
   
    n=1:48000;
     data((m-1)*48000+3000+n)=7000000*(imag(da)).*sin(0.37699*n)+7000000*(real(da)).*cos(0.37699*n);%实际所乘载频为12kHz
     % data(t*11764+3000+n)=1000000*(real(da));%+1000000*(imag(da));
  
end
t=round(data+32767);
fwrite(fp1,t,'uint16');

fclose(fp1);
fclose(fp2);
plot(t);   %发射信号波形

⌨️ 快捷键说明

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