Pertanyaan ini juga membingungkan saya sejak lama. @ Penjelasan hotpaw2 bagus. Anda mungkin tertarik dengan eksperimen sederhana menggunakan matlab.
https://poweidsplearningpath.blogspot.com/2019/04/dftidft.html
Informasi terbaru.
Untuk memverifikasi fakta ini sederhana, kita hanya perlu secara hati-hati mengamati spektrum respon impuls dari filter pass band (?) Yang ideal yang hanya mengeluarkan nampan FFT. Mengapa saya perlu menambahkan kata keterangan "dengan hati-hati"? Jika kita hanya menggunakan ukuran FFT yang sama untuk mengamati respons impuls, kita akan tertipu seperti yang ditunjukkan pada Gambar 1 . Meskipun demikian, jika kita menambahkan urutan DFT ketika mengamati output dari filter, yaitu, nol padding respon impuls, kita dapat menemukan apa yang disebut fenomena Gibbs, riak dalam domain frekuensi, seperti yang digambarkan pada Gambar 2 .
Hasil sebenarnya berasal dari efek windowing. Jika Anda ingin sepenuhnya memahami masalahnya, silakan merujuk ke bab 7.6 dan bab 10.1-10.2 dari Alkitab DSP (1). Singkatnya, tiga poin utama dicatat di sini.
- Ukuran jendela dan urutan DFT (FFT) benar-benar independen. Jangan campur mereka.
- Properti jendela (tipe / ukuran) mendominasi bentuk DTFT. (mis. lobus utama yang lebih luas mengarah ke pita transien yang lebih luas dalam respons frekuensi).
- DFT hanyalah contoh dari DTFT dalam domain frekuensi. Selain itu, semakin tinggi urutan DFT, semakin padat spektrum DFT.
Jadi, dengan bantuan spektrum yang lebih padat pada Gambar. 2 , kita dapat melihat melalui filter filter pass Band (palsu) yang ideal.
Tipuan Freq. Tanggapan.
Fenomena Gibbs dalam Frek. Tanggapan.
(1) Alan V. Oppenheim dan Ronald W. Schafer. 2009. Pemrosesan Sinyal Diskrit-Waktu (edisi ketiga). 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