Բովանդակություն:

Arduino. Հաճախականության փոխակերպում (DFT) `6 քայլ
Arduino. Հաճախականության փոխակերպում (DFT) `6 քայլ

Video: Arduino. Հաճախականության փոխակերպում (DFT) `6 քայլ

Video: Arduino. Հաճախականության փոխակերպում (DFT) `6 քայլ
Video: Arduino Based Frequency meter v2.0 (AC 230v 50Hz meter) 2024, Նոյեմբեր
Anonim
Arduino: Հաճախականության փոխակերպում (DFT)
Arduino: Հաճախականության փոխակերպում (DFT)

Այս ծրագիրը պետք է հաշվարկի arduino- ի հաճախականության փոխակերպումը պարամետրերի վրա հարվածի վերահսկմամբ: այն լուծվում է չորրորդ փոխակերպումը պղծելու միջոցով:

սա FFT չէ:

FFT- ն ալգորիթմ է, որն օգտագործվում է DFT- ն ավելի փոքր ժամանակով լուծելու համար:

FFT- ի կոդը կարելի է գտնել այստեղ:

Քայլ 1: Ինչպես է այն աշխատում (հայեցակարգ)

Ինչպես է այն աշխատում (հայեցակարգ)
Ինչպես է այն աշխատում (հայեցակարգ)
Ինչպես է այն աշխատում (հայեցակարգ)
Ինչպես է այն աշխատում (հայեցակարգ)

Հաճախականությունների փոխակերպման տրված ծրագիրը մեծ վերահսկողություն է ապահովում ձեր պահանջվող ելքի վրա: այս ծրագիրը գնահատում է տվյալների հավաքածուի օգտագործողի կողմից տրված հաճախականությունը:

  • Նկարում տրված f2 և f5 անուններով երկու հաճախականություններից կազմված տվյալների հավաքածուն, որոնք պետք է փորձարկվեն: f2 և f5 պատահական անուններ են երկու հաճախականության համար, ավելի մեծ թիվ ՝ համեմատաբար ավելի բարձր հաճախականության համար: այստեղ փոքր հաճախականությունը f2- ն ունի ավելի մեծ ամպլիտուդ և f5- ն ավելի փոքր ամպլիտուդ:
  • Մաթեմատիկորեն կարելի է ցույց տալ, որ տարբեր հաճախականությամբ երկու ներդաշնակ տվյալների հավաքածուի բազմապատկումը ձգտում է զրոյի (տվյալների ավելի մեծ քանակը կարող է հանգեցնել հարվածի արդյունքի): Մեր դեպքում, եթե այս երկու բազմապատկման հաճախականություններն ունեն նույն (կամ շատ մոտ) հաճախականությունը, ապա բազմապատկման գումարը ոչ զրոյական թիվ է, որտեղ ամպլիտուդը կախված է տվյալների ամպլիտուդից:
  • տվյալ հաճախականությունը հայտնաբերելու համար տրված տվյալների հավաքածուն կարող է բազմապատկվել փորձարկման տարբեր հաճախականություններով և արդյունքը կարող է տվյալ հաճախականության բաղադրիչը տալ տվյալների մեջ:

Քայլ 2. Ինչպես է այն աշխատում (ծածկագրում)

Ինչպես է այն աշխատում (ծածկագրում)
Ինչպես է այն աշխատում (ծածկագրում)
Ինչպես է այն աշխատում (ծածկագրում)
Ինչպես է այն աշխատում (ծածկագրում)

տվյալ տվյալների համար (f2+f5) f1- ից f6 մեկ առ մեկ բազմապատկվում է և գումարի արժեքը նշվում է ներքևում: այդ վերջնական գումարը ներկայացնում է այդ հաճախականության բովանդակությունը: հաճախության հանգիստը (չհամընկնելը) պետք է իդեալականորեն զրո լինի, բայց դա իրական դեպքում հնարավոր չէ: գումարը զրո դարձնելու համար պահանջվում է ունենալ տվյալների հավաքածուների անսահման չափ:

  • Ինչպես ցույց է տրված նկարում f1- ից f6 փորձարկման հաճախականությունը և դրա բազմապատկումը տվյալների հավաքածուով յուրաքանչյուր կետում:
  • երկրորդ նկարում այդ բազմապատկման գումարը յուրաքանչյուր հաճախականությամբ գծված է: երկու գագաթները 1 -ում և 5 -ում նույնականացվում են:

Այսպիսով, օգտագործելով նույն մոտեցումը պատահական տվյալների համար, մենք կարող ենք գնահատել այդքան հաճախականությամբ և վերլուծել տվյալների հաճախականության բովանդակությունը:

Քայլ 3. Հաճախականության վերլուծության համար կոդի օգտագործումը

Հաճախականությունների վերլուծության կոդի օգտագործումը
Հաճախականությունների վերլուծության կոդի օգտագործումը

օրինակի համար թույլ տվեք օգտագործել այս ծածկագիրը ՝ քառակուսի ալիքի DFT գտնելու համար:

առաջին տեղադրեք կցված ծածկագիրը (dft գործառույթը) օղակից հետո, ինչպես ցույց է տրված պատկերը:

8 ՊԱՅՄԱՆ, ՈՐ ՊԵՏՔ Է ՀԱՏՈԿ ԵՆ

  1. որի զանգվածը dft պետք է վերցվի
  2. զանգվածի չափը
  3. readingանգվածում 2 ընթերցման միջև ընկած ժամանակահատվածը միլիարդապատառներով
  4. հաճախականության միջակայքի ավելի ցածր արժեք Հց -ում
  5. հաճախականությունների միջակայքի վերին արժեքը Հց -ում
  6. քայլերի չափը հաճախականության տիրույթի համար
  7. ազդանշանի կրկնում (նվազագույնը 1) թվի ավելի բարձր թվի ճշգրտություն, բայց լուծման ավելացված ժամանակ
  8. պատուհանի գործառույթը.

    0 ոչ պատուհանի համար 1 հարթ պատուհանի համար 2 hann պատուհանի համար 3 փամփուշտի համար

(եթե պատուհան ընտրելու գաղափար չունեք, պահեք լռելյայն 3)

օրինակ ՝ dft (a, 8, 0.5, 0, 30, 0.5, 10, 3); այստեղ a- ն 8 չափի տարրերի զանգված է, որը պետք է ստուգվի 0 Հց -ից մինչև 30 Հց 0.5 քայլով (0, 0.5, 1, 1.5,…, 29, 29.5, 30) 10 կրկնողություն և հարվածային պատուհան

այստեղ հնարավոր է օգտագործել ավելի մեծ չափերի զանգված, որքան arduino- ն կարող է գործածել:

Քայլ 4: Արդյունք

Արդյունք
Արդյունք
Արդյունք
Արդյունք

եթե մեկնաբանում ես

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

կոդի սերիական գծագրիչը կտա հաճախականությունների սպեկտրի բնույթ, իսկ եթե ոչ Սերիալային մոնիտորը հաճախականություն կտա իր ամպլիտուդով:

Քայլ 5. Պատուհանների և նմուշների տարբեր չափերի ստուգում

Պատուհանների և նմուշների տարբեր չափերի ստուգում
Պատուհանների և նմուշների տարբեր չափերի ստուգում

նկարում սինուսային ալիքի հաճախականությունը չափվում է տարբեր պարամետրերի միջոցով:

Քայլ 6: Օրինակ

Օրինակ
Օրինակ

համեմատվում է տվյալների փոխակերպումը SciLab- ի և arduino- ի միջոցով:

Խորհուրդ ենք տալիս: