cdma_codec.m
上传用户:hmkj168
上传日期:2022-07-22
资源大小:1k
文件大小:2k
源码类别:

3G开发

开发平台:

Matlab

  1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2. % CDMA coding and decoding mechanism
  3. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  4. clc
  5. clear
  6. % Generation of Random Bits
  7. r=round(rand(1,20));
  8. % Chip Pattern for station A, B and C
  9. a_one=[1 -1 -1 1 -1 1];
  10. a_zero=-1*a_one;
  11. b_one=[1 1 -1 -1 1 1];
  12. b_zero=-1*b_one;
  13. c_one=[1 1 -1 1 1 -1];
  14. c_zero=-1*c_one;
  15. % Random Allotment of bits to stations A,B and C
  16. cdma_seq=[];
  17. for counter=1:20
  18.     switch(randint(1,1,[1 3]))
  19.         case(1)
  20.             if r(1,counter)==0;
  21.                 cdma_seq=[cdma_seq a_zero];
  22.             else
  23.                 cdma_seq=[cdma_seq a_one];
  24.             end
  25.         case(2)
  26.             if r(1,counter)==0;
  27.                 cdma_seq=[cdma_seq b_zero];
  28.             else
  29.                 cdma_seq=[cdma_seq b_one];
  30.             end
  31.         case(3)
  32.             if r(1,counter)==0;
  33.                 cdma_seq=[cdma_seq c_zero];
  34.             else
  35.                 cdma_seq=[cdma_seq c_one];
  36.             end
  37.     end
  38. end
  39. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  40. %   Decoding the Signal
  41. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  42. cntr=0;
  43. for selector=1:6:120
  44.     cntr=cntr+1;
  45.     temp=[cdma_seq(1,selector) cdma_seq(1,selector+1) cdma_seq(1,selector+2) ...
  46.             cdma_seq(1,selector+3) cdma_seq(1,selector+4) cdma_seq(1,selector+5)];
  47.     result1=dot(a_one,temp);
  48.     result2=dot(b_one,temp);
  49.     result3=dot(c_one,temp);
  50.     if (result1==6)|(result1==-6)
  51.         fprintf('nThe bit # %d is from Station A',cntr);
  52.     else 
  53.         if (result2==6)|(result2==-6)
  54.             fprintf('nThe bit # %d is from Station B',cntr);
  55.         else
  56.             if (result3==6)|(result3==-6)
  57.                 fprintf('nThe bit # %d is from Station C',cntr);
  58.             end
  59.         end
  60.     end
  61. end