A Python script is included in this article. This script adds further analysis tools over what is available in VSS for performing a cascade analysis on an RF system. Cascade analysis in this context refers to analyzing an RF chain for noise and distortion, primarily third-order intermodultation. Noise and distortion is presented for each component in the RF chain so that component contribution to overall system noise and distortion can be assessed. Please refer to this link for background information on performing cascade analysis in VSS.
This script also uses PyQt5 as the graphical user interface (GUI). PyQt5 must be installed in your environment. Please see this link for installation instructions. (Note: PyQt5 was the current version as of this writing. The top level Python file described below can be edited for use with future versions. The PyQt import statements are at the very top of this .py file)
Microwave Office Project Requirements
The cascade analysis Python script works with an opened Microwave Office (MWO) project. An RF chain must be constructed as a System Diagram document. Only RF Budget (RFB) analysis is used, so the system diagram cannot contain a modulated source.
The input source must be a PORT_SRC. The Spec Type parameter can be either Use doc freq or Specify freq
For secondary signals, such as an LO signal, then TONE source can be used
Test points define the beginning and end of the analysis. A test point whose ID is Begin and a test point whose ID is End must reside in the system diagram:
Preparing the Script
Download and unzip the CascadeAnalysis.zip file.
There is an example AWR project file that can be used initially. There are multiple Python files under the CascadeAnalysisPythonFiles directory. Cascade_Analysis.py is the top level script, the other .py files are for the GUI and are imported into Cascade_Analysis.py automatically.
The .ui files are included. These are the GUI configuration files for the Qt Designer application. They are included in case more customization is needed and information can be found in the link.
Using the Script
Open a compatible project in AWR Design Environment (AWRDE). You can use the one included in the .zip file as an example. Open Python IDE and open the Cascade_Analysis.py script. Then run the script in the IDE. The MainWindow dialog box will open. Below shows the selections available in the MainWindow dialog box:
First select a valid system diagram. Analysis is only calculated for a single frequency. If there are swept variables in the system diagram, then only a single variable setting from each swept variable is allowed. Choose the frequency and if applicable choose each SWPVAR value.
Configure Plots and Configure Measurements bring up new dialog boxes described below. Default Configurations resets all plot parameters to default values. Analyze starts the simulation and updates the measurements. Exit stops the program and closes all the plots
The Configure Plots button from the MainWindow dialog box launches a new dialog box:
Displayed Stages is the x-axis setting. Default values are MIN and MAX to display the entire RF chain. To view a portion of the RF Chain, the set these to the stage numbers. The stage numbers will be visible on any of the plots.
Check boxes allow individual plots to be enabled or disabled. For each plot the y-axis settings can be edited.
The Configure Measurements button from the MainWindow dialog box launches a new dialog box that allows selection of measurement types as shown:
Once the Analyze button is pressed, temporary graphs are constructed in AWRDE, a simulation is run, data from the graphs are read into Python and the AWRDE temporary graphs are deleted. Python graphs are then generated. Details on the measurements within these graphs are described in the FAQ article.
In addition to the Python graphs, Data Files are generated in AWRDE:
Lists of noise and distortion contributors sorted by highest influence to lowest influence
Dynamic Range Figure of Merit is IP3 – Device Excess Noise for each stage. This is an indication of simultaneous noise and distortion performance for each stage
Listing of various system performance measures: Gain, Input/Output power, NF, IP3, P1dB, SNR, SDR(Signal to third-order distortion level ratio)
Sorted list of noise and IP3 sensitivity: change in system noise or distortion to change in individual device noise or distortion.
These Data Files get updated every time the Analyze button is pressed.