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]

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

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]

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]

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

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

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

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

The number of columns in the matrix.

Gets the rows as vectors.

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]

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.

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]

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]

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]

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]

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]

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

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

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

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]

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

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

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

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]

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

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

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

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]

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

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

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

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]

Reverses the data inside the vector. Read more

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]

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

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

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]

Calculates the sine of each element in radians. Read more

Calculates the cosine of each element in radians. Read more

Calculates the tangent of each element in radians.

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

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

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

Calculates the hyperbolic sine each element in radians.

Calculates the hyperbolic cosine each element in radians.

Calculates the hyperbolic tangent each element in radians.

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

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

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]

Gets the square root of all vector elements. Read more

Squares all vector elements. Read more

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

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

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

Calculates the natural exponential for every vector element. Read more

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

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]

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]

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]

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]

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]

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]

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]

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

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]

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]

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]

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]

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]

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]

Make Other a Self without performing any checks.

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]

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

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

Gets all real elements. # Example Read more

Gets all imag elements. # Example Read more

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]

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

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

Gets all real elements. # Example Read more

Gets all imag elements. # Example Read more

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]

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

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

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

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

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

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

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]

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

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]

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

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]

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]

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]

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]

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

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]

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

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

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

Calculates the cosine approximation of each element in radians Read more

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

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

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]

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

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

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]

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

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

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]

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

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

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]

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

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

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]

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

Swaps vector halves after a Fourier Transformation.

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]

Applies a window to the data vector.

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]

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

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]

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]

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

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

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

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

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]

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

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]

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]

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]

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]

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]

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]

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