7 Lab 2: Budget Analysis

advertisement
7
7 Lab 2: Budget Analysis
Lab 2: System Budget Analysis
7-2
Lab 2: System Budget Analysis
7
LAB 2: BUDGET ANALYSIS ................................................................................................................ 7-1
7.1 OBJECTIVES: .......................................................................................................................................... 7-5
7.2 GAIN AND GAIN COMPRESSION BUDGET: .............................................................................................. 7-5
7.2.1
Schematic Capture and Simulation Setup: ................................................................................. 7-5
7.2.1.1
7.2.1.2
7.2.1.3
7.2.1.4
7.2.2
7.2.2.1
7.2.2.2
Set up the budget analysis ....................................................................................................................... 7-5
Alphabetize the Component Instance Names .......................................................................................... 7-5
Set up a parameter sweep ........................................................................................................................ 7-6
Simulate: ................................................................................................................................................. 7-8
Display Simulation Results: ........................................................................................................ 7-8
Gain Budget (bud_gain function): ........................................................................................................... 7-8
Gain Compression Budget (bud_gain_comp function): ........................................................................ 7-10
7.3 NOISE FIGURE AND SIGNAL-TO-NOISE RATIO BUDGET: ...................................................................... 7-11
7.3.1
Schematic Capture and Simulation Setup: ............................................................................... 7-11
7.3.2
Display Simulation Results: ...................................................................................................... 7-13
7.3.2.1
7.3.2.2
7.3.2.3
Check the Output Frequency: ................................................................................................................ 7-13
Noise Figure Budget (bud_nf function): ............................................................................................... 7-13
Signal-to-Noise Ratio Budget (bud_snr function): ................................................................................ 7-14
7.4 FORMAT THE BUDGET LISTINGS: ......................................................................................................... 7-15
7.4.1
Interdependencies (the “what” function): ................................................................................ 7-15
7.4.2
Data Indexing (the “::” operator): .......................................................................................... 7-16
7.4.3
Independent Variable Values (the “indep” function): .............................................................. 7-17
7.4.4
Find Position in a Vector (the “find_index” Function): .......................................................... 7-17
7.4.5
Putting it all together: .............................................................................................................. 7-18
7.5 BUDGET ANALYSIS WITH AN ADDITIONAL AMPLIFIER: ....................................................................... 7-18
7.6 REVIEW OF LAB2: ................................................................................................................................ 7-20
7-3
Lab 2: System Budget Analysis
7-4
Lab 2: System Budget Analysis
7.1
Objectives:

Perform HB budget analysis of a transmitter

Perform AC budget analysis of a receiver
7.2
Gain and Gain Compression Budget:
7.2.1
Schematic Capture and Simulation Setup:
7.2.1.1 Set up the budget analysis
1. Open the project d:\users\ads\CommSys_Lab2.
2. Open the design “a_xmtr” (identical with “c_xmtr_basic_amps_filters” that was
saved in Lab1).
3. “Save As…” the design with the new name “b_xmtr_budget_gain”.
4. Edit the Harmonic Balance controller (double click on it). Set the following
parameters:
a. under the “Params” tab:

Perform Budget simulation
to
yes
(check box).
to
yes
(check box).
b. under the Display tab:

OutputBudgetIV
The HB simulator will now generate additional data to create budget measurements in the
Data Display window. The controller should look like this:
7.2.1.2 Alphabetize the Component Instance Names
The names of the components need to be changed (in the schematic window) to ensure the
budget measurements will appear in the correct (signal flow) order in the DDS window.
7-5
Lab 2: System Budget Analysis
Change the component names as follows (type over existing names directly on the screen):

z0_PORT1 (IF Source)

a0_MIX1

a1_BPF1

a2_Preamp

a3_Poweramp

a4_BPF2

a5_Term2 (RF Load)

z1_PORT2 (LO Source)
NOTE: The z* designators force these elements to the bottom of the list, thus getting them
out of the way of the “critical path” elements on the list.
Save the schematic (it should already have the name “b_xmtr_budget_gain”).
The schematic should look like the following one:
7.2.1.3 Set up a parameter sweep
The gain and gain compression of each component will be computed using the
functions: “bud_gain()” and “bud_gain_comp()”. The “bud_gain_comp()” function
computes gain compression by taking the difference between the small signal
(linear) gain and the large signal gain using a swept input source, where the
lowest input power level is used to calculate the small-signal gain. A parameter
sweep will be used to sweep the input power for the “bud_gain_comp()” function.
7-6
Lab 2: System Budget Analysis
1. Edit the following parameters:
a. On the VAR component add a variable p_in:

