This is probably a Tom question, but I’m of course open to suggestions
from
anyone.
This is a restatement of Mario R.'s question on 6/8 after additional
conversation on the IRC channel. I think it didn’t get much response due
to
the way it was phrased.
I’m not much of a DSP fundamentals guy, so take this with a grain of
salt.
Currently, the complex square source outputs a 90-degree-delayed square
wave on the imaginary output, rather than an actual analytic square
wave,
which can be approximated by passing a float square source through a
Hilbert filter. The imaginary component in that case is
(2/pi)*ln(tan(t/2)); when used with complex input I believe the
imaginary
part of the result will actually be the real square wave component,
since
it’s a Hilbert transform and so it’s reciprocal.
The same general comment applies to the sawtooth and triangle wave
sources
although their analytic representations are different.
So, I don’t actually care what the square wave source emits if there’s a
reason for it, but was there a reason it was implemented as a delayed
square wave rather than the analytic representation? Is there actually a
use for complex square/saw/triangle wave sources? Am I just causing
trouble
and it’s way too late to be changing the behavior of this block?
–n