Struct basic_dsp_matrix::Matrix3xN [] [src]

pub struct Matrix3xN<V, S, T> where
    T: RealNumber,
    V: Vector<T>, 
{ /* fields omitted */ }

A matrix which can hold exactly 3 vectors.

Trait Implementations

impl<V, S, T> MetaData for Matrix3xN<V, S, T> where
    T: RealNumber,
    S: ToSlice<T>,
    V: Vector<T>, 
[src]

[src]

The domain in which the data vector resides. Basically specifies the x-axis and the type of operations which are valid on this vector. Read more

[src]

Indicates whether the vector contains complex data. This also specifies the type of operations which are valid on this vector. Read more

impl<V, S, T> ResizeOps for Matrix3xN<V, S, T> where
    T: RealNumber,
    S: ToSlice<T>,
    V: Vector<T>, 
[src]

[src]

Changes self.len(). If self.is_complex() is true then len must be an even number. len > self.alloc_len() is only possible if the underlying storage supports resizing. Read more

impl<V, S, T> Matrix<V, T> for Matrix3xN<V, S, T> where
    T: RealNumber,
    S: ToSlice<T>,
    V: Vector<T>, 
[src]

[src]

The x-axis delta. If domain is time domain then delta is in [s], in frequency domain delta is in [Hz]. Read more

[src]

Sets the x-axis delta. If domain is time domain then delta is in [s], in frequency domain delta is in [Hz]. Read more

[src]

The number of valid elements in each row of the matrix. This can be changed with the Resize trait. Read more

[src]

The number of valid points in a row. If the matrix is complex then every valid point consists of two floating point numbers, while for real vectors every point only consists of one floating point number. Read more

[src]

The number of columns in the matrix.

[src]

Gets the rows as vectors.

[src]

Gets the rows as mutable vectors.

impl<V, S, T, N, D> GetMetaData<T, N, D> for Matrix3xN<V, S, T> where
    T: RealNumber,
    S: ToSlice<T>,
    V: Vector<T> + GetMetaData<T, N, D>,
    N: NumberSpace,
    D: Domain
[src]

[src]

Gets a copy of the vector meta data. This can be used to create new types with the same meta data. Read more

impl<V, S, T> FromMatrix<T> for Matrix3xN<V, S, T> where
    T: RealNumber,
    V: Vector<T>,
    S: ToSlice<T>, 
[src]

Type of the underlying storage of a matrix.

[src]

Gets the underlying matrix and the number of elements which contain valid. Read more

impl<V: Vector<T> + ScaleOps<T>, S: ToSlice<T>, T: RealNumber> ScaleOps<T> for Matrix3xN<V, S, T>
[src]

[src]

Multiplies the vector element with a scalar. Read more

impl<V: Vector<T>, S: ToSlice<T>, T: RealNumber> OffsetOps<T> for Matrix3xN<V, S, T> where
    V: OffsetOps<T>, 
[src]

[src]

Adds a scalar to each vector element. Read more

impl<V: Vector<T>, S: ToSlice<T>, T: RealNumber> ScaleOps<Complex<T>> for Matrix3xN<V, S, T> where
    V: ScaleOps<Complex<T>>, 
[src]

[src]

Multiplies the vector element with a scalar. Read more

impl<V: Vector<T>, S: ToSlice<T>, T: RealNumber> OffsetOps<Complex<T>> for Matrix3xN<V, S, T> where
    V: OffsetOps<Complex<T>>, 
[src]

[src]

Adds a scalar to each vector element. Read more

impl<V: Vector<T>, S: ToSlice<T>, T: RealNumber, N: NumberSpace, D: Domain> ElementaryOps<Matrix3xN<V, S, T>, T, N, D> for Matrix3xN<V, S, T> where
    V: ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>, 
[src]

[src]

Calculates the sum of self + summand. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

[src]

Calculates the difference of self - subtrahend. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

[src]

