implementasi FFT

I

invexed

Guest
Hi all!!

Aku Tring untuk membuat aplikasi FFT litte

Aku Tring dengan visual C pertama dan kemudian aku akan mencoba dengan mikrokontroler C compiler

Saya punya beberapa pertanyaan ...

Pertama-tama, tampaknya perlu untuk memiliki sebuah kompleks array dengan nilai-nilai real dan imajiner

Aku punya sebuah array dengan sampel penuh sinyal dan saya tidak tahu persis apa yang harus dilakukan dengan ...
Aku perlu mengubahnya array ke array baru dengan bagian real dan imajiner?
Bagaimana saya dapat melakukan hal ini?

FFT mengubah memiliki bagian real dan imajiner terlalu

I perlu mengkonversi ini ke array baru untuk membuat representasi grafis

Saya telah menemukan beberapa sumber FFT tetapi tidak selesai saya hanya mempunyai fungsi FFT dengan sesuatu seperti ini:FFT (fftLength, RealInput, ImaginInput, RealOutput, ImaginOutput);

Aku perlu tahu persis langkah-langkah untuk mengkonversi sinyal sampel nyata ke Real sebuah Imaginary array untuk membuat FFT

Seseorang dapat membantu saya???

Terima kasih

 
hi guy,
jika u perlu implementasi FFT ustand kemudian coba pertama dengan matlab.if u perlu u saya dapat mengirim kode contoh saya untuk menemukan 16 titik FFT untuk sinyal yang kompleks.

dalam pelaksanaan FFT, u perlu bekerja dengan faktor-faktor bermalas dinaikkan menjadi kekuatan yang sesuai di masing-masing stage.so sewaktu menggunakan faktor hiasan ini mengkonversikannya ke r * e ^ i (theta) daripada bentuk (a i * b) membentuk sejak pertama bentuk akan lebih mudah dalam meningkatkan kekuatan yang lebih tinggi.

u cant view ur values.u kompleks hanya dapat melihat mereka besar dalam c (i hope so).

 
Viswa thanks!jika Anda dapat memposting kode matlab Anda I'll try it ....

Saya punya beberapa contoh FFT di matlab but i cant melihat bagaimana bekerja ini:

-------------------------------------------------- --------------------------------
t = 1:200;
sin1 = sin (2 * pi * 30/1000 * t);

sin1c = abs (FFT (sin1));

x = [0,005: .005:1];
subplot (2,1,1), plot (x, sin1c ,'.'), judul ( 'DFT de la seńal SIN1');
-------------------------------------------------- --------------------------------

Di sini hanya perlu sampel dan memperoleh sinyal dan FFT tanpa masalah tetapi ketika saya menggunakan fungsi C yang nyata i need real dan bagian imajiner

 
Memberi makan data nyata ke kompleks FFT, cukup menyalin data nyata ke bagian nyata dari array yang rumit, dan menetapkan bagian imajiner ke nol.

Salah satu cara untuk menampilkan hasil FFT kompleks untuk menghitung besarnya nilai masing-masing kompleks, mag = sqrt (real * nyata Imag * Imag), dan kemudian menampilkan magnitues tersebut.Anda mungkin juga ingin mengubah besaran untuk desibel, dB = 20 * log10 (mag).

 
Untuk melihat hasil terbaik mencoba untuk menggunakan beberapa poin yang merupakan kekuatan dua (64.128 ,...).

Ex.
fs = 1;% sampling freq
fc = fs/16;% masukan freq
s = sqrt (2) * sin (2 * pi/16 * (0:1023);
plot (20 * log10 (abs (FFT (s)) / 1024))

Salam,

- rs

 
Echo47 thanks!

Saya telah mencoba Anda "mag = sqrt (real * nyata Imag * Imag)" dan itu berhasil
membuat ABS (real) bekerja terlalu tapi aku tidak yakin apakah ini ok

Aku berusaha dengan fungsi C dan bekerja ok dengan dan tanpa khayalan bagian!!

Membuat Bayangan bagian = 0 y memiliki spektrum duplikat dan 1 / 2 amplitudo

Apakah ini benar??

 
Ya, jika Anda nol dalam Imag bagian, maka tidak ada cara untuk membedakan frekuensi positif dari frekuensi negatif, sehingga output dari FFT yang kompleks muncul digandakan dan cermin dan setengah amplitudo sinyal kompleks penuh.Mengabaikan bagian atas output array (itu bagian negatif, agak kontra-intuitif).

Jika Anda makan nomor yang kompleks ke dalam MATLAB's abs () fungsi, itu menghitung sqrt (real * nyata Imag * Imag).Sangat nyaman.

 

Welcome to EDABoard.com

Sponsor

Back
Top