इस सवाल ने भी मुझे लंबे समय तक भ्रमित किया। @ hotpaw2 की व्याख्या अच्छी है। आप matlab का उपयोग करते हुए सरल प्रयोग में रुचि ले सकते हैं।
https://poweidsplearningpath.blogspot.com/2019/04/dftidft.html
सूचना नवीनीकरण।
इस तथ्य को सत्यापित करने के लिए सरल है, हमें बस एक आदर्श (?) बैंड पास फिल्टर के आवेग प्रतिक्रिया के स्पेक्ट्रम का सावधानीपूर्वक निरीक्षण करने की आवश्यकता है जो एफएफटी डिब्बे को बस शून्य करता है। मुझे क्रिया विशेषण "सावधानीपूर्वक" जोड़ने की आवश्यकता क्यों है? यदि हम आवेग की प्रतिक्रिया का निरीक्षण करने के लिए FFT के समान आकार का उपयोग करते हैं, तो हमें धोखा दिया जाएगा जैसा कि चित्र 1 में दिखाया गया है । फिर भी, यदि हम फ़िल्टर के आउटपुट का अवलोकन करते समय डीएफटी के आदेश को जोड़ते हैं, अर्थात् आवेग प्रतिक्रिया को शून्य कर रहे हैं, तो हम तथाकथित गिब्स घटना, आवृत्ति डोमेन में तरंगों को प्राप्त कर सकते हैं, जैसा कि चित्र 2 में दिखाया गया है ।
वास्तव में परिणाम विंडोिंग प्रभाव से आता है। यदि आप समस्या को पूरी तरह से समझना चाहते हैं, तो कृपया DSP (1) के बाइबिल के अध्याय 7.6 और अध्याय 10.1-10.2 का संदर्भ लें। संक्षेप में, तीन प्रमुख बिंदु यहां दिए गए हैं।
- विंडो का आकार और डीएफटी (एफएफटी) का क्रम पूरी तरह से स्वतंत्र है। उन्हें एक साथ मत मिलाओ।
- विंडो के प्रकार (प्रकार / आकार) DTFT के आकार पर हावी हैं। (पूर्व व्यापक मुख्य पालि आवृत्ति प्रतिक्रिया में व्यापक क्षणिक बैंड के लिए नेतृत्व करते हैं।)
- DFT आवृत्ति डोमेन में DTFT का नमूना मात्र है। इसके अलावा, डीएफटी का क्रम जितना अधिक होगा, डीएफटी का स्पेक्ट्रम घना है।
इसलिए, अंजीर 2 में सघन स्पेक्ट्रम की मदद से , हम आदर्श (नकली) बैंड पास फिल्टर के मुखौटा के माध्यम से देख सकते हैं।
धोखे से फ्रीक। प्रतिक्रिया।
फ्रीक में गिब्स घटना। प्रतिक्रिया।
(1) एलन वी। ओपेनहाइम और रोनाल्ड डब्ल्यू। 2009. असतत-समय सिग्नल प्रोसेसिंग (तीसरा संस्करण)। अप्रेंटिस हॉल प्रेस, ऊपरी सैडल नदी, एनजे, यूएसए।
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