Სარჩევი:

Arduino: სიხშირის გარდაქმნა (DFT): 6 ნაბიჯი
Arduino: სიხშირის გარდაქმნა (DFT): 6 ნაბიჯი

ვიდეო: Arduino: სიხშირის გარდაქმნა (DFT): 6 ნაბიჯი

ვიდეო: Arduino: სიხშირის გარდაქმნა (DFT): 6 ნაბიჯი
ვიდეო: Using Micro SD Card and Data logging with Arduino | Arduino Step by Step Course Lesson 106 2024, ნოემბერი
Anonim
Arduino: სიხშირის ტრანსფორმაცია (DFT)
Arduino: სიხშირის ტრანსფორმაცია (DFT)

ეს პროგრამა არის გამოთვლა სიხშირის გარდაქმნა არდუინოზე პარამეტრების კონტროლით. ის წყდება დამამცირებელი მეოთხე გარდაქმნის გამოყენებით.

ეს არ არის FFT

FFT არის ალგორითმი, რომელიც გამოიყენება DFT უფრო მცირე დროით ამოხსნისთვის.

FFT კოდი შეგიძლიათ ნახოთ აქ.

ნაბიჯი 1: როგორ მუშაობს (კონცეფცია):

როგორ მუშაობს (კონცეფცია)
როგორ მუშაობს (კონცეფცია)
როგორ მუშაობს (კონცეფცია)
როგორ მუშაობს (კონცეფცია)

სიხშირის გარდაქმნის მოცემული პროგრამა უზრუნველყოფს დიდ კონტროლს თქვენთვის საჭირო გამომუშავებაზე. ეს პროგრამა აფასებს მომხმარებლის მიერ მოცემული მონაცემების ნაკრების სიხშირის დიაპაზონს.

  • ფიგურაში მოცემულია მონაცემების ნაკრები ორი სიხშირისგან, სახელწოდებით f2 და f5, რომლებიც უნდა შემოწმდეს. f2 და f5 არის შემთხვევითი სახელები ორი სიხშირისთვის, უფრო მაღალი რიცხვი შედარებით მაღალი სიხშირისთვის. აქ უფრო მცირე სიხშირე f2 აქვს უფრო მაღალი ამპლიტუდა და f5 აქვს უფრო მცირე ამპლიტუდა.
  • მათემატიკურად შეიძლება ნაჩვენები იყოს, რომ განსხვავებული ჰარმონიული მონაცემთა ნაკრების გამრავლების ჯამი სხვადასხვა სიხშირით ნულის ტოლია (მონაცემთა უფრო მეტმა რაოდენობამ შეიძლება გამოიწვიოს ბატარეის შედეგი). ჩვენს შემთხვევაში, თუ ამ ორ გამრავლების სიხშირეს აქვს იგივე (ან ძალიან ახლო) სიხშირე, გამრავლების ჯამი არის ნულოვანი რიცხვი, სადაც ამპლიტუდა დამოკიდებულია მონაცემების ამპლიტუდაზე.
  • კონკრეტული სიხშირის გამოსავლენად მოცემული მონაცემთა ნაკრები შეიძლება გამრავლდეს სხვადასხვა ტესტის სიხშირეზე და შედეგს შეუძლია მისცეს მონაცემებში ამ სიხშირის კომპონენტი.

ნაბიჯი 2: როგორ მუშაობს (კოდში):

როგორ მუშაობს (კოდექსში)
როგორ მუშაობს (კოდექსში)
როგორ მუშაობს (კოდექსში)
როგორ მუშაობს (კოდექსში)

