<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">From Dr. Warren Pratt, NR0V:<br><br><div id="AppleMailSignature" dir="ltr">Sent from my iPad</div><div dir="ltr"><br>Begin forwarded message:<br><br></div><blockquote type="cite"><div dir="ltr"><b>From:</b> Warren Pratt <<a href="mailto:warren@pratt.one">warren@pratt.one</a>><br><b>Date:</b> February 17, 2019 at 1:28:13 PM EST<br><b>To:</b> 'Gary Abercrombie' <<a href="mailto:gabercr@gmail.com">gabercr@gmail.com</a>>, "'<a href="mailto:bryanr@bometals.com">bryanr@bometals.com</a>'" <<a href="mailto:bryanr@bometals.com">bryanr@bometals.com</a>><br><b>Subject:</b> <b>[hpsdr] DSP library</b><br><br></div></blockquote><blockquote type="cite"><div dir="ltr">

<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->


<div class="WordSection1">
<p class="MsoNormal">Hi Gary & Bryan,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">That’s how we got to where we are with WDSP.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">73,<o:p></o:p></p>
<p class="MsoNormal">Warren  NR0V<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>


</div></blockquote></body></html>