Hi Alfred, Here are two tests timing the operation of the cohpsk demodulator in acquisition mode, i.e. trying to sync up on a signal. I'm feeding it with a FreeDV 1600 signal so it will never sync up.
1/ In the first test we drive the cohpsk demod directly at 7500Hz: david@penetrator:~/codec2-dev/build_linux/src$ time ./cohpsk_demod ~/Desktop/ve9qrp_1600.wav /dev/null real 0m23.950s user 0m23.944s sys 0m0.004sj 2/ In the second test we drive it through the freedv API, which includes the 8000Hz to 7500Hz resampler: david@penetrator:~/codec2-dev/build_linux/src$ time ./freedv_rx 700C ~/Desktop/ve9qrp_1600.wav /dev/null real 0m22.618s user 0m22.612s sys 0m0.004s It appears they execute in approximately the same time. This is consistent with my previous tests - the CPU load appears to be in the acquisition code of the cohpsk modem, not the 7500<->8000 resampler. Looking at the code this also makes sense - the resampler is fairly simple from a CPU load point of view, there is much more going on with the acquisition algorithm. Cheers, David On 08/02/17 19:44, wully wrote: > Hi David > > I have further analyzed the api-Problem with to much timelapse for the > freedv_rx(): > > When you use 8000S/s as input, your downsampling and filtering requires > a steep filter for 8000->7500. > In my code, which directely uses 7500, I come in with 96000S/s and can > easily downsample to 7500S/s by using the standard Linux samplerate.so. > The FIR-requirement in this config needs much less coefficients as from > 8000->7500. So, the cpucycle amount is drastically decreased. > > In my code using 7500 directly, I don't get any problems with processing > the stream of data coming from the RX, but when using the current > interface, the time budget of freedv_rx() is to high when out of sync > for my processing of the RX-data. This shows up in nasty sounds when out > of sync. > > Since most users are using DSP code at higher samplingrates for > processing in the SDR, I suggest, that we add an explicit 7500-Interface > for the 700-Modes with COHPSK. Then, people can downsample from *high* > to 7500! > > I have just for test purposes thrown out the code for 8000->7500 and > 7500->8000 in the freedv_api.c (SVN 3006) and seen, that another > interface could be easily added to the API. > > Greetings, Alfred > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > _______________________________________________ > Freetel-codec2 mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/freetel-codec2 > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Freetel-codec2 mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freetel-codec2
