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

📄 psk_4.m

📁 matlab的调制解调
💻 M
字号:
%% 编一个 4psk 的调制方式的程序;
%% 基带信号是一串随机码,每个基带码元用一个周期的载波发送;
%% 设置采样频率,每个码元的采样点数,载波频率;
function [sig_M]=psk_4(M)
         %% 每一个码元发送一个周期的载波
         fs=1000; N=50; f=20; t=(1:N)'/fs; 
%          sig=sin(2*pi*f*t);
         % 设置发送的原始随机码序列
         M=M; Ji=rand(M,1); Ji=ceil(Ji-0.5); 
         %% 把原来的2进制序列转换为4进制序列,长度会减半;
         MM=M/2; Ji_2=zeros(MM,1);
         for i=1:MM
             if (Ji(2*i-1)==0)&&(Ji(2*i)==0)
                 Ji_2(i)=0;
             elseif (Ji(2*i-1)==0)&&(Ji(2*i)==1)
                 Ji_2(i)=1;
             elseif (Ji(2*i-1)==1)&&(Ji(2*i)==0)
                 Ji_2(i)=2;
             elseif (Ji(2*i-1)==1)&&(Ji(2*i)==1)
                 Ji_2(i)=3;
             end;
         end;        
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %% 设计调制信号,共有4种相位,每个码元的发送时间和2psk是一样的;
   %% sig_M表示调制后的信号;
      sig_M=zeros(MM*N,1);
for i=1:MM
    if Ji_2(i)==0
        sig_M((i-1)*N+1:1:(i*N))=sin(2*pi*f*t);
    elseif Ji_2(i)==1
        sig_M((i-1)*N+1:1:(i*N))=sin(2*pi*f*t+pi/4);
    elseif Ji_2(i)==2
        sig_M((i-1)*N+1:1:(i*N))=sin(2*pi*f*t+2*pi/4);
    elseif Ji_2(i)==3
        sig_M((i-1)*N+1:1:(i*N))=sin(2*pi*f*t+3*pi/4);
    end;
end;
     sig_M=sig_M;
     %%%% 开始画图;
     figure;
     subplot(321);
     stem(Ji);title('2进制基带时域波形');grid;axis tight;

     subplot(322);
     stem(Ji_2);title('4进制基带时域波形');grid;axis tight;

     subplot(323);
     plot(sig_M);title('4psk时域波形');grid;axis tight;

     sig_fft1=abs(fftshift(fft(sig_M)));
     subplot(324);
     plot(fs*((0:MM*N-1)-(MM*N)/2)/(MM*N),(sig_fft1));
     title('4psk频谱');grid;axis tight;

     sig_noise=awgn(sig_M,10,'measured');
     subplot(325);
     plot(sig_noise);title('4psk时域噪声波形');grid;axis tight;

     sig_fft2=abs(fftshift(fft(sig_noise)));
     subplot(326);
     plot(fs*((0:MM*N-1)-(MM*N)/2)/(MM*N),(sig_fft2));
     title('4psk含噪声的频谱');grid;axis tight;

⌨️ 快捷键说明

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