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

📄 dssignal.m

📁 超宽带系统链路matlab仿真程序 超宽带系统简单仿真平台
💻 M
字号:
%发送和接收合在一块的程序
%修改于2004/11/15
%发送BPSK信号
%适合于CM3和CM4信道,估计时每80ns平均一次
%======================发送信号部分===========================

clear;
clf;

    %=======第一部分:基本参数========
    SNR_db=5;                   %输入信噪比
    Dg=0.5;                     %高斯脉冲宽度
    Ts=0.05;                     %信号采样周期

    Tf=80;                      %Tf=80,duty_cycle=1:160
    Num_Tf=Tf/Ts;               %每个符号持续时间内采样点个数

    Eb=Eb_halfcos(Ts,Dg);       %一个脉冲周期内的码元能量
    
     %信道估计需要的训练序列长度
    N_monocycle=10;           
    A=ones(1,10);
 
    %码元同步需要的训练序列
    N_Syn=12;
    
    %数据长度
    N_Data=1000;
    Sim_Data=randn(1,N_Data);      %产生数据序列;
    %---------------------------------------------
    
    
     %========第二部分:生成基本波形==========
     %产生占空比1:160的半余弦脉冲波形,脉冲波形的占空比可以通过Num_Tf调整
    for n=0:Num_Tf-1
        gt(n+1)=halfcos_generator(Dg,n*Ts);   
    end
    
    
    %========第三部分:生成信道冲激响应及高斯白噪声==========
    Th=Dg;                      %信道冲激响应间隔
    h0=UWB_SV_channel(2,4,Th);            %信道冲激响应
    h1=h0(:,2);
    h=n_upsample(h1,Th,Ts);
    %=============
    
    
    Noise_sigma=0%sqrt(Eb/(1*Dg*10^(SNR_db/10)));  %S/N=(Eb/T)/(N0*B)   高斯白噪声
    
   

   
    %============第四部分:信道估计过程==========================
    %信道估计过程
    st0=(A'*gt)';
    st=reshape(st0,1,[]);                %理想发送信号
    figure(1);
    subplot(2,1,1);
    plot(0:Ts:(length(st)-1)*Ts,st);
     title('理想发射信号');
    xlabel('time(ns)');ylabel('amplitude');

    rt0=conv(st,h);                      
    rt_len=length(rt0);                 %通过信道后的信号
    %subplot(4,1,3);
    %plot([0:Ts:(rt_len-1)*Ts],rt0);

   %------------------

    rt=rt0   +Noise_sigma*randn(1,rt_len);                            %接收信号
    subplot(2,1,2);
    plot([0:Ts:(rt_len-1)*Ts],rt);
     title('经过SV信道(CM4,信道冲激响应间隔0.5ns,SNR=5dB)');
    xlabel('time(ns)');ylabel('amplitude');
    
    [peak_h,t_h]=ch_est(rt,Ts,N_monocycle,gt,Tf,Dg,h);
    
    [Tao,Atten]=selectpath(peak_h,t_h,4);     %选择比较大的多径分量;N_path表示所需要的多径数
%===================信道估计过程到此结束=====================


    
    %==============第五部分:同步以及信号接收==============
    B=[1,1,1,1,1,-1,-1,1,1,-1,1,-1,1];
    Train_seq=B;
    
    
    
   g=[1 0 0 0 0 1 0 1 1 0 1 0 1 0 1 1];    %卷积编码生成矩阵
   k0=1;                                   %编码器一次输入个数

   coded_Data=cnv_encd(g,k0,Sim_Data);    %卷积编码后的数据
   pn_code=B;
   %syn_training=spreadgren(randn(1,12),pn_code);     %同步训练序列
   spread_Data=spreadgren(coded_Data,pn_code);        %扩频并且加上训练序列(未扩频的)后的数据
   %trans_data=[syn_training,spread_Data];
   
  
     
    Train_st0=(Train_seq'*gt)';
    Train_st1=reshape(Train_st0,1,[]);                %理想发送信号
     Train_rt=conv(Train_st1,h);  
     Train_rtlen=length(Train_rt);
     Train_rt=Train_rt+Noise_sigma*randn(1,Train_rtlen);                            %接收信号
     
     
     figure(2);
     subplot(3,1,1);
     plot(0:Ts:(length(Train_st1)-1)*Ts,Train_st1);
     title('理想发射信号');
    xlabel('time(ns)');ylabel('amplitude');
     subplot(3,1,2);
     plot(0:Ts:(length(Train_rt)-1)*Ts,Train_rt);
     gtext('经过SV信道的信号(CM4,信道冲激响应间隔0.5ns,无噪声');
    xlabel('time(ns)');ylabel('amplitude');

     yt=MRC_combine(Tao,Atten,Train_rt,Tf,Ts,length(Train_seq));     %多径合并过程,不进行相关积分
     
     
     subplot(3,1,3);
     plot(0:Ts:(length(yt)-1)*Ts,yt);
     gtext('Rake接收机合并结果');
    xlabel('time(ns)');ylabel('amplitude');
     
     %肖婕桢和刘娜的程序从此开始=============
   %=====================
    %=====================
     %=====================
      %=====================
       %===================== 
     

⌨️ 快捷键说明

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