Calculates the quotient of self / summand. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

[src]

Calculates the product of self * factor. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

impl<V: Vector<T>, S: ToSlice<T>, T: RealNumber, N: NumberSpace, D: Domain> ElementaryOps<V, T, N, D> for Matrix3xN<V, S, T> where
    V: ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>, 
[src]

[src]

Calculates the sum of self + summand. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

[src]

Calculates the difference of self - subtrahend. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

[src]

Calculates the quotient of self / summand. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

[src]

Calculates the product of self * factor. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

impl<V: Vector<T>, S: ToSlice<T>, T: RealNumber, N: NumberSpace, D: Domain> ElementaryWrapAroundOps<Matrix3xN<V, S, T>, T, N, D> for Matrix3xN<V, S, T> where
    V: ElementaryWrapAroundOps<V, T, N, D> + GetMetaData<T, N, D>, 
[src]

[src]

Calculates the sum of self + summand. summand may be smaller than self as long as self.len() % summand.len() == 0. THe result is the same as it would be if you would repeat summand until it has the same length as self. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

[src]

Calculates the sum of self - subtrahend. subtrahend may be smaller than self as long as self.len() % subtrahend.len() == 0. THe result is the same as it would be if you would repeat subtrahend until it has the same length as self. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

[src]

Calculates the sum of self - divisor. divisor may be smaller than self as long as self.len() % divisor.len() == 0. THe result is the same as it would be if you would repeat divisor until it has the same length as self. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

[src]

Calculates the sum of self - factor. factor may be smaller than self as long as self.len() % factor.len() == 0. THe result is the same as it would be if you would repeat factor until it has the same length as self. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

impl<V: Vector<T>, S: ToSlice<T>, T: RealNumber, N: NumberSpace, D: Domain> ElementaryWrapAroundOps<V, T, N, D> for Matrix3xN<V, S, T> where
    V: ElementaryWrapAroundOps<V, T, N, D> + GetMetaData<T, N, D>, 
[src]

[src]

Calculates the sum of self + summand. summand may be smaller than self as long as self.len() % summand.len() == 0. THe result is the same as it would be if you would repeat summand until it has the same length as self. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

[src]

Calculates the sum of self - subtrahend. subtrahend may be smaller than self as long as self.len() % subtrahend.len() == 0. THe result is the same as it would be if you would repeat subtrahend until it has the same length as self. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

[src]

Calculates the sum of self - divisor. divisor may be smaller than self as long as self.len() % divisor.len() == 0. THe result is the same as it would be if you would repeat divisor until it has the same length as self. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

[src]

Calculates the sum of self - factor. factor may be smaller than self as long as self.len() % factor.len() == 0. THe result is the same as it would be if you would repeat factor until it has the same length as self. It consumes self and returns the result. # Failures TransRes may report the following ErrorReason members: Read more

impl<V: Vector<T>, S: ToSlice<T>, T: RealNumber> ReorganizeDataOps<T> for Matrix3xN<V, S, T> where
    V: ReorganizeDataOps<T>, 
[src]

[src]

Reverses the data inside the vector. Read more

[src]

This function swaps both halves of the vector. This operation is also called FFT shift Use it after a plain_fft to get a spectrum which is centered at 0 Hz. Read more

impl<S: ToSlice<T>, V: Vector<T> + DiffSumOps, T: RealNumber> DiffSumOps for Matrix3xN<V, S, T>
[src]

[src]

Calculates the delta of each elements to its previous element. This will decrease the vector length by one point. Read more

[src]

Calculates the delta of each elements to its previous element. The first element will remain unchanged. Read more

[src]

Calculates the cumulative sum of all elements. This operation undoes the diff_with_startoperation. Read more

impl<S: ToSlice<T>, V: Vector<T> + TrigOps, T: RealNumber> TrigOps for Matrix3xN<V, S, T>
[src]

[src]

Calculates the sine of each element in radians. Read more

