interwave.m
上传用户:m_sun_001
上传日期:2014-07-30
资源大小:1115k
文件大小:2k
源码类别:

matlab例程

开发平台:

Matlab

  1. % Function 4-10
  2. % interwave.m
  3. %
  4. % Function to add interference wave
  5. %
  6. % Programmed by T.Yamamura and H.Harada
  7. %
  8. function [iout,qout]=interwave(ci,spow,ml,nsamp,tstp,fadingpara);
  9. %****************** variables *************************
  10. % ci         : Carrier to interference ratio
  11. % spow       : Power of desired signal
  12. % ml         : Modulation level
  13. % nsamp      : Number of samples
  14. % tstp       : Time resolution
  15. % fadingpara : Fading parameter
  16. % iout       : Output Ich signal
  17. % qout       : Output Qch signal
  18. % *****************************************************
  19. itau=fadingpara(1,:);
  20. dlvl1=fadingpara(2,:);
  21. n0=fadingpara(3,:);
  22. th1=fadingpara(4,:);
  23. itnd1=fadingpara(5,:);
  24. now1=fadingpara(6,:);
  25. fd=fadingpara(7,:);
  26. flat=fadingpara(8,:);
  27. if ci < 40;
  28. %%%%%%%%%%%%% preparation part %%%%%%%%%%%%%%%%
  29. %%% frame format
  30. para=52;
  31. fftlen=64;
  32. noc=53;  % the number of carrier
  33. nd=6;    % the number of information sysmbol
  34. knd=1;   % the number of known data symbol
  35. sr=250000;  % symbol rate
  36. br=sr.*ml;  % bit rate per carrier
  37. gilen=16;   % the length of guard interval
  38. %%% Set CE data load
  39. kndata=zeros(1,fftlen);
  40. kndata0=2.*(rand(1,52)>0.5)-1;
  41. kndata(2:27)=kndata0(1:26);
  42. kndata(39:64)=kndata0(27:52);
  43. %%% Simulation start
  44. %%% fading initialization
  45. %%%%%%%%%%%%%%%%%%%%%%%%%%%% transmitter %%%%%%%%%%%%%%%%%%%%%%%%%%%
  46.    
  47. seridata=rand(1,para*nd*ml)>0.5;  %  DC=0
  48. paradata=reshape(seridata,para,nd*ml); %size(51  *  nd*ml)
  49. %%% ml modulation 
  50. [ich,qch]=qpskmod(paradata,para,nd,ml);
  51. kmod=1/sqrt(2);
  52. ich=ich.*kmod;
  53. qch=qch.*kmod;
  54. % CE modulation
  55. ceich=kndata; % CE:BPSK
  56. ceqch=zeros(1,64);
  57. %%% data mapping (DC=0)
  58. [ich2,qch2]=crmapping(ich,qch,fftlen,nd);
  59. % addition of pilot carrier and CE symbol
  60. ich22=[ceich.' ich2]; % I-channel transmission data
  61. qch22=[ceqch.' qch2]; % Q-channel transmission data
  62. %%% IFFT
  63. x=ich22+qch22.*i;
  64. y=ifft(x);
  65. ich3=real(y);
  66. qch3=imag(y);
  67. %%% Gurad interval insertion
  68. % guard interval insertion
  69. [ich5,qch5]= giins(ich3,qch3,fftlen,gilen,nd+1);
  70. %%% fading Calculation   
  71. [ifade2,qfade2,ramp,rcos,rsin]=sefade(ich5,qch5,itau,dlvl1,th1,n0,itnd1,now1,length(ich5),tstp,fd,flat);
  72. %%% C/I reduction
  73. spowintw=sum(ich5.^2+qch5.^2)/(nd)/52;
  74. rint=spow/spowintw*10^(-ci/10);
  75. iout=ifade2.*sqrt(rint);
  76. qout=qfade2.*sqrt(rint);
  77.    
  78. else
  79. iout=zeros(1,nsamp);
  80. qout=zeros(1,nsamp);
  81. end
  82. %******************** end of file ***************************