org.das2.qds.util.FFTUtil

Utilities for FFT operations, such as getting the frequencies for each bin and fftPower.

FFTUtil( )


fft

fft( org.das2.qds.math.fft.GeneralFFT fft, QDataSet vds, QDataSet weights ) → QDataSet

Perform the fft to get real and imaginary components for intervals.

Parameters

fft - FFT code to use, such as GeneralFFT.newDoubleFFT(len)
vds - QDataSet rank 1 dataset with depend 0 units TimeLocationUnits.
weights - QDataSet rank 1 dataset containing weights, as in hanning. null indicates no weights.

Returns:

the rank 2 FFT

[search for examples] [view on GitHub] [view on old javadoc] [view source]

fft( org.das2.qds.math.fft.GeneralFFT fft, QDataSet vds ) → Double

fftPower

fftPower( org.das2.qds.math.fft.GeneralFFT fft, QDataSet vds ) → QDataSet

Parameters

fft - a GeneralFFT
vds - a QDataSet

Returns:

org.das2.qds.QDataSet

[search for examples] [view on GitHub] [view on old javadoc] [view source]

fftPower( org.das2.qds.math.fft.GeneralFFT fft, QDataSet vds, QDataSet weights ) → QDataSet
fftPower( org.das2.qds.math.fft.GeneralFFT fft, QDataSet vds, QDataSet weights, QDataSet powxTags ) → QDataSet

getFrequencyDomainTags

getFrequencyDomainTags( double fs, int size ) → double

Parameters

fs - the sampling frequency
size - the size of the time domain data.

Returns:

the frequencies of the bins

[search for examples] [view on GitHub] [view on old javadoc] [view source]

getFrequencyDomainTags( QDataSet timeDomainTags ) → QDataSet

getFrequencyDomainTagsForPower

getFrequencyDomainTagsForPower( QDataSet dep0 ) → QDataSet

get the frequency tags, for use when calculating the power in each channel. This removes the DC channel, and folds over the negative frequencies. This also keeps a cache for performance.

Parameters

dep0 - the timetags.

Returns:

the frequency tags.

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getTimeDomainTags

getTimeDomainTags( QDataSet frequencyDomainTags ) → QDataSet

return the time domain tags for inverse fft.

Parameters

frequencyDomainTags - a QDataSet

Returns:

the time Domain Tags

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getWindow10PercentEdgeCosine

getWindow10PercentEdgeCosine( int size ) → QDataSet

Window with ones in the middle, and then the last 10% taper with cos.

Parameters

size - the window size

Returns:

window

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getWindowHanning

getWindowHanning( int size ) → QDataSet

return a "Hanning" (Hann) window of the given size.

Parameters

size - an int

Returns:

a QDataSet

[search for examples] [view on GitHub] [view on old javadoc] [view source]


getWindowUnity

getWindowUnity( int size ) → QDataSet

Window that is all ones, also called a boxcar.

Parameters

size - the window size

Returns:

window

[search for examples] [view on GitHub] [view on old javadoc] [view source]


ifft

ifft( org.das2.qds.math.fft.GeneralFFT fft, QDataSet vds, QDataSet weights ) → QDataSet

Perform the inverse fft to get real and imaginary components for intervals.

Parameters

fft - FFT code to use, such as GeneralFFT.newDoubleFFT(len)
vds - QDataSet rank 2 dataset with depend 0 units TimeLocationUnits and depend_1=['real','imaginary'].
weights - QDataSet rank 1 dataset containing weights, as in hanning. null indicates no weights.

Returns:

the rank 2 FFT

[search for examples] [view on GitHub] [view on old javadoc] [view source]

ifft( org.das2.qds.math.fft.GeneralFFT fft, QDataSet vds ) → Double

window

window( QDataSet ds, int size ) → QDataSet

returns a rank 2 dataset from the rank 1 dataset, where the FFT would be run on each of the datasets.

Parameters

ds - rank 1 dataset of length N
size - size of each FFT.

Returns:

rank 2 dataset[N/size,size]

[search for examples] [view on GitHub] [view on old javadoc] [view source]