fftRealInit¶
Computes the parameters for fftReal.
Synopsis¶
fftRealInit (n)
Required Arguments¶
- int
n(Input) - Length of the sequence to be transformed.
Return Value¶
The internal parameter vector that can then be used by fftReal when the
optional argument params is specified. If no value can be computed, then
None is returned.
Description¶
The function fftRealInit should be used when many calls are to be made
to fftReal without changing the sequence length n.
This function computes the parameters that are necessary for the real
Fourier transform.
It uses the system’s high performance library for the computation, if
available. Otherwise, the function fftRealInit is based on the routine
RFFTI in FFTPACK, which was developed by Paul Swarztrauber at the National
Center for Atmospheric Research.
Example¶
This example computes three distinct real FFTs by calling fftRealInit
once and then calling fftReal three times.
from __future__ import print_function
from numpy import *
from pyimsl.math.constant import constant
from pyimsl.math.fftReal import fftReal
from pyimsl.math.fftRealInit import fftRealInit
n = 7
work = fftRealInit(n)
two_pi = 2 * constant("pi")
p = empty(n)
for j in range(0, 3):
# Fill p with a pure sinusoidal signal
for k in range(0, n):
p[k] = cos(k * two_pi * j / n)
q = fftReal(p, params=work)
print("")
print(" index p q")
for k in range(0, n):
print("%11d%10.2f%10.2f" % (k, p[k], q[k]))
Output¶
index p q
0 1.00 7.00
1 1.00 0.00
2 1.00 0.00
3 1.00 -0.00
4 1.00 0.00
5 1.00 0.00
6 1.00 0.00
index p q
0 1.00 -0.00
1 0.62 3.50
2 -0.22 -0.00
3 -0.90 0.00
4 -0.90 -0.00
5 -0.22 -0.00
6 0.62 -0.00
index p q
0 1.00 0.00
1 -0.22 -0.00
2 -0.90 -0.00
3 0.62 3.50
4 0.62 -0.00
5 -0.90 0.00
6 -0.22 -0.00