[src]

Calculates the cosine of each element in radians. Read more

[src]

Calculates the tangent of each element in radians.

[src]

Calculates the principal value of the inverse sine of each element in radians.

[src]

Calculates the principal value of the inverse cosine of each element in radians.

[src]

Calculates the principal value of the inverse tangent of each element in radians.

[src]

Calculates the hyperbolic sine each element in radians.

[src]

Calculates the hyperbolic cosine each element in radians.

[src]

Calculates the hyperbolic tangent each element in radians.

[src]

Calculates the principal value of the inverse hyperbolic sine of each element in radians.

[src]

Calculates the principal value of the inverse hyperbolic cosine of each element in radians.

[src]

Calculates the principal value of the inverse hyperbolic tangent of each element in radians. Read more

impl<S: ToSlice<T>, V: Vector<T> + PowerOps<T>, T: RealNumber> PowerOps<T> for Matrix3xN<V, S, T>
[src]

[src]

Gets the square root of all vector elements. Read more

[src]

Squares all vector elements. Read more

[src]

Calculates the n-th root of every vector element. Read more

[src]

Raises every vector element to a floating point power. Read more

[src]

Computes the principal value of natural logarithm of every element in the vector. Read more

[src]

Calculates the natural exponential for every vector element. Read more

[src]

Calculates the logarithm to the given base for every vector element. Read more

[src]

Calculates the exponential to the given base for every vector element. Read more

impl<S: ToSlice<T>, V: Vector<T> + MapInplaceOps<T>, T: RealNumber> MapInplaceOps<T> for Matrix3xN<V, S, T>
[src]

[src]

Transforms all vector elements using the function map.

impl<S: ToSlice<T>, V: Vector<T> + MapInplaceOps<Complex<T>>, T: RealNumber> MapInplaceOps<Complex<T>> for Matrix3xN<V, S, T>
[src]

[src]

Transforms all vector elements using the function map.

impl<S: ToSlice<T>, V: Vector<T>, T: RealNumber> StatisticsOps<T> for Matrix3xN<V, S, T> where
    V: StatisticsOps<Statistics<T>, Result = Statistics<T>>, 
[src]

[src]

Calculates the statistics of the data. Read more

impl<S: ToSlice<T>, V: Vector<T>, T: RealNumber> StatisticsSplitOps<T> for Matrix3xN<V, S, T> where
    V: StatisticsSplitOps<Statistics<T>, Result = StatsVec<Statistics<T>>>, 
[src]

[src]

Calculates the statistics of the data contained in the vector as if the vector would have been split into len pieces. self.len should be dividable by len without a remainder, but this isn't enforced by the implementation. For implementation reasons len <= 16 must be true. Read more

impl<S: ToSlice<T>, V: Vector<T>, T: RealNumber> PreciseStatisticsOps<T> for Matrix3xN<V, S, T> where
    V: PreciseStatisticsOps<Statistics<T>, Result = Statistics<T>>, 
[src]

[src]

Calculates the statistics of the data contained in the vector using a more precise but slower algorithm. Read more

impl<S: ToSlice<T>, V: Vector<T>, T: RealNumber> PreciseStatisticsSplitOps<T> for Matrix3xN<V, S, T> where
    V: PreciseStatisticsSplitOps<Statistics<T>, Result = StatsVec<Statistics<T>>>, 
[src]

[src]

Calculates the statistics of the data contained in the vector as if the vector would have been split into len pieces using a more precise but slower algorithm. self.len should be dividable by len without a remainder, but this isn't enforced by the implementation. For implementation reasons len <= 16 must be true. Read more

impl<S: ToSlice<T>, V: Vector<T>, T: RealNumber, O: RealNumber> PreciseSumOps<[O; 3]> for Matrix3xN<V, S, T> where
    V: PreciseSumOps<O>, 
[src]

[src]

Calculates the sum of the data contained in the vector using a more precise but slower algorithm. # Example Read more