p_in
to
– units to None.
-10 _dBm
b. On the IF source P_1Tone named A_Port1:

P
to
p_in dBm
In “Edit Component Parameters” window:
value=”p_in” and units=“dBm”
type in, directly in the schematic window:
dbmtow(p_in)
OR
2. Insert a “ParamSweep” from the “Simulation-HB” library to sweep the input power
from -50 dBm to -10 dBm with Step = 40. A minimum of two power points is
sufficient to compute gain compression. Set the following parameters, using the
Edit Component Parameters dialog window (double click on the component to
bring up this window):
a. Under Sweep tab:

SweepVar
to
p_in

Start
to
-50 _dBm

Stop
to
-10 _dBm

Step
to
40 _dBm
b. Under Simulations tab:

Simulation1
to
HB1 (name of the harm. balance simulation controller).
Please note that the underscore means the text following it is just a comment. So, _dBm is
just a reminder for the user that this value is given in dBm. The _dBm does not set the units
to dBm; this is done in the power source component, where P has the value of p_in with the
units set to dBm.
VAR
VAR1
IF_freq=70 MHz
LO_freq=766.5 MHz
RF_freq=LO_freq+IF_freq
p_in=-10 _dBm
ParamSweep
Sweep1
SweepVar="p_in"
SimInstanceName[1]="HB1"
SimInstanceName[2]=
SimInstanceName[3]=
SimInstanceName[4]=
SimInstanceName[5]=
SimInstanceName[6]=
Start=-50 _dBm
Stop=-10 _dBm
Step=40 _dBm
7-7
Lab 2: System Budget Analysis
The final schematic is shown below:
7.2.1.4 Simulate:
Perform the simulation. The dataset should default to “b_xmtr_budget_gain” (you can check
this under Simulate>Simulation Setup…).
7.2.2
Display Simulation Results:
7.2.2.1 Gain Budget (bud_gain function):
1. A DDS window should open automatically with “b_xmtr_budget_gain” as the
default dataset.
2. Insert an equation to compute the gain at the given input frequency from the
system input to pin 1 of each component:
xmtr_bud_gain=bud_gain("z0_PORT1",1,,1)
7-8
Lab 2: System Budget Analysis
NOTE about the bud_gain arguments (also see “Functions Help”):
“z0_PORT1” is the name of source supplying the input power
The second parameter is the frequency index of desired input tone. Here, it is 70 MHz,
where index=1. There can, however, be multiple input tones.
The last parameter is the number of the HB frequency plan. The function bud_freq will return
the frequencies used. In this case, there is only one plan, so it is set to 1.
3. Insert a “List” under the xmtr_bud_gain equation.
When the dialog appears, scroll down to the “Equations” and select the equation
“xmtr_bud_gain”. However, before adding this equation to the Traces field, choose the “Plot
Options” tab and select “Transpose Data”. This will put the component names in a leftjustified column and the data in adjacent columns as shown below:
Eqn xmtr_bud_gain=bud_gain("z0_PORT1",1,,1)
Component
a1_MIX1
a2_BPF1
a3_Preamp
a4_Poweramp
a5_BPF2
a6_Term2
z0_PORT1
z1_PORT3
xmtr_bud_gain
p_in=-50.000
p_in=-10.000
-0.000
0.000
-6.500
-6.500
-7.500
-7.500
22.500
22.344
34.500
31.598
33.500
30.598
0.000
0.000
57.000
17.000
NOTE:
Notice that bud_gain() is displaying the gain values for both the -50 dBm and -10 dBm input
power levels due to the parameter sweep. The gain compression of the power amplifier can
be observed.
QUESTION:
Recall that bud_gain function returns the gain of the system from system input to the input
terminal of the corresponding component. For example, the input of a2_BPF1 (also the
output of a1_MIX1) has a value of –6.5 dB gain, the conversion loss of the mixer. How
much compression do the two amplifier stages have at -10 dBm input power? Write your
answers below:
a3_Preamp: _____ dB compression a4_Poweramp _____ dB compression
7-9
Lab 2: System Budget Analysis
7.2.2.2 Gain Compression Budget (bud_gain_comp function):
The gain compression of each component will be computed using the function:
“bud_gain_comp ()”.
1. Insert an equation in the DDS window:
xmtr_bud_gain_comp = bud_gain_comp("z0_PORT1",1,,1)
where "z0_PORT1" is the input source, 1 is the index of the source tone, and 1 is the
number of the HB frequency plan
The equation xmtr_bud_gain_comp returns the gain compression at the given input
frequency from the input to pin 1 of each component.
2. Insert a list and add the equation as in the previous steps. The data should
appear similar to the following table:
Eqn xmtr_bud_gain_comp=bud_gain_comp("z0_PORT1",1,,1)
Component
a1_MIX1
a2_BPF1
a3_Preamp
a4_Poweramp
a5_BPF2
a6_Term2
z0_PORT1
z1_PORT3
xmtr_bud_gain_comp
p_in=-50.000
p_in=-10.000
0.000
-0.000
0.000
0.000
0.000
0.000
0.000
0.156
0.000
2.901
0.000
2.901
0.000
0.000
0.000
40.000
Because a parameter sweep was performed, the function returns data at both values of the
swept parameter (p_in=-50 dBm and –10dBm). The gain compression is simply the
difference between the gain at p_in=-50 dBm and the gain at p_in=-10 dBm.
The Preamp shows only slight compression, while the Poweramp shows significant
compression. Recall that the table entry for each component is the compression from the
system input to the component's input pin.
3. Save the data display window with the name “b_xmtr_budget_gain”.
7-10
Lab 2: System Budget Analysis
7.3
Noise Figure and Generate Budget Path:
7.3.1
Schematic Capture and Simulation Setup:
NOTE:
The following steps use a design that has been created for this lab.
1. Open the design “c_rcvr” from the CommSys_Lab2_prj that you are currently in.
Note the presence of an AC simulation controller. The AC controller must be edited to
enable frequency conversion and budget data.
2. “Save As…” the design with the new name “d_rcvr_budget”.
3. In the AC controller set the following parameters:
a. Under “Frequency” tab:
Note that a single frequency of 1 GHz is specified. This frequency has no meaning, as the
simulation frequencies are explicitly set by the sources when AC analysis is performed on
frequency converter designs.
Although this frequency has no real meaning, for unambiguous results display, set it to:

Freq
to
– units set to None.
RF_freq
b. Under “Noise” tab:

Calculate noise
to
yes

Nodes for noise parameter calculation
to
vout
– check box
Select “vout” from the “Edit” field and use the “Add” button to add it to the “Select” field.

Include port noise
to
yes
– check box.
c. Under “Parameters” tab:

Enable AC frequency conversion
to
yes
– check box

Perform Budget simulation
to
yes
- check box.
d. Under “Display” tab:

CalcNoise

NoiseNode
to
– check box
yes
to
yes
– check box
7-11
Lab 2: System Budget Analysis

IncludePortNoise
to
yes
– check box

BandwidthForNoise
to
yes
– check box

FreqConversion
to
yes
– check box

OutputBudgetIV
to
yes
– check box

Freq
to
yes
- check box
The AC simulation controller should look like the following at this point:
AC
AC1
CalcNoise=yes
NoiseNode[1]="vout"
IncludePortNoise=yes
BandwidthForNoise=1 Hz
FreqConversion=yes
OutputBudgetIV=yes
Freq=RF_freq
4. Save the schematic (the name should already be set to “d_rcvr_budget”).
5. The “Generate Budget Path” function in the Simulate menu helps you to specify a
signal path for a budget analysis. Select the starting and ending component for
the analysis. Press Generate to have a budget path measurement equation
created. Press Highlight to have the signal path highlighted on the schematic.
7-12
Lab 2: System Budget Analysis
6. Simulate the design. The dataset name should default to “d_rcvr_budget”.
Note: The “Options” item in the schematic window is required to set the temperature for the
noise simulation.
7.3.2
Display Simulation Results:
7.3.2.1 Check the Output Frequency:
1. Open a new DDS window and select the dataset “d_rcvr_budget”.
2. Save the data display window with the name “d_rcvr_budget”.
3. Insert a list with the measurement data “vout.fss”. The controller sets the value of
freq, while the actual output frequency is given by the fss measurement. This
verifies that the IF output frequency is the difference between the RF and LO
frequencies. Also, note the frequency displayed has the value of RF_freq; this
display is due to setting the frequency to RF_freq in the AC controller (remember
its value has no meaning in a frequency conversion measurement).
freq
858.5MHz
7.3.2.2
vout.fss
70.00MHz
Noise Figure Budget (bud_nf function):
1. Insert an equation in the DDS window:
NF = bud_nf (budget_path)
2. Insert a list and add the equation. Be sure to use the plot option “Transpose
Data” as in the previous steps. The results should be similar to those shown
6
Eqn NF=bud_nf(budget_path)
5
3
2
1
0
a6_Term3.t1
a5_GAIN.t2
a4_BPF2.t2
a3_MIX.t2
a2_LNA.t2
a1_BPF1.t2
below:
4
a0_PORT1.t1
a0_PORT1.t1
a1_BPF1.t2
a2_LNA.t2
a3_MIX.t2
a4_BPF2.t2
a5_GAIN.t2
a6_Term3.t1
NF
freq=858500000.000
0.000
1.000
3.500
3.618
3.675
5.202
5.202
NF[::,0]
Component
Component, M
Insert a plot of NF. In order to have the
7-13
Lab 2: System Budget Analysis
components names on the X-axis it’s necessary to specify NF[::,0]. Try adding the [::,0]
directly to the NF parameter on the plot!
7.3.2.3
Signal-to-Noise Ratio Budget (bud_snr function):
The signal-to-noise ratio of the system can be computed using the “bud_snr” function.
Insert the following equation in the DDS window and place it in a list:
rcvr_bud_snr = bud_snr(,budget_path)
Eqn bud_SNR=bud_snr(,budget_path)
90
bud_SNR[::,0]
89
88
87
86
85
84
a6_Term3.t1
a5_GAIN.t2
a4_BPF2.t2
a3_MIX.t2
a2_LNA.t2
a1_BPF1.t2
a0_PORT1.t1
Component
This computation can be validated using the noise power equation: Pn = kTB. This results in
a noise spectral density of -174 dBm/Hz. The noise bandwidth is set to 1 Hz in the
controller, so the input noise power is -174 dBm. The input signal is -84 dBm, resulting in an
approximate input SNR of -84 - (-174) = 90 dB. The expected degradation in SNR is caused
by the two noisy gain stages.
7-14
Lab 2: System Budget Analysis
7.4
Format the Budget Listings:
This exercise will introduce a few new concepts for use in the data display.
In the xmtr_budget_gain DDS window we examined the gain and gain compression of an
up-converter chain. However, Port2 was included in the gain chain results listing. It would
be preferable to display only the items up to and including the output port for the termination.
On the data display we will use the following new functions and operators:
::
Variable info…
find_index
indep
To prepare for these examples, please perform the following steps:
1. Open a new data display and name it (“Save As…”) “b1_xmtr_budget_gain_sort”.
2. Set the default data set to “b_xmtr_budget_gain”.
3. Add the following equations:
Eqn xmtr_bud_gain=bud_gain("z0_PORT1",1,,1)
Eqn xmtr_bud_gain_comp=bud_gain_comp("z0_PORT1",1,,1)
7.4.1
Variable info…:
The “Variable info…” feature can be used to gather information about data in the data
display. Double-click on any equation or plot and use the Browse Data function to locate the
response parameter or equation in the DDS window. Here “xmtr_bud_gain” is a 2dimensional scalar matrix. The first index is the “component” index and the second element
is the “p_in” index.
7-15
Lab 2: System Budget Analysis
7.4.2
Data Indexing (the “::” operator):
The “::” operator is used to index data in a data array on the DDS page.
Three transposed listing boxes of the xmtr_bud_gain data array are shown below.
The first just lists the data:
Component
a1_MIX1
a2_BPF1
a3_Preamp
a4_Poweramp
a5_BPF2
a6_Term2
z0_PORT1
z1_PORT3
xmtr_bud_gain
p_in=-50.000
p_in=-10.000
-0.000
0.000
-6.500
-6.500
-7.500
-7.500
22.500
22.344
34.500
31.598
33.500
30.598
0.000
0.000
57.000
17.000
There are two ways to use the “::” operator. First if the operator is used with no numbers on
either side, then the “::” operator selects the entire index of that array. Therefore
“xmtr_bud_gain” is identically equal to “xmtr_bud_gain[::,::]” as shown below. A fast way to
make this change is to click directly on “xmtr_bud_gain” in the data table and add the “[::,::]
to the end. The results will immediately update with the new data.
Component
a1_MIX1
a2_BPF1
a3_Preamp
a4_Poweramp
a5_BPF2
a6_Term2
z0_PORT1
z1_PORT3
xmtr_bud_gain[::,::]
p_in=-50.000
p_in=-10.000
-0.000
0.000
-6.500
-6.500
-7.500
-7.500
22.500
22.344
34.500
31.598
33.500
30.598
0.000
0.000
57.000
17.000
Lastly, if numbers are included on both sides of the :: operator you can explicitly select a
subset of the data array. Therefore “xmtr_bud_gain[0::3,::] selects the first 4 rows of data
and all the columns of data as shown below.
Component
a1_MIX1
a2_BPF1
a3_Preamp
a4_Poweramp
7-16
xmtr_bud_gain[0::3,::]
p_in=-50.000
p_in=-10.000
-0.000
0.000
-6.500
-6.500
-7.500
-7.500
22.500
22.344
Lab 2: System Budget Analysis
7.4.3
Independent Variable Values (the “indep” function):
Use the “indep” function to display the component values in a listing box.
The “indep” function is used to gather the values associated with a particular index in an
array of data. Apply the “indep” function as show below to get the names of the
indep(xmtr_bud_gain[::,0])
a1_MIX1
a2_BPF1
a3_Preamp
a4_Poweramp
a5_BPF2
a6_Term2
z0_PORT1
z1_PORT3
components.
7.4.4
Find Position in a Vector (the “find_index” Function):
The “find_index” function can be used to get the index of a piece of data in a vector.
As shown below the “find_index” function can be added to the previous listing box to find the
index value of the "a6_Term2" element. The "a6_Term2" element is the 7th element in the
array (the 1st element has the index 0).
find_index(indep(xmtr_bud_gain[::,0]),"a6_Term2")
5
7-17
Lab 2: System Budget Analysis
7.4.5
Putting it all together:
Add the following equations to your DDS.
Eqn last=find_index(indep(xmtr_bud_gain[::,0]),"a6_Term2")
Eqn IF2RF_bud_gain=xmtr_bud_gain[0::last,::]
Eqn IF2RF_bud_gain_comp=xmtr_bud_gain_comp[0::last,::]
The equation named “last” is the index value for "a6_Term2". It is used in the next two
equations to get only the IF to RF gain and the IF to RF gain compression.
We can now create a listing box to display those values:
Component
a1_MIX1
a2_BPF1
a3_Preamp
a4_Poweramp
a5_BPF2
a6_Term2
IF2RF_bud_gain
p_in=-50.000
p_in=-10.000
-0.000
0.000
-6.500
-6.500
-7.500
-7.500
22.500
22.344
34.500
31.598
33.500
30.598
IF2RF_bud_gain_comp
p_in=-50.000
p_in=-10.000
0.000
-0.000
0.000
0.000
0.000
0.000
0.000
0.156
0.000
2.901
0.000
2.901
NOTE: You may notice some of the numbers on your data display page are in scientific
notation, i.e. –1.446E-15. In the box above the numbers were represented as type Full
instead of Auto. To do this double-click on the table and select the Plot Options tab and
change the format from Auto to Full.
7.5
Budget Analysis with an Additional Amplifier:
1. Open the schematic “b_xmtr_budget_gain”.
2. “Save As…” the schematic with the new name “e_xmtr_budget_gain_amp”.
3. Copy the a3_Preamp and insert the new amplifier in between the first band-pass
filter, a2_BPF1, and the preamplifier itself, a3_Preamp.
4. Change the settings for the following parameters on the new amplifier:

Instance Name

S21
7-18
to
a3a_Amp
to
dbpolar (10,0)
– units to None.
Lab 2: System Budget Analysis
5. Perform the simulation. The data set name should default to
“e_xmtr_budget_gain_amp”.
6. “Save As…” the data display window “b1_xmtr_budget_gain_sort” with the new
name “e_xmtr_budget_gain_amp”.
7. Change the default data set name to “e_xmtr_budget_gain_amp”.
The final table in the data display window should show the following results:
Component
a1_MIX1
a2_BPF1
a3a_Amp
a3_Preamp
a4_Poweramp
a5_BPF2
a6_Term2
IF2RF_bud_gain
p_in=-50.000
p_in=-10.000
-0.000
0.000
-6.500
-6.500
-7.500
-7.500
2.500
2.498
32.500
30.798
44.497
32.095
43.497
31.095
IF2RF_bud_gain_comp
p_in=-50.000
p_in=-10.000
0.000
-0.000
0.000
0.000
0.000
0.000
0.000
0.002
0.000
1.701
0.000
12.402
0.000
12.402
7-19
Lab 2: System Budget Analysis
Note:
Since we used the “find_index” function, updates of the listing will still not include PORT3.
7.6
Review of Lab2:
In this lab, budget analysis was performed on the transmitter design to observe the gain and
gain compression at each stage in the cascade of elements. Budget analysis was also
performed on a receiver design to observe the NF and SNR degradation at each stage.
Budget is a useful tool for determining where the performance degradation is occurring in a
system. This allows the system designer to optimize the performance of specific
components in the system to meet the overall system design specifications.
7-20
Download