ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

idct

逆離散コサイン変換

構文

x = idct(y)
x = idct(y,n)

説明

逆離散コサイン変換では、離散コサイン変換 (DCT) 係数からシーケンスが復元されます。関数 idct は、関数 dct の逆の演算を行います。

x = idct(y) では、次の逆離散コサイン変換が出力されます。 y

x(n)=k=1Nw(k)y(k)cos(π(2n1)(k1)2N),n=1,2,N

ここで、

w(k)={1N,k=12N,2kN

かつ N = length(x) で、これは length(y) と同じです。MATLAB® のベクトル表現では、0 から N-1 ではなく、1 から N で実行されるため、データ列には通常の n = 0 および k = 0 の代わりに、n = 1 およびk = 1 のインデックスが付けられます。

x = idct(y,n) では、ベクトル y にゼロを付加するか、または余剰を切り捨てて、変換前に長さを n にします。

y が行列の場合、idct は各列を変換します。

すべて折りたたむ

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')

関連する例

参考文献

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

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

参考

| | |

R2006a より前に導入

この情報は役に立ちましたか?