1. %数字通信 QAM 仿真
2. clear
3. %产生基带符号流
4. M=16; %进制 16QAM
5. N=40; %信源比特流长度,为保证对齐,选择是 log2(M)的整倍数
6. bitstream=zeros(1,N);
7. symbolstream=zeros(1,N/log2(M));
8. for n1=1:N
9. bitstream(n1)=binornd(1,0.5,1,1);
10. end
11. %格雷码编码
12. for n1=1:length(symbolstream)
13. pack=[bitstream(4*(n1-1)+1) bitstream(4*(n1-1)+2)
bitstream(4*(n1-1)+3) bitstream(4*(n1-1)+4)];
14. if pack==[0 0 0 0]
15. symbolstream(n1)=1+j;
16. elseif pack==[0 0 1 0]
17. symbolstream(n1)=2+j;
18. elseif pack==[0 0 1 1]
19. symbolstream(n1)=2+2j;
20. elseif pack==[0 0 0 1]
21. symbolstream(n1)=1+2j;
22. elseif pack==[0 1 0 1]
23. symbolstream(n1)=-1+2j;
24. elseif pack==[0 1 0 0]
25. symbolstream(n1)=-1+j;
26. elseif pack==[0 1 1 1]
27. symbolstream(n1)=-2+2j;
28. elseif pack==[0 1 1 0]
29. symbolstream(n1)=-2+j;
30. elseif pack==[1 1 1 0]
31. symbolstream(n1)=-2-j;
32. elseif pack==[1 1 1 1]
33. symbolstream(n1)=-2-2j;
34. elseif pack==[1 1 0 1]
35. symbolstream(n1)=-1-2j;
36. elseif pack==[1 1 0 0]
37. symbolstream(n1)=-1-j;
38. elseif pack==[1 0 0 0]
39. symbolstream(n1)=1-j;
40. elseif pack==[1 0 1 0]
41. symbolstream(n1)=2-j;
42. elseif pack==[1 0 0 1]
43. symbolstream(n1)=1-2j;