창 크기를 늘리지 않고 FFT의 주파수 해상도를 높일 수 있습니까?


12

멀티 피치 분석에 STFT를 사용하고 싶습니다. 신호에 존재하는 부분을 감지하는 것은 시작에 불과합니다. 여전히 문제가 있습니다.

신호가 'CD'frequency로 샘플링되었다고 가정 해 봅시다 44100Hz. 1024샘플 창에서의 주파수 빈 해상도를 얻습니다 22500Hz/512=43Hz. 이것은 다음 C5 = 523.251Hz과 같은 높은 피아노 음을 식별하기에 충분합니다 C#5 = 554.365.

나는 1024꽤 큰 창 이라고 생각 했었다. 그러나 그렇지 않을 수도 있으며 일반적으로 큰 창문이 부분 탐지에 사용됩니까?

창 크기를 늘리는 것 이외의 다른 방법으로 주파수 해상도를 높일 수 있습니까? 나는 두 가지 방법을 생각했다.

방법 1 :

  1. 대역 통과 필터를 사용하여 신호를 주파수 대역으로 나눕니다 (예 : 0-11.25Hz11.25-22.5Hz).
  2. 더 높은 대역을 다운 샘플링하여 원래의 높은 주파수가 이제 낮은 주파수가되도록합니다 (두 번째 대역에도 적용 11.25-22.5Hz -> 0Hz-22.5Hz). 이것이 가능하지는 않습니다.
  3. 조정 된 레이블로 결과 출력 함 세트를 연결하십시오.

방법 2 :

  1. 한계가 증가하는 일련의 저역 통과 필터를 사용하십시오.
  2. 증가하는 주파수 범위에서 FFT를 수행하십시오.
  3. 각 주파수에 대해 최상의 분해능을 사용하십시오 (이 주파수가 포함 된 첫 번째 FFT에서 바인딩).
  4. 이것은 낮은 주파수가 더 나은 해상도를 갖도록 할 것이지만, 더 높은 음에서는 주파수 차이가 거칠기 때문에 이것이 정상이라고 생각합니다.

이 문제에 대해 언급 해 주셔서 감사합니다.

나는 또한 여기에서 읽습니다 : 윈도우 크기, 샘플 속도는 FFT 피치 추정에 어떻게 영향을 줍니까? 피크 피킹 결과를 개선하는 방법에 대해 설명합니다. 나는 그것을 사용하려고 노력할 것입니다.


사인 성분이 하나만 있다는 것을 알고 있다면 포물선을 피크의 인접한 빈에 맞추고 보간하여 "진정한"피크를 찾을 수 있습니다. 이것이 @pichenettes에서 설명한 단계 방법과 어떻게 비교되는지 확실하지 않습니다.
endolith

답변:


9

시간 / 주파수 트레이드 오프가 발생하지 않는 파라 메트릭 방법이 아닌 FFT 사용을 실제로 주장하는 경우 위상 정보를 사용하여 각 FFT 빈의 순간 주파수를 복구하여 훨씬 더 나은 해상도를 위조 할 수 있습니다. 그런 다음 FFT bin 지수의 함수로 순간 주파수를 제공하는 함수에서 고원을 찾아서 부분을 감지 할 수 있습니다. 이 백서에 설명 이 기술의 일반적인 구현은 하나의 추가 STFT를 "비용"으로합니다 (신호의 STFT 및 신호의 미분의 STFT에 대한 조작으로 즉각적인 주파수가 복구 됨).

오디오 신호 의 정현파 모델링 에 대한이 Matlab 구현의 ifgram 함수를 참조하십시오 .

이는 인접한 FFT 빈에 떨어지는 두 부분을 해결하는 데 도움이되지 않습니다. 스펙트럼 피크의 FFT bin 지수를 주파수로 변환하는 것보다 훨씬 정확한 주파수 추정치를 제공합니다.


파라 메트릭 방법은 무엇을 의미합니까? 또한 몇 개월 전에 FFT와 유사하지만 균일 한 주파수 스케일이 아닌 주파수 옥타브 스케일을 가진 알고리즘을 언급 한 적이 있습니까?
Jim Clay

파라 메트릭 방법은 신호가 일련의 매개 변수로 설명 된 특정 프로세스에 의해 생성되고 관측치에서 이러한 매개 변수의 최소 제곱 추정을 계산한다고 가정하는 통계 신호 분석 방법입니다. 예를 들어 신호가 N 지수 적으로 감쇠 된 정현파 + 잡음의 합이라고 가정하면 ESPRIT 또는 MUSIC과 같은 알고리즘을 사용하여 N 복소 진폭 및 맥동을 추론 할 수 있습니다.
pichenettes

