Commit graph

58 commits

Author SHA1 Message Date
Ahmet Inan
4d43a58b19 show number of bit flips 2024-02-22 10:29:34 +01:00
Ahmet Inan
567319214c use precision estimate from each OFDM symbol 2024-02-22 10:29:34 +01:00
Ahmet Inan
2039af90a2 simplified precision estimation 2024-02-22 10:29:34 +01:00
Ahmet Inan
fdc11fcec7 candidates are sorted now 2024-02-09 13:48:32 +01:00
Ahmet Inan
fd43c54e56 operation mode comes before call sign 2024-01-28 12:42:21 +01:00
Ahmet Inan
7d104033e1 added support for multiple input files 2024-01-20 10:58:09 +01:00
Ahmet Inan
81c02e5207 include cstdint 2024-01-04 07:23:08 +01:00
Ahmet Inan
c1253cd299 only allow statistics on c++ language v1.0 2021-10-22 12:26:01 +02:00
Ahmet Inan
0fac5fc62b added prepare() 2021-10-08 11:30:20 +02:00
Ahmet Inan
d22e18bb91 omit postamble 2021-10-06 17:26:30 +02:00
Ahmet Inan
2c72572e27 Revert "estimate SFO by cross-correlating S&C symbols"
This reverts commit 96ea292b0c.
2021-09-17 22:52:53 +02:00
Ahmet Inan
b7c5393b09 stream instead of playing ping pong 2021-09-12 10:16:00 +02:00
Ahmet Inan
da855f6510 replace "-" with "/dev/stdin" or "/dev/stdout" 2021-09-12 10:15:47 +02:00
Ahmet Inan
96ea292b0c estimate SFO by cross-correlating S&C symbols 2021-09-07 00:19:06 +02:00
Ahmet Inan
56bd51012c show a dot for each symbol demodulated 2021-09-06 16:11:15 +02:00
Ahmet Inan
ba102a5799 added next_sample() 2021-09-06 12:12:13 +02:00
Ahmet Inan
b7855e2c2c use operation mode zero to signal end of transmission 2021-09-06 08:22:56 +02:00
Ahmet Inan
daa47615d3 do the demodulation online using the first preamble 2021-09-06 00:06:33 +02:00
Ahmet Inan
7b45ee894d use the Theil-Sen estimator on each symbol 2021-09-03 20:52:47 +02:00
Ahmet Inan
8d62a3c90b estimate SFO and CFO via simple linear regression
and compensate by correcting constellation points
2021-09-03 20:52:47 +02:00
Ahmet Inan
5c2743f5e7 do not resample 2021-09-03 20:52:47 +02:00
Ahmet Inan
99b6a4e963 use a shortened systematic polar code and CA-SCL decoding
using SPC(64800, 43072):
mode 6: 8PSK, 2700 Hz BW and about 10 seconds long
mode 7: 8PSK, 2500 Hz BW and about 11 seconds long
mode 8: QPSK, 2500 Hz BW and about 16 seconds long
mode 9: QPSK, 2250 Hz BW and about 18 seconds long

using SPC(64512, 43072):
mode 10: 8PSK, 3200 Hz BW and about 9 seconds long
mode 11: 8PSK, 2400 Hz BW and about 11 seconds long
mode 12: QPSK, 2400 Hz BW and about 16 seconds long
mode 13: QPSK, 1600 Hz BW and about 24 seconds long
2021-09-03 20:52:09 +02:00
Ahmet Inan
a3a56bc830 freq offset needs to be divisible by 50.
use disorders/cfo if you need finer control
2021-09-03 20:50:33 +02:00
Ahmet Inan
3665d495b7 added demod_or_erase() helper function 2021-08-29 17:47:20 +02:00
Ahmet Inan
d1adc5c5ca erase constellation points outside of radius two 2021-08-28 18:00:19 +02:00
Ahmet Inan
1d02d34e8c Revert "increased guard interval to 1/4"
This reverts commit 7c7ed0ffd7.
2021-08-25 11:41:02 +02:00
Ahmet Inan
5270c7d38f increase power of S&C symbol by two 2021-08-20 21:12:58 +02:00
Ahmet Inan
c81f3a15f9 skip PAPR reduction on S&C symbol 2021-08-20 21:09:00 +02:00
Ahmet Inan
7c7ed0ffd7 increased guard interval to 1/4
to reduce ISI and support sample rates 11025 Hz and 22050 Hz
2021-07-27 13:14:00 +02:00
Ahmet Inan
8d5d7fc0c2 use the DVB recommended T=10 BCH code 2021-07-21 17:15:47 +02:00
Ahmet Inan
6f99db1444 improve CFO estimation using hard decision 2021-07-21 00:12:59 +02:00
Ahmet Inan
357a90805c use a simpler estimation for finer CFO 2021-07-20 21:47:49 +02:00
Ahmet Inan
ef152cc53f scramble user data only using Xorshift32 2021-07-18 04:48:32 +02:00
Ahmet Inan
2645f96056 added support for various operation modes:
mode 2: 8PSK, 2700 Hz bandwidth and about 10 seconds long
mode 3: 8PSK, 2500 Hz bandwidth and about 11 seconds long
mode 4: QPSK, 2500 Hz bandwidth and about 16 seconds long
mode 5: QPSK, 2250 Hz bandwidth and about 18 seconds long
2021-06-16 19:54:55 +02:00
Ahmet Inan
fa1cc128be use BPSK for the pilot blocks 2021-06-16 19:53:28 +02:00
Ahmet Inan
463836c41f made number of active carriers a constructor argument 2021-06-16 15:16:01 +02:00
Ahmet Inan
07682ac19f added cross-compilation and testing for ARMv7 with NEON 2021-06-15 07:55:08 +02:00
Ahmet Inan
62b07d2d4c make the gcc compiler happy 2021-06-15 07:51:28 +02:00
Ahmet Inan
40ec9a5604 do the clipping in 4x oversampled time domain 2021-06-14 21:43:45 +02:00
Ahmet Inan
42144b8e8a limit introduced noise to active carriers only 2021-06-14 15:52:53 +02:00
Ahmet Inan
39ec8e81a5 improve PAPR by hard clipping the magnitude 2021-06-14 14:00:40 +02:00
Ahmet Inan
82c279f13b minor cleanup 2021-06-13 14:45:44 +02:00
Ahmet Inan
5a6e5cd995 removed payload CRC check: let user decide 2021-06-13 14:35:51 +02:00
Ahmet Inan
c87bfc6e78 added nrz() helper function 2021-06-13 14:19:46 +02:00
Ahmet Inan
5f4c2cdba9 compute descrambled constellations only once 2021-06-13 11:50:55 +02:00
Ahmet Inan
4683e531fe handle erasures produced by LDPC decoding 2021-06-12 13:27:08 +02:00
Ahmet Inan
a1c0ab3d25 interleave bits for improved LDPC performance 2021-06-12 12:15:34 +02:00
Ahmet Inan
a07fe52134 scramble I and Q using two independent sequences 2021-06-11 22:52:01 +02:00
Ahmet Inan
30f39ce41b estimate SNR using corrected symbols 2021-06-11 11:12:52 +02:00
Ahmet Inan
7e362ae224 estimate SNR using hard decision 2021-06-11 11:12:52 +02:00