⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tiaozhi.m

📁 文件中包含了详细的8PSK调制解调的原理和代码
💻 M
字号:
clear
clear all
N=21;  
bit_sequence=rand(1,N)>0.5;
bpsk=bit_sequence*2-1;
temp=[0.5+1j 1+0.5j -0.5+1j -1+0.5j -0.5-1j -1-0.5j 0.5-1j 1-0.5j]/sqrt(3);
transformbit = [0 0 0];
    qpsk_sequence = ones(1,N/3); 
    psk_dianpingi=ones(1,N/3);
    psk_dianpingq=ones(1,N/3);
    for k=1:N/3 
       transformbit = bit_sequence(3*k-2:3*k);
        if transformbit== [0 0 0]
            qpsk_sequence(k) = temp(1);
            ge(k)=conj(temp(1)); 
            psk_dianpingi(k)=-0.383;
            psk_dianpingq(k)=-0.924;
        end
        if transformbit== [0 0 1]
            qpsk_sequence(k) = temp(2);
            ge(k)=conj(temp(2)) ;
            psk_dianpingi(k)=-0.924;
            psk_dianpingq(k)=-0.383;
        end 
        if transformbit== [0 1 0]
            qpsk_sequence(k) = temp(3);
            ge(k)=conj(temp(3));
             psk_dianpingi(k)=-0.383;
            psk_dianpingq(k)=0.924;
        end
         if transformbit== [0 1 1]
            qpsk_sequence(k) = temp(4);
            ge(k)=conj(temp(4));
             psk_dianpingi(k)=-0.924;
            psk_dianpingq(k)=0.383;
          end      
        if transformbit== [1 0 0]
            qpsk_sequence(k) = temp(5);
            ge(k)=conj(temp(5));
             psk_dianpingi(k)=0.383;
            psk_dianpingq(k)=-0.924;
        end
       if transformbit== [1 0 1]
            qpsk_sequence(k) = temp(6);
            ge(k)=conj(temp(6));
             psk_dianpingi(k)=0.924;
            psk_dianpingq(k)=-0.383;
        end
       if transformbit== [1 1 0]
            qpsk_sequence(k) = temp(7);
            ge(k)=conj(temp(7))
             psk_dianpingi(k)=0.383;
            psk_dianpingq(k)=0.924;
        end   
      if transformbit== [1 1 1]
            qpsk_sequence(k) = temp(8);
            ge(k)=conj(temp(8));
             psk_dianpingi(k)=0.924;
            psk_dianpingq(k)=0.383;
        end  
         x(k)=(qpsk_sequence(k)+ge(k))/2 ;
         y(k)=(qpsk_sequence(k)-ge(k))/2j;
         t=3*k-3:0.01:3*k;
         x1=(psk_dianpingi(k)*cos(2*pi*psk_dianpingi(k)*t)-psk_dianpingq(k)*sin(2*pi*t));
         subplot(4,1,4)
         axis([0,N-2,-2.5,2.5])
         plot(t,x1);hold on 
         
xx=bit_sequence(1);
for ii=1:N;
for kk=ii:0.01:ii+1;
    b=ones(1,100);
    subplot(4,1,1);
    plot(kk,bit_sequence(ii));axis([0,N+1,-2,2]);hold on
    if bit_sequence(ii)~=xx;
        aa=0:0.01:1;plot(ii,aa);
end
xx=bit_sequence(ii);
end
end

     end
 
    
            xxx=psk_dianpingi(1);
for iii=3:3:21
for kkk=iii:0.01:iii+3
    b=ones(1,100);
    subplot(4,1,2)
    jjj=iii/3;
    plot(kkk,psk_dianpingi(jjj));axis([0,21,-2,2]);hold on
    ccc=psk_dianpingi(jjj);
    if ccc~=xxx;
        if xxx<ccc
        aaa=xxx:0.01:ccc;plot(iii,aaa,'-b');
    else aaa=xxx:-0.01:ccc;plot(iii,aaa,'-b');
end
end
xxx=psk_dianpingi(jjj);
end
end 

            xxxx=psk_dianpingq(1);
for iiii=3:3:21;
for kkkk=iiii:0.01:iiii+3
    b=ones(1,100);
    subplot(4,1,3)
    jjjj=iiii/3;
    plot(kkkk,psk_dianpingq(jjjj));axis([0,21,-2,2]);hold on
    cccc=psk_dianpingq(jjjj);
    if cccc~=xxxx;
        if xxxx<cccc
        aaaa=xxxx:0.01:cccc;plot(iiii,aaaa,'-b');
    else aaaa=xxxx:-0.01:cccc;plot(iiii,aaaa,'-b');
end
end
xxxx=psk_dianpingq(jjjj);
end
end
subplot(4,1,4);title('8psk调制波形')
subplot(4,1,1);title('随机二进制序列')
subplot(4,1,2);title('产生I(t)序列')
subplot(4,1,3);title('产生Q(t)序列')

⌨️ 快捷键说明

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