fftr#
- class diffsptk.RealValuedFastFourierTransform(fft_length: int, out_format: str | int = 'complex', learnable: bool = False)[source]#
See this page for details.
- Parameters:
- fft_lengthint >= 2
The FFT length, \(L\).
- out_format[‘complex’, ‘real’, ‘imaginary’, ‘amplitude’, ‘power’]
The output format.
- learnablebool
Whether to make the DFT basis learnable. If True, the module performs DFT rather than FFT.
- forward(x: Tensor) Tensor [source]#
Compute FFT of a real signal.
- Parameters:
- xTensor [shape=(…, N)]
The real input signal.
- Returns:
- outTensor [shape=(…, L/2+1)]
The output spectrum.
Examples
>>> x = diffsptk.ramp(1, 3) >>> x tensor([1., 2., 3.]) >>> fftr = diffsptk.RealValuedFastFourierTransform(8, out_format="real") >>> y = fftr(x) >>> y tensor([ 6.0000, 2.4142, -2.0000, -0.4142, 2.0000])
- diffsptk.functional.fftr(x: Tensor, fft_length: int | None = None, out_format: str = 'complex') Tensor [source]#
Compute FFT of a real signal.
- Parameters:
- xTensor [shape=(…, N)]
The real input signal.
- fft_lengthint >= 2 or None
The FFT length, \(L\).
- out_format[‘complex’, ‘real’, ‘imaginary’, ‘amplitude’, ‘power’]
The output format.
- Returns:
- outTensor [shape=(…, L/2+1)]
The output spectrum.