Commit Graph

15 Commits

Author SHA1 Message Date
Thomas Kolb c8e0516e80 Implement time-based carrier sensing
In the following events, the modem cannot switch to transmit mode for the
given time:

- after a preamble has been received, for 500 ms
- after a packet has been successfully decoded, for 1 ms
- after receive mode was initially enabled, for 500 ms

Note that the times are that long to work around the RX/TX switching of
the hackrf and can be hopefully reduced to <10 milliseconds in a later
version.
2022-05-07 21:17:53 +02:00
Thomas Kolb 85663d5304 Added SDR abstraction layer 2022-03-03 22:19:03 +01:00
Thomas Kolb 934b18e382 Integrate TUN device interface
Packets are now read from the TUN device and transmitted. The signal
goes through a channel emulator and is then received + decoded. If
decoding is successful, the result is written back to the TUN device
(which does not make much sense, but works for testing).

Unfortunately, there still seems to be a problem in the receiver: packet
loss is very high even at extremely high SNRs.
2022-02-27 20:21:14 +01:00
Thomas Kolb 890baf577f Moved config.h to src/ top level 2022-02-27 18:41:16 +01:00
Thomas Kolb a60b8b1f87 Moved results.h to src/ top level 2022-02-27 16:02:51 +01:00
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 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 513a399ae4 Refactoring: moved layer1-related stuff to subdirectory 2022-02-13 20:05:47 +01:00
Thomas Kolb eb3fc5f9c7 Use data whitening 2022-02-12 22:06:49 +01:00
Thomas Kolb 8060137c1d Move frequency estimation to separate module 2022-02-05 20:33:56 +01:00
Thomas Kolb c17c7e060f Integrate preamble search 2022-02-01 21:35:43 +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 9a1107ff38 Added correlator + small test program 2022-01-22 22:42:05 +01:00
Thomas Kolb 0b237a47cb Initial commit: infrastructure 2021-10-17 19:25:42 +02:00