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

Syntax

``h = rfckt.mixer``
``h = rfckt.mixer(Name,Value)``

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
`Spline`Cubic spline interpolation
`Cubic`Piecewise 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. `nport`t 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

Introduced before R2006a