discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: Σχετ: Re: Σχετ: Re: QAM constellation script


From: Marcus Müller
Subject: Re: Σχετ: Re: Σχετ: Re: QAM constellation script
Date: Mon, 1 May 2023 22:14:40 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0

Hi George,
thanks for the reply!

    "VCO generator":

    It produces two different vectors depending of fh Boolean value. A sawtooth 
vector of
    values between  -0.5 and 0.5 or the same random values between -0.5 and 
0.5. The
    sawtooth values used in alignment phase (adjusting myblock).

Yes, indeed! But I was focussing on the self.fh == True case.
    "Repeat":

    This block offloads the previous block as is too heavy to produce random 
numbers at
    the rate needed.

Well, you did not write it very efficiently, but agreed, if you just need to repeat the vector, by all means, this is a nice way to do it.


    "VCO (complex)":
    The VCO complex, with the values specified, produce frequencies between 
-500 kHz for
    -0.5 and +500 kHz for +0.5 input. This block creates the frequency change.

But only for fh == False. For fh == True, you're really just piping in random numbers to a mapper that maps the random numbers from [-0.5,+0,5] to a point on the unit circle with phase [-π;+π]. This phase is then what is output *for every sample*, separately. Your VCO really does only this:

output[i] = output[i-1] · exp(1j · sensitivity/sampling_rate · input[i]),

and in your case, sensitivity/sampling_rate == 2π ,

output[i] = output[i-1] · exp(1j · 2π · input[i])
          = output[i-1] · random phase increment in [-π;+π].

and because your input is just random independent numbers between -0.5 and +0.5, you just get random independent numbers on the output: (pseudo-)White noise.

Connect a QT GUI Frequency Sink to the output of your VCO (complex), set fh==True and looks how flat and random the output spectrum is.

(I'm attaching a subgraph of your flow graph with that sink, and also a screenshot from the QT GUI Frequency Sink)

    "Multiply":
    It moves the USB voice signal by frequency created from previous steps.

Sorry, definitely no USB created anywhere! If that was the case, the QT GUI Frequency Sink mentioned above would have to show zero for the upper half (before you complex conjugate), or the lower half of the spectrum, because you shift your 0-frequency-symmetric message signal spectrum by the frequencies in the spectrum of your VCO's output, and if you only want them to end up in the USB, then all these "shifting" frequencies would have to be in the upper half of the spectrum.

    You can better understand it considering frequencies rather than phases.

I'm about to say the same to you :)
Notice that frequency is the derivative of the phase. In your VCO block, you generate completely random phase increments. The derivative of that is just again complete randomness – every single sample.

Anything that you really can say "has a frequency" needs to have the same phase increment for multiple samples. But you're switching the phase increment with every sample - completely randomly.

This really nicely spreads the signal power from narrowband input signal into the full sampling rate bandwidth, but it's really not frequency hopping.

Best regards,
Marcus

Attachment: frequency sink.png
Description: PNG image

Attachment: demo.pdf
Description: Adobe PDF document

Attachment: demo.grc
Description: application/gnuradio-grc


reply via email to

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