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

📄 cp0201_transmitter_2ppm_th.m

📁 利用压缩包内的5和函数产生PPM调制的UWB信号
💻 M
字号:
%FUNCTION 2.6 :"cp0201_transmitter_2PPM_TH"
%
%Simulation of a UWB transmitter implementing 2PPM with TH
%Transmitted Power  fixed to 'Pow'
%The signal is sampled with frequency 'fc'
%'numbits' is the number of bits generated by the source
%'Ns' pulses are generated for each bit,and those pulses are spaced in
%time by an average pulse repetition period 'Ts'
%The TH code has periodicity 'Np',and cardinality 'Nh'
%The chip time has time duration 'Tc'
%Each pulse has time duration 'Tm' and shaping factor 'tau'
%The PPM introduces a time shift of 'dPPM'
%
%The function returns:
%1) the generated stream of bits('bits'); 
%2) the generated TH code('THcode');
%3) the generated signal('Stx');
%4) a reference signal without data modulation('ref');
%
function [bits,THcode,Stx,ref]=cp0201_transmitter_2PPM_TH
%---------------------------------------------------------%Step Zero - Input parameters
%---------------------------------------------------------
Pow=-30;
fc=50e9;
numbits=10000;
Ts=3e-9;
Ns=3;
Tc=1e-9;
Nh=3;
Np=30000;

Tm=0.5e-9;
tau=0.25e-9;
dPPM=0.5e-9;

G=0;
%---------------------------------------------------------
%Step One - Simulating transmission chain
%---------------------------------------------------------
%binary source
bits=cp0201_bits(numbits);
%repetition coder
repbits=cp0201_repcode(bits,Ns);
%TH code
THcode=cp0201_TH(Nh,Np);
%PPM + TH
[PPMTHseq,THseq]=cp0201_2PPM_TH(repbits,fc,Tc,Ts,dPPM,THcode);
%shaping filter
power=(10^(Pow/10))/1000;
Ex=power*Ts;
w0=cp0201_waveform(fc,Tm,tau);
wtx=w0.*sqrt(Ex);
Sa=conv(PPMTHseq,wtx);
Sb=conv(THseq,wtx);

%Output generation
L=(floor(Ts*fc))*Ns*numbits;
Stx=Sa(1:L);
ref=Sb(1:L);

%----------------------------------------------------
%Step Two - Graphical output
%----------------------------------------------------
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*max(wtx);
    axis([0 tmax ylow yhigh]);
    AX=gca;
    set(AX,'FontSize',12);
    X=xlabel('Time [s]');
    set(X,'FontSize',14);
    Y=ylabel('Amplitude [V]');
    set(Y,'FontSize',14);
    for j=1:numbits
        tj=(j-1)*Ns*Ts;  
        L1=line([tj tj],[ylow yhigh]);
        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]);
                set(L2,'Color',[0.5 0.5 0.5],'LineStyle','-.','LineWidth',[2]);
            end
            for q=1:Nh-1
                th=tj+k*Nh*Tc+q*Tc;
                L3=line([th th],[0.8*ylow 0.8*yhigh]);
                set(L3,'Color',[0 0 0],'LineStyle',':','LineWidth',[1]);
            end 
        end
    end
end
                        
            
    
    

⌨️ 快捷键说明

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