# rfckt.amplifier

RF Amplifier

## Description

Use the `rfckt.amplifier` object to represent RF amplifiers that are characterized by network parameters, noise data, and nonlinear data

Use the `read` object function to read the amplifier 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.amplifier``
``h = rfckt.amplifier(Name,Value)``

### Description

example

````h = rfckt.amplifier` returns an amplifier circuit object whose properties all have their default values.```

example

````h = rfckt.amplifier(Name,Value)` sets properties using one or more name-value pairs. For example, ```rfckt.amplifier ('IntpType','Cubic')``` creates an RF amplifier circuit that uses cubic interpolation. You can specify multiple name-value pairs. Enclose each property name in quotes. Properties not specified retain their default values.```

## Properties

expand all

Computed S-parameters, noise figure, OIP3, and group delay values, specified as an `rfdata.data` object. For more information refer, Algorithms.

Data Types: `function_handle`

Interpolation method specified one of the following values:

MethodDescription
`Linear`Linear interpolation
`Spline`Cubic spline interpolation
`Cubic`Piecewise cubic Hermite interpolation

Data Types: `char`

Name of amplifier object.

Data Types: `char`

Network parameter data.

Data Types: `function_handle`

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 dBm

• `rfdata.power` object

• `rfdata.ip3` object

Data Types: `double` | `function_handle`

Number of ports. The default value is 2.

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 specified circuit object parameters on X-Y plane `plotyy` Plot parameters of RF circuit or RF data on X-Y plane with Y-axes on both left and right sides `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` Get characteristic impedance of 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 Amplifier using rfckt.amplifier object.

`amp = rfckt.amplifier('IntpType','cubic')`
```amp = rfckt.amplifier with properties: NoiseData: [1x1 rfdata.noise] NonlinearData: [1x1 rfdata.power] IntpType: 'Cubic' NetworkData: [1x1 rfdata.network] nPort: 2 AnalyzedResult: [1x1 rfdata.data] Name: 'Amplifier' ```

Create an RF amplifier using `rfckt.amplifier` object.

`amp = rfckt.amplifier('IntpType','cubic');`

Create an `rfdata.power` object to store output power and phase information.

`powerdata = rfdata.power;`

Define frequency, phase shift, input power, and output power data.

```f = [2.08 2.10]*1.0e9; phase = {[27.1 35.3],[15.4 19.3 21.1]}; pin = {[0.001 0.002],[0.001 0.005 0.01]}; pout = {[0.0025 0.0031],[0.0025 0.0028 0.0028]};```

Assign frequency, phase shift, input power, and output power data to an `rfdata.power` object.

```powerdata.Freq = f; powerdata.Phase = phase; powerdata.Pin = pin; powerdata.Pout = pout;```

Set nonlinearity information parameter in the RF circuit amplifier object.

`amp.NonlinearData = powerdata`
```amp = rfckt.amplifier with properties: NoiseData: [1x1 rfdata.noise] NonlinearData: [1x1 rfdata.power] IntpType: 'Cubic' NetworkData: [1x1 rfdata.network] nPort: 2 AnalyzedResult: [1x1 rfdata.data] Name: 'Amplifier' ```

## Algorithms

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

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

• The `analyze` function 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` function 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-parameters or Z-parameters, the `analyze` function 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` function 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.

As shown in the preceding diagram, the `analyze` function 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 (https://ibis.org/connector/touchstone_spec11.pdf).

Introduced before R2006a