📄 tr_uwb.m
字号:
%-----------------------------------------------------------------------
%generate channel impulse response
h = uwb_imr(1,1);
% h = h(1:100);
%-----------------------------------------------------------------------
%for ber coputation
err_bit=[];
ber=[];
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
%changing parameters
for s=1:51
%-----------------------------------------------------------------------
%basic settings
s
% sample_time = 1e-10;
% Ns = 6; %Ts/Tf
% nTp = 10;
% nTd = 50;
% nTf = 120;
% nTs = Ns*nTf;
nTi = 9+s;
% snr = 10;
% data_length = 1000; % n bit
% ciculation_time = 30; % 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; % integral duration
%-----------------------------------------------------------------------
%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
for m=1:ciculation_time
%-----------------------------------------------------------------------
%random binary source
% source = randsrc(1,data_length);
%-----------------------------------------------------------------------
%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);
%-----------------------------------------------------------------------
%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(m) = data_length-sum(de==source); % number of bit error
end
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
ber(s)= sum(err_bit)/(ciculation_time*data_length);
end
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
%-----------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -