\doxysection{Convolutional coding}
\label{group__conv}\index{Convolutional coding@{Convolutional coding}}
\doxysubsection*{Files}
\begin{DoxyCompactItemize}
\item 
file \textbf{ conv.\+h}
\begin{DoxyCompactList}\small\item\em Osmocom GMR-\/1 convolutional coding header. \end{DoxyCompactList}\item 
file \textbf{ conv.\+c}
\begin{DoxyCompactList}\small\item\em Osmocom GMR-\/1 convolutional coding implementation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\label{group__conv_gad9e7ba139d8b88117361ce2c069b3ac1}} 
const struct osmo\+\_\+conv\+\_\+code {\bfseries gmr1\+\_\+conv\+\_\+k5\+\_\+12}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 5, rate 1/2 convolutional code. \end{DoxyCompactList}\item 
\mbox{\label{group__conv_gae46510aefce08ef3158790186b00a404}} 
const struct osmo\+\_\+conv\+\_\+code {\bfseries gmr1\+\_\+conv\+\_\+k5\+\_\+13}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 5, rate 1/3 convolutional code. \end{DoxyCompactList}\item 
\mbox{\label{group__conv_gad0dab5050f72518f948d10b78ee21b2d}} 
const struct osmo\+\_\+conv\+\_\+code {\bfseries gmr1\+\_\+conv\+\_\+k5\+\_\+14}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 5, rate 1/4 convolutional code. \end{DoxyCompactList}\item 
\mbox{\label{group__conv_ga70b8d0dc1e500ff3a1986315e6551a27}} 
const struct osmo\+\_\+conv\+\_\+code {\bfseries gmr1\+\_\+conv\+\_\+k5\+\_\+15}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 5, rate 1/5 convolutional code. \end{DoxyCompactList}\item 
\mbox{\label{group__conv_ga6e7732168c9ecb6ad0b14ed8001c4588}} 
const struct osmo\+\_\+conv\+\_\+code {\bfseries gmr1\+\_\+conv\+\_\+k6\+\_\+14}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 6, rate 1/4 convolutional code. \end{DoxyCompactList}\item 
\mbox{\label{group__conv_gaa9043b27694a4c4438b18f7cd60950cd}} 
const struct osmo\+\_\+conv\+\_\+code {\bfseries gmr1\+\_\+conv\+\_\+k9\+\_\+12}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 9, rate 1/2 convolutional code. \end{DoxyCompactList}\item 
\mbox{\label{group__conv_ga647389b5ecf36c9770b4ecfd57c11fe0}} 
const struct osmo\+\_\+conv\+\_\+code {\bfseries gmr1\+\_\+conv\+\_\+k9\+\_\+13}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 9, rate 1/3 convolutional code. \end{DoxyCompactList}\item 
\mbox{\label{group__conv_ga0aaad5b737b08f90b906fbd369df8ccc}} 
const struct osmo\+\_\+conv\+\_\+code {\bfseries gmr1\+\_\+conv\+\_\+k9\+\_\+14}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 9, rate 1/4 convolutional code. \end{DoxyCompactList}\item 
\mbox{\label{group__conv_ga622aa845f1ef3258a750b0da2df27d13}} 
const struct osmo\+\_\+conv\+\_\+code {\bfseries gmr1\+\_\+conv\+\_\+tch3}
\begin{DoxyCompactList}\small\item\em GMR-\/1 TCH3 speech tail-\/biting convolutional code. \end{DoxyCompactList}\item 
const struct osmo\+\_\+conv\+\_\+code \textbf{ gmr1\+\_\+conv\+\_\+k5\+\_\+12}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 5, rate 1/2 convolutional code. \end{DoxyCompactList}\item 
const struct osmo\+\_\+conv\+\_\+code \textbf{ gmr1\+\_\+conv\+\_\+k5\+\_\+13}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 5, rate 1/3 convolutional code. \end{DoxyCompactList}\item 
const struct osmo\+\_\+conv\+\_\+code \textbf{ gmr1\+\_\+conv\+\_\+k5\+\_\+14}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 5, rate 1/4 convolutional code. \end{DoxyCompactList}\item 
const struct osmo\+\_\+conv\+\_\+code \textbf{ gmr1\+\_\+conv\+\_\+k5\+\_\+15}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 5, rate 1/5 convolutional code. \end{DoxyCompactList}\item 
const struct osmo\+\_\+conv\+\_\+code \textbf{ gmr1\+\_\+conv\+\_\+k6\+\_\+14}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 6, rate 1/4 convolutional code. \end{DoxyCompactList}\item 
const struct osmo\+\_\+conv\+\_\+code \textbf{ gmr1\+\_\+conv\+\_\+k9\+\_\+12}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 9, rate 1/2 convolutional code. \end{DoxyCompactList}\item 
const struct osmo\+\_\+conv\+\_\+code \textbf{ gmr1\+\_\+conv\+\_\+k9\+\_\+13}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 9, rate 1/3 convolutional code. \end{DoxyCompactList}\item 
const struct osmo\+\_\+conv\+\_\+code \textbf{ gmr1\+\_\+conv\+\_\+k9\+\_\+14}
\begin{DoxyCompactList}\small\item\em GMR-\/1 constraint length 9, rate 1/4 convolutional code. \end{DoxyCompactList}\item 
const struct osmo\+\_\+conv\+\_\+code \textbf{ gmr1\+\_\+conv\+\_\+tch3}
\begin{DoxyCompactList}\small\item\em GMR-\/1 TCH3 speech tail-\/biting convolutional code. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}


