Releases: williamyang98/16qam_modulator
Compiled rtlsdr with latest version
v1.10 Correctly copy executables and dlls when making package
Binary file for stm32 transmitter
Upload this using STM32 Cube programmer. Follow instructions in README.md
in transmitter/stm32xxx
folder.
Performance improvements
- Moved accumulate sum outside of loop
Persist renderer state
- Fixed being unable to zoom onto x or y axis due to resetting of renderer state
Added portaudio for better audio playback
v1.7 Tweaked arguments
Replaced Viterbi decoder with Phil Karn's implementation
- Replaced Viterbi decoder
- Used lookup table based convolutional encoder
- Fixed missing virtual destructor in PreambleFilter and VariablePreambleFilter
Updated DSP library with vectorised code
- Vectorised DSP code taken from https://github.com/FiendChain/FM-Radio/
- Improved Cmake file
- Refactored layout of project structure for receiver
Sample IQ data
Sample IQ data
STM32F401CC Transmitter:
- 16QAM
- 4.2MHz carrier frequency
- 200kHz symbol rate
- 40kHz audio rate (1/5 audio to symbol frequency)
Atmega328p Arduino Transmitter:
- 16QAM
- 4MHz carrier frequency
- 88kHz symbol rate
- 17.6kHz audio rate (1/5 audio to symbol frequency)
Example usage:
./view_data.exe -i data/16QAM_42MHz_200kHz_120s_1MHz.pcm -f 1e6 -s 200e3
./view_data.exe -i data/16QAM_4MHz_88kHz_180s_1MHz.pcm -f 1e6 -s 88e3 -D 1 -S 1
./view_data.exe -i data/16QAM_4MHz_88kHz_120s_1MHz_high_SNR.pcm -f 1e6 -s 88e3 -D 1 -S 1
v1.4
Added variable downsampling and upsampling for improved performance.
Downsampling reduces computation required for carrier synchronisation.
Upsampling increases accuracy of symbol synchronisation.
Downsampling filter is mandatory since it will implement the required LPF with cutoff Fsymbol.
Even for a downsamplng factor of 1 "-D 1", the polyphase downsampling filter will essentially behave as a regular FIR LPF.
Upsampling filter is optional and can be disabled with "-S 1".
v1.3
Added compiled binary for the STM32F401 microcontroller. This microcontroller is significantly faster than the Atmega328p and supports DMA (direct memory access) so we can achieve more efficient ADC sampling.
The symbol rate of the STM32F401 is 200kHz with an ADC sampling rate of 40kHz. There is also significant remaining headroom for even faster sampling speeds if it is desired.
NOTE: The effect of multipath fading results in a less stable PLL and TED lock as the symbol frequency increases.