メインコンテンツ

idct

逆離散コサイン変換

説明

x = idct(y) は、入力配列 y の逆離散コサイン変換を返します。出力 x は、y と同じサイズになります。y が複数次元配列である場合、idct は、サイズが 1 より大きい最初の配列次元に沿って動作します。

x = idct(y,n) は、y にゼロを付加するか関連する次元を切り捨て、長さ n にしてから変換します。

x = idct(y,n,dim) は、次元 dim に沿って変換を計算します。次元を入力し、n の既定値を使用するには、2 番目の引数を空 [] として指定します。

y = idct(___,'Type',dcttype) は、計算する逆離散コサイン変換のタイプを指定します。詳細については、逆離散コサイン変換を参照してください。このオプションは、上述の任意の構文と組み合わせることができます。

すべて折りたたむ

1000 Hz で 1 秒間サンプリングされた 25 Hz の正弦波で構成される信号を生成します。正弦波を、分散 0.01 のホワイト ガウス ノイズに組み込みます。

rng('default')

Fs = 1000;
t = 0:1/Fs:1-1/Fs;
x = sin(2*pi*25*t) + randn(size(t))/10;

シーケンスの離散コサイン変換を計算します。1000 個の DCT 係数のうちのいくつが有意であるかを特定します。有意性のしきい値として 1 を選択します。

y = dct(x);

sigcoeff = abs(y) >= 1;

howmany = sum(sigcoeff)
howmany = 
17

有意な成分のみを使用して信号を再構成します。

y(~sigcoeff) = 0;

z = idct(y);

元の信号と再構成後の信号をプロットします。

subplot(2,1,1)
plot(t,x)
yl = ylim;
title('Original')

subplot(2,1,2)
plot(t,z)
ylim(yl)
title('Reconstructed')

Figure contains 2 axes objects. Axes object 1 with title Original contains an object of type line. Axes object 2 with title Reconstructed contains an object of type line.

離散コサイン変換のさまざまなバリアントが直交していることを、ランダムな信号をベンチマークとして使用して検証します。

まず、信号を生成します。

s = randn(1000,1);

DCT-1 および DCT-4 がそれ自体の逆変換であることを確認します。

dct1 = dct(s,'Type',1);
idt1 = idct(s,'Type',1);

max(abs(dct1-idt1))
ans = 
1.3323e-15
dct4 = dct(s,'Type',4);
idt4 = idct(s,'Type',4);

max(abs(dct4-idt4))
ans = 
1.3323e-15

DCT-2 および DCT-3 が互いの逆変換であることを確認します。

dct2 = dct(s,'Type',2);
idt2 = idct(s,'Type',3);

max(abs(dct2-idt2))
ans = 
4.4409e-16
dct3 = dct(s,'Type',3);
idt3 = idct(s,'Type',2);

max(abs(dct3-idt3))
ans = 
1.1102e-15

入力引数

すべて折りたたむ

離散コサイン変換の入力。実数値または複素数値のベクトル、行列、または N 次元配列として指定します。

例: dct(sin(2*pi*(0:255)/4)) は、正弦波の離散コサイン変換を指定します。

例: dct(sin(2*pi*[0.1;0.3]*(0:39))') は、2 チャネルの正弦波の離散コサイン変換を指定します。

データ型: single | double
複素数のサポート: あり

逆変換の長さ。正の整数スカラーで指定します。

データ型: single | double

動作する対象の次元。正の整数スカラーとして指定します。

データ型: single | double

逆離散コサイン変換のタイプ。1 ~ 4 の正の整数スカラーで指定します。

データ型: single | double

出力引数

すべて折りたたむ

逆離散コサイン変換。実数値または複素数値のベクトル、行列、または N 次元配列として返されます。

詳細

すべて折りたたむ

参照

[1] Jain, A. K. Fundamentals of Digital Image Processing. Englewood Cliffs, NJ: Prentice-Hall, 1989.

[2] Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck. Discrete-Time Signal Processing. 2nd Ed. Upper Saddle River, NJ: Prentice Hall, 1999.

[3] Pennebaker, W. B., and J. L. Mitchell. JPEG Still Image Data Compression Standard. New York: Van Nostrand Reinhold, 1993.

拡張機能

すべて展開する

バージョン履歴

R2006a より前に導入

参考

| (Image Processing Toolbox) | (Image Processing Toolbox) |