turbo.m
上传用户:hnyfjx
上传日期:2013-06-30
资源大小:2149k
文件大小:1k
源码类别:

传真(Fax)编程

开发平台:

Matlab

  1. %****************************************************************
  2. % 内容概述:Trubo编码器
  3. % 创 建 人:WuYuFei
  4. % 单    位:
  5. % 创建时间:1999年
  6. % 修改时间:
  7. % 参考文献:
  8. % 版权声明:任何人均可复制、传播、修改此文件,同时需保留原始版权信息。
  9. %****************************************************************
  10. function [out,alphaout]=turbo(in);
  11. % turbo编码器
  12. % in 为输入序列,0 1。
  13. g=[1 0 1 1;
  14.    1 1 0 1];
  15. % 生成矩阵1+d^2+d^3
  16. %        1+d+d^3
  17. % 3GPP标准生成矩阵
  18. [n,K]=size(g);
  19. m=K-1;
  20. nstates=2^m;
  21. %确定状态数目
  22. puncture=1;
  23. %是否删余 1 不删 0 删
  24. rate=1/(2+puncture);
  25. %编码率
  26. pattern_ordinal=1:length(in);
  27. %----------------------------------
  28. %[temp,alpha]=sort(rand(1,length(in)));
  29. %得到随机交织器
  30. %----------------------------------
  31. alpha=interleaver_3GPP(pattern_ordinal);
  32. %得到3GPP标准交织器
  33. %----------------------------------
  34. en_output=encoderm(in,g,alpha,puncture);
  35. %编码
  36. alphaout=alpha;
  37. % 交织器输出
  38. out=en_output;
  39. % 编码输出