numpy.fft.rfft(a, n=None, axis=-1, norm=None)
[source]
Compute the one-dimensional discrete Fourier Transform for real input.
This function computes the one-dimensional n-point discrete Fourier Transform (DFT) of a real-valued array by means of an efficient algorithm called the Fast Fourier Transform (FFT).
Parameters: |
|
---|---|
Returns: |
|
Raises: |
|
See also
When the DFT is computed for purely real input, the output is Hermitian-symmetric, i.e. the negative frequency terms are just the complex conjugates of the corresponding positive-frequency terms, and the negative-frequency terms are therefore redundant. This function does not compute the negative frequency terms, and the length of the transformed axis of the output is therefore n//2 + 1
.
When A = rfft(a)
and fs is the sampling frequency, A[0]
contains the zero-frequency term 0*fs, which is real due to Hermitian symmetry.
If n
is even, A[-1]
contains the term representing both positive and negative Nyquist frequency (+fs/2 and -fs/2), and must also be purely real. If n
is odd, there is no term at fs/2; A[-1]
contains the largest positive frequency (fs/2*(n-1)/n), and is complex in the general case.
If the input a
contains an imaginary part, it is silently discarded.
>>> np.fft.fft([0, 1, 0, 0]) array([ 1.+0.j, 0.-1.j, -1.+0.j, 0.+1.j]) # may vary >>> np.fft.rfft([0, 1, 0, 0]) array([ 1.+0.j, 0.-1.j, -1.+0.j]) # may vary
Notice how the final element of the fft
output is the complex conjugate of the second element, for real input. For rfft
, this symmetry is exploited to compute only the non-negative frequency terms.
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/generated/numpy.fft.rfft.html