Gegeven een 2-dimensionale NumPy-tabel x
, bestaande uit float
s.
Programmeer de functies dct_2()
en idct_2()
met als enig argument
deze tabel. Het resultaat van deze functies is respectievelijk de 2D DCT-II van deze argumenttabel
en de inverse 2D DCT-II van deze argumenttabel. Het resultaat is dus telkens een tabel in 2 dimensies,
van identieke vorm als x
(en elk element van de resultaattabel is opnieuw een float
).
Programmeer deze functies ZONDER gebruik te maken van for
-lussen (het kan een goed idee zijn
om de originele formules als controle te programmeren).
x = np.array([[1, 2, -1, -3],[4, 5, -1, 2],[3, 8, 2, -1]], dtype = float) #[[ 1. 2. -1. -3.] # [ 4. 5. -1. 2.] # [ 3. 8. 2. -1.]] X = dct_2(x) #[[ 21. 14.97904681 -6.36396103 -10.03135866] # [-11.25833025 -0.99424072 3.06186218 2.40030944] # [ -4.5 1.27373392 -5.30330086 2.15118616]] x2 = idct_2(X) #[[ 1. 2. -1. -3.] # [ 4. 5. -1. 2.] # [ 3. 8. 2. -1.]]