\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*{Enumerations}
\begin{DoxyCompactItemize}
\item 
\mbox{\label{group__conv_gaf0fd132530ce2b394bad052c7242590e}} 
enum {\bfseries osmo\+\_\+conv\+\_\+term} 
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\label{group__conv_gaa1382de36811cc10f218b877cad5c2d5}} 
int \textbf{ osmo\+\_\+conv\+\_\+get\+\_\+input\+\_\+length} (const struct \textbf{ osmo\+\_\+conv\+\_\+code} $\ast$code, int len)
\item 
\mbox{\label{group__conv_ga278e64b79e6b589c835a0c401fde3660}} 
int \textbf{ osmo\+\_\+conv\+\_\+get\+\_\+output\+\_\+length} (const struct \textbf{ osmo\+\_\+conv\+\_\+code} $\ast$code, int len)
\item 
\mbox{\label{group__conv_ga729a0ee108fb0f830aef9652acb1f998}} 
void \textbf{ osmo\+\_\+conv\+\_\+encode\+\_\+init} (struct \textbf{ osmo\+\_\+conv\+\_\+encoder} $\ast$encoder, const struct \textbf{ osmo\+\_\+conv\+\_\+code} $\ast$code)
\item 
\mbox{\label{group__conv_gacd456a6e66cd06364000d83b9d4a9c5f}} 
void \textbf{ osmo\+\_\+conv\+\_\+encode\+\_\+load\+\_\+state} (struct \textbf{ osmo\+\_\+conv\+\_\+encoder} $\ast$encoder, const \textbf{ ubit\+\_\+t} $\ast$input)
\item 
\mbox{\label{group__conv_ga15d88c910f3072194278d42582162872}} 
int \textbf{ osmo\+\_\+conv\+\_\+encode\+\_\+raw} (struct \textbf{ osmo\+\_\+conv\+\_\+encoder} $\ast$encoder, const \textbf{ ubit\+\_\+t} $\ast$input, \textbf{ ubit\+\_\+t} $\ast$output, int n)
\item 
\mbox{\label{group__conv_gac54f3af7b08df20b530694ee3a660918}} 
int \textbf{ osmo\+\_\+conv\+\_\+encode\+\_\+flush} (struct \textbf{ osmo\+\_\+conv\+\_\+encoder} $\ast$encoder, \textbf{ ubit\+\_\+t} $\ast$output)
\item 
\mbox{\label{group__conv_ga928c04825469cc3481be1717d69534d6}} 
int \textbf{ osmo\+\_\+conv\+\_\+encode} (const struct \textbf{ osmo\+\_\+conv\+\_\+code} $\ast$code, const \textbf{ ubit\+\_\+t} $\ast$input, \textbf{ ubit\+\_\+t} $\ast$output)
\item 
\mbox{\label{group__conv_ga8d62497e9411049141f699d67068b1ab}} 
void \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+init} (struct \textbf{ osmo\+\_\+conv\+\_\+decoder} $\ast$decoder, const struct \textbf{ osmo\+\_\+conv\+\_\+code} $\ast$code, int len, int start\+\_\+state)
\item 
\mbox{\label{group__conv_ga5b03fc1ff68f02690c1e6536f4a44562}} 
void \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+reset} (struct \textbf{ osmo\+\_\+conv\+\_\+decoder} $\ast$decoder, int start\+\_\+state)
\item 
\mbox{\label{group__conv_ga118b5aec8b6ad0eb45f0cb2bc96525af}} 
void \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+rewind} (struct \textbf{ osmo\+\_\+conv\+\_\+decoder} $\ast$decoder)
\item 
\mbox{\label{group__conv_gac5eaa9e63f2f78c65070dfdbd8f8cd88}} 
void \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+deinit} (struct \textbf{ osmo\+\_\+conv\+\_\+decoder} $\ast$decoder)
\item 
\mbox{\label{group__conv_ga8c0b5474a256cc21ba605bf2594468bc}} 
int \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+scan} (struct \textbf{ osmo\+\_\+conv\+\_\+decoder} $\ast$decoder, const \textbf{ sbit\+\_\+t} $\ast$input, int n)
\item 
\mbox{\label{group__conv_gad6eea080a67fdcecfc6d108d07d37c3c}} 
int \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+flush} (struct \textbf{ osmo\+\_\+conv\+\_\+decoder} $\ast$decoder, const \textbf{ sbit\+\_\+t} $\ast$input)
\item 
\mbox{\label{group__conv_gad2d7bb7224a7362c048f3c147c09c106}} 
int \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+get\+\_\+best\+\_\+end\+\_\+state} (struct \textbf{ osmo\+\_\+conv\+\_\+decoder} $\ast$decoder)
\item 
\mbox{\label{group__conv_ga123033117643f7c2ea610cbc21cfeeb7}} 
int \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+get\+\_\+output} (struct \textbf{ osmo\+\_\+conv\+\_\+decoder} $\ast$decoder, \textbf{ ubit\+\_\+t} $\ast$output, int has\+\_\+flush, int end\+\_\+state)
\item 
\mbox{\label{group__conv_ga8eb8fcdfe0d49890927a6ce7bfc921dc}} 
int \textbf{ osmo\+\_\+conv\+\_\+decode} (const struct \textbf{ osmo\+\_\+conv\+\_\+code} $\ast$code, const \textbf{ sbit\+\_\+t} $\ast$input, \textbf{ ubit\+\_\+t} $\ast$output)
\item 
\mbox{\label{group__conv_ga609c3f0603a35f2a5c3b55ab4ef30d42}} 
int \textbf{ osmo\+\_\+conv\+\_\+decode\+\_\+acc} (const struct \textbf{ osmo\+\_\+conv\+\_\+code} $\ast$code, const \textbf{ sbit\+\_\+t} $\ast$input, \textbf{ ubit\+\_\+t} $\ast$output)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\label{group__conv_ggaf0fd132530ce2b394bad052c7242590ea255ffa13977bc3a7513d90485123e7c2}} 
\textbf{ CONV\+\_\+\+TERM\+\_\+\+FLUSH}
\item 
\mbox{\label{group__conv_ggaf0fd132530ce2b394bad052c7242590eadd3d6c82aa9a0be1f38479f89d6c1b04}} 
\textbf{ CONV\+\_\+\+TERM\+\_\+\+TRUNCATION}
\item 
\mbox{\label{group__conv_ggaf0fd132530ce2b394bad052c7242590ea63bb13a152bdb0b61594e10aabe990c1}} 
\textbf{ CONV\+\_\+\+TERM\+\_\+\+TAIL\+\_\+\+BITING}
\item 
\mbox{\label{group__conv_gad9e7ba139d8b88117361ce2c069b3ac1}} 
const struct \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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 \textbf{ 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. 