\doxysubsection{Variable Documentation}
\mbox{\label{group__conv_gad9e7ba139d8b88117361ce2c069b3ac1}} 
\index{Convolutional coding@{Convolutional coding}!gmr1\_conv\_k5\_12@{gmr1\_conv\_k5\_12}}
\index{gmr1\_conv\_k5\_12@{gmr1\_conv\_k5\_12}!Convolutional coding@{Convolutional coding}}
\doxysubsubsection{gmr1\_conv\_k5\_12}
{\footnotesize\ttfamily const struct osmo\+\_\+conv\+\_\+code gmr1\+\_\+conv\+\_\+k5\+\_\+12}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .N = 2,}
\DoxyCodeLine{        .K = 5,}
\DoxyCodeLine{        .len = 0, }
\DoxyCodeLine{        .next\_output = gmr1\_conv\_k5\_12\_next\_output,}
\DoxyCodeLine{        .term = CONV\_TERM\_FLUSH, }
\DoxyCodeLine{        .next\_state  = gmr1\_conv\_k5\_next\_state,}
\DoxyCodeLine{\}}

\end{DoxyCode}


GMR-\/1 constraint length 5, rate 1/2 convolutional code. 

\mbox{\label{group__conv_gae46510aefce08ef3158790186b00a404}} 
\index{Convolutional coding@{Convolutional coding}!gmr1\_conv\_k5\_13@{gmr1\_conv\_k5\_13}}
\index{gmr1\_conv\_k5\_13@{gmr1\_conv\_k5\_13}!Convolutional coding@{Convolutional coding}}
\doxysubsubsection{gmr1\_conv\_k5\_13}
{\footnotesize\ttfamily const struct osmo\+\_\+conv\+\_\+code gmr1\+\_\+conv\+\_\+k5\+\_\+13}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .N = 3,}
\DoxyCodeLine{        .K = 5,}
\DoxyCodeLine{        .len = 0, }
\DoxyCodeLine{        .term = CONV\_TERM\_FLUSH, }
\DoxyCodeLine{        .next\_output = gmr1\_conv\_k5\_13\_next\_output,}
\DoxyCodeLine{        .next\_state  = gmr1\_conv\_k5\_next\_state,}
\DoxyCodeLine{\}}

\end{DoxyCode}


GMR-\/1 constraint length 5, rate 1/3 convolutional code. 

