Main Content


2-port representation of RF mixer and its local oscillator


Use the mixer class to represent RF mixers and their local oscillators characterized by network parameters, noise data, nonlinearity data, and local oscillator frequency.

Use the read method to read the mixer data from a data file in one of the following formats:

  • Touchstone

  • Agilent® P2D

  • Agilent S2D

  • AMP


mixerIMT and modulator are recommend over rfckt.mixer because they enable you to:

  • Create a two-port mixer or modulator element.

  • Perform frequency translation defined in an intermodulation table (IMT) for a single-tone carrier mixed with a local oscillator (LO) signal.

  • Build a circuit object with a mixer and a modulator element.

  • Model a mixer and a modulator in an RF chain created using an rfbudget object or the RF Budget Analyzer app.

  • Export the mixer or the modulator element to RF Blockset™ or to rfsystem System object™ for circuit envelope or idealized baseband analysis.

(since R2023b)


If you set NonLinearData using rfdata.ip3 or rfdata.power, then the property is converted from scalar OIP3 format to the format of rfdata.ip3 or rfdata.power.




h = rfckt.mixer returns a mixer object whose properties all have their default values.

h = rfckt.mixer(Name,Value) sets properties using one or more name-value pairs. For example, rfckt.mixer('IntpType','cubic') creates RF mixer with piecewise cubic Hermite interpolation as interpolation method. You can specify multiple name-value pairs. Enclose each property name in a quote. Properties not specified retain their default values.


expand all

Computed S-parameters, noise figure, OIP3, and group delay values, specified as object. AnalyzedResult is a read-only property. For more information, see Algorithms.

Data Types: function_handle

Local oscillator frequency, specified as a positive scalar in hertz. If the MixerType is set to 'DownConverter', the mixer output frequency is fout=finflo. If the MixerType is set to 'UpConverter', the mixer output frequency is fout=fin+flo.

Data Types: double

Frequency offset data, specified as a positive vector in hertz. The 'FreqOffset' values correspond to phase noise level values specified by the 'PhaseNoiseLevel' property. By default, this property is empty.

Data Types: double

Interpolation method used in rfckt.mixer, specified as a 1-by-N character array of the following values:

Linear (default)Linear interpolation
SplineCubic spline interpolation
CubicPiecewise cubic Hermite interpolation

Data Types: char

Data from mixer spur table, specified as an rfdata.mixerspur object.

Data Types: function_handle

Type of mixer, specified as 'DownConverter' or 'UpConverter'.

Data Types: char

Object name, specified as an 1-by-N character array. Name is a read-only property.

Data Types: char

Noise information, specified as one of the following:

  • Scalar noise figure in dB

  • rfdata.noise object

  • object

Data Types: double | function_handle

Noise information, specified as one of the following:

  • Scalar OIP3 in dB

  • rfdata.power object

  • rfdata.ip3 object

Data Types: double | function_handle

Network parameter data, specified as a object.

Data Types: double | function_handle

Number of ports, specified as a positive integer. nportt is a read-only property. The default value is 2.

Data Types: double

Phase noise data, specified as a vector in dbc/Hz.

Data Types: double

Object Functions

analyzeAnalyze RFCKT object in frequency domain
calculateCalculate specified parameters for rfckt objects or rfdata objects
circleDraw circles on Smith Chart
extractExtract specified network parameters from rfckt object or data object
listformatList valid formats for specified circuit object parameter
listparamList valid parameters for specified circuit object
loglogPlot specified circuit object parameters using log-log scale
plotPlot circuit object parameters on X-Y plane
plotyyPlot parameters of RF circuit or RF data on xy-plane with two Y-axes
getopDisplay operating conditions
polarPlot specified object parameters on polar coordinates
semilogxPlot RF circuit object parameters using log scale for x-axis
semilogyPlot RF circuit object parameters using log scale for y-axis
smithPlot circuit object parameters on Smith Chart
writeWrite RF data from circuit or data object to file
getz0Calculate characteristic impedance of RFCKT transmission line object
readRead RF data from file to new or existing circuit or data object
restoreRestore data to original frequencies
getopDisplay operating conditions
groupdelayGroup delay of S-parameter object or RF filter object or RF Toolbox circuit object


collapse all

Create an RF mixer using rfckt.mixer.

rfmixer = rfckt.mixer('IntpType','cubic')
rfmixer = 
   rfckt.mixer with properties:

      MixerSpurData: []
          MixerType: 'Downconverter'
                FLO: 1.0000e+09
         FreqOffset: []
    PhaseNoiseLevel: []
          NoiseData: [1x1 rfdata.noise]
      NonlinearData: Inf
           IntpType: 'Cubic'
        NetworkData: [1x1]
              nPort: 2
     AnalyzedResult: [1x1]
               Name: 'Mixer'


The analyze method computes the AnalyzedResult property using the data stored in the rfckt.amplifier object properties as follows:

  • The analyze method uses the data stored in the 'NoiseData' property of the rfckt.amplifier object to calculate the noise figure.

  • The analyze method uses the data stored in the 'NonlinearData' property of the rfckt.amplifier object to calculate OIP3.

    If power data exists in the 'NonlinearData' property, the block extracts the AM/AM and AM/PM nonlinearities from the power data.

    If the 'NonlinearData' property contains only IP3 data, the method computes and adds the nonlinearity by:

    1. Using the third-order input intercept point value in dBm to compute the factor, f, that scales the input signal before the amplifier object applies the nonlinearity:


    2. Computing the scaled input signal by multiplying the amplifier input signal by f.

    3. Limiting the scaled input signal to a maximum value of 1.

    4. Applying an AM/AM conversion to the amplifier gain, according to the following cubic polynomial equation:


      where u is the magnitude of the scaled input signal, which is a unitless normalized input voltage.

  • The analyze function uses the data stored in the 'NetworkData' property of the rfckt.amplifier object to calculate the group delay values of the amplifier at the frequencies specified in freq, as described in the analyze function reference page.

  • The analyze method uses the data stored in the 'NetworkData' property of the rfckt.amplifier object to calculate the S-parameter values of the amplifier at the frequencies specified in freq. If the 'NetworkData' property contains network Y- or Z-parameters, the analyze method first converts the parameters to S-parameters. Using the interpolation method you specify with the 'IntpType' property, the analyze method interpolates the S-parameter values to determine their values at the specified frequencies.

    Specifically, the analyze method orders the S-parameters according to the ascending order of their frequencies, fn. It then interpolates the S-parameters, using the MATLAB® interp1 function. For example, the curve in the following diagram illustrates the result of interpolating the S11 parameters at five different frequencies.

    S11 interpolation results

    For more information, see “One-Dimensional Interpolation” and the interp1 reference page in the MATLAB documentation.

    As shown in the preceding diagram, the analyze method uses the parameter values at fmin, the minimum input frequency, for all frequencies smaller than fmin. It uses the parameters values at fmax, the maximum input frequency, for all frequencies greater than fmax. In both cases, the results may not be accurate, so you need to specify network parameter values over a range of frequencies that is wide enough to account for the amplifier behavior.


[1] EIA/IBIS Open Forum, Touchstone File Format Specification, Rev. 1.1, 2002

Version History

Introduced before R2006a