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

📄 condor_plot.m

📁 一个UWB仿真程序包
💻 M
字号:
%%function [ber_sim,per_sim,snr_dB] = condor_plot(varargin)%%old_style = 0;if nargin == 0  basedir = 'results';elseif nargin == 1  basedir = varargin{1};elseif nargin == 2  basedir   = varargin{1};  old_style = varargin{2};endcmd = strcat('grep RSCODE', ...             sprintf(' %s/CONFIG.txt',basedir), ...             ' |  sed -e "s/^[$|@]RSCODE.*= //" -e "s/;//"');[s,w]=system(cmd);RSCODE = str2num(w);if isempty(RSCODE)  fprintf('No RSCODE\n');  DATALENGTH = 1016;elseif RSCODE == 0  fprintf('No RSCODE\n');  DATALENGTH = 870;elseif RSCODE == 1  fprintf('RSCODE is defined\n');  DATALENGTH = 1016;endcmd = strcat('grep "^[@|$]snr_dB"', ...	     sprintf(' %s/CONFIG.txt',basedir), ...	     ' | sed -e "s/^[$|@]snr_dB = (//" -e "s/);//"');[s,w]=system(cmd);snr_dB = str2num(w);cmd = strcat('grep "^[@|$]BURST_LENGTH"', ...	     sprintf(' %s/CONFIG.txt', basedir), ...	     ' | sed -r -e "s/[$|@]BURST_LENGTH  = \(?//" -e "s/\)?;//"');[s,w]=system(cmd);BURST_LENGTH = str2num(w);cmd = strcat('grep "^[@|$]Nu"', ...	     sprintf(' %s/CONFIG.txt', basedir), ...	     ' | sed -r -e "s/[$|@]Nu            = \(?//" -e "s/\)?;//"');[s,w]=system(cmd);Nu = str2num(w);cmd = strcat('grep "^[@|$]LAMBDA"', ...	     sprintf(' %s/CONFIG.txt', basedir), ...	     ' | sed -r -e "s/[$|@]LAMBDA        = \(?//" -e "s/\)?;//"');[s,w]=system(cmd);LAMBDA = str2num(w);cmd = strcat('grep "^[@|$]channel_est"', ...	     sprintf(' %s/CONFIG.txt', basedir), ...	     ' | sed -r -e "s/[$|@]channel_est    = \(?//" -e "s/\)?;//"');[s,w]=system(cmd);channel_est = str2num(w);fprintf('Parameters:\n')fprintf('BURST_LENGTH = %d, Nu = %d, LAMBDA = %d\n',BURST_LENGTH,Nu,LAMBDA);if isempty(RSCODE) || RSCODE == 0  fprintf('Uncoded simulation\n');  code_str = 'Uncoded,';elseif RSCODE == 1  fprintf('Simulation with RS code\n');  code_str = 'RS code,';endif isempty(channel_est) || channel_est == 0  fprintf('No channel estimation\n');  chan_str = ' ';elseif channel_est == 1  fprintf('Channel estimation\n');  chan_str = ' channel mask,';endfor k = 1:1:length(snr_dB)  if old_style == 1    filename = sprintf('result-%d-%d-%d-%d.txt',...                       snr_dB(k),BURST_LENGTH,Nu,LAMBDA);  else    filename = sprintf('result-%d-%d-%d-%d-%d.txt',...                       snr_dB(k),BURST_LENGTH,RSCODE,Nu,LAMBDA);  end  data = load(strcat(basedir,'/',filename));  ber_sim(k) = mean(data(:,2)/DATALENGTH);  pe_idx = find(data(:,2)>0);  pc_idx = find(data(:,2)==0);  data(pe_idx,2) = 1;  per_sim(k) = mean(data(:,2));  channel_mask_length(k) = mean(data(:,6));  channel_mask_length_pe(k) = mean(data(pe_idx,6));  channel_mask_length_pc(k) = mean(data(pc_idx,6));endfigure(1);h1=semilogy(snr_dB,ber_sim,'.--');hold on;% Packet error rateh2=semilogy(snr_dB,per_sim,'m*--');% What is the performance of an AWGN channel with BPPM and a matched filtersnr = 10.^(snr_dB/10);ber_bppm = 0.5*erfc( sqrt(snr) / sqrt(2));h3=semilogy(snr_dB,ber_bppm,'r');hold off;grid on;legend([h2 h1 h3], ...       'PER, simulation', ...       'BER, simulation ', ...       'BER of BPPM on  AWGN', ...       'Location','SouthWest');xlabel('SNR [dB]');param_str = sprintf(' Nu = %d, LAMBDA = %.1f [pkt/s]',Nu,LAMBDA);title_str = strcat(code_str,chan_str,param_str);title(title_str);%axis([snr_dB(1) snr_dB(end) 1e-6 1]);figure(2);bar(snr_dB,[channel_mask_length_pc' channel_mask_length_pe']);fprintf('Non-zero channel mask slots\n');fprintf('Correct packets: [');fprintf('%.2f ',channel_mask_length_pc);fprintf(']\n');fprintf('Erroneous packets: [')fprintf('%.2f ',channel_mask_length_pe);fprintf(']\n');

⌨️ 快捷键说明

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