scipy.fft.

idct#

scipy.fft.idct(x, type=2, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, orthogonalize=None)[Quelle]#

Gibt die inverse diskrete Cosinus-Transformation einer Sequenz beliebigen Typs zurück.

Parameter:
xarray_like

Das Eingabearray.

type{1, 2, 3, 4}, optional

Typ der DCT (siehe Hinweise). Der Standardtyp ist 2.

nint, optional

Länge der Transformation. Wenn n < x.shape[axis], wird x abgeschnitten. Wenn n > x.shape[axis], wird x mit Nullen aufgefüllt. Die Standardeinstellung ergibt n = x.shape[axis].

axisint, optional

Achse, entlang der die idct berechnet wird; der Standardwert ist die letzte Achse (d. h. axis=-1).

norm{“backward”, “ortho”, “forward”}, optional

Normalisierungsmodus (siehe Hinweise). Standard ist "backward".

overwrite_xbool, optional

Wenn True, kann der Inhalt von x zerstört werden; die Standardeinstellung ist False.

workersint, optional

Maximale Anzahl von Workern, die für die parallele Berechnung verwendet werden sollen. Wenn negativ, wickelt sich der Wert von os.cpu_count() ab. Weitere Einzelheiten finden Sie unter fft.

orthogonalizebool, optional

Ob die orthogonalisierte IDCT-Variante verwendet werden soll (siehe Hinweise). Standardmäßig True, wenn norm="ortho" und andernfalls False.

Hinzugefügt in Version 1.8.0.

Rückgabe:
idctndarray von reellen Zahlen

Das transformierte Eingabearray.

Siehe auch

dct

Vorwärts-DCT

Hinweise

Für ein eindimensionales Array x ist idct(x, norm='ortho') gleich dem MATLAB-Befehl idct(x).

Warnung

Für type in {1, 2, 3} bricht norm="ortho" die direkte Entsprechung mit der inversen direkten Fourier-Transformation. Um sie wiederherzustellen, müssen Sie orthogonalize=False angeben.

Bei norm="ortho" werden sowohl die dct als auch die idct mit demselben Gesamtfaktor in beide Richtungen skaliert. Standardmäßig wird die Transformation auch orthogonalisiert, was für die Typen 1, 2 und 3 bedeutet, dass die Definitions der Transformation modifiziert wird, um die Orthogonalität der IDCT-Matrix zu gewährleisten (siehe dct für die vollständigen Definitionen).

Die „eigentliche“ IDCT ist die IDCT-II, die mit der normalisierten DCT-III identisch ist.

Die IDCT ist äquivalent zu einer normalen DCT, mit Ausnahme der Normalisierung und des Typs. DCT-Typ 1 und 4 sind ihre eigenen Inversen, und DCTs 2 und 3 sind die Inversen voneinander.

Beispiele

Die DCT vom Typ 1 ist äquivalent zur DFT für reelle, gerade-symmetrische Eingaben. Die Ausgabe ist ebenfalls reell und gerade-symmetrisch. Die Hälfte der IFFT-Eingabe wird verwendet, um die Hälfte der IFFT-Ausgabe zu generieren.

>>> from scipy.fft import ifft, idct
>>> import numpy as np
>>> ifft(np.array([ 30.,  -8.,   6.,  -2.,   6.,  -8.])).real
array([  4.,   3.,   5.,  10.,   5.,   3.])
>>> idct(np.array([ 30.,  -8.,   6.,  -2.]), 1)
array([  4.,   3.,   5.,  10.])