\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.