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

📄 mlandcpp.m

📁 ML的方法在ofdm中的应用
💻 M
字号:
function yy=ML_cp() 
%%%Algorithm Based:J.-J. Van de Beek, M. Sandell, M. Isaksson, and P. O. B??rjesson, 
%%%“ML estimation of time and frequency offset in OFDM systems,” IEEE Trans. Signal Proc., Vol. 45, no. 7, pp. 1800-1805, July 1997. 
%%%Programmed by Xiangdong  Huang, School of  Electronics and Information Engineering,Tianjin University 
close all; clc; clear all; 
N=1024; 
L=128; 
SNR=15; 
  
disp('实际定时偏差') 
theta=87 
disp('载频频偏') 
e=0.25 
 
Symbols_number=6; 
Bits_number=Symbols_number*N*6; 
Bits=round(  unifrnd(0,1,1,Bits_number)     ); 
 
%%%%%%%%%%星座表 
Tab =[   -7-7*j  -7-5*j  -7-j  -7-3*j  -7+7*j  -7+5*j  -7+j  -7+3*j...   
         -5-7*j  -5-5*j  -5-j  -5-3*j  -5+7*j  -5+5*j  -5+j  -5+3*j...  
         -1-7*j  -1-5*j  -1-j  -1-3*j  -1+7*j  -1+5*j  -1+j  -1+3*j... 
         -3-7*j  -3-5*j  -3-j  -3-3*j  -3+7*j  -3+5*j  -3+j  -3+3*j... 
          7-7*j   7-5*j   7-j   7-3*j   7+7*j   7+5*j   7+j   7+3*j... 
          5-7*j   5-5*j   5-j   5-3*j   5+7*j   5+5*j   5+j   5+3*j... 
          1-7*j   1-5*j   1-j   1-3*j   1+7*j   1+5*j   1+j   1+3*j... 
          3-7*j   3-5*j   3-j   3-3*j   3+7*j   3+5*j   3+j   3+3*j ]; 
 P1=[1^2+3^2+5^2+7^2]/2/2;   
 var_s=2*P1/N; 
 SNR1=10^(SNR/10);   
 rou=SNR1/(SNR1+1); 
 lam=sqrt(var_s/(2*SNR1)); 
   
 angle_Tab=angle(Tab); 
 am_Tab=abs(Tab); 
 I_Tab=real(Tab); 
 Q_Tab=imag(Tab); 
  
 for   i=1:Symbols_number 
              input_bits=Bits((i-1)*N*6+1:i*N*6); 
              temp=ifft(QAM64_map(input_bits,Tab)); 
              s(i,:)=[temp(end-L+1:end)  temp]; 
 end 
 len=Symbols_number*(N+L); 
 s=reshape(s.',1,len); 
 k=0:len+theta-1; 
 noise=  lam*randn(1,len+theta)+j*lam*randn(1,len+theta);  
 r=[zeros(1,theta) s  ].*exp(j*2*pi*e*k/N)+noise;     %%%接收信号考虑了信道延时因素和载波频偏因素. 
 clear noise;  clear k;  clear s; 
  
  A=zeros(1,len+theta-(2*N+L)+1); 
  ee=zeros(1,len+theta-(2*N+L)+1); 
   
  for   i=1:len+theta-(2*N+L)+1 
              r1=r(i:i+2*N+L-1); 
              for m=1:N 
                   k=m:m+L-1; 
                   gama=sum(r1(k).*conj(r1(k+N))); 
                   phi=1/2*sum( abs(r1(k)).^2+   abs(r1(k+N)).^2   );                   
              end  
               A(i)=abs(gama )-rou*phi; 
              ee(i)=-angle(gama)/(2*pi); 
  end 
   
  subplot(2,1,1); plot(0:len+theta-(2*N+L) ,A); title('似然函数曲线,峰值位置模除CP长度L即为定时位置估计');xlabel('samples') 
  subplot(2,1,2); plot(0:len+theta-(2*N+L) ,ee); hold on; title('频偏估计曲线'); xlabel('samples') 
  plot(0:len+theta-(2*N+L) ,e*ones(1,len+theta-(2*N+L)+1),'r-.') 
  

⌨️ 快捷键说明

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