codec2
codec2 copied to clipboard
QAM16 C port
Following on from https://github.com/drowe67/codec2-dev/pull/130, and part of ARDC grant WP6000
./src/freedv_data_raw_tx --bursts 100 --testframes 1 qam16c2 /dev/zero - | ./src/ch - - --No -35 -f 20 --mpp | ./src/freedv_data_raw_rx --testframes qam16c2 - /dev/null
Results, PER about 0.1 at 15dB MPP:
ch: Fs: 8000 NodB: -35.00 foff: 20.00 Hz fading: 2 nhfdelay: 16 clip: 32767.00 ssbfilt: 1 complexout: 0
payload bytes_per_modem_frame: 1213 Adjusting testframes to equal framesperburst*bursts
payload bytes_per_modem_frame: 1213
mark:space: 0.94 SNR offset: -0.26
ch: SNR3k(dB): 15.69 C/No....: 50.46
ch: peak.....: 16799.86 RMS.....: 5930.03 CPAPR.....: 9.04
ch: Nsamples.: 2801600 clipped.: 0.00% OutClipped: 0.00%
modembufs: 3840 bytes: 111596 Frms.: 92 SNRAv: 2.70
BER......: 0.0517 Tbits: 1506600 Terrs: 77885
Coded BER: 0.0011 Tbits: 903960 Terrs: 1006
Coded FER: 0.0108 Tfrms: 93 Tfers: 1
TODO
- [ ] working SNR estimator
- [ ] see if we can improve PAPR with clipper
- [ ] Update snr_curves.sh, might be time to split that into a few graphs
- [ ] Octave auto-magically works out #data bits in FEC codeword (like C)
@DJ2LS :point_up:
@drowe67 Does this already work with feature request 001?
@drowe67 Does this already work with feature request 001?
Yes I think it should be supported. The QAM logic kicks in when bps=4