क्यों FFT "प्रतिबिंबित" है?


36

यदि आप एक साधारण सिग्नल का एफएफटी प्लॉट करते हैं, जैसे:

t = 0:0.01:1 ;
N = max(size(t));
x = 1 + sin( 2*pi*t ) ;
y = abs( fft( x ) ) ;
stem( N*t, y )

1 हर्ट्ज साइनसॉइड + डीसी

1Hz

ऊपर के एफएफटी

fft

मैं समझता हूं कि पहले बिन में संख्या "कितना डीसी है" संकेत में है।

y(1)  %DC
  > 101.0000

दूसरे बिन में संख्या "पूरे सिग्नल पर 1-चक्र कितना होना चाहिए" है:

y(2)  %1 cycle in the N samples
  > 50.6665

लेकिन यह 101 नहीं है! यह लगभग 50.5 है।

एफटीपी सिग्नल के अंत में एक और प्रविष्टि है, जो परिमाण में बराबर है:

y(101)
  > 50.2971

तो 50.5 फिर से।

मेरा सवाल यह है कि एफएफटी को इस तरह क्यों दिखाया गया है? यह सिर्फ 101 में क्यों नहीं है y(2)(जिसका मतलब होगा, आपके संकेत के सभी 101 डिब्बे में 1 हर्ट्ज साइनॉयड है?)

क्या यह करना सही होगा:

mid = round( N/2 ) ;

% Prepend y(1), then add y(2:middle) with the mirror FLIPPED vector
% from y(middle+1:end)
z = [ y(1), y( 2:mid ) + fliplr( y(mid+1:end) ) ];

stem( z )

एफएफटी वेक्टर के दूसरे भाग में फ्लिप और ऐड-इन

यहाँ छवि विवरण दर्ज करें

मैंने सोचा कि, दाहिने हाथ की ओर का दर्पण वाला भाग सही ढंग से जोड़ा गया है, जिससे मुझे वांछित "FFT के सभी 101 डिब्बे में 1 हर्ट्ज का साइनसॉइड होता है"

>> z(2)

ans =

  100.5943

इसी तरह के प्रश्न का उत्तर यहां दिया गया है: dsp.stackexchange.com/questions/3466/…
pichenettes

लेकिन यह विशेष रूप से समरूपता के बारे में है (मेरा मानना ​​है कि इसे संकेत का हर्मेटियन समरूपता कहा जाता है?)।
बोब्बोबो

शुद्ध वास्तविक संकेतों F (k) = conj (F (Nk)) के लिए, यही कारण है कि शुद्ध वास्तविक सिग्नल का फूरियर रूपांतरण सममित है।
वेबमॉस्टर

अपने आप से पूछें: यदि आपका संकेत 1 + cos (2 * pi t) ... और 1 + i cos (2 * pi t) ... और 1 + i sin (2 * pi * t) हो तो आप क्या परिणाम प्राप्त करेंगे? ...
pichenettes

2
क्योंकि एक फूरियर रूपांतरण जटिल घातीय में एक संकेत को तोड़ता है, और एक साइन लहर 2 जटिल घातांक का योग है । dsp.stackexchange.com/a/449/29
एंडोलिथ

जवाबों:


39

फूरियर रूपांतरण की प्रकृति की वजह से फूरियर रूपांतरण के वास्तविक और नकारात्मक हिस्सों में वास्तविक सिग्नल "प्रतिबिंबित" होते हैं। फूरियर रूपांतरण को निम्नलिखित के रूप में परिभाषित किया गया है-

H(f)=h(t)ej2πftdt

मूल रूप से यह जटिल साइनसोइड्स के एक गुच्छा के साथ संकेत को सहसंबंधित करता है, प्रत्येक अपनी आवृत्ति के साथ। तो उन जटिल साइनसोइड्स क्या दिखते हैं? नीचे दी गई तस्वीर एक जटिल साइनसॉइड को दर्शाती है।

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

"कॉर्कस्क्रू" समय में घूमने वाला जटिल साइनसॉइड है, जबकि इसके पीछे आने वाले दो साइनसोइड्स जटिल साइनसॉइड के वास्तविक और काल्पनिक घटक हैं। कसौटी पाठक ध्यान देगा कि वास्तविक और काल्पनिक घटक एक समान हैं, केवल वे एक दूसरे के साथ 90 डिग्री ( ) के साथ चरण से बाहर हैं । क्योंकि वे 90 डिग्री से बाहर हैं वे ऑर्थोगोनल हैं और उस आवृत्ति पर सिग्नल के किसी भी घटक को "पकड़" सकते हैं।π2

एक्सपोनेंशियल और कॉशन / साइन के बीच संबंध यूलर के सूत्र द्वारा दिया गया है-

ejx=cos(x)+jsin(x)

