Audio Waveform

Lab 3: Audio Waveform Display

Part 3 - Oscilloscope & Signal Processing


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

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

  • Harmonics in Power Systems: ในระบบไฟฟ้า Harmonics (ฮาร์มอนิกส์) คือปัญหาสำคัญ สัญญาณ 50 Hz อุดมคติจะถูกบิดเบี้ยวด้วย harmonic ที่ 3rd (150Hz), 5th (250Hz), 7th (350Hz) ทำให้เกิดปัญหา power quality

  • Sound & Music: เสียงเป็น waveform ที่ซับซ้อน เกิดจากการรวม harmonics หลายตัว ความแตกต่างของเสียงเครื่องดนตรีแต่ละชิ้น (Timbre) มาจากสัดส่วน harmonics ที่ต่างกัน

  • Fourier Series: ทุก periodic waveform สามารถสลายเป็นผลรวมของ sine waves (harmonics) ได้ นี่คือพื้นฐานของ Fourier Analysis ที่ใช้ในงาน EE ทุกสาขา

  • EE Application: วิเคราะห์ THD (Total Harmonic Distortion) ในระบบไฟฟ้า, ออกแบบ Active Harmonic Filter, Audio Equalizer

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

  1. Musical Frequencies: ความถี่โน้ตดนตรี (A4=440Hz, C4=261.6Hz)

  2. Harmonics Theory: Fundamental + 2nd + 3rd harmonics และผลต่อ waveform shape

  3. Waveform Synthesis: สร้าง waveform ซับซ้อนจาก sine waves หลายตัว

  4. Timbre Concept: ทำไมเสียงเปียโนกับไวโอลินถึงต่างกันที่ความถี่เดียวกัน

  5. AM Modulation: Amplitude Modulation พื้นฐาน (carrier * modulating)

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

  1. สร้างปุ่มโน้ตดนตรี C, D, E, F, G, A, B

  2. แต่ละปุ่มสร้าง sine wave ที่ความถี่ของโน้ตนั้น

  3. เพิ่ม slider ปรับระดับ Harmonic (2nd, 3rd)

  4. แสดง waveform ที่เปลี่ยนรูปร่างตาม harmonic content

  5. สังเกตความสัมพันธ์ระหว่าง harmonic content กับ waveform shape


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

2.1 Musical Note Frequencies


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

3.1 Audio Constants

Constant
Value
Description

NOTE_C4

262

โน้ต C (โด)

NOTE_D4

294

โน้ต D (เร)

NOTE_E4

330

โน้ต E (มี)

NOTE_F4

349

โน้ต F (ฟา)

NOTE_G4

392

โน้ต G (ซอล)

NOTE_A4

440

โน้ต A (ลา) - Standard Tuning

NOTE_B4

494

โน้ต B (ที)

3.2 Synthesis Functions

Function
Description

generate_with_harmonics()

สร้าง waveform พร้อม harmonics

add_harmonic()

เพิ่ม harmonic ลงใน buffer

update_waveform_display()

อัพเดท chart


4. Code เต็ม

4.1 Constants and Global Variables

4.2 Waveform Synthesis with Harmonics

4.3 Event Callbacks

4.4 Main Function


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

5.1 Fourier Series - ผลรวมของ Harmonics

5.2 Harmonic Distortion ในระบบไฟฟ้า

5.3 Normalization เพื่อป้องกัน Clipping

5.4 Display Stride สำหรับ High Sample Rate


6. แบบฝึกหัด

Exercise 1: Piano Key Display (แสดง Waveform ตามปุ่มกด)

โจทย์: ปรับปรุง Piano keys ให้มีฟีเจอร์เพิ่มเติม:

  • แสดง Frequency spectrum bar ข้างๆ chart (Fundamental + Harmonics แต่ละตัว)

  • เพิ่มโน้ต sharp/flat (#/b) ระหว่างปุ่ม (C#, D#, F#, G#, A#) เป็นปุ่มสีดำ

  • เมื่อกดปุ่มโน้ต ให้แสดง period (ms) และ wavelength (m) ด้วย

  • Wavelength = speed_of_sound / frequency (speed_of_sound = 343 m/s ที่ 20C)

คำใบ้:

Exercise 2: AM Modulation (Amplitude Modulation)

โจทย์: สร้าง AM Modulation visualization:

  • Carrier: sine wave ที่ 1000 Hz (adjustable)

  • Modulating signal: sine wave ที่ 50 Hz (adjustable)

  • AM formula: output = (1 + m * mod_signal) * carrier

  • เพิ่ม Slider ปรับ modulation depth (m = 0 to 1)

  • แสดง 2 charts: ด้านบน = modulated signal, ด้านล่าง = modulating signal (envelope)

  • แสดงค่า Modulation Index (%)

คำใบ้:


7. References


Last updated

Was this helpful?