\mbox{\label{group__conv_gad0dab5050f72518f948d10b78ee21b2d}} 
\index{Convolutional coding@{Convolutional coding}!gmr1\_conv\_k5\_14@{gmr1\_conv\_k5\_14}}
\index{gmr1\_conv\_k5\_14@{gmr1\_conv\_k5\_14}!Convolutional coding@{Convolutional coding}}
\doxysubsubsection{gmr1\_conv\_k5\_14}
{\footnotesize\ttfamily const struct osmo\+\_\+conv\+\_\+code gmr1\+\_\+conv\+\_\+k5\+\_\+14}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .N = 4,}
\DoxyCodeLine{        .K = 5,}
\DoxyCodeLine{        .len = 0, }
\DoxyCodeLine{        .term = CONV\_TERM\_FLUSH, }
\DoxyCodeLine{        .next\_output = gmr1\_conv\_k5\_14\_next\_output,}
\DoxyCodeLine{        .next\_state  = gmr1\_conv\_k5\_next\_state,}
\DoxyCodeLine{\}}

\end{DoxyCode}


GMR-\/1 constraint length 5, rate 1/4 convolutional code. 

\mbox{\label{group__conv_ga70b8d0dc1e500ff3a1986315e6551a27}} 
\index{Convolutional coding@{Convolutional coding}!gmr1\_conv\_k5\_15@{gmr1\_conv\_k5\_15}}
\index{gmr1\_conv\_k5\_15@{gmr1\_conv\_k5\_15}!Convolutional coding@{Convolutional coding}}
\doxysubsubsection{gmr1\_conv\_k5\_15}
{\footnotesize\ttfamily const struct osmo\+\_\+conv\+\_\+code gmr1\+\_\+conv\+\_\+k5\+\_\+15}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .N = 5,}
\DoxyCodeLine{        .K = 5,}
\DoxyCodeLine{        .len = 0, }
\DoxyCodeLine{        .term = CONV\_TERM\_FLUSH, }
\DoxyCodeLine{        .next\_output = gmr1\_conv\_k5\_15\_next\_output,}
\DoxyCodeLine{        .next\_state  = gmr1\_conv\_k5\_next\_state,}
\DoxyCodeLine{\}}

\end{DoxyCode}


GMR-\/1 constraint length 5, rate 1/5 convolutional code. 

\mbox{\label{group__conv_ga6e7732168c9ecb6ad0b14ed8001c4588}} 
\index{Convolutional coding@{Convolutional coding}!gmr1\_conv\_k6\_14@{gmr1\_conv\_k6\_14}}
\index{gmr1\_conv\_k6\_14@{gmr1\_conv\_k6\_14}!Convolutional coding@{Convolutional coding}}
\doxysubsubsection{gmr1\_conv\_k6\_14}
{\footnotesize\ttfamily const struct osmo\+\_\+conv\+\_\+code gmr1\+\_\+conv\+\_\+k6\+\_\+14}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .N = 4,}
\DoxyCodeLine{        .K = 6,}
\DoxyCodeLine{        .len = 0, }
\DoxyCodeLine{        .term = CONV\_TERM\_FLUSH, }
\DoxyCodeLine{        .next\_output = gmr1\_conv\_k6\_14\_next\_output,}
\DoxyCodeLine{        .next\_state  = gmr1\_conv\_k6\_next\_state,}
\DoxyCodeLine{\}}

\end{DoxyCode}


GMR-\/1 constraint length 6, rate 1/4 convolutional code. 

\mbox{\label{group__conv_gaa9043b27694a4c4438b18f7cd60950cd}} 
\index{Convolutional coding@{Convolutional coding}!gmr1\_conv\_k9\_12@{gmr1\_conv\_k9\_12}}
\index{gmr1\_conv\_k9\_12@{gmr1\_conv\_k9\_12}!Convolutional coding@{Convolutional coding}}
\doxysubsubsection{gmr1\_conv\_k9\_12}
{\footnotesize\ttfamily const struct osmo\+\_\+conv\+\_\+code gmr1\+\_\+conv\+\_\+k9\+\_\+12}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .N = 2,}
\DoxyCodeLine{        .K = 9,}
\DoxyCodeLine{        .len = 0, }
\DoxyCodeLine{        .term = CONV\_TERM\_FLUSH, }
\DoxyCodeLine{        .next\_output = gmr1\_conv\_k9\_12\_next\_output,}
\DoxyCodeLine{        .next\_state  = gmr1\_conv\_k9\_next\_state,}
\DoxyCodeLine{\}}

