From 68913681a4b7ccc539bf90f72cebdf8798c1c91f Mon Sep 17 00:00:00 2001 From: Brian West Date: Thu, 20 Dec 2012 20:17:20 -0600 Subject: [PATCH] git status -u, learn something new every day. --- libs/libcodec2/README_fdmdv.txt | 199 +++ libs/libcodec2/asterisk/README | 109 ++ libs/libcodec2/asterisk/asterisk-codec2.patch | 68 + libs/libcodec2/asterisk/codec_codec2.c | 185 +++ libs/libcodec2/asterisk/ex_codec2.h | 28 + .../libcodec2/asterisk/make_asterisk_patch.sh | 11 + libs/libcodec2/fltk/Makefile | 19 + libs/libcodec2/fltk/fl_fdmdv.cxx | 1158 +++++++++++++++++ libs/libcodec2/octave/README.txt | 17 + libs/libcodec2/octave/av_imp.m | 43 + libs/libcodec2/octave/cbphase.m | 98 ++ libs/libcodec2/octave/codec2_demo.m | 108 ++ libs/libcodec2/octave/cspec.m | 54 + libs/libcodec2/octave/fdmdv.m | 935 +++++++++++++ libs/libcodec2/octave/fdmdv_demod.m | 217 +++ libs/libcodec2/octave/fdmdv_demod_c.m | 128 ++ libs/libcodec2/octave/fdmdv_mod.m | 32 + libs/libcodec2/octave/fdmdv_ut.m | 318 +++++ libs/libcodec2/octave/gen_rn_coeffs.m | 40 + libs/libcodec2/octave/hp_filt.m | 12 + libs/libcodec2/octave/lpcpf.m | 46 + libs/libcodec2/octave/lspwarp.m | 40 + libs/libcodec2/octave/phasesecord.m | 47 + libs/libcodec2/octave/pllpcpf.m | 150 +++ libs/libcodec2/octave/pllsp.m | 46 + libs/libcodec2/octave/pllspdt.m | 27 + libs/libcodec2/octave/plppe.m | 65 + libs/libcodec2/octave/plsub.m | 35 + libs/libcodec2/octave/plvoicing.m | 89 ++ libs/libcodec2/octave/sd.m | 101 ++ libs/libcodec2/octave/spec.m | 86 ++ libs/libcodec2/octave/tfdmdv.m | 306 +++++ libs/libcodec2/octave/tget_spec.m | 49 + libs/libcodec2/octave/twotone.m | 52 + libs/libcodec2/octave/twotone1.m | 76 ++ libs/libcodec2/octave/undersample.m | 26 + libs/libcodec2/portaudio/Makefile | 23 + libs/libcodec2/portaudio/pa_impresp.c | 254 ++++ libs/libcodec2/portaudio/pa_play.c | 199 +++ libs/libcodec2/portaudio/pa_rec.c | 212 +++ libs/libcodec2/portaudio/pa_recplay.c | 270 ++++ libs/libcodec2/raw/cq_ref.raw | Bin 0 -> 143828 bytes libs/libcodec2/raw/cross.raw | Bin 0 -> 48000 bytes libs/libcodec2/raw/cross_melp2400.raw | Bin 0 -> 48000 bytes libs/libcodec2/raw/forig_ambe2000.raw | Bin 0 -> 32000 bytes libs/libcodec2/raw/g3plx.raw | Bin 0 -> 91286 bytes libs/libcodec2/raw/hts1a_ambe2000.raw | Bin 0 -> 48000 bytes libs/libcodec2/raw/hts1a_melp.raw | Bin 0 -> 47880 bytes libs/libcodec2/raw/hts2a_ambe2000.raw | Bin 0 -> 48000 bytes libs/libcodec2/raw/hts2a_melp.raw | Bin 0 -> 47880 bytes libs/libcodec2/raw/k6hx.raw | Bin 0 -> 166814 bytes libs/libcodec2/raw/kristoff.raw | Bin 0 -> 80000 bytes libs/libcodec2/raw/mmt1_ambe2000.raw | Bin 0 -> 64000 bytes libs/libcodec2/raw/morig_ambe2000.raw | Bin 0 -> 48000 bytes libs/libcodec2/src/c2demo | Bin 0 -> 321988 bytes libs/libcodec2/src/fdmdv_demod | Bin 0 -> 88550 bytes libs/libcodec2/src/fdmdv_get_test_bits | Bin 0 -> 78706 bytes libs/libcodec2/src/fdmdv_interleave | Bin 0 -> 16567 bytes libs/libcodec2/src/fdmdv_mod | Bin 0 -> 80082 bytes libs/libcodec2/src/fdmdv_put_test_bits | Bin 0 -> 79789 bytes libs/libcodec2/src/generate_codebook | Bin 0 -> 17305 bytes libs/libcodec2/src/genlspdtcb | Bin 0 -> 12269 bytes libs/libcodec2/unittest/README | 43 + libs/libcodec2/unittest/create_interleaver | Bin 0 -> 11988 bytes libs/libcodec2/unittest/create_interleaver.c | 48 + libs/libcodec2/unittest/de | Bin 0 -> 20006 bytes libs/libcodec2/unittest/de.c | 59 + libs/libcodec2/unittest/dvdongle2.c | 385 ++++++ libs/libcodec2/unittest/ge_train.c | 299 +++++ libs/libcodec2/unittest/genampdata | Bin 0 -> 11348 bytes libs/libcodec2/unittest/genampdata.c | 104 ++ libs/libcodec2/unittest/genphdata | Bin 0 -> 11560 bytes libs/libcodec2/unittest/genphdata.c | 93 ++ libs/libcodec2/unittest/lspsync | Bin 0 -> 423776 bytes libs/libcodec2/unittest/lspsync.c | 115 ++ libs/libcodec2/unittest/mksine.c | 38 + libs/libcodec2/unittest/polar2rect | Bin 0 -> 11433 bytes libs/libcodec2/unittest/polar2rect.c | 54 + libs/libcodec2/unittest/pre | Bin 0 -> 20007 bytes libs/libcodec2/unittest/pre.c | 59 + libs/libcodec2/unittest/run_tests.sh | 27 + libs/libcodec2/unittest/scalarlsptest | Bin 0 -> 349055 bytes libs/libcodec2/unittest/scalarlsptest.c | 106 ++ libs/libcodec2/unittest/speexlsptest.c | 176 +++ libs/libcodec2/unittest/t48_8 | Bin 0 -> 77262 bytes libs/libcodec2/unittest/t48_8.c | 112 ++ libs/libcodec2/unittest/tfdmdv | Bin 0 -> 90429 bytes libs/libcodec2/unittest/tfdmdv.c | 282 ++++ libs/libcodec2/unittest/tfifo | Bin 0 -> 17972 bytes libs/libcodec2/unittest/tfifo.c | 103 ++ libs/libcodec2/unittest/tlspsens | Bin 0 -> 424606 bytes libs/libcodec2/unittest/tlspsens.c | 127 ++ libs/libcodec2/unittest/tprede | Bin 0 -> 17549 bytes libs/libcodec2/unittest/tprede.c | 53 + libs/libcodec2/unittest/tsrc.c | 64 + libs/libcodec2/unittest/vq_train_jvm | Bin 0 -> 34898 bytes libs/libcodec2/unittest/vq_train_jvm.c | 486 +++++++ libs/libcodec2/unittest/vqtrainjnd | Bin 0 -> 16500 bytes libs/libcodec2/unittest/vqtrainph | Bin 0 -> 20533 bytes libs/libcodec2/unittest/vqtrainph.c | 419 ++++++ libs/libcodec2/unittest/vqtrainsp | Bin 0 -> 23350 bytes libs/libcodec2/unittest/vqtrainsp.c | 491 +++++++ libs/libcodec2/voicing/hts1a.v | 299 +++++ libs/libcodec2/voicing/hts2a.v | 300 +++++ libs/libcodec2/voicing/mmt1.v | 400 ++++++ libs/libcodec2/voicing/morig.v | 200 +++ 106 files changed, 10920 insertions(+) create mode 100644 libs/libcodec2/README_fdmdv.txt create mode 100644 libs/libcodec2/asterisk/README create mode 100644 libs/libcodec2/asterisk/asterisk-codec2.patch create mode 100644 libs/libcodec2/asterisk/codec_codec2.c create mode 100644 libs/libcodec2/asterisk/ex_codec2.h create mode 100755 libs/libcodec2/asterisk/make_asterisk_patch.sh create mode 100644 libs/libcodec2/fltk/Makefile create mode 100644 libs/libcodec2/fltk/fl_fdmdv.cxx create mode 100644 libs/libcodec2/octave/README.txt create mode 100644 libs/libcodec2/octave/av_imp.m create mode 100644 libs/libcodec2/octave/cbphase.m create mode 100644 libs/libcodec2/octave/codec2_demo.m create mode 100644 libs/libcodec2/octave/cspec.m create mode 100644 libs/libcodec2/octave/fdmdv.m create mode 100644 libs/libcodec2/octave/fdmdv_demod.m create mode 100644 libs/libcodec2/octave/fdmdv_demod_c.m create mode 100644 libs/libcodec2/octave/fdmdv_mod.m create mode 100644 libs/libcodec2/octave/fdmdv_ut.m create mode 100644 libs/libcodec2/octave/gen_rn_coeffs.m create mode 100644 libs/libcodec2/octave/hp_filt.m create mode 100644 libs/libcodec2/octave/lpcpf.m create mode 100644 libs/libcodec2/octave/lspwarp.m create mode 100644 libs/libcodec2/octave/phasesecord.m create mode 100644 libs/libcodec2/octave/pllpcpf.m create mode 100644 libs/libcodec2/octave/pllsp.m create mode 100644 libs/libcodec2/octave/pllspdt.m create mode 100644 libs/libcodec2/octave/plppe.m create mode 100644 libs/libcodec2/octave/plsub.m create mode 100644 libs/libcodec2/octave/plvoicing.m create mode 100644 libs/libcodec2/octave/sd.m create mode 100644 libs/libcodec2/octave/spec.m create mode 100644 libs/libcodec2/octave/tfdmdv.m create mode 100644 libs/libcodec2/octave/tget_spec.m create mode 100644 libs/libcodec2/octave/twotone.m create mode 100644 libs/libcodec2/octave/twotone1.m create mode 100644 libs/libcodec2/octave/undersample.m create mode 100644 libs/libcodec2/portaudio/Makefile create mode 100644 libs/libcodec2/portaudio/pa_impresp.c create mode 100644 libs/libcodec2/portaudio/pa_play.c create mode 100644 libs/libcodec2/portaudio/pa_rec.c create mode 100644 libs/libcodec2/portaudio/pa_recplay.c create mode 100644 libs/libcodec2/raw/cq_ref.raw create mode 100644 libs/libcodec2/raw/cross.raw create mode 100644 libs/libcodec2/raw/cross_melp2400.raw create mode 100644 libs/libcodec2/raw/forig_ambe2000.raw create mode 100644 libs/libcodec2/raw/g3plx.raw create mode 100644 libs/libcodec2/raw/hts1a_ambe2000.raw create mode 100644 libs/libcodec2/raw/hts1a_melp.raw create mode 100644 libs/libcodec2/raw/hts2a_ambe2000.raw create mode 100644 libs/libcodec2/raw/hts2a_melp.raw create mode 100644 libs/libcodec2/raw/k6hx.raw create mode 100644 libs/libcodec2/raw/kristoff.raw create mode 100644 libs/libcodec2/raw/mmt1_ambe2000.raw create mode 100644 libs/libcodec2/raw/morig_ambe2000.raw create mode 100755 libs/libcodec2/src/c2demo create mode 100755 libs/libcodec2/src/fdmdv_demod create mode 100755 libs/libcodec2/src/fdmdv_get_test_bits create mode 100755 libs/libcodec2/src/fdmdv_interleave create mode 100755 libs/libcodec2/src/fdmdv_mod create mode 100755 libs/libcodec2/src/fdmdv_put_test_bits create mode 100755 libs/libcodec2/src/generate_codebook create mode 100755 libs/libcodec2/src/genlspdtcb create mode 100644 libs/libcodec2/unittest/README create mode 100755 libs/libcodec2/unittest/create_interleaver create mode 100644 libs/libcodec2/unittest/create_interleaver.c create mode 100755 libs/libcodec2/unittest/de create mode 100644 libs/libcodec2/unittest/de.c create mode 100644 libs/libcodec2/unittest/dvdongle2.c create mode 100644 libs/libcodec2/unittest/ge_train.c create mode 100755 libs/libcodec2/unittest/genampdata create mode 100644 libs/libcodec2/unittest/genampdata.c create mode 100755 libs/libcodec2/unittest/genphdata create mode 100644 libs/libcodec2/unittest/genphdata.c create mode 100755 libs/libcodec2/unittest/lspsync create mode 100644 libs/libcodec2/unittest/lspsync.c create mode 100644 libs/libcodec2/unittest/mksine.c create mode 100755 libs/libcodec2/unittest/polar2rect create mode 100644 libs/libcodec2/unittest/polar2rect.c create mode 100755 libs/libcodec2/unittest/pre create mode 100644 libs/libcodec2/unittest/pre.c create mode 100644 libs/libcodec2/unittest/run_tests.sh create mode 100755 libs/libcodec2/unittest/scalarlsptest create mode 100644 libs/libcodec2/unittest/scalarlsptest.c create mode 100644 libs/libcodec2/unittest/speexlsptest.c create mode 100755 libs/libcodec2/unittest/t48_8 create mode 100644 libs/libcodec2/unittest/t48_8.c create mode 100755 libs/libcodec2/unittest/tfdmdv create mode 100644 libs/libcodec2/unittest/tfdmdv.c create mode 100755 libs/libcodec2/unittest/tfifo create mode 100644 libs/libcodec2/unittest/tfifo.c create mode 100755 libs/libcodec2/unittest/tlspsens create mode 100644 libs/libcodec2/unittest/tlspsens.c create mode 100755 libs/libcodec2/unittest/tprede create mode 100644 libs/libcodec2/unittest/tprede.c create mode 100644 libs/libcodec2/unittest/tsrc.c create mode 100755 libs/libcodec2/unittest/vq_train_jvm create mode 100755 libs/libcodec2/unittest/vq_train_jvm.c create mode 100755 libs/libcodec2/unittest/vqtrainjnd create mode 100755 libs/libcodec2/unittest/vqtrainph create mode 100644 libs/libcodec2/unittest/vqtrainph.c create mode 100755 libs/libcodec2/unittest/vqtrainsp create mode 100644 libs/libcodec2/unittest/vqtrainsp.c create mode 100644 libs/libcodec2/voicing/hts1a.v create mode 100644 libs/libcodec2/voicing/hts2a.v create mode 100644 libs/libcodec2/voicing/mmt1.v create mode 100644 libs/libcodec2/voicing/morig.v diff --git a/libs/libcodec2/README_fdmdv.txt b/libs/libcodec2/README_fdmdv.txt new file mode 100644 index 0000000000..324b410e92 --- /dev/null +++ b/libs/libcodec2/README_fdmdv.txt @@ -0,0 +1,199 @@ + +README_fdmdv.txt +David Rowe +Created March 2012 + +Introduction +------------ + +A 1400 bit/s Frequency Division Multiplexed Digital Voice (FDMDV) modem +based on [1]. Used for digital audio over HF SSB. + +The FDMDV modem was first implemented in GNU Octave, then ported to C. +Algorithm development is generally easier in Octave, but for real time +work we need the C version. Automated units tests ensure the +operation of the Octave and C versions are identical. + +Quickstart +---------- + +$ cd codec2-dev +$ ./configure && make +$ cd src + +1. Generate some test bits and modulate them: + + $ ./fdmdv_get_test_bits test.c2 1400 + $ ./fdmdv_mod test.c2 test.raw + $ play -r 8000 -s -2 test.raw + +2. Two seconds of test frame data modulated and sent out of sound device: + + $ ./fdmdv_get_test_bits - 2800 | ./fdmdv_mod - - | play -t raw -r 8000 -s -2 - + +3. Send 14000 modulated bits (10 seconds) to the demod and count errors: + + $ ./fdmdv_get_test_bits - 14000 | ./fdmdv_mod - - | ./fdmdv_demod - - demod_dump.txt | ./fdmdv_put_test_bits - + + Use Octave to look at plots of 1 second (1400 bits) of modem operation: + + $ cd ../octave + $ octave + octave:1> fdmdv_demod_c("../src/demod_dump.txt",1400) + +4. Run Octave simulation of entire modem and AWGN channel: + + $ cd ../octave + $ octave + octave:1> fdmdv_ut + +5. NOTE: If you would like to play modem samples over the air please + convert the 8 kHz samples to 48 kHz. Many PC sound cards have + wildly inaccurate sample clock rates when set to 8 kHz, but seem to + perform OK when set for 48 kHz. If playing and recording files you + can use the sox utility: + + $ sox -r 8000 -s -2 modem_sample_8kHz.raw -r 48000 modem_sample_48kHz.wav + + For real time applications, the fdmdv.[ch] library includes functions to + convert between 48 and 8 kHz sample rates. + +References +---------- + +[1] http://n1su.com/fdmdv/FDMDV_Docs_Rel_1_4b.pdf +[2] http://n1su.com/fdmdv/ +[3] http://www.rowetel.com/blog/?p=2433 "Testing a FDMDV Modem" +[4] http://www.rowetel.com/blog/?p=2458 "FDMDV Modem Page" on David's web site + +C Code +------ + +src/fdmdv_mod.c - C version of modulator that takes a file of bits and + converts it to a raw file of modulated samples. + +src/fdmdv_demod.c - C version of demodulator that takes a raw file of + modulated samples and outputs a file of bits. + Optionally dumps demod states to a text file which + can be plotted using the Octave script + fdmdv_demod_c.m + +src/fdmdv.h - Header file that exposes FDMDV C API functions. Include + this file in your application program. + +src/fdmdv.c - C functions that implement the FDMDV modem. + +src/fdmdv-internal.h - internal states and constants for FDMDV modem, + shouldn't be exposed to application program. + + +unittest/tfdmdv.c - Used to conjunction with unittest/tfdmdv.m to + automatically test C FDMDV functions against + Octave versions. + +Octave Scripts +-------------- + +(Note these require some Octave packages to be installed, see +octave/README.txt). + +fdmdv.m - Functions and variables that implement the Octave version of + the FDMDV modem. + +fdmdv_ut.m - Unit test for fdmdv Octave code, useful while + developing algorithm. Includes tx/rx plus basic channel + simulation. + + Typical run: + + octave:6> fdmdv_ut + Eb/No (meas): 7.30 (8.29) dB + bits........: 2464 + errors......: 20 + BER.........: 0.0081 + PAPR........: 13.54 dB + SNR.........: 4.0 dB + + It also outputs lots of nice plots that show the + operation of the modem. + + For a 1400 bit/s DQPSK modem we expect about 1% BER for + Eb/No = 7.3dB, which corresponds to SNR = 4dB (3kHz + noise BW). The extra dB of measured power is due to the + DBPSK pilot. Currently the noise generation code + doesn't take the pilot power into account, so in this + example the real SNR is actually 5dB. + +fdmdv_mod.m - Octave version of modulator that outputs a raw file. + The modulator is driven by a test frame of bits. This + can then be played over a real channel or through a + channel simulator like PathSim. The sample rate can be + changed using "sox" to simulate differences in tx/rx + sample clocks. + + To generate 10 seconds of modulated signal: + + octave:8> fdmdv_mod("test.raw",1400*10); + +fdmdv_demod.m - Demodulator program that takes a raw file as input, + and works out the bit error rate using the known test + frame. Can be used to test the demod performs with + off-air signals, or signals that have been passed + through a channel simulator. + + To demodulate 2 seconds of the test.raw file generated + above: + + octave:9> fdmdv_demod("test.raw",1400*2); + 2464 bits 0 errors BER: 0.0000 + + It also produces several plots showing the internal + states of the demod. Useful for debugging and + observing what happens with various channels. + +fdmdv_demod_c.m - Takes an output text file from the C demod + fdmdv_demod.c and produces plots and measures BER. + Useful for evaluating fdmdv_demod.c performance. + The plots produced are identical to the Octave + version fdmdv_demod.m, allowing direct comparison of + the C and Octave versions. + +tfdmdv.m - Automatic tests that compare the Octave and C versions of + the FDMDV modem functions. First run unittest/tfdmdv, this + will generate a text file with test vectors from the C + version. Then run the Octave script tfdmdv and it will + generate Octave versions of the test vectors and compare + each vector with the C equivalent. Its plots the vectors + and and errors (green). Its also produces an automatic + check list based on test results. If the Octave or C modem + code is changed, this script should be used to ensure the + C and Octave versions remain identical. + +Modelling sample clock errors using sox +--------------------------------------- + +This introduces a simulated 1000ppm error: + + sox -r 8000 -s -2 mod_dqpsk.raw -s -2 mod_dqpsk_8008hz.raw rate -h 8008 + +TODO +---- + +[ ] implement ppm measurements in fdmdv_get_demod_stats() +[ ] try interfering sine wave + + maybe swept + + does modem fall over? +[ ] try non-flat channel, e.g. 3dB difference between hi and low tones + + make sure all estimators keep working +[ ] test rx level sensitivity, i.e. 0 to 20dB attenuation +[ ] make fine freq indep of amplitude + + use angle rather than imag coord +[ ] document use of fdmdv_ut and fdmdv_demod + PathSim +[ ] more positive form of sync reqd for DV frames? + + like using coarse_fine==1 to decode valid DV frame bit? + + when should we start decoding? +[ ] more robust track/acquite state machine? + + e.g. hang on thru the fades? +[ ] PAPR idea + + automatically tweak phases to reduce PAPR, e.g. slow variations in freq... +[ ] why is pilot noise_est twice as big as other carriers diff --git a/libs/libcodec2/asterisk/README b/libs/libcodec2/asterisk/README new file mode 100644 index 0000000000..a2d3b51237 --- /dev/null +++ b/libs/libcodec2/asterisk/README @@ -0,0 +1,109 @@ +README for codec2/asterisk +Asterisk Codec 2 support + +Test Configuration +------------------ + +Codec 2 is used to trunk calls between two Asterisk boxes: + + A - SIP phone - Asterisk A - Codec2 - Asterisk B - SIP Phone - B + +The two SIP phones are configured for mulaw. + +Building +--------- + +Asterisk must be patched so that the core understand Codec 2 frames. + +1/ First install Codec 2: + + david@cool:~$ svn co https://freetel.svn.sourceforge.net/svnroot/freetel/codec2-dev codec2-dev + david@cool:~/codec2-dev$ cd codec2-dev + david@cool:~/codec2-dev$ ./configure && make && sudo make install + david@bear:~/codec2-dev$ sudo ldconfig -v + david@cool:~/codec2-dev$ cd ~ + +2/ Then build Asterisk with Codec 2 support: + + david@cool:~$ tar xvzf asterisk-1.8.9.0.tar.gz + david@cool:~/asterisk-1.8.9.0$ patch -p4 < ~/codec2-dev/asterisk/asterisk-codec2.patch + david@cool:~/asterisk-1.8.9.0$ cp ~/codec2-dev/asterisk/codec_codec2.c . + david@cool:~/asterisk-1.8.9.0$ cp ~/codec2-dev/asterisk/ex_codec2.h ./codecs + david@cool:~/asterisk-1.8.9.0$ ./configure && make ASTLDFLAGS=-lcodec2 + david@cool:~/asterisk-1.8.9.0$ sudo make install + david@cool:~/asterisk-1.8.9.0$ sudo make samples + +3/ Add this to the end of sip.conf on Asterisk A: + + [6013] + type=friend + context=default + host=dynamic + user=6013 + secret=6013 + canreinvite=no + callerid=6013 + disallow=all + allow=ulaw + + [potato] + type=peer + username=potato + fromuser=potato + secret=password + context=default + disallow=all + dtmfmode=rfc2833 + callerid=server + canreinvite=no + host=cool + allow=codec2 + +3/ Add this to the end of sip.conf on Asterisk B: + + [6014] + type=friend + context=default + host=dynamic + user=6014 + secret=6014 + canreinvite=no + callerid=6014 + disallow=all + allow=ulaw + + [potato] + type=peer + username=potato + fromuser=potato + secret=password + context=default + disallow=all + dtmfmode=rfc2833 + callerid=server + canreinvite=no + host=bear + allow=codec2 + +4/ Here is the [default] section of extensions.conf on Asterisk B: + + [default] + + exten => 6013,1,Dial(SIP/potato/6013) + ; + ; By default we include the demo. In a production system, you + ; probably don't want to have the demo there. + ; + ;include => demo + +5/ After booting see if the codec2_codec2.so module is loaded with "core show translate" + +6/ To make a test call dial 6013 on the SIP phone connected to Asterisk B + +7/ If codec_codec2.so won't load and you see "can't find codec2_create" try: + + david@cool:~/asterisk-1.8.9.0$ touch codecs/codec_codec2.c + david@cool:~/asterisk-1.8.9.0$ make ASTLDFLAGS=-lcodec2 + david@cool:~/asterisk-1.8.9.0$ sudo cp codecs/codec_codec2.so /usr/lib/asterisk/modules + david@cool:~/asterisk-1.8.9.0$ sudo asterisk -vvvcn + diff --git a/libs/libcodec2/asterisk/asterisk-codec2.patch b/libs/libcodec2/asterisk/asterisk-codec2.patch new file mode 100644 index 0000000000..695d323791 --- /dev/null +++ b/libs/libcodec2/asterisk/asterisk-codec2.patch @@ -0,0 +1,68 @@ +--- /home/david/asterisk-1.8.9.0-orig/include/asterisk/frame.h 2011-12-23 05:08:46.000000000 +1030 ++++ /home/david/asterisk-1.8.9.0-codec2/include/asterisk/frame.h 2012-03-27 13:16:55.623452431 +1030 +@@ -299,6 +299,7 @@ + #define AST_FORMAT_G719 (1ULL << 32) + /*! SpeeX Wideband (16kHz) Free Compression */ + #define AST_FORMAT_SPEEX16 (1ULL << 33) ++#define AST_FORMAT_CODEC2 (1ULL << 34) + /*! Raw mu-law data (G.711) */ + #define AST_FORMAT_TESTLAW (1ULL << 47) + /*! Reserved bit - do not use */ +--- /home/david/asterisk-1.8.9.0-orig/main/frame.c 2010-06-18 02:53:43.000000000 +0930 ++++ /home/david/asterisk-1.8.9.0-codec2/main/frame.c 2012-03-28 15:16:16.975581316 +1030 +@@ -102,6 +102,7 @@ + { AST_FORMAT_ADPCM, "adpcm" , 8000, "ADPCM", 40, 10, 300, 10, 20 }, /*!< codec_adpcm.c */ + { AST_FORMAT_SLINEAR, "slin", 8000, "16 bit Signed Linear PCM", 160, 10, 70, 10, 20, AST_SMOOTHER_FLAG_BE }, /*!< Signed linear */ + { AST_FORMAT_LPC10, "lpc10", 8000, "LPC10", 7, 20, 20, 20, 20 }, /*!< codec_lpc10.c */ ++ { AST_FORMAT_CODEC2, "codec2", 8000, "Codec 2", 7, 20, 20, 20, 20 }, /*!< codec_codec2.c */ + { AST_FORMAT_G729A, "g729", 8000, "G.729A", 10, 10, 230, 10, 20, AST_SMOOTHER_FLAG_G729 }, /*!< Binary commercial distribution */ + { AST_FORMAT_SPEEX, "speex", 8000, "SpeeX", 10, 10, 60, 10, 20 }, /*!< codec_speex.c */ + { AST_FORMAT_SPEEX16, "speex16", 16000, "SpeeX 16khz", 10, 10, 60, 10, 20 }, /*!< codec_speex.c */ +@@ -1475,6 +1476,9 @@ + samples = 22 * 8; + samples += (((char *)(f->data.ptr))[7] & 0x1) * 8; + break; ++ case AST_FORMAT_CODEC2: ++ samples = 160 * (f->datalen / 7); ++ break; + case AST_FORMAT_ULAW: + case AST_FORMAT_ALAW: + case AST_FORMAT_TESTLAW: +@@ -1519,6 +1523,9 @@ + case AST_FORMAT_GSM: + len = (samples / 160) * 33; + break; ++ case AST_FORMAT_CODEC2: ++ len = (samples / 160) * 7; ++ break; + case AST_FORMAT_G729A: + len = samples / 8; + break; +--- /home/david/asterisk-1.8.9.0-orig/main/channel.c 2011-12-17 10:21:13.000000000 +1030 ++++ /home/david/asterisk-1.8.9.0-codec2/main/channel.c 2012-03-28 15:05:22.395293391 +1030 +@@ -1075,6 +1075,7 @@ + /*! Ick, LPC10 sounds terrible, but at least we have code for it, if you're tacky enough + to use it */ + AST_FORMAT_LPC10, ++ AST_FORMAT_CODEC2, + /*! G.729a is faster than 723 and slightly less expensive */ + AST_FORMAT_G729A, + /*! Down to G.723.1 which is proprietary but at least designed for voice */ +--- /home/david/asterisk-1.8.9.0-orig/main/rtp_engine.c 2011-12-30 01:43:03.000000000 +1030 ++++ /home/david/asterisk-1.8.9.0-codec2/main/rtp_engine.c 2012-03-28 16:42:02.880872891 +1030 +@@ -101,6 +101,7 @@ + {{1, AST_FORMAT_SLINEAR}, "audio", "L16", 8000}, + {{1, AST_FORMAT_SLINEAR16}, "audio", "L16", 16000}, + {{1, AST_FORMAT_LPC10}, "audio", "LPC", 8000}, ++ {{1, AST_FORMAT_CODEC2}, "audio", "CODEC2", 8000}, + {{1, AST_FORMAT_G729A}, "audio", "G729", 8000}, + {{1, AST_FORMAT_G729A}, "audio", "G729A", 8000}, + {{1, AST_FORMAT_G729A}, "audio", "G.729", 8000}, +@@ -178,6 +179,7 @@ + [117] = {1, AST_FORMAT_SPEEX16}, + [118] = {1, AST_FORMAT_SLINEAR16}, /* 16 Khz signed linear */ + [121] = {0, AST_RTP_CISCO_DTMF}, /* Must be type 121 */ ++ [121] = {1, AST_FORMAT_CODEC2}, + }; + + int ast_rtp_engine_register2(struct ast_rtp_engine *engine, struct ast_module *module) diff --git a/libs/libcodec2/asterisk/codec_codec2.c b/libs/libcodec2/asterisk/codec_codec2.c new file mode 100644 index 0000000000..5d477f6579 --- /dev/null +++ b/libs/libcodec2/asterisk/codec_codec2.c @@ -0,0 +1,185 @@ +/* + * Codec 2 module for Asterisk. + * + * Credit: codec_gsm.c used as a starting point. + * + * Copyright (C) 2012 Ed W and David Rowe + * + * This program is free software, distributed under the terms of + * the GNU General Public License Version 2. See the LICENSE file + * at the top of the source tree. + */ + +/*! \file + * + * \brief Translate between signed linear and Codec 2 + * + * \ingroup codecs + */ + +/*** MODULEINFO + core + ***/ + +#include "asterisk.h" + +#include "asterisk/translate.h" +#include "asterisk/config.h" +#include "asterisk/module.h" +#include "asterisk/utils.h" + +#include + +#define BUFFER_SAMPLES 8000 +#define CODEC2_SAMPLES 160 +#define CODEC2_FRAME_LEN 7 + +/* Sample frame data */ + +#include "asterisk/slin.h" +#include "ex_codec2.h" + +struct codec2_translator_pvt { /* both codec2tolin and codec2togsm */ + struct CODEC2 *codec2; + short buf[BUFFER_SAMPLES]; /* lintocodec2, temporary storage */ +}; + +static int codec2_new(struct ast_trans_pvt *pvt) +{ + struct codec2_translator_pvt *tmp = pvt->pvt; + + tmp->codec2 = codec2_create(CODEC2_MODE_2400); + + return 0; +} + +/*! \brief decode and store in outbuf. */ +static int codec2tolin_framein(struct ast_trans_pvt *pvt, struct ast_frame *f) +{ + struct codec2_translator_pvt *tmp = pvt->pvt; + int x; + int16_t *dst = pvt->outbuf.i16; + int flen = CODEC2_FRAME_LEN; + + for (x=0; x < f->datalen; x += flen) { + unsigned char *src; + int len; + len = CODEC2_SAMPLES; + src = f->data.ptr + x; + + codec2_decode(tmp->codec2, dst + pvt->samples, src); + + pvt->samples += CODEC2_SAMPLES; + pvt->datalen += 2 * CODEC2_SAMPLES; + } + return 0; +} + +/*! \brief store samples into working buffer for later decode */ +static int lintocodec2_framein(struct ast_trans_pvt *pvt, struct ast_frame *f) +{ + struct codec2_translator_pvt *tmp = pvt->pvt; + + if (pvt->samples + f->samples > BUFFER_SAMPLES) { + ast_log(LOG_WARNING, "Out of buffer space\n"); + return -1; + } + memcpy(tmp->buf + pvt->samples, f->data.ptr, f->datalen); + pvt->samples += f->samples; + return 0; +} + +/*! \brief encode and produce a frame */ +static struct ast_frame *lintocodec2_frameout(struct ast_trans_pvt *pvt) +{ + struct codec2_translator_pvt *tmp = pvt->pvt; + int datalen = 0; + int samples = 0; + + /* We can't work on anything less than a frame in size */ + if (pvt->samples < CODEC2_SAMPLES) + return NULL; + while (pvt->samples >= CODEC2_SAMPLES) { + /* Encode a frame of data */ + codec2_encode(tmp->codec2, (unsigned char*)(pvt->outbuf.c + datalen), tmp->buf + samples); + datalen += CODEC2_FRAME_LEN; + samples += CODEC2_SAMPLES; + pvt->samples -= CODEC2_SAMPLES; + } + + /* Move the data at the end of the buffer to the front */ + if (pvt->samples) + memmove(tmp->buf, tmp->buf + samples, pvt->samples * 2); + + return ast_trans_frameout(pvt, datalen, samples); +} + +static void codec2_destroy_stuff(struct ast_trans_pvt *pvt) +{ + struct codec2_translator_pvt *tmp = pvt->pvt; + if (tmp->codec2) + codec2_destroy(tmp->codec2); +} + +static struct ast_translator codec2tolin = { + .name = "codec2tolin", + .srcfmt = AST_FORMAT_CODEC2, + .dstfmt = AST_FORMAT_SLINEAR, + .newpvt = codec2_new, + .framein = codec2tolin_framein, + .destroy = codec2_destroy_stuff, + .sample = codec2_sample, + .buffer_samples = BUFFER_SAMPLES, + .buf_size = BUFFER_SAMPLES * 2, + .desc_size = sizeof (struct codec2_translator_pvt ), +}; + +static struct ast_translator lintocodec2 = { + .name = "lintocodec2", + .srcfmt = AST_FORMAT_SLINEAR, + .dstfmt = AST_FORMAT_CODEC2, + .newpvt = codec2_new, + .framein = lintocodec2_framein, + .frameout = lintocodec2_frameout, + .destroy = codec2_destroy_stuff, + .sample = slin8_sample, + .desc_size = sizeof (struct codec2_translator_pvt ), + .buf_size = (BUFFER_SAMPLES * CODEC2_FRAME_LEN + CODEC2_SAMPLES - 1)/CODEC2_SAMPLES, +}; + +/*! \brief standard module glue */ +static int reload(void) +{ + return AST_MODULE_LOAD_SUCCESS; +} + +static int unload_module(void) +{ + int res; + + res = ast_unregister_translator(&lintocodec2); + if (!res) + res = ast_unregister_translator(&codec2tolin); + + return res; +} + +static int load_module(void) +{ + int res; + + res = ast_register_translator(&codec2tolin); + if (!res) + res=ast_register_translator(&lintocodec2); + else + ast_unregister_translator(&codec2tolin); + if (res) + return AST_MODULE_LOAD_FAILURE; + return AST_MODULE_LOAD_SUCCESS; +} + +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Codec 2 Coder/Decoder", + .load = load_module, + .unload = unload_module, + .reload = reload, + ); diff --git a/libs/libcodec2/asterisk/ex_codec2.h b/libs/libcodec2/asterisk/ex_codec2.h new file mode 100644 index 0000000000..98b6214d7f --- /dev/null +++ b/libs/libcodec2/asterisk/ex_codec2.h @@ -0,0 +1,28 @@ +/*! \file + * \brief 8-bit raw data + * + * Copyright (C) 2012, 2012 Ed W and David Rowe + * + * Distributed under the terms of the GNU General Public License + * + */ + +static uint8_t ex_codec2[] = { + 0x3e,0x06,0x4a,0xbb,0x9e,0x40,0xc0 +}; + +static struct ast_frame *codec2_sample(void) +{ + static struct ast_frame f = { + .frametype = AST_FRAME_VOICE, + .subclass.codec = AST_FORMAT_CODEC2, + .datalen = sizeof(ex_codec2), + .samples = CODEC2_SAMPLES, + .mallocd = 0, + .offset = 0, + .src = __PRETTY_FUNCTION__, + .data.ptr = ex_codec2, + }; + + return &f; +} diff --git a/libs/libcodec2/asterisk/make_asterisk_patch.sh b/libs/libcodec2/asterisk/make_asterisk_patch.sh new file mode 100755 index 0000000000..a642bf7fd7 --- /dev/null +++ b/libs/libcodec2/asterisk/make_asterisk_patch.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# Create patch for Codec 2 support inside Asterisk + +ORIG=~/asterisk-1.8.9.0-orig +CODEC2=~/asterisk-1.8.9.0-codec2 +diff -ruN $ORIG/include/asterisk/frame.h $CODEC2/include/asterisk/frame.h > asterisk-codec2.patch +diff -ruN $ORIG/main/frame.c $CODEC2/main/frame.c >> asterisk-codec2.patch +diff -ruN $ORIG/main/channel.c $CODEC2/main/channel.c >> asterisk-codec2.patch +diff -ruN $ORIG/main/rtp_engine.c $CODEC2/main/rtp_engine.c >> asterisk-codec2.patch + + diff --git a/libs/libcodec2/fltk/Makefile b/libs/libcodec2/fltk/Makefile new file mode 100644 index 0000000000..f29d2cd612 --- /dev/null +++ b/libs/libcodec2/fltk/Makefile @@ -0,0 +1,19 @@ +# Requires FLTK 1.3 & Portaudio V19 + +FLTK_VER = $(shell fltk-config --api-version) +ifneq ($(FLTK_VER),1.3) +$(error Must use FLTK version 1.3, you have $(FLTK_VER)) +endif + +FLTK_CFLAGS += $(shell fltk-config --ldstaticflags) +CFLAGS = -O3 -g -Wall +LIBS = ../src/.libs/libcodec2.a -lm -lrt -lportaudio -pthread +LC2POC_C = fl_fdmdv.cxx + +all: fl_fdmdv + +fl_fdmdv: Makefile $(LC2POC_C) + g++ $(LC2POC_C) -I../src/ -o fl_fdmdv $(CFLAGS) $(FLTK_CFLAGS) $(LIBS) + +clean: + rm -f fl_fdmdv diff --git a/libs/libcodec2/fltk/fl_fdmdv.cxx b/libs/libcodec2/fltk/fl_fdmdv.cxx new file mode 100644 index 0000000000..30c67aab77 --- /dev/null +++ b/libs/libcodec2/fltk/fl_fdmdv.cxx @@ -0,0 +1,1158 @@ +/* + fl_fdmdv.cxx + Created 14 June 2012 + David Rowe + + Fltk 1.3 based GUI program to prototype FDMDV & Codec 2 integration + issues such as: + + + spectrum, waterfall, and other FDMDV GUI displays + + integration with real time audio I/O using portaudio + + what we do with audio when out of sync +*/ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "portaudio.h" + +#include "fdmdv.h" +#include "codec2.h" + +#define MIN_DB -40.0 +#define MAX_DB 0.0 +#define BETA 0.1 // constant for time averageing spectrum data +#define MIN_HZ 0 +#define MAX_HZ 4000 +#define WATERFALL_SECS_Y 5 // number of seconds respresented by y axis of waterfall +#define DT 0.02 // time between samples +#define FS 8000 // FDMDV modem sample rate + +#define SCATTER_MEM (FDMDV_NSYM)*50 +#define SCATTER_X_MAX 3.0 +#define SCATTER_Y_MAX 3.0 + +// main window params + +#define W 1200 +#define W3 (W/3) +#define H 600 +#define H2 (H/2) +#define SP 20 + +// sound card + +#define SAMPLE_RATE 48000 /* 48 kHz sampling rate rec. as we + can trust accuracy of sound + card */ +#define N8 FDMDV_NOM_SAMPLES_PER_FRAME /* processing buffer size at 8 kHz */ +#define MEM8 (FDMDV_OS_TAPS/FDMDV_OS) +#define N48 (N8*FDMDV_OS) /* processing buffer size at 48 kHz */ +#define NUM_CHANNELS 2 /* I think most sound cards prefer stereo, + we will convert to mono */ + +#define BITS_PER_CODEC_FRAME (2*FDMDV_BITS_PER_FRAME) +#define BYTES_PER_CODEC_FRAME (BITS_PER_CODEC_FRAME/8) + +// forward class declarations + +class Spectrum; +class Waterfall; +class Scatter; +class Scalar; + +// Globals -------------------------------------- + +char *fin_name = NULL; +char *fout_name = NULL; +char *sound_dev_name = NULL; +FILE *fin = NULL; +FILE *fout = NULL; +struct FDMDV *fdmdv; +struct CODEC2 *codec2; +float av_mag[FDMDV_NSPEC]; // shared between a few classes + +// GUI variables -------------------------------- + +Fl_Group *agroup; +Fl_Window *window; +Fl_Window *zoomSpectrumWindow = NULL; +Fl_Window *zoomWaterfallWindow = NULL; +Spectrum *aSpectrum; +Spectrum *aZoomedSpectrum; +Waterfall *aWaterfall; +Waterfall *aZoomedWaterfall; +Scatter *aScatter; +Scalar *aTimingEst; +Scalar *aFreqEst; +Scalar *aSNR; +int zoom_spectrum = 0; + +// Main processing loop states ------------------ + +float Ts = 0.0; +short input_buf[2*FDMDV_NOM_SAMPLES_PER_FRAME]; +int n_input_buf = 0; +int nin = FDMDV_NOM_SAMPLES_PER_FRAME; +short *output_buf; +int n_output_buf = 0; +int codec_bits[2*FDMDV_BITS_PER_FRAME]; +int state = 0; + +// Portaudio states ----------------------------- + +PaStream *stream = NULL; +PaError err; + +typedef struct { + float in48k[FDMDV_OS_TAPS + N48]; + float in8k[MEM8 + N8]; +} paCallBackData; + +// Class for each window type ------------------ + +class Spectrum: public Fl_Box { +protected: + int handle(int event) { + + // detect a left mouse down if inside the spectrum window + + if ((event == FL_NO_EVENT) && (Fl::event_button() == 1)) { + if ((Fl::event_x() > x()) && (Fl::event_x() < (x() + w())) && + (Fl::event_y() > y()) && (Fl::event_y() < (y() + h()))) { + + // show zoomed spectrum window + + zoomSpectrumWindow->show(); + } + + } + return 0; + } + + void draw() { + float x_px_per_point = 0.0; + float y_px_per_dB = 0.0; + int i, x1, y1, x2, y2; + float mag1, mag2; + char label[20]; + float px_per_hz; + + Fl_Box::draw(); + fl_color(FL_BLACK); + fl_rectf(x(),y(),w(),h()); + fl_color(FL_GREEN); + fl_line_style(FL_SOLID); + + fl_push_clip(x(),y(),w(),h()); + //printf("%d %d\n", w(), h()); + x_px_per_point = (float)w()/FDMDV_NSPEC; + y_px_per_dB = (float)h()/(MAX_DB - MIN_DB); + + // plot spectrum + + for(i=0; i x()) && (Fl::event_x() < (x() + w())) && + (Fl::event_y() > y()) && (Fl::event_y() < (y() + h()))) { + + // show zoomed spectrum window + + zoomWaterfallWindow->show(); + } + + } + return 0; + } + + // map val to a rgb colour + // from http://eddiema.ca/2011/01/21/c-sharp-heatmaps/ + + unsigned heatmap(float val, float min, float max) { + unsigned r = 0; + unsigned g = 0; + unsigned b = 0; + + val = (val - min) / (max - min); + if(val <= 0.2) { + b = (unsigned)((val / 0.2) * 255); + } else if(val > 0.2 && val <= 0.7) { + b = (unsigned)((1.0 - ((val - 0.2) / 0.5)) * 255); + } + if(val >= 0.2 && val <= 0.6) { + g = (unsigned)(((val - 0.2) / 0.4) * 255); + } else if(val > 0.6 && val <= 0.9) { + g = (unsigned)((1.0 - ((val - 0.6) / 0.3)) * 255); + } + if(val >= 0.5) { + r = (unsigned)(((val - 0.5) / 0.5) * 255); + } + + //printf("%f %x %x %x\n", val, r, g, b); + + return (b << 16) + (g << 8) + r; + } + + void draw() { + float spec_index_per_px, intensity_per_dB; + int px_per_sec; + int index, dy, dy_blocks, bytes_in_row_of_blocks, b; + int px, py, intensity; + unsigned *last_row, *pdest, *psrc; + + /* detect resizing of window */ + + if ((h() != prev_h) || (w() != prev_w)) { + delete pixel_buf; + new_pixel_buf(w(), h()); + } + + Fl_Box::draw(); + + // determine dy, the height of one "block" + + px_per_sec = (float)h()/WATERFALL_SECS_Y; + dy = DT*px_per_sec; + + // number of dy high blocks in spectrogram + + dy_blocks = h()/dy; + + // shift previous bit map + + bytes_in_row_of_blocks = dy*w()*sizeof(unsigned); + + for(b=0; b 255) intensity = 255; + if (intensity < 0) intensity = 0; + + if (greyscale) { + for(py=0; py (h()/2 - 10)) + y1 = h()/2 - 10; + if (y1 < -(h()/2 - 10)) + y1 = -(h()/2 - 10); + return y1; + } + + void draw() { + float x_scale; + float y_scale; + int i, x1, y1, x2, y2; + char label[100]; + + Fl_Box::draw(); + + /* detect resizing of window */ + + if ((h() != prev_h) || (w() != prev_w) || (x() != prev_x) || (y() != prev_y)) { + fl_color(FL_BLACK); + fl_rectf(x(),y(),w(),h()); + prev_h = h(); prev_w = w(); prev_x = x(); prev_y = y(); + } + + fl_push_clip(x(),y(),w(),h()); + + x_scale = (float)w()/x_max; + y_scale = (float)h()/(2.0*y_max); + + // erase last sample + + fl_color(FL_BLACK); + x1 = x_scale * index + x(); + y1 = y_scale * mem[index]; + y1 = clip(y1); + y1 = y() + h()/2 - y1; + fl_point(x1, y1); + + // draw new sample + + fl_color(FL_GREEN); + x1 = x_scale * index + x(); + y1 = y_scale * new_sample; + y1 = clip(y1); + y1 = y() + h()/2 - y1; + fl_point(x1, y1); + mem[index] = new_sample; + + index++; + if (index >= x_max) + index = 0; + + // y axis graticule + + step = 10; + + while ((2.0*y_max/step) > 10) + step *= 2.0; + while ((2.0*y_max/step) < 4) + step /= 2.0; + + fl_color(FL_DARK_GREEN); + fl_line_style(FL_DOT); + for(i=-y_max; i= *nin) { + + // demod per frame processing + + for(i=0; i<*nin; i++) + rx_fdm[i] = (float)input_buf[i]/FDMDV_SCALE; + nin_prev = *nin; + fdmdv_demod(fdmdv, rx_bits, &sync_bit, rx_fdm, nin); + *n_input_buf -= nin_prev; + assert(*n_input_buf >= 0); + + // shift input buffer + + for(i=0; i<*n_input_buf; i++) + input_buf[i] = input_buf[i+nin_prev]; + + // compute rx spectrum & get demod stats, and update GUI plot data + + fdmdv_get_rx_spectrum(fdmdv, rx_spec, rx_fdm, nin_prev); + fdmdv_get_demod_stats(fdmdv, &stats); + new_data(rx_spec); + aScatter->add_new_samples(stats.rx_symbols); + aTimingEst->add_new_sample(stats.rx_timing); + aFreqEst->add_new_sample(stats.foff); + aSNR->add_new_sample(stats.snr_est); + + /* + State machine to: + + + Mute decoded audio when out of sync. The demod is synced + when we are using the fine freq estimate and SNR is above + a thresh. + + + Decode codec bits only if we have a 0,1 sync bit + sequence. Collects two frames of demod bits to decode + one frame of codec bits. + */ + + next_state = *state; + switch (*state) { + case 0: + /* mute output audio when out of sync */ + + if (*n_output_buf < 2*codec2_samples_per_frame(c2) - N8) { + for(i=0; i 3.0)) + next_state = 1; + + break; + case 1: + if (sync_bit == 0) { + next_state = 2; + + /* first half of frame of codec bits */ + + memcpy(codec_bits, rx_bits, FDMDV_BITS_PER_FRAME*sizeof(int)); + } + else + next_state = 1; + + if (stats.fest_coarse_fine == 0) + next_state = 0; + + break; + case 2: + next_state = 1; + + if (stats.fest_coarse_fine == 0) + next_state = 0; + + if (sync_bit == 1) { + /* second half of frame of codec bits */ + + memcpy(&codec_bits[FDMDV_BITS_PER_FRAME], rx_bits, FDMDV_BITS_PER_FRAME*sizeof(int)); + + /* pack bits, MSB received first */ + + bit = 7; byte = 0; + memset(packed_bits, 0, BYTES_PER_CODEC_FRAME); + for(i=0; i= DT) { + *Ts -= DT; + if (!zoomSpectrumWindow->shown() && !zoomWaterfallWindow->shown()) { + aSpectrum->redraw(); + aWaterfall->redraw(); + aScatter->redraw(); + aTimingEst->redraw(); + aFreqEst->redraw(); + aSNR->redraw(); + } + if (zoomSpectrumWindow->shown()) + aZoomedSpectrum->redraw(); + if (zoomWaterfallWindow->shown()) + aZoomedWaterfall->redraw(); + } +} + + +/* + idle() is the FLTK function that gets continusouly called when FLTK + is not doing GUI work. We use this function for providing file + input to update the GUI when simulating real time operation. +*/ + +void idle(void*) { + int ret, i; + + if (fin_name != NULL) { + ret = fread(&input_buf[n_input_buf], + sizeof(short), + FDMDV_NOM_SAMPLES_PER_FRAME, + fin); + n_input_buf += FDMDV_NOM_SAMPLES_PER_FRAME; + + per_frame_rx_processing(output_buf, &n_output_buf, + codec_bits, + input_buf, &n_input_buf, + &nin, &state, codec2); + + if (fout_name != NULL) { + if (n_output_buf >= N8) { + ret = fwrite(output_buf, sizeof(short), N8, fout); + n_output_buf -= N8; + assert(n_output_buf >= 0); + + /* shift speech sample output buffer */ + + for(i=0; iin8k; + float *in48k = cbData->in48k; + float out8k[N8]; + float out48k[N48]; + short out48k_short[N48]; + + (void) timeInfo; + (void) statusFlags; + + assert(inputBuffer != NULL); + + /* Convert input model samples from 48 to 8 kHz ------------ */ + + /* just use left channel */ + + for(i=0; i= N8) { + if (state == 0) { + for(i=0; i= 0); + + /* shift speech samples in output buffer */ + + for(i=0; i<(uint)n_output_buf; i++) + output_buf[i] = output_buf[i+N8]; + + /* Convert output speech to 48 kHz sample rate ------------- */ + + /* upsample and update filter memory */ + + fdmdv_8_to_48(out48k, &in8k[MEM8], N8); + for(i=0; i= argc) + return 0; + fin_name = argv[i+1]; + i += 2; + return 2; + } + if (argv[i][1] == 'o') { + if ((i+1) >= argc) + return 0; + fout_name = argv[i+1]; + i += 2; + return 2; + } + if (argv[i][1] == 's') { + if ((i+1) >= argc) + return 0; + sound_dev_name = argv[i+1]; + i += 2; + return 2; + } + return 0; +} + +/*------------------------------------------------------------*\ + + MAIN + +\*------------------------------------------------------------*/ + +int main(int argc, char **argv) { + int ret; + int i; + PaStreamParameters inputParameters, outputParameters; + paCallBackData cbData; + + i = 1; + Fl::args(argc,argv,i,arg_callback); + + if (argc == 1) { + printf("usage: %s [-i inputFdmdvRawFile] [-o outputRawSoundFile] [-s inputSoundDevice]\n", argv[0]); + exit(0); + } + + if (fin_name != NULL) { + fin = fopen(fin_name,"rb"); + if (fin == NULL) { + fprintf(stderr, "Error opening input fdmdv raw file %s\n", fin_name); + exit(1); + } + } + + if (fout_name != NULL) { + fout = fopen(fout_name,"wb"); + if (fout == NULL) { + fprintf(stderr, "Error opening output speech raw file %s\n", fout_name); + exit(1); + } + } + + for(i=0; idefaultLowInputLatency; + inputParameters.hostApiSpecificStreamInfo = NULL; + + outputParameters.device = Pa_GetDefaultOutputDevice(); /* default output device */ + if (outputParameters.device == paNoDevice) { + fprintf(stderr,"Error: No default output device.\n"); + goto pa_error; + } + outputParameters.channelCount = NUM_CHANNELS; /* stereo output */ + outputParameters.sampleFormat = paInt16; + outputParameters.suggestedLatency = Pa_GetDeviceInfo( outputParameters.device )->defaultLowOutputLatency; + outputParameters.hostApiSpecificStreamInfo = NULL; + + err = Pa_OpenStream( + &stream, + &inputParameters, + &outputParameters, + SAMPLE_RATE, + N48, + paClipOff, + callback, + &cbData); + + if( err != paNoError ) goto pa_error; + } + + /*------------------------------------------------------------------------*\ + + Init GUI + + \*------------------------------------------------------------------------*/ + + // recommended to prevent dithering and stopped display being + // covered by black flickering squares + + Fl::visual(FL_RGB); + + // set up main window + + window = new Fl_Window(W, SP+H2+SP+SP+H2+SP, "fl_fmdv"); + //window->size_range(100, 100); + //window->resizable(); + aSpectrum = new Spectrum(SP, SP, W3-2*SP, H2); + aWaterfall = new Waterfall(SP, SP+H2+SP+SP, W3-2*SP, H2); + aScatter = new Scatter(W3+SP, SP, W3-2*SP, H2); + aTimingEst = new Scalar(W3+SP, SP+H2+SP+SP, W3-2*SP, H2, 100, 80, "Timing Est"); + aFreqEst = new Scalar(2*W3+SP, SP, W3-2*SP, H2, 100, 100, "Frequency Est"); + aSNR = new Scalar(2*W3+SP, SP+H2+SP+SP, W3-2*SP, H2, 100, 20, "SNR"); + + Fl::add_idle(idle); + + window->end(); + + // set up zoomed spectrum window + + zoomSpectrumWindow = new Fl_Window(W, H, "Spectrum"); + aZoomedSpectrum = new Spectrum(SP, SP, W-2*SP, H-2*SP); + zoomSpectrumWindow->end(); + + // set up zoomed waterfall window + + zoomWaterfallWindow = new Fl_Window(W, H, "Waterfall"); + aZoomedWaterfall = new Waterfall(SP, SP, W-2*SP, H-2*SP); + zoomWaterfallWindow->end(); + + if (sound_dev_name != NULL) { + err = Pa_StartStream( stream ); + if( err != paNoError ) goto pa_error; + } + + // show the main window and start running + + window->show(argc, argv); + Fl::run(); + + if (sound_dev_name != NULL) { + err = Pa_StopStream( stream ); + if( err != paNoError ) goto pa_error; + Pa_CloseStream( stream ); + Pa_Terminate(); + } + + fdmdv_destroy(fdmdv); + codec2_destroy(codec2); + free(output_buf); + + if (fin_name != NULL) + fclose(fin); + if (fout_name != NULL) + fclose(fout); + + return ret; + + // Portaudio error handling + +pa_error: + if( stream ) { + Pa_AbortStream( stream ); + Pa_CloseStream( stream ); + } + Pa_Terminate(); + fprintf( stderr, "An error occured while using the portaudio stream\n" ); + fprintf( stderr, "Error number: %d\n", err ); + fprintf( stderr, "Error message: %s\n", Pa_GetErrorText( err ) ); + return -1; +} diff --git a/libs/libcodec2/octave/README.txt b/libs/libcodec2/octave/README.txt new file mode 100644 index 0000000000..05d63f201f --- /dev/null +++ b/libs/libcodec2/octave/README.txt @@ -0,0 +1,17 @@ +README.txt +For codec2/octave directory +Created 24 June 2012 by David Rowe + +1/ To support some of the Octave scripts (in particular fdmdv) in this + directory the following Octave packages need to be installed: + + control image miscellaneous optim signal specfun struct + +2/ Download these tar balls from: + + http://octave.sourceforge.net/packages.php + +3/ Install each package from the Octave command line with: + + octave:3> pkg install package_file_name.tar.gz + diff --git a/libs/libcodec2/octave/av_imp.m b/libs/libcodec2/octave/av_imp.m new file mode 100644 index 0000000000..8b7fa60876 --- /dev/null +++ b/libs/libcodec2/octave/av_imp.m @@ -0,0 +1,43 @@ +% av_imp.m +% David Rowe Aug 2012 +% Averages the impulse response samples + +function imp = av_imp(imp_filename, period_in_secs, st, en) + f = fopen(imp_filename,"rb"); + s = fread(f, Inf, "short")'; + + Fs = 8000; + n = period_in_secs * Fs; + + [r c] = size(s); + + imp = zeros(1,n); + for i=1:n:c-n + imp = imp + s(i:i+n-1); + endfor + + % user supplies start and end samples after viweing plot + + if (nargin == 4) + imp = imp(st:en); + end + + % normalise + + imp /= sqrt(sum(imp .^ 2)); + + [h w] = freqz(imp, 1, 4000); + + figure(1); + clf; + plot(imp); + + figure(2); + clf; + subplot(211) + plot(10*log10(abs(h))) + subplot(212) + plot(angle(h)) + +endfunction + diff --git a/libs/libcodec2/octave/cbphase.m b/libs/libcodec2/octave/cbphase.m new file mode 100644 index 0000000000..8e82da1c84 --- /dev/null +++ b/libs/libcodec2/octave/cbphase.m @@ -0,0 +1,98 @@ +% cbphase.m +% David Rowe Aug 2012 +% Used to experiment with critical band phase perception and smoothing + +function cbphase + + Wo = 100.0*pi/4000; + L = floor(pi/Wo); + + A = zeros(1,L); + phi = zeros(1,L); + + % three harmonics in this band + + b = 4; a = b-1; c = b+1; + + % set up phases and mags for 2nd order system (see phasesecord.m) + + wres = b*Wo; + phi(a) = 3*pi/4 + wres; + phi(b) = pi/2 + wres; + phi(c) = pi/4 + wres; + + A(a) = 0.707; + A(b) = 1; + A(c) = 0.707; + + % add linear component + + phi(1) = pi; + phi(2:L) = phi(2:L) + (2:L)*phi(1); + phi = phi - 2*pi*(floor(phi/(2*pi)) + 0.5); + + N = 16000; + Nplot = 250; + s = zeros(1,N); + + for m=a:c + s_m = A(m)*cos(m*Wo*(0:(N-1)) + phi(m)); + s = s + s_m; + endfor + + figure(2); + clf; + subplot(211) + plot((1:L)*Wo*4000/pi, A,'+'); + subplot(212) + plot((1:L)*Wo*4000/pi, phi,'+'); + + %v = A(a)*exp(j*phi(a)) + A(b)*exp(j*phi(b)) + A(c)*exp(j*phi(c)); + %compass(v,"r") + %hold off; + + % est phi1 + + diff = phi(b) - phi(a) + sumi = sin(diff); + sumr = cos(diff); + diff = phi(c) - phi(b) + sumi += sin(diff); + sumr += cos(diff); + phi1_ = atan2(sumi, sumr) + s_v = cos(Wo*(0:(N-1)) + phi1_); + + figure(1); + clf; + subplot(211) + plot(s(1:Nplot)); + hold on; + plot(s_v(1:Nplot),"r"); + hold off; + + % build (hopefully) perceptually similar phase + + phi_(a) = a*phi1_; + phi_(b) = b*phi1_; + phi_(c) = c*phi1_; + + s_ = zeros(1,N); + + for m=a:c + s_m = A(m)*cos(m*Wo*(0:(N-1)) + phi_(m)); + s_ = s_ + s_m; + endfor + + subplot(212) + plot(s_(1:Nplot)); + + gain = 8000; + fs=fopen("orig_ph.raw","wb"); + fwrite(fs,gain*s,"short"); + fclose(fs); + fs=fopen("mod_ph.raw","wb"); + fwrite(fs,gain*s_,"short"); + fclose(fs); + +endfunction + diff --git a/libs/libcodec2/octave/codec2_demo.m b/libs/libcodec2/octave/codec2_demo.m new file mode 100644 index 0000000000..0f3950bf5d --- /dev/null +++ b/libs/libcodec2/octave/codec2_demo.m @@ -0,0 +1,108 @@ +% Copyright David Rowe 2012 +% This program is distributed under the terms of the GNU General Public License +% Version 2 +% +% codec2_demo.m + +% Designed as an educational tool to explain the operation of Codec 2 +% for conference and user group presentations on a projector. An +% alternative to static overhead slides. +% +% Derived from codec2-dev/octave/plamp.m +% +% usage: +% octave:1> plamp("../src/hts2a",40) +% +% Then press: +% c - to cycle through the wavform being displayed on the figure +% n - next frame +% b - back one frame +% +% tip: hold down n or b to animate the display +% +% The text files used as input are generated using c2sim: +% +% /codec2-dev/src$ c2sim ../raw/hts2a.raw --dump hts2a +% +% The Codec 2 README explains how to build c2sim with dump files +% enabled. + +function codec2_demo(samname, f) + + sn_name = strcat(samname,"_sn.txt"); + Sn = load(sn_name); + + sw_name = strcat(samname,"_sw.txt"); + Sw = load(sw_name); + + model_name = strcat(samname,"_model.txt"); + model = load(model_name); + + figure(1); + + k = ' '; + wf = "Sn"; + do + + if strcmp(wf,"Sn") + clf; + s = [ Sn(2*f-1,:) Sn(2*f,:) ]; + plot(s); + axis([1 length(s) -20000 20000]); + end + + if (strcmp(wf,"Sw")) + clf; + plot((0:255)*4000/256, Sw(f,:),";Sw;"); + end + + if strcmp(wf,"SwAm") + Wo = model(f,1); + L = model(f,2); + Am = model(f,3:(L+2)); + plot((0:255)*4000/256, Sw(f,:),";Sw;"); + hold on; + plot((1:L)*Wo*4000/pi, 20*log10(Am),"+;Am;r"); + axis([1 4000 -10 80]); + hold off; + end + + if strcmp(wf,"Am") + Wo = model(f,1); + L = model(f,2); + Am = model(f,3:(L+2)); + plot((1:L)*Wo*4000/pi, 20*log10(Am),"+;Am;r"); + axis([1 4000 -10 80]); + end + + % interactive menu + + printf("\rframe: %d menu: n-next b-back w-cycle window q-quit", f); + fflush(stdout); + k = kbhit(); + if (k == 'n') + f = f + 1; + end + if (k == 'b') + f = f - 1; + end + if (k == 'w') + if strcmp(wf,"Sn") + next_wf = "Sw"; + end + if strcmp(wf,"Sw") + next_wf = "SwAm"; + end + if strcmp(wf,"SwAm") + next_wf = "Am"; + end + if strcmp(wf,"Am") + next_wf = "Sn"; + end + wf = next_wf; + end + + until (k == 'q') + printf("\n"); + +endfunction diff --git a/libs/libcodec2/octave/cspec.m b/libs/libcodec2/octave/cspec.m new file mode 100644 index 0000000000..e0ca15b678 --- /dev/null +++ b/libs/libcodec2/octave/cspec.m @@ -0,0 +1,54 @@ +% cspec.m +% David Rowe Aug 2012 +% Used to compare spectromgrams while experimenting with phase + +function cspec(s1,s2) + f1 = fopen(s1,"rb"); + s1 = fread(f1,Inf,"short"); + f2 = fopen(s2,"rb"); + s2 = fread(f2,Inf,"short"); + + Fs = 8000; + spec_win = 512; + + state = 's1'; + do + if strcmp(state,'s1') + spec(s1,Fs,spec_win); + %title(s1); + end + if strcmp(state,'s2') + spec(s2,Fs,spec_win); + %title(s2); + end + if strcmp(state,'diff') + spec(s1-s2,Fs,spec_win); + %title("difference"); + end + + printf("\rstate: %s space-toggle d-diff q-quit", state); + fflush(stdout); + k = kbhit(); + + if k == ' ' + if strcmp(state,"diff") + next_state = 's1'; + end + if strcmp(state,"s1") + next_state = 's2'; + end + if strcmp(state,'s2') + next_state = 's1'; + end + end + + if k == 'd' + next_state = 'diff'; + end + + state = next_state; + until (k == 'q') + + printf("\n"); + +endfunction diff --git a/libs/libcodec2/octave/fdmdv.m b/libs/libcodec2/octave/fdmdv.m new file mode 100644 index 0000000000..432be81ae6 --- /dev/null +++ b/libs/libcodec2/octave/fdmdv.m @@ -0,0 +1,935 @@ +% fdmdv.m +% +% Functions that implement a Frequency Divison Multiplexed Modem for +% Digital Voice (FDMDV) over HF channels. +% +% Copyright David Rowe 2012 +% This program is distributed under the terms of the GNU General Public License +% Version 2 +% + +% reqd to mak sure we get same random bits at mod and demod + +rand('state',1); +randn('state',1); + +% Constants + +global Fs = 8000; % sample rate in Hz +global T = 1/Fs; % sample period in seconds +global Rs = 50; % symbol rate in Hz +global Nc = 14; % number of carriers +global Nb = 2; % Bits/symbol for QPSK modulation +global Rb = Nc*Rs*Nb; % bit rate +global M = Fs/Rs; % oversampling factor +global Nsym = 6; % number of symbols to filter over +global Fsep = 75; % Separation between carriers (Hz) +global Fcentre = 1200; % Centre frequency, Nc/2 carriers below this, N/c carriers above (Hz) +global Nt = 5; % number of symbols we estimate timing over +global P = 4; % oversample factor used for rx symbol filtering +global Nfilter = Nsym*M; +global Nfiltertiming = M+Nfilter+M; +alpha = 0.5; +global snr_coeff = 0.9 % SNR est averaging filter coeff + +% root raised cosine (Root Nyquist) filter + +global gt_alpha5_root; +gt_alpha5_root = gen_rn_coeffs(alpha, T, Rs, Nsym, M); + + +% Functions ---------------------------------------------------- + + +% generate Nc+1 QPSK symbols from vector of (1,Nc*Nb) input bits. The +% Nc+1 symbol is the +1 -1 +1 .... BPSK sync carrier + +function tx_symbols = bits_to_qpsk(prev_tx_symbols, tx_bits, modulation) + global Nc; + global Nb; + global pilot_bit; + + % re-arrange as (Nc,Nb) matrix + + tx_bits_matrix = zeros(Nc,Nb); + tx_bits_matrix(1:Nc,1) = tx_bits(1:Nb:Nb*Nc); + tx_bits_matrix(1:Nc,2) = tx_bits(2:Nb:Nb*Nc); + + if (strcmp(modulation,'dqpsk')) + + % map to (Nc,1) DQPSK symbols + + for c=1:Nc + msb = tx_bits_matrix(c,1); lsb = tx_bits_matrix(c,2); + + if ((msb == 0) && (lsb == 0)) + tx_symbols(c) = prev_tx_symbols(c); + endif + if ((msb == 0) && (lsb == 1)) + tx_symbols(c) = j*prev_tx_symbols(c); + endif + if ((msb == 1) && (lsb == 0)) + tx_symbols(c) = -prev_tx_symbols(c); + endif + if ((msb == 1) && (lsb == 1)) + tx_symbols(c) = -j*prev_tx_symbols(c); + endif + end + else + % QPSK mapping + tx_symbols = -1 + 2*tx_bits_matrix(:,1) - j + 2j*tx_bits_matrix(:,2); + endif + + % +1 -1 +1 -1 BPSK sync carrier, once filtered becomes two spectral + % lines at +/- Rs/2 + + if pilot_bit + tx_symbols(Nc+1) = -prev_tx_symbols(Nc+1); + else + tx_symbols(Nc+1) = prev_tx_symbols(Nc+1); + end + if pilot_bit + pilot_bit = 0; + else + pilot_bit = 1; + end + +endfunction + + +% Given Nc*Nb bits construct M samples (1 symbol) of Nc filtered +% symbols streams + +function tx_baseband = tx_filter(tx_symbols) + global Nc; + global M; + global tx_filter_memory; + global Nfilter; + global gt_alpha5_root; + + tx_baseband = zeros(Nc+1,M); + + % tx filter each symbol, generate M filtered output samples for each symbol. + % Efficient polyphase filter techniques used as tx_filter_memory is sparse + + tx_filter_memory(:,Nfilter) = sqrt(2)/2*tx_symbols; + + for i=1:M + tx_baseband(:,i) = M*tx_filter_memory(:,M:M:Nfilter) * gt_alpha5_root(M-i+1:M:Nfilter)'; + end + tx_filter_memory(:,1:Nfilter-M) = tx_filter_memory(:,M+1:Nfilter); + tx_filter_memory(:,Nfilter-M+1:Nfilter) = zeros(Nc+1,M); + +endfunction + + +% Construct FDM signal by frequency shifting each filtered symbol +% stream. Returns complex signal so we can apply frequency offsets +% easily. + +function tx_fdm = fdm_upconvert(tx_filt) + global Fs; + global M; + global Nc; + global Fsep; + global phase_tx; + global freq; + + tx_fdm = zeros(1,M); + + % Nc/2 tones below centre freq + + for c=1:Nc/2 + for i=1:M + phase_tx(c) = phase_tx(c) * freq(c); + tx_fdm(i) = tx_fdm(i) + tx_filt(c,i)*phase_tx(c); + end + end + + % Nc/2 tones above centre freq + + for c=Nc/2+1:Nc + for i=1:M + phase_tx(c) = phase_tx(c) * freq(c); + tx_fdm(i) = tx_fdm(i) + tx_filt(c,i)*phase_tx(c); + end + end + + % add centre pilot tone + + c = Nc+1; + for i=1:M + phase_tx(c) = phase_tx(c) * freq(c); + pilot(i) = 2*tx_filt(c,i)*phase_tx(c); + tx_fdm(i) = tx_fdm(i) + pilot(i); + end + + % Scale such that total Carrier power C of real(tx_fdm) = Nc. This + % excludes the power of the pilot tone. + % We return the complex (single sided) signal to make frequency + % shifting for the purpose of testing easier + + tx_fdm = 2*tx_fdm; +endfunction + + +% Frequency shift each modem carrier down to Nc+1 baseband signals + +function rx_baseband = fdm_downconvert(rx_fdm, nin) + global Fs; + global M; + global Nc; + global Fsep; + global phase_rx; + global freq; + + rx_baseband = zeros(1,nin); + + % Nc/2 tones below centre freq + + for c=1:Nc/2 + for i=1:nin + phase_rx(c) = phase_rx(c) * freq(c); + rx_baseband(c,i) = rx_fdm(i)*phase_rx(c)'; + end + end + + % Nc/2 tones above centre freq + + for c=Nc/2+1:Nc + for i=1:nin + phase_rx(c) = phase_rx(c) * freq(c); + rx_baseband(c,i) = rx_fdm(i)*phase_rx(c)'; + end + end + + % Pilot + + c = Nc+1; + for i=1:nin + phase_rx(c) = phase_rx(c) * freq(c); + rx_baseband(c,i) = rx_fdm(i)*phase_rx(c)'; + end + +endfunction + + +% Receive filter each baseband signal at oversample rate P + +function rx_filt = rx_filter(rx_baseband, nin) + global Nc; + global M; + global P; + global rx_filter_memory; + global Nfilter; + global gt_alpha5_root; + global Fsep; + + rx_filt = zeros(Nc+1,nin*P/M); + + % rx filter each symbol, generate P filtered output samples for each symbol. + % Note we keep memory at rate M, it's just the filter output at rate P + + N=M/P; + j=1; + for i=1:N:nin + rx_filter_memory(:,Nfilter-N+1:Nfilter) = rx_baseband(:,i:i-1+N); + rx_filt(:,j) = rx_filter_memory * gt_alpha5_root'; + rx_filter_memory(:,1:Nfilter-N) = rx_filter_memory(:,1+N:Nfilter); + j+=1; + end +endfunction + + +% LPF and peak pick part of freq est, put in a function as we call it twice + +function [foff imax pilot_lpf S] = lpf_peak_pick(pilot_baseband, pilot_lpf, nin) + global M; + global Npilotlpf; + global Npilotcoeff; + global Fs; + global Mpilotfft; + global pilot_coeff; + + % LPF cutoff 200Hz, so we can handle max +/- 200 Hz freq offset + + pilot_lpf(1:Npilotlpf-nin) = pilot_lpf(nin+1:Npilotlpf); + j = 1; + for i = Npilotlpf-nin+1:Npilotlpf + pilot_lpf(i) = pilot_baseband(j:j+Npilotcoeff-1) * pilot_coeff'; + j++; + end + + % decimate to improve DFT resolution, window and DFT + + Mpilot = Fs/(2*200); % calc decimation rate given new sample rate is twice LPF freq + h = hanning(Npilotlpf); + s = pilot_lpf(1:Mpilot:Npilotlpf) .* h(1:Mpilot:Npilotlpf)'; + s = [s zeros(1,Mpilotfft-Npilotlpf/Mpilot)]; + S = fft(s, Mpilotfft); + + % peak pick and convert to Hz + + [imax ix] = max(S); + r = 2*200/Mpilotfft; % maps FFT bin to frequency in Hz + + if ix > Mpilotfft/2 + foff = (ix - Mpilotfft - 1)*r; + else + foff = (ix - 1)*r; + endif + +endfunction + + +% Estimate frequency offset of FDM signal using BPSK pilot. This is quite +% sensitive to pilot tone level wrt other carriers + +function [foff S1 S2] = rx_est_freq_offset(rx_fdm, pilot, pilot_prev, nin) + global M; + global Npilotbaseband; + global pilot_baseband1; + global pilot_baseband2; + global pilot_lpf1; + global pilot_lpf2; + + % down convert latest nin samples of pilot by multiplying by + % ideal BPSK pilot signal we have generated locally. This + % peak of the resulting signal is sensitive to the time shift between + % the received and local version of the pilot, so we do it twice at + % different time shifts and choose the maximum. + + pilot_baseband1(1:Npilotbaseband-nin) = pilot_baseband1(nin+1:Npilotbaseband); + pilot_baseband2(1:Npilotbaseband-nin) = pilot_baseband2(nin+1:Npilotbaseband); + for i=1:nin + pilot_baseband1(Npilotbaseband-nin+i) = rx_fdm(i) * conj(pilot(i)); + pilot_baseband2(Npilotbaseband-nin+i) = rx_fdm(i) * conj(pilot_prev(i)); + end + + [foff1 max1 pilot_lpf1 S1] = lpf_peak_pick(pilot_baseband1, pilot_lpf1, nin); + [foff2 max2 pilot_lpf2 S2] = lpf_peak_pick(pilot_baseband2, pilot_lpf2, nin); + + if max1 > max2 + foff = foff1; + else + foff = foff2; + end +endfunction + + +% Estimate optimum timing offset, re-filter receive symbols + +function [rx_symbols rx_timing env] = rx_est_timing(rx_filt, rx_baseband, nin) + global M; + global Nt; + global Nc; + global rx_filter_mem_timing; + global rx_baseband_mem_timing; + global P; + global Nfilter; + global Nfiltertiming; + global gt_alpha5_root; + + % nin adjust + % -------------------------------- + % 120 -1 (one less rate P sample) + % 160 0 (nominal) + % 200 1 (one more rate P sample) + + adjust = P - nin*P/M; + + % update buffer of Nt rate P filtered symbols + + rx_filter_mem_timing(:,1:(Nt-1)*P+adjust) = rx_filter_mem_timing(:,P+1-adjust:Nt*P); + rx_filter_mem_timing(:,(Nt-1)*P+1+adjust:Nt*P) = rx_filt(:,:); + + % sum envelopes of all carriers + + env = sum(abs(rx_filter_mem_timing(:,:))); % use all Nc+1 carriers for timing + %env = abs(rx_filter_mem_timing(Nc+1,:)); % just use BPSK pilot + [n m] = size(env); + + % The envelope has a frequency component at the symbol rate. The + % phase of this frequency component indicates the timing. So work out + % single DFT at frequency 2*pi/P + + x = env * exp(-j*2*pi*(0:m-1)/P)'; + + % map phase to estimated optimum timing instant at rate M + % the M/4 part was adjusted by experiment, I know not why.... + + rx_timing = angle(x)*M/(2*pi) + M/4; + if (rx_timing > M) + rx_timing -= M; + end + if (rx_timing < -M) + rx_timing += M; + end + + % rx_baseband_mem_timing contains M + Nfilter + M samples of the + % baseband signal at rate M this enables us to resample the filtered + % rx symbol with M sample precision once we have rx_timing + + rx_baseband_mem_timing(:,1:Nfiltertiming-nin) = rx_baseband_mem_timing(:,nin+1:Nfiltertiming); + rx_baseband_mem_timing(:,Nfiltertiming-nin+1:Nfiltertiming) = rx_baseband; + + % sample right in the middle of the timing estimator window, by filtering + % at rate M + + s = round(rx_timing) + M; + rx_symbols = rx_baseband_mem_timing(:,s+1:s+Nfilter) * gt_alpha5_root'; + +endfunction + + +% Phase estimation function - probably won't work over a HF channel +% Tries to operate over a single symbol but uses phase information from +% all Nc carriers which should increase the SNR of phase estimate. +% Maybe phase is coherent over a couple of symbols in HF channel,not +% sure but it's worth 3dB so worth experimenting or using coherent as +% an option. + +function rx_phase = rx_est_phase(prev_rx_symbols, rx_symbols) + + % modulation strip + + rx_phase = angle(sum(rx_symbols .^ 4))/4; + +endfunction + + +% convert symbols back to an array of bits + +function [rx_bits sync_bit f_err phase_difference] = qpsk_to_bits(prev_rx_symbols, rx_symbols, modulation) + global Nc; + global Nb; + global Nb; + + if (strcmp(modulation,'dqpsk')) + % extra 45 degree clockwise lets us use real and imag axis as + % decision boundaries + + phase_difference = zeros(Nc+1,1); + phase_difference(1:Nc) = rx_symbols(1:Nc) .* conj(prev_rx_symbols(1:Nc)) * exp(j*pi/4); + + % map (Nc,1) DQPSK symbols back into an (1,Nc*Nb) array of bits + + for c=1:Nc + d = phase_difference(c); + if ((real(d) >= 0) && (imag(d) >= 0)) + msb = 0; lsb = 0; + endif + if ((real(d) < 0) && (imag(d) >= 0)) + msb = 0; lsb = 1; + endif + if ((real(d) < 0) && (imag(d) < 0)) + msb = 1; lsb = 0; + endif + if ((real(d) >= 0) && (imag(d) < 0)) + msb = 1; lsb = 1; + endif + rx_bits(2*(c-1)+1) = msb; + rx_bits(2*(c-1)+2) = lsb; + end + + % Extract DBPSK encoded Sync bit + + phase_difference(Nc+1,1) = rx_symbols(Nc+1) .* conj(prev_rx_symbols(Nc+1)); + if (real(phase_difference(Nc+1)) < 0) + sync_bit = 1; + f_err = imag(phase_difference(Nc+1)); + else + sync_bit = 0; + f_err = -imag(phase_difference(Nc+1)); + end + + % pilot carrier gets an extra pi/4 rotation to make it consistent with + % other carriers, as we need it for snr_update and scatter diagram + + phase_difference(Nc+1) *= exp(j*pi/4); + else + % map (Nc,1) QPSK symbols back into an (1,Nc*Nb) array of bits + + rx_bits(1:Nb:Nc*Nb) = real(rx_symbols) > 0; + rx_bits(2:Nb:Nc*Nb) = imag(rx_symbols) > 0; + endif + +endfunction + + +% given phase differences update estimates of signal and noise levels + +function [sig_est noise_est] = snr_update(sig_est, noise_est, phase_difference) + global snr_coeff; + global Nc; + + % mag of each symbol is distance from origin, this gives us a + % vector of mags, one for each carrier. + + s = abs(phase_difference); + + % signal mag estimate for each carrier is a smoothed version + % of instantaneous magntitude, this gives us a vector of smoothed + % mag estimates, one for each carrier. + + sig_est = snr_coeff*sig_est + (1 - snr_coeff)*s; + + % noise mag estimate is distance of current symbol from average + % location of that symbol. We reflect all symbols into the first + % quadrant for convenience. + + refl_symbols = abs(real(phase_difference)) + j*abs(imag(phase_difference)); + n = abs(exp(j*pi/4)*sig_est - refl_symbols); + + % noise mag estimate for each carrier is a smoothed version of + % instantaneous noise mag, this gives us a vector of smoothed + % noise power estimates, one for each carrier. + + noise_est = snr_coeff*noise_est + (1 - snr_coeff)*n; +endfunction + + +% calculate current SNR estimate (3000Hz noise BW) + +function snr_dB = calc_snr(sig_est, noise_est) + global Rs; + + % find total signal power by summing power in all carriers + + S = sum(sig_est .^2); + SdB = 10*log10(S); + + % Average noise mag across all carriers and square to get an average + % noise power. This is an estimate of the noise power in Rs = 50Hz of + % BW (note for raised root cosine filters Rs is the noise BW of the + % filter) + + N50 = mean(noise_est).^2; + N50dB = 10*log10(N50); + + % Now multiply by (3000 Hz)/(50 Hz) to find the total noise power in + % 3000 Hz + + N3000dB = N50dB + 10*log10(3000/Rs); + + snr_dB = SdB - N3000dB; + +endfunction + +% returns nbits from a repeating sequence of random data + +function bits = get_test_bits(nbits) + global Ntest_bits; % length of test sequence + global current_test_bit; + global test_bits; + + for i=1:nbits + bits(i) = test_bits(current_test_bit++); + if (current_test_bit > Ntest_bits) + current_test_bit = 1; + endif + end + +endfunction + + +% Accepts nbits from rx and attempts to sync with test_bits sequence. +% if sync OK measures bit errors + +function [sync bit_errors] = put_test_bits(rx_bits) + global Ntest_bits; % length of test sequence + global test_bits; + global rx_test_bits_mem; + + % Append to our memory + + [m n] = size(rx_bits); + rx_test_bits_mem(1:Ntest_bits-n) = rx_test_bits_mem(n+1:Ntest_bits); + rx_test_bits_mem(Ntest_bits-n+1:Ntest_bits) = rx_bits; + + % see how many bit errors we get when checked against test sequence + + bit_errors = sum(xor(test_bits,rx_test_bits_mem)); + + % if less than a thresh we are aligned and in sync with test sequence + + ber = bit_errors/Ntest_bits; + + sync = 0; + if (ber < 0.2) + sync = 1; + endif +endfunction + + + +% Generate M samples of DBPSK pilot signal for Freq offset estimation + +function [pilot_fdm bit symbol filter_mem phase] = generate_pilot_fdm(bit, symbol, filter_mem, phase, freq) + global M; + global Nfilter; + global gt_alpha5_root; + + % +1 -1 +1 -1 DBPSK sync carrier, once filtered becomes two spectral + % lines at +/- Rs/2 + + if bit + symbol = -symbol; + else + symbol = symbol; + end + if bit + bit = 0; + else + bit = 1; + end + + % filter DPSK symbol to create M baseband samples + + filter_mem(Nfilter) = (sqrt(2)/2)*symbol; + for i=1:M + tx_baseband(i) = M*filter_mem(M:M:Nfilter) * gt_alpha5_root(M-i+1:M:Nfilter)'; + end + filter_mem(1:Nfilter-M) = filter_mem(M+1:Nfilter); + filter_mem(Nfilter-M+1:Nfilter) = zeros(1,M); + + % upconvert + + for i=1:M + phase = phase * freq; + pilot_fdm(i) = sqrt(2)*2*tx_baseband(i)*phase; + end + +endfunction + + +% Generate a 4M sample vector of DBPSK pilot signal. As the pilot signal +% is periodic in 4M samples we can then use this vector as a look up table +% for pilot signal generation in the demod. + +function pilot_lut = generate_pilot_lut() + global Nc; + global Nfilter; + global M; + global freq; + + % pilot states + + pilot_rx_bit = 0; + pilot_symbol = sqrt(2); + pilot_freq = freq(Nc+1); + pilot_phase = 1; + pilot_filter_mem = zeros(1, Nfilter); + %prev_pilot = zeros(M,1); + + pilot_lut = []; + + F=8; + + for f=1:F + [pilot pilot_rx_bit pilot_symbol pilot_filter_mem pilot_phase] = generate_pilot_fdm(pilot_rx_bit, pilot_symbol, pilot_filter_mem, pilot_phase, pilot_freq); + %prev_pilot = pilot; + pilot_lut = [pilot_lut pilot]; + end + + % discard first 4 symbols as filter memory is filling, just keep last + % four symbols + + pilot_lut = pilot_lut(4*M+1:M*F); + +endfunction + + +% grab next pilot samples for freq offset estimation at demod + +function [pilot prev_pilot pilot_lut_index prev_pilot_lut_index] = get_pilot(pilot_lut_index, prev_pilot_lut_index, nin) + global M; + global pilot_lut; + + for i=1:nin + pilot(i) = pilot_lut(pilot_lut_index); + pilot_lut_index++; + if pilot_lut_index > 4*M + pilot_lut_index = 1; + end + prev_pilot(i) = pilot_lut(prev_pilot_lut_index); + prev_pilot_lut_index++; + if prev_pilot_lut_index > 4*M + prev_pilot_lut_index = 1; + end + end +endfunction + + + +% Change the sample rate by a small amount, for example 1000ppm (ratio +% = 1.001). Always returns nout samples in buf_out, but uses a +% variable number of input samples nin to accomodate the change in +% sample rate. nin is nominally set to nout, but may use nout +/- 2 +% samples to accomodate the different sample rates. buf_in should be +% of length nout+6 samples to accomodate this, and buf_in should be +% updated externally based on the nin returned each time. "ratio" is +% Fs_in/Fs_out, for example 48048/48000 = 1.001 (+1000ppm) or +% 47952/48000 = 0.999 (-1000ppm). Uses linear interpolation to +% perform the resampling. This requires a highly over-sampled signal, +% for example 48000Hz sample rate for the modem signal centred on +% 1kHz, otherwise linear interpolation will have a low pass filter effect +% (for example an 8000Hz sample rate for modem signal centred on 1kHz +% would cause problems). + +function [buf_out t nin] = resample(buf_in, t, ratio, nout) + + for i=1:nout + c = floor(t); + a = t - c; + b = 1 - a; + buf_out(i) = buf_in(c)*b + buf_in(c+1)*a; + t += ratio; + end + + t -= nout; + + % adjust nin and t so that on next call we start with 3 < t < 4, + % this gives us +/- 2 samples room to move before we hit start or + % end of buf_in + + delta = floor(t - 3); + nin = nout + delta; + t -= delta; + +endfunction + + +% freq offset state machine. Moves between acquire and track states based +% on BPSK pilot sequence. Freq offset estimator occasionally makes mistakes +% when used continuously. So we use it until we have acquired the BPSK pilot, +% then switch to a more robust tracking algorithm. If we lose sync we switch +% back to acquire mode for fast-requisition. + +function [track state] = freq_state(sync_bit, state) + + % acquire state, look for 6 symbol 010101 sequence from sync bit + + next_state = state; + if state == 0 + if sync_bit == 0 + next_state = 1; + end + end + if state == 1 + if sync_bit == 1 + next_state = 2; + else + next_state = 0; + end + end + if state == 2 + if sync_bit == 0 + next_state = 3; + else + next_state = 0; + end + end + if state == 3 + if sync_bit == 1 + next_state = 4; + else + next_state = 0; + end + end + if state == 4 + if sync_bit == 0 + next_state = 5; + else + next_state = 0; + end + end + if state == 5 + if sync_bit == 1 + next_state = 6; + else + next_state = 0; + end + end + + % states 6 and above are track mode, make sure we keep getting 0101 sync bit sequence + + if state == 6 + if sync_bit == 0 + next_state = 7; + else + next_state = 0; + end + end + if state == 7 + if sync_bit == 1 + next_state = 6; + else + next_state = 0; + end + end + + state = next_state; + if state >= 6 + track = 1; + else + track = 0; + end +endfunction + + +% Save test bits to a text file in the form of a C array + +function test_bits_file(filename) + global test_bits; + global Ntest_bits; + + f=fopen(filename,"wt"); + fprintf(f,"/* Generated by test_bits_file() Octave function */\n\n"); + fprintf(f,"const int test_bits[]={\n"); + for m=1:Ntest_bits-1 + fprintf(f," %d,\n",test_bits(m)); + endfor + fprintf(f," %d\n};\n",test_bits(Ntest_bits)); + fclose(f); +endfunction + + +% Saves RN filter coeffs to a text file in the form of a C array + +function rn_file(filename) + global gt_alpha5_root; + global Nfilter; + + f=fopen(filename,"wt"); + fprintf(f,"/* Generated by rn_file() Octave function */\n\n"); + fprintf(f,"const float gt_alpha5_root[]={\n"); + for m=1:Nfilter-1 + fprintf(f," %g,\n",gt_alpha5_root(m)); + endfor + fprintf(f," %g\n};\n",gt_alpha5_root(Nfilter)); + fclose(f); +endfunction + +function pilot_coeff_file(filename) + global pilot_coeff; + global Npilotcoeff; + + f=fopen(filename,"wt"); + fprintf(f,"/* Generated by pilot_coeff_file() Octave function */\n\n"); + fprintf(f,"const float pilot_coeff[]={\n"); + for m=1:Npilotcoeff-1 + fprintf(f," %g,\n",pilot_coeff(m)); + endfor + fprintf(f," %g\n};\n",pilot_coeff(Npilotcoeff)); + fclose(f); +endfunction + + +% Saves hanning window coeffs to a text file in the form of a C array + +function hanning_file(filename) + global Npilotlpf; + + h = hanning(Npilotlpf); + + f=fopen(filename,"wt"); + fprintf(f,"/* Generated by hanning_file() Octave function */\n\n"); + fprintf(f,"const float hanning[]={\n"); + for m=1:Npilotlpf-1 + fprintf(f," %g,\n", h(m)); + endfor + fprintf(f," %g\n};\n", h(Npilotlpf)); + fclose(f); +endfunction + + +function png_file(fig, pngfilename) + figure(fig); + + pngname = sprintf("%s.png",pngfilename); + print(pngname, '-dpng', "-S500,500") + pngname = sprintf("%s_large.png",pngfilename); + print(pngname, '-dpng', "-S800,600") +endfunction + +% Initialise ---------------------------------------------------- + +global pilot_bit; +pilot_bit = 0; % current value of pilot bit + +global tx_filter_memory; +tx_filter_memory = zeros(Nc+1, Nfilter); +global rx_filter_memory; +rx_filter_memory = zeros(Nc+1, Nfilter); + +% phasors used for up and down converters + +global freq; +freq = zeros(Nc+1,1); +for c=1:Nc/2 + carrier_freq = (-Nc/2 - 1 + c)*Fsep + Fcentre; + freq(c) = exp(j*2*pi*carrier_freq/Fs); +end +for c=Nc/2+1:Nc + carrier_freq = (-Nc/2 + c)*Fsep + Fcentre; + freq(c) = exp(j*2*pi*carrier_freq/Fs); +end + +freq(Nc+1) = exp(j*2*pi*Fcentre/Fs); + +% Spread initial FDM carrier phase out as far as possible. This +% helped PAPR for a few dB. We don't need to adjust rx phase as DQPSK +% takes care of that. + +global phase_tx; +%phase_tx = ones(Nc+1,1); +phase_tx = exp(j*2*pi*(0:Nc)/(Nc+1)); +global phase_rx; +phase_rx = ones(Nc+1,1); + +% Freq offset estimator constants + +global Mpilotfft = 256; +global Npilotcoeff = 30; % number of pilot LPF coeffs +global pilot_coeff = fir1(Npilotcoeff-1, 200/(Fs/2))'; % 200Hz LPF +global Npilotbaseband = Npilotcoeff + M + M/P; % number of pilot baseband samples reqd for pilot LPF +global Npilotlpf = 4*M; % number of samples we DFT pilot over, pilot est window + +% pilot LUT, used for copy of pilot at rx + +global pilot_lut; +pilot_lut = generate_pilot_lut(); +pilot_lut_index = 1; +prev_pilot_lut_index = 3*M+1; + +% Freq offset estimator states + +global pilot_baseband1; +global pilot_baseband2; +pilot_baseband1 = zeros(1, Npilotbaseband); % pilot baseband samples +pilot_baseband2 = zeros(1, Npilotbaseband); % pilot baseband samples +global pilot_lpf1 +global pilot_lpf2 +pilot_lpf1 = zeros(1, Npilotlpf); % LPF pilot samples +pilot_lpf2 = zeros(1, Npilotlpf); % LPF pilot samples + +% Timing estimator states + +global rx_filter_mem_timing; +rx_filter_mem_timing = zeros(Nc+1, Nt*P); +global rx_baseband_mem_timing; +rx_baseband_mem_timing = zeros(Nc+1, Nfiltertiming); + +% Test bit stream constants + +global Ntest_bits = Nc*Nb*4; % length of test sequence +global test_bits = rand(1,Ntest_bits) > 0.5; + +% Test bit stream state variables + +global current_test_bit = 1; +current_test_bit = 1; +global rx_test_bits_mem; +rx_test_bits_mem = zeros(1,Ntest_bits); + diff --git a/libs/libcodec2/octave/fdmdv_demod.m b/libs/libcodec2/octave/fdmdv_demod.m new file mode 100644 index 0000000000..489a616cc2 --- /dev/null +++ b/libs/libcodec2/octave/fdmdv_demod.m @@ -0,0 +1,217 @@ +% fdmdv_demod.m +% +% Demodulator function for FDMDV modem (Octave version). Requires +% 8kHz sample rate raw files as input +% +% Copyright David Rowe 2012 +% This program is distributed under the terms of the GNU General Public License +% Version 2 +% + +function fdmdv_demod(rawfilename, nbits, pngname) + + fdmdv; % include modem code + + modulation = 'dqpsk'; + + fin = fopen(rawfilename, "rb"); + gain = 1000; + frames = nbits/(Nc*Nb); + + prev_rx_symbols = ones(Nc+1,1); + foff_phase = 1; + + % BER stats + + total_bit_errors = 0; + total_bits = 0; + bit_errors_log = []; + sync_log = []; + test_frame_sync_log = []; + test_frame_sync_state = 0; + + % SNR states + + sig_est = zeros(Nc+1,1); + noise_est = zeros(Nc+1,1); + + % logs of various states for plotting + + rx_symbols_log = []; + rx_timing_log = []; + foff_log = []; + rx_fdm_log = []; + snr_est_log = []; + + % misc states + + nin = M; % timing correction for sample rate differences + foff = 0; + track_log = []; + track = 0; + fest_state = 0; + + % Main loop ---------------------------------------------------- + + for f=1:frames + + % obtain nin samples of the test input signal + + for i=1:nin + rx_fdm(i) = fread(fin, 1, "short")/gain; + end + + rx_fdm_log = [rx_fdm_log rx_fdm(1:nin)]; + + % frequency offset estimation and correction + + [pilot prev_pilot pilot_lut_index prev_pilot_lut_index] = get_pilot(pilot_lut_index, prev_pilot_lut_index, nin); + [foff_coarse S1 S2] = rx_est_freq_offset(rx_fdm, pilot, prev_pilot, nin); + + if track == 0 + foff = foff_coarse; + end + foff_log = [ foff_log foff ]; + foff_rect = exp(j*2*pi*foff/Fs); + + for i=1:nin + foff_phase *= foff_rect'; + rx_fdm(i) = rx_fdm(i)*foff_phase; + end + + % baseband processing + + rx_baseband = fdm_downconvert(rx_fdm, nin); + rx_filt = rx_filter(rx_baseband, nin); + + [rx_symbols rx_timing] = rx_est_timing(rx_filt, rx_baseband, nin); + + rx_timing_log = [rx_timing_log rx_timing]; + nin = M; + if rx_timing > 2*M/P + nin += M/P; + end + if rx_timing < 0; + nin -= M/P; + end + + if strcmp(modulation,'dqpsk') + rx_symbols_log = [rx_symbols_log rx_symbols.*conj(prev_rx_symbols)*exp(j*pi/4)]; + else + rx_symbols_log = [rx_symbols_log rx_symbols]; + endif + [rx_bits sync f_err pd] = qpsk_to_bits(prev_rx_symbols, rx_symbols, modulation); + [sig_est noise_est] = snr_update(sig_est, noise_est, pd); + snr_est = calc_snr(sig_est, noise_est); + snr_est_log = [snr_est_log snr_est]; + foff -= 0.5*f_err; + prev_rx_symbols = rx_symbols; + sync_log = [sync_log sync]; + + % freq est state machine + + [track fest_state] = freq_state(sync, fest_state); + track_log = [track_log track]; + + % count bit errors if we find a test frame + + [test_frame_sync bit_errors] = put_test_bits(rx_bits); + if (test_frame_sync == 1) + total_bit_errors = total_bit_errors + bit_errors; + total_bits = total_bits + Ntest_bits; + bit_errors_log = [bit_errors_log bit_errors/Ntest_bits]; + else + bit_errors_log = [bit_errors_log 0]; + end + + % test frame sync state machine, just for more informative plots + + next_test_frame_sync_state = test_frame_sync_state; + if (test_frame_sync_state == 0) + if (test_frame_sync == 1) + next_test_frame_sync_state = 1; + test_frame_count = 0; + end + end + + if (test_frame_sync_state == 1) + % we only expect another test_frame_sync pulse every 4 symbols + test_frame_count++; + if (test_frame_count == 4) + test_frame_count = 0; + if ((test_frame_sync == 0)) + next_test_frame_sync_state = 0; + end + end + end + test_frame_sync_state = next_test_frame_sync_state; + test_frame_sync_log = [test_frame_sync_log test_frame_sync_state]; + + end + + % --------------------------------------------------------------------- + % Print Stats + % --------------------------------------------------------------------- + + ber = total_bit_errors / total_bits; + + printf("%d bits %d errors BER: %1.4f\n",total_bits, total_bit_errors, ber); + + % --------------------------------------------------------------------- + % Plots + % --------------------------------------------------------------------- + + xt = (1:frames)/Rs; + secs = frames/Rs; + + figure(1) + clf; + [n m] = size(rx_symbols_log); + plot(real(rx_symbols_log(1:Nc+1,15:m)),imag(rx_symbols_log(1:Nc+1,15:m)),'+') + axis([-2 2 -2 2]); + title('Scatter Diagram'); + + figure(2) + clf; + subplot(211) + plot(xt, rx_timing_log) + title('timing offset (samples)'); + subplot(212) + plot(xt, foff_log, '-;freq offset;') + hold on; + plot(xt, track_log*75, 'r;course-fine;'); + hold off; + title('Freq offset (Hz)'); + grid + + figure(3) + clf; + subplot(211) + [a b] = size(rx_fdm_log); + xt1 = (1:b)/Fs; + plot(xt1, rx_fdm_log); + title('Rx FDM Signal'); + subplot(212) + spec(rx_fdm_log,8000); + title('FDM Rx Spectrogram'); + + figure(4) + clf; + subplot(311) + stem(xt, sync_log) + axis([0 secs 0 1.5]); + title('BPSK Sync') + subplot(312) + stem(xt, bit_errors_log); + title('Bit Errors for test frames') + subplot(313) + plot(xt, test_frame_sync_log); + axis([0 secs 0 1.5]); + title('Test Frame Sync') + + figure(5) + clf; + plot(xt, snr_est_log); + title('SNR Estimates') + +endfunction diff --git a/libs/libcodec2/octave/fdmdv_demod_c.m b/libs/libcodec2/octave/fdmdv_demod_c.m new file mode 100644 index 0000000000..4f1f12386a --- /dev/null +++ b/libs/libcodec2/octave/fdmdv_demod_c.m @@ -0,0 +1,128 @@ +% fdmdv_demod_c.m +% +% Plots Octave dump file information from C FDMDV demodulator program, +% to give a similar set of plots to fdmdv_demod.m. Useful for off +% line analysis of demod performance. +% +% Copyright David Rowe 2012 +% This program is distributed under the terms of the GNU General Public License +% Version 2 +% + +function fdmdv_demod_c(dumpfilename, bits) + + fdmdv; % include modem code + + frames = bits/(Nc*Nb); + + load(dumpfilename); + + % BER stats + + total_bit_errors = 0; + total_bits = 0; + bit_errors_log = []; + sync_log = []; + test_frame_sync_log = []; + test_frame_sync_state = 0; + + % Run thru received bits to look for test pattern + + bits_per_frame = Nc*Nb; + + for f=1:frames + + rx_bits = rx_bits_log_c((f-1)*bits_per_frame+1:f*bits_per_frame); + + % count bit errors if we find a test frame + + [test_frame_sync bit_errors] = put_test_bits(rx_bits); + if (test_frame_sync == 1) + total_bit_errors = total_bit_errors + bit_errors; + total_bits = total_bits + Ntest_bits; + bit_errors_log = [bit_errors_log bit_errors/Ntest_bits]; + else + bit_errors_log = [bit_errors_log 0]; + end + + % test frame sync state machine, just for more informative plots + + next_test_frame_sync_state = test_frame_sync_state; + if (test_frame_sync_state == 0) + if (test_frame_sync == 1) + next_test_frame_sync_state = 1; + test_frame_count = 0; + end + end + + if (test_frame_sync_state == 1) + % we only expect another test_frame_sync pulse every 4 symbols + test_frame_count++; + if (test_frame_count == 4) + test_frame_count = 0; + if ((test_frame_sync == 0)) + next_test_frame_sync_state = 0; + end + end + end + test_frame_sync_state = next_test_frame_sync_state; + test_frame_sync_log = [test_frame_sync_log test_frame_sync_state]; + end + + % --------------------------------------------------------------------- + % Plots + % --------------------------------------------------------------------- + + xt = (1:frames)/Rs; + secs = frames/Rs; + + figure(1) + clf; + plot(real(rx_symbols_log_c(1:Nc+1,15:frames)),imag(rx_symbols_log_c(1:Nc+1,15:frames)),'+') + axis([-2 2 -2 2]); + title('Scatter Diagram'); + + figure(2) + clf; + subplot(211) + plot(xt, rx_timing_log_c(1:frames)) + title('timing offset (samples)'); + subplot(212) + plot(xt, foff_log_c(1:frames), '-;freq offset;') + hold on; + plot(xt, coarse_fine_log_c(1:frames)*75, 'r;course-fine;'); + hold off; + title('Freq offset (Hz)'); + grid + + figure(3) + clf; + subplot(211) + b = M*frames; + xt1 = (1:b)/Fs; + plot(xt1, rx_fdm_log_c(1:b)); + title('Rx FDM Signal'); + subplot(212) + spec(rx_fdm_log_c(1:b),8000); + title('FDM Rx Spectrogram'); + + figure(4) + clf; + subplot(311) + stem(xt, sync_bit_log_c(1:frames)) + axis([0 secs 0 1.5]); + title('BPSK Sync') + subplot(312) + stem(xt, bit_errors_log); + title('Bit Errors for test frames') + subplot(313) + plot(xt, test_frame_sync_log); + axis([0 secs 0 1.5]); + title('Test Frame Sync') + + figure(5) + clf; + plot(xt, snr_est_log_c(1:frames)); + title('SNR Estimates') + +endfunction diff --git a/libs/libcodec2/octave/fdmdv_mod.m b/libs/libcodec2/octave/fdmdv_mod.m new file mode 100644 index 0000000000..eed85a2bfa --- /dev/null +++ b/libs/libcodec2/octave/fdmdv_mod.m @@ -0,0 +1,32 @@ +% fdmdv_mod.m +% +% Modulator function for FDMDV modem, uses test frames as input and +% outputs a raw file of 16 bit shorts at a sample rate of 8 kHz. +% +% Copyright David Rowe 2012 +% This program is distributed under the terms of the GNU General Public License +% Version 2 +% + +function tx_fdm = fdmdv_mod(rawfilename, nbits) + + fdmdv; % include modem code + + frames = floor(nbits/(Nc*Nb)) + tx_fdm = []; + gain = 1000; % Scale up to 16 bit shorts + prev_tx_symbols = ones(Nc+1,1); + + for i=1:frames + tx_bits = get_test_bits(Nc*Nb); + tx_symbols = bits_to_qpsk(prev_tx_symbols, tx_bits,'dqpsk'); + prev_tx_symbols = tx_symbols; + tx_baseband = tx_filter(tx_symbols); + tx_fdm = [tx_fdm real(fdm_upconvert(tx_baseband))]; + end + + tx_fdm *= gain; + fout = fopen(rawfilename,"wb"); + fwrite(fout, tx_fdm, "short"); + fclose(fout); +endfunction diff --git a/libs/libcodec2/octave/fdmdv_ut.m b/libs/libcodec2/octave/fdmdv_ut.m new file mode 100644 index 0000000000..a78eedfebd --- /dev/null +++ b/libs/libcodec2/octave/fdmdv_ut.m @@ -0,0 +1,318 @@ +% fdmdv_ut.m +% +% Unit Test program for FDMDV modem. Useful for general development as it has +% both tx and rx sides, and basic AWGN channel simulation. +% +% Copyright David Rowe 2012 +% This program is distributed under the terms of the GNU General Public License +% Version 2 +% + +fdmdv; % load modem code + +% Simulation Parameters -------------------------------------- + +frames = 25; +EbNo_dB = 7.3; +Foff_hz = 0; +modulation = 'dqpsk'; +hpa_clip = 150; + +% ------------------------------------------------------------ + +tx_filt = zeros(Nc,M); +rx_symbols_log = []; +rx_phase_log = 0; +rx_timing_log = 0; +tx_pwr = 0; +noise_pwr = 0; +rx_fdm_log = []; +rx_baseband_log = []; +rx_bits_offset = zeros(Nc*Nb*2); +prev_tx_symbols = ones(Nc+1,1); +prev_rx_symbols = ones(Nc+1,1); +ferr = 0; +foff = 0; +foff_log = []; +tx_baseband_log = []; +tx_fdm_log = []; + +% BER stats + +total_bit_errors = 0; +total_bits = 0; +bit_errors_log = []; +sync_log = []; +test_frame_sync_log = []; +test_frame_sync_state = 0; + +% SNR estimation states + +sig_est = zeros(Nc+1,1); +noise_est = zeros(Nc+1,1); + +% fixed delay simuation + +Ndelay = M+20; +rx_fdm_delay = zeros(Ndelay,1); + +% --------------------------------------------------------------------- +% Eb/No calculations. We need to work out Eb/No for each FDM carrier. +% Total power is sum of power in all FDM carriers +% --------------------------------------------------------------------- + +C = 1; % power of each FDM carrier (energy/sample). Total Carrier power should = Nc*C = Nc +N = 1; % total noise power (energy/sample) of noise source across entire bandwidth + +% Eb = Carrier power * symbol time / (bits/symbol) +% = C *(1/Rs) / 2 +Eb_dB = 10*log10(C) - 10*log10(Rs) - 10*log10(2); + +No_dBHz = Eb_dB - EbNo_dB; + +% Noise power = Noise spectral density * bandwidth +% Noise power = Noise spectral density * Fs/2 for real signals +N_dB = No_dBHz + 10*log10(Fs/2); +Ngain_dB = N_dB - 10*log10(N); +Ngain = 10^(Ngain_dB/20); + +% C/No = Carrier Power/noise spectral density +% = power per carrier*number of carriers / noise spectral density +CNo_dB = 10*log10(C) + 10*log10(Nc) - No_dBHz; + +% SNR in equivalent 3000 Hz SSB channel + +B = 3000; +SNR = CNo_dB - 10*log10(B); + +% freq offset simulation states + +phase_offset = 1; +freq_offset = exp(j*2*pi*Foff_hz/Fs); +foff_phase = 1; +t = 0; +foff = 0; +fest_state = 0; +track = 0; +track_log = []; + + +% --------------------------------------------------------------------- +% Main loop +% --------------------------------------------------------------------- + +for f=1:frames + + % ------------------- + % Modulator + % ------------------- + + tx_bits = get_test_bits(Nc*Nb); + tx_symbols = bits_to_qpsk(prev_tx_symbols, tx_bits, modulation); + prev_tx_symbols = tx_symbols; + tx_baseband = tx_filter(tx_symbols); + tx_baseband_log = [tx_baseband_log tx_baseband]; + tx_fdm = fdm_upconvert(tx_baseband); + tx_pwr = 0.9*tx_pwr + 0.1*real(tx_fdm)*real(tx_fdm)'/(M); + + % ------------------- + % Channel simulation + % ------------------- + + % frequency offset + + %Foff_hz += 1/Rs; + Foff = Foff_hz; + for i=1:M + % Time varying freq offset + %Foff = Foff_hz + 100*sin(t*2*pi/(300*Fs)); + %t++; + freq_offset = exp(j*2*pi*Foff/Fs); + phase_offset *= freq_offset; + tx_fdm(i) = phase_offset*tx_fdm(i); + end + + tx_fdm = real(tx_fdm); + + % HPA non-linearity + + tx_fdm(find(abs(tx_fdm) > hpa_clip)) = hpa_clip; + tx_fdm_log = [tx_fdm_log tx_fdm]; + + rx_fdm = tx_fdm; + + % AWGN noise + + noise = Ngain*randn(1,M); + noise_pwr = 0.9*noise_pwr + 0.1*noise*noise'/M; + rx_fdm += noise; + rx_fdm_log = [rx_fdm_log rx_fdm]; + + % Delay + + rx_fdm_delay(1:Ndelay-M) = rx_fdm_delay(M+1:Ndelay); + rx_fdm_delay(Ndelay-M+1:Ndelay) = rx_fdm; + %rx_fdm_delay = rx_fdm; + + % ------------------- + % Demodulator + % ------------------- + + % frequency offset estimation and correction, need to call rx_est_freq_offset even in track + % mode to keep states updated + + [pilot prev_pilot pilot_lut_index prev_pilot_lut_index] = get_pilot(pilot_lut_index, prev_pilot_lut_index, M); + [foff_course S1 S2] = rx_est_freq_offset(rx_fdm_delay, pilot, prev_pilot, M); + if track == 0 + foff = foff_course; + end + foff_log = [ foff_log foff ]; + foff_rect = exp(j*2*pi*foff/Fs); + + for i=1:M + foff_phase *= foff_rect'; + rx_fdm_delay(i) = rx_fdm_delay(i)*foff_phase; + end + + % baseband processing + + rx_baseband = fdm_downconvert(rx_fdm_delay(1:M), M); + rx_baseband_log = [rx_baseband_log rx_baseband]; + rx_filt = rx_filter(rx_baseband, M); + + [rx_symbols rx_timing] = rx_est_timing(rx_filt, rx_baseband, M); + rx_timing_log = [rx_timing_log rx_timing]; + + %rx_phase = rx_est_phase(rx_symbols); + %rx_phase_log = [rx_phase_log rx_phase]; + %rx_symbols = rx_symbols*exp(j*rx_phase); + + [rx_bits sync foff_fine pd] = qpsk_to_bits(prev_rx_symbols, rx_symbols, modulation); + if strcmp(modulation,'dqpsk') + %rx_symbols_log = [rx_symbols_log rx_symbols.*conj(prev_rx_symbols)*exp(j*pi/4)]; + rx_symbols_log = [rx_symbols_log pd]; + else + rx_symbols_log = [rx_symbols_log rx_symbols]; + endif + foff -= 0.5*ferr; + prev_rx_symbols = rx_symbols; + sync_log = [sync_log sync]; + + % freq est state machine + + [track fest_state] = freq_state(sync, fest_state); + track_log = [track_log track]; + + % Update SNR est + + [sig_est noise_est] = snr_update(sig_est, noise_est, pd); + + % count bit errors if we find a test frame + % Allow 15 frames for filter memories to fill and time est to settle + + [test_frame_sync bit_errors] = put_test_bits(rx_bits); + if test_frame_sync == 1 + total_bit_errors = total_bit_errors + bit_errors; + total_bits = total_bits + Ntest_bits; + bit_errors_log = [bit_errors_log bit_errors]; + else + bit_errors_log = [bit_errors_log 0]; + end + + % test frame sync state machine, just for more informative plots + + next_test_frame_sync_state = test_frame_sync_state; + if (test_frame_sync_state == 0) + if (test_frame_sync == 1) + next_test_frame_sync_state = 1; + test_frame_count = 0; + end + end + + if (test_frame_sync_state == 1) + % we only expect another test_frame_sync pulse every 4 symbols + test_frame_count++; + if (test_frame_count == 4) + test_frame_count = 0; + if ((test_frame_sync == 0)) + next_test_frame_sync_state = 0; + end + end + end + test_frame_sync_state = next_test_frame_sync_state; + test_frame_sync_log = [test_frame_sync_log test_frame_sync_state]; +end + +% --------------------------------------------------------------------- +% Print Stats +% --------------------------------------------------------------------- + +ber = total_bit_errors / total_bits; + +% Peak to Average Power Ratio calcs from http://www.dsplog.com + +papr = max(tx_fdm_log.*conj(tx_fdm_log)) / mean(tx_fdm_log.*conj(tx_fdm_log)); +papr_dB = 10*log10(papr); + +% Note Eb/No set point is for Nc data carriers only, exclduing pilot. +% This is convenient for testing BER versus Eb/No. Measured Eb/No +% includes power of pilot. Similar for SNR, first number is SNR excluding +% pilot pwr for Eb/No set point, 2nd value is measured SNR which will be a little +% higher as pilot power is included. + +printf("Eb/No (meas): %2.2f (%2.2f) dB\n", EbNo_dB, 10*log10(0.25*tx_pwr*Fs/(Rs*Nc*noise_pwr))); +printf("bits........: %d\n", total_bits); +printf("errors......: %d\n", total_bit_errors); +printf("BER.........: %1.4f\n", ber); +printf("PAPR........: %1.2f dB\n", papr_dB); +printf("SNR...(meas): %2.2f (%2.2f) dB\n", SNR, calc_snr(sig_est, noise_est)); + +% --------------------------------------------------------------------- +% Plots +% --------------------------------------------------------------------- + +figure(1) +clf; +[n m] = size(rx_symbols_log); +plot(real(rx_symbols_log(1:Nc+1,15:m)),imag(rx_symbols_log(1:Nc+1,15:m)),'+') +axis([-3 3 -3 3]); +title('Scatter Diagram'); + +figure(2) +clf; +subplot(211) +plot(rx_timing_log) +title('timing offset (samples)'); +subplot(212) +plot(foff_log, '-;freq offset;') +hold on; +plot(track_log*75, 'r;course-fine;'); +hold off; +title('Freq offset (Hz)'); + +figure(3) +clf; +subplot(211) +plot(real(tx_fdm_log)); +title('FDM Tx Signal'); +subplot(212) +Nfft=Fs; +S=fft(rx_fdm_log,Nfft); +SdB=20*log10(abs(S)); +plot(SdB(1:Fs/4)) +title('FDM Rx Spectrum'); + +figure(4) +clf; +subplot(311) +stem(sync_log) +axis([0 frames 0 1.5]); +title('BPSK Sync') +subplot(312) +stem(bit_errors_log); +title('Bit Errors for test frames') +subplot(313) +plot(test_frame_sync_log); +axis([0 frames 0 1.5]); +title('Test Frame Sync') + diff --git a/libs/libcodec2/octave/gen_rn_coeffs.m b/libs/libcodec2/octave/gen_rn_coeffs.m new file mode 100644 index 0000000000..bfc214e0f7 --- /dev/null +++ b/libs/libcodec2/octave/gen_rn_coeffs.m @@ -0,0 +1,40 @@ +% gen_rn_coeffs.m +% David Rowe 13 april 2012 +% +% Generate root raised cosine (Root Nyquist) filter coefficients +% thanks http://www.dsplog.com/db-install/wp-content/uploads/2008/05/raised_cosine_filter.m + +function coeffs = gen_rn_coeffs(alpha, T, Rs, Nsym, M) + + Ts = 1/Rs; + + n = -Nsym*Ts/2:T:Nsym*Ts/2; + Nfilter = Nsym*M; + Nfiltertiming = M+Nfilter+M; + + sincNum = sin(pi*n/Ts); % numerator of the sinc function + sincDen = (pi*n/Ts); % denominator of the sinc function + sincDenZero = find(abs(sincDen) < 10^-10); + sincOp = sincNum./sincDen; + sincOp(sincDenZero) = 1; % sin(pix/(pix) =1 for x =0 + + cosNum = cos(alpha*pi*n/Ts); + cosDen = (1-(2*alpha*n/Ts).^2); + cosDenZero = find(abs(cosDen)<10^-10); + cosOp = cosNum./cosDen; + cosOp(cosDenZero) = pi/4; + gt_alpha5 = sincOp.*cosOp; + Nfft = 4096; + GF_alpha5 = fft(gt_alpha5,Nfft)/M; + + % sqrt causes stop band to be amplified, this hack pushes it down again + + for i=1:Nfft + if (abs(GF_alpha5(i)) < 0.02) + GF_alpha5(i) *= 0.001; + endif + end + GF_alpha5_root = sqrt(abs(GF_alpha5)) .* exp(j*angle(GF_alpha5)); + ifft_GF_alpha5_root = ifft(GF_alpha5_root); + coeffs = real((ifft_GF_alpha5_root(1:Nfilter))); +endfunction diff --git a/libs/libcodec2/octave/hp_filt.m b/libs/libcodec2/octave/hp_filt.m new file mode 100644 index 0000000000..1087bb9195 --- /dev/null +++ b/libs/libcodec2/octave/hp_filt.m @@ -0,0 +1,12 @@ +% hp_filt.m +% David Rowe 20 Feb 2012 + +function hp_filt(in_file, out_file) + fin = fopen(in_file,"rb"); + s = fread(fin,Inf,"short"); + b = fir1(256, 300/4000, "high"); + freqz(b); + s_hpf = filter(b,1,s); + fout = fopen(out_file,"wb"); + fwrite(fout, s_hpf, "short"); +endfunction diff --git a/libs/libcodec2/octave/lpcpf.m b/libs/libcodec2/octave/lpcpf.m new file mode 100644 index 0000000000..f1e0982c59 --- /dev/null +++ b/libs/libcodec2/octave/lpcpf.m @@ -0,0 +1,46 @@ +% lpcpf.m +% David Rowe Aug 27 2012 +% Experiments with LPC post filtering + +function lpcpf(ak_filename, f) + aks = load(ak_filename); + + ak = aks(f,:); + [tmp p] = size(ak); + p -= 1; + + A = freqz(1,ak, 4000); + AdB = 20*log10(abs(A)); + + gamma = 0.5; + gammas = gamma .^ (0:p); + W = freqz(ak .* gammas,1, 4000); + WdB = 20*log10(abs(W)); + + beta = 0.2; + R = abs(freqz(ak .* gammas, ak, 4000)); + %P = (R/max(R)) .^ beta; + P = R .^ beta; + AP = abs(A) .* P; + + eA = sum(abs(A) .^ 2); + eAP = sum(AP .^ 2); + gain = sqrt(eA/eAP) + AP *= gain; + + PdB = 20*log10(P); + + APdB = 20*log10(AP); + 10*log10(sum(AP .^ 2))/10*log10(sum(abs(A) .^ 2)) + + figure(1); + clf; + plot(AdB); + hold on; + plot(WdB,'g'); + plot(PdB,'r'); + plot(APdB,'b.'); + hold off; + +endfunction + diff --git a/libs/libcodec2/octave/lspwarp.m b/libs/libcodec2/octave/lspwarp.m new file mode 100644 index 0000000000..2d2f2c9913 --- /dev/null +++ b/libs/libcodec2/octave/lspwarp.m @@ -0,0 +1,40 @@ +% lspwarp.m +% David Rowe Sep 2012 +% +% Experimenting with non-linear LSP frequency axis for LSP quantisation +% Plots a scaled mel axis. + +1; + +function mel = freq2mel(f) + mel = 70*log10(1 + f/700); +endfunction + +function freq = mel2freq(m) + freq = 700*(10 ^ (m/70) - 1); +endfunction + +x = []; y = []; + +for freq = 100:25:4000 + mel = freq2mel(freq); + x = [x freq]; + y = [y mel]; +end + +plot(x,y) +grid + +mel_start = floor(freq2mel(100)); +mel_end = floor(freq2mel(4000)); + +x = []; y = []; +for mel=mel_start:mel_end + freq = mel2freq(mel); + x = [x freq]; + y = [y mel]; +end + +hold on; +plot(x,y, '+') +hold off; diff --git a/libs/libcodec2/octave/phasesecord.m b/libs/libcodec2/octave/phasesecord.m new file mode 100644 index 0000000000..a3cf25163e --- /dev/null +++ b/libs/libcodec2/octave/phasesecord.m @@ -0,0 +1,47 @@ +% phasesecord.m +% David Rowe Aug 2012 +% Used to experiment with aproximations of phase of 2nd order systems + +function phasesecord(w,beta) + + a = [1 -2*cos(w)*beta beta*beta]; + b = 1; + + [h w1] = freqz(b,a); + + figure(1) + subplot(211) + plot(abs(h)) + subplot(212) + plot(angle(h)) + + % for beta close to 1, we approximate 3 dB points as 1-beta above + % and below the resonance freq. Note this fails if w=0 as there is a + % double pole. Lets sample the freq response at the 3dB points and + % w: + + ws = [w-(1-beta) w w+(1-beta)]; + [h w1] = freqz(b,a,ws); + + % gain as a fraction of max, should be 3dB. Within 1.3 dB or for w > pi/8, + % gets innacurate near w=0 due to 2nd pole + + printf("mag measured...:"); printf("% 4.3f ", abs(h)/max(abs(h))); + + % measured angle, 45 deg from angle at w + + printf("\nangle measured.: "); printf("% 5.3f ", angle(h)); + + % Our estimate of angle, (pi+w) is phase at resonance, at lower 3dB + % phase is pi/4 ahead, at upper 3B pi/4 behind. -pi/2 is contribution of + % other pole at at -w to phase + + ph_lower = (pi+w) + pi/4 - pi/2; + ph_res =(pi+w) - pi/2; + ph_upper = (pi+w) - pi/4 - pi/2; + ph_ests = [ph_lower ph_res ph_upper]; + ph_ests = ph_ests - 2*pi*(floor(ph_ests/(2*pi)) + 0.5); + printf("\nangle estimated:"); printf("% 5.3f ", ph_ests); + printf("\n"); +endfunction + diff --git a/libs/libcodec2/octave/pllpcpf.m b/libs/libcodec2/octave/pllpcpf.m new file mode 100644 index 0000000000..924e045a21 --- /dev/null +++ b/libs/libcodec2/octave/pllpcpf.m @@ -0,0 +1,150 @@ +% Copyright David Rowe 2012 +% This program is distributed under the terms of the GNU General Public License +% Version 2 +% +% Plot amplitude modelling information from dump files to test and develop +% LPC post filter. + +function pllpcpf(samname, f) + + % switch some stuff off to unclutter display + + plot_Am = 0; + plot_Amq = 0; + plot_err = 0; + plot_lsp = 0; + plot_snr = 0; + plot_vsnr = 0; + plot_sw = 0; + plot_pw = 1; + plot_pwb = 1; + plot_rw = 1; + + sn_name = strcat(samname,"_sn.txt"); + Sn = load(sn_name); + + sw_name = strcat(samname,"_sw.txt"); + Sw = load(sw_name); + + sw__name = strcat(samname,"_sw_.txt"); + if (file_in_path(".",sw__name)) + Sw_ = load(sw__name); + endif + + model_name = strcat(samname,"_model.txt"); + model = load(model_name); + + modelq_name = strcat(samname,"_qmodel.txt"); + if (file_in_path(".",modelq_name)) + modelq = load(modelq_name); + endif + + % Pw (LPC synth filter spectrum) before post filter + + pwb_name = strcat(samname,"_pwb.txt"); + if (file_in_path(".",pwb_name)) + Pwb = load(pwb_name); + endif + + % Rw (Post filter spectrum) + + rw_name = strcat(samname,"_rw.txt"); + if (file_in_path(".",rw_name)) + Rw = load(rw_name); + endif + + % Pw (LPC synth filter spectrum) after post filter + + pw_name = strcat(samname,"_pw.txt"); + if (file_in_path(".",pw_name)) + Pw = load(pw_name); + endif + + + Ew_on = 1; + k = ' '; + do + figure(1); + clf; + s = [ Sn(2*f-1,:) Sn(2*f,:) ]; + size(s); + plot(s); + axis([1 length(s) -20000 20000]); + + figure(2); + clf; + Wo = model(f,1); + L = model(f,2); + Am = model(f,3:(L+2)); + if plot_Am + plot((1:L)*Wo*4000/pi, 20*log10(Am),";Am;r"); + end + axis([1 4000 -10 80]); + hold on; + if plot_sw + plot((0:255)*4000/256, Sw(f,:),";Sw;"); + end + + if (file_in_path(".",modelq_name)) + + Amq = modelq(f,3:(L+2)); + if plot_Amq + plot((1:L)*Wo*4000/pi, 20*log10(Amq),";Amq;g" ); + end + + if (file_in_path(".",pwb_name) && plot_pwb) + plot((0:255)*4000/256, 10*log10(Pwb(f,:)),";Pwb;r"); + endif + + if (file_in_path(".",rw_name) && plot_rw) + plot((0:255)*4000/256, 10*log10(Rw(f,:)),";Rw;b"); + endif + + if (file_in_path(".",pw_name) && plot_pw) + plot((0:255)*4000/256, 10*log10(Pw(f,:)),";Pw;g."); + endif + + signal = Am * Am'; + noise = (Am-Amq) * (Am-Amq)'; + snr1 = 10*log10(signal/noise); + Am_err_label = sprintf(";Am error SNR %4.2f dB;m",snr1); + if plot_err + plot((1:L)*Wo*4000/pi, 20*log10(Amq) - 20*log10(Am), Am_err_label); + end + endif + + + hold off; + + % interactive menu + + printf("\rframe: %d menu: n-next b-back p-png q-quit", f); + fflush(stdout); + k = kbhit(); + if (k == 'n') + f = f + 1; + endif + if (k == 'b') + f = f - 1; + endif + + % optional print to PNG + + if (k == 'p') + figure(1); + pngname = sprintf("%s_%d_sn.png",samname,f); + print(pngname, '-dpng', "-S500,500") + pngname = sprintf("%s_%d_sn_large.png",samname,f); + print(pngname, '-dpng', "-S800,600") + + figure(2); + pngname = sprintf("%s_%d_sw.png",samname,f); + print(pngname, '-dpng', "-S500,500") + pngname = sprintf("%s_%d_sw_large.png",samname,f); + print(pngname, '-dpng', "-S1200,800") + endif + + until (k == 'q') + printf("\n"); + +endfunction diff --git a/libs/libcodec2/octave/pllsp.m b/libs/libcodec2/octave/pllsp.m new file mode 100644 index 0000000000..0606d3cab6 --- /dev/null +++ b/libs/libcodec2/octave/pllsp.m @@ -0,0 +1,46 @@ +% Copyright David Rowe 2010 +% This program is distributed under the terms of the GNU General Public License +% Version 2 +% +% Plots a bunch of information related to LSP quantisation: +% - speech file +% - LSPs before and after quantisation +% - SNR for each frame +% +% Note: there is a 160 sample (two frame delay) from the when a sample +% enters the input buffer until it is at the centre of the analysis window + +function pllsp(rawfile, + dumpfile_prefix_lpc_only, + dumpfile_prefix_lsp, + start_f, end_f) + + fs=fopen(rawfile,"rb"); + s=fread(fs,Inf,"short"); + + lpc_snr_name = strcat(dumpfile_prefix_lpc_only,"_lpc_snr.txt"); + lpc10_snr = load(lpc_snr_name); + lpc_snr_name = strcat(dumpfile_prefix_lsp,"_lpc_snr.txt"); + lsp_snr = load(lpc_snr_name); + + lsp_name = strcat(dumpfile_prefix_lsp,"_lsp.txt"); + lsps = load(lsp_name); + [m,n]=size(lsps); + lsp = lsps(1:2:m,:); + lsp_ = lsps(2:2:m,:); + + figure(1); + clf; + subplot(211); + sp = s((start_f-2)*80:(end_f-2)*80); + plot(sp); + + subplot(212); + plot(lpc10_snr((start_f+1):end_f)-lsp_snr((start_f+1):end_f)); + + figure(2); + plot((4000/pi)*lsp((start_f+1):end_f,:)); + hold on; + plot((4000/pi)*lsp_((start_f+1):end_f,:),'+-'); + hold off; +endfunction diff --git a/libs/libcodec2/octave/pllspdt.m b/libs/libcodec2/octave/pllspdt.m new file mode 100644 index 0000000000..c711aa46ab --- /dev/null +++ b/libs/libcodec2/octave/pllspdt.m @@ -0,0 +1,27 @@ +% pllspdt.m +% Copyright David Rowe 2010 +% This program is distributed under the terms of the GNU General Public License +% Version 2 +% +% Test script to plot differences in LSps between frames + +function pllspdt(rawfile,dumpfile_prefix_lsp,lspn, start_f, end_f) + + fs=fopen(rawfile,"rb"); + s=fread(fs,Inf,"short"); + + lsp_name = strcat(dumpfile_prefix_lsp,"_lsp.txt"); + lsps = load(lsp_name); + [m,n]=size(lsps); + lsp = lsps(1:2:m,:); + lsp_ = lsps(2:2:m,:); + lspdt = lsp(2:m/2,:) - lsp(1:m/2-1,:); + + figure(1); + clf; + sp = s((start_f-2)*80:(end_f-2)*80); + plot(sp); + + figure(2); + plot((4000/pi)*lspdt((start_f+1):end_f,lspn)); +endfunction diff --git a/libs/libcodec2/octave/plppe.m b/libs/libcodec2/octave/plppe.m new file mode 100644 index 0000000000..cbc5b562f6 --- /dev/null +++ b/libs/libcodec2/octave/plppe.m @@ -0,0 +1,65 @@ +% Copyright David Rowe 2009 +% This program is distributed under the terms of the GNU General Public License +% Version 2 +% +% Plot two sparse phase prediction error text files. +% Generate data from print_pred_error, print_pred_error_sparse_wo_correction1 etc + +function plppe(ppe1_file, ppe2_file, f) + + ppe1 = load(ppe1_file); + ppe2 = load(ppe2_file); + + std1 = std(nonzeros(ppe1(:,40:80))); + std2 = std(nonzeros(ppe2(:,40:80))); + + printf("std dev for %s is %4.3f\n", ppe1_file, std1); + printf("std dev for %s is %4.3f\n", ppe2_file, std2); + + figure(1); + clf; + subplot(211) + hist(nonzeros(ppe1(:,40:80)),20); + subplot(212) + hist(nonzeros(ppe2(:,40:80)),20); + + k = ' '; + do + figure(2); + clf; + subplot(211) + L = length(nonzeros(ppe1(f,:))); + x = (1:L)*4000/L; + std1 = std(nonzeros(ppe1(f,:))); + legend = sprintf(";std dev %4.3f;", std1); + plot(x, nonzeros(ppe1(f,:)),legend); + axis([0 4000 -pi pi]); + subplot(212) + std2 = std(nonzeros(ppe2(f,:))); + legend = sprintf(";std dev %4.3f;", std2); + plot(x, nonzeros(ppe2(f,:)),legend); + axis([0 4000 -pi pi]); + + % interactive menu + + printf("\rframe: %d menu: n-next b-back p-png q-quit ", f); + fflush(stdout); + k = kbhit(); + if (k == 'n') + f = f + 1; + endif + if (k == 'b') + f = f - 1; + endif + + % optional print to PNG + + if (k == 'p') + pngname = sprintf("%s_%d",samname,f); + png(pngname); + endif + + until (k == 'q') + printf("\n"); + +endfunction diff --git a/libs/libcodec2/octave/plsub.m b/libs/libcodec2/octave/plsub.m new file mode 100644 index 0000000000..6e2bc1ea0b --- /dev/null +++ b/libs/libcodec2/octave/plsub.m @@ -0,0 +1,35 @@ +% Copyright David Rowe 2010 +% This program is distributed under the terms of the GNU General Public License +% Version 2 +% plots the difference of two files + +function plsub(samname1, samname2, start_sam, end_sam, pngname) + + fs1=fopen(samname1,"rb"); + s1=fread(fs1,Inf,"short"); + fs2=fopen(samname2,"rb"); + s2=fread(fs2,Inf,"short"); + + st = 1; + en = length(s1); + if (nargin >= 3) + st = start_sam; + endif + if (nargin >= 4) + en = end_sam; + endif + + figure(1); + clf; + l1 = strcat("r;",samname1,";"); + plot(s1(st:en) - s2(st:en), l1); + %axis([1 en-st min(s1(st:en)) max(s1(st:en))]); + + if (nargin == 5) + pngname = sprintf("%s.png",pngname); + print(pngname, '-dpng', "-S500,500") + pngname = sprintf("%s_large.png",pngname); + print(pngname, '-dpng', "-S800,600") + endif + +endfunction diff --git a/libs/libcodec2/octave/plvoicing.m b/libs/libcodec2/octave/plvoicing.m new file mode 100644 index 0000000000..a531747637 --- /dev/null +++ b/libs/libcodec2/octave/plvoicing.m @@ -0,0 +1,89 @@ +% Copyright David Rowe 2009 +% This program is distributed under the terms of the GNU General Public License +% Version 2 +% +% Plot voicing information from sample and dump files. +% +% samfilename is the raw source file, e.g. "../raw/hts1a.raw" +% samname is the dumpfile prefix, e.g. "../src/hts1a" +% +% There is a 160 sample (two frame delay) from the when a sample +% enters the input buffer until it is at the centre of the analysis window + +function plvoicing(samfilename, samname, start_f, end_f, pngname) + + fs=fopen(samfilename,"rb"); + s=fread(fs,Inf,"short"); + + snr_name = strcat(samname,"_snr.txt"); + snr = load(snr_name); + model_name = strcat(samname,"_model.txt"); + model = load(model_name); + + Wo = model((start_f+1):end_f,1); + F0 = Wo*4000/pi; + dF0 = F0(1:length(Wo)-1) - F0(2:length(Wo)); + + % work out LP and HP energy + + for f=(start_f+1):end_f + L = model(f,2); + Am = model(f,3:(L+2)); + L2 = floor(L/2); + elow = Am(1:L2) * Am(1:L2)'; + ehigh = Am(L2:L) * Am(L2:L)'; + erat(f-(start_f+1)+1) = 10*log10(elow/ehigh); + endfor + + figure(1); + clf; + sp = s((start_f-2)*80:(end_f-2)*80); + plot(sp); + hold on; + vhigh = snr((start_f+1):end_f) > 7; + vlow = snr((start_f+1):end_f) > 4; + + % test correction based on erat + + vlowadj = vlow; + + for f=1:length(erat)-1 + if (vlow(f) == 0) + if (erat(f) > 10) + vlowadj(f) = 1; + endif + endif + if (vlow(f) == 1) + if (erat(f) < -10) + vlowadj(f) = 0; + endif + if (abs(dF0(f)) > 15) + vlowadj(f) = 0; + endif + endif + endfor + + x = 1:(end_f-start_f); + plot(x*80,snr((start_f+1):end_f)*1000,';SNRdB x 1000;g+'); + plot(x*80,-8000 + vhigh*2000,';7dB thresh;g'); + plot(x*80,-11000 + vlowadj*2000,';vlow with corr;g'); + plot(x*80,erat*1000,';elow/ehigh in dB;r'); + plot(x*80,-14000 + vlow*2000,';4dB thresh;r'); + hold off; + grid + if (nargin == 5) + print(pngname, "-dpng", "-S500,500") + endif + + figure(2) + Wo = model((start_f+1):end_f,1); + F0 = Wo*4000/pi; + dF0 = F0(1:length(Wo)-1) - F0(2:length(Wo)); + %plot(dF0,'+--') + %hold on; + %plot([ 1 length(dF0) ], [10 10] ,'r') + %plot([ 1 length(dF0) ], [-10 -10] ,'r') + %axis([1 length(dF0) -50 50]) + %hold off; + plot(F0,'+--') +endfunction diff --git a/libs/libcodec2/octave/sd.m b/libs/libcodec2/octave/sd.m new file mode 100644 index 0000000000..4c3d13c922 --- /dev/null +++ b/libs/libcodec2/octave/sd.m @@ -0,0 +1,101 @@ +% sd.m +% David Rowe Aug 2012 +% Plots the spectal distorion between twofiles of LPCs. Used for LSP +% quantisation tuning. + +function sd(raw_filename, dump_file_prefix, f) + + ak1_filename = sprintf("%s_ak.txt", dump_file_prefix); + ak2_filename = sprintf("%s_ak_.txt", dump_file_prefix); + ak1 = load(ak1_filename); + ak2 = load(ak2_filename); + + [ak1_r, ak1_c] = size(ak1); + [ak2_r, ak2_c] = size(ak1); + + frames = max([ak1_r ak2_r]); + sd = zeros(1,frames); + Ndft = 512; + A1 = zeros(frames, Ndft); + A2 = zeros(frames, Ndft); + + % initial helicopter view of all frames + + for i = 1:frames + A1(i,:) = -20*log10(abs(fft(ak1(i,:),Ndft))); + A2(i,:) = -20*log10(abs(fft(ak2(i,:),Ndft))); + sd(i) = sum((A1(i,:) - A2(i,:)).^2)/Ndft; + end + printf("sd av %3.2f dB*dB\n", sum(sd)/frames); + + figure(1); + clf; + subplot(211) + fs=fopen(raw_filename,"rb"); + s = fread(fs,Inf,"short"); + plot(s); + subplot(212) + plot(sd); + + % now enter single step mode so we can analyse each frame + + sn_name = strcat(dump_file_prefix,"_sn.txt"); + Sn = load(sn_name); + + lsp1_filename = sprintf("%s_lsp.txt", dump_file_prefix); + lsp2_filename = sprintf("%s_lsp_.txt", dump_file_prefix); + lsp1 = load(lsp1_filename); + lsp2 = load(lsp2_filename); + + weights_filename = sprintf("%s_weights.txt", dump_file_prefix); + if file_in_path(".",weights_filename) + weights = load(weights_filename); + end + + k = ' '; + do + figure(2); + clf; + subplot(211) + s = [ Sn(2*f-1,:) Sn(2*f,:) ]; + size(s); + plot(s); + axis([1 length(s) -20000 20000]); + + subplot(212); + plot((1:Ndft/2)*4000/(Ndft/2), A1(f,1:(Ndft/2)),";A1;r"); + axis([1 4000 -20 40]); + hold on; + plot((1:Ndft/2)*4000/(Ndft/2), A2(f,1:(Ndft/2)),";A2;"); + if file_in_path(".",weights_filename) + plot(lsp1(f,:)*4000/pi, weights(f,:),";weights;g+"); + end + + for l=1:10 + plot([lsp1(f,l)*4000/pi lsp1(f,l)*4000/pi], [0 -10], 'r'); + plot([lsp2(f,l)*4000/pi lsp2(f,l)*4000/pi], [-10 -20], 'b'); + endfor + plot(0,0,';lsp1;r'); + plot(0,0,';lsp2;b'); + sd_str = sprintf(";sd %3.2f dB*dB;", sd(f)); + plot(0,0,sd_str); + + hold off; + + % interactive menu + + printf("\rframe: %d menu: n-next b-back q-quit", f); + fflush(stdout); + k = kbhit(); + if (k == 'n') + f = f + 1; + endif + if (k == 'b') + f = f - 1; + endif + + until (k == 'q') + printf("\n"); + +endfunction + diff --git a/libs/libcodec2/octave/spec.m b/libs/libcodec2/octave/spec.m new file mode 100644 index 0000000000..d02efd4a04 --- /dev/null +++ b/libs/libcodec2/octave/spec.m @@ -0,0 +1,86 @@ +% spec.m +% Jean Marc Valin +% +% Spectrogram function for Octave +% +% Copyright (c) John-Marc Valin 2012 +% +% Redistribution and use in source and binary forms, with or without +% modification, are permitted provided that the following conditions +% are met: +% +% - Redistributions of source code must retain the above copyright +% notice, this list of conditions and the following disclaimer. +% +% - Redistributions in binary form must reproduce the above copyright +% notice, this list of conditions and the following disclaimer in the +% documentation and/or other materials provided with the distribution. +% +% - Neither the name of Jean Marc Valin nor the names of its +% contributors may be used to endorse or promote products derived from +% this software without specific prior written permission. +% +% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +% ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +% LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +% A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR +% CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +% EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +% PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +% PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +% LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +% NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +% SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +function X = spec(x, Fs, framesize, start, stop) + + +gr=[zeros(1024,1),[0:1023]'/1023,.68*[0:1023]'/1023]; + +%gr=[.4*[0:1023]'/1023,[0:1023]'/1023,.68*[0:1023]'/1023]; + +%t=[0:1023]'/1023; +%t=(1+.25*t-cos(pi*t))/2.25; +%gr = [zeros(1024,1),t,.68*t]; + + +%colormap(gr); + +if nargin < 2 || isempty(Fs) + Fs = 44100; +end + +if nargin < 3 || isempty(framesize) + framesize = 2048; +endif + +offset = framesize/4; + +X = 20*log10(abs(specgram(x, framesize, 48000, blackmanharris(framesize)', framesize-offset))); + +XM=max(max(X)); +X = max(XM-120,X); +%size(X) +F = -[framesize/2-1:-1:0]/framesize*Fs; +%F = [0:127]/128*24000; +T=[1:size(X,2)]/Fs*offset; +%imagesc(X(end:-1:1,:)); + +if nargin < 4 || isempty(start) + istart=1; +else + istart = round(start*Fs/offset); +end + +if nargin < 5 || isempty(stop) + istop = size(X,2); +else + istop = round(stop*Fs/offset); +endif + +istart = max(1,istart); +istop = min(istop, size(X,2)); + +imagesc(T(1+istart:istop), F, X(end:-1:1,1+istart:istop)); + +X = X(:,1+istart:istop); diff --git a/libs/libcodec2/octave/tfdmdv.m b/libs/libcodec2/octave/tfdmdv.m new file mode 100644 index 0000000000..41e68c8855 --- /dev/null +++ b/libs/libcodec2/octave/tfdmdv.m @@ -0,0 +1,306 @@ +% tfdmdv.m +% +% Octave script that tests the C port of the FDMDV modem. This script loads +% the output of unittest/tfdmdv.c and compares it to the output of the +% reference versions of the same functions written in Octave. +% +% Copyright David Rowe 2012 +% This program is distributed under the terms of the GNU General Public License +% Version 2 +% + +fdmdv; % load modem code + +% Generate reference vectors using Octave implementation of FDMDV modem + +global passes; +global fails; +passes = fails = 0; +frames = 25; +prev_tx_symbols = ones(Nc+1,1); +prev_rx_symbols = ones(Nc+1,1); +foff_phase_rect = 1; +coarse_fine = 0; +fest_state = 0; +channel = []; +channel_count = 0; +next_nin = M; +sig_est = zeros(Nc+1,1); +noise_est = zeros(Nc+1,1); + +% Octave outputs we want to collect for comparison to C version + +tx_bits_log = []; +tx_symbols_log = []; +tx_baseband_log = []; +tx_fdm_log = []; +pilot_baseband1_log = []; +pilot_baseband2_log = []; +pilot_lpf1_log = []; +pilot_lpf2_log = []; +S1_log = []; +S2_log = []; +foff_coarse_log = []; +foff_fine_log = []; +foff_log = []; +rx_baseband_log = []; +rx_filt_log = []; +env_log = []; +rx_timing_log = []; +rx_symbols_log = []; +rx_bits_log = []; +sync_bit_log = []; +coarse_fine_log = []; +nin_log = []; +sig_est_log = []; +noise_est_log = []; + +for f=1:frames + + % modulator + + tx_bits = get_test_bits(Nc*Nb); + tx_bits_log = [tx_bits_log tx_bits]; + tx_symbols = bits_to_qpsk(prev_tx_symbols, tx_bits, 'dqpsk'); + prev_tx_symbols = tx_symbols; + tx_symbols_log = [tx_symbols_log tx_symbols]; + tx_baseband = tx_filter(tx_symbols); + tx_baseband_log = [tx_baseband_log tx_baseband]; + tx_fdm = fdm_upconvert(tx_baseband); + tx_fdm_log = [tx_fdm_log tx_fdm]; + + % channel + + nin = next_nin; + %nin = 120; + %nin = M; + %if (f == 3) + % nin = 120; + %elseif (f == 4) + % nin = 200; + %else + % nin = M; + %end + channel = [channel real(tx_fdm)]; + channel_count += M; + rx_fdm = channel(1:nin); + channel = channel(nin+1:channel_count); + channel_count -= nin; + + % demodulator + + [pilot prev_pilot pilot_lut_index prev_pilot_lut_index] = get_pilot(pilot_lut_index, prev_pilot_lut_index, nin); + + [foff_coarse S1 S2] = rx_est_freq_offset(rx_fdm, pilot, prev_pilot, nin); + if coarse_fine == 0 + foff = foff_coarse; + end + foff_coarse_log = [foff_coarse_log foff_coarse]; + + pilot_baseband1_log = [pilot_baseband1_log pilot_baseband1]; + pilot_baseband2_log = [pilot_baseband2_log pilot_baseband2]; + pilot_lpf1_log = [pilot_lpf1_log pilot_lpf1]; + pilot_lpf2_log = [pilot_lpf2_log pilot_lpf2]; + S1_log = [S1_log S1]; + S2_log = [S2_log S2]; + + foff_rect = exp(j*2*pi*foff/Fs); + + for i=1:nin + foff_phase_rect *= foff_rect'; + rx_fdm_fcorr(i) = rx_fdm(i)*foff_phase_rect; + end + + rx_baseband = fdm_downconvert(rx_fdm_fcorr, nin); + rx_baseband_log = [rx_baseband_log rx_baseband]; + + rx_filt = rx_filter(rx_baseband, nin); + rx_filt_log = [rx_filt_log rx_filt]; + + [rx_symbols rx_timing env] = rx_est_timing(rx_filt, rx_baseband, nin); + env_log = [env_log env]; + + rx_timing_log = [rx_timing_log rx_timing]; + rx_symbols_log = [rx_symbols_log rx_symbols]; + + next_nin = M; + if rx_timing > 2*M/P + next_nin += M/P; + end + if rx_timing < 0; + next_nin -= M/P; + end + nin_log = [nin_log nin]; + + [rx_bits sync_bit foff_fine pd] = qpsk_to_bits(prev_rx_symbols, rx_symbols, 'dqpsk'); + + [sig_est noise_est] = snr_update(sig_est, noise_est, pd); + sig_est_log = [sig_est_log sig_est]; + noise_est_log = [noise_est_log noise_est]; + + prev_rx_symbols = rx_symbols; + rx_bits_log = [rx_bits_log rx_bits]; + foff_fine_log = [foff_fine_log foff_fine]; + sync_bit_log = [sync_bit_log sync_bit]; + foff -= 0.5*foff_fine; + foff_log = [foff_log foff]; + + % freq est state machine + + [coarse_fine fest_state] = freq_state(sync_bit, fest_state); + coarse_fine_log = [coarse_fine_log coarse_fine]; +end + +% Compare to the output from the C version + +load ../unittest/tfdmdv_out.txt + +% Helper functions to plot output of C verson and difference between Octave and C versions + +function stem_sig_and_error(plotnum, subplotnum, sig, error, titlestr, axisvec) + figure(plotnum) + subplot(subplotnum) + stem(sig); + hold on; + stem(error,'g'); + hold off; + if nargin == 6 + axis(axisvec); + end + title(titlestr); +endfunction + +function plot_sig_and_error(plotnum, subplotnum, sig, error, titlestr, axisvec) + figure(plotnum) + subplot(subplotnum) + plot(sig); + hold on; + plot(error,'g'); + hold off; + if nargin == 6 + axis(axisvec); + end + title(titlestr); +endfunction + +% --------------------------------------------------------------------------------------- +% Plot output and test each C function +% --------------------------------------------------------------------------------------- + +% fdmdv_get_test_bits() & bits_to_dqpsk_symbols() + +n = 28; +stem_sig_and_error(1, 211, tx_bits_log_c(1:n), tx_bits_log(1:n) - tx_bits_log_c(1:n), 'tx bits', [1 n -1.5 1.5]) +stem_sig_and_error(1, 212, real(tx_symbols_log_c(1:n/2)), real(tx_symbols_log(1:n/2) - tx_symbols_log_c(1:n/2)), 'tx symbols real', [1 n/2 -1.5 1.5]) + +% tx_filter() + +diff = tx_baseband_log - tx_baseband_log_c; +c=15; +plot_sig_and_error(2, 211, real(tx_baseband_log_c(c,:)), real(sum(diff)), 'tx baseband real') +plot_sig_and_error(2, 212, imag(tx_baseband_log_c(c,:)), imag(sum(diff)), 'tx baseband imag') + +% fdm_upconvert() + +plot_sig_and_error(3, 211, real(tx_fdm_log_c), real(tx_fdm_log - tx_fdm_log_c), 'tx fdm real') +plot_sig_and_error(3, 212, imag(tx_fdm_log_c), imag(tx_fdm_log - tx_fdm_log_c), 'tx fdm imag') + +% generate_pilot_lut() + +plot_sig_and_error(4, 211, real(pilot_lut_c), real(pilot_lut - pilot_lut_c), 'pilot lut real') +plot_sig_and_error(4, 212, imag(pilot_lut_c), imag(pilot_lut - pilot_lut_c), 'pilot lut imag') + +% rx_est_freq_offset() + +st=1; en = 3*Npilotbaseband; +plot_sig_and_error(5, 211, real(pilot_baseband1_log(st:en)), real(pilot_baseband1_log(st:en) - pilot_baseband1_log_c(st:en)), 'pilot baseband1 real' ) +plot_sig_and_error(5, 212, real(pilot_baseband2_log(st:en)), real(pilot_baseband2_log(st:en) - pilot_baseband2_log_c(st:en)), 'pilot baseband2 real' ) + +st=1; en = 3*Npilotlpf; +plot_sig_and_error(6, 211, real(pilot_lpf1_log(st:en)), real(pilot_lpf1_log(st:en) - pilot_lpf1_log_c(st:en)), 'pilot lpf1 real' ) +plot_sig_and_error(6, 212, real(pilot_lpf2_log(st:en)), real(pilot_lpf2_log(st:en) - pilot_lpf2_log_c(st:en)), 'pilot lpf2 real' ) + +plot_sig_and_error(7, 211, real(S1_log), real(S1_log - S1_log_c), 'S1 real' ) +plot_sig_and_error(7, 212, imag(S1_log), imag(S1_log - S1_log_c), 'S1 imag' ) + +plot_sig_and_error(8, 211, real(S2_log), real(S2_log - S2_log_c), 'S2 real' ) +plot_sig_and_error(8, 212, imag(S2_log), imag(S2_log - S2_log_c), 'S2 imag' ) + +plot_sig_and_error(9, 211, foff_coarse_log, foff_coarse_log - foff_coarse_log_c, 'Coarse Freq Offset' ) +plot_sig_and_error(9, 212, foff_fine_log, foff_fine_log - foff_fine_log_c, 'Fine Freq Offset' ) + +plot_sig_and_error(10, 211, foff_log, foff_log - foff_log_c, 'Freq Offset' ) +plot_sig_and_error(10, 212, coarse_fine_log, coarse_fine_log - coarse_fine_log_c, 'Freq Est Coarse(0) Fine(1)', [1 frames -0.5 1.5] ) + +c=15; +plot_sig_and_error(11, 211, real(rx_baseband_log(c,:)), real(rx_baseband_log(c,:) - rx_baseband_log_c(c,:)), 'Rx baseband real' ) +plot_sig_and_error(11, 212, imag(rx_baseband_log(c,:)), imag(rx_baseband_log(c,:) - rx_baseband_log_c(c,:)), 'Rx baseband imag' ) + +plot_sig_and_error(12, 211, real(rx_filt_log(c,:)), real(rx_filt_log(c,:) - rx_filt_log_c(c,:)), 'Rx filt real' ) +plot_sig_and_error(12, 212, imag(rx_filt_log(c,:)), imag(rx_filt_log(c,:) - rx_filt_log_c(c,:)), 'Rx filt imag' ) + +st=1; en=3*Nt*P; +plot_sig_and_error(13, 211, env_log(st:en), env_log(st:en) - env_log_c(st:en), 'env' ) +stem_sig_and_error(13, 212, real(rx_symbols_log(c,:)), real(rx_symbols_log(c,:) - rx_symbols_log_c(c,:)), 'rx symbols' ) + +st=10*28; +en = 12*28; +plot_sig_and_error(14, 211, rx_timing_log, rx_timing_log - rx_timing_log_c, 'Rx Timing' ) +stem_sig_and_error(14, 212, sync_bit_log_c, sync_bit_log - sync_bit_log_c, 'Sync bit', [1 n -1.5 1.5]) + +stem_sig_and_error(15, 211, rx_bits_log_c(st:en), rx_bits_log(st:en) - rx_bits_log_c(st:en), 'RX bits', [1 en-st -1.5 1.5]) +stem_sig_and_error(15, 212, nin_log_c, nin_log - nin_log_c, 'nin') + +c = 1; +plot_sig_and_error(16, 211, sig_est_log(c,:), sig_est_log(c,:) - sig_est_log_c(c,:), 'sig est for SNR' ) +plot_sig_and_error(16, 212, noise_est_log(c,:), noise_est_log(c,:) - noise_est_log_c(c,:), 'noise est for SNR' ) + +% --------------------------------------------------------------------------------------- +% AUTOMATED CHECKS ------------------------------------------ +% --------------------------------------------------------------------------------------- + +function check(a, b, test_name) + global passes; + global fails; + + [m n] = size(a); + printf("%s", test_name); + for i=1:(25-length(test_name)) + printf("."); + end + printf(": "); + + if sum(abs(a - b))/n < 1E-3 + printf("OK\n"); + passes++; + else + printf("FAIL\n"); + fails++; + end +endfunction + +check(tx_bits_log, tx_bits_log_c, 'tx_bits'); +check(tx_symbols_log, tx_symbols_log_c, 'tx_symbols'); +check(tx_baseband_log, tx_baseband_log_c, 'tx_baseband'); +check(tx_fdm_log, tx_fdm_log_c, 'tx_fdm'); +check(pilot_lut, pilot_lut_c, 'pilot_lut'); +check(pilot_baseband1_log, pilot_baseband1_log_c, 'pilot lpf1'); +check(pilot_baseband2_log, pilot_baseband2_log_c, 'pilot lpf2'); +check(S1_log, S1_log_c, 'S1'); +check(S2_log, S2_log_c, 'S2'); +check(foff_coarse_log, foff_coarse_log_c, 'foff_coarse'); +check(foff_fine_log, foff_fine_log_c, 'foff_fine'); +check(foff_log, foff_log_c, 'foff'); +check(rx_baseband_log, rx_baseband_log_c, 'rx baseband'); +check(rx_filt_log, rx_filt_log_c, 'rx filt'); +check(env_log, env_log_c, 'env'); +check(rx_timing_log, rx_timing_log_c, 'rx_timing'); +check(rx_symbols_log, rx_symbols_log_c, 'rx_symbols'); +check(rx_bits_log, rx_bits_log_c, 'rx bits'); +check(sync_bit_log, sync_bit_log_c, 'sync bit'); +check(coarse_fine_log, coarse_fine_log_c, 'coarse_fine'); +check(nin_log, nin_log_c, 'nin'); +check(sig_est_log, sig_est_log_c, 'sig_est'); +check(noise_est_log, noise_est_log_c, 'noise_est'); + +printf("\npasses: %d fails: %d\n", passes, fails); diff --git a/libs/libcodec2/octave/tget_spec.m b/libs/libcodec2/octave/tget_spec.m new file mode 100644 index 0000000000..e46c1ea0bf --- /dev/null +++ b/libs/libcodec2/octave/tget_spec.m @@ -0,0 +1,49 @@ +% tget-spec.m +% +% Used in conjunction with src/fdmdv_demod to test the +% fdmdv_get_rx_spectrum() function. +% +% codec2-dev/src$ ./fdmdv_demod fdmdv_mod.raw tmp.c2 dump.txt +% octave:3> tget_spec("../src/dump.txt") +% +% Copyright David Rowe 2012 +% This program is distributed under the terms of the GNU General Public License +% Version 2 +% + +function tfft_log(dumpfilename) + + load(dumpfilename); + + [rows cols] = size(rx_spec_log_c); + Fs = 8000; low_freq = 0; high_freq = 2500; + res = (Fs/2)/cols; + st_bin = low_freq/res + 1; + en_bin = high_freq/res; + xaxis = (st_bin:en_bin)*res; + + f_start = 2; f_end = 100; + beta = 0.1; + + av = zeros(f_end, en_bin-st_bin+1); + for r=f_start:f_end + x = (1-beta)*av(r-1,:) + beta*rx_spec_log_c(r,st_bin:en_bin); + av(r,:) = x; + end + + % spectrogram (waterfall) + + figure(1) + clf; + imagesc(av,[-40 0]); + + % animated spectrum display + + figure(2) + clf; + for r=f_start:f_end + plot(xaxis, av(r,:)) + axis([ low_freq high_freq -40 0]) + sleep(0.1) + end +endfunction diff --git a/libs/libcodec2/octave/twotone.m b/libs/libcodec2/octave/twotone.m new file mode 100644 index 0000000000..a20c5c5af9 --- /dev/null +++ b/libs/libcodec2/octave/twotone.m @@ -0,0 +1,52 @@ +% twotone.m +% David Rowe Aug 2012 +% Used to experiment with combining phase of two tones + +function cbphase + + Wo = 100.0*pi/4000; + L = floor(pi/Wo); + phi = zeros(1,L); + + % two harmonics + + a = 20; b = 21; + + % set up phases to whatever + + phi(a) = -pi; + phi(b) = -pi/2; + + % synthesis the two-tone signal + + N = 16000; + Nplot = 250; + s = zeros(1,N); + + for m=a:b + s_m = cos(m*Wo*(0:(N-1)) + phi(m)); + s = s + s_m; + endfor + + % now our theory says that this signal should be the same perceptually + + phi_(a) = (phi(a) - phi(b))/2; + phi_(b) = (phi(b) - phi(a))/2; + + s_ = zeros(1,N); + for m=a:b + s_m = cos(m*Wo*(0:(N-1)) + phi_(m)); + s_ = s_ + s_m; + endfor + + % plot them and see if envelope has the same phase, but "carriers" + % have different phase + + figure(1); + clf; + subplot(211); + plot(s(1:Nplot)); + subplot(212); + plot(s_(1:Nplot),'r'); +endfunction + diff --git a/libs/libcodec2/octave/twotone1.m b/libs/libcodec2/octave/twotone1.m new file mode 100644 index 0000000000..9f36c68d52 --- /dev/null +++ b/libs/libcodec2/octave/twotone1.m @@ -0,0 +1,76 @@ +% twotone1.m +% David Rowe Aug 17 2012 +% +% Used to experiment with combining phase of two tones. This version +% sets up a complete synthetic speech signal then tries to combine the +% phase of high frequency tones. Lets see if we can do this and keep perceptual +% nature of signal the same. + +function twotone1 + + % hts1a frame 47 + + Wo = 0.093168; + L = 33; + %A = [69.626907 460.218536 839.677429 2577.498047 972.647888 712.755066 489.048553 364.830536 409.230652 371.767487 489.112854 893.127014 2447.596680 752.878113 475.720520 234.452271 248.161606 232.171051 202.669891 323.914490 678.749451 362.958038 211.652512 170.764435 148.631790 169.261673 272.254150 176.872375 67.344391 99.022301 60.812035 34.319073 14.864757]; + A = zeros(1,L)*100; + phi = [1.560274 1.508063 -1.565184 1.289117 -2.547365 1.412528 -1.303992 3.121130 1.087573 -1.158161 -2.928007 0.995093 -2.614023 0.246136 -2.267406 2.143802 -0.273431 -2.266897 1.685171 -0.668712 2.699722 -1.151891 2.406379 -0.046192 -2.718611 0.761067 -2.305014 0.133172 -1.428978 1.492630 -1.668385 1.539734 -1.336615]; + %phi = zeros(1,L); + st = floor(L/2); + %st = 1; + + A(st:st+5) = 1000; + + % now set up phase of signal with phase of upper frequency harmonic + % pairs combined + + phi_ = phi; + for m=floor(L/2):2:L + phi_(m) = (phi(m) - phi(m+1))/2; + phi_(m+1) = (phi(m+1) - phi(m))/2; + %phi_(m+1) = 0; + end + + % synthesise the signals + + N = 16000; + Nplot = 250; + + s = zeros(1,N); + for m=st:L + s_m = A(m)*cos(m*Wo*(0:(N-1)) + phi(m)); + s = s + s_m; + endfor + + s_ = zeros(1,N); + for m=st:L + s_m = A(m)*cos(m*Wo*(0:(N-1)) + phi_(m)); + s_ = s_ + s_m; + endfor + + % plot them, expect to see similar time domain waveforms + + figure(1); + clf; + subplot(211); + plot(s(1:Nplot)); + subplot(212); + plot(s_(1:Nplot),'r'); + + figure(2); + clf; + subplot(211); + plot(s(1:Nplot)-s_(1:Nplot)); + + % save to disk + + gain = 1; + fs=fopen("twotone1_orig.raw","wb"); + fwrite(fs,gain*s,"short"); + fclose(fs); + fs=fopen("twotone1_comb.raw","wb"); + fwrite(fs,gain*s_,"short"); + fclose(fs); + +endfunction + diff --git a/libs/libcodec2/octave/undersample.m b/libs/libcodec2/octave/undersample.m new file mode 100644 index 0000000000..1bfbf38b19 --- /dev/null +++ b/libs/libcodec2/octave/undersample.m @@ -0,0 +1,26 @@ +% undersample.m +% David Rowe 5 Nov 2012 +% Testing algorithms for plotting undersampled data for fdmdv2 waveform displays + +fs=fopen("../raw/hts1a.raw","rb"); +s = fread(fs,Inf,"short"); + +Fs1=8000; +Fs2=200; + +M=Fs1/Fs2; + +samples=length(s)/M; +s1=zeros(1,2*samples); +for b=1:samples + st = (b-1)*M + 1; + en = b*M; + s1(2*b-1) = max(s(st:en)); + s1(2*b) = min(s(st:en)); +end + +subplot(211) +plot(s) +subplot(212) +plot(s1); + diff --git a/libs/libcodec2/portaudio/Makefile b/libs/libcodec2/portaudio/Makefile new file mode 100644 index 0000000000..39255b6ce5 --- /dev/null +++ b/libs/libcodec2/portaudio/Makefile @@ -0,0 +1,23 @@ +# Makefile for Portaudio test programs +# Requires Portaudio V19 + +CFLAGS = -g -Wall -I../src +LIBS = -lm -lportaudio -pthread +SRC = ../src/fdmdv.c ../src/kiss_fft.c ../src/fifo.c + +all: pa_rec pa_play pa_recplay pa_impresp + +pa_rec: Makefile pa_rec.c $(SRC) + gcc $(CFLAGS) pa_rec.c $(SRC) -o pa_rec $(LIBS) + +pa_play: Makefile pa_play.c $(SRC) + gcc $(CFLAGS) pa_play.c $(SRC) -o pa_play $(LIBS) + +pa_recplay: Makefile pa_recplay.c $(SRC) + gcc $(CFLAGS) pa_recplay.c $(SRC) -o pa_recplay $(LIBS) + +pa_impresp: Makefile pa_impresp.c $(SRC) + gcc $(CFLAGS) pa_impresp.c $(SRC) -o pa_impresp $(LIBS) + +clean: + rm -f pa_rec pa_play pa_recplay diff --git a/libs/libcodec2/portaudio/pa_impresp.c b/libs/libcodec2/portaudio/pa_impresp.c new file mode 100644 index 0000000000..7317e07e43 --- /dev/null +++ b/libs/libcodec2/portaudio/pa_impresp.c @@ -0,0 +1,254 @@ +/* + pa_impresp.c + David Rowe + August 29 2012 + + Measures the impulse reponse of the path between the speaker and + microphone. Used to explore why Codec audio quality is + different through a speaker and headphones. + + Modified from pa_playrec.c +*/ + +/* + * $Id: paex_record.c 1752 2011-09-08 03:21:55Z philburk $ + * + * This program uses the PortAudio Portable Audio Library. + * For more information see: http://www.portaudio.com + * Copyright (c) 1999-2000 Ross Bencina and Phil Burk + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include "portaudio.h" +#include "fdmdv.h" + +#define SAMPLE_RATE 48000 /* 48 kHz sampling rate rec. as we + can trust accuracy of sound + card */ +#define N8 160 /* processing buffer size at 8 kHz */ +#define N48 (N8*FDMDV_OS) /* processing buffer size at 48 kHz */ +#define MEM8 (FDMDV_OS_TAPS/FDMDV_OS) +#define NUM_CHANNELS 2 /* I think most sound cards prefer + stereo, we will convert to mono + as we sample */ + +#define IMPULSE_AMP 16384 /* amplitide of impulse */ +#define IMPULSE_PERIOD 0.1 /* period (dly between impulses) in secs */ + +/* state information passed to call back */ + +typedef struct { + float in48k[FDMDV_OS_TAPS + N48]; + float in8k[MEM8 + N8]; + FILE *fimp; + float *impulse_buf; + int impulse_buf_length; + int impulse_sample_count; + int framesLeft; +} paTestData; + + +/* + This routine will be called by the PortAudio engine when audio is + required. It may be called at interrupt level on some machines so + don't do anything that could mess up the system like calling + malloc() or free(). +*/ + +static int callback( const void *inputBuffer, void *outputBuffer, + unsigned long framesPerBuffer, + const PaStreamCallbackTimeInfo* timeInfo, + PaStreamCallbackFlags statusFlags, + void *userData ) +{ + paTestData *data = (paTestData*)userData; + int i; + short *rptr = (short*)inputBuffer; + short *wptr = (short*)outputBuffer; + float *in8k = data->in8k; + float *in48k = data->in48k; + float out8k[N8]; + float out48k[N48]; + short out48k_short[N48]; + short out8k_short[N8]; + + (void) timeInfo; + (void) statusFlags; + + assert(inputBuffer != NULL); + + /* just use left channel */ + + for(i=0; iin48k[i+FDMDV_OS_TAPS] = *rptr; + + /* downsample and update filter memory */ + + fdmdv_48_to_8(out8k, &in48k[FDMDV_OS_TAPS], N8); + for(i=0; ifimp); + + /* play side, read from impulse buffer */ + + for(i=0; iimpulse_buf[data->impulse_sample_count]; + data->impulse_sample_count++; + if (data->impulse_sample_count == data->impulse_buf_length) + data->impulse_sample_count = 0; + } + + /* upsample and update filter memory */ + + fdmdv_8_to_48(out48k, &in8k[MEM8], N8); + for(i=0; iframesLeft -= framesPerBuffer; + if (data->framesLeft > 0) + return paContinue; + else + return paComplete; +} + +int main(int argc, char *argv[]) +{ + PaStreamParameters inputParameters, outputParameters; + PaStream* stream; + PaError err = paNoError; + paTestData data; + int i, numSecs; + + if (argc != 3) { + printf("usage: %s impulseRawFile time(s)\n", argv[0]); + exit(0); + } + + data.fimp = fopen(argv[1], "wb"); + if (data.fimp == NULL) { + printf("Error opening impulse output file %s\n", argv[1]); + exit(1); + } + + numSecs = atoi(argv[2]); + data.framesLeft = numSecs * SAMPLE_RATE; + + /* init filter states */ + + for(i=0; idefaultLowInputLatency; + inputParameters.hostApiSpecificStreamInfo = NULL; + + outputParameters.device = Pa_GetDefaultOutputDevice(); /* default output device */ + if (outputParameters.device == paNoDevice) { + fprintf(stderr,"Error: No default output device.\n"); + goto done; + } + outputParameters.channelCount = NUM_CHANNELS; /* stereo output */ + outputParameters.sampleFormat = paInt16; + outputParameters.suggestedLatency = Pa_GetDeviceInfo( outputParameters.device )->defaultLowOutputLatency; + outputParameters.hostApiSpecificStreamInfo = NULL; + + /* Play some audio --------------------------------------------- */ + + err = Pa_OpenStream( + &stream, + &inputParameters, + &outputParameters, + SAMPLE_RATE, + N48, + paClipOff, + callback, + &data ); + if( err != paNoError ) goto done; + + err = Pa_StartStream( stream ); + if( err != paNoError ) goto done; + + while( ( err = Pa_IsStreamActive( stream ) ) == 1 ) + { + Pa_Sleep(100); + } + if( err < 0 ) goto done; + + err = Pa_CloseStream( stream ); + if( err != paNoError ) goto done; + + +done: + Pa_Terminate(); + if( err != paNoError ) + { + fprintf( stderr, "An error occured while using the portaudio stream\n" ); + fprintf( stderr, "Error number: %d\n", err ); + fprintf( stderr, "Error message: %s\n", Pa_GetErrorText( err ) ); + err = 1; /* Always return 0 or 1, but no other return codes. */ + } + + fclose(data.fimp); + + return err; +} + diff --git a/libs/libcodec2/portaudio/pa_play.c b/libs/libcodec2/portaudio/pa_play.c new file mode 100644 index 0000000000..00ea0868fe --- /dev/null +++ b/libs/libcodec2/portaudio/pa_play.c @@ -0,0 +1,199 @@ +/* + pa_play.c + David Rowe + July 8 2012 + + Converts samples from a 16 bit short 8000 Hz rawfile to 480000Hz + sample rate and plays them using the default sound device. Used as + an intermediate step in Portaudio integration. + + Modified from paex_record.c Portaudio example. Original author + author Phil Burk http://www.softsynth.com +*/ + +/* + * $Id: paex_record.c 1752 2011-09-08 03:21:55Z philburk $ + * + * This program uses the PortAudio Portable Audio Library. + * For more information see: http://www.portaudio.com + * Copyright (c) 1999-2000 Ross Bencina and Phil Burk + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include "portaudio.h" +#include "fdmdv.h" + +#define SAMPLE_RATE 48000 /* 48 kHz sampling rate rec. as we + can trust accuracy of sound + card */ +#define N8 160 /* processing buffer size at 8 kHz */ +#define N48 (N8*FDMDV_OS) /* processing buffer size at 48 kHz */ +#define MEM8 (FDMDV_OS_TAPS/FDMDV_OS) +#define NUM_CHANNELS 2 /* I think most sound cards prefer + stereo, we will convert to mono + as we sample */ + +/* state information passed to call back */ + +typedef struct { + FILE *fin; + float in8k[MEM8 + N8]; +} paTestData; + + +/* + This routine will be called by the PortAudio engine when audio is + required. It may be called at interrupt level on some machines so + don't do anything that could mess up the system like calling + malloc() or free(). +*/ + +static int playCallback( const void *inputBuffer, void *outputBuffer, + unsigned long framesPerBuffer, + const PaStreamCallbackTimeInfo* timeInfo, + PaStreamCallbackFlags statusFlags, + void *userData ) +{ + paTestData *data = (paTestData*)userData; + FILE *fin = data->fin; + int i, nread; + int finished; + short *wptr = (short*)outputBuffer; + float *in8k = data->in8k; + float out48k[N48]; + short out48k_short[N48]; + short in8k_short[N8]; + + (void) outputBuffer; /* Prevent unused variable warnings. */ + (void) timeInfo; + (void) statusFlags; + (void) userData; + + /* note Portaudio docs recs. against making systems calls like + fwrite() in this callback but seems to work OK */ + + nread = fread(in8k_short, sizeof(short), N8, fin); + if (nread == N8) + finished = paContinue; + else + finished = paComplete; + + for(i=0; idefaultLowOutputLatency; + outputParameters.hostApiSpecificStreamInfo = NULL; + + /* Play some audio --------------------------------------------- */ + + err = Pa_OpenStream( + &stream, + NULL, + &outputParameters, + SAMPLE_RATE, + N48, + paClipOff, + playCallback, + &data ); + if( err != paNoError ) goto done; + + err = Pa_StartStream( stream ); + if( err != paNoError ) goto done; + + while( ( err = Pa_IsStreamActive( stream ) ) == 1 ) + { + Pa_Sleep(100); + } + if( err < 0 ) goto done; + + err = Pa_CloseStream( stream ); + if( err != paNoError ) goto done; + + fclose(data.fin); + + +done: + Pa_Terminate(); + if( err != paNoError ) + { + fprintf( stderr, "An error occured while using the portaudio stream\n" ); + fprintf( stderr, "Error number: %d\n", err ); + fprintf( stderr, "Error message: %s\n", Pa_GetErrorText( err ) ); + err = 1; /* Always return 0 or 1, but no other return codes. */ + } + return err; +} + diff --git a/libs/libcodec2/portaudio/pa_rec.c b/libs/libcodec2/portaudio/pa_rec.c new file mode 100644 index 0000000000..00023b02bd --- /dev/null +++ b/libs/libcodec2/portaudio/pa_rec.c @@ -0,0 +1,212 @@ +/* + pa_rec.c + David Rowe + July 6 2012 + + Records at 48000 Hz from default sound device, convertes to 8 kHz, + and saves to raw file. Used to get experience with Portaudio. + + Modified from paex_record.c Portaudio example. Original author + author Phil Burk http://www.softsynth.com + + To Build: + + gcc paex_rec.c -o paex_rec -lm -lrt -lportaudio -pthread +*/ + +/* + * $Id: paex_record.c 1752 2011-09-08 03:21:55Z philburk $ + * + * This program uses the PortAudio Portable Audio Library. + * For more information see: http://www.portaudio.com + * Copyright (c) 1999-2000 Ross Bencina and Phil Burk + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include "portaudio.h" +#include "fdmdv.h" + +#define SAMPLE_RATE 48000 /* 48 kHz sampling rate rec. as we + can trust accuracy of sound + card */ +#define N8 160 /* processing buffer size at 8 kHz */ +#define N48 (N8*FDMDV_OS) /* processing buffer size at 48 kHz */ +#define NUM_CHANNELS 2 /* I think most sound cards prefer + stereo, we will convert to mono + as we sample */ + +/* state information passed to call back */ + +typedef struct { + FILE *fout; + int framesLeft; + float in48k[FDMDV_OS_TAPS + N48]; +} paTestData; + + +/* + This routine will be called by the PortAudio engine when audio is + available. It may be called at interrupt level on some machines so + don't do anything that could mess up the system like calling + malloc() or free(). +*/ + +static int recordCallback( const void *inputBuffer, void *outputBuffer, + unsigned long framesPerBuffer, + const PaStreamCallbackTimeInfo* timeInfo, + PaStreamCallbackFlags statusFlags, + void *userData ) +{ + paTestData *data = (paTestData*)userData; + FILE *fout = data->fout; + int framesToCopy; + int i; + int finished; + short *rptr = (short*)inputBuffer; + float out8k[N8]; + short out8k_short[N8]; + + (void) outputBuffer; /* Prevent unused variable warnings. */ + (void) timeInfo; + (void) statusFlags; + (void) userData; + + if (data->framesLeft < framesPerBuffer) { + framesToCopy = data->framesLeft; + finished = paComplete; + } + else { + framesToCopy = framesPerBuffer; + finished = paContinue; + } + data->framesLeft -= framesToCopy; + + assert(inputBuffer != NULL); + + /* just use left channel */ + + for(i=0; iin48k[i+FDMDV_OS_TAPS] = *rptr; + + /* downsample and update filter memory */ + + fdmdv_48_to_8(out8k, &data->in48k[FDMDV_OS_TAPS], N8); + for(i=0; iin48k[i] = data->in48k[i+framesToCopy]; + + /* save 8k to disk */ + + for(i=0; idefaultLowInputLatency; + inputParameters.hostApiSpecificStreamInfo = NULL; + + /* Record some audio --------------------------------------------- */ + + err = Pa_OpenStream( + &stream, + &inputParameters, + NULL, /* &outputParameters, */ + SAMPLE_RATE, + N48, + paClipOff, /* we won't output out of range samples so don't bother clipping them */ + recordCallback, + &data ); + if( err != paNoError ) goto done; + + err = Pa_StartStream( stream ); + if( err != paNoError ) goto done; + + while( ( err = Pa_IsStreamActive( stream ) ) == 1 ) + { + Pa_Sleep(100); + } + if( err < 0 ) goto done; + + err = Pa_CloseStream( stream ); + if( err != paNoError ) goto done; + + fclose(data.fout); + + +done: + Pa_Terminate(); + if( err != paNoError ) + { + fprintf( stderr, "An error occured while using the portaudio stream\n" ); + fprintf( stderr, "Error number: %d\n", err ); + fprintf( stderr, "Error message: %s\n", Pa_GetErrorText( err ) ); + err = 1; /* Always return 0 or 1, but no other return codes. */ + } + return err; +} + diff --git a/libs/libcodec2/portaudio/pa_recplay.c b/libs/libcodec2/portaudio/pa_recplay.c new file mode 100644 index 0000000000..6bfcd08b09 --- /dev/null +++ b/libs/libcodec2/portaudio/pa_recplay.c @@ -0,0 +1,270 @@ +/* + pa_recplay.c + David Rowe + July 8 2012 + + Echos audio from sound card input to sound card output. Samples at + 48 kHz, converts to 8 kHz, converts back to 48kHz, and plays using + the default sound device. Used as an intermediate step in + Portaudio integration. + + Modified from paex_record.c Portaudio example. Original author + author Phil Burk http://www.softsynth.com +*/ + +/* + * $Id: paex_record.c 1752 2011-09-08 03:21:55Z philburk $ + * + * This program uses the PortAudio Portable Audio Library. + * For more information see: http://www.portaudio.com + * Copyright (c) 1999-2000 Ross Bencina and Phil Burk + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include "portaudio.h" +#include "fdmdv.h" +#include "fifo.h" + +#define SAMPLE_RATE 48000 /* 48 kHz sampling rate rec. as we + can trust accuracy of sound + card */ +#define N8 160 /* processing buffer size at 8 kHz */ +#define N48 (N8*FDMDV_OS) /* processing buffer size at 48 kHz */ +#define MEM8 (FDMDV_OS_TAPS/FDMDV_OS) +#define NUM_CHANNELS 2 /* I think most sound cards prefer + stereo, we will convert to mono + as we sample */ +#define MAX_FPB 2048 /* maximum value of framesPerBuffer */ + +/* state information passed to call back */ + +typedef struct { + float in48k[FDMDV_OS_TAPS + N48]; + float in8k[MEM8 + N8]; + struct FIFO *infifo; + struct FIFO *outfifo; +} paTestData; + + +/* + This routine will be called by the PortAudio engine when audio is + required. It may be called at interrupt level on some machines so + don't do anything that could mess up the system like calling + malloc() or free(). +*/ + +static int callback( const void *inputBuffer, void *outputBuffer, + unsigned long framesPerBuffer, + const PaStreamCallbackTimeInfo* timeInfo, + PaStreamCallbackFlags statusFlags, + void *userData ) +{ + paTestData *data = (paTestData*)userData; + int i; + short *rptr = (short*)inputBuffer; + short *wptr = (short*)outputBuffer; + float *in8k = data->in8k; + float *in48k = data->in48k; + float out8k[N8]; + float out48k[N48]; + short out48k_short[N48]; + short in48k_short[N48]; + short indata[MAX_FPB]; + short outdata[MAX_FPB]; + + (void) timeInfo; + (void) statusFlags; + + assert(inputBuffer != NULL); + assert(outputBuffer != NULL); + + /* + framesPerBuffer is portaudio-speak for number of samples we + actually get from the record side and need to provide to the + play side. On Linux (at least) it was found that + framesPerBuffer may not always be what we ask for in the + framesPerBuffer field of Pa_OpenStream. For example a request + for 960 sample buffers lead to framesPerBuffer = 1024. + + To perform the 48 to 8 kHz conversion we need an integer + multiple of FDMDV_OS samples to support the interpolation and + decimation. As we can't guarantee the size of framesPerBuffer + we do a little FIFO buffering. + */ + + //printf("framesPerBuffer: %d N48 %d\n", framesPerBuffer, N48); + + /* assemble a mono buffer (just use left channel) and write to FIFO */ + + assert(framesPerBuffer < MAX_FPB); + for(i=0; iinfifo, indata, framesPerBuffer); + + /* while we have enough samples available ... */ + + //printf("infifo before: %d\n", fifo_n(data->infifo)); + while (fifo_read(data->infifo, in48k_short, N48) == 0) { + + /* convert to float */ + + for(i=0; ioutfifo, out48k_short, N48); + } + //printf("infifo after: %d\n", fifo_n(data->infifo)); + //printf("outfifo : %d\n", fifo_n(data->outfifo)); + + + /* OK now set up output samples */ + + if (fifo_read(data->outfifo, outdata, framesPerBuffer) == 0) { + + /* write signal to both channels */ + + for(i=0; idefaultLowInputLatency; + inputParameters.hostApiSpecificStreamInfo = NULL; + + outputParameters.device = Pa_GetDefaultOutputDevice(); /* default output device */ + if (outputParameters.device == paNoDevice) { + fprintf(stderr,"Error: No default output device.\n"); + goto done; + } + outputParameters.channelCount = NUM_CHANNELS; /* stereo output */ + outputParameters.sampleFormat = paInt16; + outputParameters.suggestedLatency = Pa_GetDeviceInfo( outputParameters.device )->defaultLowOutputLatency; + outputParameters.hostApiSpecificStreamInfo = NULL; + + /* Play some audio --------------------------------------------- */ + + err = Pa_OpenStream( + &stream, + &inputParameters, + &outputParameters, + SAMPLE_RATE, + 512, + paClipOff, + callback, + &data ); + if( err != paNoError ) goto done; + + err = Pa_StartStream( stream ); + if( err != paNoError ) goto done; + + while( ( err = Pa_IsStreamActive( stream ) ) == 1 ) + { + Pa_Sleep(100); + } + if( err < 0 ) goto done; + + err = Pa_CloseStream( stream ); + if( err != paNoError ) goto done; + + +done: + Pa_Terminate(); + if( err != paNoError ) + { + fprintf( stderr, "An error occured while using the portaudio stream\n" ); + fprintf( stderr, "Error number: %d\n", err ); + fprintf( stderr, "Error message: %s\n", Pa_GetErrorText( err ) ); + err = 1; /* Always return 0 or 1, but no other return codes. */ + } + + fifo_destroy(data.infifo); + fifo_destroy(data.outfifo); + + return err; +} + diff --git a/libs/libcodec2/raw/cq_ref.raw b/libs/libcodec2/raw/cq_ref.raw new file mode 100644 index 0000000000000000000000000000000000000000..485703d949e07b915c7420db59a9d2734d2a97ea GIT binary patch literal 143828 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 ybKTY5Y60kLv6RpF~>aP9IV$()d5hpwp@V literal 0 HcmV?d00001 diff --git a/libs/libcodec2/raw/cross.raw b/libs/libcodec2/raw/cross.raw new file mode 100644 index 0000000000000000000000000000000000000000..1b2af6a90fa8da2e83b0f1b5088cbc5ab1dd7f7f GIT binary patch literal 48000 zcmZs^O^91rmhXEco%paV+mV^dOlPI42$Dk)6rua&VgB-+A0}nLtKm!jn$bkkPh=+NIi)lpRORH%&t){bRHRYmIlq>6GrZZES=?~df zgpQ>5`|lN}BKz{!(~lbx)q~t$R=T==>>9mEY1>Zk4TCtVGplwWr@{O_po1c|<9X`B)A1 zR5k0lzRzg2npC6iUGet$-gn=YW{>-OTpzgO3g7$Qp?B4_S1Hs^wO!O5^7JatuX@+{ z9J=E}cdjetR63PpXNKFA(;BVrJy)Vi78R;%pOWodxm4EyX;e~*lTb?$HC!KaEkyO5 zA}f6DY5J{PhPTQ~|58L$qVA>n?YW-XM>z~Lqt-Ccxt^<4IxLm=V4PHqYJ*BQe%Pu&%@W|vRZM%LA6XUF&ibheaJ9edZD3$225>&1vPWOyD)pI7F zXXTnSNU~IhWJGsVij`+2nDktsjI>tOtu*#`_N)5TI^+9eT55+-c|xBOifQZhYi&`z z!r$n)=IJ&K{^>mJ z$@Xi#T&++p`!m@SZo*jYJ40K1c?9Q-6LxMADNZQ8jU85^_@Qf)3zcsD)}+^JkW`rN z(R1Ut&P=9MyAGwXyH;X4s_4GeU}aigRZGNs{id83-*!P((yj5qehqV>t{$Sh)<1;q z0Ux2SJbR8i)?W^}7SF^n>u)x$D3$43aVy0$?bo_CUBe^yXI#>A(PB^SiL{^fZ0qxB zZ#YB2cqBx1Q-* zXKF!uM^|Tu^%O(EO0aX4t3NAKC7zY0CzkKW@+irW9I3_90VZ=Mads}5)V2D(p`$h{ zkBudEZaA1_Bnk{2qgwUpOi1XkXK5KGgS(CnQIle<)RHUxs{iZPP!SIMs^pXkX~;8a zRIUS3SPtb%d;e8;Zuf=p0oQg27afL=P#0EdYpiV5r$13>tv57uZiv|Pvu`~y8Vz|- zEm}m;*_kNNl|8j9tI?=QIcq&YPgGj^_r&3)dZZb|LzD58c9Q|gf!e3Kg{3gip_Uq7 z?Ap*$z3JZ>uZ_dTSv^&qLPJNYk92M=)|rhY|5=ZuNEqJwRyn)SqL$fRwbbO^=+G1K zOL!V*jNgWXp3V#ZhTftdvvfb#rYQQOIdt z;U^4Knn}O`=hib!KOed)8!ZpWWipcXIhB**bVi-ZH}r+J4x{m`eTHY+8r@e4`%_!= z+~j}P>HTYr0J5-*MvViaQ}h_^sca~p`izxj0pV`}K-9|@Rg6l)<3w&JBZ9c2%BHnM$XqGal*JYE-JUoz`ZRqI=@J zrB?nkJbs+&?5;4d)Fy|rYRsc~_?H%1ONEftEo9V>)tgOU8rMb%RWB+mLDd6O!q84BRdZEcl{pHh zN15y9YOtEG3Z!XrRM%xb?o9tFW3UlVreWk`yST>dGka zyuBW-^PAc!Qujerm?qp!pz;wiew|jgGvn+uSM#TScdNEt+^Ovpce>l%?c#QAtLry% zm25rJqh94~(ncLs_Ysvv%CAAulg+;Kz^^+gQcr4Z@|!m4CQvj_>Kwu85ibL-CQ12} z)+*(R-ei4ubCp*5@MoMYLQxUaMAML?xMLJeb9qOT4^`K^&o-6Kblr876+mRZ5_L^@ zC)ygcSN&4?kF2L-j*q=Ns057=sTjUL*&VL zTl*1ah8LXni|{v}>u1~93S5pdBXT?j`5O3%&L(_mI{ez}88lYlX2{dV<_59Y9~f$=>9&wPiI zZkFw5^KjOr>Z*4SDuzh!5bDGYwOiCy`3%8QPt+eozv>&TI&iP-@EbVlj5eWH;C_?m zqEBVbS7qAyX!D6T@yeN5rbMskI_}n>ueLpPk>&Qh&|+6jWxQHFGqH zHc{2*=t7x#sv%qb3vHsVfZPea$tisU&UCK~^@CNxwXq3(&2@tw>!S(!nTo>>I-mxs z9Co5l6c)E?P}gwW&1b8b0e!NEj=8-V)4tidv}saSfupk;B)w&EYq&dI_q^V6faKRt z;*;vC4h6kseHkx1EAccST^%Z8?&*90e>>c5f}m2@m-E%0H={?CkSHhsuc8juOJ|wd z_V5D7x#AY6q2ZGCZRE($?4f}kZX)EbPe18^;4LRR9&8|ITYlQ+W4;l<&3N6St(HwCHU z4!F?|z)qUQZ$p2BYjiL@qlg}?`7<<6KHJVb0J*|?0$18_Aj&kj29rhfGI}w3PJJ&& z^U;gZoL>&^J&T@=p7}rcU$=hO`rYW|I2&Gqig%8Fe)LyIKTqBYFV_6&R=o7T^Pfbo zn`@{%H$0!bmHaGuFWC#v<+I~V@5KM!|I+_9dY0czefRVy$vesAu21_H(F;m{8odlo zu6Z5Dhu|cd`%nGvMo*zcb$`#*_pXf3{Xe(CkUV7f}A}NBS1L)ifFAP?r=l<9J zpZ#xp$Bj+VALheL;pN(PZ$ZsZ{crtmc>0b1J@`EHzZW9Z^iAuZT7MtCtnDP1lb;;z zAN}po-yQw3kqh&4q`?2a^#?y5=99ORJ)V95TE7If&2+oDro~VEFGkO%xkk3PBzF-y z_melni{Yih+Mn_C+vt__V>g$)kz5|`-rn>UqnFVCgS@ku1nn&}|)988hto57L z|KopM+d^}`mArct9{rc2t9~XaB$ulz=={C^RW}!24wlK=)O2_hB!%!C_;1rH_%fQ0 zUV`)sDEVpf6OQ+i_rlBdB{d2AZ~Y(Qovfe-pimUQx=E z(X-xhxC?hKgV{cGTr6()PNL`3^#t@6!IE)yr?%bC)Q=-%l{}*4JLnLPzJOcbLB;>{ ze;A(gzZvc#1L4utqn{7+N54qkC-u|OyuJjrm%U@Pl$zcHkK*t`xJ&DNO8ge?f@|-1 zxC8IrheFbYmlvD(BzlERf_S`;<_(g2n|i`M^_u6PB1xeQQ1WH#A6tJvNx1X*@B)~Z zk;7jgZ&$;M^`y2{%E800N3ZKA#qG%o8j94jm%N)4!%M}T#s+=&ic-Ff(Fx^sc#+=n zF1>D#zJCr~wH&O1<7hs56)&I^{zKCX=nxgi1Z_l`TmR7d7c8^ixBfWYa&34Y%zt_G zSIDH=vl~4hqeG+Tl=HH-HOn-z;rZlBvd8lRvUt9N-kPq14av{l1=bx9OATsqk@kOLWlk}TT70D zBmikfg3NSloUQrcx$qLLy$s#R#c*eqZNlyN81201Eg9F=JyQ3UwEp!7y#t2QRZrpB zlh$wjKlxAj{uUk1I0N6_MACnP%u_!Izn#1@+zHQ5w@RSbI}s0&>tnR=F=NKo@Laf? zTo$i~7r|n;o%Or{BUo@8FedblN3R(dUPtto(QER)wDNqH?S`5 zZDji_7_A>LenS%n(xovQJ7$ms*atnvXujPzU3VjO2YW)+R~4%$!77mzEMMXp^J5)s zutKJZ-!sdU7>65t?7KwWc`VjGM>|u+awua@6!24G^2pNp5ZnFJ^Q?ph z95^dY?YxU;b?@|B^?mA&+uV`QsuESF<=sAXhg$j> z?Nnq)kqL_i$Oo7IeARi=*YJ4t(V^eNQ*Zmj)4Mm}fo4RtMnjPs<-5*d9=ZG@dGA+G z%TyFWzPx$%c3+%Slt;N0i!~2lWvCR*xyr-R@d-Yh9d`B!cRuE+W@m45u1LU#?vBme z8pR({qT)$Ln`%?E!eWs|O&Z5iyYX=D#=Q*nv7{21A)K$9W`x3TNn>p@b<4KIvd%`&yE(aY&J`XT9V z12E#$K}Sc+>SX*UnaQwe4=Mwl(o8*=9yDgBmFcD|EsNt(aYqM;4x+nPsoQ zKgDon^c<2l!=t$FmGC2?Ol?!e>wL74&skW<9{M_SMCfu66uVB9F<6Juttf+geCqAp7Sf3AlGQP)WNl96m#Ud1Pp0F9y1>)<3_ zg8oi;A-Rl=fTzc?CktTcMzrC1#zw}o;W?xTPp?7kv#dP08dhk0+*>e?V-Yh>&PN)d zIYwCZ`i)*hvXAhyMzWM%M2w(V3V-mwjb0Zw-P~|zcnN#`=gH3)voE`PFAjGjWPw`G z7q>%vPmassr6C^h@O-$7<&+(H6a2LR+o^ssNMczh%YqvX3rOzhwHveXC829R!jFvb z=BS%dJX%E0u}ptAdV1gu^Um@$>-2-<%`iW_5T2)%Tj6G$2|ty&r&y_Q0n0@gU^QOs=9);A`oeWD#ySb;8Ip|JMo|W5 zC(0_DQ!ki9f$HNd!gItv#+!=Fcf^bB=8pD{0{I_!JBQ$Z8HpfY{kWgKw*l8=h$jnu z?}nF)TaE0LD9Jc8KnFC}MSr+6_3t3n-F1L9+{oVDOt4hyNE+D7CWhCM*=q7l@X@f* z@uNZh*R9{+gtRzzYW?#Ok`Bk=Kefwq{TlD=*R9`0^Q1uS zhesvK|2cj*9$0)rnlJqy;-##hX%61JA!L#wt>3=CiLt$+*AX$1dO|@HE_$_rHxbJ^RnNmV1@j-G z=d@luK~avG|2eJyt^ZZ;WSCFh0aqkX6ySFk!u-Qca2y|Z&{6?%T|dF9^l9ZDt)vG? z?nC-PaVtXd132Bs5-hCia2$<;^*+swJo+KFzpLNHZX$Xd^x&u1U8wjDnijE#{GeGl z&O0QL^5Mnse9=XuyJ!}oPFTN3Xu}4!Yn8aYB3&i)UL#k^BL8T)=2|vX153HE7Tt4t zf0Kw@fX6^DL>dAPemQh)SNc_Sqd?jYIixS!*tN20?=nj7VOB#!}@jT^IM)e1jX0sY*ADTTXn^dv6JRg1M86RdKndiQ& z#=GS7uuwkoWJgc1qhm$_NtlkZJ0fZ}Yg!g{-5u#2+4HitWzFl5EDx~hJEykU^;3)I zGi-}{SQx3TEBjS;siKNHK6TW~`ZWvJ+F({~jkG$GO{;XWUo?XzdnmP}%&sy^$7a@K z)7s2qY6;mqkY?YM`!np_M~*6;?RzRyr3*{N)n$j9$MJx1Q+Bf~G|l+SH_+^-W~$8Y zlGQ5PRll|}Ftt!SAVH+o9YRLf*kNZao~IvKvu58amzAJ1rAX7X$erG?yGmyt*}(dw z*Oo_i^Gzg1R`Q2XXO^q%R#~$jVVjEfvyWP!xh`4A@(F}+YERnyrrD|w!9hqqa2P&x z*a`=pWGY0vIDj%!vz5+UBp^1R1$lLWo8dK#^z0F}m<4V%rueB0p`*4xJf-I$CFx2C2t(ztIbD5A?oIM- z235X*{FZBQPKP`$^L?(tVfj7RoD9fQk|!fi#dx~QnWW$*C5YQksOJtnt%QDWwq)C*5a9317xMbNiNVl#iZz z&ZcL6>^V!KQvD>YYLa9UD87jA`iP1Le5+>|Mba|n%cc6qJUmHHy6Pd-Tk`CrMNF62 z?6`c^;hes=GoqaSDJ%1zgPWNJXIf;|Eu5hnXZ&mzOnpT^JA|$bfuMNjAG8J z&h+qR9?`<9-hDoY=x|A@;t~yTUTielJfKxq&^<9FUITyeBZl@vJP1j@c=mu4kDOMO z&oc4y**-qUhv=h^iB|3Lxr?84f72tC=Qa3@HCG81X4jW>Cyrp7VAbK{uJ_0jQZC+7mKJSh%)3pH{2um~pE<-v z{1hxcB%1bkGee>)NIeqIn4Mll^pXHcr=R31*b_5QnS1rjf!D>ynq{teW9TW;--t>= ze+j<|`+hY^WO4N2lI({bu{i9BWn|Xf5AkB+;i;S-65&jkp;Cmmwq5l5nOjgBV;2&! z^_VwsBX&rHcj)5G-P{0tWU-E321F$_N7%!1DX*O!i}lJAY;vqQENW-PX)Z{XMrU@3t1>_#zg+Go+uAX?nNZOf+Ko?tu9Lbj7|CPK{8~<1sY_{ z%9?+-=2MP~(h8&Cc(@BHMfnnm;@?=#H$ALEXB|4ffi`!2C@Ca`A^uKryOO)Rp-%ab zix6Ixh+E9?rSnK(?-&Z91WK82kX4CigMUHf{Wt!TX^y(yr_Dv#@7TF-baSIuy~RNO zBL40?DdnI6FE=E@PHmUM^Iacqf=s*wf5oI<%~#WHcyuYefR*ZO?OWm#$n=&Itjzd0 zUcgr@%Q{v!_p!4B#l~Mi5&m9eJ})zZ{@3wxNJMzZtQVBY-(%jX$PBM6;O^E{_pGlgT)>{LBEN6HT0^eJ~o z_vWWp=m<&^b+^zq`{*NSgDRt%4vk(qW`FtBNLS%#IEsyOo!i)#r_YbcNB^hKYyD4w zp03t@g3gv5WwwOIbR8NuG*W0>c!b`Qg`hZ`#vR!*vS{v*?lU*$YmCUE)vOEEt&hc&HP-9USST-{$hUb4XFfy8jiK@t^wGE| zyGr(xMnO@nZymDrtQ{6lwrJ;%{S=MdHY(cg9@!H5(_ME0N*2$wRbv*V)wk?Xvq}$7 zuWZ!RJ+loI*-ghx*|UmEYjl)7A$&Ay3MIR*u~pZylWb(X?$DDBFMCNghe{Sb`ql`Y z(quFn-5SwllWEj{?Ak9B#4(MEvZ$0Iwb=}j^vYUl-;x1wO(}FombcE&kWn4FvNS?b z6sTT}(YkMGb>DE+eNkbwiK6t(q{Fyo_O?cRk5TB`kdG_Xjd~G=xJk( zG}oVaUB8r@uYzTH)uxuX*cI|m&IvL9pV z$oeUOC3E}G4(hpn=CchY631zPdz;vQysXla+Sb%Z12bw|_3|!$U))TR$qH)}?)Ks3 zWL3cKg7;hb+-Jy96T}1BG|t?2ys55>aQgxFXdk^@qODUTtFW$su+zw3i5|m4(OiMX zf-WfUk~;6~yCx-Kg)kmrVe$;TL?Nj)YV?r5at8juizl>AKFkOWuhoBtT#b3!0ip65 z+nQB#W6(_2W$GW%o;-bELiyr&g}BZ@T%+9;q-mT{#6QoIsy*t>BYFMIKDPXrb}Noq$=-Bzgqn58mYFZ;uO;EKy!Xhb8Gv!7PcN!4 z3bfEL3AHd|vOc0;YPFfh(Z`z`P9JH;fR=mev1QQslzu*gjslq3x^EBpybn@}1<%%3 z(5ZW9POa;_i9}#?^JI_=*NRJM?xM(OBCktUv*>~A^cds_G>VKpi_M7K*Qm1(of7~N@2+k?~2#=A19=0a- z>+{jPht1ei>{_;}n+1THZ(9G+`ZqrgFA#^m$|p$Pt>IT`{;rW7y~f^uNu2mC&?xeG zv%B41-`k9{TJaUXbMjm$SGiZg<=vnl-fgKGt2T=Crz9(Bd!mjMe6Tk}Q z={wH4ezTGjwLUWo0g>rz^sFN57U|JT>|!F(aH({lfp2`u_W($NRQ3(;%n{&w^_L{FGKhsqy>N32B3>{m%bt^sL6Z zO2$;?Iq;}TQ1EVVsnv!4*FE`CT8njI%7{7Dx==ieqL0p&%pYr{{>WprWi`tb-=cRy z&00-qGa;G_dchrh7x?(hq44Y0Z$I)_B_<5#B0s;tnhPA#nK@`o0Kq>>%dU%T5xTu)~m;R3WE6Y|}V zB&d2hVwTGPQ|o_$#UG11r$`*c$E`mwQ}V^=Rl;f{T6htxou39zNPHZmZ;roC&Y3^L8?Sxt_#_Ww~i%o{LVomdN%uqntOZ>-wZT-*I zZ$>ZZ6Mx6?*TrpLE2`pXE)*z-m4VDu?k7JDFOOdNPy8=O&r4af04q_YrJ_t{waXX{ z_W2OMvE@+{ZLBYgP%&iou)Q9!UMhMSFM4Pt(Ku2MfhVGt4{Mp=$*)`g`QpJKSlQU;-$~Jx9HV4J7lhAh#XvHw4Y^$jIiL3#~EG@cLVfm z^n%r;%xVqu#horxsMWobfSFTT?`8}mG?mUstDgRh-udg+fA~Mp2mTK<#4o4|35=c- zohc-E>9qR|wDpzbjo6D=3mMJTN@Vl=41d+n6n&=y7Ecsocq@5pc#gWzNAc3(bFsU{ z2<~)=!$R}Yk_SZ@q@!OzBl;%NTcIq9`L*Sm9)rC5^Mc??N{}r>?8i(FvlstDA zOF|xY$XWsV${ti`6~TGcOspVF&)Dh`O=x5zY^u+&W#EomFIU^r`s?^a)>s2;wT2aX zgsoX;EQrMw=?&2#4Wb?-Jcu5NYmru~e#OY~dZ>9>X6(cBAipz3N2}#<+0A3}1l=&* zni9*H`qNyKk))2b&Kylkp6R%09MYG9VsNsK(#v7{s`BT0+Ck)07SC^$#Vr_LC84-0RC z4HlnpeH<^7bz5yDl0%!}#MI8950s!H-0f=QV)PDoYtU3A?o;%qKK6I!n%BU#ZDcFh zgo@F0R`q288?=wrRbTd4!-*UnH<9pwqbK>1wYTIsX93j2%UPzdVl@vjJjMO1*oTK$ ztGjq3MYt}TrJU)by{0*}zLB#tD9*|9%JbXE*0935oaeF9WyO!lSM(M6tq`Y4*0->& z+ZopLu9J1J)H)69ORV}%QrTdWCWBRBEf0VeB)iyXML#&HX0Ww#(W1CLLvM9fTA{XEWv=0;2Pi)!f6g$PsBIB0A0%RwWQnTPvK;GV>&#P1XnAI6GeB zS5jM$l&D>vmtqoHSv3JQ;ff_nd2Lp4l}O#rltG}3e|~3E$~M=t%wSc=fBhJ_a&rs# zjb&D1byj`KYiBxmxRaG;2_~!VRuA+?uZFwWUpv9cbgOqV%g&RLM<2$Q8DVyku6z_qDgi^*U>gl`q?5LzK3Vjh8GR$YG*Ys7m%mO-jLc(v>5WK zZO4n+7T4P``H52JCbW36noz5v`-k2XnVGGbn^!5=8v${5NlWi|>i15%zLPOl>~)fS zuCQj!Os24oGI^+@PiNcf8&EM`D+Zz(#OX))f-?|cogHgkqD7ax75TggQpSqB=v4?3 zMUd!15!B!_5H$t6F}W(N#2afh9(c5olQt5P2h#)myAiRS0-iw$zD;uhy9}f?16KM4 z)Ez)&9b^=B?2{`XnjjtzXxRYnSBMtR@lZ7@bC;I)kaCT&%o1dpNMHQ~PMt{Rn%s@? zX@g7)DeVz;z$bvEmY>9cLRKH zct_4RuaT=nd$l^^h>}7+M??l5G^-@#x<)xy;f`iUZ5@KeO*Lz(=%ym+`dD;T-;W$!!b}lp zMPhX)jb~c?k_`M=)L7A6i|5*zBFGj;*0-$@7Lqm>Yfn_8s7cp+*gj>8SBsXEM$u-m zTjfw}RB>3vP1A2tY;j?`qc&NL*jgky^~6fta};T&RUc8hPYpWP6Rl)En?Y9V^hqgD z87f7Gy}3l?iY}u^5o6J1zltD>F8zuowZd|rovUV}Na$##fzf2q^Q&B0L|##Iqs=1s zqF&dU#jyJpP2YF48B(sg(^|E@MpWyGQre+bSh*_0c%_;|lhvI*)ib-VoK~mdCG^hl zQHh4&KA5Y<6dzmje}<1_UHwY^%Vb%$&YZYFp7BI`+obz$c!O2PtFGB|M_kRL2etUz zpl^Eg@f(~gvS+KGD$JoM7N#Rl6qPyg?0s|tx?(k;rzgY^wM#?0R0}I~ra!#U&kV7w z+gOObV|JlqYxU9TmF(lq7)zwc_}YOcv@IHhKEIBa?B2!hklrY)s_WpSw`BCm9eNew z2I#A7LNu>;avcjGKA9v$_HsR}WZ4@1Og=kAHz>O4XM*L&UWd_0y1b2bRNR{SW5x(Z z1oRlXD|;Q=fbj+Es7B0cmMKy~0}FGEPOjvF%x738*il$nr5r0TWNAYEG*`*Bi2y3P zU1nsA*&|gV8aQH%DpPwYr-&nQ8=_3aU)KZti=$1DR99L%r}#bN99*el@AcQFPv*%a z8G;0sAvX2Ew42P)lAtlIi)SBut_1B54*R>z&M6&?0hBXEyl-XnNUOPL>=4sJ& zw6}Ep3`?el4cnj%1KAN+g^I|Qu;oj+D03eU5Ho}BCbc)AdqP~kcM|i#CM5#d!%hyc zQhUTK;ze*Whl2$;7Sp!Ds&_oXGw(28+#sri#jaSyg$ig*v7(1NLwx!~e&1#M&2vL+ z=I*v4^wV4slqXP9#=|(EBsht05Sz75J(P^a-gBOwyorFh-B>$r-9Do_@yeLJhWIC1 zl}c2sx0vR_i_WtvgqPqovRL!O^VI%UQs7{%_7LBuh&NG0B5PZu$;oC2#B;3pDmW6C zTm>LGNy_Werh^4vUkZo1dF&PE9>1#RlJ-&K31QoZ$MPIx{}5yZkSP* zug6ixTZ!a{Yu)s-__(JC7F5*b2@+8aPHwVS!T%OtJf0+Ym{*9uxYgl`n~q+OGthDc zpOig|;!JHzv!k=@6lupsKr%}Fwm|@UeY=7@$4CNbBZ-4mAyYw$=!0NVPdzO2KHbh+ z{5)IXEMHvSF;T}Jdpe1h{5E=>u&+1y$q>IfBo+fTFU#v>4=H%cTUbwh=*`2&C*V_uMrb)zqNi}+dd+;oxEGzYG1MoQF|bf?rH8G{znt7*hEY9(Q$B|$iYaSuv={aWiLlaaJ-1|Hb;s$ ziYoc-ifR$>?HwmSV=wYAYTJdC`cUsAUer&*JQ2#=C z+2Ki~wHd??h`|4I>o?&p5!Sy+iskj_l{}XMQczzeZxQz`CB^Vu84Wn2PRhVf3@?G( zr4f5->L(L?BW&QMav|sb1bsY(>hMC>AD~s5j2h_cq`4}gudA!*wdzN@(Sn>)Lcs39 z5wRU;RBVz+X!P9wq4n>re+^EO_mBSi=%9%AF?!ts^I5jA3bmV;oxI6jaTC3+;@iZ? z9;hf1{YGskrl$mO7#W9GL`8``%(5}suDFft<%>S&i|XnI{S95a?5-zBTBJRoFYCv& z6h9t>&`S}LD_(M?Xq?-HkA(m0=y~!kF}Pob`5xh|?BZi1-}qlS`7S5#wKL%OV&sK-gMwQR1vfuP*cl%^6P8_~ zLtUrA^?dHZ7r1g0T8Yh|K^NF0M7cpVJdc!-Lfk|uS5tJ^HAdkHvg&A|S4pQqA3Adc zFCAUzM9O{v4adaK<~8OUkZ@`8_o3`3!}HOC8H;BFBngUCvJj2vaqYUgTOlVn7{!(L-OS9g1!sJ2eh&&)D-sf_(_ln7O9>$nz* zYsFgG=OV!);%brg2E`wlX@aYN9LHWs-NwrBWK*+8 zW2JHry&CH*!%N}0TbmKHe9?>e1Z$oa^sz?UthgBxPi1^q1@Ln8xe6y*uQ++Lq88y{P%gJKXuX(CcnD zHr18<{W+e~AnB|gA!9?$nC~)LXiese=yjRMQVk2St2i+B*%X~PNx+10sJA4V;m?pf zka06HBdpVuK2k`-iLWV!qLDW)V5NRnULon)QN@h$GzZO3*?ub=Dce=~JYTubBQ? zSKnZ~kI?BO&E|k1bV~jMBUPN?gqYk84gHXVVYPfNqwmI&BovbwaNADy6 zzex7Ao9`J>1Bd49dGk!2x1xa5dtmium@i^8OX8iD(`*YkK%wT6a`RP>o)sJyR&ApA zSo(OGdB&y*>rX1o=LBf5-m;<*>|)4l%mn)>M&H$0p#bI3z#(0H(sS#L;klcu4!{nY zHIixm#~qP+3;Rk(FXpm<B9C28NJ4tJf3@X)m;}sVutUE zy}v%fwwx1bXs^roX zc9&PP^(S6Fi(Qq2M(8WjyYh@G&Wd7u?cwc3;;3wr(?c{yU>F=znv(+%fYRPFz)zn; zZ3PQ|#(0F}%LalnLr)YAS)&uOp1O!_Im`60)`&x|3h0>_`g%fetjS6I`B6Y{`4sFKVXmQdI`C!G=yGv*A*3G{@y->iAgU{V(L#6vm34=sXvBJfKULP1H8YCuOtBP%qG%i= zA)0+DgJT^Ud#59==!8;-Vf_@tI@EQLy(at}ujf!Yk-xN>uRN^uuCqFZnv*m-waXbQ zLx<&byM|TV%`<&T(t`s1RCvbVSzh0!=ZwL#OAqgg>%;;Y*)q{NBJYmQ`d{c2tqxK3Yp0(k z3068YI9JeStnT56p;o)LnA0N0aE+)`o|0=@HO*?X1_4~rJseuEb}od{E}U09t+<&e z(uHLApphD!RB=V`oFvTW5vgou6s_p058)N}v-zxM*~aUp%Lz@VW3bUFzSClOqP~)> z*-3T0AsuONWTywV z@n3K?YCE7ZTt6XBD!FfCwf6a*u^Q$>?;hH}inIku3{TWj9Z>0XSq~qj30F!)4rBPz zP^^QNb~&guH_n!jp$W4#9ae?wPc##Qq)p-=y3hm`3EpC{vO1$j8!c|!M3c~4 zIVK!)`bTxGK0GB3tzE-;T36(EwjQqAJWEqIp}fpd9N=5CMHZ+i^8BeREAHbhOqHp$=l@fH@4$Cq1>eF{)qS4%> z4WhdW%{t~#DcbdIcdDcys!z^j9fHF>WJ@zt+Ha@0LQ1o!tGdIm?}M*stw5^~F1a4i zpckkI%%HjAD2}jET41ot%-#{081Ki_XLK6U!rCbP&-f0UEHwF+ObF+Rqgyl&p}2%S zq@4o$^s|;jSXdgJ5x;G+B*GIQKLNZ ziRqSXAw}V9tiO^bLp%5lD9bxc75gnyoBHuJc+<{QT(08wlwAa@8d&w5p3unIXN|-@ zcq}&Ubv>zLgZAW8I9=Uy7GQvdz?e(iBGP*<^d7X&S*f>$NA}mO>*XB}@)>J8yLi_l zy}R)H_;`4U_{z`m*jT+AUSxe_X3r^mfAU{HOKf zqfIGWBbtxKMswf`yc+4ff2^s+!gF*)&z-GDWPm(h5Ucn-tJZ$oTi{_|Wu5Ea9+i@} z83R~{O1_vHziY0NcZkaVHJ_gkFO>B*${Doi{fgfX*U*Z;nfz>cvAPFUO*> zDH1VG-WZ-AGZz(Uo!Ww5St42|hP@ftfv*FViky7o$I!!@JQbT}z5mZxSNM0V=?jSP z@CG-^{*pR>m?TMo6?VTm`WxaaZ$=C58#UBC&9VMcZ_Wskx8kLu9pL?S^laZtcz>kx zGv7SgP#SOhh+f3J%LB>WDrG%lWl*n`Swzg?rPd}tBh?pp{D0C~Q}<4iE7bbmK#2%7 zy!?~U@p&s`d6m2kI$9-MO5PyfmmI3$IdPg@YW*e02Sm$QnMwnDmxasP?`UA!pz$krj$9we6|){RouA9(tGK{1RH_k+{> zfAonaG*~05qqZGr4ZiUBCVJUnEzEe0Wa$l^YU#I>@z1P{{Ws+LZ;t-&qyO{huew|Q zlh*ISXhzL5BKz+kUw;QpKM!}2J3aXZv|mBbo5Z4s`X}$iCp_WJr1E&9=N*qcqUeK= zw`C%yyg{&&6cu;Hy06*0N_m?lI4_6`vpQy^J`(%05%LArf8uQ_|8MI*z~XO@{s(oJ z^1RuS@}EFc96cLnj`rQ#NdG4J>5~nq|43OsFe8&eZm&@DFOK$ki`EP1{~S(0YxF9} zKojzn{A{}A^EN~Oi|9o;((;;4 zPmtCB##-<4Fz^3B?J>1HtDh8ikk?;=S2?-T*igrxd}6Nc%#bz2c-Fk5D0z$3N6&fk zRm7VQyE#^2A;nO(N0j1S`mpvaJdd0-*I5-iMXTnCav|5mkVixyf|H)2Hf~NR(tMTT zAhs5t_1}I>zyG_V{|jkBBF7b_42z|sa?EGkNAG{e3F1K>vf0c=^Lbpp7oBed+2w~1+XG-qzDXmBWBgg zE9OSDS{npMM7^L_RO(Hm%*^xFA{FJi3r5F4VoRl_0_DLMEC;Ny!1d9!& zv5O);DY`eDhR!n$FZh{=NJ@leWH*%?SxVUaEoRb??H`I;#GrnfyxsD^{%hJXuWY*T z7JuPfDT{tqjOaVPf3v~-O#w_J%^eY~tK*F@KC&j;{|+2~+xq=HaeXp83Z{O7?e2gW4hmWiW$C5&1;c|Gs zx*qA>Q}lu+tG^n#qTkL|S74?c2kb2AV6W8^Xj0^hI8{BFVVl&K@Et0lQzQ5v{69}~ z^wPhfkG>roL;KTcF(uLxUQBq8>(K|vd#tTy4^Z^7&T6nB-UqTs?4h{L8yT<%>byP4 z&&;y>o+9X4!}DN6v_alz($UV9z2T+WPVa=;zK7Oh)@d^)IF2u&;#u^3^s2dH72K*P zerx6%?7GKU+VyO{{|D;jHiL_~D-iamD3=a9Yk(HF(!GVcZ84$Ij@4`!>k{iXw@@{?{ z`CIhxt$XsUTy%wN(&-J?eO6}#+DC-`iI+`kiWoIpe~ey)7eV$Q`AK-8#JmUXBL2tP zw~N?9KjZU8ZJQN-D@r`>Em^a}8iyh8n{YD^cy97Q>&tl(60_4A|H_oyJNeiv(yHN3 zmo>O^^2Yd>M0eMUkd3q2O<7m039GF~sq}wZ1SaT~U|C+3W!Jl?L60;&V#!r_1-@8E zb0XTH$Sx!J%N+RQO-xA@?Y4NA`5xYAJ0zMjVkVp#kLSeIr+Cten)EYzUq&5lf+geW zx`DiQxGt~ej#_jSGsehX62Q^;WU^w8EZfdZ*S#e)oWzvZBZkvk#;MOZdhg#(kzP-f zHq(dm&5S(dtM~!(YA0y=deT{SSv}drTN!hdGaaHxlT{O6QmraL_Z+&xjEGsRNQsMA z#>Ys9a7DU;q=`S#f!pkMXk~EBeH`uPUnuCamycE{^p>TD@AQ z>=uZaXC70U_PvIz)$23jR&r19%yd3R;%CIlSh+%J<;+J&3oC+I!Pd<5@sKNUE@Vw@ zf!V6hNE5Lx_#St({#q-6^-hE)7~zj$|9p&O1{t-ix-Ju+y-$j}8_``N+ImDepp;3V zmKk8m{FvxyKa18yLYmUWo>a0(4t8@u-UVn@Ib*JiPtT)tV)|Oo ztGH2~|B)eDXX`3h42Z^k1RZ)Gsv=#A8#HN)50!U7ZlC7~wr1b05stZx7 zRTVxG_i#1AcR0b!Eqde;2=YD{a6R;9YsUTzGUE+a#B0{qxiivC7x~}{=_Q%y&Wu)T zR~WAjK`@V9IU_}$d7VXoucKq#Yu{N$Z}EK;$;1?z$M@L!?q`w0$Cr z`cF0cq-#;5j|9Z%g9$xq0p&h@vJ3C&=+UwF8Koep^wh|utisF5 zs?J&^qLH!TV4{pZiB^xmQoAggYw0)5vOJ;%#L>X} zCi(ADy8eSv1If`UzmLG|4yEw2eYTIB>Dsi#F{R&(gXFKp`N_kHhwML+%_pWIjwpvlij@KGD zCe+#k4UGydbl4F6sr*&)7eJBuw^P1pzDXGj_d}_Uqoo0QZ~fG8p8o7WeuX*Nh??n(`8Q&l0>hS&sV2~ z^x|9{`7F?)&Z?9>qWujlkOC+ck+-fNyIn}g;4+`1-RMSf+^5d#v~WP*I)Ki?s=*3A zP)jIR^(|*vVWWPho&fJwGx(>GR4auvF z(d@)+wBwLIAPLesp)wLXT(`V7@>g;DYdY{y{rMAGd(D+B$sVl6pfCL?xzipv;zA&! z9#(+oUHZgrBw7E5jW=+BX+NXUi@D@XMKXpSd_oU<#JvycecDr^_aA9=?m%6ceqGJf z_&fwJ?fW@|b{kvnfQh=hh(MQmi z9rC*xI z?eJ8#)Dv1QS!!phJe$G)1liK4srMb#XthR;8P8pWq>VwnzKgYBMs*+zU7j$Sn(_L5gcGy==-F6svcu&qYvG zLU*VK$U@aF!ZA4tNc;erC24xQrq%=WK)HsN(mUI|+G7y#L9q^cb9gFzZ&7CvsVSom)F)+c9+9sAUplnD zlvV%I%J~p$lt>tIl&3V0QZ+hA>wUu2N64NuTLUf(k?;g5IfC{EHS%^ZS|a~kS3@M= zGbq0e|1{33@8q+^jmE?vBMU3az_rW-sjAUOWRJ>+)!0}C$p-D~XZVj7nSlN{hi|gW zH3G`h8lVU7JM?dYq-yLyT>u^WkDCu2^&L;rAZz`QG};Zh3pF>OM(+>QulA&V#&f09 zIG||IUF6h*3)0ehla_Y!KBRZd*7q63u5$f^o+cYw`vzM7%+?(ZQ* zdD4Wm{0?=7aP>p(^=QX+O1}nYWqXUBdwf2nWW9fP!IKGELUzm{w0}g3g_DN?bhK!v z^s#ib{#S?R^o2=@O41q>Y1&qn&!?o4-6JlDT6?aY zs@F-We)X~A)kh$3KuOvGD?3kbgVat@+l~8_Hhf4s^}c1@)85!!epR3L5$fwd>hzgniPh1}jCW(sxU9)1hJen|EFi%`}&O^}bD`-`Xeo z?9AGgw#lfpmZkJ7zpxM*`ZcuO4fmyT^r!p(f6wiSOYF5DYtr$dYHadvd*kusa$Ecr!M!x-4!ju$9QTu8Ha>`@kn>= zxmv4M>W(DKFczu@oQunr$MCaq4Nvi2eAjawdS<1IGsSZ9pPwCg|oFj)q_T%=}+-Of0ADtsgx?!Af}bXd2!k_ zl|3^oT-MXnXWA&mz@F|p{M6%2ds#h_Qc0H8X4>1NSQM#+`cq#JeJMTqm39%o)NY|* z$l5(g!J)fvSg9oCSKp9Kt2bFb}E2C32 zio$(j|u&E3B_=fQ}6${K{_2ex4tCAM5Fkmk0GNw#w9CX)=8?ZMXQiV59Je2Qw<_r z@yOlL6KN)C8nacz@dxh8w2$c`kMv`VQnYqx07pCnb(8WJj5<%oB}%D5yQcFl1rrAj=Kma>m{t3z0) zquJHdQgmNj6m8ZT`&RjevFSw7CYnqOiVCGO+1I)1yLw8oQb}_3ZL*e1nevGmwLo>M zeZo_ctX!gBxVwV5GL8SxaYV@2wRm8-DxLDC@}M(uEk)0stBzEztwv#Nql$4;C~FLo zwIlCA5@Knr&q`{<1?eAAq35ba`6PKpvGK%ssG5b3TB_EoAL*leDOc>dG_(4i>n zm1N(dPlqU1d-OzHO=Z~5#4(jFDwXpZIYgWCnI!B{v(8Oc^sU3>R`=Cv`%?}2vzmVV z?2Omqn5B{&n07S&>dh~rT;KK)3ZlXOM7v5ho}0WF)rP-H(VytiQ$y0E%4kwv`zW7L zYuuLPrD?<$9maXJ!nkh|V5nNp)id>~Jtr-a4@+Y*meM0yM3+f~&Q)@%EA>Q_8Y-g6 z_@Y*y@k+E=Z&Es=JjF`C>7SjaoISg*+SF^+YNJNix?}gGW!0Mu+iUpEnw?aPKyr7+ zGvyL8MuW-{I>wij+5_lO9o8b%YzSC=>X{GuJaRQFP1-Y6rqPy`u9~cLwccbQy|?dL zt(sE_(V3*v{BogZxrCchEIjlv$~bX+jOm!WMxZd zsU4>ORJw6eH!@pCn1G(Vvz56xk8=yF5|P z5w3>2m22PLX^pDS_?c>O<&jLNz8}-AT1<{p{lX2>2v^}QRD_H9EM{Mrlq#QLZzWjC zR;%G|QehbEyV^ywNsMSorAG89cY4Qiq%F{|wcNhX%1e3evh$VpA&NK-4H(uqoIrRX>5P$`C?q(QA!NmjF!sH;>jki@mzBxhfj zr!-j}tI@uVnzT%ntUD%k#=8Tq4o}NdT}HKW&TzMpR3ovC9Y&YR5zW?CaZ7qIjYvs9 zK5`OjzospX&#K>QNn2?2pS9U&mrS3vEj^chNwtgasaEv`>m7P#Jw!Q85{zTUBi%ha zOQp{4rBoP7seUwBQ}5Qd&58N`2cQ zp6JRX#h#{Rx@>$|dvztWtR*J<(ut-I)P5b(6sAQDAIqh4lSC_9RGPG@jdrM&`+P*H z(VDg{ty6kYxX8bf-ETgdu5_kv`DwyTxC%LwK$Vu(YxL;*Ow)_*lsd!r$9yvhN!uye z6W4WZvS2z=@@RL>uGU@i%ycbV+-!YW*d{AhN?N-05cL*uWZ%&%nnj7Bt`ZGnU5ifP zW}cEzIRF8ZB(+=5gu)@;Y2Pv~>zVHCQp=(H74MZ(^_tc*UWgK_t~9qvS&Fi# z`TyFwck4KgAPU1U83s(4Fd2rzfx#eT$dE}>A<$$9G!c&Gn;-Y|g3|QCJiFevs(K&f zw#^=zW~cj|buYj79{lp>tnZ_T4YFosaTVKi^duWPb{&3(Z8PW9ya<`S>Z6m5G+K2w z$^B z-=vV*3^PL$KCVa+`E%c$&{`F=PdBsrGlP7%b_caVx{XCWXRF-hXHT+zNAp8Uvr)~@ zSp^A`%7!puHYt13{cIPxqFD@+D7rKWffwDY3jbGAtpQXKpuR# zG!wxhmtW9qoxn@B?4q|h>^VrmPgLBSY#iElbSJO#)Xuw8yy7{Fj~{5?c)x9Bucz5T zr*tH#h~WNwU*#G4KixXAlf^?S9xvBlmR*PI+%OAjT-)g8dXmTr3Dv1}e)r5u1J*rX zlvT#`bXw}dxKVCuuk-&-$ph~ASE9Zqq?04McpUEG|Td#=jFb}?a0p85FP*Qi!b!^va2*P zt1O9b64S0Z$4AbNABuC9lod3=C%Z=N+LJIhe=jqxw#<~?$AEs%qk$1L2<~#EgV+2tromHr>pj^b@N_6w1Mq% zh{W)6yhG!3$@c5wzAl34KPyPK^*(j)Rkuo4eZ#o92Kv(@!^cg0@6v=v%|Ttvx{ng~ zR$Nt%;h-anSi7|%`?Gqs^O`)~#!lY!?tZ^O?fVstJ^}Cx-T9gf(a6iZi^4ENRDBNE zDzGk08=U*(KoohC4|pXDrpe=xpV-=GkG}b8{JeR;f6(I59RI?{FUW70PmerU#9Ep7 zT(e)YAJ6fnHNS4uHlzhgw2F&C1`!?Aq zLwh*?zqycYb>}-oZ`b>H{_K6{MTGl>S+6X4PPt$4J zQ+`^8;v2U*jmi=_#8&QzN0Hf@p(C%0171l%x6CT*hK}#o_n!W~zO4iwp%Zs=p~0uy zkmU)?z?Zx;=u_4XYv!FX&B9oSr0=A-AN>&Db-WkV{K8A|abGX@8c@`XvaHN5);u=E zv<4`4BxOI(tDRK?Sy&!ER)x^GsEZh`&?>s+tKLvATrHy^T$l4duI&49`R(bVq#M-Y zC>}*II#k`2*~{r)myf<&6ltkOSP2#bGUUS<>3cJ}cPwP1S!G>l$m_??&Klv7&sob} z7FRXXq1V}Xmg%h|>_3kvA2VI1jZ;y=WrG##N$2UZUHuj3Uf(Yh!}PD)j|?ui=+PEV z{93eZe!KD+hayb>;z`Epu#EexkvqwgZ!q2a8@!*5JiFSxF85enL%wW+g~lrD-X9Qi z-x-vN^3lKa@^3%=PIdNGNwZ5G2nFS;oLaV4?W^*iwTPzLy?8I`_!jYSQY>XS39L$c z-)#K(;R70-nB(wRpLi<0>KtL+K7O9%kM*u*tSU@H*@31%6#}YPZ|eiq$>JamxW-Wwzg1 zVn?#^_5W@87m|iw9s*HbJItBCL^LcN2NDrMB;AkTZUr?jEZ^8RR5x816# z9s$MmxN>E=kZ0I0+u5}4I}eVYr1x7UPRpcd9{b4jE+e;6tAm|dy;<|!tUDEy7nkGf z2hFMzR-fw$t;*V$H!3Y(7m@YRq|)W|7(B_UvSsZmoFlKH%Yq_?U-s=;{7x6xwaC^f zs~hy)SXYy)Tjg6%l%-~MRrallgs#=7=><>AwBL_ISKiO7Ec(1<|0?x~@747>opy6j#f$)32Tn{#}kUdD7h8Cpg{)HKTH^%v6e?zDVFefe(>uN}9q zE)0?5_Sj#K2dy2%VO2cO4O@%h=HncKAL|wQ)6LV?Pob`E7dA#Yq|`G`|13XWp8f^( C_j8c| literal 0 HcmV?d00001 diff --git a/libs/libcodec2/raw/cross_melp2400.raw b/libs/libcodec2/raw/cross_melp2400.raw new file mode 100644 index 0000000000000000000000000000000000000000..439012cac70fc33d4c7b5051d3d70c03f6966227 GIT binary patch literal 48000 zcmb5WWq2I9(l9DD413HJJM1tsGcz-DvYTuiX5P?-X~WFSj2m>A6NkZ$W2WKmmh@G- z&s=BEdH>w$XQoN2DwRr7kp`jvzaPpdLrDFqAIeD1mG`VY(Mm9e5rNX)8d^!Mmi8b-iV06{%es2X+Z zo%URP#v=~#IXDEk(%@luqJx7+B4Ckn%5d=34bWu9!BYyqGLv#Bmf%d82VfDnQh!w% zRZ7%59x$tL)p|TUSK$c%xl-@cX9%9?kuir#l~R>L^|=I4)wdkn%K-0xTc>eNZLJI? zRXiFGHB1z+>vEtHph|_S-itZq)L*rRO0QO1rBTI(kb19iRDGu6&`PPT(P+>pSKFd~ zynUj!CbwaR+nmmaM>-WHIY zmJoRF#i+JQZI8+W?W0MG$|c5B{-}Ka_a|50wAOgJq{*5_hx+E%ni?Opn!iHxK38k0 z{8rCeyR|2pM5{G&`Kw8WSCVp}dB>mHPZ|_$e5o+BkNRBYq?f-cOsx$X6z_8{Bz26a z9Pl106>1r^RxVy|UGEdEwkE5&BT$nsZy6P{${)4gbLq*&tBx17ggP?SQr>H?Oy`ad ztqoqdx#wI8wX6TV*IKUiz`yHhe9+`y`&IFI$EjLYqb#?Umm_K`)vro*Za-@MpmNb$ zQ*D=*a#bqSkH!s+2O5vPeWUUGS8V^j_O?(huW?+XT9X5BAA3uA`K|F@>sysBP1?Qp zUON68xB6V8-3!Ni)>^Ir1sZi)Yt{Z$uhfq=BD{ARJsLD`S&b99+)z2^EvG@q0ra0A zwYC4-i(dHZyrN3JcQmNjhHrc8UH{%Wnv zg`Z203ORTDXj0~-=GRtwA*;{4{MSlr{hN!++v8eGwXvbj$?3=HnHc4<noLF zO^?WxBaJ$hQ{L8i`KYZTS_`!nX)Vww(O~9s$P4HHK5Ni(=~1t|)N3^V`jGL1g1uF4TFH@w{PLd`w@3g0`s|N1ufT7~`VotJ(UwvZ#Enry2O zHQsn-U9F|z(VnZlpv|XVj4JoN&^5X>uK$Wpd+#l!K~#UWGG5%j)==O6@9L)3@ILqQ z)O*f_l}oQCFJ5kHGNH=Y|9-r*?LDiIytRJiygJ8w@oF=GHs5%q#w({9oL}izpLlU=8jlJ`d+NQ?YN^tq z%~xIuv~vHJef60J-&;#N=hn%c(KPs8dUIiWYkFI#jvX(QUuD)?F1H2VCn^PA>b8e(sa|{e zqGFJMD(_sSaYNGN{q zSAMEBwH58x5w6x$?HR3=8V)7L{!*Xk&eh&oSmUoYzx}(F+Q`(TLZd^YRppSz+5c|g ze~&LsM!c}SZTRoACKp~lX!4@Trnk2>PXBj3FHQf~^Iyl?|MlMc?B9KmJF93TP^C%h z7Y&!nGtGMOa?cAV_v{^a-k!=GWoqB%mixc2RJyfKZVUch(#tLNsfNSLF^yJ@UhR!W zulKoDBlj+stG~khZ)_So71yu$w4TYurPb2lcrj=-)UoBo{BPLWQ!i9+Iqy^Ltc_Bw zHQHRENuF9utD()rUdXvz%jKl^op#o!%GCihYQ67rd8t0p+M~+vub*6uTKhF#sMM&n z|CciwMs2KkYiP5T0D8D~rOh{LN$rU$E1KU$#q7newMm=jz0bUqX?4BhUgeU;DX+YG ztu&28YAua}UYXP=^Fs5sJ(u?XexlaSE$zKh%X>d6Cw`q*b1CwcQ0E@?tIehW5X!6G z1$91C+o!eETUxzWWy#ye-sfIUXme+-f63b-^_)wWcBRdFnq=m}QSa4usooH6h0!#8 zjgxA7)b|<$FC4Emkqbq;Qs1kT{ky#S&f99ui>2Lb*IG-oUyW)Fiv}?lmKTavMx$AM z=A92T8PsH4l_!;-ng-^Z*G*c0}Fr2qyA=*WPt%DEKwKIe#K&)5xim0e^P*ip8gtzoO#GB%C% zV(nQE7R_d|DQpE`_y~Oz0(4bF^-%{j5DiA%P&3pRHAT%)EmRra91>m$DZ)o#x6n|y&YSqUTo>F0b!VOF5VBNxDwmZ{ zOB19%QnYkb66Hm5Vdb{+J0WBimFPJ30D4C4X9M!Emuwa5$0{)ci>Ei~NqU^#rHRx- zOS9o@5BtILqE2WU+KZl{kLW#mfo`LVXbT#R>Oy-c@b3vb59L;|zk$!Y*+$^qcDTO? z$2H*j8&(8;h*C z9-fZR;dGpbYr-w&zH;69tGq98;U6Jf>@JQM+lv-)rw}ZR=XY~4_%(8{09KPuA?KAM z%5k|ba3e?#mutz><%e>FGG4i>y1ssG=yX$r|#M6r?lgGm3!fKiFRO73fN2 zHjr*3`oW&Fdmz>Su)`qL2jKe!MqPf?67@!ZqgTj`8{rA~8rB0}4{!neAN*^+x)3eg z7qSFVv?xYWt3c;_-oiKImSGw7LlfB^8Vgi8 zl{U&t`8RpEJV5>-J(c362)G_CFO#>(f-+ATqV!Z!lo;}!6r~mEI69Q=V@1$hR3FA# zAXkn1hFf#5upQsR)v*mm^%ry;T|#=Cf_CCaZYJl$NAmS}7oRN*78Arf;tKI^v5t6L z_{sb72XTEEg;Q8JHlDsDHA#I%uk4V!$g(s>svxcNEcWd5xIH_i5AqEqf@~(G=mlCG zB;LVJqmKACdd*%^ANoX*fliJ}tS6hq8l%>nuiz2lg`z@JemNh;7X-?>;3PDk8^#sl z>j?|Q0{V-(Mfyd$+xpIiM*3SiEUe+Bhuxjs$6U|d zd78JN;%C8_Z-1qHy zGyh0koJ>=3*5&LBTMcK5yRUQ&=BR1XTP2*yq$R!1=CK~Q2db$AE2T&PeXP_Y4dgib z6R%@tG?wn3LJa=j9EGtXJ?`&{kLd%a#o-v!b$}d$5wYvw8A}U-k_Rcz(Va#~>{poA^b%9e6&KuJ7R!gs-IlkR- zO-GC~N~t2fvz>Na<*eom(_m*8JCn{a?25>^FAuQX3u_Wo(Hb4}Fz=y4yZm0ELZ%Vs zi@FSt(cVgWsy9?FSoT(dfErnq+m(9Yo0wMpZH4%5|LFJKygc-QC!s_3DLTSXsm%Cd z=k*_Gi0xUH^5f699bUak^I`ePZ93XmJ)n&LQ{kHQjy(_x(!Tarj;W}#ZU&p|zMZz* zzS%X&_B^Y(XOLgRkn!P7Lb>qlu(m-Pg0|^ns8b4uUNOhDJ7cRc1%fM_1P91`R1ZcR>s%^ za^z z^t~C>z_gGg8aVNiSV?$}W7wa@Zw-2u{420v?Qd01<=?HJp1tGS?>2TNbLXfR?_$Ld z!@dUK!RB6N9t3Z7`CCWn&!-QI?fR8`UzWWreap|qq*`D#!%69P{d@llKKJP~c`0u& z-j=&(o^)cyqu=|9)(XeO7$wnrDaXH}1q!bU(C4GvqicuxolrEuGuYeEw`SI6So`EO<%0DLpuf;{o^9`2KMvS`&~BQ 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 literal 0 HcmV?d00001 diff --git a/libs/libcodec2/raw/forig_ambe2000.raw b/libs/libcodec2/raw/forig_ambe2000.raw new file mode 100644 index 0000000000000000000000000000000000000000..911435792a536a11dd66a208219a30aff8a53761 GIT binary patch literal 32000 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�qlgI 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

