Engee documentation

instbw

Estimation of instantaneous bandwidth.

Library

EngeeDSP

Syntax

Function call

  • ibw = instbw(x,fs) — evaluates the instantaneous bandwidth of the signal x, sampled with frequency fs. If x — matrix, then the function evaluates the instantaneous bandwidth independently for each column and returns the result in the corresponding column ibw.

  • ibw = instbw(x,t) — evaluates the instantaneous bandwidth x measured at time points stored in t.

  • ibw = instbw(tfd,fd,td) — evaluates the instantaneous signal bandwidth, time-frequency distribution tfd which is sampled at the bandwidth values stored in fd, and the time values stored in td.

  • ibw = instbw(___,Name=Value) — sets additional parameters for any of the previous syntaxes using arguments of the "name-value" type. You can specify the scale factor or frequency limits used in the calculation. For example, FrequencyLimits=[10 20] calculates the instantaneous bandwidth of the input signal in the range of 10 Hz to 20 Hz.

  • ibw,t = instbw(___) — also returns t, a vector of sampling periods corresponding to ibw.

  • instbw(___) — displays the estimated instantaneous bandwidth without output arguments.

Arguments

Input arguments

# x — input signal

+ vector | the matrix

Details

An input signal specified as a vector or matrix. If x — vector, then instbw processes it as a single channel. If x — matrix, then the function calculates the instantaneous bandwidth independently for each column and returns the result in the corresponding column of the function ibw.

Типы данных

Float32, Float64

Support for complex numbers

Yes

# fs — sampling rate
positive scalar

Details

The sampling rate, set as a positive scalar. The sampling rate is the number of samples per unit of time. If the unit of time is seconds, then the sampling frequency is indicated in Hz.

Типы данных

Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

# t — sampling periods

+ the real vector

Details

Sampling periods specified as a real vector.

A real vector is a moment in time corresponding to each element. x.

Типы данных

Float32, Float64

# tfd — time-frequency distribution

+ the matrix

Details

The time-frequency distribution, defined as a matrix sampled with frequencies stored in fd, and the time values stored in td.

Типы данных

Float32, Float64

# fd,td — frequency and time values for the time-frequency distribution

+ vectors

Details

Frequency and time values for the time-frequency distribution, specified as vectors.

Типы данных

Float32, Float64

Name-value input arguments

Specify optional argument pairs as Name=Value, where Name — the name of the argument, and Value — the appropriate value. Name-value arguments should be placed after the other arguments, but the order of the pairs does not matter.

# FrequencyLimits — frequency range

+ [0 fs/2] (default for real signals) | [-fs/2 fs/2] (default for complex signals) | two-element vector

Details

The frequency range specified as a two-element vector in Hz. If FrequencyLimits omitted, this default argument is [0 fs/2] for real signals and [-fs/2 fs/2] for complex signals.

Типы данных

Float32, Float64

# scaleFactor is the scale factor for the spectral moment

+ sqrt(4*pi) (default) | the real scalar

Details

The scale factor for the spectral moment, given as a real scalar.

Типы данных

Float32, Float64

# out — type of output data

+ :data (by default) | :plot

Details

Type of output data:

  • :data — the function returns data;

  • :plot — the function returns a graph.

Output arguments

# ibw — Instant bandwidth

+ vector | the matrix

Details

The instantaneous bandwidth returned as a vector or matrix with the same dimensions as the input data.

Типы данных

Float32, Float64

# t is the bandwidth estimation time

+ the real vector

Details

The bandwidth estimation time returned as a real vector.

Типы данных

Float32, Float64

If t, fd or td If they have single precision, and the input vector or matrix has double precision, then the function returns the result with single precision. The type of output data does not depend on the type of sampling frequency data.

Additional Info

Instantaneous bandwidth

Details

The instantaneous bandwidth of an unsteady signal is a time—varying parameter that characterizes the spread of the instantaneous frequency relative to its average value at a given time [1], [2].

Function instbw evaluates the instantaneous bandwidth as the square root of the second conditional spectral moment of the time-frequency distribution of the input signal. Function:

  1. Calculates the power spectrum of a spectrogram input signal using the function pspectrum and uses the spectrum as a time-frequency distribution.

  2. Estimates the instantaneous frequency using the formula

where — the instantaneous frequency returned by the function instfreq and evaluated by the formula

Literature

  1. Boashash, Boualem. «Estimating and Interpreting the Instantaneous Frequency of a Signal. I. Fundamentals.» Proceedings of the IEEE® 80, no. 4 (April 1992): 520–538. https://doi.org/10.1109/5.135376.

  2. Boashash, Boualem. «Estimating and Interpreting The Instantaneous Frequency of a Signal. II. Algorithms and Applications.» Proceedings of the IEEE 80, no. 4 (May 1992): 540–568. https://doi.org/10.1109/5.135378.