《OFDM关键技术与应用》中16QAM的调制与解调源程序。

源代码在线查看: qam16mod.m

软件大小: 2 K
上传用户: wuseyue
关键词: OFDM QAM 16 关键技术
下载地址: 免注册下载 普通下载 VIP

相关代码

				function Symbol=QAM16Mod(bit)
				% 16QAM modulation
				% s3 s2 s1 s0    ml   mQ
				%  0  0  0  0    3A   3A
				%  0  0  0  1     A   3A
				%  0  0  1  1    -A   3A
				%  0  0  1  0    -3A  3A
				%  0  1  0  0    3A    A
				%  0  1  0  1     A    A
				%  0  1  1  1    -A    A
				%  0  1  1  0    -3A   A
				%  1  1  0  0     3A  -A
				%  1  1  0  1     A   -A
				%  1  1  1  1    -A   -A
				%  1  1  1  0    -3A  -A
				%  1  0  0  0    3A   -3A
				%  1  0  0  1    A    -3A
				%  1  0  1  1    -A   -3A
				%  1  0  1  0    -3A  -3A
				% note:A=1/sqrt(10)
				%
				bitlength=length(bit);
				A=1/sqrt(10);
				
				%bit(ii*4)=s3,bit(ii*4-1)=s2,bit(ii*4-2)=s1,bit(ii*4-3)=s0
				for ii=1:bitlength/4
				    if bit(ii*4)==0
				        if bit(ii*4-1)==0  %00**
				            if bit(ii*4-2)==0
				                if bit(ii*4-3)==0
				                    QAM16(ii)=3*A+3*A*j;
				                else
				                    QAM16(ii)=A+3*A*j;
				                end
				            else
				                if bit(ii*4-3)==0
				                    QAM16(ii)=-3*A+3*A*j;
				                else
				                    QAM16(ii)=-A+3*A*j;
				                end
				            end
				        else   %01**
				            if bit(ii*4-2)==0
				                if bit(ii*4-3)==0
				                    QAM16(ii)=3*A+A*j;
				                else
				                    QAM16(ii)=-A+A*j;
				                end
				            else
				                if bit(ii*4-3)==0
				                    QAM16(ii)=-3*A+A*j;
				                else
				                    QAM16(ii)=-A+A*j;
				                end
				            end
				        end
				    else 
				        if bit(ii*4-1)==0  %10**
				            if bit(ii*4-2)==0
				                if bit(ii*4-3)==0
				                    QAM16(ii)=-3*A-3*A*j;
				                else
				                    QAM16(ii)=-A-3*A*j;
				                end
				            else
				                if bit(ii*4-3)==0
				                    QAM16(ii)=-3*A-3*A*j;
				                else
				                    QAM16(ii)=-A-3*A*j;
				                end
				            end
				        else       %11**
				            if bit(ii*4-2)==0
				                if bit(ii*4-3)==0
				                    QAM16(ii)=-3*A-A*j;
				                else
				                    QAM16(ii)=-A-A*j;
				                end
				            else
				                if bit(ii*4-3)==0
				                    QAM16(ii)=-3*A-A*j;
				                else
				                    QAM16(ii)=-A-A*j;
				                end
				            end
				        end
				    end
				end    			

相关资源