From 4bd9c324802f293ef41c607a4bdbb8f907dbb8bc Mon Sep 17 00:00:00 2001 From: Andreas Tsouchlos Date: Thu, 8 Dec 2022 11:25:20 +0100 Subject: [PATCH] Added thesis template to latex folder --- latex/Makefile | 33 - latex/abbreviations.tex | 59 + latex/bibliography.bib | 396 +++ latex/cel-thesis/.gitignore | 381 +++ latex/cel-thesis/IEEEabrv.bib | 489 +++ latex/cel-thesis/IEEEtranSA_own.bst | 2833 +++++++++++++++++ latex/cel-thesis/cel-thesis.cls | 182 ++ .../cel-thesis/eidesstattliche_erklaerung.tex | 60 + latex/cel-thesis/logos/cc-by-nc.png | Bin 0 -> 17637 bytes latex/cel-thesis/logos/cel_logo.pdf | Bin 0 -> 9969 bytes latex/cel-thesis/logos/kitlogo_de_rgb.pdf | Bin 0 -> 11304 bytes latex/cel-thesis/logos/watermark_thesis.pdf | Bin 0 -> 15461 bytes latex/chapters/abstract.tex | 44 + latex/chapters/conclusion.tex | 10 + latex/chapters/introduction.tex | 27 + latex/chapters/systemmodel.tex | 139 + latex/figures/polar_nbit_decoder.tex | 54 + latex/figures/polar_nbit_encoder_natural.tex | 48 + latex/src/thesis.tex | 54 - latex/thesis-master.tex | 64 + 20 files changed, 4786 insertions(+), 87 deletions(-) delete mode 100644 latex/Makefile create mode 100644 latex/abbreviations.tex create mode 100644 latex/bibliography.bib create mode 100644 latex/cel-thesis/.gitignore create mode 100644 latex/cel-thesis/IEEEabrv.bib create mode 100644 latex/cel-thesis/IEEEtranSA_own.bst create mode 100644 latex/cel-thesis/cel-thesis.cls create mode 100644 latex/cel-thesis/eidesstattliche_erklaerung.tex create mode 100644 latex/cel-thesis/logos/cc-by-nc.png create mode 100644 latex/cel-thesis/logos/cel_logo.pdf create mode 100644 latex/cel-thesis/logos/kitlogo_de_rgb.pdf create mode 100644 latex/cel-thesis/logos/watermark_thesis.pdf create mode 100644 latex/chapters/abstract.tex create mode 100644 latex/chapters/conclusion.tex create mode 100644 latex/chapters/introduction.tex create mode 100644 latex/chapters/systemmodel.tex create mode 100644 latex/figures/polar_nbit_decoder.tex create mode 100644 latex/figures/polar_nbit_encoder_natural.tex delete mode 100644 latex/src/thesis.tex create mode 100644 latex/thesis-master.tex diff --git a/latex/Makefile b/latex/Makefile deleted file mode 100644 index c62ae38..0000000 --- a/latex/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -BUILDDIR = build -SRCDIR = src -RESDIR = res -TEMPDIR = tmp - -CC = latexmk -CFLAGS = -pdf -shell-escape -halt-on-error - - -TARGETS = $(BUILDDIR)/thesis.pdf - - -all: clean precomp $(TARGETS) postcomp - -precomp: - @mkdir -p $(TEMPDIR) - @cd $(TEMPDIR) && ln -s ../$(SRCDIR)/* . - @cd $(TEMPDIR) && ln -s ../$(RESDIR)/* . - -postcomp: - @rm -r $(TEMPDIR) - -$(BUILDDIR)/thesis.pdf: $(TEMPDIR)/thesis.tex - $(CC) $(CFLAGS) -output-directory=../$(BUILDDIR) -cd $< - -clean: - rm -rf $(BUILDDIR) $(TEMPDIR) - -show: - okular $(TARGETS) & - - -.PHONY: all precomp postcomp show clean f diff --git a/latex/abbreviations.tex b/latex/abbreviations.tex new file mode 100644 index 0000000..e04e6af --- /dev/null +++ b/latex/abbreviations.tex @@ -0,0 +1,59 @@ +% This file provides Abbreviations +% Sorting them is a good idea because the acronym package won't! +\chapter{Abbreviations} +\begin{acronym}[TROLL] + \acro{AGC}[AGC]{automatic gain control} + \acro{API}[API]{application program interface} + \acro{AWGN}[AWGN]{additive white Gaussian noise} + \acro{AVX}[AVX]{advanced vector extensions} + + \acro{BEC}[BEC]{binary erasure channel} + \acro{BER}[BER]{bit error rate} + \acro{BDMC}[BDMC]{binary \acs{DMC}} + \acro{BP}[BP]{belief propagation} + \acro{BSC}[BSC]{binary symmetric channel} + + \acro{CEL}[CEL]{Communications Engineering Lab} + \acro{CPU}[CPU]{central processing unit} + + \acro{DFT}[DFT]{discrete Fourier transform} + \acro{DMC}[DMC]{discrete nemoryless channel} + \acro{dSNR}[dSNR]{design \ac{SNR}} + \acro{DSP}[DSP]{digital signal processing} + + \acro{ESA}[ESA]{European Space Agency} + + \acro{FER}[FER]{frame error rate} + \acro{FFT}[FFT]{fast Fourier transform} + + \acro{GPP}[GPP]{general purpose processor} + \acro{GRC}[GRC]{GNU Radio Companion} + + \acro{NASA}[NASA]{National Aeronautics and Space Administration} + \acro{LDPC}[LDPC]{low-density parity-check} + \acro{SIMD}[SIMD]{single instruction multiple data} + \acro{VOLK}[VOLK]{vector-optimized library of kernels} + + \acro{IDFT}[IDFT]{inverse discrete Fourier transform} + \acro{KIT}[KIT]{Karlsruhe Institute of Technology} + + \acro{LR}[LR]{likelihood ratio} + \acro{LLR}[LLR]{log-likelihood ratio} + \acro{LTE}[LTE]{Long Term Evolution} + + \acro{MAP}[MAP]{maximum a posteriori} + \acro{ML}[ML]{maximum likelihood} + + \acro{NRZ}[NRZ]{non return to zero} + + \acro{RV}[RV]{random variable} + + \acro{SC}[SC]{successive cancellation} + \acro{SCL}[SCL]{successive cancellation list} + \acro{SDR}[SDR]{software defined radio} + \acro{SNR}[SNR]{signal-to-noise ratio} + \acro{SPC}[SPC]{single parity check} + \acro{SSE}[SSE]{streaming \ac{SIMD} extensions} + + \acro{UML}[UML]{unified modeling language} +\end{acronym} diff --git a/latex/bibliography.bib b/latex/bibliography.bib new file mode 100644 index 0000000..c0ad341 --- /dev/null +++ b/latex/bibliography.bib @@ -0,0 +1,396 @@ +@Comment Eintr{\"a}ge k{\"o}nnen komfortabel {\"u}ber das (X)Emacs-Menu "Entry-Types" +@Comment gemacht werden. +@Comment +@Comment Zur Verwendung von BibTeX siehe auch +@Comment file:/tools/misc/teTeX/share/texmf/doc/bibtex/base/btxdoc.dvi + +@Comment Mama-Paper + +@INPROCEEDINGS{sha49, + author = {Claude E. Shannon}, + title = {Communication in the Presence of Noise}, + booktitle = {Proc. IRE}, + year = {1949}, + month = jan +} + +@Comment Paper zur Arbeit, Studienarbeit + +@Comment Berichte von Regulierungsbehoerden + +@TECHREPORT{itu, + title = {Radio Regulations}, + institution = {International Telecommunication Union - Radiocommunication}, + note = {}, + year = {2006} +} + + +@Comment software radio ... + +@INPROCEEDINGS{mit92, + title = {Software radios-survey, critical evaluation and future directions}, + author = {Joseph Mitola}, + journal = {Proc. National Telesystems Conference}, + month = may, + year = {1992} +} + + +@ARTICLE{hay05, + title = {Cognitive radio: brain-empowered wireless communications}, + author = {Haykin, S.}, + journal = IEEE_J_JSAC, + month = Feb, + year = {2005} +} + +@ARTICLE{jon05, + title = {Software-Defined Radio Basics and Evolution to Cognitive Radio}, + author = {Friedrich Jondral}, + journal = {EURASIP Journal on Wireless Communications and Networking}, + month = Feb, + year = {2005} +} + + +@Comment Cooperation in Spectrum Sensing + +@ARTICLE{jon07, + title = {Cognitive Radio: A Communications Engineering View}, + author = {Friedrich K. Jondral}, + journal = {IEEE Wireless Communications}, + month = Aug, + year = {2007} +} + +@book{tc02, + title = {Turbo Coding, Turbo Equalisation and Space-Time Coding for Transmission over Wireless Channels}, + author = {L. Hanzo and T. H. Liew and B. L. Yeap}, + publisher = {Wiley}, + year = {2002} +} +@article{te02, + title = {Turbo Equalization: Principles and New Results}, + year = {2002}, + author = {M. Tüchler and R. Kötter and A. C. Singer}, + journal = IEEE_J_TCOM, + volume = {50}, + month = {May} +} + +@misc{gnrDoc, +title = "{GNURadio 3.7.2 C++ API}", +howpublished = "\url{http://gnuradio.org/doc/doxygen/namespacegr_1_1trellis.html}", +} + +@misc{repo:gr-lte, +title = "{gr-lte Repository}", +howpublished = "\url{https://github.com/kit-cel/gr-lte}", +note = {Accessed 2015-02-12} +} + +@misc{repo:gr-misc, +title = "{gr-misc Repository}", +howpublished = "\url{https://github.com/jdemel/gr-misc}", +note = {Accessed 2015-02-12} +} + +@misc{repo:gr-rename-contribution, +title = "{GNU Radio modtool rename contribution}", +howpublished = "\url{https://github.com/gnuradio/gnuradio/tree/ab6b4208b4e843548d9c8898cbe1102976161663}", +note = {Accessed 2015-02-12} +} + +@misc{Charles2013, + author = {Charles, P.W.D.}, + title = {Project Title}, + year = {2013}, + publisher = {GitHub}, + journal = {GitHub repository}, + howpublished = {\url{https://github.com/charlespwd/project-title}}, + commit = {4f57d6a0e4c030202a07a60bc1bb1ed1544bf679} +} + +@misc{git:commit:polar-code-merge, + title = "{GNU Radio repository}", + year = {2015}, + journal = {GitHub repository}, + howpublished = "\url{https://github.com/gnuradio/gnuradio}", + note = {Accessed 2015-11-02}, + commit = {45faa98d307f84c6000fe32d69f6c12eb8efd180}, +} + +@misc{gnuradio:volk, + title = "{Vector-Optimized Library of Kernels}", + year = {2015}, + journal = {libvolk.org}, + howpublished = "\url{http://libvolk.org/}", + note = {Accessed 2015-11-19}, +} + +@misc{gnuradio:volk-repository, + title = "{Vector-Optimized Library of Kernels}", + year = {2015}, + journal = {GitHub}, + howpublished = "\url{https://github.com/gnuradio/volk}", + note = {Accessed 2015-11-19}, + commit = {98363e32638a7b036b47905bf8b3de243620a1aa}, +} + +@misc{gnuradio:fecapi-doc, + title = "{FECAPI documentation}", + year = {2015}, + journal = {GNU Radio}, + howpublished = "\url{https://gnuradio.org/doc/doxygen/page_fec.html}", + note = {Accessed 2015-11-03}, +} + +@misc{boost:random, + title = "{Boost Random}", + year = {2010}, + journal = {Boost}, + howpublished = "\url{http://www.boost.org/doc/libs/1_59_0/doc/html/boost_random.html}", + note = {Accessed 2015-11-03}, +} + +@COMMENT howpublished = "\url{http://www.uni-kl.de/en/channel-codes/channel-codes-database/wimax-ldpc/}", +@misc{ldpc:alist, + title = {Database of Channel Codes and {ML} Simulation Results}, + author = {Helmling, Michael and Scholl, Stefan}, + year = {2015}, + journal = {University of Kaiserslautern}, + howpublished = "\url{www.uni-kl.de/channel-codes}", + note = {Accessed 2015-11-19}, +} + +@article{lte:winncomm2013, + title = {A LTE Receiver Framework Implementation in {GNU Radio}}, + year = {2013}, + author = {J. Demel and S. Koslowski and F. Jondral}, + journal = {SDR-WInnComm-Europe-2013}, + month = {June} +} + +@article{lte:springer2015, + title = "{A LTE Receiver Framework Using GNU Radio}", + year = {2015}, + author = {J. Demel and S. Koslowski and F. Jondral}, + journal = {Springer Journal on Signal Processing Systems}, + doi = {10.1007/s11265-014-0959-z} +} + +@misc{dijkstra:zerocounting, + title = "{Why numbering should start at zero}", + author = {Edsger W. Dijkstra}, + year = {2008}, + howpublished = "\url{http://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html}", + note = {Accessed 2015-10-26} +} + +@article{cloudran:2015, + author = {P. Rost and A. Maeder and H. Paul and D. W\"{u}bben and A. Dekorsy and G. Fettweis and Ignacio Berberana and Vinay Suryaprakash and Matthew Valenti}, + title = {Benefits and Challenges of Virtualization in {5G} Radio Access Networks}, + year = {2015}, + month = dec, + journal=IEEE_M_COM, +} + +@ARTICLE{polar:arikan09, + author={Ar\i{}kan, Erdal}, + ownlabel={Ar\i{}01}, + journal=IEEE_J_IT, + title={Channel Polarization: A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels}, + year={2009}, + month={July}, + volume={55}, + number={7}, + pages={3051-3073}, + keywords={binary codes;channel capacity;channel coding;decoding;memoryless systems;probability;channel capacity;channel coding;channel polarization;code sequence;polar codes;probability;successive cancellation decoding algorithm;symmetric binary-input memoryless channel;Capacity planning;Channel capacity;Channel coding;Codes;Councils;Decoding;Information theory;Memoryless systems;Noise cancellation;Polarization;Capacity-achieving codes;Plotkin construction;Reed– Muller (RM) codes;channel capacity;channel polarization;polar codes;successive cancellation decoding}, + doi={10.1109/TIT.2009.2021379}, + ISSN={0018-9448}, +} + +@article{polar:arikan11systematic, + title={Systematic polar coding}, + author={Ar\i{}kan, Erdal}, + journal=IEEE_J_COML, + volume={15}, + number={8}, + pages={860--862}, + year={2011}, + publisher={Citeseer} +} + + +@article{tal2013construct, + title={How to construct polar codes}, + author={Tal, Ido and Vardy, Alexander}, + journal=IEEE_J_IT, + volume={59}, + number={10}, + pages={6562--6582}, + year={2013}, + publisher={IEEE} +} + +@article{chen2013improved, + title={Improved successive cancellation decoding of polar codes}, + author={Chen, Kai and Niu, Kai and Lin, Jiaru}, + journal=IEEE_J_TCOM, + volume={61}, + number={8}, + pages={3100--3107}, + year={2013}, + publisher={IEEE} +} + +@article{li2012adaptive, + title={An adaptive successive cancellation list decoder for polar codes with cyclic redundancy check}, + author={Li, Bin and Shen, Hui and Tse, David}, + journal=IEEE_J_COML, + volume={16}, + number={12}, + pages={2044--2047}, + year={2012}, + publisher={IEEE} +} + +@Book{shannon1998, + author = {Shannon, Claude}, + title = {The mathematical theory of communication}, + publisher = {University of Illinois Press}, + year = {1998}, + address = {Urbana}, + isbn = {0252725468} + } + +@book{Richardson:2008:MCT, + author = {Richardson, Tom and Urbanke, Rüdiger}, + title = {Modern Coding Theory}, + year = {2008}, + isbn = {0521852293, 9780521852296}, + publisher = {Cambridge University Press}, + address = {New York, NY, USA}, +} + +@misc{Friedrichs:2010:error-control-coding, + author = {Friedrichs, Bernd}, + title = {Error-Control Coding}, + publisher = {Springer-Verlag}, + address = {Berlin}, + howpublished = "\url{http://www.berndfriedrichs.de/buecher_d.htm#ecc}", + note = {Accessed 2015-11-06} +} + +@article{polar:vangala:cc-comparison, + author = {Harish Vangala and + Emanuele Viterbo and + Yi Hong}, + title = {A Comparative Study of Polar Code Constructions for the {AWGN} Channel}, + journal = {CoRR}, + volume = {abs/1501.02473}, + year = {2015}, + url = {http://arxiv.org/abs/1501.02473}, + timestamp = {Mon, 02 Feb 2015 14:12:25 +0100}, + biburl = {http://dblp.uni-trier.de/rec/bib/journals/corr/VangalaVH15}, + bibsource = {dblp computer science bibliography, http://dblp.org} +} + +@ARTICLE{polar:talvardy:howtoCC, +author={Tal, I. and Vardy, A.}, +journal=IEEE_J_IT, +title={How to Construct Polar Codes}, +year={2013}, +volume={59}, +number={10}, +pages={6562-6582}, +keywords={approximation theory;codes;alphabet size;approximation methods;channel capacity;construction algorithms;polar bit-channels;polar codes;Approximation algorithms;Approximation methods;Complexity theory;Convolutional codes;Decoding;Kernel;Quantization (signal);Channel degrading and upgrading;channel polarization;construction algorithms;polar codes}, +doi={10.1109/TIT.2013.2272694}, +ISSN={0018-9448}, +month={Oct}, +} + +@INPROCEEDINGS{polar:talvardy:scl, + author={Tal, I. and Vardy, A.}, + booktitle={Information Theory Proceedings (ISIT), 2011 IEEE International Symposium on}, + title={List decoding of polar codes}, + year={2011}, + pages={1-5}, + keywords={maximum likelihood decoding;Arikan;decoding paths;maximum likelihood decoder;polar codes;successive-cancellation list decoder;Arrays;Complexity theory;Equations;Error analysis;Mathematical model;Maximum likelihood decoding}, + doi={10.1109/ISIT.2011.6033904}, + ISSN={2157-8095}, + month={July}, +} + +@article{polar:llr_scl, + author = {Alexios Balatsoukas{-}Stimming and + Mani Bastani Parizi and + Andreas Burg}, + title = {LLR-based Successive Cancellation List Decoding of Polar Codes}, + journal = {CoRR}, + volume = {abs/1401.3753}, + year = {2014}, + url = {http://arxiv.org/abs/1401.3753}, + timestamp = {Sun, 02 Feb 2014 18:37:28 +0100}, + biburl = {http://dblp.uni-trier.de/rec/bib/journals/corr/Balatsoukas-StimmingPB14}, + bibsource = {dblp computer science bibliography, http://dblp.org} +} + +@article{polar:fast-ssc, + author = {Pascal Giard and + Gabi Sarkis and + Camille Leroux and + Claude Thibeault and + Warren J. Gross}, + title = {Low-Latency Software Polar Decoders}, + journal = {CoRR}, + volume = {abs/1504.00353}, + year = {2015}, + url = {http://arxiv.org/abs/1504.00353}, + timestamp = {Sat, 02 May 2015 17:50:32 +0200}, + biburl = {http://dblp.uni-trier.de/rec/bib/journals/corr/GiardSLTG15}, + bibsource = {dblp computer science bibliography, http://dblp.org} +} + +@article{polar:fast-systematic-encoder, + author = {Gabi Sarkis and + Ido Tal and + Pascal Giard and + Alexander Vardy and + Claude Thibeault and + Warren J. Gross}, + title = {Flexible and Low-Complexity Encoding and Decoding of Systematic Polar + Codes}, + journal = {CoRR}, + volume = {abs/1507.03614}, + year = {2015}, + url = {http://arxiv.org/abs/1507.03614}, + timestamp = {Sun, 02 Aug 2015 18:42:02 +0200}, + biburl = {http://dblp.uni-trier.de/rec/bib/journals/corr/SarkisTGVTG15}, + bibsource = {dblp computer science bibliography, http://dblp.org} +} + +@INPROCEEDINGS{polar:bpd, + author={Jing Guo and Minghai Qin and Guillen i Fabregas, A. and Siegel, P.H.}, + booktitle={Information Theory (ISIT), 2014 IEEE International Symposium on}, + title={Enhanced belief propagation decoding of polar codes through concatenation}, + year={2014}, + pages={2987-2991}, + keywords={concatenated codes;decoding;parity check codes;BP decoding;belief propagation decoding;bit-channels;concatenated polar code;enhanced concatenation;finite length polar codes;intermediate channels;low density parity check code;Bit error rate;Decoding;Iron;Parity check codes}, + doi={10.1109/ISIT.2014.6875382}, + month={June}, +} + +@article{polar:sts, + affiliation = {Key Laboratory of Universal Wireless Communications, Beijing University of Posts and Telecommunications}, + author = {Niu, K. and Chen, K.}, + doi = {10.1049/el.2012.1459}, + journal = {Electronics Letters}, + language = {Undetermined}, + number = {12}, + pages = {695 - 697}, + title = {Stack decoding of polar codes}, + volume = {48}, + year = {2012}, +} diff --git a/latex/cel-thesis/.gitignore b/latex/cel-thesis/.gitignore new file mode 100644 index 0000000..864a499 --- /dev/null +++ b/latex/cel-thesis/.gitignore @@ -0,0 +1,381 @@ + +# Created by https://www.toptal.com/developers/gitignore/api/latex,visualstudiocode,texstudio,emacs,vim +# Edit at https://www.toptal.com/developers/gitignore?templates=latex,visualstudiocode,texstudio,emacs,vim + +### Emacs ### +# -*- mode: gitignore; -*- +*~ +\#*\# +/.emacs.desktop +/.emacs.desktop.lock +*.elc +auto-save-list +tramp +.\#* + +# Org-mode +.org-id-locations +*_archive +ltximg/** + +# flymake-mode +*_flymake.* + +# eshell files +/eshell/history +/eshell/lastdir + +# elpa packages +/elpa/ + +# reftex files +*.rel + +# AUCTeX auto folder +/auto/ + +# cask packages +.cask/ +dist/ + +# Flycheck +flycheck_*.el + +# server auth directory +/server/ + +# projectiles files +.projectile + +# directory configuration +.dir-locals.el + +# network security +/network-security.data + + +### LaTeX ### +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs +*.lzo +*.lzs + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Comment the next line if you want to keep your tikz graphics files +*.tikz +*-tikzDictionary + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# todonotes +*.tdo + +# vhistory +*.hst +*.ver + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices and outlines +*.xyc +*.xyd + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# gummi +.*.swp + +# KBibTeX +*~[0-9]* + +# TeXnicCenter +*.tps + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +# Makeindex log files +*.lpz + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib + +### LaTeX Patch ### +# LIPIcs / OASIcs +*.vtc + +# glossaries +*.glstex + +#!! ERROR: texstudio is undefined. Use list command to see defined gitignore types !!# + +### Vim ### +# Swap +[._]*.s[a-v][a-z] +!*.svg # comment out if you don't need vector files +[._]*.sw[a-p] +[._]s[a-rt-v][a-z] +[._]ss[a-gi-z] +[._]sw[a-p] + +# Session +Session.vim +Sessionx.vim + +# Temporary +.netrwhist +# Auto-generated tag files +tags +# Persistent undo +[._]*.un~ + +### VisualStudioCode ### +.vscode/* +!.vscode/tasks.json +!.vscode/launch.json +*.code-workspace + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide + +# End of https://www.toptal.com/developers/gitignore/api/latex,visualstudiocode,texstudio,emacs,vim diff --git a/latex/cel-thesis/IEEEabrv.bib b/latex/cel-thesis/IEEEabrv.bib new file mode 100644 index 0000000..bcaccfc --- /dev/null +++ b/latex/cel-thesis/IEEEabrv.bib @@ -0,0 +1,489 @@ + +IEEEabrv.bib +V1.14 (2015/08/26) +Copyright (c) 2002-2015 by Michael Shell +See: http://www.michaelshell.org/ +for current contact information. + +BibTeX bibliography string definitions of the ABBREVIATED titles of +IEEE journals and magazines and online publications. + +This file is designed for bibliography styles that require +abbreviated titles and is not for use in bibliographies that +require full-length titles. + +Support sites: +http://www.michaelshell.org/tex/ieeetran/ +http://www.ctan.org/pkg/ieeetran +and/or +http://www.ieee.org/ + +Special thanks to Laura Hyslop, Ken Rawson, Kevin Lisankie and +Mona Mittra of the IEEE for their help in obtaining the information needed +to compile this file. Also, Volker Kuhlmann, Moritz Borgmann, +Yannick Berker, Nicolás Barabino, Chuanren Wu and Santiago Cogollos Borras +kindly provided some corrections and additions. + + +************************************************************************* +Legal Notice: +This code is offered as-is without any warranty either expressed or +implied; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE! +User assumes all risk. +In no event shall the IEEE or any contributor to this code be liable for +any damages or losses, including, but not limited to, incidental, +consequential, or any other damages, resulting from the use or misuse +of any information contained here. + +All comments are the opinions of their respective authors and are not +necessarily endorsed by the IEEE. + +This work is distributed under the LaTeX Project Public License (LPPL) +( http://www.latex-project.org/ ) version 1.3, and may be freely used, +distributed and modified. A copy of the LPPL, version 1.3, is included +in the base LaTeX documentation of all distributions of LaTeX released +2003/12/01 or later. +Retain all contribution notices and credits. +** Modified files should be clearly indicated as such, including ** +** renaming them and changing author support contact information. ** +************************************************************************* + + +USAGE: + +\bibliographystyle{mybstfile} +\bibliography{IEEEabrv,mybibfile} + +where the IEEE titles in the .bib database entries use the strings +defined here. e.g., + + + journal = IEEE_J_AC, + + +to yield "{IEEE} Trans. Automat. Contr." + + +The IEEE uses abbreviated journal titles in their bibliographies - +this file is suitable for work that is to be submitted to the IEEE. + +For work that requires full-length titles, you should use the full +titles provided in the companion file, IEEEfull.bib. + + +** NOTES ** + + 1. Journals have been grouped according to subject in order to make it + easier to locate and extract the definitions for related journals - + as most works use references that are confined to a single topic. + Magazines are listed in straight alphabetical order. + + 2. String names are closely based on IEEE's own internal acronyms. + + 3. Older, out-of-print IEEE titles are included (but not including titles + dating prior to the IEEE's formation from the IRE and AIEE in 1963). + + 4. Abbreviations comply with the official specifications of the IEEE. + + + + + + +IEEE Journals + + +aerospace and military +@STRING{IEEE_J_ANNE = "{IEEE} Trans. Aeronaut. Navig. Electron."} +@STRING{IEEE_J_AES = "{IEEE} Trans. Aerosp. Electron. Syst."} +@STRING{IEEE_J_ANE = "{IEEE} Trans. Aerosp. Navig. Electron."} +@STRING{IEEE_J_AS = "{IEEE} Trans. Aerosp."} +@STRING{IEEE_J_AIRE = "{IEEE} Trans. Airborne Electron."} +@STRING{IEEE_J_MIL = "{IEEE} Trans. Mil. Electron."} + + + +autos, transportation and vehicles (non-aerospace) +@STRING{IEEE_J_ITS = "{IEEE} Trans. Intell. Transp. Syst."} +@STRING{IEEE_J_IV = "{IEEE} Trans. Intell. Veh."} +@STRING{IEEE_J_TTE = "{IEEE} Trans. Transport. Electrific."} +@STRING{IEEE_J_VC = "{IEEE} Trans. Veh. Commun."} +@STRING{IEEE_J_VT = "{IEEE} Trans. Veh. Technol."} + + + +circuits, signals, systems, audio and controls +@STRING{IEEE_J_STSP = "{IEEE} J. Sel. Topics Signal Process."} +@STRING{IEEE_J_SPL = "{IEEE} Signal Process. Lett."} +@STRING{IEEE_J_SYST = "{IEEE} Syst. J."} +@STRING{IEEE_J_ASSP = "{IEEE} Trans. Acoust., Speech, Signal Process."} +@STRING{IEEE_J_AU = "{IEEE} Trans. Audio"} +@STRING{IEEE_J_AUEA = "{IEEE} Trans. Audio Electroacoust."} +in 2014 ASL became ASLP +@STRING{IEEE_J_ASLP = "{IEEE/ACM} Trans. Audio, Speech, Language Process."} +@STRING{IEEE_J_ASL = "{IEEE} Audio, Speech, Language Process."} +@STRING{IEEE_J_AC = "{IEEE} Trans. Autom. Control"} +@STRING{IEEE_J_CAS = "{IEEE} Trans. Circuits Syst."} +@STRING{IEEE_J_CASVT = "{IEEE} Trans. Circuits Syst. Video Technol."} +@STRING{IEEE_J_CASI = "{IEEE} Trans. Circuits Syst. {I}"} +@STRING{IEEE_J_CASII = "{IEEE} Trans. Circuits Syst. {II}"} +in 2004 CASI and CASII renamed part title to CASI_RP and CASII_EB, respectively +@STRING{IEEE_J_CASI_RP = "{IEEE} Trans. Circuits Syst. {I}"} +@STRING{IEEE_J_CASII_EB = "{IEEE} Trans. Circuits Syst. {II}"} +@STRING{IEEE_J_CT = "{IEEE} Trans. Circuit Theory"} +@STRING{IEEE_J_CST = "{IEEE} Trans. Control Syst. Technol."} +@STRING{IEEE_J_ETCAS = "{IEEE} Trans. Emerg. Sel. Topics Circuits Syst."} +@STRING{IEEE_J_SP = "{IEEE} Trans. Signal Process."} +@STRING{IEEE_J_SU = "{IEEE} Trans. Sonics Ultrason."} +@STRING{IEEE_J_SAP = "{IEEE} Trans. Speech Audio Process."} +@STRING{IEEE_J_UE = "{IEEE} Trans. Ultrason. Eng."} +@STRING{IEEE_J_UFFC = "{IEEE} Trans. Ultrason., Ferroelectr., Freq. Control"} + + + +communications +@STRING{IEEE_J_COML = "{IEEE} Commun. Lett."} +@STRING{IEEE_J_JSAC = "{IEEE} J. Sel. Areas Commun."} +@STRING{IEEE_J_COM = "{IEEE} Trans. Commun."} +@STRING{IEEE_J_COMT = "{IEEE} Trans. Commun. Technol."} +@STRING{IEEE_J_WCOM = "{IEEE} Trans. Wireless Commun."} +@STRING{IEEE_J_WCOML = "{IEEE} Wireless Commun. Lett."} + + + +components, packaging and manufacturing +@STRING{IEEE_J_ADVP = "{IEEE} Trans. Adv. Packag."} +@STRING{IEEE_J_CHMT = "{IEEE} Trans. Compon., Hybrids, Manuf. Technol."} +in 2011 CAPT became CPMT +@STRING{IEEE_J_CPMT = "{IEEE} Trans. Compon. Packag. Manuf. Technol."} +@STRING{IEEE_J_CPMTA = "{IEEE} Trans. Compon., Packag., Manuf. Technol. {A}"} +@STRING{IEEE_J_CPMTB = "{IEEE} Trans. Compon., Packag., Manuf. Technol. {B}"} +@STRING{IEEE_J_CPMTC = "{IEEE} Trans. Compon., Packag., Manuf. Technol. {C}"} +@STRING{IEEE_J_CAPTS = "{IEEE} Trans. Compon. Packag. Technol."} +@STRING{IEEE_J_CAPT = "{IEEE} Trans. Compon. Packag. Technol."} +@STRING{IEEE_J_CPART = "{IEEE} Trans. Compon. Parts"} +@STRING{IEEE_J_EPM = "{IEEE} Trans. Electron. Packag. Manuf."} +@STRING{IEEE_J_MFT = "{IEEE} Trans. Manuf. Technol."} +@STRING{IEEE_J_PHP = "{IEEE} Trans. Parts, Hybrids, Packag."} +@STRING{IEEE_J_PMP = "{IEEE} Trans. Parts, Mater., Packag."} + + + +CAD +@STRING{IEEE_J_TCAD = "{IEEE} J. Technol. Comput. Aided Design"} +@STRING{IEEE_J_CAD = "{IEEE} Trans. Comput.-Aided Design Integr. Circuits Syst."} + + + +coding, data, information, knowledge +@STRING{IEEE_J_BD = "{IEEE} Trans. Big Data"} +@STRING{IEEE_J_IFS = "{IEEE} Trans. Inf. Forensics Security"} +@STRING{IEEE_J_IT = "{IEEE} Trans. Inf. Theory"} +@STRING{IEEE_J_KDE = "{IEEE} Trans. Knowl. Data Eng."} + + + +computers, computation, networking and software +@STRING{IEEE_J_CAL = "{IEEE} Comput. Archit. Lett."} +@STRING{IEEE_J_ES = "{IEEE} Embedded Syst. Lett."} +@STRING{IEEE_J_IOT = "{IEEE} Internet Things J."} +@STRING{IEEE_J_XCDC = "{IEEE} J. Explor. Solid-State Computat. Devices Circuits"} +@STRING{IEEE_J_MMCT = "{IEEE} J. Multiscale and Multiphys. Comput. Techn."} +@STRING{IEEE_J_SUSC = "{IEEE} Sustain. Comput."} +@STRING{IEEE_J_CC = "{IEEE} Trans. on Cloud Comput."} +@STRING{IEEE_J_CSS = "{IEEE} Trans. Comput. Social Syst."} +@STRING{IEEE_J_C = "{IEEE} Trans. Comput."} +@STRING{IEEE_J_CNS = "{IEEE} Trans. Control Netw. Syst."} +@STRING{IEEE_J_DSC = "{IEEE} Trans. Depend. Sec. Comput."} +@STRING{IEEE_J_ECOMP = "{IEEE} Trans. Electron. Comput."} +@STRING{IEEE_J_ETC = "{IEEE} Trans. Emerg. Topics Comput."} +@STRING{IEEE_J_EVC = "{IEEE} Trans. Evol. Comput."} +@STRING{IEEE_J_FUZZ = "{IEEE} Trans. Fuzzy Syst."} +@STRING{IEEE_J_MC = "{IEEE} Trans. Mobile Comput."} +@STRING{IEEE_J_MSCS = "{IEEE} Trans. Multi-Scale Comput. Syst."} +@STRING{IEEE_J_NET = "{IEEE/ACM} Trans. Netw."} +@STRING{IEEE_J_NSE = "{IEEE} Trans. Netw. Sci. Eng."} +@STRING{IEEE_J_NSM = "{IEEE} Trans. Netw. Service Manag."} +@STRING{IEEE_J_NN = "{IEEE} Trans. Neural Netw."} +in 2012 NN became NNLS +@STRING{IEEE_J_NNLS = "{IEEE} Trans. Neural Netw. Learn. Syst."} +@STRING{IEEE_J_PDS = "{IEEE} Trans. Parallel Distrib. Syst."} +@STRING{IEEE_J_SC = "{IEEE} Trans. Serv. Comput."} +@STRING{IEEE_J_SIPN = "{IEEE} Trans. Signal Inf. Process. Netw."} +@STRING{IEEE_J_SE = "{IEEE} Trans. Softw. Eng."} + + + +computer graphics, imaging, and multimedia +@STRING{IEEE_J_JDT = "{IEEE/OSA} J. Display Technol."} +@STRING{IEEE_J_IP = "{IEEE} Trans. Image Process."} +@STRING{IEEE_J_MM = "{IEEE} Trans. Multimedia"} +@STRING{IEEE_J_VCG = "{IEEE} Trans. Vis. Comput. Graphics"} + + + +cybernetics, ergonomics, robots, man-machine, artificial intelligence and automation +@STRING{IEEE_J_JAS = "{IEEE/CAA} J. Autom. Sinica"} +@STRING{IEEE_J_JRA = "{IEEE} J. Robot. Autom."} +@STRING{IEEE_J_AFFC = "{IEEE} Trans. Affect. Comput."} +@STRING{IEEE_J_ASE = "{IEEE} Trans. Autom. Sci. Eng."} +@STRING{IEEE_J_AMD = "{IEEE} Trans. Auton. Mental Develop."} +@STRING{IEEE_J_CCN = "{IEEE} Trans. on Cogn. Commun. Netw."} +in 2015 AMD became CDS +@STRING{IEEE_J_CDS = "{IEEE} Trans. Cogn. Develop. Syst."} +@STRING{IEEE_J_CIAIG = "{IEEE} Trans. Comput. Intell. {AI} in Games"} +in 2013 SMCB became CYB +@STRING{IEEE_J_CYB = "{IEEE} Trans. Cybern."} +@STRING{IEEE_J_H = "{IEEE} Trans. Haptics"} +@STRING{IEEE_J_HFE = "{IEEE} Trans. Hum. Factors Electron."} +in 2013 SMCC became HMS +@STRING{IEEE_J_HMS = "{IEEE} Trans. Human-Mach. Syst."} +@STRING{IEEE_J_MMS = "{IEEE} Trans. Man-Mach. Syst."} +@STRING{IEEE_J_PAMI = "{IEEE} Trans. Pattern Anal. Mach. Intell."} +in 1989 JRA became RA +in August 2004, RA split into ASE and RO +@STRING{IEEE_J_RA = "{IEEE} Trans. Robot. Autom."} +@STRING{IEEE_J_RAL = "{IEEE} Robot. Autom. Lett."} +@STRING{IEEE_J_RO = "{IEEE} Trans. Robot."} +@STRING{IEEE_J_SMC = "{IEEE} Trans. Syst., Man, Cybern."} +@STRING{IEEE_J_SMCA = "{IEEE} Trans. Syst., Man, Cybern. {A}"} +@STRING{IEEE_J_SMCB = "{IEEE} Trans. Syst., Man, Cybern. {B}"} +@STRING{IEEE_J_SMCC = "{IEEE} Trans. Syst., Man, Cybern. {C}"} +in 2012 SMCA became SMCS +@STRING{IEEE_J_SMCS = "{IEEE} Trans. Syst., Man, Cybern., Syst."} +@STRING{IEEE_J_SSC = "{IEEE} Trans. Syst. Sci. Cybern."} + + + +earth, wind, fire and water +@STRING{IEEE_J_GRSL = "{IEEE} Geosci. Remote Sens. Lett."} +@STRING{IEEE_J_GE = "{IEEE} Trans. Geosci. Electron."} +@STRING{IEEE_J_GRS = "{IEEE} Trans. Geosci. Remote Sens."} +@STRING{IEEE_J_OE = "{IEEE} J. Ocean. Eng."} +@STRING{IEEE_J_STARS = "{IEEE} J. Sel. Topics Appl. Earth Observ. Remote Sens."} + + + +education, engineering, history, IEEE, professional +@STRING{IEEE_J_CJECE = "Canadian J. Elect. Comput. Eng."} +@STRING{IEEE_J_PROC = "Proc. {IEEE}"} +@STRING{IEEE_J_RITA = "{IEEE} Revista Iberoamericana de Technolog{\'{i}}as del Aprendizaje"} +@STRING{IEEE_J_EDU = "{IEEE} Trans. Educ."} +@STRING{IEEE_J_EM = "{IEEE} Trans. Eng. Manag."} +@STRING{IEEE_J_EWS = "{IEEE} Trans. Eng. Writing Speech"} +@STRING{IEEE_J_LT = "{IEEE} Trans. Learn. Technol."} +@STRING{IEEE_J_PC = "{IEEE} Trans. Prof. Commun."} + + + +electromagnetics, antennas, EMI, magnetics and microwave +@STRING{IEEE_J_AWPL = "{IEEE} Antennas Wireless Propag. Lett."} +@STRING{IEEE_J_MAGL = "{IEEE} Magn. Lett."} +@STRING{IEEE_J_MGWL = "{IEEE} Microw. Guided Wave Lett."} +@STRING{IEEE_J_MWCL = "{IEEE} Microw. Wireless Compon. Lett."} +@STRING{IEEE_J_RFIC = "{IEEE} {RFIC} J."} +@STRING{IEEE_J_RFID = "{IEEE} {RFID} J."} +@STRING{IEEE_J_AP = "{IEEE} Trans. Antennas Propag."} +@STRING{IEEE_J_EMC = "{IEEE} Trans. Electromagn. Compat."} +@STRING{IEEE_J_MAG = "{IEEE} Trans. Magn."} +@STRING{IEEE_J_MTT = "{IEEE} Trans. Microw. Theory Techn."} +@STRING{IEEE_J_RFI = "{IEEE} Trans. Radio Freq. Interference"} +@STRING{IEEE_J_TTHZ = "{IEEE} Trans. {THz} Sci. Technol."} +@STRING{IEEE_J_TJMJ = "{IEEE} Transl. J. Magn. Jpn."} + + + +energy, power and conversion +@STRING{IEEE_J_PHOT = "{IEEE} J. Photovolt."} +@STRING{IEEE_J_PEL = "{IEEE} Power Electron. Lett."} +@STRING{IEEE_J_PETS = "{IEEE} Power Energy Technol. Syst. J."} +@STRING{IEEE_J_ESTPE = "{IEEE} Trans. Emerg. Sel. Topics Power Electron."} +@STRING{IEEE_J_EC = "{IEEE} Trans. Energy Convers."} +@STRING{IEEE_J_PWRAS = "{IEEE} Trans. Power App. Syst."} +@STRING{IEEE_J_PWRD = "{IEEE} Trans. Power Del."} +@STRING{IEEE_J_PWRE = "{IEEE} Trans. Power Electron."} +@STRING{IEEE_J_PWRS = "{IEEE} Trans. Power Syst."} +@STRING{IEEE_J_SG = "{IEEE} Trans. Smart Grid"} +@STRING{IEEE_J_STE = "{IEEE} Trans. Sustain. Energy"} + + + +industrial, commercial and consumer +@STRING{IEEE_J_PSE = "{IEEE} J. Product Safety Eng."} +@STRING{IEEE_J_APPIND = "{IEEE} Trans. Appl. Ind."} +@STRING{IEEE_J_BC = "{IEEE} Trans. Broadcast."} +@STRING{IEEE_J_BCTV = "{IEEE} Trans. Broadcast Television Receivers"} +@STRING{IEEE_J_CE = "{IEEE} Trans. Consum. Electron."} +@STRING{IEEE_J_IE = "{IEEE} Trans. Ind. Electron."} +@STRING{IEEE_J_IECI = "{IEEE} Trans. Ind. Electron. Contr. Instrum."} +@STRING{IEEE_J_IA = "{IEEE} Trans. Ind. Appl."} +@STRING{IEEE_J_IGA = "{IEEE} Trans. Ind. Gen. Appl."} +@STRING{IEEE_J_IINF = "{IEEE} Trans. Ind. Informat."} + + + +instrumentation and measurement +@STRING{IEEE_J_IM = "{IEEE} Trans. Instrum. Meas."} + + + +insulation and materials +@STRING{IEEE_J_JEM = "{IEEE/TMS} J. Electron. Mater."} +@STRING{IEEE_J_DEI = "{IEEE} Trans. Dielectr. Electr. Insul."} +@STRING{IEEE_J_EI = "{IEEE} Trans. Electr. Insul."} + + + +mechanical +@STRING{IEEE_J_MEMS = "J. Microelectromech. Syst."} +in 2014 MEMS became MEMSI +@STRING{IEEE_J_MEMSI = "J. Microelectromech. Syst."} +@STRING{IEEE_J_MECH = "{IEEE/ASME} Trans. Mechatronics"} + + + +medical and biological +@STRING{IEEE_J_BHI = "{IEEE} J. Biomed. Health Inform."} +@STRING{IEEE_J_TEHM = "{IEEE} J. Transl. Eng. Health Med."} +@STRING{IEEE_J_LS = "{IEEE} Life Sci. Lett."} +@STRING{IEEE_J_RBME = "{IEEE} Rev. Biomed. Eng."} +@STRING{IEEE_J_BCAS = "{IEEE} Trans. Biomed. Circuits Syst."} +@STRING{IEEE_J_BMELC = "{IEEE} Trans. Bio-Med. Electron."} +B-ME later dropped the hyphen and became the BME +@STRING{IEEE_J_BME = "{IEEE} Trans. Biomed. Eng."} +@STRING{IEEE_J_B-ME = "{IEEE} Trans. Bio-Med. Eng."} +@STRING{IEEE_J_CBB = "{IEEE/ACM} Trans. Comput. Biol. Bioinformatics"} +@STRING{IEEE_J_ITBM = "{IEEE} Trans. Inf. Technol. Biomed."} +@STRING{IEEE_J_ME = "{IEEE} Trans. Med. Electron."} +@STRING{IEEE_J_MI = "{IEEE} Trans. Med. Imag."} +@STRING{IEEE_J_MBSC = "{IEEE} Trans. Mol. Biol. Multi-Scale Commun."} +@STRING{IEEE_J_NB = "{IEEE} Trans. Nanobiosci."} +@STRING{IEEE_J_NSRE = "{IEEE} Trans. Neural Syst. Rehabil. Eng."} +@STRING{IEEE_J_RE = "{IEEE} Trans. Rehabil. Eng."} + + + +optics, lightwave and photonics +@STRING{IEEE_J_JLT = "J. Lightw. Technol."} +@STRING{IEEE_J_OCN = "{IEEE} J. Opt. Commun. Netw."} +@STRING{IEEE_J_PJ = "{IEEE} Photon. J."} +@STRING{IEEE_J_PTL = "{IEEE} Photon. Technol. Lett."} + + + +physics, electrons, nanotechnology, nuclear and quantum electronics +@STRING{IEEE_J_EDL = "{IEEE} Electron Device Lett."} +@STRING{IEEE_J_EDS = "{IEEE} J. Electron Devices Soc."} +@STRING{IEEE_J_JQE = "{IEEE} J. Quantum Electron."} +@STRING{IEEE_J_JSTQE = "{IEEE} J. Sel. Topics Quantum Electron."} +@STRING{IEEE_J_ENANO = "{IEEE} Nanotechnol. Express"} +@STRING{IEEE_J_ED = "{IEEE} Trans. Electron Devices"} +@STRING{IEEE_J_NANO = "{IEEE} Trans. Nanotechnol."} +@STRING{IEEE_J_NS = "{IEEE} Trans. Nucl. Sci."} +@STRING{IEEE_J_PS = "{IEEE} Trans. Plasma Sci."} + + + +reliability +@STRING{IEEE_J_DMR = "{IEEE} Trans. Device Mater. Rel."} +@STRING{IEEE_J_R = "{IEEE} Trans. Rel."} + + + +semiconductors, superconductors, electrochemical and solid state +@STRING{IEEE_J_ESSL = "{IEEE/ECS} Electrochem. Solid-State Lett."} +@STRING{IEEE_J_JSSC = "{IEEE} J. Solid-State Circuits"} +@STRING{IEEE_J_ASC = "{IEEE} Trans. Appl. Supercond."} +@STRING{IEEE_J_SM = "{IEEE} Trans. Semicond. Manuf."} + + + +sensors +@STRING{IEEE_J_SENSOR = "{IEEE} Sensors J."} + + + +VLSI +@STRING{IEEE_J_VLSI = "{IEEE} Trans. {VLSI} Syst."} + + + + + + +IEEE Magazines and Online Publications + + +@STRING{IEEE_O_ACC = "{IEEE} Access"} +@STRING{IEEE_M_AES = "{IEEE} Aerosp. Electron. Syst. Mag."} +@STRING{IEEE_M_HIST = "{IEEE} Ann. Hist. Comput."} +@STRING{IEEE_M_AP = "{IEEE} Antennas Propag. Mag."} +@STRING{IEEE_M_ASSP = "{IEEE} {ASSP} Mag."} +@STRING{IEEE_M_CHINAC = "China Commun."} +@STRING{IEEE_M_CD = "{IEEE} Circuits Devices Mag."} +@STRING{IEEE_M_CAS = "{IEEE} Circuits Syst. Mag."} +@STRING{IEEE_M_COM = "{IEEE} Commun. Mag."} +@STRING{IEEE_M_COMSOC = "{IEEE} Commun. Soc. Mag."} +@STRING{IEEE_O_CSTO = "{IEEE} Commun. Surveys Tuts."} +@STRING{IEEE_M_CIM = "{IEEE} Comput. Intell. Mag."} +CSEM changed to CSE in 1999 +@STRING{IEEE_M_CSE = "{IEEE} Comput. Sci. Eng."} +@STRING{IEEE_M_CSEM = "{IEEE} Comput. Sci. Eng. Mag."} +@STRING{IEEE_M_C = "Computer"} +@STRING{IEEE_M_CAP = "{IEEE} Comput. Appl. Power"} +@STRING{IEEE_M_CGA = "{IEEE} Comput. Graph. Appl."} +@STRING{IEEE_M_CONC = "{IEEE} Concurrency"} +@STRING{IEEE_M_CS = "{IEEE} Control Syst. Mag."} +in 2012 DTC became DT +@STRING{IEEE_M_DT = "{IEEE} Des. Test"} +@STRING{IEEE_M_DTC = "{IEEE} Des. Test. Comput."} +@STRING{IEEE_O_DSO = "{IEEE} Distrib. Syst. Online"} +@STRING{IEEE_M_EI = "{IEEE} Electr. Insul. Mag."} +@STRING{IEEE_M_ETF = "{IEEE} Electrific. Mag."} +@STRING{IEEE_M_EMC = "{IEEE} Electromagn. Compat."} +@STRING{IEEE_M_ETR = "{IEEE} ElectroTechnol. Rev."} +@STRING{IEEE_M_EMR = "{IEEE} Eng. Manag. Rev."} +@STRING{IEEE_M_EMB = "{IEEE} Eng. Med. Biol. Mag."} +@STRING{IEEE_M_EXP = "{IEEE} Expert"} +@STRING{IEEE_M_GRS = "{IEEE} Geosci. Remote Sens. Mag."} +@STRING{IEEE_M_IA = "{IEEE} Ind. Appl. Mag."} +@STRING{IEEE_M_IE = "{IEEE} Ind. Electron. Mag."} +@STRING{IEEE_M_IM = "{IEEE} Instrum. Meas. Mag."} +@STRING{IEEE_M_IS = "{IEEE} Intell. Syst."} +@STRING{IEEE_M_ITS = "{IEEE} Intell. Transp. Syst. Mag."} +@STRING{IEEE_M_IC = "{IEEE} Internet Comput."} +@STRING{IEEE_M_ITP = "{IEEE} {IT} Prof."} +@STRING{IEEE_M_MICRO = "{IEEE} Micro"} +@STRING{IEEE_M_MW = "{IEEE} Microw. Mag."} +@STRING{IEEE_M_MM = "{IEEE} Multimedia"} +@STRING{IEEE_M_NANO = "{IEEE} Nanotechnol. Mag."} +@STRING{IEEE_M_NET = "{IEEE} Netw."} +IEEE's editorial manual lists "Pers. Commun.", +but "Personal Commun. Mag." seems to be what is used in the journals +@STRING{IEEE_M_PCOM = "{IEEE} Personal Commun. Mag."} +@STRING{IEEE_M_PVC = "{IEEE} Pervasive Comput."} +@STRING{IEEE_M_POT = "{IEEE} Potentials"} +@STRING{IEEE_M_PEL = "{IEEE} Power Electron. Mag."} +CAP and PER merged to form PE in 2003 +@STRING{IEEE_M_PE = "{IEEE} Power Energy Mag."} +@STRING{IEEE_M_PER = "{IEEE} Power Eng. Rev."} +@STRING{IEEE_M_PULSE = "{IEEE} Pulse"} +@STRING{IEEE_M_RA = "{IEEE} Robot. Autom. Mag."} +@STRING{IEEE_M_SAP = "{IEEE} Security Privacy"} +@STRING{IEEE_M_SP = "{IEEE} Signal Process. Mag."} +@STRING{IEEE_M_S = "{IEEE} Softw."} +@STRING{IEEE_M_SSC = "{IEEE} Solid-State Circuits Mag."} +@STRING{IEEE_M_SPECT = "{IEEE} Spectr."} +@STRING{IEEE_M_SMC = "{IEEE} Syst., Man, Cybern. Mag."} +@STRING{IEEE_M_TS = "{IEEE} Technol. Soc. Mag."} +@STRING{IEEE_M_VT = "{IEEE} Veh. Technol. Mag."} +@STRING{IEEE_M_WC = "{IEEE} Wireless Commun."} +@STRING{IEEE_M_TODAY = "Today's Engineer"} + + + + + +-- +EOF diff --git a/latex/cel-thesis/IEEEtranSA_own.bst b/latex/cel-thesis/IEEEtranSA_own.bst new file mode 100644 index 0000000..0a9bbd8 --- /dev/null +++ b/latex/cel-thesis/IEEEtranSA_own.bst @@ -0,0 +1,2833 @@ +%% +%% IEEEtranSA.bst +%% BibTeX Bibliography Style file +%% Sorting alpha version of IEEEtran.bst +%% *** Not for normal IEEE work *** +%% Version 1.14 (2015/08/26) +%% +%% Copyright (c) 2003-2015 Michael Shell +%% +%% Original starting code base and algorithms obtained from the output of +%% Patrick W. Daly's makebst package as well as from prior versions of +%% IEEE BibTeX styles: +%% +%% 1. Howard Trickey and Oren Patashnik's ieeetr.bst (1985/1988) +%% 2. Silvano Balemi and Richard H. Roy's IEEEbib.bst (1993) +%% +%% Added sorting code is from plain.bst, alpha code is from alpha.bst. +%% +%% +%% Support sites: +%% http://www.michaelshell.org/tex/ieeetran/ +%% http://www.ctan.org/pkg/ieeetran +%% and/or +%% http://www.ieee.org/ +%% +%% For use with BibTeX version 0.99a or later +%% +%% This is an alpha citation style. +%% +%%************************************************************************* +%% Legal Notice: +%% This code is offered as-is without any warranty either expressed or +%% implied; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE! +%% User assumes all risk. +%% In no event shall the IEEE or any contributor to this code be liable for +%% any damages or losses, including, but not limited to, incidental, +%% consequential, or any other damages, resulting from the use or misuse +%% of any information contained here. +%% +%% All comments are the opinions of their respective authors and are not +%% necessarily endorsed by the IEEE. +%% +%% This work is distributed under the LaTeX Project Public License (LPPL) +%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used, +%% distributed and modified. A copy of the LPPL, version 1.3, is included +%% in the base LaTeX documentation of all distributions of LaTeX released +%% 2003/12/01 or later. +%% Retain all contribution notices and credits. +%% ** Modified files should be clearly indicated as such, including ** +%% ** renaming them and changing author support contact information. ** +%%************************************************************************* + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% DEFAULTS FOR THE CONTROLS OF THE BST STYLE %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% These are the defaults for the user adjustable controls. The values used +% here can be overridden by the user via IEEEtranBSTCTL entry type. + +% NOTE: The recommended LaTeX command to invoke a control entry type is: +% +%\makeatletter +%\def\bstctlcite{\@ifnextchar[{\@bstctlcite}{\@bstctlcite[@auxout]}} +%\def\@bstctlcite[#1]#2{\@bsphack +% \@for\@citeb:=#2\do{% +% \edef\@citeb{\expandafter\@firstofone\@citeb}% +% \if@filesw\immediate\write\csname #1\endcsname{\string\citation{\@citeb}}\fi}% +% \@esphack} +%\makeatother +% +% It is called at the start of the document, before the first \cite, like: +% \bstctlcite{IEEEexample:BSTcontrol} +% +% IEEEtran.cls V1.6 and later does provide this command. + + + +% #0 turns off the display of the number for articles. +% #1 enables +FUNCTION {default.is.use.number.for.article} { #1 } + + +% #0 turns off the display of the paper and type fields in @inproceedings. +% #1 enables +FUNCTION {default.is.use.paper} { #1 } + + +% #0 turns off the display of urls +% #1 enables +FUNCTION {default.is.use.url} { #1 } + + +% #0 turns off the forced use of "et al." +% #1 enables +FUNCTION {default.is.forced.et.al} { #0 } + + +% The maximum number of names that can be present beyond which an "et al." +% usage is forced. Be sure that num.names.shown.with.forced.et.al (below) +% is not greater than this value! +% Note: There are many instances of references in IEEE journals which have +% a very large number of authors as well as instances in which "et al." is +% used profusely. +FUNCTION {default.max.num.names.before.forced.et.al} { #10 } + + +% The number of names that will be shown with a forced "et al.". +% Must be less than or equal to max.num.names.before.forced.et.al +FUNCTION {default.num.names.shown.with.forced.et.al} { #1 } + + +% #0 turns off the alternate interword spacing for entries with URLs. +% #1 enables +FUNCTION {default.is.use.alt.interword.spacing} { #1 } + + +% If alternate interword spacing for entries with URLs is enabled, this is +% the interword spacing stretch factor that will be used. For example, the +% default "4" here means that the interword spacing in entries with URLs can +% stretch to four times normal. Does not have to be an integer. Note that +% the value specified here can be overridden by the user in their LaTeX +% code via a command such as: +% "\providecommand\BIBentryALTinterwordstretchfactor{1.5}" in addition to +% that via the IEEEtranBSTCTL entry type. +FUNCTION {default.ALTinterwordstretchfactor} { "4" } + + +% #0 turns off the "dashification" of repeated (i.e., identical to those +% of the previous entry) names. The IEEE normally does this. +% #1 enables +FUNCTION {default.is.dash.repeated.names} { #1 } + + +% The default name format control string. +FUNCTION {default.name.format.string}{ "{f.~}{vv~}{ll}{, jj}" } + + +% The default LaTeX font command for the names. +FUNCTION {default.name.latex.cmd}{ "" } + + +% The default URL prefix. +FUNCTION {default.name.url.prefix}{ "[Online]. Available:" } + + +% Other controls that cannot be accessed via IEEEtranBSTCTL entry type. + +% #0 turns off the terminal startup banner/completed message so as to +% operate more quietly. +% #1 enables +FUNCTION {is.print.banners.to.terminal} { #1 } + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% FILE VERSION AND BANNER %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION{bst.file.version} { "1.14" } +FUNCTION{bst.file.date} { "2015/08/26" } +FUNCTION{bst.file.website} { "http://www.michaelshell.org/tex/ieeetran/bibtex/" } + +FUNCTION {banner.message} +{ is.print.banners.to.terminal + { "-- IEEEtranSA.bst version" " " * bst.file.version * + " (" * bst.file.date * ") " * "by Michael Shell." * + top$ + "-- " bst.file.website * + top$ + "-- See the " quote$ * "IEEEtran_bst_HOWTO.pdf" * quote$ * " manual for usage information." * + top$ + "** Sorting Alpha version - not for normal IEEE work." + top$ + } + { skip$ } + if$ +} + +FUNCTION {completed.message} +{ is.print.banners.to.terminal + { "" + top$ + "Done." + top$ + } + { skip$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%% +%% STRING CONSTANTS %% +%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {bbl.a}{ "A" } +FUNCTION {bbl.an}{ "An" } +FUNCTION {bbl.and}{ "and" } +FUNCTION {bbl.etal}{ "et~al." } +FUNCTION {bbl.editors}{ "eds." } +FUNCTION {bbl.editor}{ "ed." } +FUNCTION {bbl.edition}{ "ed." } +FUNCTION {bbl.volume}{ "vol." } +FUNCTION {bbl.of}{ "of" } +FUNCTION {bbl.number}{ "no." } +FUNCTION {bbl.in}{ "in" } +FUNCTION {bbl.pages}{ "pp." } +FUNCTION {bbl.page}{ "p." } +FUNCTION {bbl.chapter}{ "ch." } +FUNCTION {bbl.paper}{ "paper" } +FUNCTION {bbl.part}{ "pt." } +FUNCTION {bbl.patent}{ "Patent" } +FUNCTION {bbl.patentUS}{ "U.S." } +FUNCTION {bbl.revision}{ "Rev." } +FUNCTION {bbl.series}{ "ser." } +FUNCTION {bbl.standard}{ "Std." } +FUNCTION {bbl.techrep}{ "Tech. Rep." } +FUNCTION {bbl.the}{ "The" } +FUNCTION {bbl.mthesis}{ "Master's thesis" } +FUNCTION {bbl.phdthesis}{ "Ph.D. dissertation" } +FUNCTION {bbl.st}{ "st" } +FUNCTION {bbl.nd}{ "nd" } +FUNCTION {bbl.rd}{ "rd" } +FUNCTION {bbl.th}{ "th" } + + +% This is the LaTeX spacer that is used when a larger than normal space +% is called for (such as just before the address:publisher). +FUNCTION {large.space} { "\hskip 1em plus 0.5em minus 0.4em\relax " } + +% The LaTeX code for dashes that are used to represent repeated names. +% Note: Some older IEEE journals used something like +% "\rule{0.275in}{0.5pt}\," which is fairly thick and runs right along +% the baseline. However, the IEEE now uses a thinner, above baseline, +% six dash long sequence. +FUNCTION {repeated.name.dashes} { "------" } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% PREDEFINED STRING MACROS %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"Jun."} +MACRO {jul} {"Jul."} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sep."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} + + + +%%%%%%%%%%%%%%%%%% +%% ENTRY FIELDS %% +%%%%%%%%%%%%%%%%%% + +ENTRY + { address + assignee + author + booktitle + chapter + day + dayfiled + edition + editor + howpublished + institution + intype + journal + key + language + month + monthfiled + nationality + note + number + organization + pages + paper + publisher + school + series + revision + title + type + url + volume + year + yearfiled + ownpublication + ownlabel + CTLuse_article_number + CTLuse_paper + CTLuse_url + CTLuse_forced_etal + CTLmax_names_forced_etal + CTLnames_show_etal + CTLuse_alt_spacing + CTLalt_stretch_factor + CTLdash_repeated_names + CTLname_format_string + CTLname_latex_cmd + CTLname_url_prefix + } + {} + { label extra.label sort.label } + + + + +%%%%%%%%%%%%%%%%%%%%%%% +%% INTEGER VARIABLES %% +%%%%%%%%%%%%%%%%%%%%%%% + +INTEGERS { prev.status.punct this.status.punct punct.std + punct.no punct.comma punct.period + prev.status.space this.status.space space.std + space.no space.normal space.large + prev.status.quote this.status.quote quote.std + quote.no quote.close + prev.status.nline this.status.nline nline.std + nline.no nline.newblock + status.cap cap.std + cap.no cap.yes} + +INTEGERS { longest.label.width multiresult nameptr namesleft number.label numnames } + +INTEGERS { is.use.number.for.article + is.use.paper + is.use.url + is.forced.et.al + max.num.names.before.forced.et.al + num.names.shown.with.forced.et.al + is.use.alt.interword.spacing + is.dash.repeated.names} + + +%%%%%%%%%%%%%%%%%%%%%% +%% STRING VARIABLES %% +%%%%%%%%%%%%%%%%%%%%%% + +STRINGS { bibinfo + longest.label + oldname + s + t + ALTinterwordstretchfactor + name.format.string + name.latex.cmd + name.url.prefix} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOW LEVEL FUNCTIONS %% +%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {initialize.controls} +{ default.is.use.number.for.article 'is.use.number.for.article := + default.is.use.paper 'is.use.paper := + default.is.use.url 'is.use.url := + default.is.forced.et.al 'is.forced.et.al := + default.max.num.names.before.forced.et.al 'max.num.names.before.forced.et.al := + default.num.names.shown.with.forced.et.al 'num.names.shown.with.forced.et.al := + default.is.use.alt.interword.spacing 'is.use.alt.interword.spacing := + default.is.dash.repeated.names 'is.dash.repeated.names := + default.ALTinterwordstretchfactor 'ALTinterwordstretchfactor := + default.name.format.string 'name.format.string := + default.name.latex.cmd 'name.latex.cmd := + default.name.url.prefix 'name.url.prefix := +} + + +% This IEEEtran.bst features a very powerful and flexible mechanism for +% controlling the capitalization, punctuation, spacing, quotation, and +% newlines of the formatted entry fields. (Note: IEEEtran.bst does not need +% or use the newline/newblock feature, but it has been implemented for +% possible future use.) The output states of IEEEtran.bst consist of +% multiple independent attributes and, as such, can be thought of as being +% vectors, rather than the simple scalar values ("before.all", +% "mid.sentence", etc.) used in most other .bst files. +% +% The more flexible and complex design used here was motivated in part by +% the IEEE's rather unusual bibliography style. For example, the IEEE ends the +% previous field item with a period and large space prior to the publisher +% address; the @electronic entry types use periods as inter-item punctuation +% rather than the commas used by the other entry types; and URLs are never +% followed by periods even though they are the last item in the entry. +% Although it is possible to accommodate these features with the conventional +% output state system, the seemingly endless exceptions make for convoluted, +% unreliable and difficult to maintain code. +% +% IEEEtran.bst's output state system can be easily understood via a simple +% illustration of two most recently formatted entry fields (on the stack): +% +% CURRENT_ITEM +% "PREVIOUS_ITEM +% +% which, in this example, is to eventually appear in the bibliography as: +% +% "PREVIOUS_ITEM," CURRENT_ITEM +% +% It is the job of the output routine to take the previous item off of the +% stack (while leaving the current item at the top of the stack), apply its +% trailing punctuation (including closing quote marks) and spacing, and then +% to write the result to BibTeX's output buffer: +% +% "PREVIOUS_ITEM," +% +% Punctuation (and spacing) between items is often determined by both of the +% items rather than just the first one. The presence of quotation marks +% further complicates the situation because, in standard English, trailing +% punctuation marks are supposed to be contained within the quotes. +% +% IEEEtran.bst maintains two output state (aka "status") vectors which +% correspond to the previous and current (aka "this") items. Each vector +% consists of several independent attributes which track punctuation, +% spacing, quotation, and newlines. Capitalization status is handled by a +% separate scalar because the format routines, not the output routine, +% handle capitalization and, therefore, there is no need to maintain the +% capitalization attribute for both the "previous" and "this" items. +% +% When a format routine adds a new item, it copies the current output status +% vector to the previous output status vector and (usually) resets the +% current (this) output status vector to a "standard status" vector. Using a +% "standard status" vector in this way allows us to redefine what we mean by +% "standard status" at the start of each entry handler and reuse the same +% format routines under the various inter-item separation schemes. For +% example, the standard status vector for the @book entry type may use +% commas for item separators, while the @electronic type may use periods, +% yet both entry handlers exploit many of the exact same format routines. +% +% Because format routines have write access to the output status vector of +% the previous item, they can override the punctuation choices of the +% previous format routine! Therefore, it becomes trivial to implement rules +% such as "Always use a period and a large space before the publisher." By +% pushing the generation of the closing quote mark to the output routine, we +% avoid all the problems caused by having to close a quote before having all +% the information required to determine what the punctuation should be. +% +% The IEEEtran.bst output state system can easily be expanded if needed. +% For instance, it is easy to add a "space.tie" attribute value if the +% bibliography rules mandate that two items have to be joined with an +% unbreakable space. + +FUNCTION {initialize.status.constants} +{ #0 'punct.no := + #1 'punct.comma := + #2 'punct.period := + #0 'space.no := + #1 'space.normal := + #2 'space.large := + #0 'quote.no := + #1 'quote.close := + #0 'cap.no := + #1 'cap.yes := + #0 'nline.no := + #1 'nline.newblock := +} + +FUNCTION {std.status.using.comma} +{ punct.comma 'punct.std := + space.normal 'space.std := + quote.no 'quote.std := + nline.no 'nline.std := + cap.no 'cap.std := +} + +FUNCTION {std.status.using.period} +{ punct.period 'punct.std := + space.normal 'space.std := + quote.no 'quote.std := + nline.no 'nline.std := + cap.yes 'cap.std := +} + +FUNCTION {initialize.prev.this.status} +{ punct.no 'prev.status.punct := + space.no 'prev.status.space := + quote.no 'prev.status.quote := + nline.no 'prev.status.nline := + punct.no 'this.status.punct := + space.no 'this.status.space := + quote.no 'this.status.quote := + nline.no 'this.status.nline := + cap.yes 'status.cap := +} + +FUNCTION {this.status.std} +{ punct.std 'this.status.punct := + space.std 'this.status.space := + quote.std 'this.status.quote := + nline.std 'this.status.nline := +} + +FUNCTION {cap.status.std}{ cap.std 'status.cap := } + +FUNCTION {this.to.prev.status} +{ this.status.punct 'prev.status.punct := + this.status.space 'prev.status.space := + this.status.quote 'prev.status.quote := + this.status.nline 'prev.status.nline := +} + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ { skip$ } + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + { skip$ } + if$ +} + + +% convert the strings "yes" or "no" to #1 or #0 respectively +FUNCTION {yes.no.to.int} +{ "l" change.case$ duplicate$ + "yes" = + { pop$ #1 } + { duplicate$ "no" = + { pop$ #0 } + { "unknown boolean " quote$ * swap$ * quote$ * + " in " * cite$ * warning$ + #0 + } + if$ + } + if$ +} + + +% pushes true if the single char string on the stack is in the +% range of "0" to "9" +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +% multiplies the integer on the stack by a factor of 10 +FUNCTION {bump.int.mag} +{ #0 'multiresult := + { duplicate$ #0 > } + { #1 - + multiresult #10 + + 'multiresult := + } + while$ +pop$ +multiresult +} + +% converts a single character string on the stack to an integer +FUNCTION {char.to.integer} +{ duplicate$ + is.num + { chr.to.int$ "0" chr.to.int$ - } + {"noninteger character " quote$ * swap$ * quote$ * + " in integer field of " * cite$ * warning$ + #0 + } + if$ +} + +% converts a string on the stack to an integer +FUNCTION {string.to.integer} +{ duplicate$ text.length$ 'namesleft := + #1 'nameptr := + #0 'numnames := + { nameptr namesleft > not } + { duplicate$ nameptr #1 substring$ + char.to.integer numnames bump.int.mag + + 'numnames := + nameptr #1 + + 'nameptr := + } + while$ +pop$ +numnames +} + + + + +% The output routines write out the *next* to the top (previous) item on the +% stack, adding punctuation and such as needed. Since IEEEtran.bst maintains +% the output status for the top two items on the stack, these output +% routines have to consider the previous output status (which corresponds to +% the item that is being output). Full independent control of punctuation, +% closing quote marks, spacing, and newblock is provided. +% +% "output.nonnull" does not check for the presence of a previous empty +% item. +% +% "output" does check for the presence of a previous empty item and will +% remove an empty item rather than outputing it. +% +% "output.warn" is like "output", but will issue a warning if it detects +% an empty item. + +FUNCTION {output.nonnull} +{ swap$ + prev.status.punct punct.comma = + { "," * } + { skip$ } + if$ + prev.status.punct punct.period = + { add.period$ } + { skip$ } + if$ + prev.status.quote quote.close = + { "''" * } + { skip$ } + if$ + prev.status.space space.normal = + { " " * } + { skip$ } + if$ + prev.status.space space.large = + { large.space * } + { skip$ } + if$ + write$ + prev.status.nline nline.newblock = + { newline$ "\newblock " write$ } + { skip$ } + if$ +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.warn} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +% "fin.entry" is the output routine that handles the last item of the entry +% (which will be on the top of the stack when "fin.entry" is called). + +FUNCTION {fin.entry} +{ this.status.punct punct.no = + { skip$ } + { add.period$ } + if$ + this.status.quote quote.close = + { "''" * } + { skip$ } + if$ +write$ +newline$ +} + + +FUNCTION {is.last.char.not.punct} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {is.multiple.pages} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {capitalize}{ "u" change.case$ "t" change.case$ } + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +FUNCTION {do.name.latex.cmd} +{ name.latex.cmd + empty$ + { skip$ } + { name.latex.cmd "{" * swap$ * "}" * } + if$ +} + +% IEEEtran.bst uses its own \BIBforeignlanguage command which directly +% invokes the TeX hyphenation patterns without the need of the Babel +% package. Babel does a lot more than switch hyphenation patterns and +% its loading can cause unintended effects in many class files (such as +% IEEEtran.cls). +FUNCTION {select.language} +{ duplicate$ empty$ 'pop$ + { language empty$ 'skip$ + { "\BIBforeignlanguage{" language * "}{" * swap$ * "}" * } + if$ + } + if$ +} + +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {space.word}{ " " swap$ * " " * } + + +% Field Conditioners, Converters, Checkers and External Interfaces + +FUNCTION {empty.field.to.null.string} +{ duplicate$ empty$ + { pop$ "" } + { skip$ } + if$ +} + +FUNCTION {either.or.check} +{ empty$ + { pop$ } + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {empty.entry.warn} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ url empty$ + and and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + + +% The bibinfo system provides a way for the electronic parsing/acquisition +% of a bibliography's contents as is done by ReVTeX. For example, a field +% could be entered into the bibliography as: +% \bibinfo{volume}{2} +% Only the "2" would show up in the document, but the LaTeX \bibinfo command +% could do additional things with the information. IEEEtran.bst does provide +% a \bibinfo command via "\providecommand{\bibinfo}[2]{#2}". However, it is +% currently not used as the bogus bibinfo functions defined here output the +% entry values directly without the \bibinfo wrapper. The bibinfo functions +% themselves (and the calls to them) are retained for possible future use. +% +% bibinfo.check avoids acting on missing fields while bibinfo.warn will +% issue a warning message if a missing field is detected. Prior to calling +% the bibinfo functions, the user should push the field value and then its +% name string, in that order. + +FUNCTION {bibinfo.check} +{ swap$ duplicate$ missing$ + { pop$ pop$ "" } + { duplicate$ empty$ + { swap$ pop$ } + { swap$ pop$ } + if$ + } + if$ +} + +FUNCTION {bibinfo.warn} +{ swap$ duplicate$ missing$ + { swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ "" } + { duplicate$ empty$ + { swap$ "empty " swap$ * " in " * cite$ * warning$ } + { swap$ pop$ } + if$ + } + if$ +} + + +% The IEEE separates large numbers with more than 4 digits into groups of +% three. The IEEE uses a small space to separate these number groups. +% Typical applications include patent and page numbers. + +% number of consecutive digits required to trigger the group separation. +FUNCTION {large.number.trigger}{ #5 } + +% For numbers longer than the trigger, this is the blocksize of the groups. +% The blocksize must be less than the trigger threshold, and 2 * blocksize +% must be greater than the trigger threshold (can't do more than one +% separation on the initial trigger). +FUNCTION {large.number.blocksize}{ #3 } + +% What is actually inserted between the number groups. +FUNCTION {large.number.separator}{ "\," } + +% So as to save on integer variables by reusing existing ones, numnames +% holds the current number of consecutive digits read and nameptr holds +% the number that will trigger an inserted space. +FUNCTION {large.number.separate} +{ 't := + "" + #0 'numnames := + large.number.trigger 'nameptr := + { t empty$ not } + { t #-1 #1 substring$ is.num + { numnames #1 + 'numnames := } + { #0 'numnames := + large.number.trigger 'nameptr := + } + if$ + t #-1 #1 substring$ swap$ * + t #-2 global.max$ substring$ 't := + numnames nameptr = + { duplicate$ #1 nameptr large.number.blocksize - substring$ swap$ + nameptr large.number.blocksize - #1 + global.max$ substring$ + large.number.separator swap$ * * + nameptr large.number.blocksize - 'numnames := + large.number.blocksize #1 + 'nameptr := + } + { skip$ } + if$ + } + while$ +} + +% Converts all single dashes "-" to double dashes "--". +FUNCTION {n.dashify} +{ large.number.separate + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + + +% This function detects entries with names that are identical to that of +% the previous entry and replaces the repeated names with dashes (if the +% "is.dash.repeated.names" user control is nonzero). +FUNCTION {name.or.dash} +{ 's := + oldname empty$ + { s 'oldname := s } + { s oldname = + { is.dash.repeated.names + { repeated.name.dashes } + { s 'oldname := s } + if$ + } + { s 'oldname := s } + if$ + } + if$ +} + +% Converts the number string on the top of the stack to +% "numerical ordinal form" (e.g., "7" to "7th"). There is +% no artificial limit to the upper bound of the numbers as the +% two least significant digits determine the ordinal form. +FUNCTION {num.to.ordinal} +{ duplicate$ #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ "1" = + { bbl.st * } + { duplicate$ #-1 #1 substring$ "2" = + { bbl.nd * } + { duplicate$ #-1 #1 substring$ "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +% If the string on the top of the stack begins with a number, +% (e.g., 11th) then replace the string with the leading number +% it contains. Otherwise retain the string as-is. s holds the +% extracted number, t holds the part of the string that remains +% to be scanned. +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +% Converts the word number string on the top of the stack to +% Arabic string form. Will be successful up to "tenth". +FUNCTION {word.to.num} +{ duplicate$ "l" change.case$ 's := + s "first" = + { pop$ "1" } + { skip$ } + if$ + s "second" = + { pop$ "2" } + { skip$ } + if$ + s "third" = + { pop$ "3" } + { skip$ } + if$ + s "fourth" = + { pop$ "4" } + { skip$ } + if$ + s "fifth" = + { pop$ "5" } + { skip$ } + if$ + s "sixth" = + { pop$ "6" } + { skip$ } + if$ + s "seventh" = + { pop$ "7" } + { skip$ } + if$ + s "eighth" = + { pop$ "8" } + { skip$ } + if$ + s "ninth" = + { pop$ "9" } + { skip$ } + if$ + s "tenth" = + { pop$ "10" } + { skip$ } + if$ +} + + +% Converts the string on the top of the stack to numerical +% ordinal (e.g., "11th") form. +FUNCTION {convert.edition} +{ duplicate$ empty$ 'skip$ + { duplicate$ #1 #1 substring$ is.num + { extract.num + num.to.ordinal + } + { word.to.num + duplicate$ #1 #1 substring$ is.num + { num.to.ordinal } + { "edition ordinal word " quote$ * edition * quote$ * + " may be too high (or improper) for conversion" * " in " * cite$ * warning$ + } + if$ + } + if$ + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LATEX BIBLIOGRAPHY CODE %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {start.entry} +{ newline$ + "\bibitem[" write$ +% Schmalen begin + ownpublication empty$ + 'skip$ + { ownpublication "l" change.case$ "yes" = + {"\underline{" write$} + 'skip$ + if$ + } + if$ +% Schmalen end +% Schmalen begin again + ownlabel empty$ + { label write$ } + { ownlabel write$ } + if$ +% Schmalen end again +% label write$ +% Schmalen begin + ownpublication empty$ + {"]{" write$} + { ownpublication "l" change.case$ "yes" = + {"}]{" write$} + {"]{" write$} + if$ + } + if$ +% Schmalen end + cite$ write$ + "}" write$ + newline$ + "" + initialize.prev.this.status +} + +% Here we write out all the LaTeX code that we will need. The most involved +% code sequences are those that control the alternate interword spacing and +% foreign language hyphenation patterns. The heavy use of \providecommand +% gives users a way to override the defaults. Special thanks to Javier Bezos, +% Johannes Braams, Robin Fairbairns, Heiko Oberdiek, Donald Arseneau and all +% the other gurus on comp.text.tex for their help and advice on the topic of +% \selectlanguage, Babel and BibTeX. +FUNCTION {begin.bib} +{ "% Generated by IEEEtranSA.bst, version: " bst.file.version * " (" * bst.file.date * ")" * + write$ newline$ + "\providecommand{\etalchar}[1]{$^{#1}$}" + write$ newline$ + preamble$ empty$ 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ + "\providecommand{\url}[1]{#1}" + write$ newline$ + "\csname url@samestyle\endcsname" + write$ newline$ + "\providecommand{\newblock}{\relax}" + write$ newline$ + "\providecommand{\bibinfo}[2]{#2}" + write$ newline$ + "\providecommand{\BIBentrySTDinterwordspacing}{\spaceskip=0pt\relax}" + write$ newline$ + "\providecommand{\BIBentryALTinterwordstretchfactor}{" + ALTinterwordstretchfactor * "}" * + write$ newline$ + "\providecommand{\BIBentryALTinterwordspacing}{\spaceskip=\fontdimen2\font plus " + write$ newline$ + "\BIBentryALTinterwordstretchfactor\fontdimen3\font minus \fontdimen4\font\relax}" + write$ newline$ + "\providecommand{\BIBforeignlanguage}[2]{{%" + write$ newline$ + "\expandafter\ifx\csname l@#1\endcsname\relax" + write$ newline$ + "\typeout{** WARNING: IEEEtranSA.bst: No hyphenation pattern has been}%" + write$ newline$ + "\typeout{** loaded for the language `#1'. Using the pattern for}%" + write$ newline$ + "\typeout{** the default language instead.}%" + write$ newline$ + "\else" + write$ newline$ + "\language=\csname l@#1\endcsname" + write$ newline$ + "\fi" + write$ newline$ + "#2}}" + write$ newline$ + "\providecommand{\BIBdecl}{\relax}" + write$ newline$ + "\BIBdecl" + write$ newline$ +} + +FUNCTION {end.bib} +{ newline$ "\end{thebibliography}" write$ newline$ } + +FUNCTION {if.url.alt.interword.spacing} +{ is.use.alt.interword.spacing + { is.use.url + { url empty$ 'skip$ {"\BIBentryALTinterwordspacing" write$ newline$} if$ } + { skip$ } + if$ + } + { skip$ } + if$ +} + +FUNCTION {if.url.std.interword.spacing} +{ is.use.alt.interword.spacing + { is.use.url + { url empty$ 'skip$ {"\BIBentrySTDinterwordspacing" write$ newline$} if$ } + { skip$ } + if$ + } + { skip$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%% +%% FORMAT HANDLERS %% +%%%%%%%%%%%%%%%%%%%%% + +%% Lower Level Formats (used by higher level formats) + +FUNCTION {format.address.org.or.pub.date} +{ 't := + "" + year empty$ + { "empty year in " cite$ * warning$ } + { skip$ } + if$ + address empty$ t empty$ and + year empty$ and month empty$ and + { skip$ } + { this.to.prev.status + this.status.std + cap.status.std + address "address" bibinfo.check * + t empty$ + { skip$ } + { punct.period 'prev.status.punct := + space.large 'prev.status.space := + address empty$ + { skip$ } + { ": " * } + if$ + t * + } + if$ + year empty$ month empty$ and + { skip$ } + { t empty$ address empty$ and + { skip$ } + { ", " * } + if$ + month empty$ + { year empty$ + { skip$ } + { year "year" bibinfo.check * } + if$ + } + { month "month" bibinfo.check * + year empty$ + { skip$ } + { " " * year "year" bibinfo.check * } + if$ + } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + this.to.prev.status + this.status.std + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + name.format.string + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { nameptr num.names.shown.with.forced.et.al #1 + = + numnames max.num.names.before.forced.et.al > + is.forced.et.al and and + { "others" 't := + #1 'namesleft := + } + { skip$ } + if$ + namesleft #1 > + { ", " * t do.name.latex.cmd * } + { s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { " " * bbl.etal emphasize * } + { numnames #2 > + { "," * } + { skip$ } + if$ + bbl.and + space.word * t do.name.latex.cmd * + } + if$ + } + if$ + } + { t do.name.latex.cmd } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + cap.status.std + } if$ +} + + + + +%% Higher Level Formats + +%% addresses/locations + +FUNCTION {format.address} +{ address duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% author/editor names + +FUNCTION {format.authors}{ author "author" format.names } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { ", " * + get.bbl.editor + capitalize + * + } + if$ +} + + + +%% date + +FUNCTION {format.date} +{ + month "month" bibinfo.check duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + "there's a month but no year in " cite$ * warning$ } + if$ + * + } + { this.to.prev.status + this.status.std + cap.status.std + swap$ 'skip$ + { + swap$ + " " * swap$ + } + if$ + * + } + if$ +} + +FUNCTION {format.date.electronic} +{ month "month" bibinfo.check duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ + { pop$ } + { "there's a month but no year in " cite$ * warning$ + pop$ ")" * "(" swap$ * + this.to.prev.status + punct.no 'this.status.punct := + space.normal 'this.status.space := + quote.no 'this.status.quote := + cap.yes 'status.cap := + } + if$ + } + { swap$ + { swap$ pop$ ")" * "(" swap$ * } + { "(" swap$ * ", " * swap$ * ")" * } + if$ + this.to.prev.status + punct.no 'this.status.punct := + space.normal 'this.status.space := + quote.no 'this.status.quote := + cap.yes 'status.cap := + } + if$ +} + + + +%% edition/title + +% Note: The IEEE considers the edition to be closely associated with +% the title of a book. So, in IEEEtran.bst the edition is normally handled +% within the formatting of the title. The format.edition function is +% retained here for possible future use. +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + convert.edition + status.cap + { "t" } + { "l" } + if$ change.case$ + "edition" bibinfo.check + "~" * bbl.edition * + cap.status.std + } + if$ +} + +% This is used to format the booktitle of a conference proceedings. +% Here we use the "intype" field to provide the user a way to +% override the word "in" (e.g., with things like "presented at") +% Use of intype stops the emphasis of the booktitle to indicate that +% we no longer mean the written conference proceedings, but the +% conference itself. +FUNCTION {format.in.booktitle} +{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + select.language + intype missing$ + { emphasize + bbl.in " " * + } + { intype " " * } + if$ + swap$ * + cap.status.std + } + if$ +} + +% This is used to format the booktitle of collection. +% Here the "intype" field is not supported, but "edition" is. +FUNCTION {format.in.booktitle.edition} +{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + select.language + emphasize + edition empty$ 'skip$ + { ", " * + edition + convert.edition + "l" change.case$ + * "~" * bbl.edition * + } + if$ + bbl.in " " * swap$ * + cap.status.std + } + if$ +} + +FUNCTION {format.article.title} +{ title duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + "t" change.case$ + } + if$ + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { quote.close 'this.status.quote := + is.last.char.not.punct + { punct.std 'this.status.punct := } + { punct.no 'this.status.punct := } + if$ + select.language + "``" swap$ * + cap.status.std + } + if$ +} + +FUNCTION {format.article.title.electronic} +{ title duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + "t" change.case$ + } + if$ + "title" bibinfo.check + duplicate$ empty$ + { skip$ } + { select.language } + if$ +} + +FUNCTION {format.book.title.edition} +{ title "title" bibinfo.check + duplicate$ empty$ + { "empty title in " cite$ * warning$ } + { this.to.prev.status + this.status.std + select.language + emphasize + edition empty$ 'skip$ + { ", " * + edition + convert.edition + status.cap + { "t" } + { "l" } + if$ + change.case$ + * "~" * bbl.edition * + } + if$ + cap.status.std + } + if$ +} + +FUNCTION {format.book.title} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + select.language + emphasize + } + if$ +} + + + +%% journal + +FUNCTION {format.journal} +{ journal duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + select.language + emphasize + } + if$ +} + + + +%% how published + +FUNCTION {format.howpublished} +{ howpublished duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% institutions/organization/publishers/school + +FUNCTION {format.institution} +{ institution duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + +FUNCTION {format.organization} +{ organization duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + +FUNCTION {format.address.publisher.date} +{ publisher "publisher" bibinfo.warn format.address.org.or.pub.date } + +FUNCTION {format.address.publisher.date.nowarn} +{ publisher "publisher" bibinfo.check format.address.org.or.pub.date } + +FUNCTION {format.address.organization.date} +{ organization "organization" bibinfo.check format.address.org.or.pub.date } + +FUNCTION {format.school} +{ school duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% volume/number/series/chapter/pages + +FUNCTION {format.volume} +{ volume empty.field.to.null.string + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + bbl.volume + status.cap + { capitalize } + { skip$ } + if$ + swap$ tie.or.space.prefix + "volume" bibinfo.check + * * + cap.status.std + } + if$ +} + +FUNCTION {format.number} +{ number empty.field.to.null.string + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + status.cap + { bbl.number capitalize } + { bbl.number } + if$ + swap$ tie.or.space.prefix + "number" bibinfo.check + * * + cap.status.std + } + if$ +} + +FUNCTION {format.number.if.use.for.article} +{ is.use.number.for.article + { format.number } + { "" } + if$ +} + +% The IEEE does not seem to tie the series so closely with the volume +% and number as is done in other bibliography styles. Instead the +% series is treated somewhat like an extension of the title. +FUNCTION {format.series} +{ series empty$ + { "" } + { this.to.prev.status + this.status.std + bbl.series " " * + series "series" bibinfo.check * + cap.status.std + } + if$ +} + + +FUNCTION {format.chapter} +{ chapter empty$ + { "" } + { this.to.prev.status + this.status.std + type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + cap.status.std + } + if$ +} + + +% The intended use of format.paper is for paper numbers of inproceedings. +% The paper type can be overridden via the type field. +% We allow the type to be displayed even if the paper number is absent +% for things like "postdeadline paper" +FUNCTION {format.paper} +{ is.use.paper + { paper empty$ + { type empty$ + { "" } + { this.to.prev.status + this.status.std + type "type" bibinfo.check + cap.status.std + } + if$ + } + { this.to.prev.status + this.status.std + type empty$ + { bbl.paper } + { type "type" bibinfo.check } + if$ + " " * paper + "paper" bibinfo.check + * + cap.status.std + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + duplicate$ is.multiple.pages + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + cap.status.std + } + if$ +} + + + +%% technical report number + +FUNCTION {format.tech.report.number} +{ number "number" bibinfo.check + this.to.prev.status + this.status.std + cap.status.std + type duplicate$ empty$ + { pop$ + bbl.techrep + } + { skip$ } + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ } + { tie.or.space.prefix * * } + if$ +} + + + +%% note + +FUNCTION {format.note} +{ note empty$ + { "" } + { this.to.prev.status + this.status.std + punct.period 'this.status.punct := + note #1 #1 substring$ + duplicate$ "{" = + { skip$ } + { status.cap + { "u" } + { "l" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + cap.yes 'status.cap := + } + if$ +} + + + +%% patent + +FUNCTION {format.patent.date} +{ this.to.prev.status + this.status.std + year empty$ + { monthfiled duplicate$ empty$ + { "monthfiled" bibinfo.check pop$ "" } + { "monthfiled" bibinfo.check } + if$ + dayfiled duplicate$ empty$ + { "dayfiled" bibinfo.check pop$ "" * } + { "dayfiled" bibinfo.check + monthfiled empty$ + { "dayfiled without a monthfiled in " cite$ * warning$ + * + } + { " " swap$ * * } + if$ + } + if$ + yearfiled empty$ + { "no year or yearfiled in " cite$ * warning$ } + { yearfiled "yearfiled" bibinfo.check + swap$ + duplicate$ empty$ + { pop$ } + { ", " * swap$ * } + if$ + } + if$ + } + { month duplicate$ empty$ + { "month" bibinfo.check pop$ "" } + { "month" bibinfo.check } + if$ + day duplicate$ empty$ + { "day" bibinfo.check pop$ "" * } + { "day" bibinfo.check + month empty$ + { "day without a month in " cite$ * warning$ + * + } + { " " swap$ * * } + if$ + } + if$ + year "year" bibinfo.check + swap$ + duplicate$ empty$ + { pop$ } + { ", " * swap$ * } + if$ + } + if$ + cap.status.std +} + +FUNCTION {format.patent.nationality.type.number} +{ this.to.prev.status + this.status.std + nationality duplicate$ empty$ + { "nationality" bibinfo.warn pop$ "" } + { "nationality" bibinfo.check + duplicate$ "l" change.case$ "united states" = + { pop$ bbl.patentUS } + { skip$ } + if$ + " " * + } + if$ + type empty$ + { bbl.patent "type" bibinfo.check } + { type "type" bibinfo.check } + if$ + * + number duplicate$ empty$ + { "number" bibinfo.warn pop$ } + { "number" bibinfo.check + large.number.separate + swap$ " " * swap$ * + } + if$ + cap.status.std +} + + + +%% standard + +FUNCTION {format.organization.institution.standard.type.number} +{ this.to.prev.status + this.status.std + organization duplicate$ empty$ + { pop$ + institution duplicate$ empty$ + { "institution" bibinfo.warn } + { "institution" bibinfo.warn " " * } + if$ + } + { "organization" bibinfo.warn " " * } + if$ + type empty$ + { bbl.standard "type" bibinfo.check } + { type "type" bibinfo.check } + if$ + * + number duplicate$ empty$ + { "number" bibinfo.check pop$ } + { "number" bibinfo.check + large.number.separate + swap$ " " * swap$ * + } + if$ + cap.status.std +} + +FUNCTION {format.revision} +{ revision empty$ + { "" } + { this.to.prev.status + this.status.std + bbl.revision + revision tie.or.space.prefix + "revision" bibinfo.check + * * + cap.status.std + } + if$ +} + + +%% thesis + +FUNCTION {format.master.thesis.type} +{ this.to.prev.status + this.status.std + type empty$ + { + bbl.mthesis + } + { + type "type" bibinfo.check + } + if$ +cap.status.std +} + +FUNCTION {format.phd.thesis.type} +{ this.to.prev.status + this.status.std + type empty$ + { + bbl.phdthesis + } + { + type "type" bibinfo.check + } + if$ +cap.status.std +} + + + +%% URL + +FUNCTION {format.url} +{ is.use.url + { url empty$ + { "" } + { this.to.prev.status + this.status.std + cap.yes 'status.cap := + name.url.prefix " " * + "\url{" * url * "}" * + punct.no 'this.status.punct := + punct.period 'prev.status.punct := + space.normal 'this.status.space := + space.normal 'prev.status.space := + quote.no 'this.status.quote := + } + if$ + } + { "" } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%% +%% ENTRY HANDLERS %% +%%%%%%%%%%%%%%%%%%%% + + +% Note: In many journals, the IEEE (or the authors) tend not to show the number +% for articles, so the display of the number is controlled here by the +% switch "is.use.number.for.article" +FUNCTION {article} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.journal "journal" bibinfo.check "journal" output.warn + format.volume output + format.number.if.use.for.article output + format.pages output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {book} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + author empty$ + { format.editors "author and editor" output.warn } + { format.authors output.nonnull } + if$ + name.or.dash + format.book.title.edition output + format.series output + author empty$ + { skip$ } + { format.editors output } + if$ + format.address.publisher.date output + format.volume output + format.number output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {booklet} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {electronic} +{ std.status.using.period + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.date.electronic output + format.article.title.electronic output + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {inbook} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + author empty$ + { format.editors "author and editor" output.warn } + { format.authors output.nonnull } + if$ + name.or.dash + format.book.title.edition output + format.series output + format.address.publisher.date output + format.volume output + format.number output + format.chapter output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {incollection} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.in.booktitle.edition "booktitle" output.warn + format.series output + format.editors output + format.address.publisher.date.nowarn output + format.volume output + format.number output + format.chapter output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {inproceedings} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.in.booktitle "booktitle" output.warn + format.series output + format.editors output + format.volume output + format.number output + publisher empty$ + { format.address.organization.date output } + { format.organization "organization" bibinfo.check output + format.address.publisher.date output + } + if$ + format.paper output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {manual} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.book.title.edition "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {mastersthesis} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.master.thesis.type output.nonnull + format.school "school" bibinfo.warn output + format.address "address" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {misc} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title output + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.pages output + format.date output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {patent} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title output + format.patent.nationality.type.number output + format.patent.date output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {periodical} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.editors output + name.or.dash + format.book.title "title" output.warn + format.series output + format.volume output + format.number output + format.organization "organization" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {phdthesis} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.phd.thesis.type output.nonnull + format.school "school" bibinfo.warn output + format.address "address" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {proceedings} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.editors output + name.or.dash + format.book.title "title" output.warn + format.series output + format.volume output + format.number output + publisher empty$ + { format.address.organization.date output } + { format.organization "organization" bibinfo.check output + format.address.publisher.date output + } + if$ + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {standard} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.book.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization.institution.standard.type.number output + format.revision output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {techreport} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.institution "institution" bibinfo.warn output + format.address "address" bibinfo.check output + format.tech.report.number output.nonnull + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {unpublished} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.date output + format.note "note" output.warn + format.url output + fin.entry + if.url.std.interword.spacing +} + + +% The special entry type which provides the user interface to the +% BST controls +FUNCTION {IEEEtranBSTCTL} +{ is.print.banners.to.terminal + { "** IEEEtran BST control entry " quote$ * cite$ * quote$ * " detected." * + top$ + } + { skip$ } + if$ + CTLuse_article_number + empty$ + { skip$ } + { CTLuse_article_number + yes.no.to.int + 'is.use.number.for.article := + } + if$ + CTLuse_paper + empty$ + { skip$ } + { CTLuse_paper + yes.no.to.int + 'is.use.paper := + } + if$ + CTLuse_url + empty$ + { skip$ } + { CTLuse_url + yes.no.to.int + 'is.use.url := + } + if$ + CTLuse_forced_etal + empty$ + { skip$ } + { CTLuse_forced_etal + yes.no.to.int + 'is.forced.et.al := + } + if$ + CTLmax_names_forced_etal + empty$ + { skip$ } + { CTLmax_names_forced_etal + string.to.integer + 'max.num.names.before.forced.et.al := + } + if$ + CTLnames_show_etal + empty$ + { skip$ } + { CTLnames_show_etal + string.to.integer + 'num.names.shown.with.forced.et.al := + } + if$ + CTLuse_alt_spacing + empty$ + { skip$ } + { CTLuse_alt_spacing + yes.no.to.int + 'is.use.alt.interword.spacing := + } + if$ + CTLalt_stretch_factor + empty$ + { skip$ } + { CTLalt_stretch_factor + 'ALTinterwordstretchfactor := + "\renewcommand{\BIBentryALTinterwordstretchfactor}{" + ALTinterwordstretchfactor * "}" * + write$ newline$ + } + if$ + CTLdash_repeated_names + empty$ + { skip$ } + { CTLdash_repeated_names + yes.no.to.int + 'is.dash.repeated.names := + } + if$ + CTLname_format_string + empty$ + { skip$ } + { CTLname_format_string + 'name.format.string := + } + if$ + CTLname_latex_cmd + empty$ + { skip$ } + { CTLname_latex_cmd + 'name.latex.cmd := + } + if$ + CTLname_url_prefix + missing$ + { skip$ } + { CTLname_url_prefix + 'name.url.prefix := + } + if$ + + + num.names.shown.with.forced.et.al max.num.names.before.forced.et.al > + { "CTLnames_show_etal cannot be greater than CTLmax_names_forced_etal in " cite$ * warning$ + max.num.names.before.forced.et.al 'num.names.shown.with.forced.et.al := + } + { skip$ } + if$ +} + + +%%%%%%%%%%%%%%%%%%% +%% ENTRY ALIASES %% +%%%%%%%%%%%%%%%%%%% +FUNCTION {conference}{inproceedings} +FUNCTION {online}{electronic} +FUNCTION {internet}{electronic} +FUNCTION {webpage}{electronic} +FUNCTION {www}{electronic} +FUNCTION {default.type}{misc} + + + +%%%%%%%%%%%%%%%%%% +%% MAIN PROGRAM %% +%%%%%%%%%%%%%%%%%% + +READ + +EXECUTE {initialize.controls} +EXECUTE {initialize.status.constants} +EXECUTE {banner.message} + + + +% BEGIN sort code based on that of plain.bst + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + { s } + if$ +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + { skip$ } + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + bbl.a " " * #2 + bbl.an " " * #3 + bbl.the " " * #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ "" } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ "" } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ "" } + { key sortify } + if$ + } + { bbl.the " " * #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ "" } + { key sortify } + if$ + } + { bbl.the " " * #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {author.organization.institution.sort} +{ author empty$ + { organization empty$ + { institution empty$ + { key empty$ + { "to sort, need author, organization, institution or key in " cite$ * warning$ "" } + { key sortify } + if$ + } + { bbl.the " " * #4 institution chop.word sortify } + if$ + } + { bbl.the " " * #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + + +% END sort code based on that of plain.bst + + + +% alpha.bst code +STRINGS { last.sort.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { bbl.the " " * #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.institution.label} +{ author empty$ + { key empty$ + { organization empty$ + { institution empty$ + { cite$ #1 #3 substring$ } + { bbl.the " " * #4 institution chop.word #3 text.prefix$ } + if$ + } + { bbl.the " " * #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { bbl.the " " * #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + { author.editor.key.label } + { type$ "proceedings" = + type$ "periodical" = + or + { editor.key.organization.label } + { type$ "manual" = + type$ "electronic" = + type$ "misc" = + or or + { author.key.organization.label } + { type$ "standard" = + { author.key.organization.institution.label } + { author.key.label } + if$ + } + if$ + } + if$ + } + if$ + duplicate$ + type$ "patent" = + { year empty$ + { yearfiled } + { year } + if$ + } + { year } + if$ + empty.field.to.null.string purify$ #-1 #2 substring$ + * + 'label := + type$ "patent" = + { year empty$ + { yearfiled } + { year } + if$ + } + { year } + if$ + empty.field.to.null.string purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + + +FUNCTION {presort} +{ type$ "ieeetranbstctl" = + { key empty$ + { "_" } + { key sortify } + if$ + } + { calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + { author.editor.sort } + { type$ "proceedings" = + type$ "periodical" = + or + { editor.organization.sort } + { type$ "manual" = + type$ "electronic" = + type$ "misc" = + or or + { author.organization.sort } + { type$ "standard" = + { author.organization.institution.sort } + { author.sort } + if$ + } + if$ + } + if$ + } + if$ + * + " " + * + type$ "patent" = + { year empty$ + { yearfiled } + { year } + if$ + } + { year } + if$ + empty.field.to.null.string sortify + * + " " + * + title empty.field.to.null.string + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ type$ "ieeetranbstctl" = + { skip$ } + { last.sort.label sort.label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + sort.label 'last.sort.label := + } + if$ + } + if$ +} + +FUNCTION {reverse.pass} +{ type$ "ieeetranbstctl" = + { skip$ } + { next.extra "b" = + { "a" 'extra.label := } + { skip$ } + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + { skip$ } + if$ + extra.label 'next.extra := + } + if$ +} + +% End alpha.bst code + + +ITERATE {presort} + +SORT + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} +REVERSE {reverse.pass} + +EXECUTE {begin.bib} +ITERATE {call.type$} +EXECUTE {end.bib} + +EXECUTE{completed.message} + + +%% That's all folks, mds. diff --git a/latex/cel-thesis/cel-thesis.cls b/latex/cel-thesis/cel-thesis.cls new file mode 100644 index 0000000..0da03b0 --- /dev/null +++ b/latex/cel-thesis/cel-thesis.cls @@ -0,0 +1,182 @@ +% Author: Johannes Demel +% This file requires quite a few texlive packages. +% texlive-lang-german / texlive-lang-european +% texlive-science + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{cel-thesis/cel-thesis} +\LoadClass[11pt, % 11pt + titlepage, + twoside, % Doppelseitige Ausgabe + a4paper, % DIN A4 + openright, % Neue Kapitel auf rechter Seite +% draft, % Overfull H-Boxen markieren + final, % Engueltige Version mit Bildern +]{scrreprt} +\areaset[8mm]{150mm}{225mm} +\RedeclareSectionCommand[ +beforeskip=0pt, +]{chapter} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% variables +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% new commands +\newcommand{\thesisTitle}[1]{\def \theThesisTitle{#1}} +\newcommand{\thesisType}[1]{\def \theThesisType{#1}} +\newcommand{\thesisAuthor}[1]{\def \theThesisAuthor{#1}} +\newcommand{\thesisAdvisor}[1]{\def \theThesisAdvisor{#1}} +\newcommand{\thesisSupervisor}[1]{\def \theThesisSupervisor{#1}} +\newcommand{\thesisHeadOfInstitute}[1]{\def \theThesisHeadOfInstitute{#1}} +\newcommand{\thesisStartDate}[1]{\def \theThesisStartDate{#1}} +\newcommand{\thesisEndDate}[1]{\def \theThesisEndDate{#1}} +\newcommand{\thesisSignatureDate}[1]{\def \theThesisSignatureDate{#1}} +\newcommand{\thesisLanguage}[1]{\def \theThesisLanguage{#1}} +\newcommand{\thesisCC}[1]{\def \theThesisCC{#1}} +\newcommand{\thesisPythonWatermark}[1]{\def \theThesisPythonWatermark{#1}} +% Defaults +\thesisTitle{Random Thesis Title} +\thesisType{Master Thesis Type} +\thesisAuthor{John Doe} +\thesisAdvisor{Dr.-Ing. Holger J\"akel} +\thesisHeadOfInstitute{Prof. Dr.-Ing. Laurent Schmalen} +\thesisSupervisor{Super-Assi Deluxe M.Sc.} +\thesisStartDate{dd.mm.yyyy} +\thesisEndDate{dd.mm.yyyy} +\thesisSignatureDate{dd.mm.yyyy} +\thesisLanguage{english} +\thesisCC{FALSE} +\thesisPythonWatermark{FALSE} + +\def\dictThesisLanguageGerman{ngerman} +\def\dictThesisLanguageEnglish{english} +\def\dictThesisFALSE{FALSE} +\def\dictThesisTRUE{TRUE} + + +% General %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage[T1]{fontenc} % encoding for target files. +\usepackage[utf8]{inputenc} % UTF-8 encoding for source files +\usepackage{lmodern} + +\usepackage{microtype} +\usepackage[printonlyused]{acronym} % use this package for abbreviations! +\def\setlanguage{ + \usepackage[\theThesisLanguage]{babel} + \ifx\theThesisLanguage\dictThesisLanguageEnglish + %\bibliographystyle{alpha} % American Style + \bibliographystyle{cel-thesis/IEEEtranSA_own} % modified IEEE alpha style that allows underlining of own publications + \def\theUniversity{Karlsruhe Institute of Technology} + \sisetup{% + binary-units = true, + output-decimal-marker={.} + } + \else + %\bibliographystyle{alphadin} % DIN norm + \bibliographystyle{cel-thesis/IEEEtranSA_own} % modified IEEE alpha style that allows underlining of own publications + \def\theUniversity{Karlsruher Institut für Technologie} + \sisetup{% + binary-units = true, + output-decimal-marker={,} + } + \mathcode`,="013B % avoid space in comma decimal numbers + \fi +} + +% Math and Symbols %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage{amssymb, amsfonts, latexsym} +\usepackage{amsmath} +\usepackage[right]{eurosym} +\usepackage{siunitx} + +% make bibliography appear in table of contents %%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage[nottoc]{tocbibind} + +%% Define always missing math symbols. +\DeclareMathOperator*{\argmin}{\arg\!\min} +\DeclareMathOperator*{\argmax}{\arg\!\max} +\DeclareMathOperator\sign{sign} + + + +% Graphics %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Ueberschriften fett +%\setkomafont{sectioning}{\normalcolor\bfseries} +% Bild- und Tabellen-Unterschriften formatieren +\renewcommand{\caplabelfont}{\bfseries} +\renewcommand{\capfont}{\small} +\newcommand{\figref}[1]{\figurename~\ref{#1}} + +\usepackage{graphicx} +\usepackage{color} +\usepackage{pgf, tikz, pgfplots} +\usetikzlibrary{shapes,arrows} +\pgfplotsset{compat=1.9} + +% Layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{marginnote} +\RequirePackage{ifthen} +\RequirePackage[hidelinks, final=true]{hyperref} +\RequirePackage[ddmmyyyy]{datetime} +\renewcommand{\dateseparator}{.} +\RequirePackage[export]{adjustbox} + + +\setlength{\parskip}{5pt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Create titlepage and optional parts like a CC statement. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\header}{% + \begin{tabular*}{1.0\linewidth}[c]{lcr} + \includegraphics[height=18mm,valign=c]{cel-thesis/logos/kitlogo_de_rgb}% + &% + \begin{minipage}{8cm}\centering% + \textbf{\theUniversity}\\ + Communications Engineering Lab\\ + \theThesisHeadOfInstitute% + \end{minipage}% + &% + \includegraphics[height=18mm,valign=c]{cel-thesis/logos/cel_logo}% + \end{tabular*} +} +\newcommand{\ssection}[1]{\vspace*{0.8em}{\textbf{#1}}\\} + +\def\makestatutorydeclaration{ + \include{cel-thesis/eidesstattliche_erklaerung} +} + +\def\maketitle{ + \hypersetup{ + pdfauthor = \theThesisAuthor, + pdftitle = {\theThesisType{ }\theThesisTitle{ } \theThesisAuthor}, + pdfsubject = {Institut für Nachrichtentechnik (CEL)}, + } + \thispagestyle{empty} + \header % institute banner, etc. + \vspace*{5.0cm}% + % Title + \begin{center} + {\Large \textbf{\theThesisTitle}} \\[1cm] + {\large \theThesisType} \\[2.5cm] + {\textbf{\theThesisAuthor}}\\[5cm] + \begin{tabular}{lll} + \ifx\theThesisLanguage\dictThesisLanguageEnglish % default is german. But one may use english. + Advisor & : & \theThesisAdvisor \\ + Supervisor & : & \theThesisSupervisor\\[2cm] + Start date & : & \theThesisStartDate \\ + End date & : & \theThesisEndDate \\ + \else + Hauptreferent & : & \theThesisAdvisor \\ + Betreuer & : & \theThesisSupervisor\\[2cm] + Beginn & : & \theThesisStartDate \\ + Abgabe & : & \theThesisEndDate \\ + \fi + \end{tabular} + + \end{center} + \hspace*{\fill} + \newpage + \makestatutorydeclaration +} + diff --git a/latex/cel-thesis/eidesstattliche_erklaerung.tex b/latex/cel-thesis/eidesstattliche_erklaerung.tex new file mode 100644 index 0000000..322a4e7 --- /dev/null +++ b/latex/cel-thesis/eidesstattliche_erklaerung.tex @@ -0,0 +1,60 @@ +\ifx\theThesisLanguage\dictThesisLanguageEnglish + +\chapter*{Declaration} + +With this statement I declare that I have independently completed the above +master's thesis. The thoughts taken directly or indirectly from external +sources are properly marked as such. This thesis was not previously submitted +to another academic institution and has also not yet been published. + +\vspace{2cm} +\begin{tabbing} +\hspace{3em}\= \kill +\>Karlsruhe, \theThesisSignatureDate +\end{tabbing} + +\vspace{2cm} +\begin{tabbing} +\hspace{3em}\= \kill +\>\theThesisAuthor\\[1ex] +%\>Amalienstra{\ss}e 79\\ +%\>76133 Karlsruhe\\[1ex] +\end{tabbing} + +\else + +\chapter*{Erkl{\"a}rung} + +%Ich versichere hiermit, dass ich meine Masterarbeit selbständig und unter Beachtung der Satzung der Universität Karlsruhe (TH) zur Sicherung guter wissenschaftlicher Praxis in der aktuellen Fassung angefertigt habe. Ich habe keine anderen als die angegebenen Quellen und Hilfsmittel benutzt und wörtlich oder inhaltlich übernommene Stellen als solche kenntlich gemacht. + +Ich versichere hiermit, +dass ich die vorliegende Arbeit selbstst{\"a}ndig +und unter Beachtung der Satzung des Karlsruher Instituts f\"ur Technologie (KIT) +zur Sicherung guter wissen\-schaft\-licher Praxis in der aktuellen Fassung angefertigt habe. +Ich habe keine anderen als die angegebenen Quellen und Hilfsmittel benutzt und w{\"o}rtlich oder inhaltlich {\"u}bernommene Stellen als solche kenntlich gemacht. + +\vspace{2cm} +\begin{tabbing} +\hspace{3em}\= \kill +\>Karlsruhe, den \theThesisSignatureDate +\end{tabbing} + +\vspace{2cm} +\begin{tabbing} +\hspace{3em}\= \kill +\>\theThesisAuthor\\[1ex] +%\>Amalienstra{\ss}e 79\\ +%\>76133 Karlsruhe\\[1ex] +\end{tabbing} + +\fi + +\ifx\theThesisCC\dictThesisTRUE +\newpage +\begin{center} + \includegraphics[width=25mm,valign=c]{cel-thesis/logos/cc-by-nc} +\end{center} + +\vspace{1cm} +This work is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/4.0/. +\fi diff --git a/latex/cel-thesis/logos/cc-by-nc.png b/latex/cel-thesis/logos/cc-by-nc.png new file mode 100644 index 0000000000000000000000000000000000000000..25e284099a07df1ba95e4140fbfe7a8d1740fdc5 GIT binary patch literal 17637 zcmYLR1yEIMv_?f~B&16~knS#}JEgmk2I&$6q(eGHL_|`$JETEC6iI0br5mZY&V4iQ z?HR9LhO^H;d;kAhU#%0VrXq`lPKu6%goGt8C#8XebSnw|9gBJo{`;anO$`1*c9W3T zM1{j2)iMJ9AI(Kh&kYHQjRo=N7PftY1N@N0U0T=unX|RKm)Q#|Brh*7Hd`lqHw!Zt zD>mmBHg9)CNRf~pBFRgMYkFsGzw^?4phFZMIKI4B zgl@;8OIueMNnr8$TVcclKUw5YjD%9+cPrJC=Z9Vf?ukDa7H$^CXdY@At&Zn%8!`(L zJk9n)59u-gAclF*0yD@JiRBjYoj13!;7~Rw!0g~g;za7wW%)VrkDsJ=FtpRu9cd3G zsEC!78u2T!{rmTk?h{5IQ=GMPoww8Y+|KbUiIS0ogI2*G$#l@XvTc$nsT#@9ZkLIH zp<}QY{Z~!X$AD(f(#Q1woj^@ZT`%&e=6*z6l#IBz_?5v;l`f0UJtPz)>RO#xUy{yQ zFUDl8WCML|Qp7?1nEx?R^Q9LJBWKaIl`I;Pgc~A|R?_i6DhSvNOt-$oY~Gchnu`klZlG|J9-4#aXl5bI}*jkyH%m{Xs7a4nlJ<4}>s z$5V}~Yiad-*F{H1-}qk6KFl&~YUhM5O(z}oiQq|F;6>coly`SeH}!sxV)BEuJsy>2 z&+ReE0+eBvucp>!_Z;6*nsN|7P@MI&bsNm9sd?bj=+po8tF*C7>%`X^om5`tuPvDb zD%-^}(j*EBQED36Wd_>}%*>OYJy(Bkn8Dy8DE$N znO%6dn7V=`6W%5<@14JBTVFhhooxtM;hU+oN3kcfSIS-s9x)Qa@ON?zy_Lg;a@8Vz z$YDO*ul*oA5FR1UA;Z1YcCjGHaMx*PI*0GX}-~KmcA+! zIfC5v>aC9R!^Njhe@&WyP%17iMm*_=3*3n4IB6drANy#{@Um>SdzhpVRQIls;Leq@ zVk^@sL@DCnJ&37LG-GYsTa@B2-ANY;Kp!q;5#T3OU$$6r{dZ=YR}k>rQJwT59o=2O zzDk#W-_WY6s!Cbo)M&H^^IBTS>z(Iho~xl&RaY4pkV~X1(K~EAEFFF1ZnE=qbab5& zfyZj^DIBE#f%0h1#->Q7PPTD$ zLoZ* )qEM3BX%M9NWgRO_B(1S+!|F;!C~0` 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 literal 0 HcmV?d00001 diff --git a/latex/cel-thesis/logos/cel_logo.pdf b/latex/cel-thesis/logos/cel_logo.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a3027f07051915a1ddf13d91a68e8aa8b98c8b60 GIT binary patch literal 9969 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 CLPqHT literal 0 HcmV?d00001 diff --git a/latex/cel-thesis/logos/kitlogo_de_rgb.pdf b/latex/cel-thesis/logos/kitlogo_de_rgb.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ce3179776b2ad102c169c80d0e4fa395eb9c468c GIT binary patch literal 11304 zcma*NWmp`|x;2cu2KPaO1Q^`if;$YZgX`e#?i$=3f(3%R6GCuzcL)|BKwk3fv-jEG z`SsP+*WF#K`u6Jj(~DL`Qkt2Kg%gFg`MmZw3I_lPa5S|+5flWlDu5jwzhKxL*DLoCaz#fu$iMd7)4kZ#l;l@HnB(X%*i#7jkoJ?$g#!aRG(-->3hUh&H;~=ufiCc47#4z3Lq7`F)@KBk8&G z^&ZojX#0>>{_CIDU86rOo9A_P4IcKOt)w55WT<)v+B!E}9ZBWM5ch_jGNFw)eWTBc zHBw~fTs`*;tl8ImyLT^7&ni!kcU2-kDMEgq&VSPuu3PV37}Vv-KB%cP7)51H!C82% z+Nyt?cY#+ugFpUt81UMgas6j_x+kL1j{e-<{@go%w~srnnFTgZqE_*@Z=9}Cv0tvB z(Q3HvpOWtZ0<9w5fBv-Z2Y@tpD+~0c%X#VCNEceiAWi5gmhOj`1Nto?Ie0lR}*hGW7!Zq6$qrM`D@bsq6|;sK|m zw7p%a_OL<$BddSHDO%9iGdc*+)TTD7BNl}b%6|3)@s$NhvlEd@2RgXq`?^(2uh$g| zd}*lp`Ng?rJ@Y&P?6hLYK1EQA{<|m0j+MhW<$>F4G!r$i&cHMO^VDM&YKsZsW_UPr zQ=!56Wu7ybh=-VC#W+QFlG{^nTOwn$;ZlRdcDMu5mk-`bSw*metmLgd2<*y@gnqSm z(a#u`+x#_CiyH95^me>-7mQlXv-q-AZ=eTYKVd@mAsF$z68MUAk>%2ZP}=7_qdbdV z0N=+xNi%)Y>z9a(tidr(*vLbafu6rUblKEKR7G>7(`hbf_D$t_8xIZBHguga7M|oi zIjq^09FguyB_fBTzV~?KFDKNgU#B5n1N)*&Ybw^+?1HPz(Fek}o~~*KxnH7ifw2l8{(0rG z=*LW8xS~&M7HOSu9oB}9m=zl*hvgoE4BZ{^D=TsAnfF(p!!u!&)AQ_#K%7U=?^pwY z;YEhL*@KI`;VQt*mI8`)nVY(Qw=gI(9M1^U3K#G+~So&a|wOttGb zeQhcRq!v1=!S0@Jqv=Kf**gDhHIWGZ-lHWc`w`d>KfE^o`1mnAKvhc=H?trwgBl(E z`MBd_h5GGMFmZjRI6b)2F6}c3rihsU+v9KprXq{1!E^VG!a%{z-YYSd?b6E@g%tsN z7D$@C&YnfY4k3G;5|&Ijd}y2Ghx_erMKWEzC-J_Pac|hNlLwCj3`s@%6)jmZ?gFYPb>X*b5(fDQ>~tt)G2&y#lnfeWh@eFCQ5!h=wHMUC69miOtGkpP zhKeB(O&V62y^Yq;T1f!Zbm;l=sX9eU2k>HI7ASaG2!!iyE4|5ySCk}0T9qThgv~mj zfxq8Ky&HNBALI%WW+1?apIB=@$JQ3o4%k@etouCBBX1fh z&X{gmL0r~>m_A1kjGA0vFL zF%5b6#PQXl`O-`wEvB_9VR1O5#qK*T{wk8{qJdrhO_vryU64l1nxlkWQ%Ibv&&S@R zCoB$?m59AE6sRySvycWwl8~=nwCb)b>U1%@=yWa7Tgtr>K8Q+~JRReb*C+=J zoah*uETl>18>?HB!l+uG#L$ccI=GioJm39sOy!*?TG%S$4K7fgzb{W@>wK1u>|{F zxK7B{q)WUo#$ylHEI9SS_wh0C8RjjRCeg^xS+a)eoJamn;!?#S_&Iz8*_t z$|{g}aHll{#r=dO8V${%aJ*|||Hx#6D45B504~aI`5wZQ=s}Jm@L<C5G|B!d+#! z$Ef6Y+9{w^QbzfuHkI1>81|i6fX@oVd#DotI*NFQJKMnzFUgnCUzxk}WSBy8rq72W z&?)HLV4OBEyT#RdoUMg=e*>Kc=2$h9sj+fFHQQCEojI;Z)56tK;+YiGClfWkm4dYq zESP@R4y+sgr11NGFCL0FB6{=^PDb%5i11_a<05d_w|4^ARv$;ao`9UTPc@o8Si)7l zyyl3-s(mhXO&lqrf1r^q6}-xk8w<}GBm+k$2sP;ulNYan`+(5^w-N~=Ou>>h0Y25K&dot+NWQO!rfpDtDt z<6X|YRiA{of`?;U*OkXlS!!v^13b^7j)~BNpri0R@>9bnN$2I6t1;GW3W55JINB#qg$_*3+nXnNMNMY@9uxTaUFnL5_izI! z5PGIjs58%&;HqbrmS8lu6@Fu1SYyUdE@iwwTD4TZ>ASw6cMWS-Vpg&3`dW!%a@# z|M4|+K;q&nF+nmBj^voavWZUlI767R_+e*_^IebDs=GW=om0~LHouR!I^tZuR%e8X zIruFfC~HO_5=b%B@A}^LQ_YwW;GLMk&5uAqzCOTjq7@*#Og)G9U;&v@6WTW^&-M@* zYM>G+q1!*pv(pr+F)lSLp3F=xg+hN+UUhLAFGz#Vav*{45L9;hzNccxVLaQPxGlW> zP9oVYfw_6RkQT0-IA{4Du3Xm=fZs7=ICH$nnFU55?jt8PJq*bW3R|$QaOV%Nt zOy6CVD?&peZV}3~NfKYp0-<|a0*VAyY(EJBJQ0A}-&R2Wv)6vA%PuP++_TePv!y)c;v7P>6w{D2vC8y@8Ni6Si%DcvLaQZpJiZ;*#AG)s=Yw&c1MJZlPhCMTUMEX#L z`HtwP6b@{-Rb_veSbr6}r$AXZtIKD?ppIv1S;b=Ugo5D8tJ=tLqiTmvB4@EbLW1tS zT!Q)-lDTLK?=TVg@jGskXUGDFrW1+t6CY=Mv*6pxPmY*tT1i(D}VJB$&|QY% z?E_BQPPSba<4dWk5bdk+yH+M@yT=D#HxKv$8^?=r75<0|lrj$Spm-^49D(t}^Tjg6 z-Q(KWF*vbSCbMLEh_>hw(ZzTMId@VAdzk=jsv?MY2I<;z?PKz&F;IM2B))&j<)StG z7O^GJuPjt8)Sd~^SlwjKUCGks=Yqb1;#y~yF<}%2n1(oTmxUU8D>ROG2%#SPT$xBT zV@@Mh&~6afq;Xw3C%e`%InK)J*4=&(xj|@6I_G+%w6wf&zpxLzD2HzBqduRY#V$Ln zT$)AQ?$$?R>Xl89+j1mR$0kN;tT;Mhc`_IZ4bUguDcU$;GG*V_-%gJl9!5_CJN>%B zsbvBnRw>d(DC$efw5rO!tnh0OYh?!;gCaA;933cG#yHrjuqCwx=Q%MqcL>sc5fCUZ znHe9;U)S0|;Ud{9GXj=^n}^K^$EIyqG0;wYCO?!!v0pFy?t>`rR*?_0bzA0V!g zRrT%*grL8@9KFccRsZ%?D6lSVrbx%npdw&@O=Q=d4bfI$t&v(txb4@C{V<*dy_94K zAXIMTt7YqgniK4(Pd{u*GXOyt-^9DEaTY=lkd3;-*t2Go#ff`h7B%BN>}M2K)>7J3 zBPd0yJ3vojx?uJw>xX@#R3o5@-X4Kg32o|IC4Tt$2g!fYI^!y#cX$i*%&U|jz5hjy zRUfd+YjBoRFoH!4lJl1IhBjJFG6bPajkk~3)dx{^1tL$JynQ2a{_pqD%hvO6`^5|8 z=bW~fvp2|LR%{;-Qw^aQ^hyXsEtGvBZj3J9@?M&*Tu}o9hyRA4W0bV+=-(R)ic3%RhC~cNGLUUL1r}2SX&(u z)lm)p@WWguWjqEycx(st6SFlMRdfQ`IDem^Y(Av>3Q=f4GhqA&Vwm4Pe_j`}D zOZ3AUwprriFjv-ogF$uX8Pw{w$EsTx;bBJT5&|^fWB4tMVG!`GFzNm43aqV2YTnQ( zIm+J93S*446&ma>N8_x48X@<Oklr=p}oUqm0_8Pqj@>T6U`W*m?tcC3_C zqlBP0e03IeuW$R!S<*Es0soJIM@{db96{=?z+W8tQuzq^>^~l$FS+)(!DIc77_g-3I+iJ(!e^=Z|4{d?@2#l5tB5hMfV}< zYd!dfkEjdY_4Xy({LTI)ZjTAM2j1xlk_>Rgq@+}qi`EMs@b{yj>{(UKMObLoI-XeRaIrx z*MP=Qr+$T&CaqDO+U;xX@`rr-Xs*iWIPb}=)onr_xl6y$3)w5z!cn)vPG4H)!wg@Z zBv;i&U)2&LA8wSToW^iimv&~;0VB4J@~O~vUxRWE9X$(<1)OS%zf7?{gt~i_L&WeF z!k4>AWX~QBP0`SmOxFIOmjCYEoK4q2m+8F#owHey8PY9$@7dDZyEOOa_rSEvYW(Hj z*MWF%x^Q^`J>r3R_A@EN*|V~^Bj62X8KwhH$=d~YSv?KXEnTBEBj1}UW^;>)zwl81 zUV*z-^2Ir;kZiyv<7aC?#xVPlr?C{Fl;jA5$1}_VwAt_UBM5Yz<$;c#+5cE!H|uN% z(@UBS#meV_L#kf9y9^hxs*oKhp@Z$TTD9Mmz2#{b^(N-2c>27!d&`y*(Cc#@)}XSv zr`Mqv`)|?ft$VCsBjNMV>(`g3srdgq2me6et%uK7Sj$9v9CC}ui*hMZAQf%PY~>(C zPEc4QGGvHXAl2ib!m%_y8yzG%y0h3pnSu^0 zG%`)EursEcEM#|5gH6%_#IW*7re;$I#EHrF3tR_i}c<7LW(OCNn?vNN-Xr6 z?dvPgPJ6hT?7Ajz(96SQi0 zr1t9`#SnHOpvvYtJPp>oR!8$i7^PN}EMOW3lKkS9kVEr=yA%EcA5Bd45o&b&GRDj= zq{Dyrb}~>vjz;rWc7nE+_jcXx?`Sn)w8Y-y?WG%&d122lVUev>@Fn(QY`oNEgX*6- zHb@{xIElLgl1K zK<|Vo)&zqOxl!TWKWnh-U-N`h`+E8Z@QUZ7)s@xnYf7?&sH&}#GmtICg$Fhg2aY;5 zk|3ROkw7)Tt#`!Gk&Kx0LgC469(ahi(kx??qG4h?+-rn7B;&)DO_ymkV}q&mlP9T0 zUH8>gRcp|Y0HO6+E$2<68R+N)JN~WcNlN2Wku_84{The`S9KlCgw}MFFl26?t zf}EcjSzZE7WO-9*p#y<>C*4v8rjC~r)rL86dN5WljVJ2XCmn9K;y6XtP(Hy;txpJ6 zf^0^joeV5gq3mmA9|NnX0~RF006?ZdjBmEaT27hsTO9GMoH41{@`v9ByJgI((CU$@M;In7E^L(q2lTn=$Wo&`m$>Rvl9sDBPzemd%6E`fAv@A>%D z{kiH~r10{&9FcD#__6q%y^xEqXWr~p-}kplq$OvOhRtM2iA81D*p6C-PK_&J+XZFXWOoKF|vp=6S%- ztHvT1BzQ`M?~Xdsy%x-j7p)3yj+N0gORjI=`g+JXqJ-1HNhH;GHkUg+k3%31-lq%t z(ov~Xze+>2@u0ma+ftlyF`AJ&}x|d(e0C$=}l@Q)@bh0Lv(XhN?rDA6&SCtID2E@C^ zJuaHbFWN~m8gorx+as^8@d;k7bRD0HGomOy>26>n*2a@fj6!?bK1YL2bLE<_d%Ofi zZ@gtu7P^vK&PC6Vm==?2J7Va#K65(pL%`{@HJOqZia>mUO)#VM9 zrAD85E0pJ|2{fP^_~_)St|Tm)*NrdBvsM;qUo{+WBb$RBv^6znRy=j^2trJi!!-4w zSYrv=$2%s@HLDJ*;}F&d(G#pIp2Mi5Q%F z^kKO?l=RaR+%kR|ra+G`p{Nr^tj$zCcPGtS0E0Lr45=|3meMPgfx=oA)`9~f)Foz= zGV&e*7`rZi^YKbi#m?s?{PtQ-kszUW5xZ z(;d_NnKaH^y}h%r6Ls-DTqWK8%OGYvg!O{UBw*LVtMNlJw5YCgWqD8ayzjK2a=W(B z9dJ5m$rtH8MF2;)r}SNm)}YZc)8xn&9MBU5Y4V)&p!=mbmcAcl*Aqkt9a40vAB10v ze83Kpu8Web1=|s*h?TWJBThx)yB;fb;pra@y0IwG_{{}5sR|}FN5#V=&V+ps)F!9` z^`#h|wOSsx1*rY<*1_LP=TJ=>LBgkYaYPPgsodt5vLt417Dji@EZ1sDgn5`^>~mF3 z{boWh6Udfwe8fj-Oe<|Vnt(4UgT*hd*VX2Ijl|`zVvDbdWmSRCHmK#dR zJZayz#d>}D5HbyK5IvKqJoa9Pw{pE!^}FuoNEv>tjaWn#K265RH~1g~4$kX9)h+q= zwO5YVAR2=W{_-rbn+AiIFAZ?@jlM*cUIorE2tn!IJM^jvi))c(5ngAjdchQ04oWfw z#q6Y4lr}TkaWi7Q(%*19@T{iZN!=M!2^tC`0T*wR=>Qc@^O(Y;^G#;c?;;!ukNoQ* zTH}kOf%PXyQA;}CKEC}*%C2J2k&C1-M=ngqs(>_BSPgvQS;f{=7-jHerhK(%v8l+C zuzooz#35&>llw9rdJ>Hg?l(lc7=^Kd5rd*+|K2ULuS_m} z+`$@wm8p@~ph)cTQmP)xD?9l zf*-fVRg&$z;jp2Kn~ow=4p9BrL5&PorUygoI~ganPA+g}83~`+=V?3@Gb>@S*QfgI zbWy1zISdvhcYHO<2Vu_+jAO%w=g$luXgW}DCzxZ|r*ucy*%-IvorPMLpP`@{&+Lp6 z_$&*)^?vZT1YddEHseK284tc+%z-7Cx1^i)Dbta@A;RftZ)@OJrKzeBM1Eo*yHe3! zw-)np_Kgnn+Qi!I0m2G$aQNTaWh%HZ8Ag!icF;hDaiL!%P4rJ#Kt7q{yQ8+sv&Y!H zTc_@e$P8Op2#IxyfD2Vytni@$oYZV52R(Y z*3GOhIL!&aqPaEx0S-ydrI4rSk59lMYl!2)={jEwc}q#6yW~t5QQm1g%Z=VG zHP~nXE)>iZt;_8QGQ)P~6QgBnxV9vfOk#}iwJ8~QCON%oy0OKN?*J(oDY(x=?VEMV zAN-s;6SjMVK2_EnyvOFf6mZXM$;fkZ9%Vn4(JE?6`wDY6q^4SUiaIae0VU1MoB+G4 zWXR7r3eSV$ly>dp7i7B5EpAkEF?2GAWa|mFd#D4r3q!y(}-k_Kc)2f}f z%~T%V1k1QiTR5z~(KMtsvA$1V*00Ms4$41B>jm`ZFdC4DesodMtJxmG_*mn!-1^N| z8$;Qj=o{y7*V=mDV)6QE+e_CvCi9Xxn#R!Pv}7O~!fGe3th#kgb*weFZlW06 zbv_DTbHR7KP^2Y&AvmujlJ2Gi^j_(mA1_xgPlI##^0o6{%wSI4hJM7BaOz_{?k1(l zhdC6opv9};S4)E%C9iD!Uo+hEP}CV(#LBO0nd_r6cFU$LNro`uwrufMV7__V){V&v zqAulYl=k0j90!s3rJEY<>bMe`)$E<$O_)nJgnb3iEn`Y&$fQ$K}Jmj49=8nwmW#sq_kP z2)V9=<)<;22QU79rYA85%kLJCo?eGs#=%4^c?F;fBUg(9tB6q9s*c^@sO)rIhcH0Rml<>t`L(Zb`}R7X~QT;>T2 z(>@j66CsrOW%zqG;t*A9+ZPHI@v=33Y@e{sCH_smV^^O^sgZCr%43H*w>4Ewr{|5z zocDh=G)E*8b=>c66f(%xQIOi%Z!}x09JKG`cZ-EC zC5k#lvAn-ALO9|X;)>#HW$BBgRhu@MI0hq}XS5dGNs~>b1QwN%MY;)|?R4|Xv)ocK zPSvKruxCZ=_=;$eRV+2byAi|Rw4Zv;sa~Ha?j6BhN~RoAQ+uSNWJe!)F;$zivSzBu zM?x1xo3~PPy2rM*RBkx@{x0|t=REEi!^PE*F;aCal>}VLCQcSO(v{@6se)WM)t)7+ zzoNk{oO`Y&HYQr`*bzaO(!FGH2U)eR^0;r0V0KWE}O5m^NY2P|9G5}d3NVjqHh~7u}+g{_%uwHr9-vz zG<*-TSY#o9JL@%P<|Cc{LGpf?-=?$vLkdg)mVG5aYfi=*DuX<6-pklCqnT51><=(A zn!*t?9)_0PcHG}ppgclY1yEwyNI@}CeERe9{RCb#c-JsI%^=0x$c8VH5Aq{J@O`$< zaKC%&%aaTzV%qPzC|+0DzJLtM(A}w?nSxUN2Q;}WeR!+b8mG-@V(>zr7#e=kj@2L| z48u%Ta*{>lj!p0ILeS-6IZ~Q^gNVQ^3V-c}-s}bDbc{Pi6or3}WWTpxQ#l?tS=UfD znMl8npKAsDEAMxZY_eX2+Z@AD7)YjL9kn5FN#p~Umj=QojVSoYWJlIP@l8|%Mb<%n zv{CP<@yd;<@8UJZlGf2FRaYV6fUT|B=Ox<}R4X{|Q*OiszCCur_?4vfIo@@N%Blf= z{`R@k`gq*TMU%p$a7+BYcG>pjo7W{_8Ouy>GJIltD-^Hk{^JY2FBqun%7RpcZlHJv zyamLzHwM>}rPp%?g{BD^(T-ubTewF;!v&0@P_-Z!Br}30Nwh$8q1%A=P3HJ*E(7O7 zgkSc9kmy^zC^0!S;T!aB@mqa7su_RZ(XzL0D^&g~O99o0ht2$YnU?=4{mZEo=)D5Y zfx!}k8|D`(p6T2Yh`>-xZALL7Nh8sOe7)!lM-kjN`Zl$hWnlZ8$JU$fD zwoZ_ntK0)~?=?&19v(>M<=}M2Pq19qIW0q%wA+F|F30^uwVr<+rDpa8iKzs$Z*uV~ zc;A`R!q87G7U8hTL6;)uV8{p4GPNg4^dv+jFjR<3#X5M_q z1@5_{b{3{ZX^6*2D~6V6oMU&OT{v$yqs1p|TBFLCE$Xa#QWL~uXK)YuWJ;FqFGahc z%G983N=C+ZmIjictyGO1BEuNlO#>O@r(;efT(1W(H3*kL!`+LN|AE=>*f2o>JDC3u zdGYP(FYWO!*YWTDjqS(=~Q_Z4uDm|%Lxo%RWY#y|6^0d1Oj$&eN+24+fos1 zZfzp&=n2q!gMa`wK5iB^9zGx^4}cHI!okMH4rBuu{G%%2=-~RM>jL=8-uxF;QwHMb z=Ja3D{ma=u=)VJ2e+vO(;^5-+*Rh$`zhQ|tToUYVZ3b485&sMRD-BjPu#2M`#0=~L z_*)FM|4Qm_$p7Yy{%=w)|AZ!QZSL}xz~8*p{u8a+-#q`z0QY|xka**gx;jDt^kyd3 z5JvzT3oi>dfZod0)rp_=t*mdDCB($Z%G%6@#Svo3!0?Y36^Ns`o7o#R_5Zil|F(qZ zznuRodI=L(6FW!Ce_4KOkIVlw<$rZNAz%v>Ab=MI_@4pb=HlYu0$2e4g|Pv7+4une ztO6YVgK=@ZZLq)NKiJzd+gow|KNuU3i|wuB{|Dm+zLn|!V7$El*B%=i5cpqyT_Gmc zc3{XqbY699Z}3~lfA^}IqoXU}Z{q*jEV2$3j)1>S_@}Ebt|k!Ie=>YC#?6L8ODm-; Hjq?8hRL0Y7 literal 0 HcmV?d00001 diff --git a/latex/cel-thesis/logos/watermark_thesis.pdf b/latex/cel-thesis/logos/watermark_thesis.pdf new file mode 100644 index 0000000000000000000000000000000000000000..594c4e13a8302554c39b21a07ddebd1406b70f6c GIT binary patch literal 15461 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 literal 0 HcmV?d00001 diff --git a/latex/chapters/abstract.tex b/latex/chapters/abstract.tex new file mode 100644 index 0000000..00e6b2b --- /dev/null +++ b/latex/chapters/abstract.tex @@ -0,0 +1,44 @@ +\chapter*{Abstract (Master Theses only)} +This is an abstract. It should be about half a page to a page in length. +It mostly serves as clarification for what to expect when reading the thesis: +What is your topic, what are the most striking results, what's the process of +getting these. +It is \emph{not} an introduction to the topic (that's what the introduction +chapter is for). Now, for a few lines of content: + +Polar codes are the first codes to asymptotically achieve channel capacity with low complexity encoders and decoders. +They were first introduced by Erdal Arikan in 2009 \cite{polar:arikan09}. +Channel coding has always been a challenging task because it draws a lot of resources, especially in software implementations. +Software Radio is getting more prominent because it offers several advantages among which are higher flexibility and better maintainability. +Future radio systems are aimed at being run on virtualized servers instead of dedicated hardware in base stations \cite{cloudran:2015}. +Polar codes may be a promising candidate for future radio systems if they can be implemented efficiently in software. + +In this thesis the theory behind polar codes and a polar code implementation in GNU Radio is presented. +This implementation is then evaluated regarding parameterization options and their impact on error correction performance. +The evaluation includes a comparison to state-of-the-art \ac{LDPC} codes. + +\begin{figure}[h] + \begin{subfigure}[t]{.49\textwidth} + \begin{center} + \def\dist{1.5} + \def\power{3} + \input{figures/polar_nbit_encoder_natural} + \caption{8 bit polar encoder} + \label{abs:polar_8bit_encoder_natural} + \end{center} + \end{subfigure}\,% + \begin{subfigure}[t]{.49\textwidth} + \begin{center} + \def\dist{1.5} + \def\power{3} + \input{figures/polar_nbit_decoder} + \caption{8 bit polar decoder} + \label{abs:polar_8bit_decoder} + \end{center} + \end{subfigure}% + \caption{Polar code encoding and decoding} + \label{abs:encoder-decoder} +\end{figure} + +The polar encoder is shown in Fig. \ref{abs:polar_8bit_encoder_natural}. + diff --git a/latex/chapters/conclusion.tex b/latex/chapters/conclusion.tex new file mode 100644 index 0000000..45b49de --- /dev/null +++ b/latex/chapters/conclusion.tex @@ -0,0 +1,10 @@ +\chapter{Conclusion}\label{chapter:conclusion} +So you made it! +This is the last part of your thesis. +Tell everyone what happened. +You did something... and you could show that ... followed. + +In the end make a personal statement. +Why would one consider this thesis to be useful? + + diff --git a/latex/chapters/introduction.tex b/latex/chapters/introduction.tex new file mode 100644 index 0000000..873fa63 --- /dev/null +++ b/latex/chapters/introduction.tex @@ -0,0 +1,27 @@ +\chapter{Introduction} +This is the introductory chapter. +It is usually a page or two. +Tell a story about the objectives, explain them briefly and outline the structure of your thesis. + +\section{Structuring Your Thesis} + +An example structure would be: +\begin{enumerate} +\item Introduction +\item Theoretical basis +\item Your work +\item Measurement results +\item Conclusion +\end{enumerate} + +This is just an example, choose a structure that fits the nature of your work. + +\section{References} +Citing references is always good. Plagiarizing, however, is strictly forbidden! + +\section{Images} +If possible use vector graphics. Only use pixel graphics for photos. TikZ is also an interesting option for creating all sorts of images. + +And don't forget \SI{10.0815}{\giga\byte} of data is quite a lot. +This is an example how to use the siunitx package. + diff --git a/latex/chapters/systemmodel.tex b/latex/chapters/systemmodel.tex new file mode 100644 index 0000000..6ab00f4 --- /dev/null +++ b/latex/chapters/systemmodel.tex @@ -0,0 +1,139 @@ +\acresetall +% This is an example chapter from 'Polar Codes for Software Radio'. Do not use it but delete it! It serves as an example! +% Titles should be in title case (https://en.wikipedia.org/wiki/Title_case) +\chapter{An Example Chapter}\label{chapter:systemmodel} +Polar codes are defined for a specific system model. +The objective of this chapter is to introduce the key concepts. +Notations are introduced and important terms are revisited in order to refer to them. + +\section{Key Channel Coding Concepts} +The system model used throughout this thesis follows the remarks in~\cite{Richardson:2008:MCT} and~\cite{polar:arikan09}. +It is intended to define the domain for which polar codes are developed. + +The objective of channel coding is to transmit information from a source to a sink over a point-to-point connection with as few errors as possible. +A source wants to transmit binary data $u \in \mathcal{U} = \{0, 1\}$ to a sink where $u$ represents one draw of a binary uniformly distributed random variable. +The source symbols are encoded, transmitted over a channel and decoded afterwards in order to pass an estimate $\hat{u}$ to a sink. + +This thesis uses a common notation for vectors which is introduced here shortly. +A variable $x$ may assume any value in an alphabet $\mathcal{X}$, i.e. $x \in \mathcal{X}$. +Multiple variables are combined into a (row) vector $\bm{x}^n = (x_0, \ldots x_{n-1})$ of size $n$ with $\bm{x}^n \in \mathcal{X}^n$. +A subvector of $\bm{x}^n$ is denoted $\bm{x}_i^j = (x_i, \ldots x_{j-1})$ where $0 \leq i \leq j \leq n$. +A vector where $i=j$ is an empty vector. +A vector $\bm{x}^n$ ($n$ even) may be split into even and odd subvectors which are denoted $\bm{x}_{0,\mathrm{e}}^{n} = (x_0, x_2, \ldots x_{n-2})$, $\bm{x}_{0,\mathrm{o}}^{n} = (x_1, x_3, \ldots x_{n-1})$. +This numbering convention is in accordance with~\cite{dijkstra:zerocounting}, where the author makes a strong point for this exact notation and some papers on polar codes follow it too, e.g.~\cite{polar:talvardy:howtoCC}. + + +\subsection{Encoder} +The encoder takes a frame $\bm{u}^k$ and maps it to a binary codeword $\bm{x}^n$, where $k$ and $n$ denote the vector sizes of a frame and a codeword respectively with $\bm{k} \leq n$. +An ensemble of all valid codewords for an encoder is a code $\mathcal{C}$. +It should be noted that $|\mathcal{C}| = |\mathcal{X}^n|$ must hold in order for the code to be able to represent every possible frame. + +Not all possible symbols from $\mathcal{X}^n$ are used for transmission. +The difference between all $2^n$ possible codewords and the $2^k$ used codewords is called redundancy. +With those two values, the code rate is defined as $r = \frac{k}{n}$. +It is a measure of efficient channel usage. + +The encoder is assumed to be linear and to perform a one-to-one mapping of frames to codewords. +A code is linear if $\alpha \bm{x} + \alpha^\prime \bm{x}^\prime \in \mathcal{C}$ for $\forall \bm{x}, \bm{x}^\prime \in \mathcal{C}$ and $\forall \alpha, \alpha^\prime \in \mathbb{F}$ hold. +It should be noted that all operations are done over the Galois field GF(2) or $\mathbb{F} = \{0, 1\}$ unless stated otherwise. +Then the expression can be simplified to +\begin{equation} + \bm{x} + \bm{x}^\prime \in \mathcal{C} \quad \textrm{for} \quad \forall \bm{x}, \bm{x}^\prime \in \mathcal{C}. +\end{equation} +A linear combination of two codewords must yield a codeword again. + +For linear codes it is possible to find a generator matrix $\bm{G} \in \mathbb{F}^{k \times n}$ and obtain a codeword from a frame with $\bm{x}^n = \bm{u}^k \bm{G}^{k \times n}$. +All linear codes can be transformed into systematic form with $\bm{G} = (\bm{I}_k\ \bm{P})$. Therein, $\bm{I}_k$ is the identity matrix of size $k \times k$. +If $\bm{G}$ is systematic, all elements of a frame $\bm{u}^k$ are also elements of the codeword $\bm{x}^n$. +Also, a parity check matrix $\bm{H} = (-\bm{P}^\top\ \bm{I}_{n-k})$ of size $\dim\bm{H} = (n-k) \times n$ can be obtained from the systematic $\bm{G}$. +The parity check matrix can be used to define the code, as $\bm{H} \bm{x}^\top = \bm{0}^\top$, $\forall \bm{x} \in \mathcal{C}$. +Thus, a parity check matrix can be used to verify correct codeword reception and furthermore error correction may be performed. + +A code can be characterized by the minimum distance between any two codewords. +In order to obtain this value we use the Hamming distance. +This distance $d(\bm{v}^n,\bm{x}^n)$ equals the number of positions in $\bm{v}^n$ that differ from $\bm{x}^n$. +The minimum distance of a code is than defined by $d(\mathcal{C}) = \min\{d(\bm{x},\bm{v}): \bm{x},\bm{v} \in \mathcal{C}, \bm{x} \neq \bm{v}\}$. +For linear codes, the minimum distance computation can be simplified by comparing all codewords to the zero codeword $d(\mathcal{C}) = \min\{d(\bm{x},0): \bm{x} \in \mathcal{C}, \bm{x} \neq \bm{0}\}$. + +\subsection{Channel Model}\label{sec:channel_model} +Channel coding relies on a generic channel model. +Its input is $x \in \mathcal{X}$ and its distorted output is $y \in \mathcal{Y}$. +A channel is denoted by $W: \mathcal{X} \rightarrow \mathcal{Y}$ along with its transition probability $W(y|x), x \in \mathcal{X}, y \in \mathcal{Y}$. +A \ac{DMC} does not have memory, thus every symbol transmission is independent from any other. +Combined with a binary input alphabet it is called a \ac{BDMC}. +For a symmetric channel, $P(y|1) = P(-y|-1)$ must hold for an output alphabet $y \in \mathcal{Y}, \mathcal{Y} \subset \mathbb{R}$~\cite{Richardson:2008:MCT}. +Assuming symmetry for a \ac{BDMC} leads to a symmetric \ac{BDMC}. +In Sec.~\ref{theory:channels}, several examples of such channels are discussed. + +This channel concept may be extended to vector channels. +A vector channel $W^n$ corresponds to $n$ independent uses of a channel $W$ which is denoted as $W^n : \mathcal{X}^n \rightarrow \mathcal{Y}^n$. +Also, vector transition probabilities are denoted $W^n(\bm{y}^n|\bm{x}^n) = \prod_{i=0}^{n-1} W(y_i|x_i)$. + +\subsection{Decoder} +A decoder receives a possibly erroneous codeword $\bm{y}$ and checks its validity by asserting $\bm{H} \bm{y}^\top = \bm{0}^\top$, thus performing error detection. +A more sophisticated decoder tries to correct errors by using redundant information transmitted in a codeword. +An optimal decoder strategy is to maximize the \emph{a posteriori} probability. +Given the probability of each codeword $P(\bm{x})$ and the channel transition probability $P(\bm{y}|\bm{x})$, the task at hand is to find the most likely transmitted codeword $\bm{x}$ under the observation $\bm{y}$, $P(\bm{x}|\bm{y})$. +This is denoted +\begin{equation} + \hat{\bm{x}}^{\text{MAP}} = \argmax_{\bm{x} \in \mathcal{C}} P(\bm{x}|\bm{y}) \stackrel{(i)}{=} \argmax_{\bm{x} \in \mathcal{C}} P(\bm{y}|\bm{x}) \frac{P(\bm{x})}{P(\bm{y})} \stackrel{(ii)}{=} \argmax_{\bm{x} \in \mathcal{C}} P(\bm{y}|\bm{x}) P(\bm{x}) +\end{equation} +where we have used Bayes' rule in $(i)$ and the simplification in $(ii)$ is due to the fact that $P(\bm{y})$ is constant and does not change when varying $\bm{x}$. + +Assume that every codeword is transmitted with identical probability $P(\bm{x}) = P(\bm{v})$, $\forall \bm{x}, \bm{v} \in \mathcal{C}$. +This simplifies the equation and yields the \ac{ML} decoder +\begin{equation} + \hat{\bm{x}}^{\text{ML}} = \argmax_{\bm{x} \in \mathcal{C}} P(\bm{y}|\bm{x}) +\end{equation} +which estimates the most likely codeword to be transmitted given a received possibly erroneous codeword~\cite{Richardson:2008:MCT}. +In conclusion, the task at hand is to find a code which inserts redundancy intelligently, so a decoder can use this information to detect and correct transmission errors. + +\subsection{Asymptotically Good Codes}\label{theory:repetition_code} +A repetition code is a very simple code which helps clarify certain key concepts in the channel coding domain. +Assume that the encoder and decoder use a repetition code. +For example, a repetition code with $k=1$ and $n = 3$ has two codewords $\mathcal{C} = \{(0,0,0), (1,1,1)\}$. +Thus in this example $r=\frac{1}{3}$. +We can also obtain its generator and parity check matrices as +\begin{equation} + \bm{G} = \begin{pmatrix} 1 & 1 & 1 \end{pmatrix},\qquad \bm{H} = \begin{pmatrix} 1 & 1 & 0 \\ 1 & 0 & 1 \end{pmatrix}\,. +\end{equation} +The parity check matrix $\bm{H}$ can be used to detect if a transmission error occurred by verifying if $\bm{H} \bm{x}^\top = \bm{0}^\top$. +In the case where an error occurred, an \ac{ML} decoder for a \ac{BSC} carries out a majority decision to estimate the most likely codeword. + +Repetition codes shed light on a problem common to a lot of codes. +If the reliability of a code needs to be improved, it comes at the expense of a lower code rate. +Increasing $n$ comes at the expense of decreasing $r = \frac{1}{n}$ because $k=1$ for all repetition codes. +Thus for a very reliable repetition code has a vanishing rate as $\lim_{n \to \infty} r = 0$. + +The above results leads to the definition of asymptotically good codes $\mathcal{C}(n_s, k_s, d_s)$ \cite{Friedrichs:2010:error-control-coding}. +Two properties must hold for this class of codes: +\begin{equation} + R = \lim_{s \to \infty} \frac{k_s}{n_s} > 0 \quad \textrm{and} \quad \lim_{s \to \infty} \frac{d_s}{n_s} > 0. +\end{equation} +The code rate must be positive ($>0$) for all codes. Repetition codes do not satisfy this property, for example. Furthermore, the distance between codewords must grow proportionally to the code block size $n$. + +\section{Channels}\label{theory:channels} +Several common channel models exist to describe the characteristics of a physical transmission. +Common properties were discussed in Sec.~\ref{sec:channel_model} whereas in this section, the differences are targeted. +The three most important channel models for polar codes are presented, namely the \ac{BSC}, the \ac{BEC} and the \ac{AWGN} channel. + +\subsection{AWGN Channel} +An \ac{AWGN} channel as used in this thesis has a binary input alphabet and a continuous output alphabet $\mathcal{Y} = \mathbb{R}$. +Each input symbol is affected by Gaussian noise to yield an output symbol. + +\subsection{Capacity and Reliability} +Channels are often characterized by two important measures: their capacity and their reliability. +These measures are introduced in this section. The channel capacity for symmetric \acp{BDMC} with input alphabet $\mathcal{X} = \{0,1\}$ can be calculated by +\begin{equation} + I(W) = \frac{1}{2} \sum_{y \in \mathcal{Y}} \sum_{x \in \mathcal{X}} W(y|x) \log_2 \frac{W(y|x)}{\frac{1}{2} (W(y|0) + W(y|1))}, +\end{equation} +where we assume equiprobable channel input symbols $P(X=0) = P(X=1) = \frac{1}{2}$, which is the capacity-achieving input distribution for symmetric \acp{BDMC}. +The capacity defines the highest rate at which a reliable transmission (i.e., with a vanishing error probability after decoding) over a channel $W$ can be realized. +It is also called the Shannon capacity~\cite{sha49} for symmetric channels. + +The Bhattacharyya parameter +\begin{equation} + Z(W) = \sum_{y \in \mathcal{Y}} \sqrt{W(y|0) W(y|1)} +\end{equation} +is used to quantify a channel's reliability where a lower value for $Z(W)$ indicates higher reliability. +Also, an upper \ac{ML} decision error bound is given by $Z(W)$~\cite{polar:arikan09}. diff --git a/latex/figures/polar_nbit_decoder.tex b/latex/figures/polar_nbit_decoder.tex new file mode 100644 index 0000000..08cd341 --- /dev/null +++ b/latex/figures/polar_nbit_decoder.tex @@ -0,0 +1,54 @@ +\begin{tikzpicture}[node distance = 1.5cm, auto] +% \def\dist{1.5} +% \def\power{4} + \pgfmathparse{\power-1} + \newcount\powerleq + \let\powerleq\pgfmathresult + \pgfmathparse{int(2^\power)} + \newcount\blocksize + \let\blocksize\pgfmathresult + \pgfmathparse{\blocksize-1} + \newcount\blockleq + \let\blockleq\pgfmathresult + + \foreach \j in {0,...,\powerleq}{ + \pgfmathparse{int(-1*\j-1)} + \let\srow\pgfmathresult + + \pgfmathparse{int(-1*\j)} + \let\drow\pgfmathresult + + \pgfmathparse{int(2^(\j+1))} + \let\ccsize\pgfmathresult + + \pgfmathparse{int(\ccsize/2)} + \let\cchalf\pgfmathresult + + \foreach \i in {0,...,\blockleq}{ + \pgfmathparse{int(mod(\i,\ccsize))} + \let\n\pgfmathresult + + + \ifnum\n<\cchalf + \path (\dist*\drow, \i) edge [dashed] (\dist*\srow, \i+\n); + \path (\dist*\drow, \i) edge [dashed] (\dist*\srow, \i+\n+1); + \else + \pgfmathparse{int(\ccsize * int(\i / \ccsize)) + int(mod(2* (\i + \cchalf), \ccsize) )} + \let\jumpsize\pgfmathresult + \path (\dist*\drow, \i) edge (\dist*\srow, \jumpsize); + \path (\dist*\drow, \i) edge (\dist*\srow, \jumpsize+1); + \fi + } + } + + + \foreach \i in {0,...,\blockleq}{ + \node[draw=none] at (-0.3-\dist*\power, \blockleq-\i) {$y_{\i}$}; + \node[draw=none] at (0.3, \blockleq-\i) {$\hat{u}_{\i}$}; + } + + \foreach \i in {0,...,\power}{ + \node[draw=none] at (-1*\dist*\power+\dist*\i, \blocksize-0.5) {$S_{\i}$}; + } + +\end{tikzpicture} \ No newline at end of file diff --git a/latex/figures/polar_nbit_encoder_natural.tex b/latex/figures/polar_nbit_encoder_natural.tex new file mode 100644 index 0000000..770e857 --- /dev/null +++ b/latex/figures/polar_nbit_encoder_natural.tex @@ -0,0 +1,48 @@ +\usetikzlibrary[topaths, calc] + +\begin{tikzpicture}[transform shape] +% \def\dist{1.5} +% \def\power{3} + \pgfmathparse{\power-1} + \newcount\powerleq + \let\powerleq\pgfmathresult + \pgfmathparse{int(2^\power)} + \newcount\blocksize + \let\blocksize\pgfmathresult + \pgfmathparse{\blocksize-1} + \newcount\blockleq + \let\blockleq\pgfmathresult + + + \foreach \j in {0,...,\powerleq}{ + \pgfmathparse{int(\j+1)} + \let\drow\pgfmathresult + + \pgfmathparse{int(2^(\j+1))} + \let\ccsize\pgfmathresult + + \pgfmathparse{int(\ccsize/2)} + \let\cchalf\pgfmathresult + + \foreach \i in {0,...,\blockleq}{ + \pgfmathparse{int(mod(\i,2))} + \let\n\pgfmathresult + + \pgfmathparse{int(\ccsize * int(\i / \ccsize))} + \let\dblock\pgfmathresult + + \pgfmathparse{\dblock + int(mod(\i, \ccsize) / 2) + \cchalf}%(\ccsize * int(\i / \ccsize)) + int(mod(2* (\i + \cchalf), \ccsize)) + 1} + \let\dest\pgfmathresult + \path (\dist*\j, \i) edge (\dist*\drow, \dest); + \ifnum\n=0 + \path (\dist*\j, \i) edge [dashed] (\dist*\drow, \dest-\cchalf); + \fi + } + } + + \foreach \i in {0,...,\blockleq}{ + \node[draw=none] at (-0.3, \blockleq-\i) {$u_{\i}$}; + \node[draw=none] at (\dist*\power+0.3, \blockleq-\i) {$x_{\i}$}; + } + +\end{tikzpicture} diff --git a/latex/src/thesis.tex b/latex/src/thesis.tex deleted file mode 100644 index 4d462f1..0000000 --- a/latex/src/thesis.tex +++ /dev/null @@ -1,54 +0,0 @@ -% -% Default template copied from Overleaf -% - - -%-------------------- -% Packages -% ------------------- -\documentclass[11pt,a4paper]{article} -\usepackage[utf8x]{inputenc} -\usepackage[T1]{fontenc} -%\usepackage{gentium} -\usepackage{mathptmx} % Use Times Font - - -\usepackage[pdftex]{graphicx} % Required for including pictures -\usepackage[swedish]{babel} % Swedish translations -\usepackage[pdftex,linkcolor=black,pdfborder={0 0 0}]{hyperref} % Format links for pdf -\usepackage{calc} % To reset the counter in the document after title page -\usepackage{enumitem} % Includes lists - -\frenchspacing % No double spacing between sentences -\linespread{1.2} % Set linespace -\usepackage[a4paper, lmargin=0.1666\paperwidth, rmargin=0.1666\paperwidth, tmargin=0.1111\paperheight, bmargin=0.1111\paperheight]{geometry} %margins -%\usepackage{parskip} - -\usepackage[all]{nowidow} % Tries to remove widows -\usepackage[protrusion=true,expansion=true]{microtype} % Improves typography, load after fontpackage is selected - -\usepackage{lipsum} % Used for inserting dummy 'Lorem ipsum' text into the template - - -%----------------------- -% Set pdf information and add title, fill in the fields -%----------------------- -\hypersetup{ -pdfsubject = {}, -pdftitle = {}, -pdfauthor = {} -} - -%----------------------- -% Begin document -%----------------------- -\begin{document} %All text i dokumentet hamnar mellan dessa taggar, allt ovanför är formatering av dokumentet - -\section{Introduction} - -\lipsum[1-3] - - -\subsection*{Subtitle} -\lipsum[4-5] -\end{document} diff --git a/latex/thesis-master.tex b/latex/thesis-master.tex new file mode 100644 index 0000000..37307d3 --- /dev/null +++ b/latex/thesis-master.tex @@ -0,0 +1,64 @@ +% Template author: Johannes Demel +% Document class provides standardized title page + needed extras. +\documentclass{cel-thesis/cel-thesis} +\thesisTitle{Write my thesis} +\thesisType{Example Template} +\thesisAuthor{John Doe} +%\thesisAdvisor{Prof. Dr.-Ing. Laurent Schmalen} +%\thesisHeadOfInstitute{Prof. Dr.-Ing. Laurent Schmalen} +\thesisSupervisor{Name of assistant} +\thesisStartDate{Start date} +\thesisEndDate{End date} +\thesisSignatureDate{Signature date} +\thesisLanguage{english} % english or ngerman +\thesisCC{FALSE} +\thesisPythonWatermark{FALSE} + + +%%% LANGUAGE SETTINGS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% additional Hyphenation rules +\hyphenation{non-para-metric repro-gra-mmable} +% Settings for bibliography +\usepackage{babelbib} +\setlanguage % set correct language as selected above + +%%% PACKAGES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Add all the packages you feel like you need them. +% You'll need it. +% automatically expand/abbreviate terms. +\usepackage{caption} +\usepackage{bm} +\usepackage{subcaption} +\usepackage{todonotes} % great for draft annotations +\DeclareCaptionLabelFormat{bf-nodot}{\textbf{#1}~\textbf{#2}} +\captionsetup{labelformat=bf-nodot,labelsep=colon} + +%%% DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% pretty C++ print. +\def\CC{{C\nolinebreak[4]\hspace{-.05em}\raisebox{.4ex}{\tiny\textbf{++}}}} + +\begin{document} +\pagenumbering{roman} % all the preliminaries should be counted roman style +\maketitle +%% preliminaries + \include{chapters/abstract} % a MUST, few pages abstract + +%% main document +\cleardoublepage +\pagenumbering{arabic} % now old school arabic enumerated pages. + \tableofcontents % a MUST + \cleardoublepage % make sure multipage TOCs are numbered correctly. + \include{chapters/introduction} % include chapter introduction.tex + \include{chapters/systemmodel} % an example chapter + \include{chapters/conclusion} % everything ends with a summary! + + +%% Appendix +\appendix +% \listoffigures % if you want, not usual +% \listoftables % if you want, not usual + \include{abbreviations} % use the acronym package. Already include with the template.d + \bibliography{cel-thesis/IEEEabrv,bibliography} % include bibliography.bib and with formating etc. + + +\end{document}