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
|