Thomas Kolb
1787d0d351
layer1: implement per-packet modulation/coding
...
This allows a higher layer to adjust data rate based on the current
channel conditions. For example, the SNR could be measured and if it
becomes too low for the current modulation/code, a lower-order
modulation or stronger code could be used.
2022-02-17 21:39:18 +01:00
Thomas Kolb
0ed7109335
Clean up debug output
2022-02-16 21:46:56 +01:00
Thomas Kolb
876bafd6f9
Moved receiver to separate module
2022-02-16 20:52:46 +01:00
Thomas Kolb
a5634ed736
Move the transmission chain to a separate "tx" module
2022-02-13 21:29:35 +01:00
Thomas Kolb
97772fa12b
Removed unused packet_demod
2022-02-13 20:06:14 +01:00
Thomas Kolb
513a399ae4
Refactoring: moved layer1-related stuff to subdirectory
2022-02-13 20:05:47 +01:00
Thomas Kolb
a124c04021
plot_spectrum: ensure that the t and f array sizes match
2022-02-13 19:54:07 +01:00
Thomas Kolb
89f04b3ad0
plot_constellation: added guard lines
2022-02-13 19:53:17 +01:00
Thomas Kolb
eb3fc5f9c7
Use data whitening
2022-02-12 22:06:49 +01:00
Thomas Kolb
87b844a2da
Implement CRC check and phase tracking
2022-02-12 21:58:53 +01:00
Thomas Kolb
947615f5cd
First complete RX chain
...
Decoding of the test message works down to ~10 dB SNR.
Still missing:
- Phase tracking during header and payload.
- CRC calculation and check.
- Data whitening.
2022-02-11 17:56:26 +01:00
Thomas Kolb
042c05f9f3
Decode the received header
2022-02-10 22:33:51 +01:00
Thomas Kolb
f2c95a125d
Use new frequency+phase estimation method for preamble
2022-02-06 18:04:31 +01:00
Thomas Kolb
8060137c1d
Move frequency estimation to separate module
2022-02-05 20:33:56 +01:00
Thomas Kolb
465d9a1c26
main: restructure state management; evaluate a found preamble
2022-02-03 22:18:24 +01:00
Thomas Kolb
423f1d6416
correlator: added functions for phase and frequency estimation
2022-02-03 22:17:37 +01:00
Thomas Kolb
c17c7e060f
Integrate preamble search
2022-02-01 21:35:43 +01:00
Thomas Kolb
b6713909f7
Make initial frequency sync much faster
...
The NCO frequency is now only adjusted every 8 symbols. That means that
the frequency error over the last 8 symbols before the adjustment is
(almost) constant, giving a good estimation result. Therefore, the
adjustment factor can be much larger than previously, leading to faster
acquisition time.
2022-01-30 20:23:41 +01:00
Thomas Kolb
c1dd039d6b
First shot at frequency synchronization
...
Supports only the BPSK part so far (ramp-up, preamble).
2022-01-30 20:05:20 +01:00
Thomas Kolb
09465591ed
Added symsync to the receiver chain
2022-01-29 22:37:55 +01:00
Thomas Kolb
f983635c14
Fixed output size of transmission_filter_packet()
2022-01-29 22:14:25 +01:00
Thomas Kolb
d522a1d6bd
Implemented pulse shaping
...
The pulse shaper currently uses an RRC filter with beta=0.2.
2022-01-29 22:05:17 +01:00
Thomas Kolb
a6fed80149
Added script for plotting the spectrum of signal dumps
2022-01-29 22:03:51 +01:00
Thomas Kolb
a1f62a3b0a
packet_mod: implement FEC and modulation for the header
2022-01-23 16:28:53 +01:00
Thomas Kolb
9a1107ff38
Added correlator + small test program
2022-01-22 22:42:05 +01:00
Thomas Kolb
6c21618f1f
Document the packet_mod interface
2021-10-17 22:51:10 +02:00
Thomas Kolb
62ff2938ac
Some python debug plot scripts
2021-10-17 19:46:30 +02:00
Thomas Kolb
874d8d5073
Fixed the modulator + test demodulation
2021-10-17 19:45:54 +02:00
Thomas Kolb
9ba470adeb
Initial implementation of packet modulation
...
Not really tested yet…
2021-10-17 19:26:38 +02:00
Thomas Kolb
0b237a47cb
Initial commit: infrastructure
2021-10-17 19:25:42 +02:00