Miscellaneous SP Functions
Signal Processing (SP) Module

## Functions

cvec | itpp::xcorr (const cvec &x, const cvec &y, const int max_lag=-1, const std::string scaleopt="none")
| Cross Correlation.
cvec | itpp::xcorr (const cvec &x, const int max_lag=-1, const std::string scaleopt="none")
| Cross Correlation.
void | itpp::xcorr (const cvec &x, const cvec &y, cvec &out, const int max_lag=-1, const std::string scaleopt="none", bool autoflag=true)
| Cross Correlation.
mat | itpp::cov (const mat &X, bool is_zero_mean=false)
| Covariance matrix calculation.
vec | itpp::spectrum (const vec &v, int nfft=256, int noverlap=0)
| Power spectrum calculation.
vec | itpp::spectrum (const vec &v, const vec &w, int noverlap=0)
| Power spectrum calculation.
vec | itpp::filter_spectrum (const vec &a, int nfft=256)
| Power spectrum calculation of a filter.
vec | itpp::filter_spectrum (const vec &a, const vec &b, int nfft=256)
| Power spectrum calculation of a filter.
void | itpp::xcorr_old (const vec &x, const vec &y, vec &out, const int max_lag=-1, const std::string scaleopt="none")
| Cross-correlation calculation.
void | itpp::xcorr (const vec &x, const vec &y, vec &out, const int max_lag, const std::string scaleopt)
| Cross-correlation calculation.
vec | itpp::xcorr_old (const vec &x, const vec &y, const int max_lag=-1, const std::string scaleopt="none")
| Cross-correlation calculation.
vec | itpp::xcorr (const vec &x, const vec &y, const int max_lag, const std::string scaleopt)
| Cross-correlation calculation.
vec | itpp::xcorr_old (const vec &x, const int max_lag=-1, const std::string scaleopt="none")
| Auto-correlation calculation.
vec | itpp::xcorr (const vec &x, const int max_lag, const std::string scaleopt)
| Auto-correlation calculation.

## Detailed Description

## Function Documentation

## xcorr_old() [1/3]

ITPP_EXPORT void itpp::xcorr_old | ( | const vec & | x,
|  | const vec & | y,
|  | vec & | out,
|  | const int | max_lag = `-1`,
|  | const std::string | scaleopt = `"none"`
| ) |  |

Cross-correlation calculation.

`z=xcorr(x,y,max_lag)`, where x and y are length M vectors (M>1), returns the length `2*max_lag+1` cross-correlation sequence z. (lags: `-max_lag`,...,0,...,max_lag)

For `max_lag=-1` the cross-correlation sequence is of length `2*M-1`, i.e., the cross-correlation for all possible lags.

Scaling options scaleopt:

- none `=>` No scaling of the cross-correlation vector
- biased `=>` Scales the cross-correlation vector by `1/M`
- unbiased `=>` Scales the cross-correlation vector by `1/`(M-abs(lag))
- coeff `=>` Normalises the cross-correlation to 1 for zero lag.

Note
  `max_lag` `<=` `M-1`
  If `x` and `y` are of different length, the shortest one is zero-padded

Parameters

  x | (Input) Vector of samples
  y | (Input) Vector of samples
  out | (Output) The cross correlation between x and y.
  max_lag | (Input) Maximum lag for which the cross-correlation is calculated. The output vector is of size `2*maxlag+1`. Default value: `max_lag=-1` calculates the cross-correlations for all possible lags
  scaleopt | (Input) Indicates how the cross-correlation function should be scaled. Default value: `"none"` indicates that no scaling is done

Definition at line 92 of file sigfun.cpp.

References itpp::energy(), itpp::index_zero_pad(), it_assert, it_error, itpp::Array< T >::set_size(), and itpp::Array< T >::size().

## xcorr() [1/6]

ITPP_EXPORT void itpp::xcorr | ( | const vec & | x,
|  | const vec & | y,
|  | vec & | out,
|  | const int | max_lag,
|  | const std::string | scaleopt
| ) |  |

Cross-correlation calculation.

`z=xcorr(x,y,max_lag)`, where x and y are length M vectors (M>1), returns the length `2*max_lag+1` cross-correlation sequence z. (lags: `-max_lag`,...,0,...,max_lag)

