# rfckt.mixer

2-port representation of RF mixer and its local oscillator

## Description

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

Note

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.

## Creation

### Description

example

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.

## Properties

expand all

Computed S-parameters, noise figure, OIP3, and group delay values, specified as rfdata.data 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 ${f}_{out}={f}_{in}-{f}_{lo}$. If the MixerType is set to 'UpConverter', the mixer output frequency is ${f}_{out}={f}_{in}+{f}_{lo}$.

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:

MethodDescription
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

• rfdata.nf 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 rfdata.network 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

 analyze Analyze RFCKT object in frequency domain calculate Calculate specified parameters for rfckt objects or rfdata objects circle Draw circles on Smith Chart extract Extract specified network parameters from rfckt object or data object listformat List valid formats for specified circuit object parameter listparam List valid parameters for specified circuit object loglog Plot specified circuit object parameters using log-log scale plot Plot circuit object parameters on X-Y plane plotyy Plot parameters of RF circuit or RF data on X-Y plane with two Y-axes getop Display operating conditions polar Plot specified object parameters on polar coordinates semilogx Plot RF circuit object parameters using log scale for x-axis semilogy Plot RF circuit object parameters using log scale for y-axis smith Plot circuit object parameters on Smith chart write Write RF data from circuit or data object to file getz0 Calculate characteristic impedance of RFCKT transmission line object read Read RF data from file to new or existing circuit or data object restore Restore data to original frequencies getop Display operating conditions groupdelay Group delay of S-parameter object or RF filter object or RF Toolbox circuit object

## Examples

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 rfdata.network]
nPort: 2
AnalyzedResult: [1x1 rfdata.data]
Name: 'Mixer'

## Algorithms

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:

${F}_{AM/AM}\left(u\right)=u-\frac{{u}^{3}}{3}$

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:

${F}_{AM/AM}\left(u\right)=u-\frac{{u}^{3}}{3}$

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.

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.

## References

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