[This sort of question is really better for saol-users,
but I'll answer here for now.]
>I've been playing with the fft/ifft a while, and I noticed that only half
>of the tables (re and im) are being used. (For example, with a fft-size of
>512, only the first 256 of the re and im tables are used.) I understand it,
>but I don't see why the table size must then be the same as the fft/ifft
>size. Shouldn't it be more logic to require half the fft-size as the
>table-sizes?
It should be the case (reading the standard) that fft() uses up
512 points (for size=512) in each of the re and im tables.
The first 256 points are DC to the Nyquist [0:pi], and the second
256 points (for a size 512 DFT) are the reflection from Nyquist
to twice Nyquist [pi:2*pi]. If that's not what's being calculated,
there's a bug in saolc.
I hope fft()/ifft() are at least specified correctly, if not
implemented correctly in saolc. This is a potentially very
useful way of doing things, but I had a really hard time getting
the semantics right.
John, is this your interpretation of the fft() spec also?
>Also, must the fft-size be a power of two? In the reference implementation
>it gives a runtime error if it is not a power of two, but on the other hand
>there are functions provided for if fftsize is not a power of two.
5.9.10.1 specifically limits size to a power of two. This is
for implementation simplicity more than anything. The code
for non-power-of-two DFTs in saolc is vestigial (it wasn't
limited in an early draft of the spec) and I don't think it
works right anyway.
Best,
-- Eric
+-----------------+
| Eric Scheirer |A-7b5 D7b9|G-7 C7|Cb C-7b5 F7#9|Bb |B-7 E7|
|eds@media.mit.edu| < http://sound.media.mit.edu/~eds >
| 617 253 1750 |A A/G# F#-7 F#-/E|Eb-7b5 D7b5|Db|C7b5 B7b5|Bb|
+-----------------+
This archive was generated by hypermail 2b29 : Wed May 10 2000 - 12:15:48 EDT