[hpsdr] DSP library

Bryan Rambo bryanr at bometals.com
Sun Feb 17 11:47:31 PST 2019


From Dr. Warren Pratt, NR0V:

Sent from my iPad

Begin forwarded message:

> From: Warren Pratt <warren at pratt.one>
> Date: February 17, 2019 at 1:28:13 PM EST
> To: 'Gary Abercrombie' <gabercr at gmail.com>, "'bryanr at bometals.com'" <bryanr at bometals.com>
> Subject: [hpsdr] DSP library
> 
> Hi Gary & Bryan,
>  
> Since I changed my primary email address, I don’t think I can post to the hpsdr list.  So, I’m sending this to you two and one of you can re-post it to the list if you want.
>  
> There are some contributions from others; however, I’ve written almost all of WDSP.  So, perhaps I can shed some light on things.  PowerSDR had been using the DttSP library for some time (I don’t know how long).  I got involved in DSP software for the HPSDR program more by accident than by plan.  A friend, W6XX (now SK), had done some extensive testing and measurements on the AGC system in PowerSDR at the time.  He found that there were a number of issues in the way it worked; in fact, I suspect there’s a write-up of his findings still available online.  I had some time on my hands and decided to “fix” the problem.  I found the existing code difficult to understand (I never succeeded in that) and so I wrote new AGC/ALC code that was structured and performs quite differently.  I put that code into the DttSP library at the time.  After that, I began to get requests from HPSDR team members to write/rewrite other modules.  I think the Speech Processor was next … I don’t remember what came after that.  There were several modules.  Then, the team members began in-depth discussions of Protocol_2 firmware/software.  There were a number of things in the DttSP definition that didn’t seem to mesh very well with that.  For example, all the receivers and the transmitter DSP code were all running at the same sample rate.  (In Protocol_2, different rates can be specified for each.)  At about that time, I decided just to write a totally new set of buffering/threading/wrapper code and create the new library.  In parallel with the new buffering/threading/wrapper code development, and afterwards, I continued to write new functionality “blocks”.  Some are similar in function to DttSP but many do things differently or do things that are not included in DttSP … for example Adaptive Predistortion, Continuous Frequency Compressor, Continuous Frequency Equalizer, Phase Rotator, advanced VOX/DEXP system (not yet publicly released), Low-Latency Filtering, Spectral Noise Reduction, Spectral Noise Blanker, EER/ETR support with variable sub-sample delays, and more.
>  
> As interest in using the library in various projects increased, I was getting more and more questions.  So, I decided to document the interface as that investment of time would save me even more time in answering individual questions.
>  
> That’s how we got to where we are with WDSP.
>  
> 73,
> Warren  NR0V
>  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openhpsdr.org/pipermail/hpsdr-openhpsdr.org/attachments/20190217/b8680c11/attachment.html>


More information about the Hpsdr mailing list