답변:
제로 패딩을 사용하면 더 긴 FFT를 사용할 수 있으므로 더 긴 FFT 결과 벡터가 생성됩니다.
FFT 결과가 길수록 더 많은 주파수 구간이 주파수 간격이 더 가깝습니다. 그러나 그들은 본질적으로 원래 데이터의 짧은 0으로 채워지지 않은 FFT의 고품질 Sinc 보간과 동일한 결과를 제공 할 것입니다.
이로 인해 추가 보간없이 플롯 할 때 매끄럽게 보이는 스펙트럼이 생길 수 있습니다.
이 보간법은 인접 주파수 또는 인접 주파수의 분해 또는 분해에 도움이되지 않지만 스펙트럼에서 중요한 인접 신호 또는 노이즈가없는 단일 분리 주파수의 피크를 시각적으로 쉽게 분석 할 수 있습니다. . 통계적으로, FFT 결과 빈의 밀도가 높을수록 피크 크기 빈이 임의의 고립 된 입력 주파수 정현파의 주파수에 가까워지고 추가 보간 (포물선 등)이 없을 가능성이 높아집니다.
그러나 본질적으로 DFT / FFT 이전의 제로 패딩은 많은 수의 포인트를 보간하는 계산 효율적인 방법입니다.
교차 상관, 자동 상관 또는 컨볼 루션 필터링을위한 제로 패딩은 컨벌루션 결과 (원형 컨볼 루션으로 인해)를 혼합하지 않는 데 사용됩니다. 선형 컨벌루션의 전체 결과는 두 입력 벡터 중 하나보다 깁니다. 이 더 긴 컨볼 루션 결과의 끝을 놓을 장소를 제공하지 않으면 FFT 빠른 컨볼 루션은 그 결과를 혼합하여 원하는 결과를 얻을 수 있습니다. 제로 패딩은 더 긴 결과를 혼합 할 수있는 다발 제로를 제공합니다. 그리고 0의 벡터로만 혼합 / 합산 된 것을 언 믹싱하는 것이 훨씬 쉽습니다.
시간 영역 신호를 제로 패드로 결정하기 전에 고려해야 할 사항이 몇 가지 있습니다. 신호를 전혀 제로 채울 필요가 없습니다!
1) 주파수 영역에서 더 나은 해상도를 얻으려면 시간 영역 데이터 (제로 패딩이 아님)를 늘리십시오.
2) FFT 빈을 더 잘 정의하고 싶지만 더 이상 실제 해상도를 사지 않으려면 시간 도메인 신호 길이 (제로 패딩)를 넘어 FFT 포인트 수를 늘리십시오. 패드를 사용하여 2 개의 FFT 점수를 얻을 수도 있습니다.
3) FFT 포인트 (이전 포인트)를 조정할 때 주파수 포인트가 원하는 위치에 있는지 확인하십시오. 포인트의 간격은 . 여기서 는 샘플링 주파수이고 은 FFT 포인트의 수입니다.f s N
http://www.bitweenie.com/listings/fft-zero-padding/ 에서 이러한 요점을 보여주는 멋진 인물이 있습니다 .
마지막으로 언급 할 사항 : 시간 영역에서 신호를 제로 패딩하고 윈도 잉 기능을 사용하려면 제로 패드 전에 신호를 윈도 잉해야합니다. 제로 패딩 후 창 기능을 적용하면 창에서 달성해야 할 작업을 수행 할 수 없습니다. 보다 구체적으로, 신호를 0으로 부드럽게 전환하는 대신 신호에서 0으로 급격하게 전환합니다.
일반적으로 DFT 이전의 제로 패딩은 변환 된 도메인에서 보간 또는 더 자주 샘플링하는 것과 같습니다.
다음은 반대 작동 방식에 대한 간단한 시각화입니다. 대역 제한 신호를 더 높은 속도로 시간에 샘플링하면보다 '스쿼시'스펙트럼, 즉 양 끝에 0이 더 많은 스펙트럼이 나타납니다. 즉, DFT 후 주파수를 단순히 제로 패딩 한 다음 제로 패딩 된 결과를 IDFT하여 시간에 따라 더 많은 샘플을 얻을 수 있습니다.
제로 패딩이 제 시간에 발생하면 동일한 효과가 반대로 유지됩니다. 신호가 대역 제한되고 적어도 나이키 스트 속도로 샘플링되는 한 완벽한 신호 재구성이 가능하기 때문입니다.
'해상도'라는 용어는 정의 방법에 따라 다릅니다. 나를 위해, 그것은 시간이나 주파수에서 인접한 두 관측 지점이 얼마나 안정적으로 (통계적으로) 구별 될 수 있는지를 의미합니다. 이 경우 해상도는 실제로 스펙트럼 누출로 인한 DFT 크기에 따라 달라집니다. 즉, 창 크기가 작을수록 변환 된 신호가 더 흐려 지거나 번지 며 그 반대도 마찬가지입니다. 얼마나 자주 샘플링하거나 '정의'라고 부르는 것과 다릅니다. 예를 들어, 높은 속도 (고화질)로 샘플링 된 이미지가 매우 흐리지 만 여전히 낮은 속도의 샘플링보다 더 많은 정보를 얻을 수는 없습니다. 따라서 요약하면 제로 패딩은 이전보다 더 많은 정보를 얻지 못하므로 해상도를 전혀 향상시키지 않습니다.
푸리에 변환 전후에 수행되는 프로세스에 따라 다른 이유가있을 수 있습니다. 가장 일반적인 이유는 결과 변환에서 더 높은 주파수 해상도를 달성하는 것입니다. 다시 말해, 변환에 사용 된 샘플 수가 많을수록 결과 전력 스펙트럼의 이진 폭이 좁아집니다. binwidth = sample_frequency / transform_size (종종 창 크기라고 함)를 기억하십시오. 이를 통해 변환 크기를 늘리면 binwidth가 줄어 듭니다 (= 더 나은 주파수 해상도). 제로 패딩은 신호에 새로운 정보를 제공하지 않고 변환 크기를 늘리는 방법입니다.
그렇다면 제로 패딩없이 더 큰 변형을 취하는 것이 어떻습니까? 같은 효과를 얻지 못합니까? 좋은 질문. 많은 경우에 짧은 시간 푸리에 변환 (stft)을 사용하는 시간 도메인 데이터 스트림을 분석 할 수 있습니다. 여기에는 주파수 스펙트럼의 변화를 특성화하기 위해 필요한 시간 분해능에 따라 N 개의 샘플마다 변환하는 것이 포함됩니다. 여기에 문제가 있습니다. 창이 너무 크면 시간 해상도가 너무 작아지고 창이 너무 작아 주파수 해상도가 떨어집니다. 그런 다음 해결책은 작은 시간 도메인 창을 사용하여 좋은 시간 해상도를 제공 한 다음 제로 패딩하여 좋은 주파수 해상도를 제공하는 것입니다. 이것이 당신에게 유용하기를 바랍니다
업데이트
나는 이것을 잘 설명하지 않았다. 더 잘 설명 했어야 했어요 윈도우 변환을 참조하면 실제로 '실제'더 큰 주파수 분해능은 얻지 못하지만 시각화 목적으로 (눈으로 전력 스펙트럼을 읽음)보다 명확한 결과를 제공 할 수 있습니다. 임계 샘플링 속도를 사용하여 각 사이드 로브는 단일 빈을 차지하며, 그래프 기법에 따라 오해의 소지가 있습니다. 제로 패딩은 더 드러날 수있는 보간 주파수 스펙트럼을 제공합니다. 또한 주파수 추정에 간단한 피크 선택 방법을 사용하는 경우 제로 패딩의 스펙트럼 보간 효과는 메인 로브의 실제 피크에 가까운 스펙트럼 샘플을 제공합니다. 이 링크는 유용한 다이어그램을 제공합니다. http://www.dsprelated.com/dspbooks/sasp/Practical_Zero_Padding.html
나는 이전의 좋은 반응에서 언급되지 않았으므로 제로 패딩에 대한 다음과 같은 중요한 이유를 추가 할 것입니다.
기수 -2 알고리즘은보다 효율적이므로 다음 2의 거듭 제곱 (또는 경우에 따라 기수 -4의 경우 거듭 제곱)으로 제로 패딩하거나 큰 주요 요소를 크게 피하면 실시간 성능을 향상시킬 수 있습니다. 또한 FFT를 분석에 사용하는 경우 FIR의 주파수 응답을 결정하는 것과 같이 DTFT 샘플을 계산하기 위해 제로 패딩을 수행하는 경우가 종종 있습니다. fft ([1 1 1])과 fft ([1 1 1 1], 512) 이는 freqz ([1111])와 동일합니다.