Complex square wave source

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

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?

Some total nOOb added the triangle, square, sawtooth waveforms to signal
source. There was a spot to fill in the complex versions of these
waveforms, so it just kind of got filled in… doesnt mean much.

My only regret was not making ramp function cross 0.

-josh

On Tue, Jun 19, 2012 at 9:21 PM, Josh B. [email protected] wrote:

waveforms, so it just kind of got filled in… doesnt mean much.

My only regret was not making ramp function cross 0.

-josh

Yeah, seems like it was the easiest solution to build. I’m sure we can
update it to be a real analytic signal (although, using a Hilbert
filter for the transform doesn’t perform a real Hilbert transform
since it’s limited by the filter representation of it).

If there’s a useful patch for this, send it along!

Tom