create_channel.m
上传用户:xinxin4122
上传日期:2013-04-03
资源大小:464k
文件大小:1k
源码类别:

邮电通讯系统

开发平台:

Matlab

  1. function [H H_f]=create_channel(Nt,Nr,pdp,num_subc,GI)
  2. % 多径MIMO信道
  3. % 输入:
  4. % Nt: 发送天线个数
  5. % Nr: 接收天线个数
  6. % pdf: 功率延迟分布向量
  7. % num_subc: 子载波个数
  8. % GI: 循环前缀的长度
  9. % 输出:
  10. % H 多径MIMO信道矩阵
  11. % H_f 多径MIMO信道矩阵的频率形式
  12. N=num_subc+GI;  % 每个发天线一次发送的数据帧的长度
  13. H=zeros(Nr*N,Nt*(N+length(pdp)-1));
  14. H_f1 = zeros(Nr,Nt*num_subc);
  15. clear j;
  16. for ii=1:Nr
  17.     for jj=1:Nt
  18.         Hint=1/sqrt(2)*(randn(1,length(pdp)) + j*randn(1,length(pdp)));
  19.         Hint1=sqrt(pdp).*Hint;
  20.         Hint2=fliplr(Hint1);
  21.         h=zeros(N,N+length(pdp)-1);
  22.         for k=1:N
  23.             h(k,k:k+length(pdp)-1)=Hint2;
  24.         end
  25.         H((ii-1)*N+1:(ii-1)*N+N,(jj-1)*(N+length(pdp)-1)+1:(jj-1)*(N+length(pdp)-1)+N+length(pdp)-1)=h; % 多径信道矩阵
  26.         
  27.         h_f = fft(Hint1,num_subc);
  28.         H_f1(ii,(jj-1)*num_subc+1:(jj-1)*num_subc+num_subc) = h_f;
  29.     end
  30. end
  31. H_f=cell(1,num_subc);
  32. for ii=1:num_subc
  33.     H_f{ii}=H_f1(:,ii:num_subc:end);
  34. end
  35. % 通过信道时,要求
  36. % 把发送数据符号排成一列向量,每个发送天线的发送符号各占连续的一段
  37. % 每个发送天线发送符号所占一段的长度为frame_length+length(pdp)-1