main.m
上传用户:hzpaint
上传日期:2021-02-07
资源大小:2k
文件大小:2k
源码类别:

Modem编程

开发平台:

Matlab

  1.    global dt t df N
  2.    close all
  3.    %k=input('取样点数=2^k, k取13左右');
  4.    %if isempty(k), k=13; end
  5.    %z=input('每个信号取样点数=2^z, z<k');
  6.    %if isempty(z), z=5; end
  7.    %aa=input('滚降系数=[0.5]');
  8.    %if aa==[],aa=0.5;end
  9.    k=13;
  10.    z=5;
  11.    aa=0.5;
  12.    N=2^k;
  13.    L=2^z;M=N/L;
  14.    Na=4;                          %示波器扫描宽度为4个码元
  15.    Rb=2;                         %码速率是2Mb/s
  16.    Ts=1/Rb;                       %码元间隔
  17.    dt=Ts/L;                       %时域采样间隔
  18.    df=1/(N*dt);                   %频域采样间隔
  19.    T=N*dt;                        %截短时间
  20.    Bs=N*df/2;                     %系统带宽
  21.    f=[-Bs+df/2:df:Bs];            %频域横坐标
  22.    t=[-T/2+dt/2:dt:T/2];          %时域横坐标
  23.    g=sin(pi*t/Ts).*cos(pi*t*aa/Ts)./[pi*t/Ts.*(1-4*t.^2*aa^2/Ts^2)];%升余弦脉冲波形
  24.    GG=t2f(g); 
  25.    EP=zeros(size(f))+eps;
  26.    for ii=1:30
  27.    b=sign(randn(1,M))+1;          %发送码元取值为0、2
  28.    s=zeros(1,N);                  %产生冲激序列
  29.    s(L/2:L:N)=b;
  30.    SS=t2f(s);
  31.    S=SS.*GG;                      %升余弦信号的傅氏变换
  32.    a=f2t(S);                      %升余弦信号的时域波形
  33.    a=real(a);
  34.    P=S.*conj(S)/T;                %升余弦信号的功率谱
  35.    EP=(EP*(ii-1)+P+eps)/ii;
  36.    figure(1)                      %输出的功率画图
  37.    plot(f,10*log10(EP),'b');
  38.    grid
  39.    axis([-3,+3,-100,20])
  40.    xlabel('f (KHz)');ylabel('Ps(f) (dBm/MHz)') ;title('功率谱图')
  41.    figure(2)
  42.    hold on
  43.    tt=[0:dt:Na*L*dt];              %系统的眼图画图    
  44.    for jj=1:Na*L:N-Na*L
  45.    
  46.    end
  47.    plot(tt,a(jj:jj+Na*L));title('升余弦滚降波形的眼图');
  48.    end