discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] Complex format signal source block


From: Mario L. Ruz
Subject: [Discuss-gnuradio] Complex format signal source block
Date: Fri, 8 Jun 2012 18:44:42 +0200

Hi community,

I have a basic question when simulating and displaying complex signals Gnu 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 format everything is fine. However, troubles come when using and interpreting the complex format:

1.
Firstly, books say that In-phase and Quadrature components are lowpass and 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 frequency. Questions:

a. I think I am correct when I interpret channels 1-2 in the scope block as 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 quadrature 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?


2.
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 the same as selecting a "complex exponential", i.e. s(t) = exp(jwt) = cos(wt) + j*sin(wt),
being sin(wt) the Hilbert transform of cos(wt). If I select a sine wave in the block source I can see in the scope block sin(wt) - j * cos(wt), being -cos(wt) the Hilbert transform sin(wt). Thus, both cases seems logical. Questions:

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 see the values of cos(w*0) = 1 for channel 1 and sin(w*0) = 0 for channel two. Why it seems channel 1 and 2 are delayed? (see figure "analytic_cosine_wave.png")
 
b. Why when I select the square waveform in the source block (with complex format) I see in channel 2 the squared waveform delayed instead of its Hilbert transform (see "square_wave.png")?

Thanks in advance,

--Mario

References: Skatz Tutorial 4 in http://www.csun.edu/~skatz/katzpage/sdr_project/sdrproject.html

Attachment: i_Q_components_cosine.png
Description: PNG image

Attachment: analytic_cosine_wave.png
Description: PNG image

Attachment: square_wave.png
Description: PNG image


reply via email to

[Prev in Thread] Current Thread [Next in Thread]