[src]

Calculates the sum of the squared data contained in the vector using a more precise but slower algorithm. # Example Read more

impl<S: ToSlice<T>, V: Vector<T>, T: RealNumber, N: NumberSpace, D: Domain> DotProductOps<Matrix3xN<V, S, T>, T, T, N, D> for Matrix3xN<V, S, T> where
    V: DotProductOps<V, T, T, N, D, Output = ScalarResult<T>> + GetMetaData<T, N, D>, 
[src]

[src]

Calculates the dot product of self and factor. Self and factor remain unchanged. Read more

impl<S: ToSlice<T>, V: Vector<T>, T: RealNumber, N: NumberSpace, D: Domain> DotProductOps<V, T, T, N, D> for Matrix3xN<V, S, T> where
    V: DotProductOps<V, T, T, N, D, Output = ScalarResult<T>> + GetMetaData<T, N, D>, 
[src]

[src]

Calculates the dot product of self and factor. Self and factor remain unchanged. Read more

impl<S: ToSlice<T>, V: Vector<T>, T: RealNumber, N: NumberSpace, D: Domain> PreciseDotProductOps<Matrix3xN<V, S, T>, T, T, N, D> for Matrix3xN<V, S, T> where
    V: PreciseDotProductOps<V, T, T, N, D, Output = ScalarResult<T>> + GetMetaData<T, N, D>, 
[src]

[src]

Calculates the dot product of self and factor using a more precise but slower algorithm. Self and factor remain unchanged. Read more

impl<S: ToSlice<T>, V: Vector<T>, T: RealNumber, N: NumberSpace, D: Domain> PreciseDotProductOps<V, T, T, N, D> for Matrix3xN<V, S, T> where
    V: PreciseDotProductOps<V, T, T, N, D, Output = ScalarResult<T>> + GetMetaData<T, N, D>, 
[src]

[src]

Calculates the dot product of self and factor using a more precise but slower algorithm. Self and factor remain unchanged. Read more

impl<S: ToSlice<T>, V: Vector<T>, T: RealNumber, R: Send> MapAggregateOps<T, R> for Matrix3xN<V, S, T> where
    V: MapAggregateOps<T, R, Output = ScalarResult<R>>, 
[src]

[src]

Transforms all vector elements using the function map and then aggregates all the results with aggregate. aggregate must be a commutativity and associativity; that's because there is no guarantee that the numbers will be aggregated in any deterministic order. Read more

impl<V, O, S: ToSlice<T>, T: RealNumber> RededicateForceOps<Matrix3xN<O, S, T>> for Matrix3xN<V, S, T> where
    V: RededicateForceOps<O> + Vector<T>,
    T: RealNumber,
    O: Vector<T>, 
[src]

[src]

Make Other a Self without performing any checks.

[src]

Make Other a Self without performing any checks. Read more

impl<V: Vector<T> + ToRealResult, S: ToSlice<T>, T: RealNumber> ToRealResult for Matrix3xN<V, S, T> where
    <V as ToRealResult>::RealResult: Vector<T>, 
[src]

impl<V: Vector<T>, S: ToSlice<T>, T: RealNumber> ComplexToRealTransformsOps<T> for Matrix3xN<V, S, T> where
    <V as ToRealResult>::RealResult: Vector<T>,
    V: ComplexToRealTransformsOps<T>, 
[src]

[src]

Gets the absolute value, magnitude or norm of all vector elements. # Example Read more

[src]

Gets the square root of the absolute value of all vector elements. # Example Read more

[src]

Gets all real elements. # Example Read more

[src]

Gets all imag elements. # Example Read more

[src]

Gets the phase of all elements in [rad]. # Example Read more

impl<V: Vector<T>, S: ToSliceMut<T>, T: RealNumber> ComplexToRealTransformsOpsBuffered<S, T> for Matrix3xN<V, S, T> where
    <V as ToRealResult>::RealResult: Vector<T>,
    V: ComplexToRealTransformsOpsBuffered<S, T>, 
