Contenido principal

resonantFrequency

R2026b

Calculate and plot resonant frequency of antenna

Since R2024a

    Description

    resonantFrequency(object,frequency) marks the resonant frequencies on the impedance plot of the specified antenna or array in the specified frequency range. If the function detects no resonant frequency in the specified frequency range, it plots the impedance of the antenna or array without any marked points.

    resonantFrequency(object,frequency,Method="Sparameters") marks the resonant frequencies on the S11 plot. If the function detects no resonant frequency in the specified range, it plots the S11 of the antenna or array without any marked points.

    resonantFrequency(___,Name=Value) specifies additional options using one or more name-value arguments, in addition to any of the input argument combinations from the previous syntaxes. For example, resonantFrequency(dipole,60e6:1e6:80e6,Threshold=15) marks the resonant frequencies of the dipole antenna on the impedance plot in the 60 MHz to 80 MHz range with a threshold of 15 ohms.

    fRES = resonantFrequency(object,frequency) returns the resonant frequencies fRES of the specified antenna or array in the specified frequency range. fRES is empty if the function detects no resonant frequency in the specified frequency range, and is a vector if the function detects more than one resonant frequency.

    fRES = resonantFrequency(object,frequency,Name=Value) specifies additional options using one or more name-value arguments. For example, fRES = resonantFrequency(dipole,60e6:1e6:80e6,Mthod="Sparameters",Threshold=-10) marks the resonant frequencies on the S11 plot of the dipole antenna in the 60 MHz to 80 MHz range with an S11 threshold of -10 dB.

    [fRES,zRES,Z,typRES] = resonantFrequency(object,frequency) also returns the impedances zRES and the resonance types typRES (series or parallel) corresponding to the resonant frequencies fRES, and the impedance values Z across the specified frequency range. zRES is a vector and typRES is a string array if the function detects more than one resonant frequency.

    example

    [fRES,zRES,Z,typRES] = resonantFrequency(object,frequency,Name=Value) specifies additional options using one or more name-value arguments.

    example

    [fRES,sRES,S] = resonantFrequency(object,frequency,Method="Sparameters") returns the resonant frequencies fRES, the corresponding S11 values sRES, and the S11 values S across the specified frequency range. sRES is a vector if the function detects more than one resonant frequency.

    [fRES,sRES,S] = resonantFrequency(object,frequency,Method="Sparameters",Name=Value) specifies additional options using one or more name-value arguments.

    [___,sweepobj] = resonantFrequency(___,SweepOption=Value) uses the specified frequency sweep interpolation method to calculate the resonant frequencies, and additionally returns the interpolation method type and rational fit parameters stored in a frequency sweep object sweepobj. You can use this syntax with any of the output argument combinations from the previous syntaxes.

    Examples

    collapse all

    This example shows how to calculate and plot the resonant frequency of a dipole antenna using Impedance method and S-parameters method.

    Calculate and Plot Resonant Frequency using Impedance Method

    Create a dipole antenna operating at 75 MHz. Calculate and plot the resonant frequency of a dipole over a frequency span of 50 MHz - 100 MHz.

    h = design(dipole,75e6);
    resonantFrequency(h,50e6:1e6:100e6);

    Figure contains an axes object. The axes object with title Impedance for dipole, xlabel Frequency (MHz), ylabel Impedance (ohms) contains 6 objects of type line, constantline, scatter. These objects represent Resistance, Reactance, Threshold (+/-15.0 ohms).

    Calculate and Plot Resonant Frequency using S-parameters Method

    Calculate and plot the resonant frequency of the same dipole, using S-parameters method, over the same frequency span.

    resonantFrequency(h,50e6:1e6:100e6,Method="Sparameters");

    Figure contains an axes object. The axes object with title S11 for dipole, xlabel Frequency (MHz), ylabel Magnitude (dB) contains 3 objects of type line, constantline, scatter. These objects represent dB(S_{11}), Threshold (-10.00 dB).

    Input Arguments

    collapse all

    Antenna or array to calculate resonant frequency, specified as one of the following options:

    Example: dipole

    Frequency range to calculate the resonant frequency, specified as a positive vector in Hertz.

    Example: [50e6:5e6:80e6]

    Data Types: double

    Name-Value Arguments

    collapse all

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Example: Method="Sparameters"

    Option to enable parallel pool, specified as a logical value. The default value is false. Set this option to true or 1 to enable the parallel pool. Use parallel pool to speed up the resonant frequency calculations at multiple frequencies for computationally large antennas and arrays. To use this feature, you need a license to the Parallel Computing Toolbox™.

    Example: UseParallel=true

    Data Types: logical

    Method to use for resonant frequency calculation, specified as either "Impedance" or "Sparameters". The default method is "Impedance". When the method is specified as "Impedance", zero-crossings of the reactance are used to find the resonant frequency, and zRES and Z are the outputs. When the method is specified as "Sparameters", the negative peaks of S11 are used to find the resonant frequency. The output typRES (whether the impedance is series or parallel) is supported only when the method is "Impedance".

    Example: "Sparameters"

    Data Types: string

    Sweep interpolation method, specified as one of the following:

    • "direct" — Compute resonant frequency using all the specified frequencies.

    • "interp" — Interpolate the sweep using rational fitting to compute resonant frequency with minimum possible set of frequency points within the specified frequency range.

    • "interpWithGrad" — Interpolate the sweep using rational fitting with gradient calculations to compute resonant frequency with minimum possible set of frequency points within the specified frequency range.

    • frequencySweep object — Interpolate the sweep using parameters such as error tolerance, number of frequency points, and number of iterations that you set in the frequencySweep object.

    Frequency sweep interpolation methods use rational fitting to interpolate results over the frequency range defined by two or more specified frequency points.

    When you use an interpolating sweep, the frequencies at which the resonantFrequency function computes and plots the results can differ from the frequencies in the input frequency vector. The effective set of frequencies depends on SweepOption:

    • If SweepOption is a frequencySweep object, the effective frequencies are determined by its NumFreqs property.

    • If SweepOption is "interp" or "interpWithGrad", the number of frequency points depends on how many frequencies you provide:

      • If you provide more than 30 frequencies, the sweep uses your frequencies directly.

      • If you provide 30 or fewer frequencies, the sweep uses the default of 100 points across the band.

    Sweep Interpolation Methods

    MethodWhen to UseTrade-off
    "direct"Results at all specified frequenciesHigh computational cost; slow for large sweeps
    "interp"Faster results with automatic accuracy control and fewer simulationsNo control over number of frequency points
    "interpWithGrad"Faster results with gradient information for optimizationSlightly more expensive than "interp"
    frequencySweep objectManual control over frequency resolution, error tolerance, and number of iterationsRequires manual tuning; no adaptive refinement

    To use this feature, you need an RF Toolbox™ license.

    Example: [fRES,sRES,S,sweepobj] = resonantFrequency(dipole,[10e6:1e6:180e6],Method="Sparameters",SweepOption="interp")

    Data Types: string

    Threshold value for impedance or S11, specified as a real scalar in ohms when the Method is set to "Impedance" or a real scalar in dB when the Method is set to Sparameters.

    Example: -12

    Data Types: double

    Reference impedance to calculate the S-parameters, specified as a positive real scalar in ohms. The default reference impedance is 50 ohms. This argument is valid only when the Method argument is set to Sparameters.

    Example: 75

    Data Types: double

    Option to enable or disable the data tips, specified as a logical true to enable or logical false to disable the data tips. By default, the data tips are enabled.

    Example: Specifying PlotDataTips=false disables the data tips on the plot.

    Data Types: logical

    Output Arguments

    collapse all

    Resonant frequency in Hz of the specified antenna, returned as either positive scalar value for a single resonance or a positive vector for multiple resonances within the specified frequency sweep.

    Example: 75.33e6

    Impedance values corresponding to the resonant frequencies, returned as a real or complex scalar or vector. zRES is empty when there are no resonant frequencies within the specified frequency range. And zRES is a vector when multiple resonances are found within the specified frequency range.

    Example: 75

    Data Types: double
    Complex Number Support: Yes

    S11 values corresponding to the resonant frequencies, returned as a complex vector in dB.

    Data Types: double
    Complex Number Support: Yes

    Impedance values over entire frequency range, returned as a complex vector in ohms.

    Data Types: double
    Complex Number Support: Yes

    S11 values over the entire frequency range, returned as a complex vector in dB.

    Data Types: double

    Resonance type, returned as a string. The resonance type is either "Series", "Parallel" or "Unclear". When the reactance in the impedance plot approaches zero but does not cross it, resonance type is returned as "Unclear".

    Example: "Parallel"

    Data Types: string

    Frequency sweep interpolation parameters, returned as a frequencySweep object.

    Tips

    • Interpolating frequency sweeps may report results at frequencies that differ from the frequencies you specify. If you require results at exact frequencies, either use the default direct sweep, or set the NumFreqs property of the frequencySweep object greater than or equal to the number of frequencies you provide.

    • When using the "interp" or "interpWithGrad" sweep options, provide more than 30 frequency points to have the sweep use your frequency resolution exactly; otherwise the sweep defaults to 100 points across the band.

    Version History

    Introduced in R2024a

    expand all