html/ 0000755 0001750 0001750 00000000000 14751004232 011000 5 ustar build build html/fcch_8c.js 0000644 0001750 0001750 00000001212 14751004232 012627 0 ustar build build var fcch_8c = [ [ "gmr1_fcch_fine", "group__fcch.html#ga2b1c8329ac1c8cae7414d2ca4619f17f", null ], [ "gmr1_fcch_rough", "group__fcch.html#ga14e6b77fe05bf2ef7600204ba6818a47", null ], [ "gmr1_fcch_rough_multi", "group__fcch.html#ga822f719832670df978c08008c2e7a3df", null ], [ "gmr1_fcch_snr", "group__fcch.html#ga614cf46fe5e868c8b573491736487fba", null ], [ "gmr1_fcch3_lband_burst", "group__fcch.html#ga6598bb31a09a997eaa079838babc2f25", null ], [ "gmr1_fcch3_sband_burst", "group__fcch.html#ga20cea569bd20f7c7a3b14420c9301b1b", null ], [ "gmr1_fcch_burst", "group__fcch.html#ga09ca32ce9f0bbe6d6d5b7977aae2758f", null ] ]; html/punct_8c.html 0000644 0001750 0001750 00000123625 14751004232 013422 0 ustar build build
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
|
Osmocom GMR-1 AMBE vocoder speech synthesis. More...
Functions | |
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... | |
Osmocom GMR-1 AMBE vocoder speech synthesis.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Files | |
file | conv.h |
Osmocom GMR-1 convolutional coding header. | |
file | conv.c |
Osmocom GMR-1 convolutional coding implementation. | |
Enumerations | |
enum | osmo_conv_term |
Variables | |
CONV_TERM_FLUSH | |
CONV_TERM_TRUNCATION | |
CONV_TERM_TAIL_BITING | |
const struct osmo_conv_code | gmr1_conv_k5_12 |
GMR-1 constraint length 5, rate 1/2 convolutional code. | |
const struct osmo_conv_code | gmr1_conv_k5_13 |
GMR-1 constraint length 5, rate 1/3 convolutional code. | |
const struct osmo_conv_code | gmr1_conv_k5_14 |
GMR-1 constraint length 5, rate 1/4 convolutional code. | |
const struct osmo_conv_code | gmr1_conv_k5_15 |
GMR-1 constraint length 5, rate 1/5 convolutional code. | |
const struct osmo_conv_code | gmr1_conv_k6_14 |
GMR-1 constraint length 6, rate 1/4 convolutional code. | |
const struct osmo_conv_code | gmr1_conv_k9_12 |
GMR-1 constraint length 9, rate 1/2 convolutional code. | |
const struct osmo_conv_code | gmr1_conv_k9_13 |
GMR-1 constraint length 9, rate 1/3 convolutional code. | |
const struct osmo_conv_code | gmr1_conv_k9_14 |
GMR-1 constraint length 9, rate 1/4 convolutional code. | |
const struct osmo_conv_code | gmr1_conv_tch3 |
GMR-1 TCH3 speech tail-biting convolutional code. | |
const struct osmo_conv_code | gmr1_conv_k5_12 |
GMR-1 constraint length 5, rate 1/2 convolutional code. More... | |
const struct osmo_conv_code | gmr1_conv_k5_13 |
GMR-1 constraint length 5, rate 1/3 convolutional code. More... | |
const struct osmo_conv_code | gmr1_conv_k5_14 |
GMR-1 constraint length 5, rate 1/4 convolutional code. More... | |
const struct osmo_conv_code | gmr1_conv_k5_15 |
GMR-1 constraint length 5, rate 1/5 convolutional code. More... | |
const struct osmo_conv_code | gmr1_conv_k6_14 |
GMR-1 constraint length 6, rate 1/4 convolutional code. More... | |
const struct osmo_conv_code | gmr1_conv_k9_12 |
GMR-1 constraint length 9, rate 1/2 convolutional code. More... | |
const struct osmo_conv_code | gmr1_conv_k9_13 |
GMR-1 constraint length 9, rate 1/3 convolutional code. More... | |
const struct osmo_conv_code | gmr1_conv_k9_14 |
GMR-1 constraint length 9, rate 1/4 convolutional code. More... | |
const struct osmo_conv_code | gmr1_conv_tch3 |
GMR-1 TCH3 speech tail-biting convolutional code. More... | |
const struct osmo_conv_code gmr1_conv_k5_12 |
GMR-1 constraint length 5, rate 1/2 convolutional code.
const struct osmo_conv_code gmr1_conv_k5_13 |
GMR-1 constraint length 5, rate 1/3 convolutional code.
const struct osmo_conv_code gmr1_conv_k5_14 |
GMR-1 constraint length 5, rate 1/4 convolutional code.
const struct osmo_conv_code gmr1_conv_k5_15 |
GMR-1 constraint length 5, rate 1/5 convolutional code.
const struct osmo_conv_code gmr1_conv_k6_14 |
GMR-1 constraint length 6, rate 1/4 convolutional code.
const struct osmo_conv_code gmr1_conv_k9_12 |
GMR-1 constraint length 9, rate 1/2 convolutional code.
const struct osmo_conv_code gmr1_conv_k9_13 |
GMR-1 constraint length 9, rate 1/3 convolutional code.
const struct osmo_conv_code gmr1_conv_k9_14 |
GMR-1 constraint length 9, rate 1/4 convolutional code.
const struct osmo_conv_code gmr1_conv_tch3 |
GMR-1 TCH3 speech tail-biting convolutional code.
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
|
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 RACH channel coding header. More...
Go to the source code of this file.
Functions | |
void | gmr1_rach_encode (ubit_t *bits_e, const uint8_t *rach, uint8_t sb_mask) |
Stateless GMR-1 RACH channel coder. More... | |
int | gmr1_rach_decode (uint8_t *rach, const sbit_t *bits_e, uint8_t sb_mask, int *conv_rv, int *crc_rv) |
Stateless GMR-1 RACH channel decoder. More... | |
Osmocom GMR-1 RACH channel coding header.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 CRC implementation. More...
Variables | |
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... | |
Osmocom GMR-1 CRC implementation.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 Normal bursts header. More...
Go to the source code of this file.
Variables | |
struct gmr1_pi4cxpsk_burst | gmr1_bcch_burst |
BCCH bursts See GMR-1 05.002 (ETSI TS 101 376-5-2 V1.1.1) - Section 7.4.2. | |
struct gmr1_pi4cxpsk_burst | gmr1_dc2_burst |
DC2 bursts See GMR-1 05.002 (ETSI TS 101 376-5-2 V1.1.1) - Section 7.4.4. | |
struct gmr1_pi4cxpsk_burst | gmr1_dc6_burst |
DC6 bursts See GMR-1 05.002 (ETSI TS 101 376-5-2 V1.1.1) - Section 7.4.5. | |
struct gmr1_pi4cxpsk_burst | gmr1_dc12_burst |
DC12 bursts See GMR-1 05.002 (ETSI TS 101 376-5-2 V3.1.1) - Section 7.4.16. | |
struct gmr1_pi4cxpsk_burst | gmr1_nt3_speech_burst |
NT3 bursts for encoded speech See GMR-1 05.002 (ETSI TS 101 376-5-2 V1.1.1) - Section 7.4.8.1. | |
struct gmr1_pi4cxpsk_burst | gmr1_nt3_facch_burst |
NT3 bursts for FACCH See GMR-1 05.002 (ETSI TS 101 376-5-2 V1.1.1) - Section 7.4.8.2. | |
struct gmr1_pi4cxpsk_burst | gmr1_nt6_burst |
NT6 bursts See GMR-1 05.002 (ETSI TS 101 376-5-2 V1.1.1) - Section 7.4.9. | |
struct gmr1_pi4cxpsk_burst | gmr1_nt9_burst |
NT9 bursts See GMR-1 05.002 (ETSI TS 101 376-5-2 V1.1.1) - Section 7.4.10. | |
struct gmr1_pi4cxpsk_burst | gmr1_rach_burst |
RACH bursts See GMR-1 05.002 (ETSI TS 101 376-5-2 V1.1.1) - Section 7.4.11. | |
struct gmr1_pi4cxpsk_burst | gmr1_sdcch_burst |
SDCCH bursts See GMR-1 05.002 (ETSI TS 101 376-5-2 V1.1.1) - Section 7.4.12. | |
Osmocom GMR-1 Normal bursts header.
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 | pi4cxpsk.h |
Osmocom GMR-1 pi2-CBPSK, pi4-CBPSK and pi4-CQPSK modulation support header. | |
file | pi4cxpsk.c |
Osmocom GMR-1 pi2-CBPSK, pi4-CBPSK and pi4-CQPSK modulation support implementation. | |
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 | |
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... | |
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.
[in] | burst_type | Burst format description |
[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) |
[out] | ebits | Encoded soft bits return array |
[out] | sync_id_p | Pointer to sync sequence id return variable |
[out] | toa_p | Pointer to TOA return variable |
[out] | freq_err_p | Pointer to frequency error return variable (rad/sym) |
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.
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.
[in] | burst_types | Array of burst types to test (NULL terminated) |
[in] | e_toa | Expected time of arrival |
[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) |
[out] | bt_id_p | Pointer to burst type ID return variable |
[out] | sync_id_p | Pointer to sync sequence id return variable |
[out] | toa_p | Pointer to TOA return variable |
The various burst types must be compatible in length and modulation !
References osmo_cxvec_sig_normalize(), and gmr1_pi4cxpsk_modulation::rotation.
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)
[in] | burst_type | Burst format description |
[in] | ebits | Encoded hard bits to pack in the burst |
[in] | sync_id | The sequence id to use (0 if burst_type only has one) |
[out] | burst_out | Complex signal to fill with modulated symbols |
burst_out is expected to be long enough to contains the resulting symbols see the burst_type structure for how long that is.
References osmo_cxvec::len, gmr1_pi4cxpsk_burst::len, osmo_cxvec::max_len, and gmr1_pi4cxpsk_burst::mod.
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.
[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) |
Since x^4 only make sense for pi/4 variant, the pi/4 counter rotation is always applied.
References M_PIf, and osmo_cxvec_sig_normalize().
struct gmr1_pi4cxpsk_modulation gmr1_pi2cbpsk |
struct gmr1_pi4cxpsk_modulation gmr1_pi4cbpsk |
pi4-CBPSK modulation description
struct gmr1_pi4cxpsk_modulation gmr1_pi4cqpsk |
pi4-CQPSK modulation description
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
|
structure describing a puncturing code More...
#include <punct.h>
Data Fields | |
int | r |
Number of punctured bits. | |
int | L |
Length of the puncturing mask. | |
int | N |
Rate of the punctured convolutional code (1/N) | |
const uint8_t | mask [] |
Puncturing mask. | |
structure describing a puncturing code
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
|
Modules | |
A5 ciphering algorithm | |
Channel coding primitives | |
Channel coder / decoders | |
Files | |
file | defs.h |
Osmocom GMR-1 L1 global definitions. | |
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 BCCH 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_bcch_encode (ubit_t *bits_e, const uint8_t *l2) |
Stateless GMR-1 BCCH channel coder. More... | |
int | gmr1_bcch_decode (uint8_t *l2, const sbit_t *bits_e, int *conv_rv) |
Stateless GMR-1 BCCH channel decoder. More... | |
Osmocom GMR-1 BCCH channel coding implementation.
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
|
Osmocom GMR-1 FACCH9 channel coding header. More...
Go to the source code of this file.
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 header.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Modules | |
AMBE vocoder - internal API | |
Files | |
file | codec.h |
Osmocom GMR-1 AMBE vocoder header. | |
file | codec.c |
Osmocom GMR-1 AMBE vocoder public API implementation. | |
Data Structures | |
struct | gmr1_codec |
Structure for GMR1 codec state. More... | |
Functions | |
struct gmr1_codec * | gmr1_codec_alloc (void) |
Allocates and inits a codec object. More... | |
void | gmr1_codec_release (struct gmr1_codec *codec) |
Release a codec object created by gmr1_codec_alloc. More... | |
int | gmr1_codec_decode_frame (struct gmr1_codec *codec, int16_t *audio, int N, const uint8_t *frame, int bad) |
Decodes an AMBE frame to audio. More... | |
int | gmr1_codec_decode_dtx (struct gmr1_codec *codec, int16_t *audio, int N) |
Generates audio for DTX period. More... | |
struct gmr1_codec * gmr1_codec_alloc | ( | void | ) |
Allocates and inits a codec object.
References ambe_decode_init(), and gmr1_codec::dec.
int gmr1_codec_decode_dtx | ( | struct gmr1_codec * | codec, |
int16_t * | audio, | ||
int | N | ||
) |
Generates audio for DTX period.
[in] | codec | Codec object |
[out] | audio | Output audio buffer |
[in] | N | number of audio samples to produce (152..168) |
References ambe_decode_dtx(), and gmr1_codec::dec.
int gmr1_codec_decode_frame | ( | struct gmr1_codec * | codec, |
int16_t * | audio, | ||
int | N, | ||
const uint8_t * | frame, | ||
int | bad | ||
) |
Decodes an AMBE frame to audio.
[in] | codec | Codec object |
[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 |
References ambe_decode_frame(), and gmr1_codec::dec.
void gmr1_codec_release | ( | struct gmr1_codec * | codec | ) |
Release a codec object created by gmr1_codec_alloc.
[in] | codec | The codec object to release |
References ambe_decode_fini(), and gmr1_codec::dec.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 CRC header. More...
#include <osmocom/core/crcgen.h>
Go to the source code of this file.
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. | |
Osmocom GMR-1 CRC header.
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
|
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 CCCH (PCH/AGCH) 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_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... | |
Osmocom GMR-1 CCCH (PCH/AGCH) channel coding implementation.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
pi4-CxPSK Synchronization sequence segment description More...
#include <pi4cxpsk.h>
Data Fields | |
int | pos |
Sync Position | |
int | len |
Sync Length | |
uint8_t | syms [GMR1_MAX_SYNC_SYMS] |
Sync Symbols | |
struct osmo_cxvec * | _ref |
Ref signal | |
pi4-CxPSK Synchronization sequence segment description
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 FCCH bursts header. More...
#include <osmocom/dsp/cxvec.h>
Go to the source code of this file.
Data Structures | |
struct | gmr1_fcch_burst |
Functions | |
int | gmr1_fcch_rough (const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *search_win_in, int sps, float freq_shift, int *toa) |
Rough FCCH timing acquisition. More... | |
int | gmr1_fcch_rough_multi (const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *search_win_in, int sps, float freq_shift, int *peaks_toa, int N) |
Rough FCCH timing acquisition w/ multiple FCCH detection. More... | |
int | gmr1_fcch_fine (const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *burst_in, int sps, float freq_shift, int *toa, float *freq_error) |
Fine FCCH timing & frequency acquisition. More... | |
int | gmr1_fcch_snr (const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *burst_in, int sps, float freq_shift, float *snr) |
SNR estimation on a FCCH burst. More... | |
Variables | |
const struct gmr1_fcch_burst | gmr1_fcch_burst |
FCCH burst (GMR-1 version) See GMR-1 05.004 (ETSI TS 101 376-5-2 V3.1.1) - Section 8.1. | |
const struct gmr1_fcch_burst | gmr1_fcch3_lband_burst |
FCCH3 L-band burst (GMR-1 3G version for L-band) See GMR-1 05.004 (ETSI TS 101 376-5-2 V3.1.1) - Section 8.2.1. | |
const struct gmr1_fcch_burst | gmr1_fcch3_sband_burst |
FCCH3 S-band burst (GMR-1 3G version for S-band) See GMR-1 05.004 (ETSI TS 101 376-5-2 V3.1.1) - Section 8.2.2. | |
Osmocom GMR-1 FCCH bursts 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(), gmr1_scramble_sbit(), and osmo_conv_decode().
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_conv_encode(), osmo_crc16gen_set_bits(), and osmo_pbit2ubit_ext().
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Structure for GMR1 codec state. More...
Data Fields | |
struct ambe_decoder | dec |
Decoder state. | |
Structure for GMR1 codec state.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Modules | |
Convolutional coding | |
Cyclic Redundancy Check | |
Interleaving | |
Puncturing | |
Scrambling | |
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 FACCH3 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_facch3_encode (ubit_t *bits_e, const uint8_t *l2, const ubit_t *bits_s, const ubit_t *ciph) |
Stateless GMR-1 FACCH3 channel coder. More... | |
int | gmr1_facch3_decode (uint8_t *l2, ubit_t *bits_s, const sbit_t *bits_e, const ubit_t *ciph, int *conv_rv) |
Stateless GMR-1 FACCH3 channel decoder. More... | |
Osmocom GMR-1 FACCH3 channel coding implementation.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Osmocom GMR-1 AMBE vocoder private header. More...
#include <stdint.h>
Go to the source code of this file.
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... | |
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... | |
Osmocom GMR-1 AMBE vocoder private header.
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
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
|
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|
Data Fields | |
float | freq |
Frequency sweep range. | |
int | len |
Burst duration in symbols. | |
osmo-gmr 0.2.104-2b98
Osmocom GMR-1
|