[src]

[src]

Gets the absolute value, magnitude or norm of all vector elements. # Example Read more

[src]

Gets the square root of the absolute value of all vector elements. # Example Read more

[src]

Gets all real elements. # Example Read more

[src]

Gets all imag elements. # Example Read more

[src]

Gets the phase of all elements in [rad]. # Example Read more

impl<V: Vector<T>, S: ToSlice<T>, T: RealNumber, N: NumberSpace, D: Domain, O> ComplexToRealGetterOps<O, T, N, D> for Matrix3xN<V, S, T> where
    O: Matrix<V, T> + GetMetaData<T, N, D>,
    V: ComplexToRealGetterOps<V, T, N, D> + GetMetaData<T, N, D>, 
[src]

[src]

Copies all real elements into the given vector. # Example Read more

[src]

Copies all imag elements into the given vector. # Example Read more

[src]

Copies the absolute value or magnitude of all vector elements into the given target vector. # Example Read more

[src]

Copies the absolute value squared or magnitude squared of all vector elements into the given target vector. # Example Read more

[src]

Copies the phase of all elements in [rad] into the given vector. # Example Read more

[src]

Gets the real and imaginary parts and stores them in the given vectors. See also get_phase and get_complex_abs for further information. Read more

[src]

Gets the magnitude and phase and stores them in the given vectors. See also get_real and get_imag for further information. Read more

impl<V: Vector<T>, S: ToSlice<T>, T: RealNumber, N: NumberSpace, D: Domain, O> ComplexToRealSetterOps<O, T, N, D> for Matrix3xN<V, S, T> where
    O: Matrix<V, T> + GetMetaData<T, N, D>,
    V: ComplexToRealSetterOps<V, T, N, D> + GetMetaData<T, N, D>, 
[src]

[src]

Overrides the self vectors data with the real and imaginary data in the given vectors. real and imag must have the same size. Read more

[src]

Overrides the self vectors data with the magnitude and phase data in the given vectors. Note that self vector will immediately convert the data into a real and imaginary representation of the complex numbers which is its default format. mag and phase must have the same size. Read more

impl<V: Vector<T>, S: ToSlice<T>, T: RealNumber> ComplexOps<T> for Matrix3xN<V, S, T> where
    V: ComplexOps<T>, 
[src]

[src]

Multiplies each vector element with exp(j*(a*idx*self.delta() + b)) where a and b are arguments and idx is the index of the data points in the vector ranging from 0 to self.points() - 1. j is the imaginary number and exp the exponential function. Read more

[src]

Calculates the complex conjugate of the vector. # Example Read more

impl<V: Vector<T> + ToComplexResult, S: ToSlice<T>, T: RealNumber> ToComplexResult for Matrix3xN<V, S, T> where
    <V as ToComplexResult>::ComplexResult: Vector<T>, 
[src]

impl<V: Vector<T>, S: ToSlice<T>, T: RealNumber> RealToComplexTransformsOps<T> for Matrix3xN<V, S, T> where
    <V as ToComplexResult>::ComplexResult: Vector<T>,
    V: RealToComplexTransformsOps<T>, 
[src]

[src]

Converts the real vector into a complex vector. Read more

impl<V: Vector<T>, S: ToSliceMut<T>, T: RealNumber> RealToComplexTransformsOpsBuffered<S, T> for Matrix3xN<V, S, T> where
    <V as ToComplexResult>::ComplexResult: Vector<T>,
    V: RealToComplexTransformsOpsBuffered<S, T>, 
[src]

[src]

Converts the real vector into a complex vector. The buffer allows this operation to succeed even if the storage type doesn't allow resizing. Read more

impl<V: Vector<T>, S: ToSlice<T>, T: RealNumber> RealOps for Matrix3xN<V, S, T> where
    V: RealOps
