Complex format signal source block

Hi community,

I have a basic question when simulating and displaying complex signals
Radio (GRC 3.5.1). I tried to solve them by myself but they are not yet
clear to me. I am simply using the signal source block, generating some
signals, and visualizing them with a scope block. By using the float
everything is fine. However, troubles come when using and interpreting
complex format:

Firstly, books say that In-phase and Quadrature components are lowpass
related with the complex envelope of the signal,
i.e., let’s suppose a real signal s(t), it’s complex envelope will be:

s_complex_envelope(t) = si(t) + j*sq(t) ; being si(t) and sq(t) the
in-phase and quadrature components, respectively.

For a simple cosine wave s(t) = cos(wt) I think si(t) = 1 for all t and
sq(t) = 0, provided that s(t) = si(t) * cos(wt) - sq(t) * sin(wt)

I think the source block outputs the “pre-envelope” or analytic signal,
which is the complex envelope shifted at w, being w the carrier

a. I think I am correct when I interpret channels 1-2 in the scope block
the real and imaginary parts of the analytic signal, which are NOT the
in-phase and quadrature components of the signal.
However, Am I wrong about what I said related with the in-phase and
quadrature components of a cosine wave. To get the in-phase and
components of a cosine wave I tried the grc scheme shown in the attached
“I_Q_components_cosine.png”. In this case, I expected channel 1 = 1
(in-phase component) and channel 2 = 0 (quadrature component), however
nothing appears. Am I wrong in my understanding?. How could I get the
in-phase and quadrature components of a cosine wave?

I think, as I said in 1, that the block source outputs the pre-envelope
(analytic signal). So, when I select a cosine wave in the block it is
same as selecting a “complex exponential”, i.e. s(t) = exp(jwt) =
cos(wt) +
being sin(wt) the Hilbert transform of cos(wt). If I select a sine wave
the block source I can see in the scope block sin(wt) - j * cos(wt),
-cos(wt) the Hilbert transform sin(wt). Thus, both cases seems logical.

a. When displaying the channels 1-2 of a cosine function and using the T
Offsset option in the scope to see the waveform at time = 0, I should
the values of cos(w0) = 1 for channel 1 and sin(w0) = 0 for channel
Why it seems channel 1 and 2 are delayed? (see figure

b. Why when I select the square waveform in the source block (with
format) I see in channel 2 the squared waveform delayed instead of its
Hilbert transform (see “square_wave.png”)?

Thanks in advance,


References: Skatz Tutorial 4 in