Commit graph

59 commits

Author SHA1 Message Date
Ahmet Inan
fff6c60bbe added six new modes
Mode 23: DQPSK, 1/2-rate code, 1600 Hz bandwidth and 1.08 seconds
Mode 24: DQPSK, 3/4-rate code, 1600 Hz bandwidth and 1.08 seconds
Mode 25: QAM16, 1/2-rate code, 1700 Hz bandwidth and 1.08 seconds
Mode 26: QAM16, 3/4-rate code, 1700 Hz bandwidth and 1.08 seconds
Mode 27: QAM64, 2/3-rate code, 1900 Hz bandwidth and 1.26 seconds
Mode 28: QAM64, 3/4-rate code, 1900 Hz bandwidth and 1.26 seconds
2023-12-26 11:28:56 +01:00
Ahmet Inan
b93079de81 compensate using comb type pilots 2023-12-18 13:23:13 +01:00
Ahmet Inan
71cc33e481 do unlimited clipping before the PCM writer does it 2023-12-18 10:13:32 +01:00
Ahmet Inan
d978bb0be6 base modulation order from mod_bits 2023-12-17 11:45:01 +01:00
Ahmet Inan
513664a0e3 shuffle the code bits 2023-12-16 08:30:47 +01:00
Ahmet Inan
dc1a5b2ef7 removed the extra pilot block 2023-12-16 08:05:17 +01:00
Ahmet Inan
7a87215eb3 doubled symbols and payload size 2023-12-15 20:17:38 +01:00
Ahmet Inan
cd9d912711 changed four QPSK symbols to two QAM16 symbols 2023-12-15 19:14:58 +01:00
Ahmet Inan
d1a2ec19f0 added three new, non-differential modes 2023-12-15 18:38:54 +01:00
Ahmet Inan
a37246b7a0 limit the amount of damage clipping can do 2023-12-15 12:51:54 +01:00
Ahmet Inan
4d63fc5df0 keep it simple 2023-12-15 11:54:11 +01:00
Ahmet Inan
ae4d601e96 added reserved tones parameter 2023-12-15 11:44:47 +01:00
Ahmet Inan
5eb0e100a7 let's seem them both work together 2023-12-15 10:50:29 +01:00
Ahmet Inan
ace307de9c increased amplitude to see PAPR reduction work 2023-12-15 10:45:50 +01:00
Ahmet Inan
c8f1096474 allow up to a hundred iterations 2023-12-15 10:35:16 +01:00
Ahmet Inan
0b99170d62 eight reserved tones are enough 2023-12-14 16:56:34 +01:00
Ahmet Inan
d32860f7af derive from number of reserved tones 2023-12-14 16:56:34 +01:00
Ahmet Inan
c851ed2a5a stop papr reduction if goal is reached 2023-12-14 16:56:27 +01:00
Ahmet Inan
d3a37c9e83 use the tone reservation technique to improve PAPR 2023-12-14 10:51:43 +01:00
Ahmet Inan
bf382cfe77 improved some names 2023-12-14 10:23:21 +01:00
Ahmet Inan
b2c0e56c4f compute the complex PAPR
even though we only use the real part
2023-12-14 09:14:58 +01:00
Ahmet Inan
0cf139ddaf we already are oversampled 2023-12-14 08:51:25 +01:00
Ahmet Inan
7c693b1075 set default CFO to 1500 Hz 2023-03-08 08:32:39 +01:00
Ahmet Inan
6f58e93018 added support for modes 0, 15 and 16 2023-01-04 15:37:23 +01:00
Ahmet Inan
d3075d33c9 replace EOF with null terminator 2022-12-25 16:24:05 +01:00
Ahmet Inan
34fd021161 use only 50% of the suffix for windowing 2022-12-23 13:35:09 +01:00
Ahmet Inan
41795780cb added mode 14 for short messages
using SPC(2048, 1392), QPSK, 1600 Hz BW and about 1 second long
2022-05-18 23:14:26 +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
da855f6510 replace "-" with "/dev/stdin" or "/dev/stdout" 2021-09-12 10:15:47 +02:00
Ahmet Inan
b7855e2c2c use operation mode zero to signal end of transmission 2021-09-06 08:22:56 +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
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
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
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