For `max_lag=-1` the cross-correlation sequence is of length `2*M-1`, i.e., the cross-correlation for all possible lags.

Scaling options scaleopt:

- none `=>` No scaling of the cross-correlation vector
- biased `=>` Scales the cross-correlation vector by `1/M`
- unbiased `=>` Scales the cross-correlation vector by `1/`(M-abs(lag))
- coeff `=>` Normalises the cross-correlation to 1 for zero lag.

Note
  `max_lag` `<=` `M-1`
  If `x` and `y` are of different length, the shortest one is zero-padded

Parameters

  x | (Input) Vector of samples
  y | (Input) Vector of samples
  out | (Output) The cross correlation between x and y.
  max_lag | (Input) Maximum lag for which the cross-correlation is calculated. The output vector is of size `2*maxlag+1`. Default value: `max_lag=-1` calculates the cross-correlations for all possible lags
  scaleopt | (Input) Indicates how the cross-correlation function should be scaled. Default value: `"none"` indicates that no scaling is done

Definition at line 82 of file sigfun.cpp.

References itpp::real(), itpp::to_cvec(), and itpp::xcorr().

## xcorr_old() [2/3]

ITPP_EXPORT vec itpp::xcorr_old | ( | const vec & | x,
|  | const vec & | y,
|  | const int | max_lag = `-1`,
|  | const std::string | scaleopt = `"none"`
| ) |  |

Cross-correlation calculation.

`z=xcorr(x,y,max_lag)`, where x and y are length M vectors (M>1), returns the length `2*max_lag+1` cross-correlation sequence z. (lags: `-max_lag`,...,0,...,max_lag)

For `max_lag=-1` the cross-correlation sequence is of length `2*M-1`, i.e., the cross-correlation for all possible lags.

Scaling options scaleopt:

- none `=>` No scaling of the cross-correlation vector
- biased `=>` Scales the cross-correlation vector by `1/M`
- unbiased `=>` Scales the cross-correlation vector by `1/`(M-abs(lag))
- coeff `=>` Normalises the cross-correlation to 1 for zero lag.

Note
  `max_lag` `<=` `M-1`
  If `x` and `y` are of different length, the shortest one is zero-padded

Parameters

  x | (Input) Vector of samples
  y | (Input) Vector of samples
  max_lag | (Input) Maximum lag for which the cross-correlation is calculated. The output vector is of size `2*maxlag+1`. Default value: `max_lag=-1` calculates the cross-correlations for all possible lags
  scaleopt | (Input) Indicates how the cross-correlation function should be scaled. Default value: `"none"` indicates that no scaling is done

Returns
  The cross correlation between x and y.

Definition at line 148 of file sigfun.cpp.

References itpp::xcorr_old().

## xcorr() [2/6]

ITPP_EXPORT vec itpp::xcorr | ( | const vec & | x,
|  | const vec & | y,
|  | const int | max_lag,
|  | const std::string | scaleopt
| ) |  |

Cross-correlation calculation.

`z=xcorr(x,y,max_lag)`, where x and y are length M vectors (M>1), returns the length `2*max_lag+1` cross-correlation sequence z. (lags: `-max_lag`,...,0,...,max_lag)

For `max_lag=-1` the cross-correlation sequence is of length `2*M-1`, i.e., the cross-correlation for all possible lags.

Scaling options scaleopt:

- none `=>` No scaling of the cross-correlation vector
- biased `=>` Scales the cross-correlation vector by `1/M`
- unbiased `=>` Scales the cross-correlation vector by `1/`(M-abs(lag))
- coeff `=>` Normalises the cross-correlation to 1 for zero lag.

Note
  `max_lag` `<=` `M-1`
  If `x` and `y` are of different length, the shortest one is zero-padded

Parameters

  x | (Input) Vector of samples
  y | (Input) Vector of samples
  max_lag | (Input) Maximum lag for which the cross-correlation is calculated. The output vector is of size `2*maxlag+1`. Default value: `max_lag=-1` calculates the cross-correlations for all possible lags
  scaleopt | (Input) Indicates how the cross-correlation function should be scaled. Default value: `"none"` indicates that no scaling is done

Returns
  The cross correlation between x and y.

