annotate test/test_fft.yeti @ 41:06d7d07bb72c

Add basic forward FFT and tests. Unpacking the results takes a lot longer than computing them (this way) so this will have to change
author Chris Cannam
date Sun, 23 Dec 2012 16:28:06 +0000
parents
children 805b61175443
rev   line source
Chris@41 1
Chris@41 2 module test.test_fft;
Chris@41 3
Chris@41 4 { fft } = load fft;
Chris@41 5 { fromList, list } = load block;
Chris@41 6 { declare, compare } = load test.test;
Chris@41 7
Chris@41 8 declare [
Chris@41 9
Chris@41 10 "dc": \(
Chris@41 11 out = fft 4 (fromList [1,1,1,1]);
Chris@41 12 compare out (array [{re=4, im=0}, {re=0, im=0}, {re=0, im=0}])
Chris@41 13 ),
Chris@41 14
Chris@41 15 "sine": \(
Chris@41 16 out = fft 4 (fromList [0,1,0,-1]);
Chris@41 17 compare out (array [{re=0, im=0}, {re=0, im=(-2)}, {re=0, im=0}])
Chris@41 18 ),
Chris@41 19
Chris@41 20 "cosine": \(
Chris@41 21 out = fft 4 (fromList [1,0,-1,0]);
Chris@41 22 compare out (array [{re=0, im=0}, {re=2, im=0}, {re=0, im=0}])
Chris@41 23 ),
Chris@41 24
Chris@41 25 "sineCosine": \(
Chris@41 26 out = fft 4 (fromList [0.5,1,-0.5,-1]);
Chris@41 27 compare out (array [{re=0, im=0}, {re=1, im=(-2)}, {re=0, im=0}])
Chris@41 28 ),
Chris@41 29
Chris@41 30 "nyquist": \(
Chris@41 31 out = fft 4 (fromList [1,-1,1,-1]);
Chris@41 32 compare out (array [{re=0, im=0}, {re=0, im=0}, {re=4, im=0}])
Chris@41 33 ),
Chris@41 34
Chris@41 35 "dirac": \(
Chris@41 36 out = fft 4 (fromList [1,0,0,0]);
Chris@41 37 compare out (array [{re=1, im=0}, {re=1, im=0}, {re=1, im=0}])
Chris@41 38 ),
Chris@41 39
Chris@41 40 ];
Chris@41 41
Chris@41 42