빈도 대 시간 도표를 작성하는 방법


9

저는 전자 엔지니어가 아닌 화학 엔지니어이므로 조금 어렵습니다.

진폭 대 시간 데이터를 가져 와서 주파수 대 시간으로 변환하는 방법을 알아 내려고합니다. 첫 번째 본능은 내 데이터를 청크로 분할하고 각 청크에서 FFT를 수행 한 다음 플로팅하는 것입니다. 불행히도, 각 슬라이스의 지속 시간이 0에 가까워 질수록 더 이상 정확한 주파수 정보를 얻을 수있는 정보가 충분하지 않습니다 (낮은 주파수는 매우 작은 시간 슬라이스 이상을 요구합니다). 그래서 ... 어떻게해야합니까? 나는 이것이 누군가가 이미 해결 한 유명한 문제라고 확신합니다.

여기 내가 찾고있는 변형의 종류가 있으며, 음파 (피아노 음표 G)로 설명되어 있습니다. 보시다시피이 그래프는 세 개의 축으로 표시되며 세 번째 축은 색상으로 표시됩니다.

감사!

여기에 이미지 설명을 입력하십시오

답변:


5

시간 대 주파수 분해능은 잘 알려진 문제이며 실제로이를 극복하기위한 접근 방법이 있습니다. 오디오 신호의 경우, 일반적으로 사용되는 기술 중 일부는 파라 메트릭 방법; 적응 형 분해능 (다양한 시간 / 주파수 구성으로 분석하고 결과를 함께 패치-Wen X. 및 M. Sandler, "여러 푸리에 변환을 사용하는 합성 분광도"); 과 완전베이스의 웨이블릿 / 분해; 및 주파수 정보 (IFgram)의 정확한 위치를 추출하기위한 위상 정보의 사용.

그러나 표시 한 그래프는 이러한 기술 중 일부를 사용하지 않는 것 같습니다. 그래서 이것이 당신이 찾고있는 것이 아닌 것 같습니다. 수평 축에 약간의 "번짐"(예 : t = 1.2s)이있는 것으로 보이며 이는 청크 사이에서 높은 중첩으로 분석이 완료되었음을 나타냅니다.

실제로 프레임이 겹치도록 허용하는 경우 청크 지속 시간과 초당 분석 프레임 수를 서로 연결할 필요가 없습니다. 따라서 40ms 길이의 분석 프레임을 사용하려는 경우 그리드는 다음과 같을 필요는 없습니다.

프레임 1 : t = 0..t = 40ms; 프레임 2 : t = 40ms..t = 80ms

그것은 매우 잘 될 수 있습니다 :

프레임 1 : t = 0..t = 40ms; 프레임 2 : t = 10ms..t = 50ms

이 겹침은 FFT 창 크기를 너무 많이 줄이지 않으면 서 더 높은 시간 해상도의 환상을 줄 수 있습니다. 이는 시간 축에서 이벤트를 정확하게 찾는 데 도움이 될 수 있습니다. 두 이벤트를 제 시간에 가깝게 해결하는 데 도움이되지 않습니다. FFT 크기를 늘리는 것처럼 주파수 피크의 위치를 ​​식별하는 데 도움이 될 수 있지만 인접한 두 주파수 피크의 분해능.


다른 방향으로가는 방법 (분광도에서 오디오 신호로 변환)
pete

4

그렇습니다. 많은 사람들이 시간-주파수 분석에 참여했습니다.

"데이터를 청크로 분할하고 각 청크에서 FFT를 수행"하는 방법은 좋은 생각입니다. FFT를 수행하기 직전에 각 청크에 "창 기능"을 적용하면 많은 인공물을 피할 수 있습니다. 청크가 겹치는 것도 도움이됩니다. 이러한 조정 후에는 Gabor 변환 이 시작되는데, 이는 가장 인기있는 단시간 푸리에 변환 (STFT) 인 것 같습니다.

이미 지적했듯이 Wikipedia 기사에서 지적했듯이 모든 단기 푸리에 변환 기술에는 다음과 같은 단점이 있습니다.

  • 당신은 매우 짧은 조각으로 시계열을 절단 할 때, 당신은 정확하게에 관해서는 매우 정확한 시간 정보를 얻을 톤을 시작하고 중지하지만, 주파수 정보는 매우 흐릿하다.
  • 시계열을 매우 긴 조각으로 자르면 정확한 톤 주파수에 대해 매우 정확한 주파수 정보를 얻을 수 있지만 정확한 시작 및 중지 시간은 흐릿합니다.

이것은 유명한 문제이지만 아아, 해결되지 않았을뿐만 아니라 Gabor 한계, Heisenberg-Gabor 한계, 불확실성 원리 등 두 가지의 불확실성이 불가피하다는 것이 입증되었습니다 .

내가 당신이라면 가보 변환을 계산하기 위해 많은 상용 라이브러리 중 하나에서 시작하여 시계열을 다양한 길이로 자르는 실험을해볼 것입니다. 운이 좋을 확률이 꽤 높으며 적절한 시간 지역화와 적절한 주파수 식별 을 제공하는 길이로 끝날 것입니다 .

이 응용 프로그램에서 작동하지 않으면 시간-주파수 표현시간-주파수 분석 ( 웨이블릿 변환, 첩렛 변환 , 분수 푸리에 변환 (FRFT) 등) 에 대한 다른 접근 방식으로 넘어갑니다 .

편집 : 오디오 데이터에서 스펙트로 그램 / 폭포 그림 을 생성하는 일부 소스 코드 :

Image to Spectrogram 은 위의 유틸리티와 반대 방향으로 진행됩니다.


가보 변환은 가우시안 윈도우에서만 가능합니다. 다른 창을 사용하는 경우 STFT 일뿐입니다. (그리고 진정한 가우시안 윈도우는 무한대로 테이퍼링되기 때문에 디지털에는 존재하지 않습니다.)
endolith

@endolith : 당신이 맞아요. Gabor 변환은 유한 한 길이로 잘린 "Gaussian window 함수"를 사용합니다. 이상적인 가우시안과 거의 비슷하지만 수학적으로 동일하지는 않습니다.
David Cary

Gabor 변환은 적분을 사용하는 연속 변환이므로 잘리지 않는 가우시안을 창으로 사용할 수 있습니까?
endolith

@endolith : 예, 원칙적으로 사람은 잘리지 않은 가우시안을 창으로 사용할 수 있습니다. 실제로, 가우시안의 모든 에너지는 실제로 중앙 혹의 몇 시그마 내에 있기 때문에, 잘린 창을 사용하는 것은 실제로 항상 출력 차트에서 지각 할 수있는 차이를 만들지 않습니다. 스펙트로 그램 워터 폴 플롯 을 생성하는 소프트웨어 는 가우스 창을 반복적으로 적용한 다음 차트의 모든 열에 대해 FFT를 수행하므로 "잘라 내지 않음"으로 인해 해당 소프트웨어의 속도가 느려질 수 있습니다.
David Cary
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.