Nyquist & Shannon Capacity
แทนสองสูตรกับหนึ่งการแปลงหน่วยก็จบข้อ — แต่ต้องเขียนวิธีทำให้ครบทุกบรรทัด เพราะคะแนนอยู่ที่ขั้นตอน ไม่ใช่แค่ตัวเลขสุดท้าย
คำตอบทั้งข้อคือสามตัวเลข: Nyquist = 16 Mbps · Shannon @20 dB ≈ 1.33 × 107 bps · Shannon @40 dB ≈ 2.66 × 107 bps — และห้ามลืมแปลง dB เป็นอัตราส่วนก่อน (20 dB → S/N = 100 ไม่ใช่ 20)
โจทย์จริงจากข้อสอบปีที่แล้ว
ข้อ 1 (10 คะแนน)
สมมติให้ Bandwidth ขนาด 2 MHz สายสัญญาณจะสามารถส่งที่ความเร็วสูงสุดเท่าไร (bit rate) หากเป็นการส่งแบบ 16 ระดับสัญญาณ (16-level) และจะได้ Shannon capacity เท่าใด หากช่องสัญญาณมีค่า SNR เป็น 20 dB และ 40 dB
- ความเร็วสูงสุด (bit rate) เมื่อใช้ 16 ระดับสัญญาณ → Nyquist
- Shannon capacity เมื่อ SNR = 20 dB
- Shannon capacity เมื่อ SNR = 40 dB
คิดยังไง (แนวคิดใน 30 วินาที)
ข้อนี้ถามว่า "ช่องสัญญาณเส้นนี้ยัดข้อมูลได้เร็วสุดแค่ไหน" ซึ่งมีคำตอบสองมุมมองเสมอ:
มุมที่ 1 — เพดานจาก "อุปกรณ์ของเรา"
Nyquist สมมติว่าช่องสัญญาณไม่มี noise เลย เพดานจึงขึ้นกับแค่ว่าเรากล้าใช้กี่ระดับสัญญาณ (L) และมีแบนด์วิดท์เท่าไร → เห็นคำว่า "กี่ระดับสัญญาณ" หรือ "L-level" เมื่อไหร่ ให้นึกถึง Nyquist ทันที
มุมที่ 2 — เพดานจาก "ธรรมชาติของสาย"
Shannon ยอมรับว่ามี noise จริง เพดานจึงขึ้นกับแบนด์วิดท์กับ S/N → เห็นคำว่า SNR หรือหน่วย dB เมื่อไหร่ ให้นึกถึง Shannon ทันที
ท่ามาตรฐานของข้อนี้มี 4 จังหวะ เท่านั้น — ทำตามนี้ทุกครั้ง ไม่มีทางพลาด:
- แปลงหน่วยให้หมดก่อน — MHz → Hz (× 106), kHz → Hz (× 103)
- ถ้าโจทย์ให้ "จำนวนระดับ L" → ใช้ Nyquist
C = 2B log₂L - ถ้าโจทย์ให้ "SNR (dB)" → แปลงเป็นอัตราส่วนก่อนด้วย
S/N = 10(dB/10)แล้วค่อยใช้ Shannon - เขียนคำตอบพร้อมหน่วย bps และ (ถ้ามีที่ว่าง) แปลงเป็น Mbps ให้อ่านง่าย
ตำราไม่ได้สั่งให้เลือก — ในข้อสอบให้ตอบทั้งสองค่าตามที่โจทย์ถาม ถ้าโจทย์ถามเพิ่มว่า "ใช้ได้จริงเท่าไร" ค่อยตอบว่าเป็น ค่าที่น้อยกว่า ระหว่างสองค่า เพราะ noise เป็นตัวจำกัดที่แท้จริง (ในโจทย์ข้อนี้ที่ 20 dB คือ Shannon 13.32 Mbps < Nyquist 16 Mbps → noise คุมอยู่)
สูตร/ขั้นตอนที่ต้องใช้
สูตรที่ 1 — Nyquist's Sampling Theorem (ช่องสัญญาณไม่มี noise)
| สัญลักษณ์ | ความหมาย | หน่วย | จุดที่พลาดบ่อย |
|---|---|---|---|
C | อัตราการส่งข้อมูลสูงสุด (channel capacity) | bps | ไม่ใช่ Hz |
B | แบนด์วิดท์ของช่องสัญญาณ | Hz | 2 MHz = 2 × 106 Hz ไม่ใช่ 2 |
L | จำนวนระดับของสัญญาณ | ระดับ | ใส่ จำนวนระดับ ลงใน log2 ไม่ใช่จำนวนบิต |
log2L | = m = จำนวนบิตต่อหนึ่งสัญลักษณ์ | บิต/symbol | L = 16 → log216 = 4 (ไม่ใช่ 16) |
สูตรที่ 2 — Shannon's Law (ช่องสัญญาณมี noise)
ตัวเชื่อม — แปลง dB เป็นอัตราส่วน (บรรทัดที่ทำคนตกม้าตายมากที่สุด)
| SNR (dB) | 10(dB/10) | S/N (อัตราส่วน) | 1 + S/N | log2(1+S/N) |
|---|---|---|---|---|
| 10 dB | 101 | 10 | 11 | 3.459 |
| 20 dB | 102 | 100 | 101 | 6.658 |
| 30 dB | 103 | 1,000 | 1,001 | 9.967 |
| 40 dB | 104 | 10,000 | 10,001 | 13.288 |
ใช้ log2(x) = log10(x) / 0.301 · หรือประมาณจากกำลังของ 2 ที่ท่องได้: 26 = 64, 27 = 128 → 101 อยู่ระหว่าง 64 กับ 128 ดังนั้น log2101 ต้องอยู่ระหว่าง 6 กับ 7 (จริง ๆ คือ 6.658) · และ 213 = 8,192, 214 = 16,384 → log210,001 อยู่ระหว่าง 13 กับ 14 (จริง ๆ คือ 13.288) — แค่เขียนช่วงนี้ลงไปก็ยังได้คะแนนขั้นตอน
เฉลยละเอียดทีละขั้น
นี่คือสิ่งที่ควรเขียนลงกระดาษคำตอบ ทุกบรรทัด ตามลำดับนี้:
-
ถอดตัวแปรจากโจทย์ + แปลงหน่วย
B = 2 MHz = 2 × 106 Hz
L = 16 ระดับ
SNR = 20 dB และ 40 dB -
(ก) หา bit rate สูงสุดด้วย Nyquist — ตอนนี้ยังไม่ต้องสนใจ SNR เลย
C = 2 B log2 L
= 2 × (2 × 106) × log216
= 2 × (2 × 106) × 4 (เพราะ 24 = 16)
= 16 × 106 bps = 16 Mbps -
(ข) แปลง SNR = 20 dB เป็นอัตราส่วน
20 = 10 log10(S/N)
log10(S/N) = 2
S/N = 102 = 100 -
(ข ต่อ) แทนใน Shannon
C = B log2(1 + S/N)
= (2 × 106) × log2(1 + 100)
= (2 × 106) × log2(101)
= (2 × 106) × 6.658
≈ 1.33 × 107 bps (≈ 13.32 Mbps) -
(ค) แปลง SNR = 40 dB แล้วแทนใหม่
40 = 10 log10(S/N) → S/N = 104 = 10,000
C = (2 × 106) × log2(1 + 10,000)
= (2 × 106) × log2(10,001)
= (2 × 106) × 13.288
≈ 2.66 × 107 bps (≈ 26.58 Mbps) -
เขียนกรอบคำตอบให้ครบสามค่า
คำถาม สูตรที่ใช้ คำตอบ bit rate สูงสุด (16 ระดับ) Nyquist 16 × 106 bps = 16 Mbps Shannon capacity @ SNR 20 dB Shannon ≈ 1.33 × 107 bps Shannon capacity @ SNR 40 dB Shannon ≈ 2.66 × 107 bps
SNR เพิ่มจาก 20 → 40 dB คือกำลังสัญญาณต่อ noise เพิ่ม 100 เท่า แต่ความจุเพิ่มแค่ ประมาณ 2 เท่า — เพราะ S/N ถูกครอบด้วย log2 ส่วน B คูณอยู่ข้างนอก log จึงเพิ่มแบบเชิงเส้น สรุปเป็นประโยคเดียว: "เพิ่มแบนด์วิดท์คุ้มกว่าเพิ่มกำลังส่ง"
เครื่องคิดเลขแบบแสดงวิธีทำ
เลื่อนสไลเดอร์แล้วอ่านทีละบรรทัด — นี่คือหน้าตาของสิ่งที่ต้องเขียนลงกระดาษคำตอบเป๊ะ ๆ ลองตั้ง B = 2 MHz, L = 16, SNR = 20 dB เพื่อเทียบกับเฉลยข้างบน
เห็นภาพ — ทำไม "จำนวนระดับ" กับ "SNR" ถึงคุมความเร็ว
ระดับสัญญาณเยอะ = 1 สัญลักษณ์พาบิตได้เยอะ
Shannon โตช้า ๆ ตาม SNR — และตัดกับ Nyquist ที่จุดหนึ่ง
กับดักที่ทำให้เสียคะแนน
คำตอบผิดที่พบจริงในกระดาษของรุ่นพี่: C = 2×106 × log2(1 + 20) = 8.78 × 106
ผิดเพราะ 20 คือค่า dB ไม่ใช่อัตราส่วน S/N · ต้องแปลงเป็น 100 ก่อนเสมอ · วิธีกันพลาด: ทันทีที่เห็นคำว่า dB ให้เขียนบรรทัด S/N = 10(dB/10) ลงกระดาษก่อนทำอย่างอื่น
คำตอบผิดที่พบจริง: 2×106 × log10(101) = 4.01 × 106
ผิดเพราะ ใช้ log10 แทน log2 · ท่องให้ติดว่า "dB ใช้ฐาน 10 · capacity ใช้ฐาน 2" — เครื่องคิดเลขปุ่ม log คือฐาน 10 ต้องหารด้วย log 2 = 0.301 อีกที
คำตอบผิดที่พบจริง: C = 2 × 2×106 × 16 = 6.4 × 107
ผิดเพราะ ลืม log2 · L = 16 คือจำนวนระดับ แต่สิ่งที่คูณคือจำนวนบิตต่อสัญลักษณ์ = log216 = 4 · เช็กเร็ว ๆ: ถ้าคำตอบ Nyquist ออกมามากกว่า 4 เท่าของแบนด์วิดท์ ให้สงสัยไว้ก่อนว่าลืม log
คำตอบผิดที่พบจริง: C = 2,000,006.658 (มาจาก 2×106 + 6.658) และ C = 2 × 2 × 4 = 16 (ลืม ×106)
วิธีกันพลาด: เขียน B = 2 × 106 Hz เป็นบรรทัดแรกสุดของคำตอบเสมอ แล้วอย่าเขียนเลข "2 MHz" ซ้ำอีกในบรรทัดคำนวณ
Nyquist มี 2 คูณข้างหน้า (C = 2B log2L) แต่ Shannon ไม่มี (C = B log2(1+S/N)) — คนที่เผลอเขียน 2B log2(1+S/N) จะได้ 2.66 × 107 ที่ 20 dB ซึ่งบังเอิญไปตรงกับคำตอบข้อ 40 dB พอดี กรรมการจับได้ทันที
เขียนยังไงให้ได้คะแนนเต็ม
ข้อนี้ 10 คะแนน แต่แบ่งเป็น 3 คำถามย่อย คะแนนอยู่ที่ขั้นตอน — ถึงเลขสุดท้ายผิดก็ยังเก็บได้เกินครึ่งถ้าเขียนครบตามนี้:
| ✓ | ต้องมีในกระดาษคำตอบ | ตัวอย่างที่เขียนแล้วได้คะแนน |
|---|---|---|
| ☐ | บรรทัดถอดตัวแปร | B = 2 MHz = 2×106 Hz, L = 16, SNR = 20 dB, 40 dB |
| ☐ | เขียนชื่อสูตรกำกับ | Nyquist: C = 2B log₂L · Shannon: C = B log₂(1+S/N) |
| ☐ | บรรทัดแทนค่า (ยังไม่คิดเลข) | C = 2 × (2×106) × log₂16 |
| ☐ | บรรทัดแปลง dB แยกออกมาให้เห็นชัด | 20 = 10 log₁₀(S/N) → S/N = 10² = 100 |
| ☐ | ค่ากลางของ log | log₂(101) = 6.658 (ถ้าไม่มีเครื่องคิดเลข เขียน "อยู่ระหว่าง 6 กับ 7") |
| ☐ | คำตอบพร้อมหน่วย bps | C ≈ 1.33 × 107 bps (จะใส่ Mbps ต่อท้ายด้วยยิ่งดี) |
| ☐ | ตีกรอบ/ขีดเส้นใต้คำตอบ 3 ค่า | อาจารย์หาคำตอบเจอเร็ว = ไม่พลาดให้คะแนน |
// ข้อ 1
กำหนด B = 2 MHz = 2×10^6 Hz , L = 16 , SNR = 20 dB และ 40 dB
(ก) Nyquist C = 2B log2(L)
= 2 × (2×10^6) × log2(16)
= 2 × (2×10^6) × 4
= 16×10^6 bps = 16 Mbps
(ข) SNR = 20 dB 20 = 10 log10(S/N) → S/N = 10^2 = 100
Shannon C = B log2(1 + S/N)
= (2×10^6) × log2(101)
= (2×10^6) × 6.658
= 1.33×10^7 bps (13.32 Mbps)
(ค) SNR = 40 dB 40 = 10 log10(S/N) → S/N = 10^4 = 10000
Shannon C = (2×10^6) × log2(10001)
= (2×10^6) × 13.288
= 2.66×10^7 bps (26.58 Mbps)
โจทย์ฝึก 5 ข้อ
ไล่จากง่าย → ยากกว่าของจริงเล็กน้อย · ลองทำในกระดาษก่อนกดดูเฉลยทุกข้อ
ข้อ 1 อุ่นเครื่อง
ช่องสัญญาณมีแบนด์วิดท์ 1 MHz ใช้ 4 ระดับสัญญาณ
(ก) จงหาอัตราการส่งข้อมูลสูงสุดตาม Nyquist
(ข) ถ้าช่องสัญญาณนี้มี SNR = 10 dB จงหา Shannon capacity
เฉลยข้อ 1
(ก) Nyquist — B = 1 MHz = 1×106 Hz, L = 4 → log₂4 = 2
(ข) Shannon — แปลง dB ก่อน
C = B log2(1 + 10) = (1×106) × log2(11)
= (1×106) × 3.459 = 3.46 × 106 bps (≈ 3.46 Mbps)
สังเกต: Shannon (3.46 Mbps) < Nyquist (4 Mbps) → noise เป็นตัวจำกัด การเพิ่มระดับสัญญาณให้เกิน 4 จะไม่ช่วยอะไร
ข้อ 2 เปลี่ยนหน่วยเป็น kHz
ช่องสัญญาณโทรศัพท์มีแบนด์วิดท์ 3 kHz ใช้ 8 ระดับสัญญาณ และมี SNR = 30 dB
จงหา (ก) Nyquist rate (ข) Shannon capacity (ค) ค่าที่ใช้ได้จริงคือเท่าไร เพราะอะไร
เฉลยข้อ 2
ถอดตัวแปร — B = 3 kHz = 3,000 Hz, L = 8 → log₂8 = 3, SNR = 30 dB
(ก) Nyquist
(ข) Shannon
C = 3,000 × log2(1 + 1,000) = 3,000 × log2(1,001)
= 3,000 × 9.967 = 29,902 bps ≈ 2.99 × 104 bps
(ค) ใช้ได้จริง = ค่าที่น้อยกว่า = 18,000 bps — คราวนี้ Nyquist เป็นตัวจำกัด เพราะเราเลือกใช้แค่ 8 ระดับ ทั้งที่ช่องสัญญาณรองรับได้ถึง ~30 kbps · ถ้าอยากได้เร็วขึ้นต้องเพิ่มจำนวนระดับสัญญาณ (ไม่ใช่เพิ่มกำลังส่ง)
ข้อนี้เป็นภาพกลับด้านของโจทย์จริง — ฝึกไว้เพราะข้อสอบชอบถามต่อว่า "อะไรเป็นตัวจำกัด"
ข้อ 3 ถามย้อนกลับ
วิศวกรต้องการอัตราการส่งข้อมูล 12 Mbps บนช่องสัญญาณแบนด์วิดท์ 2 MHz ที่ไม่มีสัญญาณรบกวน
จงหาว่าต้องใช้กี่ระดับสัญญาณ (L) และแต่ละสัญลักษณ์พากี่บิต
เฉลยข้อ 3
ตั้งสมการจาก Nyquist แล้วแก้หา L
12 × 106 = 2 × (2 × 106) × log2L
12 × 106 = (4 × 106) × log2L
log2L = 12 × 1064 × 106 = 3
L = 23 = 8 ระดับ
แต่ละสัญลักษณ์พา log₂8 = 3 บิต · ตรวจย้อน: 2 × 2×106 × 3 = 12 × 106 ✓
ข้อ 4 dB ไม่ลงตัว
ช่องสัญญาณแบนด์วิดท์ 4 MHz มีค่า SNR = 24 dB จงหา Shannon capacity
(กำหนดให้ 100.4 ≈ 2.512)
เฉลยข้อ 4
ขั้นที่ 1 — แปลง dB (24 ไม่ใช่ตัวคูณของ 10 จึงต้องแยกเป็น 102 × 100.4)
S/N = 102.4 = 102 × 100.4 = 100 × 2.512 = 251.2
ขั้นที่ 2 — Shannon
= (4 × 106) × 7.978
≈ 3.19 × 107 bps (≈ 31.9 Mbps)
เช็กเร็ว ๆ: 27 = 128, 28 = 256 → log2252.2 ต้องอยู่ใกล้ ๆ 8 แต่น้อยกว่านิดหน่อย ✓
ข้อ 5 ยากกว่าของจริงนิดเดียว
ช่องสัญญาณแบนด์วิดท์ 2 MHz มี SNR = 20 dB
(ก) การเพิ่มจำนวนระดับสัญญาณให้มากที่สุดเท่าที่ยังไม่เกินเพดานของ Shannon จะใช้ได้กี่ระดับ (จำนวนเต็ม)
(ข) ถ้าเลือกใช้ระดับสัญญาณเป็นกำลังของ 2 ควรเลือกกี่ระดับ และได้ bit rate เท่าไร
เฉลยข้อ 5
ขั้นที่ 1 — หาเพดาน Shannon ก่อน (เหมือนโจทย์จริงเป๊ะ)
CShannon = (2 × 106) × log2(101) = 1.3316 × 107 bps
ขั้นที่ 2 — ตั้งเงื่อนไข Nyquist ≤ Shannon
log2L ≤ 1.3316 × 1074 × 106 = 3.329
L ≤ 23.329 = 10.05
(ก) ใช้ได้มากที่สุด 10 ระดับ (จำนวนเต็ม)
(ข) ถ้าต้องเป็นกำลังของ 2 → เลือก L = 8 (เพราะ 16 เกินเพดาน)
ในข้อสอบให้ L = 16 ซึ่ง Nyquist บอกว่าได้ 16 Mbps แต่ Shannon ที่ 20 dB เพดานอยู่แค่ 13.32 Mbps — แปลว่า 16 ระดับนั้น "เกินตัว" สำหรับ noise ระดับนี้ ต้องแก้ noise (เพิ่ม SNR เป็น ~24 dB ขึ้นไป) ก่อน ถึงจะใช้ 16 ระดับได้จริง
เช็คความเข้าใจ
1 + S/N = 10,001 ไม่ใช่ 10,000 เฉย ๆ (ในโจทย์ระดับนี้ต่างกันน้อยมาก แต่ต้องเขียนให้ถูก)- C = 2B log₂L (Nyquist, ไม่มี noise) · C = B log₂(1 + S/N) (Shannon, มี noise) — จำเลข 2 ให้ถูกสูตร
- S/N = 10(dB/10) — 20 dB → 100 · 40 dB → 10,000 · เขียนบรรทัดนี้ทุกครั้งที่เห็นคำว่า dB
- คำตอบของข้อสอบจริง: 16 Mbps · 1.33×107 bps · 2.66×107 bps
- ตอบทั้งสองค่าตามที่ถาม ถ้าถามว่า "ใช้ได้จริงเท่าไร" ตอบ ค่าที่น้อยกว่า
- ต่อยอด: บทที่ 7 หัวข้อ 7.10 · ข้อถัดไปที่คุ้มพอกัน Q2 — TDM