To pytanie również mnie dezorientowało przez długi czas. Wyjaśnienie @ hotpaw2 jest dobre. Prosty eksperyment z matlabem może Cię zainteresować.
https://poweidsplearningpath.blogspot.com/2019/04/dftidft.html
zaktualizowana informacja.
Aby zweryfikować, że ten fakt jest prosty, musimy jedynie ostrożnie obserwować spektrum odpowiedzi impulsowej idealnego (?) Filtru pasmowo-przepustowego, który po prostu zeruje przedziały FFT. Dlaczego muszę dodawać przysłówek „ostrożnie”? Jeśli użyjemy FFT tego samego rozmiaru, aby zaobserwować odpowiedź impulsu, zostaniemy oszukani, jak pokazano na ryc . 1 . Niemniej jednak, jeśli dodamy porządek DFT podczas obserwowania wyjścia filtra, to znaczy zero wypełniając odpowiedź impulsową, możemy znaleźć tak zwane zjawisko Gibbsa, zmarszczki w dziedzinie częstotliwości, jak pokazano na ryc . 2 .
Wyniki w rzeczywistości pochodzą z efektu okienkowania. Jeśli chcesz całkowicie zrozumieć problem, zapoznaj się z rozdziałem 7.6 i rozdziałem 10.1-10.2 Biblii DSP (1). Podsumowując, odnotowano tutaj trzy kluczowe punkty.
- Rozmiar okna i kolejność DFT (FFT) są całkowicie niezależne. Nie mieszaj ich razem.
- Właściwości okna (typ / rozmiar) dominują w kształcie DTFT. (np. szerszy płat główny prowadzi do szerszego pasma przejściowego w odpowiedzi częstotliwościowej.)
- DFT to tylko próbkowanie DTFT w dziedzinie częstotliwości. Co więcej, im wyższy rząd DFT, tym gęstsze jest spektrum DFT.
Tak więc za pomocą gęstszego spektrum na ryc. 2 możemy zobaczyć maskę idealnego (fałszywego) filtru pasmowego.
Zwodniczo Freq. Odpowiedź; reakcja; reagowanie; odzew; oddźwięk.
Zjawisko Gibbsa we Freq. Odpowiedź; reakcja; reagowanie; odzew; oddźwięk.
(1) Alan V. Oppenheim i Ronald W. Schafer. 2009. Przetwarzanie sygnału w czasie dyskretnym (wydanie trzecie). Prentice Hall Press, Upper Saddle River, NJ, USA.
fps = 15;
LPF = 1;
HPF = 2;
n = -511:512;
n0 = 0;
imp = (n==n0);
NyquistF = 1/2*fps;
%% Ideal BPF
tmp_N = 512;
tmp_n = 0:1:tmp_N-1;
freq = ( n .* fps) ./ tmp_N;
F = fft(imp, tmp_N);
F_bpf = IdealBandpassFilter(F, fps, LPF, HPF);
imp_rep =[real(ifft(F_bpf))'];
% Zero padding.
imp_rep2 =[zeros(1,2048) real(ifft(F_bpf))' zeros(1,2048)];
N = 2^nextpow2(length(imp_rep));
F = fft(imp_rep,N);
freq_step = fps/N;
freq = -fps/2:freq_step:fps/2-freq_step;
freq = freq(N/2+1:end)';
figure;
plot(freq,abs(F(1:N/2)));
xlabel('freq(Hz)');
ylabel('mag');
title('Mis leading Freq Response');
N = 2^nextpow2(length(imp_rep2));
F = fft(imp_rep2,N);
freq_step = fps/N;
freq = -fps/2:freq_step:fps/2-freq_step;
freq = freq(N/2+1:end)';
figure;
plot(freq,abs(F(1:N/2)));
xlabel('freq(Hz)');
ylabel('mag');
title('Zero Padding (DFT) with more points');
%% Function
function filered_signal = IdealBandpassFilter(input_signal, fs, w1, w2)
N = length(input_signal);
n = 0:1:N-1;
freq = ( n .* fs) ./ N;
filered_signal = zeros(N, 1);
for i = 1:N
if freq(i) > w1 & freq(i) < w2
filered_signal(i) = input_signal(i);
end
end
end