📄 tr_uwb.asv
字号:
%-----------------------------------------------------------------------
%generate channel impulse response
h = uwb_imr(1,1);
%-----------------------------------------------------------------------
%for ber coputation
err_bit=[];
ber=[];
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
%changing parameters
for s=1:15
s
%-----------------------------------------------------------------------
%basic settings
% sample_time = 1e-10;
% Ns = 6; %Ts/Tf
% nTp = 10;
% nTd = 50;
% nTf = 120;
% nTs = Ns*nTf;
nTi = 8+2*s;
% snr = 0;
% data_length = 100; % n bit
% ciculation_time = 800; % total bit = data_length*ciculation_time
% Tp = nTp*sample_time; % pulse duration
% Td = nTd*sample_time; % inter-pulse delay between reference pulse and data pulse
% Tf = nTf*sample_time; % frame-time: one pulse pair in each Tf.
% Ts = nTs*sample_time; % symbol duration
Ti = nTi*sample_time; % length of the integration interval
%-----------------------------------------------------------------------
%generate reference and data pulse in a symbol
% [reference,data] = tr_pulse_train(sample_time,nTp,nTd,nTf,Ns);
%-----------------------------------------------------------------------
%small trick
reference_index_select = [];
for i=1:Ns
reference_index_select = [reference_index_select,(i-1)*nTf+1:(i-1)*nTf+nTi];
end
data_index_select = [];
for i=1:Ns
data_index_select = [data_index_select,(i-1)*nTf+nTp+nTd+1:(i-1)*nTf+nTp+nTd+nTi];
end
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
%caculate more bit
% rxx = [];
% sourcee = [];
% for m=1:ciculation_time
% m
%
% %-----------------------------------------------------------------------
% %random binary source
% source = randsrc(1,data_length);
% sourcee = [sourcee,source];
%
% %-----------------------------------------------------------------------
% %generate transmitted signal
% tx_r = [];
% tx_d = [];
% for i=1:data_length %n bit
% tx_r = [tx_r ; reference];
% tx_d = [tx_d ; source(i)*data ]; %modulation
% end
% tx = tx_r + tx_d; %n bit
%
% %-----------------------------------------------------------------------
% %generate received signal
% rx_without_noise = conv(tx,h);
% rx = awgn(rx_without_noise,snr);
%
% %-----------------------------------------------------------------------
% %rx and tx is of same size
% rx = rx(1:length(tx));
% rx = reshape(rx,nTs,data_length);
% rxx =[rxx,rx];
%-----------------------------------------------------------------------
%seperate reference and data pulses
rx_reference = rx(reference_index_select,:);
rx_data = rx(data_index_select,:);
%-----------------------------------------------------------------------
%demodulation
de = rx_reference.*rx_data;
de = sum(de,1);
de = de>0;
source = source>0;
err_bit(s) = 80000-sum(de==source); % number of bit error
% end
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
ber(s)= err_bit(s)/80000;
end
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -