Engee documentation

mixerIMT

Creates an IMT mixer.

Library

EngeeRF

Description

Use an IMT mixer to perform the frequency conversion defined in the intermodulation table (see [1], [2]) for a single-tone carrier signal mixed with a reference oscillator (LO) signal. The IMT object of the mixer takes into account non-linear gain, device noise and phases, as well as parasitic components. For a single-tone carrier signal , non - linearly modulated by a reference oscillator signal with a frequency intermodulation components at the mixer output occur at frequencies:

where

  • — the carrier frequency of the input RF signal;

  • — frequency of the reference oscillator;

  • and — non-negative integers (from 0 up to the order of nonlinearity);

For a step-down converter, the desired output tone is , and for the boost converter — . All other combinations and They are parasitic intermodulation components.

Syntax

Function call

  • imt = mixerIMT() — creates an IMT mixer object, the properties of which are set by default.

  • imt = mixerIMT(Name=Value) — creates an IMT mixer object with properties specified by one or more arguments of the type Name=Value. Unspecified properties retain their default values.

Arguments

Input arguments «name-value»

# Name — the name of the IMT mixer

+ "MixerIMT" (by default) | line

Details

The IMT name of the mixer. All names must be valid variable names.

Типы данных

String

# ConverterType — conversion type

+ "Up" (by default) | "Down"

Details

The type of conversion specified by one of the following values:

  • "Up";

  • "Down".

Типы данных

String

# ReferenceInputPower — reference input power, dBm

+ −15 (by default) | scalar

Details

Reference input power in dBm, set as a scalar.

Типы данных

Float64

# NominalOutputPower — rated output power, dBm

+ −5 (by default) | scalar

Details

Rated output power in dBm, set as a scalar.

Типы данных

Float64

# NF — noise factor, dBm

+ 0 (by default) | scalar

Details

The noise factor in dBm, set as a scalar.

Типы данных

Float64

# LO is the frequency of the reference oscillator, Hz

+ 1e9 (by default) | a real positive scalar

Details

The frequency of the reference oscillator in Hz, set as a real finite positive scalar.

# Zin — input resistance, ohms

+ 50 (by default) | positive scalar

Details

Input resistance in ohms, set as a positive scalar.

Типы данных

Float64

# Zout — output resistance, ohms

+ 50 (by default) | positive scalar

Details

Output resistance in ohms, set as a positive scalar.

Типы данных

Float64

# IMT — inharmonic spectral components

+ [99.0 99.0 99.0; 99.0 0.0 99.0; 99.0 99.0 99.0] (by default) | real square matrix

Details

Inharmonic spectral components of IMT for plotting, given as a real square matrix.

# UseDataFile — option to use S2D file

+ false (by default) | true

Details

The option to use the S2D file, set as true or false.

# FileName is the name of the S2D file

+ "" (by default) | line

Details

The name of the S2D file.

Типы данных

String

# NumPorts — number of ports

+ 2 (default) | scalar

Details

The number of ports specified as an integer scalar.

This argument is read-only.
Типы данных

Int64

# Terminals — terminal names

+ ("p1+", "p2+", "p1−", "p2−") (by default) | tuple of strings

Details

Terminal names specified as a tuple of strings.

This argument is read-only.

Output arguments

# imt — mixer’s IMT object

+ object

Details

The mixer’s IMT object.

Methods

sparameters: Calculation of S-parameters for radio frequency data, networks, circuits and related objects rfplot: Plotting the S-parameter data, as well as the dependence of the total result of calculating the RF budget on the input frequency of the cascade

Examples

Creating an IMT mixer with default properties

Details

Let’s create an IMT mixer and display its properties.

using EngeeRF

imt=mixerIMT()

println("Name: ", imt.Name)
println("ConverterType: ", imt.ConverterType)
println("ReferenceInputPower: ", imt.ReferenceInputPower)
println("NominalOutputPower: ", imt.NominalOutputPower)
println("NF: ", imt.NF)
println("LO: ", imt.LO)
println("Zin: ", imt.Zin)
println("Zout: ", imt.Zout)
println("IMT: ", imt.IMT)
println("UseDataFile: ", imt.UseDataFile)
println("FileName: ", imt.FileName)
println("NumPorts: ", imt.NumPorts)
println("Terminals: ", imt.Terminals)
Name: MixerIMT
ConverterType: Up
ReferenceInputPower: -15.0
NominalOutputPower: -5.0
NF: 0.0
LO: 1.0e8
Zin: 50.0
Zout: 50.0
IMT: [99.0 99.0 99.0; 99.0 0.0 99.0; 99.0 99.0 99.0]
UseDataFile: false
FileName:
NumPorts: 2
Terminals: ("p1+", "p2+", "p1-", "p2-")

Literature

  1. Faria, Daniel., Lawrence Dunleavy, and Terje Svensen. The Use of Intermodulation Tables for Mixer Simulations. Microwave Journal, April 2002. https://www.microwavejournal.com/articles/3430-the-use-of-intermodulation-tables-for-mixer-simulations

  2. RF Mixing / Multiplication: Frequency Mixers. Electronic Notes. https://www.electronics-notes.com/articles/radio/rf-mixer/rf-mixing-basics.php