html/ 0000755 0001750 0001750 00000000000 15103512404 010775 5 ustar build build html/fcch_8c.js 0000644 0001750 0001750 00000001212 15103512404 012624 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 15103512403 013416 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
|