?? dssignal.m
字號(hào):
%發(fā)送和接收合在一塊的程序
%修改于2004/11/15
%發(fā)送BPSK信號(hào)
%適合于CM3和CM4信道,估計(jì)時(shí)每80ns平均一次
%======================發(fā)送信號(hào)部分===========================
clear;
clf;
%=======第一部分:基本參數(shù)========
SNR_db=5; %輸入信噪比
Dg=0.5; %高斯脈沖寬度
Ts=0.05; %信號(hào)采樣周期
Tf=80; %Tf=80,duty_cycle=1:160
Num_Tf=Tf/Ts; %每個(gè)符號(hào)持續(xù)時(shí)間內(nèi)采樣點(diǎn)個(gè)數(shù)
Eb=Eb_halfcos(Ts,Dg); %一個(gè)脈沖周期內(nèi)的碼元能量
%信道估計(jì)需要的訓(xùn)練序列長(zhǎng)度
N_monocycle=10;
A=ones(1,10);
%碼元同步需要的訓(xùn)練序列
N_Syn=12;
%數(shù)據(jù)長(zhǎng)度
N_Data=1000;
Sim_Data=randn(1,N_Data); %產(chǎn)生數(shù)據(jù)序列;
%---------------------------------------------
%========第二部分:生成基本波形==========
%產(chǎn)生占空比1:160的半余弦脈沖波形,脈沖波形的占空比可以通過Num_Tf調(diào)整
for n=0:Num_Tf-1
gt(n+1)=halfcos_generator(Dg,n*Ts);
end
%========第三部分:生成信道沖激響應(yīng)及高斯白噪聲==========
Th=Dg; %信道沖激響應(yīng)間隔
h0=UWB_SV_channel(2,4,Th); %信道沖激響應(yīng)
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) 高斯白噪聲
%============第四部分:信道估計(jì)過程==========================
%信道估計(jì)過程
st0=(A'*gt)';
st=reshape(st0,1,[]); %理想發(fā)送信號(hào)
figure(1);
subplot(2,1,1);
plot(0:Ts:(length(st)-1)*Ts,st);
title('理想發(fā)射信號(hào)');
xlabel('time(ns)');ylabel('amplitude');
rt0=conv(st,h);
rt_len=length(rt0); %通過信道后的信號(hào)
%subplot(4,1,3);
%plot([0:Ts:(rt_len-1)*Ts],rt0);
%------------------
rt=rt0 +Noise_sigma*randn(1,rt_len); %接收信號(hào)
subplot(2,1,2);
plot([0:Ts:(rt_len-1)*Ts],rt);
title('經(jīng)過SV信道(CM4,信道沖激響應(yīng)間隔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表示所需要的多徑數(shù)
%===================信道估計(jì)過程到此結(jié)束=====================
%==============第五部分:同步以及信號(hào)接收==============
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; %編碼器一次輸入個(gè)數(shù)
coded_Data=cnv_encd(g,k0,Sim_Data); %卷積編碼后的數(shù)據(jù)
pn_code=B;
%syn_training=spreadgren(randn(1,12),pn_code); %同步訓(xùn)練序列
spread_Data=spreadgren(coded_Data,pn_code); %擴(kuò)頻并且加上訓(xùn)練序列(未擴(kuò)頻的)后的數(shù)據(jù)
%trans_data=[syn_training,spread_Data];
Train_st0=(Train_seq'*gt)';
Train_st1=reshape(Train_st0,1,[]); %理想發(fā)送信號(hào)
Train_rt=conv(Train_st1,h);
Train_rtlen=length(Train_rt);
Train_rt=Train_rt+Noise_sigma*randn(1,Train_rtlen); %接收信號(hào)
figure(2);
subplot(3,1,1);
plot(0:Ts:(length(Train_st1)-1)*Ts,Train_st1);
title('理想發(fā)射信號(hào)');
xlabel('time(ns)');ylabel('amplitude');
subplot(3,1,2);
plot(0:Ts:(length(Train_rt)-1)*Ts,Train_rt);
gtext('經(jīng)過SV信道的信號(hào)(CM4,信道沖激響應(yīng)間隔0.5ns,無噪聲');
xlabel('time(ns)');ylabel('amplitude');
yt=MRC_combine(Tao,Atten,Train_rt,Tf,Ts,length(Train_seq)); %多徑合并過程,不進(jìn)行相關(guān)積分
subplot(3,1,3);
plot(0:Ts:(length(yt)-1)*Ts,yt);
gtext('Rake接收機(jī)合并結(jié)果');
xlabel('time(ns)');ylabel('amplitude');
%肖婕楨和劉娜的程序從此開始=============
%=====================
%=====================
%=====================
%=====================
%=====================
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -