푸리에 변환과 코사인 변환의 차이점은 무엇입니까?


75

음성 인식에서, 프론트 엔드는 일반적으로 오디오 스트림으로부터 특징 추출을 허용하기 위해 신호 처리를 수행한다. 이 과정에서 이산 푸리에 변환 (DFT)이 두 번 적용됩니다. 처음은 윈도 잉 후입니다. 이 멜 비닝이 적용된 후 또 다른 푸리에 변환이 적용됩니다.

그러나 음성 인식기 ( 예 : CMU Sphinx 의 기본 프런트 엔드)에서 두 번째 작업에 DFT 대신 이산 코사인 변환 (DCT)을 사용하는 것이 일반적이라는 것을 알았습니다 . 이 두 작업의 차이점은 무엇입니까? 왜 처음 DFT를 한 다음 DCT를 두 번째로 하시겠습니까?


그래서 몇몇은 두 프로세스의 차이점을 설명했습니다. dft와 dct가 왜 음성 인식에서 다른 시간에 사용되는지 아는 사람이 있습니까? 첫 번째 dft의 출력이 대칭으로 간주됩니까? 또는 dct의 압축은 처음 13 개 지점에서 더 많은 정보를 포장하는 데 적합합니까 (음성 처리는 일반적으로 그 점만 사용함)?
네이트 글렌

귀하의 질문 이 다른 질문으로 제기Mel-frequency cepstrum 과 관련이 있습니까?
rwong

내 질문은 두 부분이었습니다 : DCT와 DFT의 차이점, 그리고 다른 DFT 대신 DFT와 Mel Binning을 적용한 후 DCT가 신호 처리에 종종 사용되는 이유는 무엇입니까?
네이트 글렌

왜 이미지 프로세싱에서 이산 코사인 변환 대신 이산 사인 변환을 사용하지 않습니까?

안녕하세요 rimondo, 이것은 좋은 질문이지만 답변으로 게시했습니다. 질문을하려면 새로운 질문을 작성해야합니다.
Nate Glenn

답변:


48

DFT (Discrete Fourier Transform)와 DCT (Discrete Cosine Transform)는 비슷한 기능을 수행합니다. 이들은 유한 길이의 이산 시간 벡터를 스케일 및 시프트 된 기본 함수의 합으로 분해합니다. 이 둘의 차이점은 각 변환에서 사용되는 기본 함수 유형입니다. DFT는 조화롭게 관련된 복잡한 지수 함수 세트를 사용하는 반면 DCT는 (실수) 코사인 함수 만 사용합니다.

DFT는 다양한 분야에 적용되는 일반적인 스펙트럼 분석 응용 분야에 널리 사용됩니다. 또한 중첩 저장 및 중첩 추가 고속 회선 알고리즘과 같은 신호 주파수 영역 표현의 특성을 이용하는 기술을위한 구성 요소로 사용됩니다.

DCT는 JPEG 이미지 형식과 같은 손실 데이터 압축 응용 프로그램에서 자주 사용됩니다. 압축에 매우 적합한 DCT의 특성은 높은 "스펙트럼 압축"입니다. 정 성적 수준에서 신호의 DCT 표현은 DFT와 같은 다른 변환과 비교할 때 더 많은 에너지가 적은 수의 계수에 집중되는 경향이 있습니다. 이것은 압축 알고리즘에 바람직합니다. 비교적 작은 DCT 계수 세트를 사용하여 원래 (시간 또는 공간 도메인) 신호를 대략적으로 표현할 수있는 경우 상당한 양의 에너지를 포함하는 DCT 출력 만 저장하여 데이터 저장 요구 사항을 줄일 수 있습니다.


4
@JasonR "정성적인 수준에서 신호의 DCT 표현은 DFT와 같은 다른 변환과 비교할 때 더 많은 에너지가 적은 수의 계수에 집중되는 경향이 있습니다." 흠 ... DFT에 이미 신호가 투사 될 코사인 이 포함되어 있기 때문에 DFT 가 그 투영의 강도를 얼마나 많이 보여주지 않을 수 있는지에 대해 완전히 동의합니다. 그리고 DCT는 할 수 있습니까? 감사.
Spacey

3
이것은 DCT의 매우 잘 알려진 기능으로, 많은 압축 알고리즘에서의 사용을 설명합니다. 신호의 가장자리에서 DCT가 가정 한 경계 조건과 관련이 있다고 생각합니다.
Jason R

23

DCT 위키 (Pearsonartphoto와 공유)의 일부 세부 사항 은 DCT가 압축 응용 프로그램에 적합하다는 것을 나타냅니다. 비공식 개요 섹션 의 끝 이 도움이됩니다 (굵게 표시됨).

특히, 함수의 불연속성이 푸리에 계열의 수렴 속도를 감소시키는 것으로 잘 알려져 있습니다. 함수가 부드러울수록 DFT 또는 DCT의 용어가 정확하게 표현하는 데 필요한 용어가 적고 더 많을수록 수있는 압축 ... 그러나, DFT의 내재적 주기성 불연속 일반적 반대로 DCT ... 경계에서 발생하는 것을 의미 모두 경계 고르게이 항상 경계에 연속 확장을 산출한다. 이것이 DCT가 일반적으로 DFT 및 DST보다 신호 압축 성능이 더 우수한 이유입니다. 실제로, II 형 DCT는 일반적으로 계산 편의상 부분적으로 그러한 적용에 바람직하다.

또한이 답변 도 유용하다는 것을 알 수 있습니다 (math.stackexchange.com에서). 상태는 다음과 같습니다.

코사인 변환은 특별한 대칭으로 시퀀스의 푸리에 변환을 계산하기위한 지름길에 지나지 않습니다 (예 : 시퀀스가 ​​짝수 함수의 샘플을 나타내는 경우).


19

피쳐 추출 프로세스에서 푸리에 변환이 두 번 적용되는 이유는 피쳐가 cepstrum이라는 개념을 기반으로하기 때문입니다. Cepstrum은 워드 스펙트럼에서의 재생입니다. 기본적으로 아이디어는 푸리에 변환 (Fourier transform)에 의해 신호를 주파수 영역으로 변환 한 다음 주파수 스펙트럼이 신호 인 것처럼 다른 변환을 수행하는 것입니다.

주파수 스펙트럼은 각 주파수 대역의 진폭과 위상을 설명하지만, cepstrum은 주파수 대역 간의 변동을 특성화합니다. cepstrum에서 파생 된 기능은 주파수 스펙트럼에서 직접 가져온 기능보다 음성을 더 잘 설명합니다.

약간 다른 정의가 있습니다. 원래 cepstrum transform은 Fourier transform-> complex logarithm-> Fourier transform [1]로 정의되었습니다. 또 다른 정의는 푸리에 변환-> 복소수 로그-> 역 푸리에 변환 [2]입니다. 후자의 정의에 대한 동기는 복잡한 신호를 분리하는 능력에있다 (인간의 말은 종종 흥분과 성대의 컨볼 루션으로 모델링된다).

음성 인식 시스템에서 잘 작동하는 것으로 널리 알려진 선택은 주파수 영역 (참조하는 멜 비닝)에서 비선형 필터 뱅크를 적용하는 것입니다 [3]. 특정 알고리즘은 푸리에 변환-> 제곱 크기-> 멜 필터 뱅크-> 실제 로그-> 이산 코사인 변환으로 정의됩니다.

여기서 실제 값 입력의 경우 DFT의 실수 부분이 일종의 DCT이므로 DCT를 두 번째 변환으로 선택할 수 있습니다. DCT가 선호되는 이유는 출력이 거의 역 상관되기 때문입니다. 역 상관 피쳐는 대각선 공분산 행렬을 사용하여 가우스 분포로 효율적으로 모델링 할 수 있습니다.

[1] Bogert, B., Healy, M. 및 Tukey, J. (1963). 메아리에 대한 시계열의 고주파수 분석 : Cepstrum, Pseudo-Autocovariance, Cross-Cepstrum 및 Saphe Cracking. 시계열 분석 심포지엄 진행, p. 209-243.

[2] Oppenheim, A. 및 Schafer, R. (1968). 음성 동형 분석. 오디오 및 전자 음향에 관한 IEEE 거래 16, p. 221-226.

[3] Davis, S. 및 Mermelstein, P. (1980). 지속적으로 말하는 문장에서 단음절 단어 인식에 대한 파라 메트릭 표현의 비교. 음향, 음성 및 신호 처리에 관한 IEEE 거래 28, p. 357-366.


레. 특징 추출의 PCA : 진정한 PCA는 데이터에 의존하기 때문에 무의미합니다! 한 데이터 세트에서 다른 데이터 세트에서 멜 주파수 로그 계수의 PCA를 계산하면 다른 기준을 찾을 수 있습니다. 즉, PCA가 피쳐 추출 프로세스에서 사용 된 경우 한 신호에서 추출 된 피쳐는 다른 신호에서 추출 된 기능과 "동일한 의미"가 아닙니다. 이제이 실험을 수행하십시오. 로그 멜 코프 세트에서 PCA를 계산하십시오. 가장 다양한 오디오 10 시간에서 추출했습니다. 찾을 수있는 기준은 DCT 기준과 매우 유사합니다.
pichenettes 2019

3
다시 말해, 인식 응용에 유용하기 위해, 특징 추출 프로세스의 끝에서의 역 상관 변환은 데이터에 특정한 것이 아니라 일반적으로 "오디오"에 적합한 일종의 타협이어야한다. DCT 기반은 많은 오디오 세트에서 PCA를 실행할 때 얻는 것과 매우 가깝습니다.
pichenettes

나는 최근 실험 음성 시스템에서 PCA가 특징 추출 프로세스의 끝에서 사용되는 것을 보았다. 이 시스템은 훈련 데이터로부터 PCA 프로젝션을 계산하고 그 후에 동일한 기준을 사용했습니다.
Seppo Enarvi

8

이산 푸리에 변환과 이산 코사인 변환 의 차이점 은 DCT는 실수 만 사용하고 푸리에 변환은 복소수를 사용할 수 있다는 것입니다. DCT의 가장 일반적인 용도는 압축입니다. 길이의 두 배인 FFT와 같습니다.


1
그러나 복소수 시퀀스의 DCT / DST를 생각할 수 있는데, 여기서 실제 및 허수 부분의 DCT / DST를 별도로 취합니다.

따라서 DFT를 계산하면 DCT를 무료로 얻을 수 있으며 벡터의 허수 부분을 제거하기 만하면됩니다. 내가 틀렸다면 정정 해주세요.
Marek

1
그것보다 조금 더 복잡하지만 FFT와 DCT 사이를 상당히 쉽게 변환 할 수 있습니다.
PearsonArtPhoto
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.