[src]

[src]

Gets the absolute value of all vector elements. # Example Read more

impl<V: Vector<T>, S: ToSlice<T>, T: RealNumber> ModuloOps<T> for Matrix3xN<V, S, T> where
    V: ModuloOps<T>, 
[src]

[src]

Each value in the vector is dividable by the divisor and the remainder is stored in the resulting vector. This the same a modulo operation or to phase wrapping. Read more

[src]

This function corrects the jumps in the given vector which occur due to wrap or modulo operations. This will undo a wrap operation only if the deltas are smaller than half the divisor. Read more

impl<S: ToSlice<T>, V: Vector<T> + ApproximatedOps<T>, T: RealNumber> ApproximatedOps<T> for Matrix3xN<V, S, T>
[src]

[src]

Computes the principal value approximation of natural logarithm of every element in the vector. Read more

[src]

Calculates the natural exponential approximation for every vector element. Read more

[src]

Calculates the sine approximation of each element in radians. Read more

[src]

Calculates the cosine approximation of each element in radians Read more

[src]

Calculates the approximated logarithm to the given base for every vector element. Read more

[src]

Calculates the approximated exponential to the given base for every vector element. Read more

[src]

Raises every vector element to approximately a floating point power. Read more

impl<V: Vector<T> + ToTimeResult, S: ToSlice<T>, T: RealNumber> ToTimeResult for Matrix3xN<V, S, T> where
    <V as ToTimeResult>::TimeResult: Vector<T>, 
[src]

Specifies what the the result is if a type is transformed to time domain.

impl<V: Vector<T> + ToFreqResult, S: ToSlice<T>, T: RealNumber> ToFreqResult for Matrix3xN<V, S, T> where
    <V as ToFreqResult>::FreqResult: Vector<T>, 
[src]

impl<V: Vector<T> + ToRealTimeResult, S: ToSlice<T>, T: RealNumber> ToRealTimeResult for Matrix3xN<V, S, T> where
    <V as ToRealTimeResult>::RealTimeResult: Vector<T>, 
[src]

impl<V: Vector<T>, S: ToSliceMut<T>, T: RealNumber> TimeToFrequencyDomainOperations<S, T> for Matrix3xN<V, S, T> where
    <V as ToFreqResult>::FreqResult: Vector<T>,
    V: TimeToFrequencyDomainOperations<S, T>, 
[src]

[src]

Performs a Fast Fourier Transformation transforming a time domain vector into a frequency domain vector. Read more

[src]

Performs a Fast Fourier Transformation transforming a time domain vector into a frequency domain vector. # Unstable FFTs of real vectors are unstable. # Example Read more

[src]

Applies a FFT window and performs a Fast Fourier Transformation transforming a time domain vector into a frequency domain vector. Read more

impl<V: Vector<T>, S: ToSliceMut<T>, T: RealNumber> SymmetricTimeToFrequencyDomainOperations<S, T> for Matrix3xN<V, S, T> where
    <V as ToFreqResult>::FreqResult: Vector<T>,
    V: SymmetricTimeToFrequencyDomainOperations<S, T>, 
[src]

[src]

Performs a Symmetric Fast Fourier Transformation under the assumption that self is symmetric around the center. This assumption isn't verified and no error is raised if the vector isn't symmetric. Read more

[src]

Performs a Symmetric Fast Fourier Transformation under the assumption that self is symmetric around the center. This assumption isn't verified and no error is raised if the vector isn't symmetric. # Failures TransRes may report the following ErrorReason members: Read more

[src]

Performs a Symmetric Fast Fourier Transformation under the assumption that self is symmetric around the center. This assumption isn't verified and no error is raised if the vector isn't symmetric. # Failures TransRes may report the following ErrorReason members: Read more

