lut.m

来自「利用matlab仿真GMSK的源程序 按照移动通信的原理编写的程序」· M 代码 · 共 57 行

M
57
字号
%绘制调制波形10110001
clear all;
Ts=1/16000;                         %基带信号周期为1/16000s,即为16KHz
Tb=1/32000;                         %输入信号周期为Ts/2=1/32000s,即32KHz
BbTb=0.5;                           %取BbTb为0.3
Bb=BbTb/Tb;                         %3dB带宽
Fc=32000;                           %载波频率为32KHz
F_sample=64;                        %每载波采样64个点
B_num=8;                            %基带信号为8个码元
B_sample=F_sample*Fc*Tb             %每基带码元采样点数B_sample=Tb/Dt
Dt=1/Fc/F_sample;                   %采样间隔
t=0:Dt:B_num*Tb-Dt;                 %仿真时间
T=Dt*length(t);                     %仿真时间值
%Data=sign(randn(1,B_num));         %随机产生100个基带信号
Ak=[1 0 1 1 0 0 0 1];               %产生8个基带信号
Ak=2*Ak-1;
gt=ones(1,B_sample);         %每码元对应的载波信号
Akk=sigexpand(Ak,B_sample);   %码元扩展
temp=conv(Akk,gt);                 %码元扩展
Akk=temp(1:length(Akk));            %码元扩展

Tbt=0:Dt:Tb-Dt;                 %每Tb时间
ThetaL=0;
Theta=zeros(1,length(Akk));
for k=1:B_num
    if k==1
        ThetaL=0;
    else
        ThetaL=Theta((k-1)*B_sample);
    end
    for j=1:B_sample
        Theta((k-1)*B_sample+j)=pi*Ak(k)*Tbt(j)/2/Tb+ThetaL;
    end    
end;

S_Msk=cos(2*pi*Fc*t+Theta);
[f F_Msk]=T2F(t,S_Msk);

tt=-2.5*Tb:Dt:2.5*Tb-Dt;   
gausst=erfc(2*pi*Bb*(tt-Tb/2)/sqrt(log(2))/sqrt(2))/2-erfc(2*pi*Bb*(tt+Tb/2)/sqrt(log(2))/sqrt(2))/2;    

J_g=zeros(1,length(gausst)); %使J_g 的长度和Gausst的一样
for i=1:length(gausst)
    if i==1 
        J_g(i)=gausst(i)*Dt;
    else
        J_g(i)=J_g(i-1)+gausst(i)*Dt;
    end;
end;

J_g=J_g/2/Tb;
subplot(211);
plot(tt,gausst);
subplot(212);
plot(tt,J_g);

⌨️ 快捷键说明

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