The discussion about Tx Eq brings up an interesting system architecture
issue. The audio processing should really be distinct from the "radio IF
processing", with some convenient interface exposed. That is, the SDR
software should really just be exposing a logical baseband audio interface,
and should take that audio, translate it to the appropriate offset
frequency, equalize it for audio card and transmit imperfections, and send
it to the hardware. All the other audio processing (speech processing, EQ,
compression, the "parrot", etc.) should really be done separately,
conceivably by third party software.
While it is seductive to try and roll all the signal processing into "one
(virtual) box", especially if you're doing it with transforms in and out of
frequency domain, it starts to make things really complex, and makes it
very difficult to cleanly integrate stuff. There are also some things that
are very tedious to implement in frequency domain, but trivial in time
domain (clipping would be an example).
Sure, there could be some rudimentary/basic controls available within the
SDR software, but elaborate filtering or processing should really be an
"add-on", and, for now, the conceptual model most familiar to people is the
sequential string of time domain "processing boxes".
It might be useful to expose and interface for frequency domain processing,
but for any sort of non-linear processing, this is going to be tricky to
integrate and, more importantly, to explain in a way that makes it useful.
While I'm no great fan of how Matlab/Simulink does things, it does provide
a model for how this sort of thing can be done, in terms of transitioning
between time and frequency domain, etc.
From my limited look at the output of the Simulink "compiler", the code
implementation of it is quite, shall we say, opaque and esoteric.
James Lux, P.E.
Spacecraft Radio Frequency Subsystems Group
Flight Communications Systems Section
Jet Propulsion Laboratory, Mail Stop 161-213
4800 Oak Grove Drive
Pasadena CA 91109
tel: (818)354-2075
fax: (818)393-6875