impl<V: Vector<T>, S: ToSliceMut<T>, T: RealNumber> FrequencyToTimeDomainOperations<S, T> for Matrix3xN<V, S, T> where
    <V as ToTimeResult>::TimeResult: Vector<T>,
    V: FrequencyToTimeDomainOperations<S, T>, 
[src]

[src]

Performs an Inverse Fast Fourier Transformation transforming a frequency domain vector into a time domain vector. Read more

[src]

Performs an Inverse Fast Fourier Transformation transforming a frequency domain vector into a time domain vector. # Example Read more

[src]

Performs an Inverse Fast Fourier Transformation transforming a frequency domain vector into a time domain vector and removes the FFT window. Read more

impl<V: Vector<T>, S: ToSliceMut<T>, T: RealNumber> SymmetricFrequencyToTimeDomainOperations<S, T> for Matrix3xN<V, S, T> where
    <V as ToRealTimeResult>::RealTimeResult: Vector<T>,
    V: SymmetricFrequencyToTimeDomainOperations<S, T>, 
[src]

[src]

Performs a Symmetric Inverse Fast Fourier Transformation under the assumption that self contains half of a symmetric spectrum starting from 0 Hz. This assumption isn't verified and no error is raised if the spectrum isn't symmetric. The reason for this is that there is no robust verification possible. Read more

[src]

Performs a Symmetric Inverse Fast Fourier Transformation under the assumption that self contains half of a symmetric spectrum starting from 0 Hz. This assumption isn't verified and no error is raised if the spectrum isn't symmetric. The reason for this is that there is no robust verification possible. Read more

[src]

Performs a Symmetric Inverse Fast Fourier Transformation (SIFFT) and removes the FFT window. The SIFFT is performed under the assumption that self contains half of a symmetric spectrum starting from 0 Hz. This assumption isn't verified and no error is raised if the spectrum isn't symmetric. The reason for this is that there is no robust verification possible. Read more

impl<V: Vector<T>, S: ToSliceMut<T>, T: RealNumber> FrequencyDomainOperations<S, T> for Matrix3xN<V, S, T> where
    V: FrequencyDomainOperations<S, T>, 
[src]

[src]

This function mirrors the spectrum vector to transform a symmetric spectrum into a full spectrum with the DC element at index 0 (no FFT shift/swap halves). Read more

[src]

Swaps vector halves after a Fourier Transformation.

[src]

Swaps vector halves before an Inverse Fourier Transformation.

impl<V: Vector<T>, S: ToSliceMut<T>, T: RealNumber> TimeDomainOperations<S, T> for Matrix3xN<V, S, T> where
    V: TimeDomainOperations<S, T>, 
[src]

[src]

Applies a window to the data vector.

[src]

Removes a window from the data vector.

impl<V: Vector<T>, S: ToSliceMut<T>, T: RealNumber> CrossCorrelationArgumentOps<S, T> for Matrix3xN<V, S, T> where
    <V as ToFreqResult>::FreqResult: Vector<T>,
    V: CrossCorrelationArgumentOps<S, T>, 
[src]

[src]

Prepares an argument to be used for convolution. Preparing an argument includes two steps: Read more

[src]

Prepares an argument to be used for convolution. The argument is zero padded to length of 2 * self.points() - 1 and then the same operations are performed as described for prepare_argument. Read more

impl<S: ToSliceMut<T>, T: RealNumber, N: NumberSpace, D: Domain, O, V> CrossCorrelationOps<O, S, T, N, D> for Matrix3xN<V, S, T> where
    O: Matrix<V, T> + GetMetaData<T, N, D>,
    V: CrossCorrelationOps<V, S, T, N, D> + GetMetaData<T, N, D> + Vector<T>, 
[src]

[src]

Calculates the correlation between self and other. other needs to be a time vector which went through one of the prepare functions prepare_argument or prepare_argument_padded. See also the trait description for more details. Read more

impl<V: Vector<T>, S: ToSliceMut<T>, T: RealNumber> InterpolationOps<S, T> for Matrix3xN<V, S, T> where
    V: InterpolationOps<S, T>, 
