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

📄 quantization_threshold.m

📁 source Matlab traites the UWB
💻 M
字号:
%%clear all;%% Necessary pathaddpath ../addpath ../rng;% Some parametersFS_CONT = 20e9;PACKET_LENGTH = 4;TC = 2e-9;Eb = 1;snr_dB = 10;% ReceiverT_INT = 1e-9;N_INT = 1;% From SNR in dB to the variance of the noisesnr = 10.^(snr_dB/10);s2 = Eb ./ (snr);% SimulationL = 1000;samples_per_chip = TC * FS_CONT;% Get a pulsechip_span = 0.5;[monopulse,t] = get_monopulse(1,chip_span,1e-9,TC,samples_per_chip);% Normalizemonopulse = Eb*monopulse./norm(monopulse);% $$$ % Better?% $$$ dt = 1/FS_CONT;% $$$ monopulse = Eb*monopulse/sqrt(dt*sum(monopulse.^2));% Create the signal to be transmittedtx_signal = conv(monopulse,upsample(ones(1,PACKET_LENGTH),2*samples_per_chip));tx_signal = tx_signal(1:2*PACKET_LENGTH*samples_per_chip);% Indices for the energy receiversignal_start_0 = cumsum(ones(1,PACKET_LENGTH)*(2*samples_per_chip))-(2* ...						  samples_per_chip);n = samples_per_chip-rem(samples_per_chip,T_INT*FS_CONT);signal_idx_0 = repmat(signal_start_0,n,1)+repmat((0:n-1)',1,PACKET_LENGTH) + 1;signal_idx_1 = signal_idx_0 + samples_per_chip;% Values for the quantizermax_thresh = norm(monopulse);thresh = [linspace(0,max_thresh,10)];%thresh = 0.5;%thresh = 0;for l = 1:length(thresh)  for k = 1:L    % Add the noise    noise = sqrt(s2/samples_per_chip)*randn(1,PACKET_LENGTH*2*samples_per_chip);    rx_signal = tx_signal + noise;    % Energy receiver    [rx_down_0,samples_per_tint] = ...        ed_receiver(rx_signal(reshape(signal_idx_0,1, PACKET_LENGTH*n)),T_INT, ...                    FS_CONT,N_INT,thresh(l));    [rx_down_1,samples_per_tint] = ...        ed_receiver(rx_signal(reshape(signal_idx_1,1, PACKET_LENGTH*n)),T_INT, ...                    FS_CONT,N_INT,thresh(l));    % Decision rule and detection    rx_down = sum(reshape((rx_down_0 - rx_down_1),n/(T_INT*FS_CONT), ...                          PACKET_LENGTH),1);    idx_dec0 = find(rx_down>0);    idx_dec1 = find(rx_down<0);    idx_unknown = find(rx_down==0);    decoded = [];    decoded(idx_dec0) = 0;    decoded(idx_dec1) = 1;    decoded(idx_unknown) = round(rand(1,length(idx_unknown)));    % Compute the BER    [num_err,ber_sim(l,k)] = symerr(decoded,zeros(1,PACKET_LENGTH));    endendsemilogy(thresh,mean(ber_sim,2),'.',0,mean(ber_sim(1,:),2),'r*');fprintf('SNR [dB] = %d\n',snr_dB);fprintf('min BER  = %.7f\n',min(mean(ber_sim,2)));

⌨️ 快捷键说明

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