Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

rfbudget

Create RF budget object and compute RF budget results

Description

Use the rfbudget object to create an rfbudget element to calculate RF budget results of a circuit. You can use any 2-port element in this circuit such as amplifier, modulator, or nport. Open the complete rfbudget circuit in an RF Budget Analyzer app. You can also export the completed circuit to RF Blockset™.

Creation

Syntax

rfobj = rfbudget
rfobj = rfbudget(elements,inputfreq,inputpwr,bandwidth)
rfobj = rfbudget(___,autoupdate)
rfobj = rfbudget(Name,Value)

Description

example

rfobj = rfbudget creates an rfbudget object, rfobj, with default empty property values.

example

rfobj = rfbudget(elements,inputfreq,inputpwr,bandwidth) creates an RF budget object from the input RF elements, and independently computes an RF budget analysis at the specified input frequencies, available input power, and signal bandwidth. The input arguments are stored in the Elements, InputFrequency, AvailableInputPower, and SignalBandwidth properties. The analysis results are stored in dependent properties. By default, if any of the input properties are changed, the object recomputes results.

rfobj = rfbudget(___,autoupdate)sets the 'AUTOUPDATE' property to false. Setting AutoUpdate to false turns off automatic budget recomputation as parameters are changed. You can use this syntax with any of the precious syntaxes.

rfobj = rfbudget(Name,Value)creates RF budget object with additional properties specified by one or more name-value pair arguments. Name is the property name and Value is the corresponding value. You can specify several name-value pair arguments in any order as Name1, Value1, ..., NameN, ValueN. Properties not specified retain their default values.

Properties

expand all

RF budget elements, specified as the comma-separated pair consisting of 'Elements' and an RF toolbox object or cell array of RF toolbox objects. The possible elements are amplifier, modulator, generic rfelement, and nport objects. To specify a circuit consisting of multiple RF objects, specify the elements as a cell array.

Example: a = amplifier;m =modulator;rfbudget('Elements',[a m]) calculates the RF budget analysis of the amplifier and modulator circuit.

Input frequency of signal, specified as the comma-separated pair consisting of 'InputFrequency' and a nonnegative scalar or vector in Hz. If the input frequency is a vector, then the RF budget object calculates the analysis for each input frequency separately.

Example: 'InputFrequency',2e9

Power applied at the input of the cascade, specified as the comma-separated pair consisting of 'AvailableInputPower' and a scalar in dBm.

Example: 'AvailableInputPower',-30

Signal bandwidth at the input of the cascade, specified as the comma-separated pair consisting of 'SignalBandwidth' and a scalar in Hz.

Example: 'SignalBandwidth',10

Option to automatically recompute the RF budget analysis by incorporating changes made to the existing circuit, specified as the comma-separated pair consisting of 'AutoUpdate' and a boolean scalar.

Example: 'AutoUpdate',true

This is a read-only property.

Output frequencies, specified as the comma-separated pair consisting of 'OutputFrequency' and a row vector in Hz.

This is a read-only property.

Output power, specified as the comma-separated pair consisting of 'OutputPower' and a row vector in dBm.

This is a read-only property.

Transducer power gains, specified as the comma-separated pair consisting of 'TransducerGain' and a row vector in dB.

This is a read-only property.

Noise figures, specified as the comma-separated pair consisting of 'NF' and a row vector in dB.

This is a read-only property.

Output-referred third-order intercept, specified as the comma-separated pair consisting of 'OIP3' and a row vector in dBm.

This is a read-only property.

Input-referred third-order intercept, specified as the comma-separated pair consisting of 'IIP3' and a row vector in dBm.

This is a read-only property.

Signal-to-noise ratio, specified as the comma-separated pair consisting of 'SNR' and a row vector in dB.

Object Functions

showDisplay RF budget object in RF Budget Analyzer app
computeBudgetCompute results of RFbudget object
exportScriptExport MATLAB code that generates RF budget object
exportRFBlocksetCreate RF Blockset model from RF budget object
exportTestbenchCreate measurement testbench from RF budget object
rfbudget.rfplotPlot cumulative RF budget result versus cascade input frequency

Examples

expand all

Open a default RF budget object.