\end{DoxyCode}


GMR-\/1 constraint length 9, rate 1/2 convolutional code. 

\mbox{\label{group__conv_ga647389b5ecf36c9770b4ecfd57c11fe0}} 
\index{Convolutional coding@{Convolutional coding}!gmr1\_conv\_k9\_13@{gmr1\_conv\_k9\_13}}
\index{gmr1\_conv\_k9\_13@{gmr1\_conv\_k9\_13}!Convolutional coding@{Convolutional coding}}
\doxysubsubsection{gmr1\_conv\_k9\_13}
{\footnotesize\ttfamily const struct osmo\+\_\+conv\+\_\+code gmr1\+\_\+conv\+\_\+k9\+\_\+13}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .N = 3,}
\DoxyCodeLine{        .K = 9,}
\DoxyCodeLine{        .len = 0, }
\DoxyCodeLine{        .term = CONV\_TERM\_FLUSH, }
\DoxyCodeLine{        .next\_output = gmr1\_conv\_k9\_13\_next\_output,}
\DoxyCodeLine{        .next\_state  = gmr1\_conv\_k9\_next\_state,}
\DoxyCodeLine{\}}

\end{DoxyCode}


GMR-\/1 constraint length 9, rate 1/3 convolutional code. 

\mbox{\label{group__conv_ga0aaad5b737b08f90b906fbd369df8ccc}} 
\index{Convolutional coding@{Convolutional coding}!gmr1\_conv\_k9\_14@{gmr1\_conv\_k9\_14}}
\index{gmr1\_conv\_k9\_14@{gmr1\_conv\_k9\_14}!Convolutional coding@{Convolutional coding}}
\doxysubsubsection{gmr1\_conv\_k9\_14}
{\footnotesize\ttfamily const struct osmo\+\_\+conv\+\_\+code gmr1\+\_\+conv\+\_\+k9\+\_\+14}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .N = 4,}
\DoxyCodeLine{        .K = 9,}
\DoxyCodeLine{        .len = 0, }
\DoxyCodeLine{        .term = CONV\_TERM\_FLUSH, }
\DoxyCodeLine{        .next\_output = gmr1\_conv\_k9\_14\_next\_output,}
\DoxyCodeLine{        .next\_state  = gmr1\_conv\_k9\_next\_state,}
\DoxyCodeLine{\}}

\end{DoxyCode}


GMR-\/1 constraint length 9, rate 1/4 convolutional code. 

\mbox{\label{group__conv_ga622aa845f1ef3258a750b0da2df27d13}} 
\index{Convolutional coding@{Convolutional coding}!gmr1\_conv\_tch3@{gmr1\_conv\_tch3}}
\index{gmr1\_conv\_tch3@{gmr1\_conv\_tch3}!Convolutional coding@{Convolutional coding}}
\doxysubsubsection{gmr1\_conv\_tch3}
{\footnotesize\ttfamily const struct osmo\+\_\+conv\+\_\+code gmr1\+\_\+conv\+\_\+tch3}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .N = 2,}
\DoxyCodeLine{        .K = 7,}
\DoxyCodeLine{        .len = 0, }
\DoxyCodeLine{        .term = CONV\_TERM\_TAIL\_BITING,}
\DoxyCodeLine{        .next\_output = gmr1\_conv\_tch3\_next\_output,}
\DoxyCodeLine{        .next\_state  = gmr1\_conv\_tch3\_next\_state,}
\DoxyCodeLine{\}}

\end{DoxyCode}


GMR-\/1 TCH3 speech tail-\/biting convolutional code. 

