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

Reply via email to