%==========================================================================
% function 2.6 : "cp0201_transmitter_2PPM_TH"
%==========================================================================
% 功能描述:
% 建立TH+PPM的发射仿真链路;
% 将经过TH、PPM调制后的信息经过脉冲形成滤波器发射出
% 去,在该函数内完成设置发射信号的相关参数值;
%==========================================================================
% 时间信息:
% 2010-12-15 霍飞
%==========================================================================
% 参数描述:
% 输出 bits 产生的信源,二进制bit流;
% 输出 THcode 产生的跳时码序列;
% 输出 Stx TH+PPM调制后的发送脉冲序列;
% 输出 ref TH调制后的参考模板脉冲序列;
%==========================================================================
function [bits,THcode,Stx,ref] = ...
cp0201_transmitter_2PPM_TH(Pow,fc,numbits,Ts,Ns,Tc,Nh,Np,Tm,tau,dPPM,G)
%==========================================================================
% 第一步:设置相关的参数;
%==========================================================================
% % Pow = -30; %发送的平均功率,单位为dBm;
% % fc = 50e9; %脉冲的采样频率;
% % numbits = 2; %产生信源的bit数目;
% % Ts = 3e-9; %重复编码后,单个脉冲的重复周期,也称为帧周期;
% % Ns = 5; %每个信息bit重复编码的次数;
% % Tc = 1e-9; %码片时间;
% % Nh = 3; %伪随机跳时码的基数,跳时码的最大上限为Nh-1;
% % Np = 5; %跳时码的周期,即跳时序列的个数;
% % Tm = 0.5e-9; %脉冲持续时间;
% % tau = 0.25e-9; %脉冲成形因子;
% % dPPM = 0.5e-9; %PPM调制产生的相移;
% % G = 1; %图形输出,1输出图形,0不输出图形;
%==========================================================================
% 第二步:建立发射链路;
%==========================================================================
bits = cp0201_bits(numbits); %产生信源
repbits = cp0201_repcode(bits,Ns); %重复编码
THcode = cp0201_TH(Np,Nh); %产生跳时序列
[PPMTHseq,THseq] = ...
cp0201_2PPM_TH(repbits,fc,Tc,Ts,dPPM,THcode); %TH+PPM调制
power = (10^(Pow/10))/1000; %传输的平均功率,单位为watt(瓦);
Ex = power*Ts; %发送一帧传输的能量;
w0 = cp0201_waveform(fc,Tm,tau); %能量归一化的脉冲波形;
wtx = w0.*sqrt(Ex); %具有固定能量的发送脉冲波形;
Sa = conv(PPMTHseq,wtx); %TH+PPM调制后的脉冲形成滤波器输出;
Sb = conv(THseq,wtx); %仅加入TH调制后的脉冲形成滤波器输出;
L = floor(Ts*fc)*Ns*numbits; %发送序列的采样点数;
Stx = Sa(1:L); %截去卷积产生的冗余序列;
ref = Sb(1:L); %截去卷积产生的冗余序列;
%==========================================================================
% 第三步:图形输出;
%==========================================================================
if G
F = figure(1);
set(F,'position',[32 223 951 420]); %设置图形的位置[左 底 宽 高];
tmax = numbits*Ns*Ts; %时间的最大值;
time = linspace(0,tmax,length(Stx)); %时间采样点;
P = plot(time,Stx);
set(P,'LineWidth',[2]);
ylow = -1.5*abs(min(wtx));
yhigh = 1.5*abs(max(wtx));
axis([0 tmax ylow yhigh]); %设置坐标轴的取值范围[xmin xmax ymin ymax];
AX = gca; %获得当前坐标轴的句柄;
set(AX,'FontSize',12); %设置坐标轴的字体;
X = xlabel('时间 [s]'); %给坐标轴的X轴添加标注;
set(X,'FontSize',14); %设置X轴标注的字体;
Y = ylabel('幅度 [v]');
set(Y,'FontSize',14);
for j = 1:numbits %画线程序,便于观察;
tj = (j-1)*Ns*Ts;
L1 = line([tj tj],[ylow yhigh]); %间隔每一bit画一竖线;
set(L1,'color',[0 0 0],'LineStyle','--','LineWidth',[2]);
for k = 0:Ns-1
if k > 0
tn = tj+k*Nh*Tc;
L2 = line([tn tn],[ylow yhigh]); %bit间,每间隔Ts画竖线;
set(L2,'Color',[1 0 0],'LineStyle',':','LineWidth',[1]);
end
for q = 1:Nh-1
th = tj+k*Nh*Tc+q*Tc;
L3 = line([th th],[ylow yhigh]); %Ts间,每间隔Tc画竖线;
set(L3,'color',[0 1 0],'LineStyle',':','LineWidth',[1]);
end
end
end
end %结束图形输出;
%==========================================================================
% 结束
%==========================================================================
- 1
- 2
前往页