Spectrum Analyzer
Lab 6: Spectrum Analyzer
Part 3 - Oscilloscope & Signal Processing
1. โครงสร้างภาพรวมของ Lab
Why? - ทำไมต้องเรียนรู้เรื่องนี้
FFT คือหัวใจของ Signal Analysis: Fast Fourier Transform เปลี่ยนสัญญาณจาก Time Domain ไปเป็น Frequency Domain ช่วยให้เห็น "ส่วนประกอบความถี่" ของสัญญาณ ซึ่งมองไม่เห็นจาก oscilloscope ธรรมดา
Power Quality Analysis: ในระบบไฟฟ้า FFT ใช้วิเคราะห์ Harmonics, THD (Total Harmonic Distortion), Inter-harmonics เพื่อประเมินคุณภาพไฟฟ้าตาม IEEE 519
Vibration Monitoring: ในโรงงาน FFT ใช้ตรวจจับปัญหาเครื่องจักร (bearing fault, imbalance, misalignment) จาก vibration spectrum
Smart Energy: Power meter รุ่นใหม่ใช้ FFT วิเคราะห์กำลังไฟฟ้าแบบ real-time สำหรับ Smart Grid, Energy Audit
EE Application: ออกแบบ Anti-aliasing filter, Power Quality Analyzer, Vibration-based Predictive Maintenance, Audio Equalizer
What? - จะได้เรียนรู้อะไร
FFT Concept: Time Domain to Frequency Domain transformation
Simplified FFT Implementation: DFT algorithm สำหรับ embedded (ไม่ต้องใช้ library)
Bar Chart Spectrum Display: แสดง frequency bins ด้วย bar chart
Frequency Resolution & Nyquist: เข้าใจ bin resolution, maximum frequency
Peak Frequency Detection: ค้นหาความถี่ที่มีพลังงานสูงสุด
Dual View: Time domain + Frequency domain แสดงพร้อมกัน
How? - จะทำอย่างไร
สร้างสัญญาณ test (sine, square, ฯลฯ) ที่เลือกได้
คำนวณ FFT (Simplified DFT) ของสัญญาณ
แสดง spectrum ด้วย Bar chart (bins สีฟ้า)
ค้นหาและแสดง peak frequency
เพิ่ม gain control สำหรับปรับ sensitivity
สร้าง dual view (waveform + spectrum)

2. หลักการทำงานและ Flowchart
2.1 FFT Concept
2.2 Frequency Bins
3. ฟังก์ชันสำคัญ
3.1 FFT Functions
simple_dft()
Simplified DFT calculation
find_peak_frequency()
ค้นหา dominant frequency
generate_test_signal()
สร้างสัญญาณทดสอบ
3.2 LVGL Bar Chart Setup
lv_chart_set_type(chart, LV_CHART_TYPE_BAR)
Bar chart mode
lv_obj_set_style_pad_column(chart, 2, 0)
CRITICAL: spacing ระหว่าง bar
4. Code เต็ม
4.1 Constants and Global Variables
4.2 Simplified DFT Implementation
4.3 Signal Generation
4.4 Display Update
4.5 Callbacks
4.6 Main Function
5. องค์ความรู้และเทคนิค
5.1 CRITICAL: Bar Chart Spacing
5.2 Windowing Functions (สำหรับปรับปรุง FFT)
5.3 Spectrum Characteristics ของ Waveform แต่ละชนิด
5.4 DFT vs FFT Performance
6. แบบฝึกหัด
Exercise 1: Spectrum Display with Peak Marker
โจทย์: เพิ่ม Peak marker และ frequency label บน FFT chart:
วาดเส้นแนวตั้ง (หรือ marker) ที่ตำแหน่ง peak frequency
แสดง frequency label ที่จุด peak
เพิ่ม "2nd Peak" detection (ความถี่ที่มีพลังงานสูงเป็นอันดับ 2)
แสดง power ratio ระหว่าง 1st peak กับ 2nd peak
Exercise 2: Dual View Synchronized
โจทย์: สร้าง Time + Frequency dual view ที่ synchronized:
Time domain chart (บน) แสดง waveform
Frequency domain chart (ล่าง) แสดง spectrum
เพิ่ม Slider ปรับ frequency (100-2000 Hz)
เมื่อปรับ frequency ทั้ง 2 charts อัพเดทพร้อมกัน
แสดง bin number และ frequency ของ peak
ประยุกต์ใช้: Power Quality Analysis - สังเกต harmonics เมื่อเปลี่ยนจาก sine เป็น square
7. References
Last updated
Was this helpful?