Brigham Young University Homepage

Digital Communications: A Discrete-Time Approach
by Michael Rice

QPSK: Over-the-Air With Pluto Radios

Scaling the Pluto Radio Output

The Pluto radio outputs double-prevision floating point values. (The A/D converters and fix-point resampling filters do are converted to doubles inside the Pluto radio.) You can see this by doing the following in the MATLAB workspace

                >> load TestInput.mat
                >> whos
                  Name           Size               Bytes  Class     Attributes
                  r         800001x1             12800016  double    complex   
The vector r contains complex-valued numbers. The real part is the inphase component, and the imaginary part is the quadrature component. You can use the values, as is, in your Simulink design. But you must scale the TED and PED gains (both Kp) accordingly. The alternative is us scale the input so that you can use the TED and PED gains you have used in the past.

Using the Phase Trajectory to Scale the Pluto Radio Output

The PLLs operate on the matched filter outputs. So we need to determine the scale constant that produces the desired amplitudes on the matched filter outputs. Because the samples in r were obtained at 4 samples/symbol the matched filter is computed using

                >> p = rcosdesign(0.5,12,4);
The corresponding matched filter output is

                >> x = conv(r,p);
You are now in a position to create a phase trajectory. The phase trajectory is a plot of the quadrature component of x (the imaginary part) vs. the inphase component of x (the real part). In MATLAB, this is accomplished by simply plotting x. To plot 1000 samples (skipping the transients introduced by the matched filter) do the following:

                >> plot(x(6*4+1:6*4+1000)); 
                >> grid on;
                >> axis square;
                >> axis([-1 1 -1 1]);
The resulting plot should look like this

You should be able to see an average radius that many of the I/Q samples live near. From this "eye-ball" estimate, you can select the scale factor to create an average radius of 1, or an average radius of √2. [The second one places the constellation points at approximately (±1,±1).]
Brigham Young University - Provo | Fulton College of Engineering | The Church of Jesus Christ of Latter-day Saints
Department of Electrical and Computer Engineering, BYU, Provo, UT 84602 - (801)422-4012 - Copyright 2009. All Rights Reserved