html/ 0000755 0001750 0001750 00000000000 14753471227 011016 5 ustar build build html/group__gsmtap.html 0000644 0001750 0001750 00000017314 14753471227 014560 0 ustar build build
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Files | |
file | gsmtap.h |
Osmocom GMR-1 GSMtap helpers header. | |
file | gsmtap.c |
Osmocom GMR-1 GSMtap helpers header. | |
Functions | |
struct msgb * | gmr1_gsmtap_makemsg (uint8_t chan_type, uint32_t fn, uint8_t tn, const uint8_t *l2, int len) |
Helper to build GSM tap message with GMR-1 payload. More... | |
struct msgb * gmr1_gsmtap_makemsg | ( | uint8_t | chan_type, |
uint32_t | fn, | ||
uint8_t | tn, | ||
const uint8_t * | l2, | ||
int | len | ||
) |
Helper to build GSM tap message with GMR-1 payload.
[in] | chan_type | Type of channel (one of GSMTAP_GMR1_xxx) |
[in] | l2 | Packet of L2 data to encapsulate |
[in] | len | Length of the l2 data in bytes |
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 interleaving header. More...
Go to the source code of this file.
Data Structures | |
struct | gmr1_interleaver |
GMR1 inter-burst (de)interleaver state. More... | |
Functions | |
void | gmr1_interleave_intra (void *out, const void *in, int N) |
GMR-1 intra burst inteleaver. More... | |
void | gmr1_deinterleave_intra (void *out, const void *in, int N) |
GMR-1 intra burst de-interleaver. More... | |
int | gmr1_interleaver_init (struct gmr1_interleaver *il, int N, int K) |
GMR-1 inter burst interleaver initializer. More... | |
void | gmr1_interleaver_fini (struct gmr1_interleaver *il) |
GMR-1 inter burst interleaver cleanup. More... | |
void | gmr1_interleave_inter (struct gmr1_interleaver *il, void *bits_epp, void *bits_ep) |
GMR-1 inter burst interleaver. More... | |
void | gmr1_deinterleave_inter (struct gmr1_interleaver *il, void *bits_ep, void *bits_epp) |
GMR-1 inter burst de-interleaver. More... | |
Osmocom GMR-1 interleaving header.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 GSMtap helpers header. More...
#include <stdint.h>
Go to the source code of this file.
Functions | |
struct msgb * | gmr1_gsmtap_makemsg (uint8_t chan_type, uint32_t fn, uint8_t tn, const uint8_t *l2, int len) |
Helper to build GSM tap message with GMR-1 payload. More... | |
Osmocom GMR-1 GSMtap helpers header.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Files | |
file | dkab.h |
Osmocom GMR-1 DKABs bursts header. | |
file | dkab.c |
Osmocom GMR-1 DKABs bursts implementation. | |
Macros | |
#define | GMR1_DKAB_SYMS (39*3) |
#define | DKAB_PWR_RATIO_THRESHOLD 10.0f |
Ratio between peak power and valley power for DKAB detection. | |
Functions | |
int | gmr1_dkab_demod (struct osmo_cxvec *burst_in, int sps, float freq_shift, int p, sbit_t *ebits, float *toa_p) |
All-in-one finding and demodulation of DKAB bursts. More... | |
int gmr1_dkab_demod | ( | struct osmo_cxvec * | burst_in, |
int | sps, | ||
float | freq_shift, | ||
int | p, | ||
sbit_t * | ebits, | ||
float * | toa_p | ||
) |
All-in-one finding and demodulation of DKAB bursts.
[in] | burst_in | Complex signal of the burst |
[in] | sps | Oversampling used in the input complex signal |
[in] | freq_shift | Frequency shift to pre-apply to burst_in (rad/sym) |
[in] | p | DKAB position |
[out] | ebits | Encoded soft bits return array |
[out] | toa_p | Pointer to TOA return variable |
burst_in is expected to be longer than necessary. Any extra length will be used as 'search window' to find proper alignement. Good practice is to have a few samples too much in front and a few samples after the expected TOA.
References M_PIf, and osmo_cxvec_sig_normalize().
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 pi2-CBPSK, pi4-CBPSK and pi4-CQPSK modulation support implementation. More...
#include <complex.h>
#include <math.h>
#include <errno.h>
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <osmocom/core/bits.h>
#include <osmocom/dsp/cxvec.h>
#include <osmocom/dsp/cxvec_math.h>
#include <osmocom/gmr1/sdr/defs.h>
#include <osmocom/gmr1/sdr/pi4cxpsk.h>
Functions | |
int | gmr1_pi4cxpsk_demod (struct gmr1_pi4cxpsk_burst *burst_type, struct osmo_cxvec *burst_in, int sps, float freq_shift, sbit_t *ebits, int *sync_id_p, float *toa_p, float *freq_err_p) |
All-in-one pi4-CxPSK demodulation method. More... | |
int | gmr1_pi4cxpsk_detect (struct gmr1_pi4cxpsk_burst **burst_types, float e_toa, struct osmo_cxvec *burst_in, int sps, float freq_shift, int *bt_id_p, int *sync_id_p, float *toa_p) |
Try to identify burst type by matching training sequences. More... | |
int | gmr1_pi4cxpsk_mod_order (struct osmo_cxvec *burst_in, int sps, float freq_shift) |
Estimates modulation order by comparing power of x^2 vs x^4. More... | |
int | gmr1_pi4cxpsk_mod (struct gmr1_pi4cxpsk_burst *burst_type, ubit_t *ebits, int sync_id, struct osmo_cxvec *burst_out) |
Modulates (currently at 1 sps) More... | |
Variables | |
struct gmr1_pi4cxpsk_modulation | gmr1_pi2cbpsk |
pi2-CBPSK modulation description More... | |
struct gmr1_pi4cxpsk_modulation | gmr1_pi4cbpsk |
pi4-CBPSK modulation description More... | |
struct gmr1_pi4cxpsk_modulation | gmr1_pi4cqpsk |
pi4-CQPSK modulation description More... | |
Osmocom GMR-1 pi2-CBPSK, pi4-CBPSK and pi4-CQPSK modulation support implementation.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
pi4-CxPSK Data segment description More...
#include <pi4cxpsk.h>
Data Fields | |
int | pos |
Data chunk position | |
int | len |
Data chunk length | |
pi4-CxPSK Data segment description
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Files | |
file | defs.h [code] |
Osmocom GMR-1 SDR global definitions. | |
file | dkab.h [code] |
Osmocom GMR-1 DKABs bursts header. | |
file | fcch.h [code] |
Osmocom GMR-1 FCCH bursts header. | |
file | nb.h [code] |
Osmocom GMR-1 Normal bursts header. | |
file | pi4cxpsk.h [code] |
Osmocom GMR-1 pi2-CBPSK, pi4-CBPSK and pi4-CQPSK modulation support header. | |
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 pi2-CBPSK, pi4-CBPSK and pi4-CQPSK modulation support header. More...
Go to the source code of this file.
Data Structures | |
struct | gmr1_pi4cxpsk_symbol |
pi4-CxPSK symbol description More... | |
struct | gmr1_pi4cxpsk_modulation |
pi4-CxPSK modulation description More... | |
struct | gmr1_pi4cxpsk_sync |
pi4-CxPSK Synchronization sequence segment description More... | |
struct | gmr1_pi4cxpsk_data |
pi4-CxPSK Data segment description More... | |
struct | gmr1_pi4cxpsk_burst |
pi4-CxPSK Burst format description More... | |
Macros | |
#define | GMR1_MAX_SYM_EBITS 2 |
Max e bits in a symbol. | |
#define | GMR1_MAX_SYNC 4 |
Max diff. sync seqs | |
#define | GMR1_MAX_SYNC_SYMS 32 |
Max sym in a sync seq | |
Functions | |
int | gmr1_pi4cxpsk_demod (struct gmr1_pi4cxpsk_burst *burst_type, struct osmo_cxvec *burst_in, int sps, float freq_shift, sbit_t *ebits, int *sync_id_p, float *toa_p, float *freq_err_p) |
All-in-one pi4-CxPSK demodulation method. More... | |
int | gmr1_pi4cxpsk_detect (struct gmr1_pi4cxpsk_burst **burst_types, float e_toa, struct osmo_cxvec *burst_in, int sps, float freq_shift, int *bt_id_p, int *sync_id_p, float *toa_p) |
Try to identify burst type by matching training sequences. More... | |
int | gmr1_pi4cxpsk_mod_order (struct osmo_cxvec *burst_in, int sps, float freq_shift) |
Estimates modulation order by comparing power of x^2 vs x^4. More... | |
int | gmr1_pi4cxpsk_mod (struct gmr1_pi4cxpsk_burst *burst_type, ubit_t *ebits, int sync_id, struct osmo_cxvec *burst_out) |
Modulates (currently at 1 sps) More... | |
Variables | |
struct gmr1_pi4cxpsk_modulation | gmr1_pi2cbpsk |
pi2-CBPSK modulation description | |
struct gmr1_pi4cxpsk_modulation | gmr1_pi4cbpsk |
pi4-CBPSK modulation description | |
struct gmr1_pi4cxpsk_modulation | gmr1_pi4cqpsk |
pi4-CQPSK modulation description | |
Osmocom GMR-1 pi2-CBPSK, pi4-CBPSK and pi4-CQPSK modulation support header.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 FACCH9 channel coding implementation. More...
#include <stdint.h>
#include <string.h>
#include <osmocom/core/bits.h>
#include <osmocom/core/conv.h>
#include <osmocom/core/crc16gen.h>
#include <osmocom/gmr1/l1/conv.h>
#include <osmocom/gmr1/l1/crc.h>
#include <osmocom/gmr1/l1/interleave.h>
#include <osmocom/gmr1/l1/scramb.h>
Functions | |
void | gmr1_facch9_encode (ubit_t *bits_e, const uint8_t *l2, const ubit_t *bits_sacch, const ubit_t *bits_status, const ubit_t *ciph) |
Stateless GMR-1 FACCH9 channel coder. More... | |
int | gmr1_facch9_decode (uint8_t *l2, sbit_t *bits_sacch, sbit_t *bits_status, const sbit_t *bits_e, const ubit_t *ciph, int *conv_rv) |
Stateless GMR-1 FACCH9 channel decoder. More... | |
Osmocom GMR-1 FACCH9 channel coding implementation.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 A5 ciphering algorithm implementation. More...
#include <string.h>
#include <stdint.h>
#include <osmocom/core/bits.h>
#include <osmocom/gmr1/l1/a5.h>
Macros | |
#define | A51_R1_LEN 19 |
#define | A51_R2_LEN 22 |
#define | A51_R3_LEN 23 |
#define | A51_R4_LEN 17 |
#define | A51_R1_MASK ((1<<A51_R1_LEN)-1) |
#define | A51_R2_MASK ((1<<A51_R2_LEN)-1) |
#define | A51_R3_MASK ((1<<A51_R3_LEN)-1) |
#define | A51_R4_MASK ((1<<A51_R4_LEN)-1) |
#define | A51_R1_TAPS 0x072000 /* x^19 + x^18 + x^17 + x^14 + 1 */ |
#define | A51_R2_TAPS 0x311000 /* x^22 + x^21 + x^17 + x^13 + 1 */ |
#define | A51_R3_TAPS 0x660000 /* x^23 + x^22 + x^19 + x^18 + 1 */ |
#define | A51_R4_TAPS 0x013100 /* x^17 + x^14 + x^13 + x^9 + 1 */ |
#define | A51_BIT(r, n) (1 << n) |
#define | MAJ(rnum, rname, a, b, c) |
Functions | |
void | gmr1_a5 (int n, uint8_t *key, uint32_t fn, int nbits, ubit_t *dl, ubit_t *ul) |
Main method to generate a A5/x cipher stream. More... | |
void | gmr1_a5_1 (uint8_t *key, uint32_t fn, int nbits, ubit_t *dl, ubit_t *ul) |
Generate a GMR-1 A5/1 cipher stream. More... | |
Osmocom GMR-1 A5 ciphering algorithm implementation.
#define MAJ | ( | rnum, | |
rname, | |||
a, | |||
b, | |||
c | |||
) |
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Files | |
file | a5.h [code] |
Osmocom GMR-1 A5 ciphering algorithm header. | |
file | bcch.h [code] |
Osmocom GMR-1 BCCH channel coding header. | |
file | ccch.h [code] |
Osmocom GMR-1 CCCH (PCH/AGCH) channel coding header. | |
file | conv.h [code] |
Osmocom GMR-1 convolutional coding header. | |
file | crc.h [code] |
Osmocom GMR-1 CRC header. | |
file | defs.h [code] |
Osmocom GMR-1 L1 global definitions. | |
file | facch3.h [code] |
Osmocom GMR-1 FACCH3 channel coding header. | |
file | facch9.h [code] |
Osmocom GMR-1 FACCH9 channel coding header. | |
file | interleave.h [code] |
Osmocom GMR-1 interleaving header. | |
file | punct.h [code] |
Osmocom GMR-1 puncturing header. | |
file | rach.h [code] |
Osmocom GMR-1 RACH channel coding header. | |
file | scramb.h [code] |
Osmocom GMR-1 scrambling header. | |
file | tch3.h [code] |
Osmocom GMR-1 TCH3 channel coding header. | |
file | tch9.h [code] |
Osmocom GMR-1 TCH9 channel coding header. | |
file | xch_dc12.h [code] |
Osmocom GMR-1 xCH over DC12 channel coding header. | |
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Files | |
file | ccch.h |
Osmocom GMR-1 CCCH (PCH/AGCH) channel coding header. | |
file | ccch.c |
Osmocom GMR-1 CCCH (PCH/AGCH) channel coding implementation. | |
Functions | |
void | gmr1_ccch_encode (ubit_t *bits_e, const uint8_t *l2) |
Stateless GMR-1 CCCH channel coder. More... | |
int | gmr1_ccch_decode (uint8_t *l2, const sbit_t *bits_e, int *conv_rv) |
Stateless GMR-1 CCCH channel decoder. More... | |
int gmr1_ccch_decode | ( | uint8_t * | l2, |
const sbit_t * | bits_e, | ||
int * | conv_rv | ||
) |
Stateless GMR-1 CCCH channel decoder.
[out] | l2 | L2 packet data |
[in] | bits_e | Data bits of a burst |
[out] | conv_rv | Return of the convolutional decode (can be NULL) |
L2 data is 24 byte long, and bits_e is a 432 soft bit array unmapped from a burst.
References gmr1_deinterleave_intra(), and gmr1_scramble_sbit().
void gmr1_ccch_encode | ( | ubit_t * | bits_e, |
const uint8_t * | l2 | ||
) |
Stateless GMR-1 CCCH channel coder.
[out] | bits_e | Data bits of a burst |
[in] | l2 | L2 packet data |
L2 data is 24 byte long, and bits_e is a 432 hard bit array to be mapped on a burst.
References gmr1_crc16.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Files | |
file | ambe.c |
Osmocom GMR-1 AMBE internal API. | |
file | frame.c |
Osmocom GMR-1 AMBE speech parameters to/from frame. | |
file | math.c |
Osmocom GMR-1 AMBE vocoder math functions. | |
file | private.h |
Osmocom GMR-1 AMBE vocoder private header. | |
file | synth.c |
Osmocom GMR-1 AMBE vocoder speech synthesis. | |
file | tables.c |
Osmocom GMR-1 AMBE vocoder tables. | |
file | tone.c |
Osmocom GMR-1 AMBE vocoder tone frames handling. | |
Data Structures | |
struct | ambe_raw_params |
AMBE encoded frame raw parameters. More... | |
struct | ambe_subframe |
AMBE subframe parameters. More... | |
struct | ambe_synth |
AMBE synthesizer state. More... | |
struct | ambe_decoder |
AMBE decoder state. More... | |
struct | tone_desc |
Structure describing a dual-frequency tone. More... | |
Macros | |
#define | AMBE_RATE 8000 |
AMBE sample rate (Hz) | |
#define | M_PIf (3.141592653589793f) |
Value of pi as a float. | |
Enumerations | |
enum | ambe_frame_type { AMBE_SPEECH , AMBE_SILENCE , AMBE_TONE } |
AMBE possible frame types. More... | |
Functions | |
void | ambe_decode_init (struct ambe_decoder *dec) |
Initializes decoder state. More... | |
void | ambe_decode_fini (struct ambe_decoder *dec) |
Release all resources associated with a decoder. More... | |
int | ambe_decode_frame (struct ambe_decoder *dec, int16_t *audio, int N, const uint8_t *frame, int bad) |
Decodes an AMBE frame to audio. More... | |
int | ambe_decode_dtx (struct ambe_decoder *dec, int16_t *audio, int N) |
Generates audio for DTX period. More... | |
void | ambe_frame_unpack_raw (struct ambe_raw_params *rp, const uint8_t *frame) |
Unpack a frame into its raw encoded parameters. More... | |
void | ambe_frame_decode_params (struct ambe_subframe *sf, struct ambe_subframe *sf_prev, struct ambe_raw_params *rp) |
Decodes the speech parameters for both subframes from raw params. More... | |
void | ambe_subframe_expand (struct ambe_subframe *sf) |
Expands the decoded subframe params to prepare for synthesis. More... | |
float | cosf_fast (float angle) |
Fast Cosinus approximation using a simple table. More... | |
float | sinf_fast (float angle) |
Fast Sinus approximation using a simple table. More... | |
void | ambe_fdct (float *out, float *in, int N, int M) |
Forward Discrete Cosine Transform (fDCT) More... | |
void | ambe_idct (float *out, float *in, int N, int M) |
Inverse Discrete Cosine Transform (iDCT) More... | |
void | ambe_fdft_fc (float *out_i, float *out_q, float *in, int N, int M) |
Forward Discrete Fourrier Transform (float->complex) More... | |
void | ambe_idft_cf (float *out, float *in_i, float *in_q, int N, int M) |
Inverse Discret Fourrier Transform (complex->float) More... | |
void | ambe_synth_init (struct ambe_synth *synth) |
Initialized Synthesizer state. More... | |
void | ambe_synth_enhance (struct ambe_synth *synth, struct ambe_subframe *sf) |
Apply the spectral magnitude enhancement on the subframe. More... | |
void | ambe_synth_audio (struct ambe_synth *synth, int16_t *audio, struct ambe_subframe *sf, struct ambe_subframe *sf_prev) |
Generate audio for a given subframe. More... | |
int | ambe_decode_tone (struct ambe_decoder *dec, int16_t *audio, int N, const uint8_t *frame) |
Decodes an AMBE tone frame. More... | |
Variables | |
const uint8_t | ambe_hpg_tbl [48][4] |
Number of harmonics per group for a given L (starts at L=9) | |
const float | ambe_gain_tbl [256][2] |
Gain (subframe 0, subframe 1) | |
const uint16_t | ambe_v_uv_tbl [64] |
V/UV decisions (subframe 0 = low byte. MSBs = low freq) | |
const float | ambe_prba12_tbl [128][2] |
PRBA[1:2]. | |
const float | ambe_prba34_tbl [64][2] |
PRBA[3:4]. | |
const float | ambe_prba57_tbl [128][3] |
PRBA[5:7]. | |
const float | ambe_hoc0_tbl [128][4] |
HOC for 1st frequency block. | |
const float | ambe_hoc1_tbl [64][4] |
HOC for 2nd frequency block. | |
const float | ambe_hoc2_tbl [64][4] |
HOC for 3rd frequency block. | |
const float | ambe_hoc3_tbl [64][4] |
HOC for last frequency block. | |
const float | ambe_sf0_interp_tbl [4] |
Interpolation ratios for subframe 0 magnitude prediction. | |
const float | ambe_sf0_perr14_tbl [64][4] |
Prediction Error [1:4] for subframe 0. | |
const float | ambe_sf0_perr58_tbl [32][4] |
Prediction Error [5:8] for subframe 0. | |
const uint8_t | ambe_hpg_tbl [48][4] |
Number of harmonics per group for a given L (starts at L=9) | |
const float | ambe_gain_tbl [256][2] |
Gain (subframe 0, subframe 1) | |
const uint16_t | ambe_v_uv_tbl [64] |
V/UV decisions (subframe 0 = low byte. MSBs = low freq) More... | |
const float | ambe_prba12_tbl [128][2] |
PRBA[1:2]. | |
const float | ambe_prba34_tbl [64][2] |
PRBA[3:4]. | |
const float | ambe_prba57_tbl [128][3] |
PRBA[5:7]. | |
const float | ambe_hoc0_tbl [128][4] |
HOC for 1st frequency block. | |
const float | ambe_hoc1_tbl [64][4] |
HOC for 2nd frequency block. | |
const float | ambe_hoc2_tbl [64][4] |
HOC for 3rd frequency block. | |
const float | ambe_hoc3_tbl [64][4] |
HOC for last frequency block. | |
const float | ambe_sf0_interp_tbl [4] |
Interpolation ratios for subframe 0 magnitude prediction. More... | |
const float | ambe_sf0_perr14_tbl [64][4] |
Prediction Error [1:4] for subframe 0. | |
const float | ambe_sf0_perr58_tbl [32][4] |
Prediction Error [5:8] for subframe 0. | |
enum ambe_frame_type |
int ambe_decode_dtx | ( | struct ambe_decoder * | dec, |
int16_t * | audio, | ||
int | N | ||
) |
Generates audio for DTX period.
[in] | dec | Decoder state structure |
[out] | audio | Output audio buffer |
[in] | N | number of audio samples to produce (152..168) |
Referenced by gmr1_codec_decode_dtx().
void ambe_decode_fini | ( | struct ambe_decoder * | dec | ) |
Release all resources associated with a decoder.
[in] | dec | Decoder state structure |
Referenced by gmr1_codec_release().
int ambe_decode_frame | ( | struct ambe_decoder * | dec, |
int16_t * | audio, | ||
int | N, | ||
const uint8_t * | frame, | ||
int | bad | ||
) |
Decodes an AMBE frame to audio.
[in] | dec | Decoder state structure |
[out] | audio | Output audio buffer |
[in] | N | number of audio samples to produce (152..168) |
[in] | frame | Frame data (10 bytes = 80 bits) |
[in] | bad | Bad Frame Indicator. Set to 1 if frame is corrupt |
Referenced by gmr1_codec_decode_frame().
void ambe_decode_init | ( | struct ambe_decoder * | dec | ) |
Initializes decoder state.
[in] | dec | Decoder state structure |
References ambe_synth_init(), ambe_subframe::f0, ambe_subframe::L, M_PIf, ambe_decoder::sf_prev, ambe_decoder::synth, and ambe_subframe::w0.
Referenced by gmr1_codec_alloc().
int ambe_decode_tone | ( | struct ambe_decoder * | dec, |
int16_t * | audio, | ||
int | N, | ||
const uint8_t * | frame | ||
) |
Decodes an AMBE tone frame.
[in] | dec | AMBE decoder state |
[out] | audio | Output audio buffer |
[in] | N | number of audio samples to produce (152..168) |
[in] | frame | Frame data (10 bytes = 80 bits). Must be tone frame ! |
void ambe_fdct | ( | float * | out, |
float * | in, | ||
int | N, | ||
int | M | ||
) |
Forward Discrete Cosine Transform (fDCT)
[out] | out | fDCT result buffer (freq domain, M elements) |
[in] | in | fDCT input buffer (time domain, N elements) |
[in] | N | Number of points of the DCT |
[in] | M | Limit to the number of frequency components (M <= N) |
References cosf_fast(), and M_PIf.
void ambe_fdft_fc | ( | float * | out_i, |
float * | out_q, | ||
float * | in, | ||
int | N, | ||
int | M | ||
) |
Forward Discrete Fourrier Transform (float->complex)
[out] | out_i | Real component result buffer (freq domain, N/2+1 elements) |
[out] | out_q | Imag component result buffer (freq domain, N/2+1 elements) |
[in] | in | Input buffer (time domain, M elements) |
[in] | N | Number of points of the DFT |
[in] | M | Limit to to the number of available time domain elements |
Since the input is float, the result is symmetric and so only one side is computed. The output index 0 is DC.
References cosf_fast(), M_PIf, and sinf_fast().
void ambe_frame_decode_params | ( | struct ambe_subframe * | sf, |
struct ambe_subframe * | sf_prev, | ||
struct ambe_raw_params * | rp | ||
) |
Decodes the speech parameters for both subframes from raw params.
[out] | sf | Array of 2 subframes data to fill-in |
[in] | sf_prev | Previous subframe 1 data |
[in] | rp | Encoded frame raw parameters |
References ambe_subframe::f0, ambe_subframe::f0log, and ambe_raw_params::pitch.
void ambe_frame_unpack_raw | ( | struct ambe_raw_params * | rp, |
const uint8_t * | frame | ||
) |
Unpack a frame into its raw encoded parameters.
[out] | rp | Encoded frame raw parameters to unpack into |
[in] | frame | Frame data (10 bytes = 80 bits) |
References ambe_raw_params::pitch.
void ambe_idct | ( | float * | out, |
float * | in, | ||
int | N, | ||
int | M | ||
) |
Inverse Discrete Cosine Transform (iDCT)
[out] | out | iDCT result buffer (time domain, N elements) |
[in] | in | iDCT input buffer (freq domain, M elements) |
[in] | N | Number of points of the DCT |
[in] | M | Limit to the number of frequency components (M <= N) |
References cosf_fast(), and M_PIf.
void ambe_idft_cf | ( | float * | out, |
float * | in_i, | ||
float * | in_q, | ||
int | N, | ||
int | M | ||
) |
Inverse Discret Fourrier Transform (complex->float)
[out] | out | Result buffer (time domain, M |
[in] | in_i | Real component input buffer (freq domain, N/2+1 elements) |
[in] | in_q | Imag component input buffer (freq domain, N/2+1 elements) |
[in] | N | Number of points of the DFT |
[in] | M | Limit to the number of time domain elements to generate |
The input is assumed to be symmetric and so only N/2+1 inputs are needed. DC component must be input index 0.
References cosf_fast(), M_PIf, and sinf_fast().
void ambe_subframe_expand | ( | struct ambe_subframe * | sf | ) |
Expands the decoded subframe params to prepare for synthesis.
[in] | sf | The subframe to expand |
References ambe_subframe::f0, ambe_subframe::L, M_PIf, ambe_subframe::Ml, ambe_subframe::Mlog, ambe_subframe::v_uv, ambe_subframe::Vl, and ambe_subframe::w0.
void ambe_synth_audio | ( | struct ambe_synth * | synth, |
int16_t * | audio, | ||
struct ambe_subframe * | sf, | ||
struct ambe_subframe * | sf_prev | ||
) |
Generate audio for a given subframe.
[in] | synth | Synthesizer state structure |
[out] | audio | Result buffer (80 samples) |
[in] | sf | Expanded subframe data for current subframe |
[in] | sf_prev | Expanded subframe data for prevous subframe |
void ambe_synth_enhance | ( | struct ambe_synth * | synth, |
struct ambe_subframe * | sf | ||
) |
Apply the spectral magnitude enhancement on the subframe.
[in] | synth | Synthesizer state structure |
[in] | sf | Expanded subframe data for subframe to enhance |
References cosf_fast(), ambe_subframe::L, M_PIf, ambe_subframe::Ml, ambe_synth::SE, and ambe_subframe::w0.
void ambe_synth_init | ( | struct ambe_synth * | synth | ) |
Initialized Synthesizer state.
[out] | synth | The structure to reset |
References ambe_synth::u_prev.
Referenced by ambe_decode_init().
float cosf_fast | ( | float | angle | ) |
Fast Cosinus approximation using a simple table.
[in] | angle | The angle value |
References M_PIf.
Referenced by ambe_fdct(), ambe_fdft_fc(), ambe_idct(), ambe_idft_cf(), and ambe_synth_enhance().
float sinf_fast | ( | float | angle | ) |
Fast Sinus approximation using a simple table.
[in] | angle | The angle value |
References M_PIf.
Referenced by ambe_fdft_fc(), and ambe_idft_cf().
const float ambe_sf0_interp_tbl[4] |
Interpolation ratios for subframe 0 magnitude prediction.
const uint16_t ambe_v_uv_tbl[64] |
V/UV decisions (subframe 0 = low byte. MSBs = low freq)
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
AMBE synthesizer state. More...
#include <private.h>
AMBE synthesizer state.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 puncturing implementation. More...
#include <osmocom/core/conv.h>
#include <osmocom/gmr1/l1/punct.h>
#include <errno.h>
#include <stdlib.h>
Functions | |
int | gmr1_puncturer_generate (struct osmo_conv_code *code, const struct gmr1_puncturer *punct_pre, const struct gmr1_puncturer *punct_main, const struct gmr1_puncturer *punct_post, int repeat) |
Generate convolutional code puncturing array for a osmo_conv_code. More... | |
Variables | |
const struct gmr1_puncturer | gmr1_punct_k5_12_P23 |
GMR-1 P(2;3) puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_12_P25 |
GMR-1 P(2;5) puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_12_Ps25 |
GMR-1 Ps(2;5) puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_12_P311 |
GMR-1 P(3;11) puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_12_P412 |
GMR-1 P(4;12) puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_12_Ps412 |
GMR-1 Ps(4;12) puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_12_P12 |
GMR-1 P(1;2) puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_12_Ps12 |
GMR-1 Ps(1;2) puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_12_A |
GMR-1 A puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_12_B |
GMR-1 B puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_12_C |
GMR-1 C puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_12_D |
GMR-1 D puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_12_E |
GMR-1 E puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_12_P38 |
GMR-1 P(3;8) puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_12_P26 |
GMR-1 P(2;6) puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_12_P37 |
GMR-1 P(3;7) puncturing code for the K=5 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_13_P16 |
GMR-1 P(1;6) puncturing code for the K=5 rate 1/3 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_13_P25 |
GMR-1 P(2;5) puncturing code for the K=5 rate 1/3 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_13_P15 |
GMR-1 P(1;5) puncturing code for the K=5 rate 1/3 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_13_Ps15 |
GMR-1 Ps(1;5) puncturing code for the K=5 rate 1/3 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_13_P78 |
GMR-1 P(7;8) puncturing code for the K=5 rate 1/3 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_15_P23 |
GMR-1 P(2;3) puncturing code for the K=5 rate 1/5 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_15_P53 |
GMR-1 P(5;3) puncturing code for the K=5 rate 1/5 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k5_15_Ps53 |
GMR-1 Ps(5;3) puncturing code for the K=5 rate 1/5 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k7_12_P23 |
GMR-1 P(2;3) puncturing code for the K=7 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k7_12_P410 |
GMR-1 P(4;10) puncturing code for the K=7 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k7_12_P512 |
GMR-1 P(5;12) puncturing code for the K=7 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k7_12_P116 |
GMR-1 P(1;16) puncturing code for the K=7 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k7_12_P148 |
GMR-1 P(1;48) puncturing code for the K=7 rate 1/2 conv coder. | |
const struct gmr1_puncturer | gmr1_punct_k7_12_P184 |
GMR-1 P(1;84) puncturing code for the K=7 rate 1/2 conv coder. | |
const struct gmr1_puncturer | gmr1_punct_k7_12_P1152 |
GMR-1 P(1;152) puncturing code for the K=7 rate 1/2 conv coder. | |
const struct gmr1_puncturer | gmr1_punct_k7_12_P45 |
GMR-1 P(4;5) puncturing code for the K=7 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k7_12_P245 |
GMR-1 P2(4;5) puncturing code for the K=7 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_12_P13 |
GMR-1 P(1;3) puncturing code for the K=9 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_12_P47 |
GMR-1 P(4;7) puncturing code for the K=9 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_12_P34 |
GMR-1 P(3;4) puncturing code for the K=9 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_12_P17 |
GMR-1 P(1;7) puncturing code for the K=9 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_12_P19 |
GMR-1 P(1;9) puncturing code for the K=9 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_12_P26 |
GMR-1 P(2;6) puncturing code for the K=9 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_12_P110 |
GMR-1 P(1;10) puncturing code for the K=9 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_12_P14 |
GMR-1 P(1;4) puncturing code for the K=9 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_12_P45 |
GMR-1 P(4;5) puncturing code for the K=9 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_12_P234 |
GMR-1 P2(3;4) puncturing code for the K=9 rate 1/2 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k6_14_P45 |
GMR-1 P(4;5) puncturing code for the K=6 rate 1/4 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_14_P148 |
GMR-1 P(14;8) puncturing code for the K=9 rate 1/4 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_14_P65 |
GMR-1 P(6;5) puncturing code for the K=9 rate 1/4 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_13_P12 |
GMR-1 P(1;2) puncturing code for the K=9 rate 1/3 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_13_P1213 |
GMR-1 P(12;13) puncturing code for the K=9 rate 1/3 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_13_P44 |
GMR-1 P(4;4) puncturing code for the K=9 rate 1/3 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_13_P33 |
GMR-1 P(3;3) puncturing code for the K=9 rate 1/3 conv coder. More... | |
const struct gmr1_puncturer | gmr1_punct_k9_13_P65 |
GMR-1 P(6;5) puncturing code for the K=9 rate 1/3 conv coder. More... | |
Osmocom GMR-1 puncturing implementation.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
AMBE subframe parameters. More...
#include <private.h>
AMBE subframe parameters.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Cambe_decoder | AMBE decoder state |
Cambe_raw_params | AMBE encoded frame raw parameters |
Cambe_subframe | AMBE subframe parameters |
Cambe_synth | AMBE synthesizer state |
Cchan_desc | |
Cgmr1_codec | Structure for GMR1 codec state |
Cgmr1_fcch_burst | |
Cgmr1_interleaver | GMR1 inter-burst (de)interleaver state |
Cgmr1_pi4cxpsk_burst | Pi4-CxPSK Burst format description |
Cgmr1_pi4cxpsk_data | Pi4-CxPSK Data segment description |
Cgmr1_pi4cxpsk_modulation | Pi4-CxPSK modulation description |
Cgmr1_pi4cxpsk_symbol | Pi4-CxPSK symbol description |
Cgmr1_pi4cxpsk_sync | Pi4-CxPSK Synchronization sequence segment description |
Cgmr1_puncturer | Structure describing a puncturing code |
Ctch3_state | |
Ctch9_state | |
Ctone_desc | Structure describing a dual-frequency tone |
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 AMBE vocoder math functions. More...
Functions | |
float | cosf_fast (float angle) |
Fast Cosinus approximation using a simple table. More... | |
float | sinf_fast (float angle) |
Fast Sinus approximation using a simple table. More... | |
void | ambe_fdct (float *out, float *in, int N, int M) |
Forward Discrete Cosine Transform (fDCT) More... | |
void | ambe_idct (float *out, float *in, int N, int M) |
Inverse Discrete Cosine Transform (iDCT) More... | |
void | ambe_fdft_fc (float *out_i, float *out_q, float *in, int N, int M) |
Forward Discrete Fourrier Transform (float->complex) More... | |
void | ambe_idft_cf (float *out, float *in_i, float *in_q, int N, int M) |
Inverse Discret Fourrier Transform (complex->float) More... | |
Osmocom GMR-1 AMBE vocoder math functions.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 L1 global definitions. More...
Go to the source code of this file.
Osmocom GMR-1 L1 global definitions.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Files | |
file | crc.h |
Osmocom GMR-1 CRC header. | |
file | crc.c |
Osmocom GMR-1 CRC implementation. | |
Variables | |
const struct osmo_crc8gen_code | gmr1_crc8 |
GMR-1 CRC8 g8(D) = D8 + D7 + D4 + D3 + D + 1. | |
const struct osmo_crc16gen_code | gmr1_crc12 |
GMR-1 CRC12 g12(D) = D12 + D11 + D3 + D2 + D + 1. | |
const struct osmo_crc16gen_code | gmr1_crc16 |
GMR-1 CRC16 g16(D) = D16 + D12 + D5 + 1. | |
const struct osmo_crc8gen_code | gmr1_crc8 |
GMR-1 CRC8 g8(D) = D8 + D7 + D4 + D3 + D + 1. More... | |
const struct osmo_crc16gen_code | gmr1_crc12 |
GMR-1 CRC12 g12(D) = D12 + D11 + D3 + D2 + D + 1. More... | |
const struct osmo_crc16gen_code | gmr1_crc16 |
GMR-1 CRC16 g16(D) = D16 + D12 + D5 + 1. More... | |
const struct osmo_crc16gen_code gmr1_crc12 |
GMR-1 CRC12 g12(D) = D12 + D11 + D3 + D2 + D + 1.
Referenced by gmr1_rach_encode().
const struct osmo_crc16gen_code gmr1_crc16 |
GMR-1 CRC16 g16(D) = D16 + D12 + D5 + 1.
Referenced by gmr1_bcch_encode(), gmr1_ccch_encode(), gmr1_facch3_encode(), gmr1_facch9_encode(), and gmr1_xch_dc12_encode().
const struct osmo_crc8gen_code gmr1_crc8 |
GMR-1 CRC8 g8(D) = D8 + D7 + D4 + D3 + D + 1.
Referenced by gmr1_rach_encode().
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 A5 ciphering algorithm header. More...
#include <stdint.h>
#include <osmocom/core/bits.h>
Go to the source code of this file.
Functions | |
void | gmr1_a5 (int n, uint8_t *key, uint32_t fn, int nbits, ubit_t *dl, ubit_t *ul) |
Main method to generate a A5/x cipher stream. More... | |
void | gmr1_a5_1 (uint8_t *key, uint32_t fn, int nbits, ubit_t *dl, ubit_t *ul) |
Generate a GMR-1 A5/1 cipher stream. More... | |
Osmocom GMR-1 A5 ciphering algorithm header.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Files | |
file | dkab.c |
Osmocom GMR-1 DKABs bursts implementation. | |
file | fcch.c |
Osmocom GMR-1 FCCH bursts implementation. | |
file | nb.c |
Osmocom GMR-1 Normal bursts descriptions. | |
file | pi4cxpsk.c |
Osmocom GMR-1 pi2-CBPSK, pi4-CBPSK and pi4-CQPSK modulation support implementation. | |
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 TCH9 channel coding implementation. More...
#include <stdint.h>
#include <string.h>
#include <osmocom/core/bits.h>
#include <osmocom/core/conv.h>
#include <osmocom/core/crc16gen.h>
#include <osmocom/gmr1/l1/conv.h>
#include <osmocom/gmr1/l1/crc.h>
#include <osmocom/gmr1/l1/interleave.h>
#include <osmocom/gmr1/l1/punct.h>
#include <osmocom/gmr1/l1/scramb.h>
#include <osmocom/gmr1/l1/tch9.h>
Functions | |
void | gmr1_tch9_encode (ubit_t *bits_e, const uint8_t *l2, enum gmr1_tch9_mode mode, const ubit_t *bits_sacch, const ubit_t *bits_status, const ubit_t *ciph, struct gmr1_interleaver *il) |
GMR-1 TCH9 channel coder. More... | |
void | gmr1_tch9_decode (uint8_t *l2, sbit_t *bits_sacch, sbit_t *bits_status, const sbit_t *bits_e, enum gmr1_tch9_mode mode, const ubit_t *ciph, struct gmr1_interleaver *il, int *conv_rv) |
GMR-1 TCH9 channel decoder. More... | |
Osmocom GMR-1 TCH9 channel coding implementation.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Files | |
file | interleave.h |
Osmocom GMR-1 interleaving header. | |
file | interleave.c |
Osmocom GMR-1 interleaving implementation. | |
Data Structures | |
struct | gmr1_interleaver |
GMR1 inter-burst (de)interleaver state. More... | |
Functions | |
void | gmr1_interleave_intra (void *out, const void *in, int N) |
GMR-1 intra burst inteleaver. More... | |
void | gmr1_deinterleave_intra (void *out, const void *in, int N) |
GMR-1 intra burst de-interleaver. More... | |
int | gmr1_interleaver_init (struct gmr1_interleaver *il, int N, int K) |
GMR-1 inter burst interleaver initializer. More... | |
void | gmr1_interleaver_fini (struct gmr1_interleaver *il) |
GMR-1 inter burst interleaver cleanup. More... | |
void | gmr1_interleave_inter (struct gmr1_interleaver *il, void *bits_epp, void *bits_ep) |
GMR-1 inter burst interleaver. More... | |
void | gmr1_deinterleave_inter (struct gmr1_interleaver *il, void *bits_ep, void *bits_epp) |
GMR-1 inter burst de-interleaver. More... | |
void gmr1_deinterleave_inter | ( | struct gmr1_interleaver * | il, |
void * | bits_ep, | ||
void * | bits_epp | ||
) |
GMR-1 inter burst de-interleaver.
[in] | il | The interleaver object |
[out] | bits_ep | N bits output from de-interleaver |
[in] | bits_epp | N bits input to de-interleaver |
bits_ep and bits_epp can be equal for inplace processing
References gmr1_interleaver::bits_cpp, gmr1_interleaver::K, gmr1_interleaver::N, and gmr1_interleaver::n.
void gmr1_deinterleave_intra | ( | void * | out, |
const void * | in, | ||
int | N | ||
) |
GMR-1 intra burst de-interleaver.
[out] | out | Deinterleaved bit array to write to |
[in] | in | Interleaved bit array to read from |
[in] | N | Dimension of the interleaving matrix |
Both arrays need to have a length of (8*N). This routine works for any type that has the same size as uint8_t like sbit_t or ubit_t.
Referenced by gmr1_bcch_decode(), gmr1_ccch_decode(), gmr1_facch3_decode(), gmr1_facch9_decode(), gmr1_rach_decode(), and gmr1_xch_dc12_decode().
void gmr1_interleave_inter | ( | struct gmr1_interleaver * | il, |
void * | bits_epp, | ||
void * | bits_ep | ||
) |
GMR-1 inter burst interleaver.
[in] | il | The interleaver object |
[out] | bits_epp | N bits output of interleaver |
[in] | bits_ep | N bits input to interleaver |
bits_ep and bits_epp can be equal for inplace processing
References gmr1_interleaver::bits_cpp, gmr1_interleaver::K, gmr1_interleaver::N, and gmr1_interleaver::n.
void gmr1_interleave_intra | ( | void * | out, |
const void * | in, | ||
int | N | ||
) |
GMR-1 intra burst inteleaver.
[out] | out | Interleaved bit array to write to |
[in] | in | Original bit array to read from |
[in] | N | Dimension of the interleaving matrix |
Both arrays need to have a length of (8*N). This routine works for any type that has the same size as uint8_t like sbit_t or ubit_t.
void gmr1_interleaver_fini | ( | struct gmr1_interleaver * | il | ) |
GMR-1 inter burst interleaver cleanup.
[in] | il | The interleaver object to release |
References gmr1_interleaver::bits_cpp.
int gmr1_interleaver_init | ( | struct gmr1_interleaver * | il, |
int | N, | ||
int | K | ||
) |
GMR-1 inter burst interleaver initializer.
[in] | il | The interleaver object to init |
[in] | N | The interleaving depth |
[in] | K | The interleaving width |
References gmr1_interleaver::bits_cpp, gmr1_interleaver::K, and gmr1_interleaver::N.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 TCH3 channel coding header. More...
#include <stdint.h>
#include <osmocom/core/bits.h>
Go to the source code of this file.
Functions | |
void | gmr1_tch3_encode (ubit_t *bits_e, const uint8_t *frame0, const uint8_t *frame1, const ubit_t *bits_s, const ubit_t *ciph, int m) |
Stateless GMR-1 TCH3 channel coder. More... | |
void | gmr1_tch3_decode (uint8_t *frame0, uint8_t *frame1, ubit_t *bits_s, const sbit_t *bits_e, const ubit_t *ciph, int m, int *conv0_rv, int *conv1_rv) |
Stateless GMR-1 TCH3 channel decoder. More... | |
Osmocom GMR-1 TCH3 channel coding header.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Data Fields | |
int | active |
int | tn |
struct gmr1_interleaver | il |