2
아마도 상수 Q 변환을 참조하고있을 것입니다. 경고는 FFT만큼 계산적으로 효율적이지는 않다는 것입니다. 이 변환을 반전시키는 것은 사소한 최적화 문제가 아닙니다.
pichenettes

@JimClay : 어쩌면 여기 마이그레이션해야 하는가?
endolith

1
파라 메트릭 방법이 시간 / 주파수 절충을 겪지 않는다고 말하는 것은 잘못된 것입니다. 핵심적으로 파라 메트릭 방법은 시스템을 모델링하고 모델을 사용하여 의미있는 데이터를 추출합니다. 그러나 성능은 모델만큼 우수합니다. "최상의"모델이 선택되었다고 가정하면 (극 수 또는 신호 공간 고유 벡터 수) 이러한 방법의 성능은 여전히 ​​데이터 레코드 길이에 매우 민감합니다.
Bryan

2

"해상도"라는 용어에는 여러 가지 의미가 있습니다. 일반적으로 동일한 창 길이의 데이터를 사용하여 보간을 통해 근접한 스펙트럼 피크를 분리 (또는 "해결")하는 능력을 향상시킬 수 없습니다. 그러나 다양한 보간법으로 FFT 빈 간격보다 더 정밀한 해상도 (때로는 훨씬 더 정밀한 해상도)로 노이즈 플로어보다 훨씬 높은 분리 된 고정 스펙트럼 피크의 주파수를 추정 할 수 있습니다.

고해상도 추정을위한 일반적인 FFT 결과 보간 방법에는 포물선 보간, Sinc 보간, 데이터를 훨씬 더 긴 FFT로 제로 패딩 및 (약간) 오프셋 겹침 창을 사용하는 위상 보코더 방법이 있습니다.

FFT는 본질적으로 주어진 대역 통과 필터 커널 길이에 대해 매우 가파른 전환이지만 톤의 정지 대역 리플이있는 대역 통과 필터 뱅크입니다. 따라서,이 필터는 비 주기적 소음을 크게 제거하지 않습니다. 이러한 유형의 간섭이 문제라고 생각되면 윈도우 FFT 또는 사용자 정의 필터 뱅크가 더 잘 수행 될 수 있습니다.


1

Jim Clay 질문에 대한 추가 연구 와 피케 네트 가 의견에 대한 답변을 얻은 후 Method2 가 Kashima와 Mont-Reynaud에 의해 설명 된 경계 Q 변환을 다시 발명 한 것으로 나타났습니다 (이 기사에 링크 할 수 있는지 확실하지 않습니다. 파일이 찢어진 것처럼 보입니다 ) .

그들의 접근 방식은 가장 큰 주파수 범위에서 시작하여 가장 낮은 옥타브에 도달 할 때까지 2 씩 반복적으로 다운 샘플링하기 때문에 알고리즘 적으로 더 효율적입니다.

Q-변환의 장점은, 예를 들어 브라운 탐구했다 여기 . 단일 FFT만큼 효율적이지는 않지만 고주파 대역에서 두꺼운 FFT를 계산하지 않는 이점이 있습니다.

모든 답변, 의견 및 링크에 감사드립니다.


당신이 묘사하는 것은 웨이블릿 변환과 매우 흡사 합니다 . 나는 이것이 오래된 게시물이라는 것을 알고 있지만 장래 독자들은 웨이블릿을보고 싶을 수도 있습니다. 내 대답에서 지적했듯이 시간 빈도 불확실성 원칙을 변경할 수는 없지만 데이터에 대한 지식을 통해 약간의 부정 행위를 할 수 있습니다.
orodbhen

1

입력의 "기록"을 유지하고이를 사용하여 DFT와 겹치면 스펙트럼 내용을 추출하는 데 더 많은 정보가 제공됩니다. 물론 이는 시변 신호의 특성에 따라 다릅니다. 확률 분포 함수와 형태가 비슷합니다.

이렇게하면 시간이 가까워지는 DFT가 제공됩니다. 그러나 그것은 여전히 ​​자연 법칙에 의해 제약되는 각 DFT의 시간적 불확실성을 증가시킬 것입니다. 시간적 및 스펙트럼 행동의 정확한 가치는 동시에 결정될 수 없습니다.

그러나 주파수 내용이 창 내에서 크게 다르지 않으면 괜찮을 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.