Accelerating the pace of engineering and science

# doppler.bigaussian

Construct bi-Gaussian Doppler spectrum object

## Syntax

dop = doppler.bigaussian(property1,value1,...)
dop = doppler.bigaussian

## Description

The doppler.bigaussian function creates a bi-Gaussian Doppler spectrum object to be used for the DopplerSpectrum property of a channel object (created with either the rayleighchan function or the ricianchan function).

dop = doppler.bigaussian(property1,value1,...) creates a bi-Gaussian Doppler spectrum object with properties as specified by the property/value pairs. If you do not specify a value for a property, the property is assigned a default value.

dop = doppler.bigaussian creates a bi-Gaussian Doppler spectrum object with default properties. The constructed Doppler spectrum object is equivalent to a single Gaussian Doppler spectrum centered at zero frequency. The equivalent command with property/value pairs is:

```dop = doppler.bigaussian('SigmaGaussian1', 1/sqrt(2), ...
'SigmaGaussian2', 1/sqrt(2), ...
'CenterFreqGaussian1', 0, ...
'CenterFreqGaussian2', 0, ...
'GainGaussian1', 0.5, ...
'GainGaussian2', 0.5)```

## Properties

The bi-Gaussian Doppler spectrum object contains the following properties.

PropertyDescription
SpectrumTypeFixed value, 'BiGaussian'
SigmaGaussian1Normalized standard deviation of first Gaussian function (real positive finite scalar value)
SigmaGaussian2Normalized standard deviation of second Gaussian function (real positive finite scalar value)
CenterFreqGaussian1Normalized center frequency of first Gaussian function (real scalar value between -1 and 1)
CenterFreqGaussian2Normalized center frequency of second Gaussian function (real scalar value between -1 and 1)
GainGaussian1Power gain of first Gaussian function (linear scale, real nonnegative finite scalar value)
GainGaussian2Power gain of second Gaussian function (linear scale, real nonnegative finite scalar value)

All properties are writable except for the SpectrumType property.

The properties SigmaGaussian1, SigmaGaussian2, GainGaussian1, and GainGaussian2 are normalized by the MaxDopplerShift property of the associated channel object.

Analytically, the normalized standard deviations of the first and second Gaussian functions are determined as ${\sigma }_{G1,norm}={\sigma }_{G1}/{f}_{d}$ and ${\sigma }_{G2,norm}={\sigma }_{G2}/{f}_{d}$, respectively, where ${\sigma }_{G1}$ and ${\sigma }_{G2}$ are the standard deviations of the first and second Gaussian functions, and ${f}_{d}$ is the maximum Doppler shift, in hertz. Similarly, the normalized center frequencies of the first and second Gaussian functions are determined as ${f}_{G1,norm}={f}_{G1}/{f}_{d}$ and ${f}_{G2,norm}={f}_{G2}/{f}_{d}$, respectively, where ${f}_{G1}$ and ${f}_{G2}$ are the center frequencies of the first and second Gaussian functions. The properties GainGaussian1 and GainGaussian2 correspond to the power gains ${C}_{G1}$ and ${C}_{G2}$, respectively, of the two Gaussian functions.

## Theory and Applications

The bi-Gaussian power spectrum consists of two frequency-shifted Gaussian spectra. The COST207 channel models ([1], [2], [3]) specify two distinct bi-Gaussian Doppler spectra, GAUS1 and GAUS2, to be used in modeling long echos for urban and hilly terrain profiles.

The normalized bi-Gaussian Doppler spectrum is given analytically by:

${S}_{G}\left(f\right)={A}_{G}\left[\frac{{C}_{G1}}{\sqrt{2\pi {\sigma }_{G1}^{2}}}\mathrm{exp}\left(-\frac{{\left(f-{f}_{G1}\right)}^{2}}{2{\sigma }_{G1}^{2}}\right)+\frac{{C}_{G2}}{\sqrt{2\pi {\sigma }_{G2}^{2}}}\mathrm{exp}\left(-\frac{{\left(f-{f}_{G2}\right)}^{2}}{2{\sigma }_{G2}^{2}}\right)\right]$

where ${\sigma }_{G1}$ and ${\sigma }_{G2}$ are standard deviations, ${f}_{G1}$ and ${f}_{G2}$ are center frequencies, ${C}_{G1}$ and ${C}_{G2}$ are power gains, and ${A}_{G}=\frac{1}{{C}_{G1}+{C}_{G2}}$ is a normalization coefficient.

If either ${f}_{G1}=0$ or ${f}_{G2}=0$, a frequency-shifted Gaussian Doppler spectrum is obtained.

## Examples

The following MATLAB code first creates a bi-Gaussian Doppler spectrum object with the same parameters as that of a COST 207 GAUS2 Doppler spectrum. It then creates a Rayleigh channel object with a maximum Doppler shift of ${f}_{d}=30$ and assigns the constructed Doppler spectrum object to its DopplerSpectrum property.

```dop_bigaussian = doppler.bigaussian('SigmaGaussian1', 0.1, ...
'SigmaGaussian2', 0.15, 'CenterFreqGaussian1', 0.7, ...
'CenterFreqGaussian2', -0.4, 'GainGaussian1', 1, ...
'GainGaussian2', 1/10^1.5)
chan = rayleighchan(1e-3, 30);
chan.DopplerSpectrum = dop_bigaussian;```