
สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12

โปรแกรมนี้คือการคำนวณการแปลงความถี่บน 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 ข้อกำหนดที่ต้องระบุ
- อาร์เรย์ที่ต้องใช้ dft
- ขนาดของอาร์เรย์
- ช่วงเวลาระหว่าง 2 การอ่านในอาร์เรย์ในหน่วยมิลลิวินาที
- ค่าที่ต่ำกว่าของช่วงความถี่ใน Hz
- ค่าสูงสุดของช่วงความถี่ในหน่วย Hz
- ขนาดของขั้นตอนสำหรับช่วงความถี่
- การทำซ้ำของสัญญาณ (ขั้นต่ำ 1) ความแม่นยำในการปะทะที่สูงขึ้น แต่เพิ่มเวลาในการแก้ปัญหา
-
ฟังก์ชั่นหน้าต่าง:
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 การทำซ้ำและหน้าต่างการแฮม
ที่นี่เป็นไปได้ที่จะใช้อาร์เรย์ที่มีขนาดใหญ่กว่ามากที่สุดเท่าที่ Arduino สามารถจัดการได้
ขั้นตอนที่ 4: เอาต์พุต:


ถ้าคุณแสดงความคิดเห็น
Serial.print(f);อนุกรม.print("\t");
จาก code serial plotter จะให้ลักษณะของสเปกตรัมความถี่ ถ้าไม่ใช่ Serial monitor จะให้ความถี่พร้อมกับ amplitude
ขั้นตอนที่ 5: การตรวจสอบหน้าต่างและขนาดตัวอย่างต่างๆ:

ในรูป ความถี่ของคลื่นไซน์วัดโดยใช้การตั้งค่าต่างๆ
ขั้นตอนที่ 6: ตัวอย่าง:

ในรูปของการแปลงข้อมูลโดยใช้ SciLab และ Arduino เปรียบเทียบ
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน

การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน

การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน

วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน

การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
Arduino ที่ถูกที่สุด -- Arduino ที่เล็กที่สุด -- Arduino Pro Mini -- การเขียนโปรแกรม -- Arduino Neno: 6 ขั้นตอน (พร้อมรูปภาพ)

Arduino ที่ถูกที่สุด || Arduino ที่เล็กที่สุด || Arduino Pro Mini || การเขียนโปรแกรม || Arduino Neno:…………………………… โปรดสมัครสมาชิกช่อง YouTube ของฉันสำหรับวิดีโอเพิ่มเติม……. โปรเจ็กต์นี้เกี่ยวกับวิธีเชื่อมต่อ Arduino ที่เล็กที่สุดและถูกที่สุดเท่าที่เคยมีมา Arduino ที่เล็กที่สุดและถูกที่สุดคือ arduino pro mini คล้ายกับ Arduino