Fourier dönüşümü ile kosinüs dönüşümü arasındaki fark nedir?


75

Konuşma tanımada, ön uç genellikle ses akışından özellik çıkarılmasını sağlamak için sinyal işleme yapar. Bu işlemde iki kez ayrık bir Fourier dönüşümü (DFT) uygulanır. İlk defa pencereden sonra; Bu Mel silme işleminden sonra başka bir Fourier dönüşümü uygulanır.

Ancak, ikinci işlem için DFT yerine ayrı bir kosinüs dönüşümü (DCT) kullanmanın konuşma tanıyıcılarda ( örneğin, CMU Sfenks'te varsayılan ön uç) yaygın olduğunu fark ettim . Bu iki işlem arasındaki fark nedir? Neden önce DFT, sonra ikinci kez bir DCT yaptınız?


Bu yüzden birkaçı iki süreç arasındaki farkı açıkladı. Dft ve dct'nin neden konuşma tanıma sırasında farklı zamanlarda kullanıldığını bilen var mı? İlk dft'in çıktısının simetrik olduğu düşünülüyor mu? Yoksa dct'nin sıkıştırılması ilk 13 noktada daha fazla bilgiyi paketlemek için uygun mudur (konuşma işlemi genellikle sadece bunları kullanır)?
Nate Glenn

Sorunuz , başka bir soruda sorulan Mel-frekans kulaklığı ile mi ilgili ?
rwong

Sorumu 2 bölümden oluşuyordu: DCT ve DFT arasındaki fark ve DCT'nin neden başka bir DFT yerine DFT ve Mel Binning uygulandıktan sonra sinyal işleme için sıklıkla kullanıldığını.
Nate Glenn

neden görüntü işlemede, ayrık kosinüs dönüşüm yerine ayrık sinüs dönüşümü kullanmıyoruz?

Selam rimondo, bu iyi bir soru ama cevap olarak gönderdin. Sormak için yeni bir soru yaratmalısın.
Nate Glenn

Yanıtlar:


48

Ayrık Fourier Dönüşümü (DFT) ve Ayrık Kosinüs Dönüşümü (DCT) benzer işlevleri gerçekleştirir: her ikisi de sonlu uzunluklu ayrık zamanlı bir vektörü ölçeklendirilmiş ve kaydırılmış temel fonksiyonların toplamına ayrıştırır. İkisi arasındaki fark, her dönüşüm tarafından kullanılan temel fonksiyon türüdür; DCT sadece (gerçek değerli) kosinüs fonksiyonlarını kullanırken, DFT bir dizi harmonikle ilişkili karmaşık üstel fonksiyonlar kullanır.

DFT, geniş bir yelpazedeki alanlara giren genel spektral analiz uygulamaları için yaygın olarak kullanılmaktadır. Ayrıca üst üste binme ve üst üste binme hızlı hızlı evrişim algoritmaları gibi sinyallerin frekans-alan gösterimi özelliklerinden yararlanan teknikler için yapı taşı olarak kullanılır.

DCT, JPEG görüntü formatı gibi kayıplı veri sıkıştırma uygulamalarında sıklıkla kullanılır. DCT'nin sıkıştırma için oldukça uygun olmasını sağlayan özelliği, yüksek derecede "spektral sıkıştırma" dir; Niteliksel seviyede, bir sinyalin DCT gösterimi, DFT gibi diğer dönüşümlerle karşılaştırıldığında enerjisinin daha az katsayıda yoğunlaştırılmasını sağlar. Bu bir sıkıştırma algoritması için arzu edilir; nispeten küçük bir DCT katsayıları kümesi kullanarak orijinal (zaman veya uzamsal alan) sinyalini yaklaşık olarak gösterebiliyorsanız, veri depolama gereksiniminizi yalnızca önemli miktarda enerji içeren DCT çıkışlarını depolayarak azaltabilirsiniz.


4
@JasonR "nitel düzeyde, bir sinyalin DCT gösterimi, DFT gibi diğer dönüşümlerle karşılaştırıldığında enerjisinin daha az sayıda katsayıda yoğunlaştırılmasına meyillidir." Hmmmm ... Bu konuda sizinle tamamen aynı fikirdeyim, emin değilim - eğer sadece DFT zaten bir sinyalin yansıtılacağı bir kosinüs içerdiği için - eğer bir DFT bu projeksiyonun gücünü nasıl gösteremez? ve bir DCT olabilir? Teşekkürler.
Spacey

3
Bu, birçok sıkıştırma algoritmasında kullanımını açıklayan DCT'nin çok iyi bilinen bir özelliğidir. DCT'nin, DFT'lerden farklı olan sinyalin kenarlarında üstlendiği sınır koşullarıyla ilgili olduğuna inanıyorum.
Jason R,

23

DCT wiki'deki bazı detayların (Pearsonartphoto tarafından da paylaşılmaktadır) DCT'nin sıkıştırma uygulamaları için uygun olduğunu işaret ettiğini gördüm. Gayri resmi genel bakış bölümünün sonu yararlıdır (kaynak benimdir).

Özellikle, bir fonksiyondaki herhangi bir süreksizlik, Fourier serisinin yakınsama hızını düşürdüğü iyi bilinmektedir ... fonksiyonun ne kadar düzgün olması durumunda, DFT veya DCT'sindeki terimlerin sayısı o kadar azdır, onu doğru bir şekilde göstermesi gerekir. olabilir sıkıştırılmış ... Ancak, DFT'nin örtülü dönemsellik süreksizlikler genellikle Buna karşılık, bir DCT ... sınırlarında görülür anlamına gelir hem sınırları bile vardır her zaman sınırlarında sürekli uzantısını verir. Bu nedenle DCT'ler ... genellikle sinyal sıkıştırma için DFT'lerden ve DST'lerden daha iyi performans gösterirler. Uygulamada, bir tür II DCT genellikle bu tür uygulamalar için, kısmen hesaplama kolaylığı nedeniyle tercih edilir.

Ek olarak, bu cevabın da yararlı olduğunu görebilirsiniz (math.stackexchange.com'dan). Belirtir:

Kosinüs dönüşümleri, bir dizinin Fourier dönüşümünü özel simetri ile hesaplamak için kısayollardan başka bir şey değildir (ör. Dizi, eşit fonksiyondan örnekleri temsil ediyorsa).


19

Fourier dönüşümünü özellik çıkarma işleminde iki kez uygulanmasının nedeni, özelliklerin kulak zarı adı verilen bir konsepte dayanmasıdır. Cepstrum, spektrum kelimesi üzerinde bir oyundur - esasen fikir, bir sinyali Fourier dönüşümü ile frekans alanına dönüştürmek ve sonra frekans spektrumu bir sinyalmiş gibi başka bir dönüşüm yapmaktır.

Frekans spektrumu, her frekans bandının genliğini ve fazını tanımlarken, kulak bandı, frekans bantları arasındaki varyasyonları karakterize eder. Cepstrumdan türetilen özelliklerin, konuşmayı doğrudan frekans spektrumundan alınan özelliklerden daha iyi tanımladığı bulunmuştur.

Birkaç tane farklı tanım var. Başlangıçta cepstrum dönüşümü, Fourier dönüşümü -> karmaşık logaritma -> Fourier dönüşümü [1] olarak tanımlandı. Diğer bir tanım Fourier dönüşümü -> karmaşık logaritma -> ters Fourier dönüşümüdür [2]. İkinci tanım için motivasyon, sarsılmış sinyalleri ayırma kabiliyetindedir (insanın konuşması genellikle bir uyarma ve ses sisteminin kıvrılması olarak modellenir).

Konuşma tanıma sistemlerinde iyi bir performans gösterdiği bilinen bir seçenek, frekans alanına doğrusal olmayan bir filtre bankası uygulamaktır (atıfta olduğunuz mel çifti) [3]. Özel algoritma, Fourier dönüşümü -> büyüklük karesi -> mel filtre bankası -> gerçek logaritma -> ayrık kosinüs dönüşümü olarak tanımlanır.

Burada DCT ikinci dönüşüm olarak seçilebilir, çünkü gerçek değerli girdi için DFT'nin gerçek kısmı bir tür DCT'dir. DCT'nin tercih edilmesinin nedeni, çıktının yaklaşık olarak dekor ile ilgili olmasıdır. Dekore edilmiş özellikler, köşegen bir kovaryans matrisine sahip bir Gauss dağılımı olarak verimli bir şekilde modellenebilir.

[1] Bogert, B., Healy, M. ve Tukey, J. (1963). Yankılar için Zaman Serilerinin Quefrency Alanysis: Cepstrum, Sözde Otokovaryans, Çapraz Cepstrum ve Saphe Cracking. Zaman Serileri Analizi Sempozyumu Bildirilerinde, s. 209-243.

[2] Oppenheim, A. ve Schafer, R. (1968). Konuşmanın Homomorfik Analizi. IEEE İşitsel ve Elektroakustik İşlemlerinde 16, s. 221-226.

[3] Davis, S. ve Mermelstein, P. (1980). Sürekli Konuşulan Cümlelerde Monosiljik Kelime Tanıma için Parametrik Gösterimlerin Karşılaştırılması. Akustik, Konuşma ve Sinyal İşleme Üzerine IEEE İşlemlerinde 28, s. 357-366.


Yeniden. Özellik çıkarımında PCA: gerçek bir PCA burada anlamsız olurdu çünkü verilere bağlı! Eğer Mel-Frekans Kütle Katsayılarının PCA'sını bir veri setinden ve sonra bir digerinden hesaplarsanız, farklı bir temel bulacaksınız. Diğer sinyalde çıkarılan özellikler ile aynı "t" demek. Şimdi bu deneyi yapın: PCA'yı bir günlük Mel coef kümesinde hesaplayın. en çeşitli seslerin 10 saatinden Bulacağınız temel, DCT tabanına çok benzer.
pichenettes

3
Başka bir deyişle: tanıma uygulamasında yararlı olması için, özellik çıkarma işleminin sonundaki dekor ilişkisinin, verilere özgü değil, genel olarak "sese" uygun bir çeşit uzlaşma olması gerekir. Bir PCA'yı büyük bir ses setinde çalıştırdığınızda elde ettiğiniz DCT temasının çok yakın olduğu ortaya çıkıyor!
pichenettes

Geçenlerde deneysel bir konuşma sisteminde özellik çıkarma işleminin sonunda kullanılan PCA'yı gördüm. Bu sistem PCA projeksiyonunu eğitim verilerinden hesapladı ve daha sonra aynı temeli kullandı.
Seppo Enarvi

8

Bir Ayrık Fourier Dönüşümü ile Ayrık Bir Kosinüs dönüşümü arasındaki fark , DCT'nin yalnızca gerçek sayıları kullanmasıdır, bir Fourier dönüşümü ise karmaşık sayıları kullanabilir. DCT'nin en yaygın kullanımı sıkıştırmadır. İki kat uzunluğa sahip bir FFT'ye eşdeğerdir.


1
Bununla birlikte, DCT / DST'yi karmaşık bir sekansın tasarlaması mümkündür, burada biri gerçek ve hayali parçaların DCT / DST'sini ayrı ayrı alır.

DFT'yi hesaplarsam, ücretsiz DCT elde edersem, yapmam gereken tek şey vektörün hayali parçalarını kaldırmak olduğunu söyleyebiliriz. Yanılıyorsam lütfen beni düzeltin.
Marek,

1
Bundan biraz daha karmaşık, ancak bir FFT ile DCT arasında oldukça kolay bir şekilde dönüşüm yapmak mümkün.
PearsonArtPhoto
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.