왜“제로 패딩이 주파수 분해능을 증가 시키지는 않는다”고 말하는가?


12

여기에 주파수의 정현파 f = 236.4 Hz(길이 10 밀리 초 N=441, 샘플링 속도의 포인트가 있음 fs=44100Hz)와 제로 패딩이없는 DFT가 있습니다 .

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

우리가 DFT를 볼 수있는 유일한 결론은 "주파수는 대략 200Hz"입니다.

다음은 제로 패딩이 큰 신호 및 DFT입니다 .

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

이제 우리는 훨씬 더 정확한 결론을 줄 수 있습니다 . "스펙트럼의 최대 값을주의 깊게 살펴보면 주파수 236Hz를 추정 할 수 있습니다"(확대하여 최대 값이 236에 가깝다는 것을 알았습니다).

내 질문은 : 왜 우리는 "제로 패딩은 해상도를 증가시키지 않는다"고 말 합니까? (이 문장을 자주 보았을 때 "보간 만 추가합니다"라고 말합니다)

=> 내 예제에서 제로 패딩을 사용하면보다 정확한 해상도로 올바른 주파수를 찾을 수있었습니다!


1
이 아주 오래된 질문에 대해 생각할 수있는 또 다른 방법 : 시계열도를 전혀 갖지 않았지만 '저해상도'만있는 경우 시계열, 제로 패드로 변환하고 다시 변환 할 수 있습니다. -fft 236Hz를 꺼냅니다. 따라서 '저해상도'fft 에는 부드러운 것과 동일한 정보가 모두 포함 되어야 합니다.
Joshua R.

답변:


19

이 맥락에서 해상도 는 매우 특정한 정의를 가지고 있습니다. 근처 주파수에서 두 개의 개별 톤 을 해결 하는 능력을 말합니다 . 스펙트럼 추정의 샘플 속도가 증가했지만 236Hz 및 237Hz와 같은 두 가지 톤을 구별 할 수있는 능력이 없습니다. 대신, 제로 패딩을 얼마나 많이 적용하든 단일 블롭으로 "용융"됩니다.

해상도를 높이는 해결책은 더 오랜 시간 동안 신호를 관찰 한 다음 더 큰 DFT를 사용하는 것입니다. 이로 인해 너비가 DFT 크기에 반비례하는 메인 로브가 생성되므로 충분히 오랫동안 관찰하면 실제로 서로 가까운 여러 톤의 주파수를 확인할 수 있습니다.

-

이것이 어떻게 나타나는지 알아보기 위해 여기에 두 개의 신호, 원래 정현파 및 0에서 100Hz만큼 주파수가 다른 신호의 추가에 대한 확대 FFT 플롯이 있습니다.

플롯의 100Hz 차이 끝 (왼쪽)에서만 두 가지를 구별 (해결) 할 수 있습니다.

아래 플롯을 생성하기위한 Scilab 코드.

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

f = 236.4;
d = 10;
N=441;
fs=44100;
extra_padding = 10000; 

t=[0:1/fs:(d/1000-1/fs)]
ff = [0:(N+extra_padding-1)]*fs/(N+extra_padding);

x = sin(2*%pi*f*t);

XX = [];

for delta_f = [0:100];
    y = sin(2*%pi*(f+delta_f)*t);
    FFTX = abs(fft([x+y zeros(1,extra_padding)]));
    XX = [XX; FFTX];
end

mtlb_axis([0 1300 0 500])

figure(1);
clf
[XXX,YYY] = meshgrid(ff,0:100);
mesh(XXX(1:100,[50:90]),YYY(1:100,[50:90]),XX(1:100,[50:90]))

감사 ! 좋아, 제로 패딩은 근처 주파수에서 두 개의 개별 톤 을 해결하는 데 도움이되지 않습니다 . 그러나, 나의 예에서, 스펙트럼의 피크를 찾아서 톤의 기준 주파수를 찾는 데 유용 할 수 있습니다 (예 : 정확한 피치 추적 목적을 위해)
Basj

내가 (여기 사실이 아니다, 그것은 가능하다 예를 들어 쇼는 정확하게 어떤 피치를 검출하는 것을) "해상도를 증가하지 않는 제로 패딩이" "당신이 제로 패딩의 도움으로 정확한 피치 추적을 할 수 없다"의미 생각
Basj

나는 당신이 올바르게 이해한다고 생각합니다. 제로 패딩은 거친 스펙트럼에서 피크 위치를 정밀하게 추정하는 등의 용도로 사용됩니다. 그것은 단지 총알이 아닙니다.
Jason R

1
방금 제로 패딩 이외의 다른 것을 시도했지만 관련이 있습니다. 대신 만드는 x(n)(와 더 이상 0말), 나는 계속 x(n)길이 N의,하지만 변화는 여기에 있습니다 : 대신 DFT(k) = \sum x(n) exp(-2*i*pi*n*k/N)k=0,1,...,N-1, 내가 할 DFT2(k) = \sum x(n) exp(-2*i*pi*n*k/(10*N))에 대한 k=0,1,...,10*N-1...이 (더 쓰레기통을 추가하는 것과 같습니다 10 N대신 빈 N주파수 빈)하지만 같은 유지 x(n)길이 N. 이제 빈은 10hz, 20hz, ..., 100hz, 110hz, 120hz, ..... => 0 패딩과 동일합니까? 실제 추가 해상도는 없지만 보간 만 있습니까?
Basj

자세한 빈 (N 대신 10N)를 추가 하는가 DFT2(k) = \sum x(n) exp(-2*i*pi*n*k/(10*N))에 대한 k=0,1,...,10*N-1동일한 유지 x(n)길이를 N제로 패딩보다 같은 결과를 제공 : 정말 더 해상도,하지만 보간?
Basj

13

"해결"이라는 용어에는 여러 가지 의미가 있으므로 두 가지 다른 의미를 사용할 때 의사 소통을 시도하는 사람들을 혼동시킬 수 있습니다.

광학적 인 관점에서, 하나의 모호한 얼룩 대신에 명확하게 분리 된 두 개의 지점 (또는 스펙트럼에서 인접한 두 개의 피크)을 해결할 수 있다는 점에서 제로 패딩은 도움이되지 않습니다. 이것은 제로 패딩이 해상도를 증가시키지 않는다고 말할 때 가장 많이 사용되는 의미입니다.

해상도 요구 사항에 스펙트럼 피크 사이의 딥 (예 : 최소 3dB 낮추기)이 필요한 경우 해상도는 FFT 빈 간격보다 훨씬 낮습니다 (예 : Fs / N이 아니라 2 배에서 3 배 이상). 사용 된 윈도 잉에 따라. 해상도에 대한 약한 요구 사항은 DFT의 직교 기준 벡터 (예 : Fs / N)의 주파수 간격 일 수 있습니다.

점을 표시하는 관점에서, 예를 들어 0 패딩은 DPI (인치당 플롯 점) 해상도와 같이 플롯 할 점을 더 많이 제공합니다. 그러면 안구로 극도를 쉽게 골라 낼 수 있습니다. 그러나 제로 패딩없이 고품질 플롯 보간 (Sinc interpolation)을 수행하면 얻을 수있는 것과 동일한 점이므로 제로 패딩이 없으면 계산할 수없는 정보가 실제로 추가되지 않습니다.

제로 패딩되지 않은 윈도우 FFT 결과의 피치 추적, 포물선 또는 Sinc 보간 (FFT 결과 빈 사이의 보간)은보다 계산 집약적 인 긴 제로 패딩 FFT 플롯에서와 같은 결과를 얻을 수 있습니다. 따라서 제로 패딩은 제로 패딩 및 보간되지 않은 피크 피킹보다 "더 나은"피치 추적 결과를 제공하지만 보간을 사용하는 것보다 훨씬 덜 효율적입니다.

예제에 노이즈를 추가하지만 신호보다 약간 작은 경우 제로 패딩 피크는 0이 아닌 패딩 피크처럼 정확하지 않을 수 있습니다. 따라서보다 일반적인 경우에는 이전보다 더 정확한 "정확한"주파수를 찾지 못했을 수 있습니다. 제로 패딩은 노이즈로 인한 부정확 한 결과 만 보간하므로 분해능을 높이 지 않는 다른 이유가 있습니다.


다만 기억하십시오 : 동일 f=236.4 hz기간 동안 동일한 정현파를 10ms갖지만 44.1khz 대신 fs = 192khz 인 경우 어떻게됩니까 : 실제 주파수 해상도 가 그보다 높습니까?
Basj

샘플 속도를 높이면 더 높은 주파수 빈을 얻을 수 있지만 관심있는 모든 낮은 주파수 근처에 동일한 DFT 빈 간격이 있습니다.
hotpaw2

1
샘플링 속도를 높이면 sincDFT 의 유사 곡선이 더 좁아 지나요? 그렇지 않으면,이 샘플 속도를 증가 시키면 추가하지 않습니다 것을 의미한다 해상도 (의미에서 해결하는 능력 주파수)
Basj

@Basj 신호의 특정 주파수를 결정하는 것은 일반적으로 파라미터 추정이라고합니다. 즉 주파수 파라미터를 추정하려고합니다. 분해능 (2 톤 분리)의 경우 분해능은 로 주어집니다. 여기서 는 신호 길이입니다. 따라서 샘플링 속도 (지속 시간이 아님) 만 변경해도 해상도에는 영향을 미치지 않습니다. 추정의 정확도에 영향을 미칩니다. T1/TT
David

주파수에서 Sinc의 너비는 시간에 따른 데이터 창의 너비와 관련이 있습니다. 패딩을 0으로 채우거나 샘플링 속도를 변경해도 실제로 영향을 미치지 않습니다 (샘플링 또는 양자화 문제가 아닌 다른 것).
hotpaw2
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.