यह हमें फूरियर रूपांतरण को संशोधित करने की अनुमति देता है-

H(f)=h(t)ej2πftdt=h(t)(cos(2πft)jsin(2πft))dt

नकारात्मक आवृत्तियों पर फूरियर रूपांतरण निम्नलिखित हो जाता

H(f)=h(t)(cos(2π(f)t)jsin(2π(f)t))dt=h(t)(cos(2πft)+jsin(2πft))dt

पॉजिटिव फ्रिक्वेंसी वर्जन के साथ नेगेटिव फ्रिक्वेंसी वर्जन की तुलना करने से पता चलता है कि कॉइन उल्टा है जबकि साइन उल्टा है। वे अभी भी एक दूसरे के साथ चरण से 90 डिग्री बाहर हैं, हालांकि, उन्हें उस (नकारात्मक) आवृत्ति पर किसी भी संकेत घटक को पकड़ने की अनुमति देता है।

क्योंकि दोनों सकारात्मक और नकारात्मक आवृत्ति साइनसोइड्स 90 डिग्री चरण से बाहर हैं और एक ही परिमाण है, वे दोनों एक ही तरह से वास्तविक संकेतों का जवाब देंगे। या बल्कि, उनकी प्रतिक्रिया की भयावहता समान होगी, लेकिन सहसंबंध का चरण अलग होगा।

संपादित करें: विशेष रूप से, नकारात्मक आवृत्ति सहसंबंध वास्तविक संकेतों के लिए सकारात्मक आवृत्ति सहसंबंध (उल्टे काल्पनिक साइन घटक के कारण) का संयुग्म है। गणितीय शब्दों में, यह दिलीप ने बताया, निम्नलिखित-

H(f)=[H(f)]

इसके बारे में सोचने का दूसरा तरीका:

काल्पनिक घटक बस इतना ही हैं..इमेजिनरी! वे एक उपकरण हैं, जो अतिरिक्त विमान के काम को चीजों को देखने की अनुमति देता है और डिजिटल (और एनालॉग) सिग्नल प्रसंस्करण के बहुत सारे संभव बनाता है, अगर अंतर समीकरणों का उपयोग करने की तुलना में बहुत आसान नहीं है!

लेकिन हम प्रकृति के तार्किक नियमों को नहीं तोड़ सकते, हम काल्पनिक सामग्री साथ कुछ भी 'वास्तविक' नहीं कर सकते हैं और इसलिए इसे वास्तविकता पर लौटने से पहले खुद को प्रभावी रूप से रद्द करना होगा। समय आधारित संकेत (जटिल आवृत्ति डोमेन) के फूरियर ट्रांसफॉर्म में यह कैसे दिखता है? अगर हम सिग्नल के सकारात्मक और नकारात्मक आवृत्ति घटकों को जोड़ते / जोड़ते हैं, तो काल्पनिक हिस्से रद्द हो जाते हैं, लेकिन इसका मतलब यह है कि सकारात्मक और नकारात्मक तत्व एक-दूसरे के साथ मिलकर होते हैं। ध्यान दें कि जब कोई एफटी टाइम-सिग्नल लेता है, तो इन संयुग्मित संकेतों का अस्तित्व होता है, प्रत्येक के 'वास्तविक' भाग के साथ परिमाण साझा होता है, पॉजिटिव डोमेन में आधा, नेगेटिव में आधा, इसलिए प्रभावी रूप से कंजुगेट्स को एक साथ जोड़ने से हटाता है काल्पनिक सामग्री और केवल वास्तविक सामग्री प्रदान करता है।

5 मैं मतलब हम एक वोल्टेज नहीं बना सकते जो वोल्ट है। जाहिर है, हम वास्तविक-विश्व संकेतों का प्रतिनिधित्व करने के लिए काल्पनिक संख्याओं का उपयोग कर सकते हैं जो दो-वेक्टर-मूल्यवान हैं, जैसे कि गोलाकार रूप से ध्रुवीकृत ईएम तरंगें।5i


अच्छा जवाब - एक मामूली नाइटपिक, हालांकि, मैं "क्योंकि वे एक ही हैं, कुछ भी नहीं है कि एक के साथ संबंध है, दूसरे के साथ एक ही परिमाण और एक 90 डिग्री चरण बदलाव होगा।" मुझे पता है कि आप क्या कहना चाह रहे हैं, हालांकि (जैसा कि आप जानते हैं), एक साइन एक साइन (स्कोर 1) के साथ संबंध रखता है, लेकिन सभी पर कॉशन के साथ सहसंबंध नहीं करता है (स्कोर 0)। वे एक ही संकेत हैं, लेकिन अलग-अलग चरणों के बाद।
स्पेसी

आप सही हे। एक और गंभीर समस्या भी है। मैं इसे बाद में ठीक कर दूंगा।
जिम क्ले

यह अच्छा होगा यदि आप अपने उत्तर को उस प्रश्न के प्रति अधिक प्रतिक्रियाशील होने के लिए संपादित कर सकते हैं जो डीएफ़टी के बारे में है (हालाँकि इसे शीर्षक में एफएफटी कहते हैं) फूरियर रूपांतरण के सामान्य सिद्धांत को देने के बजाय।
दिलीप सरवटे

@DilipSarwate मेरा लक्ष्य प्रश्नकर्ता को समझने में मदद करना है, और मुझे लगता है कि मेरा दृष्टिकोण इसके लिए सबसे अच्छा है। हालांकि, असतत गणित करने के लिए मैंने आपके उत्तर को बदल दिया है।
जिम क्ले

@JimClay आपका दृष्टिकोण बहुत dsp.SE की पूरी पाठकों द्वारा सराहना की है, और मुझे आशा है कि आप समय अपने जवाब से वास्तव में एक महान जवाब बनाने के लिए मिलेगा स्पष्ट सहित आपका जवाब क्या वर्तमान में निकालना पाठक के लिए छोड़ दिया जाता है में: अर्थात । कि समीकरण बताते हैं कि (और इसलिए ) जब एक वास्तविक-मूल्यवान संकेत है और वह यह "मिररिंग" है जिसके बारे में ओपी पूछ रहा था। दूसरे शब्दों में, मेरा अनुरोध है कि आप अपने उत्तर को वास्तव में पूछे गए प्रश्न के प्रति अधिक संवेदनशील होने के लिए संपादित करें (जैसा कि मैंने अपनी पिछली टिप्पणी में अनुरोध किया था)। | एच ( - एफ ) | = | एच ( एफ ) | x ( t )H(f)=[H(f)]|H(f)|=|H(f)|x(t)
दिलीप सरवटे

20

FFT (या फास्ट फूरियर रूपांतरण) वास्तव में एक है एल्गोरिथ्म की गणना के लिए असतत फूरियर रूपांतरण या एफ टी। विशिष्ट कार्यान्वयन डीएफटी की पारंपरिक गणना से अधिक गति प्राप्त करता है , इस तथ्य का फायदा उठाकर कि , डेटा बिंदुओं की संख्या एक समग्र पूर्णांक है जो बाद से यहां मामला नहीं है एक प्रमुख संख्या है। (जबकि FFTs केस के लिए मौजूद हैं जब एक प्राइम है, वे एक अलग फॉर्मूलेशन का उपयोग करते हैं जो MATLAB में लागू हो सकता है या नहीं भी हो सकता है)। दरअसल, बहुत से लोग जानबूझकर को फॉर्म या में से चुनते हैं ताकि FFT के माध्यम से DFT अभिकलन को गति दे सके।101 एन एन 2 के 4 केN101NN2k4k

सवाल यह है कि मिररिंग क्यों होता है, के लिए मुड़ते हुए, हॉटपावर 2 को अनिवार्य रूप से कारण बताया गया है, और इसलिए निम्नलिखित केवल विवरण भरने के लिए है। एक दृश्य की एफ टी के डेटा बिंदुओं एक दृश्य होने के लिए परिभाषित किया गया है जहाँ जहाँ । यह स्पष्ट होगा कि सामान्य रूप से एक जटिल-मूल्यवान अनुक्रम है, जब एक वास्तविक-मूल्यवान अनुक्रम है। लेकिन ध्यान दें कि जब N X = ( X [ 0 ] , X [ 1 ] , X [ 2 ] , , X [] एन - 1 ] ) एक्स [ एम ] = एनx=(x[0],x[1],x[2],,x[N1])NX=(X[0],X[1],X[2],,X[N1])j=

X[m]=n=0N1x[n](exp(j2πmN))n,m=0,1,,N1
एक्सएक्सएक्सएक्स[0]= एन - 1 Σ n = 0 एक्स[एन]एनexp(-जेπ)=-1एक्स [ एनj=1Xxx एक वास्तविक-मूल्यवान अनुक्रम है, एक वास्तविक संख्या है। इसके अलावा, यदि एक सम संख्या है, तो, , हमारे पास भी एक वास्तविक संख्या है। लेकिन, इस बात की परवाह किए बिना कि क्या विषम है या है, वास्तविक-मूल्यवान अनुक्रम के DFT में हरमिटियन समरूपता गुण है जिसका आपने एक टिप्पणी में उल्लेख किया है। हमारे पास किसी भी निश्चित ,X[0]=n=0N1x[n]Nexp(jπ)=1
X[N2]=n=0N1x[n](exp(j2πN/2N))n=n=0N1x[n](1)n
NXx m1mN1, इस प्रकार, , । इस के एक विशेष मामले के रूप में, ध्यान दें कि यदि हम चयन करते हैं , जबकि भी है, तो हमें वह , इस प्रकार हमारी पुष्टि करता है पहले निष्कर्ष निकाला कि
X[m]=n=0N1x[n](exp(j2πmN))nX[Nm]=n=0N1x[n](exp(j2πNmN))n=n=0N1x[n](exp(j2π+j2πmN))n=n=0N1x[n](exp(j2πmN))n=(X[m])
1mN1X[Nm]=(X[m])m=N/2NX[N/2]=(X[N/2])X[N/2]एक वास्तविक संख्या है। ध्यान दें कि हर्मिटियन समरूपता संपत्ति का एक प्रभाव है

एक वास्तविक मूल्य अनुक्रम के DFT में मई के बिन है उसी परिमाण के रूप में मई के बिन।m(Nm)

MATLABi लोगों को इस तथ्य के लिए इसका अनुवाद करने की आवश्यकता होगी कि MATLAB सरणियों को ऊपर की ओर गिना जाता है।1


अपने वास्तविक डेटा, के लिए करने से आपके के एक डीसी मूल्य है प्लस थोड़ा एक से अधिक अवधि आवृत्ति के sinusoid के हर्ट्ज। वास्तव में, आप जो प्राप्त कर रहे हैं वह जहां । इस प्रकार, नमूनों में से पहले और अंतिम का मूल्य समान है। आप जिस DFT की गणना कर रहे हैं, वह इस प्रकार और बीच बेमेल DFT में अव्यवस्था का कारण बनता है: मान x11

x[n]=1+sin(2π(0.01n)), 0n100
x[0]=x[100]=1101
X[m]=n=0100(1+sin(2π(n100)))(exp(j2πm101))n
100101X[m]के लिए , अशून्य हैं छोटे यद्यपि। दूसरी ओर, मान लें कि आप अपने MATLAB कार्यक्रम में सरणी को समायोजित करने के लिए थे पर लिए गए नमूने ताकि आपके पास तब DFT आप देखेंगे कि आपका DFT बिलकुल (या कम से कम राउंड-ऑफ त्रुटि के भीतर), और उलटा DFT उसे , 2m99t100t=0,0.01,0.02,,0.99
x[n]=1+sin(2π(0.01n)), 0n99.
X[m]=n=099(1+sin(2π(n100)))(exp(j2πm100))n,
X=(100,50j,0,0,,0,50j)0n99
x[n]=1100m=099X[m](exp(j2πn100))m=1100[10050jexp(j2πn100)1+50j(exp(j2πn100))99]=1+12j[exp(j2πn100)exp(j2πn100)]=1+sin(2π(0.01n))
जो ठीक से आप क्या शुरू किया है।

तो, क्या एफएफटी से यह बताना संभव है कि कोई संकेत आवधिक है या नहीं ?
डिस्प्लेनेम

@displayname यह एक अलग सवाल है जिसे अपने आप में पूछा जाना चाहिए (और शायद पहले से ही पूछा और जवाब दिया गया है)।
दिलीप सरवटे

जब मैं संयुग्म सममित डिब्बे को ध्यान से देखता हूं [उनके द्वारा 0 + 0i लिखकर] और ifft का उपयोग करके समय डोमेन सिग्नल को फिर से संगठित करता है, फिर से संगठित समय डोमेन सिग्नल का परिमाण आधा हो गया है। क्या यह स्वाभाविक है या यह एक टूलींग समस्या है? मैं एफएफटी आउटपुट सामान्यीकरण और आईएफएफटी के बाद इसके रिवर्स का ख्याल रखता हूं।
राज

14

ध्यान दें कि एक एफएफटी परिणाम को प्रतिबिंबित किया जाता है (जैसा कि संयुग्म सममित में) केवल अगर इनपुट डेटा वास्तविक है।

कड़ाई से वास्तविक इनपुट डेटा के लिए, एफएफटी परिणाम में दो संयुग्मित दर्पण चित्र किसी भी जटिल साइनसोइड के काल्पनिक भागों को रद्द कर देते हैं, और इस तरह सख्ती से वास्तविक साइनसॉइड के लिए योग करते हैं (छोटे संख्यात्मक गोल शोर को छोड़कर), इस प्रकार आपको कड़ाई से प्रतिनिधित्व करने के साथ छोड़ देता है। असली साइन लहरें।

यदि FFT परिणाम को स्पष्ट नहीं किया गया था, तो यह एक ऐसी तरंग का प्रतिनिधित्व करेगा जिसमें जटिल मूल्य (गैर-शून्य काल्पनिक घटक) थे, न कि कुछ सख्ती से वास्तविक मूल्य।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.