Commit Graph

171 Commits

Author SHA1 Message Date
Manolis Surligas 767e4e3d38 Redesign of the AX.25 decoder
This commits introduces a significant redesign of the AX.25 decoding
block. Due to the poor AX.25 sync flag, the decoders exhibited too many
false alarms. To deal with this problem, we introduced the quadrature
demod filter block, that tried to measure the SNR based on the running
variance of the signal. The problem with that was that the user should
have to fine tune two parameters, the one related with the amplitude of
the incoming signal and the second one related with the window that the
calculations should take place. This solution worked until now, but we
can always increase the performance.

The new AX.25 decoder stores the bitstream in a queue and always tries
to exlpoit possible valid frames in the queue. If now sync flags have
been encountered, the queue is flushed. After a valid frame extraction,
bits corresponding to this frame are also deleted from the queue.

This technique requires more memory and CPU, but it increases a lot the
decoding performance.
2019-07-18 16:39:26 +03:00
Manolis Surligas f235c5f68c Remove AX.25 address field check 2019-07-03 15:41:08 +03:00
Manolis Surligas 553898f61b Improve CW decoding
* Introduce the hysteresis option, in order the CW demodulator to adjust
properly the plateau length based on the WPM and any filtering that can
be used before

* Instead for a frame per word, now the CW decoder waits for 10 long
spaces before it commits a frame. With this way many words are placed on
the same frame telemetry decoding is easier
2019-01-06 20:14:32 +02:00
Alexandru Csete db08d31f53 Fix compiler warning when printing uint64_t 2018-12-03 02:14:58 +02:00
Alexandru Csete 512260ac88 Remove unneeded link references to gnuradio libs
These are already included with ${GNURADIO_ALL_LIBRARIES}.
2018-12-03 02:14:58 +02:00
Manolis Surligas 4ec333f5e6 Improve the generic frame acquisition
* Add CRC-16-IBM supported by CC11xx products
* Check CRC for frame validity
* Extract variable frame length
* Tested with Reaktor-Hello-World in-orbit frame
2018-12-03 01:42:14 +02:00
Manolis Surligas 4bcd9c8aaa Start the implementation of a generic frame synchronizer
The generic frame synchronizer will be able to adapt in a variety of
common framing schemes used by popular modems.
2018-12-02 00:48:14 +02:00
Manolis Surligas e91611f452 Implement Golay (24, 12, 8) encoder/decoder 2018-11-30 15:08:17 +02:00
Manolis Surligas 40aaeece1c Implement a shift register with dynamic size
std::bitset can be used only with compile time known size. Most of the flowgraphs take the shift register size as a parameter through the GRC so it cannot be used. This commit implements a shift register using the std::deque that supports arbitrary number of memory stages
2018-11-29 02:41:36 +02:00
Manolis Surligas 8fbca87084 Remove left over flowgraphs and files 2018-11-24 02:11:51 +02:00
Manolis Surligas 40a645f355 Fix boost `common_factor` deprecation warning 2018-11-24 00:43:21 +02:00
Manolis Surligas 63218b157b Add LRPT decoding flowgraph 2018-11-24 00:25:32 +02:00
Manolis Surligas 854becb15d Add LRPT decoder
Currently it performs only convolutional decoding
2018-11-24 00:25:32 +02:00
Manolis Surligas dcadfe9ab1 Add convolutional deinterleaver 2018-11-24 00:25:32 +02:00
Manolis Surligas 62fb14e3d1 Extract the coded LRPT CADU 2018-11-24 00:25:32 +02:00
Manolis Surligas a344bc498b Start the LRPT sync block 2018-11-24 00:25:32 +02:00
Manolis Surligas e7797003f7 Fix formatting 2018-10-27 20:44:41 +03:00
Patrick Dohmen 108f60c1e6 Fix spacecraft identification
The ```fox_id``` consists of three bits.
To mask these three bits a value of 0x7 is neccessary.

Added additional spacecraft identifiers.

Signed-off-by: Patrick Dohmen <dl4pd@darc.de>
2018-10-25 08:35:17 +02:00
Manolis Surligas 9ccd4cf4fb Use stroll() for proper long long int parsing 2018-09-17 23:26:09 +03:00
Corey Shields 571d98c924 change incoming freq to long long
allows for higher than 2.1ghz frequencies to be submitted via rigctl.

fixes #132
2018-09-08 11:37:17 -04:00
Manolis Surligas 16854f6495 Improve DUV decoder sensitivity
Due to a large gain in a LPF, large values negatively affected the
quadrature demod filter.
2018-07-30 14:05:23 +03:00
Sebastian 5605c4ef3c Fixed slating issues caused by NaN samples 2018-07-18 12:25:53 +03:00
Alexander Jenke 07eb575437 Fix 1/0 correlation between sync_a pattern and sample history in noaa_apt_sink_impl.cc 2018-07-18 12:22:15 +03:00
Manolis Surligas a797d9bb7b Use AX.25 address field to reduce false alarms 2018-03-24 23:59:56 +02:00
Manolis Surligas 71caec1edc Fix 8b10b decoding process 2018-03-24 21:43:19 +02:00
Manolis Surligas 5aae0a1b49 Add block for parsing the FOX slow speed telemetry frames 2018-03-24 21:43:19 +02:00
Manolis Surligas 392b93306f Fix 8b10b word count issue 2018-03-24 21:43:18 +02:00
Manolis Surligas f33f46edb9 Add libfec as external project
The CMake build system will first try to locate libfec in the system. if
it is not available, it will start building the libfec that is part of
the gr-satnogs source code. During the installation libfec is installed
in the system, thus future builds will make use of it and will not
rebuild from source.
2018-03-24 21:43:18 +02:00
Manolis Surligas 02801c9a3f Improve 8b10b decoder performance and add the CCSDS RS decoder 2018-03-24 21:43:18 +02:00
Thanos Gkiolias 699acdf53e Complete 8b10b decoder
*Export data bytes and erasures in message port
2018-03-24 21:43:18 +02:00
Thanos Gkiolias 9eedf70d5f Add sync and decoding states
Match both control symbols at the beginning
2018-03-24 21:43:18 +02:00
Nikos Karamolegkos c2d20fbead Introduce 8b10b Decoder 2018-03-24 21:43:18 +02:00
Manolis Surligas c1677c8104 Change the quadrature demod filter to sync block
Seems that there is a probleb with general blocks and the history, so
the filter cannot act as valve. However, it produces zeros, in the
presence of noise.
2018-03-24 21:43:18 +02:00
Manolis Surligas 0d5b295969 Add a quadrature demod filter
This is an attempt to cut the signal free period after the quadrature
demodulation block. The idea seems that works, but there still an issue
with the samples not passing correctly from the valve.
2018-03-24 21:43:18 +02:00
Manolis Surligas 0074fe7c10 Make consistent the format of the message sink 2018-03-20 20:44:36 +02:00
Manolis Surligas c1dc11fe4e Fix timestamp not showing on every message at STDOUT 2018-03-20 20:40:13 +02:00
Manolis Surligas 2fb1bfadfc Fix AX.25 encoder/decoder
* Force the left over scrambled bits into the LFSR to be transmitted
* Refactor the decoding process
2018-03-20 20:40:13 +02:00
DL4PD d7f8d7dbad Change hex representation fmt to "0x00, 0x02, 0xff" 2018-03-19 21:41:54 +01:00
Manolis Surligas 0287bc6657 Remove obsolete match filtering block 2018-02-02 22:39:49 +02:00
Nikos Karamolegkos 909ae9da78 Fix bug with the frame sink blocks
* Change clear text format to binary
* Add binary and hex annotated
2018-02-02 22:16:20 +02:00
George Vardakis d8352c1884 Reinstate stop function 2018-02-02 18:44:32 +02:00
George Vardakis eabd2c89f2 Remove split option and increase height size in APT sink block 2018-02-02 18:07:21 +02:00
Nikos Karamolegkos 12a2aa0090 Add minimum frame length on the morse decoder 2018-02-01 21:59:45 +02:00
Manolis Surligas de05c3f1c4 Several minor improvements
* Improve CI testing
* Fix compilation warnings
* Bump up version
2018-01-21 22:23:22 +02:00
Manolis Surligas fd75575828 Merge branch 'LongHairedHacker/gr-satnogs-noaa-apt-sink' 2018-01-05 16:49:38 +02:00
Sebastian abc385ae5a Fixed code style issues 2018-01-05 13:37:55 +01:00
Sebastian 7304a0843c Fixed file naming scheme 2018-01-04 18:34:10 +00:00
Sebastian 5e8958703f Final cleanup and some more comments 2018-01-04 18:34:10 +00:00
Sebastian a844248164 Moved sync patterns into the class
Added constants for magic numbers
2018-01-04 18:34:09 +00:00
Sebastian 6cbe19ba60 Readjust dynamic range after first sync 2018-01-04 18:34:09 +00:00