I$tCbbd<#fmCzAcp1o(;? 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 literal 0 HcmV?d00001 diff --git a/libs/libcodec2/raw/hts1a_ambe2000.raw b/libs/libcodec2/raw/hts1a_ambe2000.raw new file mode 100644 index 0000000000000000000000000000000000000000..ab72ba2f24c0744be9da59521bb116da687ade10 GIT binary patch literal 48000 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�JRTnA`Bn|L$C!l! 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 QM}0wha--MCQZ!Zm4<#c(J^%m! literal 0 HcmV?d00001 diff --git a/libs/libcodec2/raw/hts1a_melp.raw b/libs/libcodec2/raw/hts1a_melp.raw new file mode 100644 index 0000000000000000000000000000000000000000..a4040d2978388c0b14b7dd2d187356ef85e1e378 GIT binary patch literal 47880 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 literal 0 HcmV?d00001 diff --git a/libs/libcodec2/raw/hts2a_ambe2000.raw b/libs/libcodec2/raw/hts2a_ambe2000.raw new file mode 100644 index 0000000000000000000000000000000000000000..7225f60a964f04e73ac381e22b343e51987f86ae GIT binary patch literal 48000 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 CQrX7< literal 0 HcmV?d00001 diff --git a/libs/libcodec2/raw/hts2a_melp.raw b/libs/libcodec2/raw/hts2a_melp.raw new file mode 100644 index 0000000000000000000000000000000000000000..5138e494a2644392e4fb5967276de96ede8377b1 GIT binary patch literal 47880 zcmY&=1$0zN({}f@aY;f#AV46vv$)IR?(Xi+;;_JCi!JW9xVtX0xVu{jBoI$VGJ2)^ ztIoXppYvzV*qz&5(pA;fPge&ag(5^KM(htGN=3vW9-bHpaD_t}<&hN`;VB_~?o}SH zVdSUmA;W`Eg=)}?3ZFE1V(62DK2=KLo0@w~fp-G;z$N%i015*1$LBtU+|MRtLuUAH zgl_`S72w_=^z4P#0K6;kszER8Q>bSO{UP9m{V^Hj+*fvuePR*EX8D%l|9{3SPAjBP`#kgbr zv3_YT9T{W`Nx**pPZBmBOka$DMvL{2fdcDS2M>L&6d?&i9Q{Xw^}t4+wGL5YuW~M} z&^R%=?AOpA>z~;c8CxVV)Awd5Eu2A0aDXzq2Q^av7+Gw97$zCJF16 z@%x`eFnO4du!j{{K%S5^G?!B!yfV$O5f51o|+%P-%&&ER|%jku?KGY)A zo@vVfRLnpvWY3{74}e!Pj+y>Ky8llzOedjx7^Oh27DM_B@xex%*)P-1f0RNpGKmZ@ zM$8hJ|A)MiQDOWt%VKhcMmaPJtcQ>enRFou*@!VcYPnCQOI>bnA-|zi$ob?7~+hLYskJ?FA6+;x%V=? zGaAgVLeYoG&mtV77m7Q~vYAgX-WX@h|Jc~F$ino+B1-5Piai=o_U87_=&+ttXdj}_ zJ~NI&T(Oa3R>OMc|KDf!om~xiB-0<0D#R(%I*WQtdS>ZtgqQ}{STjEVi(V|kkX#Kg z3l9P}Y@FB~GRy)Yt+HrBDU(|V^g|M`K0{HGT@Tp;vn9p>HX%P^Ekkn_i&i0DC(vg|)2t_E^&y!hXv3&6 z`v}b@%r9B*OmfCE^I0~!p$NpZ%Jj@M%XAis{!B79%075yvslRc7+0Yf8`1)F3xA>b z!#**7nT@laLve#$W!L}z@1bv@J3?`jS%x>)Izt>XFa57gXyy%RKNLF{AFNMy4|`=A zVV{_e1@KDdlLi<)HWx6vWPi*8*hn*3*em-SvWncFbMIhRm;|A|nU>gHA^Tvyq=yHK zD@<29pvC?|l-Vc76_bhG&-BM6^1*{yD6_KvsIk#ux(?YH>p{)+N_HQUp7FrEK4g82 z`;ev>S1ih~kz+E4dSqO(b}Z_6b18+i!u_uYHdp;O??MM)2Ta#F)Co^FygH~WH!_4~ zC#FrN+mQD$Z8I)IdSx2;&vHXn!gLezK;}uFT6DEfvjG#x6Q0W} zi~r1n7~jm^%rMWH;hlM<5rx5nStJ2Xc|h|XnhiR40C#TS&krLR(l6_q%_tJwiI4~G z<{>Mka0iPJ4&Z`~7xPM{htRCeVjiKw2DG8C=L}xg;5by9G(SoWo8kc{e>c%20gfeF0%!uL&hn4XEq)h9Txl9s)PN7 zqD07d8RyI@op3*s*9Z4Ay|E0B<#!g~Ixjq;fr}W>l@2JfEY6qfmsv1&DbOxt)uGnG z+^Ekigk?A)$QTKqMED$z@}q+AO$R(M4Lg7iiz7aeJp&#o@Ew8n*)>zHzF0J4R*X;< zXvPD-G7r!BpLSV%(g9CqxT*lhJglEGfiD&0&w*a_aMb|xn4L%<2OEhP3f5dw-)Fg``$ znIA?f7QW?!XBhCzw3`W5`5k;eIoC!rKz`<7KF}t!E zo7wEZKeL+{&}1Acjf%lL^8seP1o}woABXFX#?Bfi|WUXgOMh zM!=&U{exZr4l-yYXe<`&xCm;7YJpTNE>Kzkl|4>ZsfjX{&qD)a;y zaAn*c55)a(3ml2hfNpQoj`Ss&LpqWcWHCu3P3c`)8?8h)(Kqx4oj~(}_bhsuuBW5u zFglS=r^i8SZdw$zN5jxW^c$LvR-*?f6=7Tk_#J=;;WjuNKR^?}cjnVV^b(mu+LK>^ z@5y8@Ng*X^Pr8=ghEX!363}~d)Gl|N>!4rZQ6IF~9CZRMj71~S473B?Md?V7V{tv) z6qmyUT?TpFbT;Kd8~sT|Qi{|hgUKG~xgwoP&w-_|k&i*;LGr4o22iMh8p5L{NLv>u zG(|0QDRu!W%}@(894$fTL0UbojXUF3xGGlBZn*afZAsI~CNhw;A)U!|a*BK<`RQ=b z!~^hG36%prd!W8(AQ}ytZwz+Byg33aAp&foR4(O4s56>{j-Y!e4ViHXTnm@Nei+@c zaPLvtiJIvPa)j(A$H+_KCV6RnIvQ-`Ian8lUaEkkjLYs|kEOxVSUh5}-2$zx5EDuP z&5l5Q3-tH{sVEE=#yb2QxbF@3UZvw{Ns6hDd?5+M03%V24x;nuDVP&{p!--<7Ie}O zIIjXe%2q8bp0If3054#3K?KBtDyTJ#@ecGaN)(F)WEGMVdOXTQ>l)JSDw zrO~tojO={i{}y`~f(L#CDUu)-$ANbjf>Epi9@P!>pASa3 z7`*DB*TN8oY~YVpxMMnKh-uFJaWLYi=Yg;6h^r+O(U1cBjP7vvu zVm|mB`2Qs6xe=ZZy2(OD+zjk@C>lsNkZ9m_6yeE6I+E(avmi=>C4GjdHk=MbQFuDU zAsIb~k(dBJZ3Ta=1v)AV<1hv-f>_xZZ$qnaBc9`eIG*c=w}NcrX+`oYd8V1Q-?h!! zPVHaqgZ7lHB*(Q%bPGB{e?won7q}4Kz-`C#AqK>OeY}FvUk2VhfxM+N&^$Vyd&XyT zJ!pZ83K%&>26PA<5-QPXM-zrcq z7=h|>J@`)gqQ<7i*2aQ{b5d!pB<-VB54I1C4)pT1lQs1(ITIPA%K9uDj`*4 zGr7OBZt|+HrQ@%DKJsl|<~Uz|er{NH{>6nC#}z7EGv9veQa(=pmVM=C@gIpvyM7+X zD&jjpI~lmVePc@&sux$e@Tu@Crbk>2&+d%D-yNUoeeU_CLUNkB1Q}#ql>bfP1I33I zT_002qP{dq?&U~G`t$pt?}HN?W(oc=bb@JVf#Gp03-u{pp~xU>M}r%g9o16&@w+~B z{B+<;nT!L$TKx6M>2Yg|tuHa5Xt(HLrYD*|=X7$J&zBRLCwh{~dQ;G2X+lJyQm&GV z3N$QPrC=dko7)+@@-6G@A0HdN8v13)&-I?E{2=SjxOOF<7kyo_YD~8AJD2S}p6rkJ zB-Bdm|D%y-5ss4F_B!P}r9MV)F1xzmJ7pPPH=ul8_x0zy*Uvk|TYs9oD}=+=M{#{h zj4yh)M33lu28y?O_ooz2c$|3m$MWRfelyom{N28=e8*C|qRx~*T;TUWVbSOt_kL8u zqvsEwj!g7?|LQqqxED4&ZbOMXCEphLC1St19yd6vQnD%SO+xp?E1pfhM%sGImlE}h zR?F9*^2-9hkXP1*KJJr}eBjB(N2Pvz`O+ubuJ3OfT`*tqe@eeDoE-7Z-dc!syh*cX zcKr4v@soF_=eoSn>@IdRws~}Pl?C~ilc`~PZ}{i_>G6+8J-(G}`Entvqv5l)OiZ!j zgG*m3cq$^>zKz@BIGDaQbMW`JKaTnDdzvWgEq#jpRE{pe2($|D}o)gYKj#s+c#rlNvc~;eG z6wykXR#5WY`Bcx@>4p2zAIY^pX{ohgnHm|^r(}3xf0Ut+lII>WDebkPnPYzhyepkg zQ(AH<1s>|>hfk>yh&aP7i4%$b+e=@Qx9Wp|$&25XNhrpb(vBNf#kDH1I_iC)jxif~ zn~*5nb$-d@eQwu?pI6jPQ7chr%dsl8!&`B!N-oFMC@6IN zHdrvsOvCV-5|^y?(TUiH;+s@28k+X}`G@p@2_N21^DGFM19gm5^DeRm!jtoVv}`m! zGPmUlqX<=0pPPp9#ibH44XrPw`QhEU4US>{r754@Tu8la zh&PcxtjP4rbWogva>z)!!_Z5gAij^bh1-R85#za$j>*B!$$Q>6OZyPN=gS(;zn*IT zKlP(+V@!GN@ljjMvgxKZAYKwW;zziw>4mKOLtmBThjzgoVc)1JQGgp`tr zF)0fZwed0qYn=&5!1%{hp}>aC+$Iw zQO%$H@M|YWjqjHdM)^Lu?T)EpenYgj!JHDYp6hG;HP5fSm+NZZVtSz48ona$0;AJh z#ePD58i-ZppXkR!$E$CViFtev9G$ZZiDQME%4q9LTOD4p+zTrz&XDHYI-2L{pM(b@ z?i#bq7E?7fCh#_pki786lC0?O5lJmQU9xvNGC3XJMf+fxYdb66w`Pac)pgd@u$MDm zH}(tLAHLU|Ed6F!r_IQrf&6Koe=f;#{)kOBxm!B#xmI#3@CB;3-7wFUirQD(>I(mu zOnEyP4qJv5Og7IGuG%6{Kc^=co?Z0YAKBAVEs6Ww?cE(+o9IblIXPlnWl!SQS*wSS z~!ovTllqFswvT0Qha3{ z8U9kZXFig5gJG#TCdO=fh+9|}XzQFOf=#kg6K7@5OskkwHK(Bag`+fnhEHnLyw!3@ zY!apq`zbB8F3#J)=&(e`OfX#ITUs`&+g;0oCo&U~Mml0sy+8iWdE;#FDvKMVGsI!e zGR>D7g~i#+>zdpAksL73q3_4$}+T z6LSOO7qL^=-`1kKTefw1nj3ps|BfzdNar6|cBp(#8?|j#{**(m)YO+L2|23sscSoZ zMT%)7O>u^=!hQQxOHevydlZq^*u^?Ddar(tu++L%ZRk0z<;z~08gSoB+n(CpQ^hsJ zRgB)#>Z$dO4|VT&-aghmUOHn7gzq$*v?k=OrEe-m*v_eQyv3+D`(fHn&&u?&X(PR= zGtTvcY*f1{%?;HgCs)~4!(^2f+Dzd?4XM@vd2Ra2(tevsOY`kP`y6dD8u-MF{OKiq zNzQa#RclkiQ4wbw~MYw3fA*f$(~JJNtEAEBoNcm%1i~AJ)$FjQo@?%6XK%-*YYN zWX7zV(auZGNlK~Ulb|BhQ>^}uu7~A=mA727R*WcQDPUM=+QD~L?Aj&Ywru3? z?2t1)IAUF@+v{BxysafeWPK(*lHN-b%pFZn%;Uq3Sc-;6*yroQEw_c!!I!j^uV>a5 zPoiUd+G}^Z`+1fOup07v(S4~79i)3=-XkwT6rJL9K&gflh!N3cQgH-A5VJ~xxTFswBMgzC1UHqm$_;()!0X^VZX;VPcbKT=NS zboUwD7cy=-dpi4Nt#ps_AM*8+_u!i7E;btaN#As_w&vz`mgy0#Y|AX`?Kkvg_!+_} zb-yRccgLMC^LBPU*O$z?&ZWM;d~1V;H8Z}!)!=LCpX((*HYJ9Pf<@d->%>*<-Ssl9OA}tFZi4Kcw?CHon@nay79B&hB=JC zPc92lire#0{nz)a%P24Ldt6CM3w4^;MBgJUf8aWamGDSIV^d2h(KO#uLMSA)Gu9?y z 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�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 literal 0 HcmV?d00001 diff --git a/libs/libcodec2/raw/k6hx.raw b/libs/libcodec2/raw/k6hx.raw new file mode 100644 index 0000000000000000000000000000000000000000..35e6df71fd653fdb83b84bb48d45d6a6a79983e4 GIT binary patch literal 166814 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%0ABSDrP{>qA${tL#u)# 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 literal 0 HcmV?d00001 diff --git a/libs/libcodec2/raw/kristoff.raw b/libs/libcodec2/raw/kristoff.raw new file mode 100644 index 0000000000000000000000000000000000000000..9b0b465511bcd0a58d635af3c1fe24d54df96701 GIT binary patch literal 80000 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