Spectrum Analyzer

Lab 6: Spectrum Analyzer


1. โครงสร้างภาพรวมของ Lab

Why? - ทำไมต้องเรียนรู้เรื่องนี้

  • Frequency Analysis: วิเคราะห์องค์ประกอบความถี่ของสัญญาณ

  • FFT Understanding: เข้าใจ Fast Fourier Transform

  • Audio Applications: ใช้ใน equalizer, tuner, speech analysis

  • Educational Demo: เห็นความแตกต่างของ spectrum ในแต่ละ waveform

What? - จะได้เรียนรู้อะไร

  1. FFT Concept: Time domain → Frequency domain

  2. FFT API: aic_fft_init(), aic_fft_calculate()

  3. Bar Chart: แสดง spectrum แบบ bar graph พร้อม spacing

  4. Gain Control: ปรับ gain ด้วย slider

  5. Waveform Selection: เลือก waveform เพื่อดู spectrum ที่แตกต่าง

How? - จะทำอย่างไร

  1. Initialize FFT กับ buffer size (power of 2)

  2. สร้าง waveform (Sine, Square, Triangle, Sawtooth)

  3. คำนวณ FFT spectrum

  4. แสดงผลบน Bar chart พร้อม spacing ระหว่าง bar


2. หลักการทำงานและ Flowchart

2.1 FFT Concept

2.2 Frequency Bins


3. ฟังก์ชันสำคัญ

3.1 FFT API

Function
Description

aic_fft_init(fft_size)

Initialize FFT (size must be power of 2)

aic_fft_calculate(input, output)

Perform FFT

aic_fft_dominant_frequency()

Find strongest frequency

3.2 FFT Parameters


4. Code Example

4.1 Global Variables

4.2 Gain Slider Callback

4.3 Timer Callback

4.4 Main Function


5. องค์ความรู้และเทคนิค

5.1 CRITICAL: Bar Chart Spacing

5.2 Dedicated Variables Pattern

5.3 FFT Size Selection

5.4 Decimation for Display

5.5 Gain Control


6. แบบฝึกหัด

Exercise 1: Note Detection

ตรวจจับโน้ตดนตรี (A4=440Hz, C5=523Hz, etc.)

Exercise 2: Frequency Band Display

แสดงแยก bands: Sub-bass, Bass, Low-mid, Mid, High-mid, High


7. References


Previous Lab: Lab 5: Oscilloscope UI Next Lab: Lab 7: Spectrum Analyzer in Action

Last updated

Was this helpful?