qam16demod.m

来自「一个简单的,bpsk,qpsk,QAM16的解调和调制的matlab仿真,特别适」· M 代码 · 共 135 行

M
135
字号
function softbit=qam16demod(symbol)
a=sqrt(10);
symlength=length(symbol);
for ii=1:symlength;
    if real(symbol(ii))>=0
        if imag(symbol(ii))>=0
            if real(symbol(ii))>=2*a
                if imag(symbol(ii))>=2*a
                    temp(ii*4)=0;
                    temp(ii*4-1)==0;
                    temp(ii*4-2)==0;
                    temp(ii*4-3)==0;
                else
                     temp(ii*4)=0;
                    temp(ii*4-1)==1;
                    temp(ii*4-2)==0;
                    temp(ii*4-3)==0;
                end
            else
                if imag(symbol(ii))>=2*a
                    temp(ii*4)=0;
                    temp(ii*4-1)==0;
                    temp(ii*4-2)==0;
                    temp(ii*4-3)==1;
                else
                    temp(ii*4)=0;
                    temp(ii*4-1)==1;
                    temp(ii*4-2)==0;
                    temp(ii*4-3)==1;
                end
            end
        else
            if real(symbol(ii))>=2*a
                if imag(symbol(ii))>=-2*a
                    temp(ii*4)=1;
                    temp(ii*4-1)==1;
                    temp(ii*4-2)==0;
               
                     temp(ii*4-3)==0;
                else
                     temp(ii*4)=1;
                    temp(ii*4-1)==0;
                    temp(ii*4-2)==0;
               
                     temp(ii*4-3)==0;
                end
            else
                if imag(symbol(ii))>=-2*a
                    temp(ii*4)=1;
                    temp(ii*4-1)==1;
                    temp(ii*4-2)==0;
               
                     temp(ii*4-3)==1;
                else
                    temp(ii*4)=1;
                    temp(ii*4-1)==0;
                    temp(ii*4-2)==0;
               
                     temp(ii*4-3)==1;
                end
            end
        end
    
    
    else
        if imag(symbol(ii))>=0
            if real(symbol(ii))>=-2*a
                if imag(symbol(ii))>=2*a
                    temp(ii*4)=0;
                    temp(ii*4-1)==0;
                    temp(ii*4-2)==1;
               
                     temp(ii*4-3)==1;
                else
                    temp(ii*4)=0;
                    temp(ii*4-1)==1;
                    temp(ii*4-2)==1;
               
                     temp(ii*4-3)==1;
                end
            else
                if imag(symbol(ii))>=2*a
                    temp(ii*4)=0;
                    temp(ii*4-1)==0;
                    temp(ii*4-2)==1;
               
                     temp(ii*4-3)==0;
                else
                    temp(ii*4)=0;
                    temp(ii*4-1)==1;
                    temp(ii*4-2)==1;
               
                     temp(ii*4-3)==0;
                end
            end
        else
            if real(symbol(ii))>=-2*a
                if imag(symbol(ii))>=-2*a
                     temp(ii*4)=1;
                    temp(ii*4-1)==1;
                    temp(ii*4-2)==1;
               
                     temp(ii*4-3)==1;
                else
                     temp(ii*4)=1;
                    temp(ii*4-1)==0;
                    temp(ii*4-2)==1;
               
                     temp(ii*4-3)==1;
                end
            else
                if imag(symbol(ii))>=-2*a
                     temp(ii*4)=1;
                    temp(ii*4-1)==1;
                    temp(ii*4-2)==1;
               
                     temp(ii*4-3)==0;
                else
                     temp(ii*4)=1;
                    temp(ii*4-1)==0;
                    temp(ii*4-2)==1;
               
                     temp(ii*4-3)==0;
                end
            end
        end
    end
end

softbit=temp;


                    
                    
               

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?