obj = rfbudget
obj = 

  <a href="matlab:helpPopup rfbudget">rfbudget</a> with properties:

               Elements: []
         InputFrequency: [] Hz 
    AvailableInputPower: [] dBm
        SignalBandwidth: [] Hz 
             AutoUpdate: true

Create an amplifier with a gain of 4 dB.

a = amplifier('Gain',4);

Create a modulator with an OIP3 of 13 dBm.

m = modulator('OIP3',13);

Create an nport using passive.s2p.

n = nport('passive.s2p');

Create an rf element with a gain of 10 dB.

r = rfelement('Gain',10);

Calculate the rf budget of a series of rf elements at an input frequency of 2.1 GHz, an available input power of -30 dB, and a bandwidth of 10 MHz.

b = rfbudget({a m r n},2.1e9,-30,10e6)
b = 

  <a href="matlab:helpPopup rfbudget">rfbudget</a> with properties:

               Elements: [1x4 rf.internal.rfbudget.Element]
         InputFrequency: 2.1 GHz
    AvailableInputPower: -30 dBm
        SignalBandwidth:  10 MHz
             AutoUpdate: true

   Analysis Results
        OutputFrequency: (GHz) [  2.1    3.1    3.1     3.1]
            OutputPower: (dBm) [  -26    -26    -16   -20.6]
         TransducerGain: (dB)  [    4      4     14     9.4]
                     NF: (dB)  [    0      0      0  0.1392]
                   OIP3: (dBm) [  Inf     13     23    18.4]
                   IIP3: (dBm) [  Inf      9      9       9]
                    SNR: (dB)  [73.98  73.98  73.98   73.84]

Show the analysis in the RF Budget Analyzer app.

show(b)

Create an RF system.

Create an RF bandpassfilter using the Touchstone file RFBudget_RF.

f1 = nport('RFBudget_RF.s2p','RFBandpassFilter');

Create an amplifier with a gain of 11.53 dB, a noise figure (NF)of 1.53 dB, and an output third-order intercept (OIP3) of 35 dBm.

a1 = amplifier('Name','RFAmplifier','Gain',11.53,'NF',1.53,'OIP3',35);

Create a demodulator with a gain of 6 dB, a NF of 4 dB, and an OIP3 of 50 dBm.

d = modulator('Name','Demodulator','Gain',-6,'NF',4,'OIP3',50, ...
        'LO',2.03e9,'ConverterType','Down');

Create an IF bandpassfilter using the Touchstone file RFBudget_IF.

f2 = nport('RFBudget_IF.s2p','IFBandpassFilter');

Create an amplifier with a gain of 30 dB, a NF of 8 dB, and an OIP3 of 37 dBm.

a2 = amplifier('Name','IFAmplifier','Gain',30,'NF',8,'OIP3',37);

Calculate the RF budget of the system using an input frequency of 2.1 GHz, an input power of -30 dBm, and a bandwidth of 45 MHz.

b = rfbudget([f1 a1 d f2 a2],2.1e9,-30,45e6)
b = 

  <a href="matlab:helpPopup rfbudget">rfbudget</a> with properties:

               Elements: [1x5 rf.internal.rfbudget.Element]
         InputFrequency: 2.1 GHz
    AvailableInputPower: -30 dBm
        SignalBandwidth:  45 MHz
             AutoUpdate: true

   Analysis Results
        OutputFrequency: (GHz) [   2.1    2.1   0.07    0.07   0.07]
            OutputPower: (dBm) [-31.53    -20    -26  -27.15  2.847]
         TransducerGain: (dB)  [-1.534  9.996  3.996   2.847  32.85]
                     NF: (dB)  [ 1.533  3.064  3.377   3.611  7.036]
                   OIP3: (dBm) [   Inf     35  28.97   27.82  36.96]
                   IIP3: (dBm) [   Inf     25  24.97   24.97  4.116]
                    SNR: (dB)  [ 65.91  64.38  64.07   63.83  60.41]

Plot the available output power.

rfplot(b,'Pout')
view(90,0)

Plot the transducer gain.

rfplot(b,'GainT')
view(90,0)

Introduced in R2017a

Was this topic helpful?