Definition at line 66 of file sigfun.cpp.

References itpp::real(), itpp::to_cvec(), and itpp::xcorr().

## xcorr() [3/6]

ITPP_EXPORT cvec itpp::xcorr | ( | const cvec & | x,
|  | const cvec & | y,
|  | const int | max_lag = `-1`,
|  | const std::string | scaleopt = `"none"`
| ) |  |

Cross Correlation.

r = xcorr(x,y)
itpp::xcorr
vec xcorr(const vec &x, const int max_lag, const std::string scaleopt)
Auto-correlation calculation.
Definition sigfun.cpp:50

returns the cross-correlation vector r.

Definition at line 74 of file sigfun.cpp.

References itpp::xcorr().

## xcorr_old() [3/3]

ITPP_EXPORT vec itpp::xcorr_old | ( | const vec & | x,
|  | const int | max_lag = `-1`,
|  | const std::string | scaleopt = `"none"`
| ) |  |

Auto-correlation calculation.

`z=xcorr(x,max_lag)`, where x and is a length M vector (M>1), returns the length `2*max_lag+1` auto-correlation sequence z. (lags: `-max_lag`,...,0,...,max_lag)

For `max_lag=-1` the auto-correlation sequence is of length `2*M-1`, i.e., the cross correlation for all possible lags.

Scaling options scaleopt:

- none `=>` No scaling of the auto-correlation vector
- biased `=>` Scales the auto-correlation vector by `1/M`
- unbiased `=>` Scales the auto-correlation vector by `1/`(M-abs(lag))
- coeff `=>` Normalises the auto-correlation so that `acf(x)=1` for zero lag.

Note
  `max_lag` `<=` `M-1`

Parameters

  x | (Input) Vector of samples
  max_lag | (Input) Maximum lag for which the auto-correlation is calculated. The output vector is of size `2*maxlag+1`. Default value `max_lag=-1` calculates the auto-correlations for all possible lags.
  scaleopt | (Input) Indicates how the auto-correlation function should be scaled. Default value: `"none"` indicates that no scaling is done.

Returns
  The auto-correlation of x.

Definition at line 43 of file sigfun.cpp.

References itpp::xcorr_old().

Referenced by itpp::xcorr_old(), and itpp::xcorr_old().

## xcorr() [4/6]

ITPP_EXPORT vec itpp::xcorr | ( | const vec & | x,
|  | const int | max_lag,
|  | const std::string | scaleopt
| ) |  |

Auto-correlation calculation.

`z=xcorr(x,max_lag)`, where x and is a length M vector (M>1), returns the length `2*max_lag+1` auto-correlation sequence z. (lags: `-max_lag`,...,0,...,max_lag)

For `max_lag=-1` the auto-correlation sequence is of length `2*M-1`, i.e., the cross correlation for all possible lags.

Scaling options scaleopt:

- none `=>` No scaling of the auto-correlation vector
- biased `=>` Scales the auto-correlation vector by `1/M`
- unbiased `=>` Scales the auto-correlation vector by `1/`(M-abs(lag))
- coeff `=>` Normalises the auto-correlation so that `acf(x)=1` for zero lag.

Note
  `max_lag` `<=` `M-1`

Parameters

  x | (Input) Vector of samples
  max_lag | (Input) Maximum lag for which the auto-correlation is calculated. The output vector is of size `2*maxlag+1`. Default value `max_lag=-1` calculates the auto-correlations for all possible lags.
  scaleopt | (Input) Indicates how the auto-correlation function should be scaled. Default value: `"none"` indicates that no scaling is done.

Returns
  The auto-correlation of x.

Definition at line 50 of file sigfun.cpp.

References itpp::real(), itpp::to_cvec(), and itpp::xcorr().

Referenced by itpp::xcorr(), itpp::xcorr(), itpp::xcorr(), itpp::xcorr(), and itpp::xcorr().

## xcorr() [5/6]

ITPP_EXPORT cvec itpp::xcorr | ( | const cvec & | x,
|  | const int | max_lag = `-1`,
|  | const std::string | scaleopt = `"none"`
| ) |  |

Cross Correlation.

r = xcorr(x)

returns the auto-correlation vecotr r.