[src]

[src]

Interpolates self with the convolution function function by the real value interpolation_factor. InterpolationOps is done in time domain and the argument conv_len can be used to balance accuracy and computational performance. A delay can be used to delay or phase shift the vector. The delay considers self.delta(). Read more

[src]

Interpolates self with the convolution function function by the interger value interpolation_factor. InterpolationOps is done in in frequency domain. Read more

[src]

Interpolates the signal in frequency domain by padding it with zeros.

[src]

Interpolates the signal in frequency domain by padding it with zeros. This function preserves the shape of the signal in frequency domain. Read more

[src]

Decimates or downsamples self. decimatei is the inverse function to interpolatei.

impl<V: Vector<T>, S: ToSliceMut<T>, T: RealNumber> RealInterpolationOps<S, T> for Matrix3xN<V, S, T> where
    V: RealInterpolationOps<S, T>, 
[src]

[src]

Piecewise cubic hermite interpolation between samples. # Unstable Algorithm might need to be revised. This operation and interpolate_lin might be merged into one function with an additional argument in future. Read more

[src]

Linear interpolation between samples. # Unstable This operation and interpolate_hermite might be merged into one function with an additional argument in future. Read more

impl<'a, V: Vector<T>, S: ToSliceMut<T>, T: RealNumber> Convolution<'a, S, T, &'a RealImpulseResponse<T>> for Matrix3xN<V, S, T> where
    V: Convolution<'a, S, T, &'a RealImpulseResponse<T>>, 
[src]

[src]

Convolves self with the convolution function impulse_response. For performance consider to to use FrequencyMultiplication instead of this operation depending on len. Read more

impl<'a, V: Vector<T>, S: ToSliceMut<T>, T: RealNumber> Convolution<'a, S, T, &'a ComplexImpulseResponse<T>> for Matrix3xN<V, S, T> where
    V: Convolution<'a, S, T, &'a ComplexImpulseResponse<T>>, 
[src]

[src]

Convolves self with the convolution function impulse_response. For performance consider to to use FrequencyMultiplication instead of this operation depending on len. Read more

impl<'a, V: Vector<T>, S: ToSliceMut<T>, T: RealNumber> FrequencyMultiplication<'a, S, T, &'a RealFrequencyResponse<T>> for Matrix3xN<V, S, T> where
    V: FrequencyMultiplication<'a, S, T, &'a RealFrequencyResponse<T>>, 
[src]

[src]

Multiplies self with the frequency response function frequency_response. Read more

impl<'a, V: Vector<T>, S: ToSliceMut<T>, T: RealNumber> FrequencyMultiplication<'a, S, T, &'a ComplexFrequencyResponse<T>> for Matrix3xN<V, S, T> where
    V: FrequencyMultiplication<'a, S, T, &'a ComplexFrequencyResponse<T>>, 
[src]

[src]

Multiplies self with the frequency response function frequency_response. Read more

impl<S: ToSliceMut<T>, T: RealNumber, N: NumberSpace, D: Domain> ConvolutionOps<DspVec<S, T, N, D>, S, T, N, D> for Matrix3xN<DspVec<S, T, N, D>, S, T> where
    DspVec<S, T, N, D>: ConvolutionOps<DspVec<S, T, N, D>, S, T, N, D>, 
[src]

[src]

Convolves self with the convolution function impulse_response. For performance it's recommended to use multiply both vectors in frequency domain instead of this operation. Read more

impl<'a, S: ToSliceMut<T>, T: RealNumber, N: NumberSpace, D: Domain> ConvolutionOps<[[&'a DspVec<S, T, N, D>; 3]; 3], S, T, N, D> for Matrix3xN<DspVec<S, T, N, D>, S, T>
[src]

[src]

Convolves self with the convolution function impulse_response. For performance it's recommended to use multiply both vectors in frequency domain instead of this operation. Read more