Isi kandungan:

Arduino: Transformasi Frekuensi (DFT): 6 Langkah
Arduino: Transformasi Frekuensi (DFT): 6 Langkah

Video: Arduino: Transformasi Frekuensi (DFT): 6 Langkah

Video: Arduino: Transformasi Frekuensi (DFT): 6 Langkah
Video: Discrete Fourier Transform (DFT) 2024, Julai
Anonim
Arduino: Transformasi Frekuensi (DFT)
Arduino: Transformasi Frekuensi (DFT)

program ini adalah untuk mengira transformasi frekuensi pada arduino dengan kawalan bateri terhadap parameter. ia diselesaikan dengan menggunakan transformasi fouriior desecrate.

ini bukan FFT

FFT adalah algoritma yang digunakan untuk menyelesaikan DFT dengan masa yang lebih kecil.

Kod untuk FFT boleh didapati di sini.

Langkah 1: Bagaimana Ia Berfungsi (konsep):

Bagaimana ia berfungsi (konsep)
Bagaimana ia berfungsi (konsep)
Bagaimana ia berfungsi (konsep)
Bagaimana ia berfungsi (konsep)

Program yang diberikan untuk transformasi frekuensi memberikan kawalan yang besar terhadap output yang anda perlukan. program ini menilai julat frekuensi yang diberikan oleh pengguna pada input yang diberikan untuk set data.

  • Dalam rajah, satu set data dibuat dari dua frekuensi yang diberi f2 dan f5 yang perlu diuji. f2 dan f5 adalah nama rawak untuk dua frekuensi, bilangan yang lebih tinggi untuk frekuensi yang lebih tinggi. di sini frekuensi yang lebih kecil f2 mempunyai amplitud yang lebih tinggi dan f5 mempunyai amplitud yang lebih kecil.
  • Ini dapat ditunjukkan secara matematis bahawa -simpalan pendaraban dua set data harmonik yang mempunyai frekuensi yang berlainan cenderung menjadi sifar (jumlah data yang lebih tinggi dapat menyebabkan hasil pemukul). Dalam kes kita Sekiranya kedua frekuensi pendaraban ini mempunyai frekuensi yang sama (atau sangat dekat) jumlah pendaraban adalah nombor bukan nol di mana amplitud bergantung pada amplitud data.
  • untuk mengesan frekuensi tertentu yang diberikan kumpulan data dapat dikalikan dengan pelbagai frekuensi ujian dan hasilnya dapat memberikan komponen frekuensi tersebut dalam data.

Langkah 2: Bagaimana Ia Berfungsi (dalam Kod):

Bagaimana Ia Berfungsi (dalam Kod)
Bagaimana Ia Berfungsi (dalam Kod)
Bagaimana Ia Berfungsi (dalam Kod)
Bagaimana Ia Berfungsi (dalam Kod)

untuk data yang diberikan (f2 + f5) satu demi satu f1 hingga f6 adalah darab dan nilai jumlah dicatat. jumlah akhir itu mewakili kandungan kekerapan itu. frekuensi rehat (tidak sepadan) mestilah sifar tetapi ia tidak mungkin berlaku dalam keadaan sebenar. Untuk membuat jumlah sifar, diperlukan set data yang tidak terhingga.

  • seperti yang ditunjukkan dalam rajah frekuensi percubaan f1 hingga f6 dan pendaraban dengan set data pada setiap titik ditunjukkan.
  • dalam penjumlahan angka kedua pendaraban itu pada setiap frekuensi diplotkan. dua puncak pada 1 dan 5 dapat dikenal pasti.

jadi dengan menggunakan pendekatan yang sama untuk data rawak kita dapat menilai frekuensi begitu banyak dan menganalisis kandungan data frekuensi.

Langkah 3: Menggunakan Kod untuk Menganalisis Kekerapan:

Menggunakan Kod untuk Menganalisis Kekerapan
Menggunakan Kod untuk Menganalisis Kekerapan

sebagai contoh mari kita menggunakan kod ini untuk mencari DFT gelombang persegi.

tampal dahulu kod terlampir (fungsi dft) selepas gelung seperti gambar yang ditunjukkan

8 SYARAT YANG PERLU DILAKSANAKAN

  1. pelbagai dft yang perlu diambil
  2. saiz tatasusunan
  3. selang masa antara 2 bacaan dalam array dalam miliSECONDS
  4. nilai julat frekuensi yang lebih rendah dalam Hz
  5. nilai atas julat frekuensi dalam Hz
  6. ukuran langkah untuk julat frekuensi
  7. pengulangan isyarat (minimum 1) ketepatan pemukul bilangan yang lebih tinggi tetapi peningkatan masa penyelesaian
  8. fungsi tetingkap:

    0 untuk tetingkap tanpa1 untuk tetingkap atas rata 2 untuk tetingkap hann 3 untuk tetingkap pemalu

(jika anda tidak mempunyai idea untuk memilih tetingkap tetap lalai 3)

contoh: dft (a, 8, 0.5, 0, 30, 0.5, 10, 3); berikut adalah susunan elemen bersaiz 8 untuk diperiksa 0 Hz hingga 30 Hz dengan 0,5 langkah (0, 0,5, 1, 1,5,…, 29, 29,5, 30) 10 tetingkap pengulangan dan pemalu

di sini adalah mungkin untuk menggunakan array bersaiz lebih besar seperti yang dapat dikendalikan oleh arduino.

Langkah 4: Keluaran:

Pengeluaran
Pengeluaran
Pengeluaran
Pengeluaran

jika anda memberi komen

Serial.print (f); Serial.print ("\ t");

dari plotter siri kod akan memberikan sifat spektrum frekuensi jika tidak Serial monitor akan memberikan frekuensi dengan amplitudnya.

Langkah 5: Memeriksa Pelbagai Ukuran Tingkap dan Contoh:

Memeriksa Pelbagai Ukuran Tingkap dan Contoh
Memeriksa Pelbagai Ukuran Tingkap dan Contoh

dalam rajah, kekerapan gelombang sinus diukur menggunakan tetapan yang berbeza.

Langkah 6: Contoh:

Contoh
Contoh

dalam transformasi angka data menggunakan SciLab dan arduino dibandingkan.

Disyorkan: