gmsk.m
Upload User: jy88362166
Upload Date: 2015-04-26
Package Size: 3k
Code Size: 2k
Development Platform:

Matlab

  1. %++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2. % Filename: gmsk.m
  3. %
  4. % Description: Generate baseband GMSK signal
  5. %
  6. % Author: Jeff Laster, MPRG, Virginia Tech 
  7. %++++++++++++++++++++++++++++++++++++++++++++++++++++++
  8. t0 = clock;
  9. %++++++++++++++++++++++++++++++++
  10. %  Constant Definition
  11. %++++++++++++++++++++++++++++++++
  12. DRate = 1; % data rate
  13. M = 18; % no. of sample per bit
  14. %++++++++++++++++++++++++++++++++
  15. % Variable Definition
  16. %++++++++++++++++++++++++++++++++
  17. N = 12753; % no. of bits for simulation
  18. %EbNodB = 10; % Eb/No (dB scale)
  19. BT = 0.3; % Bandwidth*Period (cannot change )
  20. %++++++++++++++++++++++++++++++++++
  21. %  Program Control Variables
  22. %++++++++++++++++++++++++++++++++++
  23. fig_no = 1; % initialize fig no.
  24. %+++++++++++++++++++++++++++++++++++
  25. % Derived variables
  26. %+++++++++++++++++++++++++++++++++++
  27. T = 1/DRate; % data period
  28. Ts = T/M; % sampling period ( discrete-time )
  29. %EbNo = 10^(EbNodB/10); % Eb/No (linear scale )
  30. %+++++++++++++++++++++++++++++++++++++
  31. % Generates Input Random Data
  32. %+++++++++++++++++++++++++++++++++++++
  33. [data, RandData] = pn_gen(N,M);
  34. %dodata
  35. %+++++++++++++++++++++++++++++++++++++
  36. % Generate GMSK Pulse Response
  37. %+++++++++++++++++++++++++++++++++++++
  38. [g,fig_no] = pulse_re(BT,T,Ts,M,fig_no);
  39. %+++++++++++++++++++++++++++++++++++++++++
  40. % Generate Gaussian Filtered Pulses
  41. %+++++++++++++++++++++++++++++++++++++++++
  42. [b,delay_GF,fig_no] = gauss_pu(g,data,1,fig_no);
  43. %+++++++++++++++++++++++++++++++++++++++++
  44. % Generate GMSK signal
  45. %+++++++++++++++++++++++++++++++++++++++++
  46. [s,fig_no] = gmsk_sig(b,Ts,M,fig_no);
  47. clear T DRate BT
  48. %data=zeros(size(data));
  49. %for i=1:N
  50. % for k=1:M
  51. % data(i*M+M/2-1+k)=Rdiff_mse(i);
  52. % end
  53. %end
  54. Time = etime(clock,t0)