Definition at line 58 of file sigfun.cpp.

References itpp::xcorr().

## xcorr() [6/6]

ITPP_EXPORT void itpp::xcorr | ( | const cvec & | x,
|  | const cvec & | y,
|  | cvec & | out,
|  | const int | max_lag = `-1`,
|  | const std::string | scaleopt = `"none"`,
|  | bool | autoflag = `true`
| ) |  |

Cross Correlation.

xcorr(x,y,out)
itpp::Array
General array class.
Definition array.h:105

Computes the cross-correlatin and returns in vector out

Definition at line 156 of file sigfun.cpp.

References itpp::abs(), itpp::ceil_i(), itpp::concat(), itpp::conj(), itpp::elem_mult(), itpp::fft(), itpp::ifft(), it_warning, itpp::linspace(), itpp::log2(), itpp::pow2i(), itpp::Array< T >::set_size(), itpp::sum(), itpp::to_cvec(), and itpp::zero_pad().

## cov()

ITPP_EXPORT mat itpp::cov | ( | const mat & | X,
|  | bool | is_zero_mean = `false`
| ) |  |

Covariance matrix calculation.

Calculates the covariance matrix of the observations in the matrix . Each row is an observation and each column represents a variable.

The covariance is normalized with the number of observations . The mean value is removed before calculation.

Set is_zero_mean if X already has zero mean.

Definition at line 226 of file sigfun.cpp.

References itpp::mean().

Referenced by pcamat().

## spectrum() [1/2]

ITPP_EXPORT vec itpp::spectrum | ( | const vec & | v,
|  | int | nfft = `256`,
|  | int | noverlap = `0`
| ) |  |

Power spectrum calculation.

Calculates the power spectrum using the Welch method and a Hanning window.

Definition at line 267 of file sigfun.cpp.

References itpp::abs(), itpp::elem_mult(), itpp::fft(), itpp::hanning(), it_assert_debug, itpp::levels2bits(), itpp::pow2i(), itpp::Array< T >::set_size(), itpp::Array< T >::size(), itpp::sqr(), itpp::to_cvec(), and itpp::zero_pad().

Referenced by itpp::Convolutional_Code::calculate_spectrum(), itpp::Punctured_Convolutional_Code::calculate_spectrum(), itpp::Punctured_Convolutional_Code::calculate_spectrum(), itpp::Convolutional_Code::fast(), itpp::Punctured_Convolutional_Code::fast(), itpp::Rice_Fading_Generator::Rice_Fading_Generator(), and itpp::Rice_Fading_Generator::set_doppler_spectrum().

## spectrum() [2/2]

ITPP_EXPORT vec itpp::spectrum | ( | const vec & | v,
|  | const vec & | w,
|  | int | noverlap = `0`
| ) |  |

Power spectrum calculation.

Calculates the power spectrum using using the Welch method and the supplied window w.

Definition at line 296 of file sigfun.cpp.

References itpp::abs(), itpp::elem_mult(), itpp::energy(), itpp::fft(), it_assert_debug, itpp::levels2bits(), itpp::pow2i(), itpp::Array< T >::set_size(), itpp::Array< T >::size(), itpp::sqr(), itpp::to_cvec(), and itpp::zero_pad().

## filter_spectrum() [1/2]

ITPP_EXPORT vec itpp::filter_spectrum | ( | const vec & | a,
|  | int | nfft = `256`
| ) |  |

Power spectrum calculation of a filter.

Calculates the power spectrum of a filter with transfer function a(z)

Definition at line 325 of file sigfun.cpp.

References itpp::abs(), itpp::fft(), itpp::sqr(), and itpp::to_cvec().

## filter_spectrum() [2/2]

ITPP_EXPORT vec itpp::filter_spectrum | ( | const vec & | a,
|  | const vec & | b,
|  | int | nfft = `256`
| ) |  |

Power spectrum calculation of a filter.

Calculates the power spectrum of a filter with transfer function a(z)/b(z)

Definition at line 332 of file sigfun.cpp.

References itpp::abs(), itpp::elem_div(), itpp::fft(), itpp::sqr(), and itpp::to_cvec().

Generated on Mon Jun 10 2024 11:49:31 for IT++ by Doxygen 1.9.8