[hpsdr] PowerSDR / Thetis / Friedrichhafen
Warren C. Pratt
warren at wpratt.com
Mon Mar 28 18:51:02 PDT 2016
Hello Georg,
You probably know that I wrote the WDSP library that we use. Doug,
W5WC, and I have worked together to write the new ChannelMaster.dll that
is in Thetis - this is basically all the rest of the datapath code
connecting to the network and surrounding the DSP. So, I suppose that
makes me as guilty as anyone of not writing more documentation. I agree
that we should have more documentation, and, given the time, I would
actually enjoy writing more. In fact, I have it on my list to update
and expand a document about WDSP that I have provided to Hermann,
DL3HVH, John, G0ORX/N6LYT, and a few others, that has helped them
integrate the library into their console applications. I sincerely hope
to get that done this year; however, at this moment, I am busy with some
Thetis work. I have also tried, from time to time, to recruit other
people to write documentation about how to use our features and console
applications. However, I suppose they don't view this as the most
enjoyable way to spend their time.:-)
The "best practices" of software engineering would suggest that
developers should plan and document their work from the top level down.
They should then keep that documentation up-to-date as they discover
problems and make changes. This would provide some amount of "standard"
documentation.
However, for the most part, I, and I suspect some of the other
developers, don't do that. I do have a fairly rigorous structure that I
follow for new modules in WDSP. So, when I write a new module in that
same form, a number of things are already defined. Beyond that, some
algorithms seem straightforward to me and so I just sit down and code
them. Some of the others, like our new Spectral Noise Reduction, NR2,
required reading a lot of technical papers and coding and, sometimes,
experimenting with several different versions of algorithms. However, I
tend to just read several papers, decide what I want to try, and then
code it in the "WDSP form". There are some things that I do work
through on paper before coding. For example, the new Spectral Noise
Blanker involves quite a bit of matrix formation and manipulation. I
did work through the formation of the matrices on paper before coding
that. However, the notes never evolved beyond being quite cryptic. When
I work this way, I rarely have any issues other than typographical
errors or minor things that I simply forgot to do.
Probably some of the best algorithm documentation I have done has been
the presentations I've prepared for Ham Radio Friedrichshafen. In 2014,
I gave two presentations, both available online, one on WDSP basics and
the other on PureSignal. For Ham Radio 2016, I plan to present on
Advanced Noise Blanking and Noise Reduction. Preparing these
presentations requires a lot of time; however, I enjoy doing it and I
look forward to presenting.
Well, that's a long message. I'm as guilty as anyone of not documenting
more. As I can find time, I'll try to do more. However, for me at
least, to a large extent, it's a tradeoff between developing and
documenting. The other developers may choose to express differing views
on their efforts.
Hope to see you in Friedrichshafen!
73,
Warren NR0V
More information about the Hpsdr
mailing list