მოცემული მონაცემებისთვის (f2+f5) სათითაოდ f1 to f6 მრავლდება და თანხის მნიშვნელობა აღინიშნება ქვემოთ. რომ საბოლოო ჯამი წარმოადგენს ამ სიხშირის შინაარსს. სიხშირის დასვენება (შეუსაბამობა) იდეალურად უნდა იყოს ნულის ტოლი, მაგრამ ეს რეალურ შემთხვევაში შეუძლებელია. ნულოვანი ჯამის შესაქმნელად საჭიროა მონაცემთა ნაკრებების უსასრულო ზომა.

  • როგორც შეიძლება ნაჩვენები იყოს ფიგურაში f1- დან f6- მდე ცდის სიხშირე და ნაჩვენებია მისი გამრავლება მონაცემებთან ერთად ყველა წერტილში.
  • მეორე ფიგურაში გამოსახულია ამ გამრავლების შეჯამება თითოეულ სიხშირეზე. ორი მწვერვალი 1 და 5 არის იდენტიფიცირებადი.

შემთხვევითი მონაცემებისთვის იგივე მიდგომის გამოყენებით შეგვიძლია შევაფასოთ ამდენი სიხშირე და გავაანალიზოთ მონაცემების სიხშირე.

ნაბიჯი 3: კოდის გამოყენება სიხშირის ანალიზისათვის:

სიხშირის ანალიზის კოდის გამოყენება
სიხშირის ანალიზის კოდის გამოყენება

მაგალითისთვის მოდით გამოვიყენოთ ეს კოდი კვადრატული ტალღის DFT- ის მოსაძებნად.

პირველი ჩასვით თანდართული კოდი (dft ფუნქცია) მარყუჟის შემდეგ, როგორც ნაჩვენებია სურათზე

8 პირობა, რომელიც უნდა იყოს სპეციფიკური

  1. რომლის მასივი dft უნდა იქნას მიღებული
  2. მასივის ზომა
  3. დროის ინტერვალი მასივის 2 კითხვას შორის მილიწამებში
  4. სიხშირის დიაპაზონის ქვედა მნიშვნელობა Hz- ში
  5. სიხშირის დიაპაზონის ზედა მნიშვნელობა Hz
  6. ნაბიჯების ზომა სიხშირის დიაპაზონისთვის
  7. სიგნალის გამეორება (მინიმუმ 1) უფრო დიდი რაოდენობის ბატარეის სიზუსტე, მაგრამ გაზრდილი გადაწყვეტის დრო
  8. ფანჯრის ფუნქცია:

    0 ფანჯრის გარეშე 1 ბრტყელი ფანჯრისთვის 2 ჰანის ფანჯრისთვის 3 ჩაქუჩის ფანჯრისთვის

(თუ თქვენ არ გაქვთ იდეა ფანჯრის არჩევის შესახებ შეინახეთ ნაგულისხმევი 3)

მაგალითი: dft (a, 8, 0.5, 0, 30, 0.5, 10, 3); აქ არის 8 ელემენტის მასივი, რომელიც უნდა შემოწმდეს 0 Hz– დან 30 Hz– მდე 0.5 საფეხურით (0, 0.5, 1, 1.5,…, 29, 29.5, 30) 10 გამეორება და ჩაქუჩის ფანჯარა

აქ შესაძლებელია გამოვიყენოთ უფრო დიდი ზომის მასივი რამდენიც შეუძლია არდუინოს.

ნაბიჯი 4: გამომავალი:

გამომავალი
გამომავალი
გამომავალი
გამომავალი

თუ კომენტარს გააკეთებ

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

კოდის სერიული პლოტერი მისცემს სიხშირის სპექტრის ბუნებას, თუ არა სერიული მონიტორი მისცემს სიხშირეს მისი ამპლიტუდით.

ნაბიჯი 5: ფანჯრისა და ნიმუშის ზომის შემოწმება:

ფანჯრისა და ნიმუშის ზომის შემოწმება
ფანჯრისა და ნიმუშის ზომის შემოწმება

ფიგურაში, სინუსური ტალღის სიხშირე იზომება სხვადასხვა პარამეტრის გამოყენებით.

ნაბიჯი 6: მაგალითი:

მაგალითი
მაგალითი

მონაცემების ტრანსფორმაცია SciLab და arduino გამოყენებით არის შედარებული.

გირჩევთ: