Mengapa FFT "dicerminkan"?

36

Jika Anda melakukan plot FFT dari sinyal sederhana, seperti:

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

1Hz sinusoid + DC

1Hz

FFT di atas

fft

Saya mengerti bahwa nomor di tempat sampah pertama adalah "berapa banyak DC" yang ada di sinyal.

y(1)  %DC
  > 101.0000

Angka dalam nampan kedua harus "berapa banyak 1-siklus seluruh sinyal" ada:

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

Tapi ini bukan 101! Itu sekitar 50,5.

Ada entri lain di akhir sinyal fft, sama besarnya:

y(101)
  > 50.2971

Jadi 50,5 lagi.

Pertanyaan saya adalah, mengapa FFT dicerminkan seperti ini? Mengapa bukan hanya 101 in y(2)(yang tentu saja berarti, semua 101 bin dari sinyal Anda memiliki sinusoid 1 Hz di dalamnya?)

Apakah itu akurat untuk dilakukan:

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 )

Balik dan tambahkan bagian kedua dari vektor FFT

masukkan deskripsi gambar di sini

Saya pikir sekarang, bagian cermin di sisi kanan ditambahkan dengan benar, memberi saya yang diinginkan "semua 101 tempat sampah FFT mengandung 1Hz sinusoid"

>> z(2)

ans =

  100.5943
bobobobo
sumber
Pertanyaan serupa telah dijawab di sini: dsp.stackexchange.com/questions/3466/…
pichenettes
Tapi ini khusus tentang simetri (saya percaya itu disebut simetri Hermetia?) Dari sinyal.
bobobobo
Untuk sinyal real murni F (k) = conj (F (Nk)), inilah sebabnya transformasi Fourier dari sinyal real murni simetris.
WebMonster
Tanyakan pada diri Anda: apa hasil yang Anda harapkan jika sinyal Anda 1 + cos (2 * pi t) ... Dan 1 + i cos (2 * pi t) ... Dan 1 + i sin (2 * pi * t) ...
pichenettes
2
Karena transformasi Fourier memecah sinyal menjadi eksponensial kompleks, dan gelombang sinus adalah jumlah dari 2 eksponensial kompleks. dsp.stackexchange.com/a/449/29
endolith

Jawaban:

39

Sinyal nyata "dicerminkan" di bagian nyata dan negatif dari transformasi Fourier karena sifat transformasi Fourier. Transformasi Fourier didefinisikan sebagai berikut-

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

Pada dasarnya itu mengkorelasikan sinyal dengan sekelompok sinusoid kompleks, masing-masing dengan frekuensinya sendiri. Jadi seperti apa bentuk sinusoid kompleks itu? Gambar di bawah ini menggambarkan satu sinusoid kompleks.

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

π2

Hubungan antara eksponensial dan kosinus / sinus diberikan oleh rumus Euler

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

Membandingkan versi frekuensi negatif dengan versi frekuensi positif menunjukkan bahwa cosinus adalah sama ketika sinus terbalik. Mereka masih 90 derajat keluar dari fase satu sama lain, meskipun, memungkinkan mereka untuk menangkap komponen sinyal pada frekuensi (negatif).

Karena baik sinusoid frekuensi positif dan negatif 90 derajat dari fase dan memiliki besaran yang sama, keduanya akan merespons sinyal nyata dengan cara yang sama. Atau lebih tepatnya, besarnya respons mereka akan sama, tetapi fase korelasi akan berbeda.

EDIT: Secara khusus, korelasi frekuensi negatif adalah konjugat dari korelasi frekuensi positif (karena komponen sinus imajiner terbalik) untuk sinyal nyata. Dalam istilah matematika, ini, seperti yang Dilip tunjukkan, berikut-

H(f)=[H(f)]

Cara lain untuk memikirkannya:

Komponen imajiner hanyalah itu..Bayangkan! Mereka adalah alat, yang memungkinkan penggunaan pesawat ekstra untuk melihat sesuatu dan membuat banyak pemrosesan sinyal digital (dan analog) menjadi mungkin, jika tidak jauh lebih mudah daripada menggunakan persamaan diferensial!

5i

Jim Clay
sumber
Jawaban yang baik - satu nitpick sedikit, saya tidak on-board dengan "Karena mereka sama, apa pun yang satu berkorelasi dengan, yang lain juga akan dengan besaran yang sama persis dan pergeseran fase 90 derajat.". Saya tahu apa yang ingin Anda katakan, namun (seperti yang Anda tahu), sinus berkorelasi dengan sinus (skor 1), tetapi tidak berkorelasi sama sekali dengan cosinus sama sekali, (skor 0). Mereka adalah sinyal yang sama, tetapi dengan fase yang berbeda pula.
Spacey
Kamu benar. Ada masalah lain yang lebih serius juga. Saya akan memperbaikinya nanti.
Jim Clay
Akan lebih baik jika Anda bisa mengedit jawaban Anda menjadi lebih responsif terhadap pertanyaan yang tentang DFT (meskipun ia mengatakan FFT dalam judul) daripada memberikan teori umum transformasi Fourier.
Dilip Sarwate
@DilipSarwate Tujuan saya adalah membantu si penanya memahami, dan saya pikir pendekatan saya yang terbaik untuk itu. Saya telah meningkatkan jawaban Anda, karena melakukan matematika diskrit.
Jim Clay
H(f)=[H(f)]|H(f)|=|H(f)|x(t)adalah sinyal bernilai nyata dan ini adalah "mirroring" yang ditanyakan OP. Dengan kata lain, saya meminta Anda mengedit jawaban Anda agar lebih responsif terhadap pertanyaan yang sebenarnya diajukan (seperti yang saya minta dalam komentar saya sebelumnya).
Dilip Sarwate
20

N101NN2k4k sehingga dapat mempercepat perhitungan DFT melalui FFT.

x=(x[0],x[1],x[2],,x[N1])NX=(X[0],X[1],X[2],,X[N1])

X[m]=n=0N1x[n](exp(j2πmN))n,m=0,1,,N1
j=1XxxX[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]

m(Nm)

1


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]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))
Dilip Sarwate
sumber
Jadi, apakah mungkin untuk mengetahui dari FFT jika sinyal periodik atau tidak ?
displayname
@displayname Itu adalah pertanyaan terpisah yang harus ditanyakan sendiri (dan mungkin sudah ditanyakan dan dijawab).
Dilip Sarwate
Ketika saya dengan hati-hati mencabut nampan simetris konjugat [Dengan menulis 0 + 0i ke dalamnya] dan merekonstruksi sinyal domain waktu menggunakan ifft, besarnya sinyal domain waktu yang direkonstruksi telah berkurang setengahnya. Apakah ini wajar atau apakah ini masalah perkakas? Saya menangani normalisasi keluaran FFT dan membalikkannya setelah iFFT.
Raj
14

Perhatikan bahwa hasil FFT dicerminkan (seperti dalam konjugat konjugat) hanya jika data input nyata.

Untuk data input yang benar-benar nyata, dua gambar cermin konjugat dalam hasil FFT membatalkan bagian imajiner dari sinusoid kompleks, dan dengan demikian jumlah menjadi sinusoid nyata (kecuali untuk kebisingan pembulatan numerik kecil), sehingga meninggalkan Anda dengan representasi ketat gelombang sinus nyata.

Jika hasil FFT tidak dicerminkan konjugat, itu akan mewakili bentuk gelombang yang memiliki nilai kompleks (komponen imajiner non-nol), bukan sesuatu yang benar-benar dihargai.

hotpaw2
sumber