วันเสาร์ที่ 1 พฤศจิกายน พ.ศ. 2568

กิจกรรมประจำเดือน ตุลาคม 2568

 

เมื่อวันที่ 18 ต.ค. 2568  ที่ผ่านมา คลับสเตชั่น The DXER มีกิจกรรมประจำเดือนเหมือนเช่นเคย ในคราวนี้เราพูดคุยกันหลายเรื่อง เช่น

  • บาลันแบบต่างๆ (voltage balun, current balun)
  • RF โช้ค และการวัดหา Self Resonance Frequency 
  • ทดสอบวัด homebrew bazooka (sleeve) balun
  • สายอากาศแบบ ไดโพล, โฟลเด็ดไดโพล และโครงสร้าง และ การป้อน (feed / matching) แบบต่างๆ (derivatives) ของมัน
  • การปรับตั้งความถี่ของเครื่องวิทยุ IC9700 ด้วยฐานเวลาจากดาวเทียม 
  • Common mode current , การวัด และการลด Common mode current 
  • และอื่นๆ อีกมาก 






พบกันใหม่ในเดือนหน้า (พ.ย. 68) ยังมีกิจกรรมอัดแน่นเช่นเคยครับ


วันอังคารที่ 21 ตุลาคม พ.ศ. 2568

ทำไมสมิทชาร์ท (โดยเฉพาะ zy-chart) ช่วยแมทช์อิมพิแดนซ์ได้

 

โดย จิตรยุทธ จุณณะภาต (HS0DJU) 
หมายเหตุ: บทความนี้สงวนลิขสิทธิ์โดยผู้เขียน (รายละเอียดด้านล่างสุด)


เพื่อนนักวิทยุสมัครเล่นหลายท่านคงรู้สึกกลัวเมื่อเห็นภาพวงกลมๆ ที่มีเส้นเยอะแยะไปหมดที่เรียกว่า สมิทชาร์ท (ต้องให้เกียรติผู้คิดคือ  Phillip Hagar Smith ซึ่งเป็นวิศวกรไฟฟ้าเมื่อราวปี ค.ศ. 1939) สมิทชาร์ท (ซึ่งเป็นวงกลมขนาดเส้นรัศมี 1 หน่วย หรือที่เรียกทางคณิตศาสตร์ว่า "วงกลมหนึ่งหน่วย") จริงๆ แล้วเป็น Г-plane (แกมมา เพลน) ซึ่งแสดงขนาดและเฟสของสัมประสิทธิการสะท้อนกลับและมีที่มาจากสมการอิมพิแดนซ์ของสายนำสัญญาณ (ไม่ได้เกี่ยวอะไรเลยกับการแมทช์อิมพิแดนซ์)   แต่บังเอิญที่สมิทชาร์ทที่มีเส้นของ z (normalized impedance) และ y (normalized admittance) ซ้อนทับ (superimposed) ลงไปด้วยในชาร์ทเดียวกัน และมีเส้นสายย่อยของ z และ y (คือ r, x และ g, b) อยู่อย่างเป็นระเบียบ ทำให้เรา "ขโมย" มันมาใช้แมทช์อิมพิแดนซ์ได้ด้วย! 


แล้วสมิทชาร์ทใช้กับระบบอิมพิแดนซ์อะไรได้บ้าง

ลองคิดดูว่าถ้าเราต้องมีสมิทชาร์ทสำหรับระบบ 50 Ω , 75 Ω , 300 Ω  และสารพัด Ω แยกกัน เราคงต้องพิมพ์สมิทชาร์ทหลายแบบวุ่นวายไปหมด (ตอนใช้ก็ต้องควานหาอันที่ถูกต้องมาใช้อีก) แต่วิศวกรฉลาดกว่านั้นโดยสร้าง (พิมพ์) สมิทชาร์ทมาแบบเดียวเพื่อใช้งานได้กับระบบสารพัดอิมพิแดนซ์   ความฉลาดไม่ได้อยู่ที่เพียงการพิมพ์แต่อยู่ที่ "วิธีใช้"  แต่ก่อนอื่นเราต้องรู้จักตัวหนังสือต่างๆ ตามมาตรฐานของวิศวกรรมไฟฟ้าก่อน

ตัวเลขกำกับเส้นต่างๆ บนสมิทชาร์ทเป็นค่า Normalized (คือ "ค่าเทียบ") ทั้งสิ้น ซึ่งค่า Normalized นี้จะเป็นอักษรตัวเล็กทั้งหมด ( r, x, g, b  คือบนสมิทชาร์ทจะไม่มี z, y โดยตรง) ซึ่ง: 

Z = R + jX  Ω  เราก็เทียบกับอิมพิแดนซ์ของระบบ เช่นระบบ Z0 = 50 Ω  
z = Z Ω / Z0 Ω   
z = r + jx  (ไม่มีหน่วย เพราะหน่วย Ω หารกันไป)

และเรารู้ว่า  Y = 1 / Z ,  Z = 1 / Y  

Y = G + jB     (   คือ mho, โมห์, หรือ siemens )  
ในระบบ  Z0 = 50 Ω    Y0 =  1 / Z0 =  1 / ( 50 Ω ) =  0.02  
y = Y  / Y0  
y = g + jb  (ไม่มีหน่วย เพราะหน่วย  หารกันไป) 

นั่นคือ  
y = 1 / z ,  z = 1 / y ด้วย 

แต่ 
R และ G ไม่จำเป็นต้องเป็นส่วนกลับของกันและกัน 
X และ B ไม่จำเป็นต้องเป็นส่วนกลับของกันและกัน
เพราะเป็นการคำนวณแบบ complex number 

โดยที่ 
Z : อิมพิแดนซ์ (impedance) หน่วย Ω  
R : ความต้านทาน (resistance) หน่วย Ω
X : รีแอคแตนซ์ (reactance) หน่วย Ω 
Y : แอดมิตแตนซ์ (admittance) หน่วย   
G : คอนดัคแตนซ์ (conductance) หน่วย   
B : ซัสเซ็บแตนซ์ (susceptance) หนวย  
z : Normalized Impedance (อิมพิแดนซ์ที่เทียบกับ Z0 ) จึงไม่มีหน่วย
r : Normalized resistance ไม่มีหน่วย
x : Normalized reactance ไม่มีหน่วย
y : Normalized Admittance (แอดมิตแตนซ์ที่เทียบกับ Y0 ) จึงไม่มีหน่วย
g : Normalized Conductance ไม่มีหน่วย
b : Normalized Susceptance ไม่มีหน่วย

ดังนั้นเวลาเราจะทำงานกับสมิทชาร์ท เราจะต้อง "Normalize" (เทียบ) อิมพิแดนซ์หรือแอดมิตแตนซ์ ของสิ่งที่เราต้องการหา กับ อิมพิแดนซ์หรืแอดมิตแตนซ์ของระบบก่อน คือเอาไปหารด้วย Z0 หรือ Y0 ก่อน  จึงเป็นค่าที่อยู่บนสมิทชาร์ท หรือพูดกลับด้านกันก็คือตัวเลขที่กำกับเส้นโค้งๆ กลมๆ บนสมิทชาร์ทเป็นตัวเลขที่ "เทียบแล้ว" (Normalized) นั่นเอง 


เส้นโค้งๆ กลมๆ บนสมิทชาร์ทคืออะไร

ถ้าสังเกตให้ดี จะเห็นว่าสมิทชาร์ทแบบ zy-chart ประกอบไปด้วยชุดของเส้นวงเลมและเส้นโค้งต่างๆ ดูแล้วสับสน แต่จริงๆ มันง่ายกว่านั้นมาก เพราะมันมีระเบียบของมัน  โดยสีแดงเป็นชุดของ Normalized Impedance z ( = r + jx ) และสีน้ำเงินเป็นชุดของ Normalized Admittance y ( = g + jb ) ดูรูปที่ 1 ประกอบ: 

  • เส้นวงกลม r คงที่ต่างๆ สีแดง มีตัวเลขกำกับไว้ที่แกนนอนของวงกลม ว่าเส้นไหน r เป็นเท่าไร
  • เส้นโค้ง x คงที่ต่างๆ สีแดง มีตัวเลขกำกับไว้ที่ขอบวงกลม ว่าเส้นไหน x เป็นเท่าไร
  • เส้นวงกลม g คงที่ต่างๆ สีฟ้า มีตัวเลขกำกับไว้ที่แกนนอนของวงกลม ว่าเส้นไหน g เป็นเท่าไร
  • เส้นโค้ง b คงที่ต่างๆ สีฟ้า มีตัวเลขกำกับไว้ที่ขอบวงกลม ว่าเส้นไหน b เป็นเท่าไร
  • ถ้าสังเกตให้ดี จะเห็นว่าเส้นโค้งต่างๆ นั้นจริงๆ แล้วเป็น เส้นวงกลม แต่ส่วนที่อยู่นอกวงกลม 1 หน่วยของสมิทชาร์ทถูกตัดทิ้งไป  (ยังจำได้ใช่ไหมครับ ที่เล่าให้ฟังในย่อหน้าแรกเลยว่า สมิทชาร์ทเป็นแผนผังแบบวงกลม มีรัศมี = 1 หน่วย อะไรๆ ที่อยู่นอกวงกลมนี้ถือว่า "ไม่เป็นจริง" เลยตัดทิ้งไป)
  • เส้นโค้งสีฟ้าเหนือแกนนอน (แกน x=0, b=0) จะอ่านได้ค่า b เป็นลบ (negative) ดังนั้นเส้นโค้งสีฟ้าข้างล่างแกนนอนจะอ่านได้ค่า b เป็นบวก (positive)
  • เส้นโค้งสีแดงเหนือแกนนอน (แกน x=0, b=0) จะอ่านได้ค่า x เป็นบวก (positive) ดังนั้นเส้นโค้งสีแดงข้างล่างแกนนอนจะอ่านได้ค่า x เป็นลบ (negative)
รูปที่ 1 เส้นบนสมิทชาร์ทมีระบบระเบียบ
ที่มาจากทฤษฎีสายนำสัญญาณโดย
สมิทชาร์ทแบบ zy-chart จะประกอบด้วย
ชุดของเส้นสีแดง (z) และสีน้ำเงิน (y)
โดยจุดศูนย์กลางของสมิทชาร์ทคือ
จุดที่ z=1+j0 และ y=1+j0 นั่นคือจุด
อิมพิแดนซ์/แอดมิตแตนซ์ของระบบ
นั่นเอง (เราจะใส่ L, C แบบขนาน, อนุกรม
เพื่อขยับให้
อิมพิแดนซ์/แอดมิตแตนซ์
มาอยู่ตรงจุดศูนย์กลางนี้ (คือ แมทช์)


ประเด็นสำคัญที่ทำให้สมิทชาร์ทช่วยแมทช์อิมพิแดนซ์ได้ 

หลายตำราหรือข้อเขียนไม่ได้บอกความมหัศจรรย์นี้ไว้แบบตรงๆ ทำให้หลายครั้งผู้อ่านจับต้นชนปลายปะติดปะต่อเรื่องไม่ถูก ผมเลยขอถือโอกาสอธิบายในแบบของผมเองไว้ในบทความนี้ว่าทำไมสมิทชาร์ทมัน "ทำงาน" ให้เราได้ ช่วยเราแมทช์อิมพิแดนซ์ได้ 

ทั้งๆ ที่สมิทชาร์ทเองนั้นมีที่มาจาก "ทฤษฎีสายนำสัญญาณ" เส้นต่างๆ มาจากสมการของสายนำสัญญาณที่อธิบายว่า "ถ้าต่อโหลดอิมพิแดนซ์ค่าหนึ่ง ( ZL ) เข้าที่ด้านหนึ่งของสายนำสัญญาณแล้ว (1) จะเกิดการสะท้อนกลับขนาดและเฟสเป็นเท่าไร  (2) และในระยะทางตามความยาวของสายนำสัญญาณนั้น สัมประสิทธิการสะท้อนกลับและเฟสจะเปลี่ยนไปเป็นอะไร  (3) รวมถึงว่าเราจะมองจากอีกด้านหนึ่งเห็นอิมพิแดนซ์เป็น Zin อะไร ที่ทั้งหมดนั้นขึ้นกับความต้านทานเฉพาะตัว ( Z0 ) ของสายนำสัญญาณนั้นและระยะ (ความยาว) ของสายนำสัญญาณนั้น"  ซึ่งดูแล้วไม่ได้เกี่ยวอะไรเลยสักนิดเดียวกับการแมทช์อิมพิแดนซ์สักนิดเดียว (จริงๆ นะเอ้า)!!  แต่.. 

(I) การรวมระนาบ z และ y เข้าด้วยกัน

  • ไม่รู้จะเรียกว่าเป็นความชาญฉลาดหรือบังเอิญของ zy-chart คือมันแสดงทั้ง Impedance plane (ระนาบ z = r + jx) และ Admittance plane (ระนาบ y = g + jb) ไว้บนชาร์ตเดียวกัน
  • ระนาบ z ประกอบด้วย:
    • วงกลมค่าความต้านทานคงที่ (constant resistance circles, r-circles): วงกลมเหล่านี้มีจุดศูนย์กลางอยู่บนแกนนอน (แกน x=0, b=0)
    • เส้นโค้งค่า reactance คงที่ (constant reactance curves, x-curves): ส่วนโค้งเหล่านี้แสดงค่าความต้านทานจินตภาพ x
  • ระนาบ y ประกอบด้วย:
    • วงกลมค่าความนำไฟฟ้าคงที่ (constant conductance circles, g-circles): วงกลมเหล่านี้มีจุดศูนย์กลางอยู่บนแกนนอน (แกน x=0, b=0)
    • เส้นโค้งค่า susceptance คงที่ (constant susceptance curves, b-curves): ส่วนโค้งเหล่านี้แสดงค่าความนำไฟฟ้าจินตภาพ b

แต่นั่นยังไม่ได้ช่วยอะไรนักถ้าไม่มีความมหัศจรรย์ของ zy-chart อีกหนึ่งอย่างคือ 

(II) ทุกจุดบนชาร์ตสามารถเป็นได้ทั้งค่า z และค่า y พร้อมๆ กัน โดยที่จุดใดๆ บนชาร์ท:

  • ค่า z จะอ่านได้จากเส้น r-circles และ x-curves (รวมกันเป็น z = r + jx)
  • ค่า y จะอ่านจากเส้น g-circles และ b-curves (รวมกันเป็น y = g + jb)
  • โดย y = 1/z , z = 1/y เป็นจริงทุกจุดบนสมิทชาร์ท (อย่าลืมว่า z, y เป็นจำนวนเชิงซ้อน)

ที่สำคัญที่สุดคือข้อสุดท้ายนั่นที่ว่า ค่า z และค่า y ณ จุดเดียวกันบนชาร์ตมีความสัมพันธ์กันโดย y=1/z หรือ z = 1/y เสมอ การรู้ค่าใดค่าหนึ่ง (คือ จุดจุดหนึ่งบนชาร์ท)  ทำให้เรารู้ค่าอีกค่าหนึ่งได้ทันทีโดยไม่ต้องคำนวณเลย อ่านจากเส้นบนชาร์ทเอาได้เลย 


แล้วช่วยแมทช์ได้อย่างไร 

ด้วยความรู้ว่า: 

  • ผลของการต่ออนุกรมคือเอา z มาบวกกันคือ  total = z1 + z2  =  ( r1 + r2 ) +  j( x1 + x2 ) นั่นคือถ้ามีเฉพาะรีแอคแตนซ์ x เพิ่มหรือลดเข้ามา ก็สามารถเอาเฉพาะ x ที่เพิ่มหรือลดนั้นมารวมเข้าไปเฉยๆ ก็ได้โดย r ไม่เปลี่ยนแปลง และ
  • ผลของการขนานคือการเอา y มาบวกกันคือ  ytotal = y1 + y2  = ( g1 + g2 ) + j( 1 + b2 )  นั่นคือถ้ามีเฉพาะซัสเซปแตนซ์ b เพิ่มหรือลดเข้ามา ก็สามารถเอาเฉพาะ b ที่เพิ่มหรือลดนั้นมารวมเข้าไปเฉยๆ ก็ได้โดยที่ g ไม่เปลี่ยนแปลง 

รูปที่ 2 เมื่อนำอิมพิแดนซ์มาอนุกรมกัน
อิมพิแดนซ์รวมจะเกิดจากการบวกกัน
ของอิมพิแดนซ์ต่างๆ ที่มาอนุกรมกันนั้น
และเมื่อสิ่งที่นำมารวมไม่มีส่วนของ r
r2 = 0 ดังในภาพ) ผลรวมก็คือ r1 และ
x1 เดิมที่รวม x2 เข้าไปเท่านั้นเอง


รูปที่ 3 ในการขนานกัน เราทำงานกับ
แอดมิตแตนซ์ง่ายกว่า โดยแอดมิตแตนซ์
รวมหลังการขนานจะเกิดจากการบวกกัน
ของแอดมิตแตนซ์ต่างๆ ที่มาขนานกัน
และเมื่อสิ่งที่นำมารวมไม่มีส่วนของ g
g2 = 0 ดังในภาพ) ผลรวมก็คือ g1 และ
1 เดิมที่รวม b2 เข้าไปเท่านั้นเอง

  • โดยอุปกรณ์ทางไฟฟ้าที่มีแต่ x หรือ b  ก็คือ L หรือ C นั่นเอง เอ๊ะ ยังไง อ่านบรรทัดต่อไป
  • ตัวเหนี่ยวนำ L มีรีแอคแตนซ์เป็น +jxL , มีซัสเซปแตนซ์เป็น -jbL (เพราะ 1/jxL = -jbL ) 
  • ตัวเก็บประจุ C มีรีแอคแตนซ์เป็น -jxC , มีซัสเซปแตนซ์เป็น +jbC (เพราะ 1/(-jxC) = +jbC ) 
  • ในการแมทช์อิมพิแดนซ์ เราจะพยายามไม่ให้มีการสูญเสียกำลังไฟฟ้า เรารู้ว่าเมื่อมีกระแสไฟฟ้าไหลผ่านความต้านทานไฟฟ้า (r, g) จะมีการสูญเสียเป็นความร้อน ดังนั้นอุปกรณ์ที่อยู่ในวงจรแมทชิ่งจะไม่ใช้ resistor (มี r) และมีแต่ L และ/หรือ C ซึ่งในทางไฟฟ้าไม่มีการสูญเสียกำลัง (แต่ในความเป็นจริงย่อมมี parasitic resistance หรือความต้านทานแฝงปนอยู่ด้วย แต่ถือว่าตัดทิ้งได้) 
  • เมื่อเรานำตัวเหนี่ยวนำ L หรือตัวเก็บประจุ C มาต่ออนุกรมหรือขนานกับอิมพิแดนซ์(หรือแอดมิตแตนซ์) ตั้งต้น ผลที่ได้จะเป็นจุดที่เปลี่ยนไปบนสมิทชาร์ท ดูรูปที่ 4 และ 5
รูปที่ 4 ถ้าเรานำตัวเหนี่ยวนำ (L) หรือ
ตัวเก็บประจุ (C) มาต่อ อนุกรม กับ
อิมพิแดนซ์ตั้งต้น อิมพิแดนซ์รวมจะ
เคลื่อนที่ไปตามเส้นวงกลม r คงที่
(เพราะเราไม่ได้เพิ่มหรือลด r เราเพิ่ม
หรือลด x เท่านั้น)


รูปที่ 5 ถ้าเรานำตัวเหนี่ยวนำ (L) หรือ
ตัวเก็บประจุ (C) มาต่อ ขนาน กับ
แอดมิตแดนซ์ตั้งต้น แอดมิตแตนซ์รวม
จะเคลื่อนที่ไปตามเส้นวงกลม g คงที่
(เพราะเราไม่ได้เพิ่มหรือลด g เราเพิ่ม
หรือลด b เท่านั้น)


นั่นทำให้เราสามารถต่อขนานหรืออนุกรม L หรือ C เพื่อให้ได้ค่า impedance หรือ admittance (ส่วนกลับของ impedance) ขยับไปมาตามเส้นวงกลม g หรือ r  (นั่นคือ g หรือ r มีค่าคงที่) 

  • การเพิ่มส่วนประกอบแบบอนุกรม: เช่น ตัวเก็บประจุหรือตัวเหนี่ยวนำ จะทำให้จุดเคลื่อนที่ไปตาม r-circles
  • การเพิ่มส่วนประกอบแบบขนาน: เช่น ตัวเก็บประจุหรือตัวเหนี่ยวนำ จะทำให้จุดเคลื่อนที่ไปตาม g-circles
  • ถ้าเพิ่มความจุไฟฟ้า (ไม่ว่าต่อขนานหรืออนุกรม) จุดจะวนเพื่อลงไปทางด้านล่างของสมิทชาร์ท 
  • ถ้าเพิ่มความเหนี่ยวนำ (ไม่ว่าต่อขนานหรืออนุกรม) จุดจะวนเพื่อขึ้นไปด้านนบนของสมิทชาร์ท 

เราจึงมีทางเลือกต่อ L หรือ C เป็นแบบ อนุกรม หรือ ขนาน (รวมเป็น 4 ทางเลือก) และยังทำได้หลายครั้ง/ขั้น จึงมี degree of freedom สูงมาก และหาทางทำไปจนได้ผลเป็น z=1+j0 และ/หรือ y=1+j0 (ที่จุด center) ซึ่งคือ "matched" นั่นเอง


ตัวอย่างการแมทช์อิมพิแดนซ์

สมมติว่าเราต้องแมทช์อิมพิแดนซ์จาก 25 + j5 Ω ไปเป็น 50 Ω (อ่านถึงตรงนี้งงงไหมครับ มันดูต่างกันเยอะมาก ไม่น่าจะทำได้ด้วยซ้ำ แต่เชื่อสิครับว่าเราทำได้)  เราจะทำตามลำดับดังนี้ (ดูรูปที่ 6 ประกอบ)

  1. เปลี่ยน 25 + j5 Ω เป็นค่าเทียบ (Normalized) เพื่อให้รู้ว่าอิมพิแดนซ์นี้อยู่ตรงไหนบนสมิทชาร์ท เราหาร  25 + j5 Ω ด้วย  Z0 = 50 Ω ได้เป็น z = 0.5 + j0.1 (ไม่มีหน่วย เพราะหน่วย Ω หารกันไปแล้ว) 
  2. กากบาท z = 0.5 + j0.1 ลงไปเป็นจุด 
  3. เราจะพยายามต่อ L หรือ C แบบขนานหรืออนุกรมหรือผสมกันหลายขั้น เพื่อให้ไปจบที่จุดศูนย์กลางของสมิทชาร์ท  (จริงๆ แล้วขั้นตอนนี้เรามี "ทางเลือก" มากกว่า 1 วิธีเสมอ)  ซึ่งการต่อ L หรือ C จะเปลี่ยนเฉพาะรีแอคแตนซ์ (x) หรือซัสเซ็ปแตนซ์ (b) เท่านั้นโดยไม่เปลียนรีซีสแตนซ์ (r) และคอนดัคแตนซ์ (g)   ดังนั้นเมื่อต่อ L หรือ C ไม่ว่าจะแบบขนานหรืออนุกรม จะทำให้ r คงที่ (กรณีเอา L หรือ C ไปต่ออนุกรม) และ g คงที่ (กรณีเอา L หรือ C ไปต่อขนาน)  ย้อนกลับไปดูรูปที่ 4 และ 5 อีกที
  4. ในตัวอย่างนี้จะ: 
    1. ต่ออุปกรณ์ให้อิมพิแดนซ์เปลี่ยนจาก  ไปตามเส้นสีแดงถึงจุด  ก่อน   นั่นคือเกิดการเคลื่อนที่ไปตามเส้นวงกลม "r คงที่" ในทิศทาง "เพิ่ม x"   ต้องต่อด้วย L หรือตัวเหนี่ยวนำ  แบบอนุกรม   อิมพิแดนซ์หลังการอนุกรมจะอยู่ที่จุด   ซึ่งอ่านได้ z = 0.5 + j0.5 และ y = 1.0 - j1.0 
    2. จากนั้นต่ออุปกรณ์ให้แอดมิตแตนซ์ y = 1.0 - j1.0  ที่จุด  เปลี่ยนไปตามเส้นสีน้ำเงินไปถึงจุด    เส้นสีน้ำเงินเป็นเส้น "g คงที่" ในทิศทาง "เพิ่ม b"   ต้องต่อด้วย C หรือตัวเก็บประจุแบบขนานเข้าไป   แอดมิตแตนซ์หลังการขนานจะอยู่ที่จุด  ซึ่งอ่านได้ z = 1 + j0, y = 1 + j0 
    3. จุด  คือจุดศูนย์กลางของสมิทชาร์ท เป็นจุดที่ match นั่นเอง  
  5. คราวนี้เรามาดูว่าจะต้องเลือกใช้อุปกรณ์ค่าเท่าไร 
    1. ในขั้นตอน (4.1) เราเพิ่ม x จาก +j0.1 ไปเป็น +j0.5 นั่นคือ +j0.4   และ De-normalize ได้เป็น X = 0.4(50 Ω) = 20 Ω    เราก็คำนวณว่าต้องใช้ L ขนาดเท่าไรจาก  XL = 2 π f L  เช่นที่ความถี่ 145MHz    L = 20 Ω / ( 2  3.14  145,000,000 ) = 0.02 µH
    2. ในขั้นตอน (4.2) เราเพิ่ม b จาก -j1.0 ไปเป็น j0  นั่นคือ +j1.0  เรา De-normalize ได้เป็น B = 1.0(0.02 ) = 0.02    เราก็คำนวณว่าต้องใช้ C ขนาดเท่าไรจาก BC = 2 π f C  เช่นที่ความถี่ 145MHz    C = 0.02  / ( 2  3.14  145,000,000 ) = 21.95 pF 

รูปที่ 6 ตัวอย่างการแมทช์จากอิมพิแดนซ์
 Z = 25 + j5 Ω  (z = 0.5 + j0.1) ไปเป็น
Z = 50 + j0 Ω  (z = 1 + j0, y = 1 + j0) 

เมื่อต่ออุปกรณ์จริงๆ นะเป็นไปตาม รูปที่ 7 โดยขั้นแรก (a) เราต่อตัวเหนี่ยวนำ Z = +j20 Ω (z = jx = +j0.4) อนุกรมเข้ากับอิมพิแดนซ์ตั้งต้น Z = 25+j5 Ω   (z = 0.5+j0.1) ในการต่ออนุกรมเราเอา z บวกกันได้เลย ทำให้ได้ z = 0.5+0.5 → ตรงกับ y = 1-j1.0 คือจุด ② ในรูปที่ 6  จากนั้น (b) เราต่อขนาน y = 1-j1.0  ด้วยตัวเก็บประจุซึ่งมี y = jb  = +j1.0  ในการต่อขนานเราเอา y บวกกันได้เลย   ได้จุด  y = 1+j0 = 1, z = 1, Z = 50 Ω นั่นเอง  

รูปที่ 7 แสดงการต่ออุปกรณ์จริงหลัง
จากที่เราคำนวณบน smithchart ในขั้น
(a) เราต่อตัวเหนี่ยวนำ 0.02 μH อนุกรม
เข้าไปก่อน จากนั้น (b) ต่อตัวเก็บประจุ
ขนาด 21.95pF ขนานเข้าไปอีกที

อย่างไรก็ตาม จะเห็นว่าในการคำนวณหาค่าตัวเหนี่ยวนำ (L, inductor) และตัวเก็บประจุ (C, capacitor) ขึ้นอยู่กับความถี่ f (ซึ่งหน่วยของความถี่คือ Hz, s-1 , 1/s , ต่อวินาที  ได้หมด เป็นหน่วยเดียวกัน) หรือ ω ( หน่วยเป็น rad/s หรือ เรเดียนต่อวินาที เพราะ ω = 2 π f  และ π มีหน่วยเป็น rad ) ด้วย ดังนั้นการแมทช์แบบนี้จะเป็นไปตามนี้ที่ความถี่ที่คำนวณเท่านั้น  เมื่อความถี่ผิดไป ทุกอย่างก็เปลี่ยนไป เปลี่ยนมากหรือน้อยแค่ไหนก็ขึ้นกับความถี่เปลี่ยนไปแค่ไหนด้วย


นี่ยังไม่นับการใช้สายนำสัญญาณมาช่วยในการแมทช์อัก

  1. เปลี่ยนอิมพิแดนซ์ด้วยความยาวของสายนำสัญญาณ
  2. หา z, y ของสตับแบบต่างๆ (short, open) เพื่อใช้แทน L, C component ในการแมทช์อีกด้วย
ทั้งหมดนี้จึงทำให้ zy-chart กลายเป็นเครื่องมือที่ทรงพลังและใช้งานง่าย เพราะมันรวมข้อมูลที่ซับซ้อนและกระบวนการคำนวณที่ยุ่งยากทั้งหมดไว้ในภาพกราฟิกภาพเดียว ทำให้เราสามารถ "วางแผน" เส้นทางการแมทช์ได้ด้วยตาและออกแบบวงจรได้อย่างเป็นขั้นเป็นตอนและมีประสิทธิภาพครับ


สรุป
  1. จริงๆ แล้วสมิทชาร์ทเป็นแผนภาพวงกลมขนาดรัศมี 1 หน่วย มีกำเนิดมาจากสมการอิมพิแดนซ์ของสายนำสัญญาณ ตำแหน่งต่างๆ บนวงกลมบอกสัมประสิทธิการสะท้อนกลับที่ตำแหน่งต่างๆ บน (ตามความยาวของ) สายนำสัญญาณ แค่นั้น! ไม่ได้เกี่ยวอะไรทั้งสิ้นกับการแมทช์อิมพิแดนซ์
  2. แต่ในขณะเดียวกัน เราสามารถ map (จับคู่) ระหว่างสัมประสิทธิการสะท้อนกลับกับอิมพิแดนซ์และแอดมิตแตนซ์ที่ปรากฏ ที่เป็นผลจากโหลดที่ต่อกับปลายสายนำสัญญาณได้ด้วย
  3. ยังไม่พอ จากข้อ (2) เมื่อเราสร้างสมิทชาร์ทแบบ zy-chart เราสามารถอ่านค่าของ z และ y ที่เป็นเป็นส่วนกลับของกันและกันได้ทันทีบนสมิทชาร์ทโดยไม่ต้องคำนวณ (y = 1/z , z = 1/y ซึ่งทั้ง z และ y เป็นจำนวนเชิงซ้อนได้ทั้งคู่ ถ้าคำนวณจะหารกันยากนิดหนึ่ง) 
  4. ด้วยความที่สมิทชาร์ทประกอบไปด้วยวงกลม r และ g คงที่อยู่บนชาร์ทด้วย ทำให้เราสามารถใช้ตัวเก็บประจุ (C), ตัวเหนี่ยวนำ (L) ต่ออนุกรมและ/หรือขนานเข้ากับอิมพิแดนซ์เริ่มต้น (ที่ต้องการแมทช์ไปเป็นค่าอื่น) และสามารถทำหลายขั้นตอนจนสุดท้ายได้อิมพิแดนซ์ที่ต้องการได้   ข้อ (4) นี้แหละที่เรา "hack" เอาสมิทชาร์ทมาใช้งานนอกเหนือไปจากวัตถุประสงค์เริ่มต้นของมัน (ในข้อ 1)
ด้วยความมหัศจรรย์ของมัน ทำให้มีประโยชน์มากมาย และโดยส่วนตัวยกให้เป็นความอัจฉริยะของผู้คิดและดัดแปลงมันมาใช้งานจริงๆ ครับ

73 DE HS0DJU (อ๊อด/Jason)


© 2025 จิตรยุทธ จุณณะภาต สงวนลิขสิทธิ์
อนุญาตให้เผยแพร่เพื่อการศึกษาไม่แสวงหากำไร โดยต้องให้เครดิตผู้เขียน ห้ามคัดลอก ดัดแปลง หรือใช้ในเชิงพาณิชย์โดยไม่ได้รับอนุญาต

วันพฤหัสบดีที่ 9 ตุลาคม พ.ศ. 2568

กว่าจะเป็น E24CY Bangkok Repeater Signal Monitor ตอนที่ 3

โดย E25VBE (Pat Jojo Sadavongvivad) 

ตอนที่ 3 : เบื้องหลัง E24CY Repeater Monitor: จาก Code สู่ข้อมูลบน Dashboard

ในสองตอนที่ผ่านมา เราได้เห็นถึงประโยชน์และวิธีการใช้งาน E24CY SDR Monitor Dashboard ในตอนสุดท้ายนี้ เราจะมาเจาะลึกถึงเบื้องหลังทางเทคนิค สำหรับผู้ที่สนใจว่าข้อมูลที่เราเห็นบนหน้าจอนั้นมีที่มาอย่างไร และสะท้อนถึงเส้นทางการพัฒนาอันยาวนานและท้าทาย

ภาพรวมสถาปัตยกรรมของระบบ

ระบบทั้งหมดทำงานเชื่อมต่อกันเป็นลูกโซ่ โดยมีองค์ประกอบหลัก 4 ส่วน:

  1. SDR# Plugin (ภาครับข้อมูล): โปรแกรมเสริม (Plugin) ที่ทำงานร่วมกับโปรแกรม SDR# บนคอมพิวเตอร์ภาครับของ E24CY Repeater
  2. การประมวลผล (VB.NET): โค้ดที่อยู่ใน Plugin ทำหน้าที่วิเคราะห์สัญญาณวิทยุที่รับมาแบบเรียลไทม์
  3. MQTT Broker (ตัวกลางส่งข้อมูล): เซิร์ฟเวอร์ที่ทำหน้าที่รับข้อมูลจาก Plugin และกระจายไปยังผู้ใช้ทุกคน
  4. Web Dashboard (ส่วนแสดงผล): หน้าเว็บที่ผู้ใช้เปิดดู ซึ่งจะ "สมัครรับข้อมูล" จาก MQTT Broker และนำมาแสดงผล


SDR# Plugin: การต่อสู้อันยาวนานเบื้องหลังความสำเร็จ

หัวใจของระบบคือ SDR# Plugin ที่เขียนด้วยภาษา VB.NET แต่กว่าจะมาถึงจุดนี้ได้ ผู้พัฒนาต้องเผชิญกับความท้าทายทางเทคนิคอย่างมหาศาล ที่ต้องใส่ความพยายามซ้ำแล้วซ้ำอีกวันละ 3-4 ชั่วโมงต่อเนื่องทุกวันอยู่หลายเดือนกว่าจะสำเร็จไปทีละขั้น ๆ ไม่ได้เขียนปุ๊บออกปั๊บเลยแม้แต่จุดเดียว

  • ภารกิจตามหา VisualSNR: การดึงค่าความแรงสัญญาณ หรือ VisualSNR property ออกจาก SDR# นั้นไม่ใช่เรื่องง่าย แม้จะได้รับความช่วยเหลือจาก AI ถึง 3 ตัว แต่ E25VBE ต้องทุ่มเทเวลา "เล่นเอาเถิด" กับโค้ดตั้งแต่ต้นเดือนกรกฎาคม 2024 ในการทดลองหลายร้อยครั้ง กว่าจะประสบความสำเร็จในช่วงปลายเดือนธันวาคม 2024 เป็นเวลาร่วมครึ่งปี เพียงเพื่อให้ได้ข้อมูลพื้นฐานที่สุดชิ้นนี้ออกมาหาค่าเฉลี่ย เพื่อสร้างเป็นเสียงบี๊บท้ายคีย์ และหลังจากนั้นอีกหนึ่งเดือน (14 มกราคม 2025) จึงสามารถเข็นออกมาเป็น Dashboard ที่มีกราฟเคลื่อนไหวสวยงามบนเว็บได้สำเร็จเป็นครั้งแรก
  • การถอดรหัส FFT Bins: ความท้าทายระลอกถัดมา คือการอ่านค่า FFT Bins (ผลลัพธ์จากการแปลงสัญญาณวิทยุเป็นข้อมูลสเปกตรัมความถี่) ออกจาก SDR# โดยตรง ซึ่งเป็นงานที่ซับซ้อนยิ่งกว่า ที่ E25VBE ต้องใช้เวลาอีกเกือบเต็ม 5 เดือนในการลองผิดลองถูก จนกระทั่งสามารถอ่านค่าออกมาได้จริงในวันที่ 5 มิถุนายน 2025 และเมื่ออ่านได้แล้ว ก็ใช้เวลาอีก 4 วันในการพัฒนาสูตรคำนวณเพื่อแปลงข้อมูล Bins ดิบๆ เหล่านั้นให้กลายเป็นค่า Occupied Bandwidth และ Carrier Frequency ที่เราเห็นกันบน Dashboard  เป็นเส้นกราฟสีเขียว(ความแรง) เหลือง(ความกว้าง) และแดง(ความถี่) อย่างในปัจจุบันนี้

จาก FFT Bins สู่ข้อมูลที่มีความหมาย

เมื่อได้ข้อมูล FFT Bins มาแล้ว โค้ดในคลาส CarrierDetector จะเริ่มทำงาน:

  • การค้นหา Carrier Frequency: โค้ดจะใช้อัลกอริทึมหลายวิธี เช่น 1. Peak Detection (การหา Bin ที่มีพลังงานสูงสุด) และ 2. Energy Centroid (การหาศูนย์กลางพลังงานของสัญญาณ) เพื่อค้นหาความถี่ของคลื่นพาหะ (Carrier) ที่แท้จริง และ 3. Symmetrical Analysis หาความสมมาตรจากขอบทั้งสองด้านว่าศูนย์กลางอยู่ที่ความถี่ใด
  • การคำนวณ Occupied Bandwidth (OBW): หลังจากพบ Carrier แล้ว โค้ดในฟังก์ชัน CalculateModulationWidth() จะทำการวัดความกว้างของสัญญาณ โดยจะหาจุดที่พลังงานของสัญญาณลดลงจากจุดสูงสุด (Peak) มาอยู่ที่ระดับที่กำหนด แล้วคำนวณระยะห่างออกมาเป็นค่าความกว้างในหน่วย kHz 
  • การคำนวณ Frequency Deviation: คือการนำค่า Carrier Frequency ที่ตรวจจับได้ มาลบกับความถี่เป้าหมาย (145.075000 MHz)


MQTT และ Web Dashboard: เทคโนโลยีเบื้องหลังการส่งข้อมูล

หลังจากประมวลผลข้อมูลได้แล้ว Plugin จะทำหน้าที่เป็นผู้ส่ง (Publisher) ส่งข้อมูล (SNR, OBW, Freq) รวมถึงเลือกได้ว่าจะให้ส่งหรือไม่ส่งแถบความถี่ (Spectrum bins) ไปยังเซิร์ฟเวอร์กลาง (MQTT Broker) ผ่านโปรโตคอล MQTT ที่ฝั่งผู้ใช้ เมื่อเปิดหน้าเว็บ Dashboard (index.html) เบราว์เซอร์จะเชื่อมต่อกับ PHP Bridge (DashboardMQTTBridge.php) ซึ่งทำหน้าที่รับข้อมูลจาก MQTT Broker แล้วสตรีมมายังเบราว์เซอร์ของผู้ใช้แบบเรียลไทม์ จากนั้นโค้ด JavaScript ในหน้าเว็บจะนำข้อมูลไปวาดเป็นกราฟและอัปเดตค่าต่างๆ บนหน้าจอ

ล่าสุดเราได้ติดตั้ง MQTT server เฉพาะสำหรับ E24CY Repeater Monitor โดยเฉพาะบน server เฉพาะกิจที่เราดูแลได้ 100% เพื่อความเสถียรสูงสุดของระบบนี้ครับ


อนาคตของโครงการ (The Future of the Project)

การเดินทางของ E24CY SDR Monitor ยังไม่สิ้นสุด โดยผู้พัฒนายังคงวางแผนพัฒนาความสามารถใหม่ๆ อย่างต่อเนื่อง ได้แก่:

  • การถอดรหัสโทน CTCSS: เพื่อให้วิเคราะห์เสียงเป็นความถี่ของ CTCSS โทนที่ผู้ใช้ส่งเข้ามาได้ เพื่อส่งความถี่ที่ได้ให้ส่วนอื่น ๆในระบบ ที่จะเป็นพื้นฐานให้การพัฒนาเรื่องอื่น ๆ ต่อไป (ทำเสร็จแล้ว)
  • การส่งข้อมูลพิกัด GPS: พัฒนาให้ Dashboard สามารถรับและส่งต่อข้อมูล GPS จากโทรศัพท์มือถือของผู้ใช้ผ่าน MQTT
  • การสร้าง Heat Map: นำข้อมูลพิกัด GPS และ SNR มาประกอบกันเพื่อสร้างแผนที่แสดงความแรงของสัญญาณ (Heat Map) ในพื้นที่ต่างๆ ซึ่งจะเป็นประโยชน์อย่างยิ่งในการวางแผนและพัฒนาระบบเครือข่าย Repeater ต่อไปในอนาคต
  • Android version: โดยการ port signal monitor plugin code นี้ให้ไปรันได้บนมือถือ Android ร่วมกับ USB RTL SDR ราคาประหยัด (700 บาท) และสร้างระบบเว็บหลังบ้าน เพื่อให้เพื่อนนักวิทยุสมัครเล่น ทุกคน สามารถมี signal monitor dashboard บนเว็บเป็นของตนเอง รายงานสภาพสัญญาณที่รับได้ online (ทำไปราว 60%)
  • TDoA/MLAT: Time Difference of Arrival Multilateral ระบบวิเคราะห์ความต่างของเวลาที่หลาย ๆ สถานีได้รับคลื่น (squelch เปิด) ในเวลาแตกต่างกัน เพื่อนำไป triangulate หาตำแหน่งของแหล่งกำเนิดสัญญาณ โดยการใช้ SDR ที่มี sampling rate ที่เพียงพอ เช่น 61.44 Mega-Sample Per Sec (MSPS) ร่วมกับ FPGA Logic ในการ sync สัญญาณนาฬิกากับดาวเที่ยม เพื่อจับเวลาที่คลื่นวิทยุเดินทางถึงแต่ละสถานี เพื่อประมวลผลเป็นระดับ sub-sample แล้วส่งให้ server ส่วนกลางประมวลออกมาเป็นตำแหน่ง lat/lon ซึ่งเป็นเทคโนโลยีชั้นสูงแบบเดียวกับที่ใช้ในเรดาร์ทางทหาร (ทำไปราว 20%)

บอร์ดที่เห็นนี้คือ Pluto SDR ที่มี RF chip ที่ต่อกับ FPGA ให้ผู้พัฒนาสามารถ “ซอย” คลื่นวิทยุออกเป็น 61.44 ล้านชิ้นย่อยเพื่อนำไปประมวลผลต่อได้ครับ ชิปที่มี heat sink เล็กคือ AD9363 ส่วนชิปที่มี heat sink ใหญ่กว่า คือ Zync 7020 ครับ

  • IC-9700 Signal Generator คือโปรแกรมที่เชื่อมต่อทาง LAN เพื่อใช้งาน 9700 เป็น signal generator เพื่อใช้สร้างสัญญาณรูปแบบต่าง ๆ ประกอบการศึกษาเรื่องคลื่นวิทยุ ทั้งเชิงความถี่  modulation ต่าง ๆ ทั้ง FM AM DV USB LSB CW CW-R RTTY RTTY-R (ทำไปราว 50%)
  • Antenna Energy-flow Visualizer: ระบบแสดงรูปแบบการแพร่กระจายคลื่นของสายอากาศใด ๆ แบบ real time ที่ใช้ USB RTL SDR 12 ตัว ต่อกับ Windows เพื่ออ่านข้อมูลไปส่งให้ web browser ทำการ render ภาพแสดงระดับพลังงานที่แพร่กระจายออกไปในแต่ละองศารอบ ๆ ตัว ในรูปคือเมื่อหันสายอากาศ Yagi 5E ไปหาทิศ 9 นาฬิกา หน้าจอก็จะแสดงระดับพลังงานที่แพร่กระจายไปในทิศนั้น ระบบนี้ได้นำไปแสดงในงาน Bangkok Radio Fest ที่ห้างเซียร์ รังสิต (เสร็จแล้ว)

ในรูปนี้จะเห็นว่า เมื่อคุณน้องชุดขาวหัน Yagi 5E มาทางซ้ายของโต๊ะ จะเห็นว่าแถบพลังงานที่ 9 นาฬิกาบนจอเปลี่ยนเป็นสีบานเย็น หมายถึงมีพลังงานความเข้มสูงบีมไปในทิศนั้นครับ

การมีอุปกรณ์ชนิดนี้ ช่วยให้นักวิทยุ “เห็น” สิ่งที่ปกติมองไม่เห็น เปิดโลกของคลื่นวิทยุ และลองนึกภาพตามว่า ถ้าเราเริ่มต้นด้วยการนำสายอากาศรอบตัวเช่น dipole, quarter wave, half wave มาตั้งตรงกลาง แล้วค่อย ๆ เพิ่ม element ที่ 2 3 4 5 ให้เห็นความเปลี่ยนแปลงในรูปแบบการแพร่กระจายคลื่น ความเข้มของคลื่นวิทยุที่แพร่กระจายออกไปในแต่ละทิศ จะช่วยให้นักวิทยุเข้าใจการทำงานของสายอากาศได้ดีกว่าการจินตนาการอย่างเดียวมากครับ

เรื่องราวทั้งหมดนี้สะท้อนให้เห็นถึงจิตวิญญาณของนักวิทยุสมัครเล่น ที่ไม่ได้หยุดอยู่แค่การสื่อสาร แต่คือการเรียนรู้ ทดลอง และสร้างสรรค์สิ่งใหม่ๆ เพื่อพัฒนาวงการและแบ่งปันความรู้ให้แก่เพื่อนสมาชิกเพื่อยกระดับวงการต่อไป


ส่งท้าย

นอกเหนือจากสิ่งที่เขียนไป ขอ “เดา” คำถามอื่น ๆ ที่อาจจะมีผู้ต้องการถาม และตอบไว้ให้ล่วงหน้าก่อนเลยดังนี้

Q: คนรุ่นใหม่หลายท่าน ทั้งเกมเมอร์และ “สายไอที” มักจะคุ้นเคยกับ Dashboard ข้อมูลเรียลไทม์จากเกม หรือโปรแกรม Monitoring ในกรณีที่ท่านใดสงสัยว่าจะนำข้อมูลจาก Dashboard นี้ไปแสดงผลบน Stream Deck หรือจอเล็กๆ บนเคสคอมพิวเตอร์ได้หรือไม่?

A: ทำได้อย่างแน่นอนครับ หากมีผู้สนใจร้องขอมา E25VBE ยินดีที่จะพัฒนา API (Application Programming Interface) หรือ Webhook เพื่อให้ท่านที่สนใจสามารถดึงข้อมูลแบบเรียลไทม์ไปสร้างสรรค์โปรเจกต์ของตนเองต่อได้ เช่น การสร้าง Widget แสดงค่า SNR, Occupied Bandwidth, หรือ Carrier Frequency หรือแม้กระทั่งการทำให้ไฟ RGB บนคีย์บอร์ดของท่านเปลี่ยนสีตามความแรงของสัญญาณที่รับได้

Q: ระบบทั้งหมดนี้ใช้คอมพิวเตอร์สเปกแรงแค่ไหน? สามารถใช้ Raspberry Pi ทำได้หรือไม่?

A: หัวใจหลักของภาครับคือ Software-Defined Radio (SDR) ซึ่งมีให้เลือกหลากหลาย ตั้งแต่ Airspy R2/Mini, USB RTL-SDR ราคาประหยัด ไปจนถึงรุ่นประสิทธิภาพสูงอย่าง Ettus Research B210 ทุกท่านสามารถสร้างภาครับและส่วนวิเคราะห์สัญญาณของตนเองได้ โดยแนะนำว่าสเปกคอมพิวเตอร์ขั้นต่ำควรเป็น Raspberry Pi 4 เพื่อให้การประมวลผลข้อมูลมีความลื่นไหลและไม่สะดุดครับ

Q: "ถ้าผมอยากจะทำโปรเจกต์ IoT ให้หลอดไฟที่บ้านเปลี่ยนสีตามค่า SNR หรือให้พัดลมหมุนเร็วขึ้นเมื่อมีคนใช้ Repeater ผมต้องเริ่มจากตรงไหน?"

A: ท่านสามารถเริ่มต้นได้จากเทคโนโลยี MQTT ที่กล่าวถึงในตอนที่ 3 ครับ เทคโนโลยีนี้คือหัวใจสำคัญของ Internet of Things (IoT) ซึ่งหมายความว่านักวิทยุสมัครเล่นรุ่นใหม่ที่มีความรู้ด้าน Arduino, ESP32 หรือ Raspberry Pi สามารถ "ฟัง" (Subscribe) ข้อมูลจาก MQTT Server ของ E24CY เพื่อนำไปสร้างโปรเจกต์ที่เชื่อมโลกของวิทยุสมัครเล่นเข้ากับอุปกรณ์ในชีวิตประจำวันได้ เช่น การสร้างไฟแสดงสถานะออนไลน์ของ Repeater หรือการส่งข้อความแจ้งเตือนผ่าน LINE เมื่อมีสัญญาณเข้ามา

Q: "โค้ดทั้งหมดนี้เขียนด้วยภาษาอะไรบ้างครับ? ผมเรียน Python/JavaScript อยู่ จะเอาไปต่อยอดได้ไหม?"

A: โครงการนี้เป็นการผสมผสานเทคโนโลยีหลากหลายภาษา ตั้งแต่ VB.NET ผสมกับ C# (CTCSS Decoder และ Antenna Visualizer) สำหรับ SDR# Plugin ที่ทำงานบน Windows, ภาษา PHP สำหรับสร้าง Bridge บนเว็บเซิร์ฟเวอร์, ไปจนถึง JavaScript สำหรับการแสดงผลบนหน้าเว็บ นี่แสดงให้เห็นว่าความรู้ด้านการเขียนโปรแกรมที่น้องๆ เรียนในห้องเรียน ไม่ว่าจะเป็น Python, JavaScript หรือภาษาอื่นๆ ล้วนสามารถนำมาประยุกต์ใช้กับกิจการวิทยุสมัครเล่นได้อย่างสร้างสรรค์ครับ

Q: ทำไมต้องลงทุนทำอะไรที่ซับซ้อนขนาดนี้ ในเมื่อแค่คุยกันเฉยๆ ก็ได้?

A: หัวใจของกิจการวิทยุสมัครเล่นไม่ใช่แค่ 'การสื่อสาร' แต่คือ 'การทดลองและเรียนรู้' (Experimentation and Learning) โครงการนี้คือภาพสะท้อนที่ชัดเจนของจิตวิญญาณนั้น คือการตั้งคำถาม, การแสวงหาคำตอบด้วยเทคโนโลยี, และการแบ่งปันผลลัพธ์เพื่อยกระดับวงการไปด้วยกัน

Q: ถ้าผมไม่ได้อยู่กรุงเทพฯ ผมจะใช้ประโยชน์จากระบบนี้ได้ไหม หรือจะมีระบบแบบนี้ในพื้นที่ของผมได้อย่างไร?

A: แม้ว่า Dashboard นี้จะสำหรับ Repeater ในกรุงเทพฯ แต่แนวคิดและเทคโนโลยีเบื้องหลังสามารถนำไปปรับใช้ได้ทุกที่ โครงการในอนาคตอย่าง 'Android Version' ที่กำลังพัฒนาอยู่ ก็มีเป้าหมายเพื่อให้นักวิทยุสมัครเล่นทุกคนสามารถสร้างระบบ Monitor ของตัวเองได้ด้วยอุปกรณ์ราคาประหยัด ซึ่งจะเปิดโอกาสให้เกิดเครือข่ายสถานีตรวจวัดสัญญาณที่ขับเคลื่อนโดยชุมชน และอาจนำไปสู่การสร้างแผนที่ Heat Map ของประเทศไทยในอนาคตได้

MQTT Server ที่ติดตั้งล่าสุด ก็ได้ถูกออกแบบมาให้รองรับการใช้งานจากนักวิทยุสมัครเล่นได้พร้อมกันสูงสุดถึง 10,000 การเชื่อมต่อ เพื่อรองรับบริการสำหรับชุมชนในวงกว้างอยู่แล้วครับ

Q:  อยากเรียนรู้วิธีพัฒนาระบบแบบนี้บ้าง ต้องทำอย่างไร?

A:  อย่างแรกที่ต้องมีคือความมุ่งมั่น จะทำอะไรแล้วไม่ล้มเลิกกลางคัน มุ่งจะทำอะไรก็ทำไปจนกว่าจะสำเร็จ ความไม่มองแต่ปัญหา แต่มองหาวิธีแก้ปัญหา และทำไม่ไปเรื่อย ๆ ไม่เลิก การทำระบบนี้จนออกมาได้ไม่ใช่เพียงเพราะรู้อะไร แต่เพราะตั้งโจทย์แล้วทำไปไม่หยุด ไม่ล้มเลิก ไม่ทำสิ่งที่ใช้งานจริงไม่ได้ แต่แก้ทุกปัญหาที่เจอไประหว่างทางให้หมด รู้ภาษาอะไรไม่ใช่สิ่งสำคัญ ยุคนี้เรามี AI ดี ๆ หลายตัว ตัวนี้ไม่ได้ก็ไปถามตัวอื่น ถามทุกตัวแล้วไม่ได้ก็ไปค้นที่มีคนอื่นถามไว้ (Google Search) แล้วเอามาลองจนกว่าจะออกครับ

สำหรับสมาคมหรือชมรมที่ต้องการนำระบบนี้ไปให้บริการกับชุมชนของท่าน สามารถติดต่อกับ E25VBE ได้ทาง Facebook: Jojopat PatJojo ได้เสมอครับ ยินดีให้ข้อมูลและคำแนะนำทุกอย่าง ตลอดจนการ Remote เข้าไปช่วยติดตั้ง รวมถึงการจัดเตรียม Web และ MQTT Server ให้รองรับ Dashboard ของสมาคมประจำจังหวัดของท่านด้วยครับ

อ่านต่อ ตอนที่ 1 
อ่านต่อ ตอนที่ 2 

กว่าจะเป็น E24CY Bangkok Repeater Signal Monitor ตอนที่ 2

โดย E25VBE (Pat Jojo Sadavongvivad) 

ตอนที่ 2 : พัฒนาสถานีของคุณด้วย E24CY Repeater Monitor: คู่มือฉบับปฏิบัติ

ในตอนที่แล้ว เราได้รับรู้เรื่องราวการเดินทางอันยาวนานของโครงการ E24CY Repeater Monitor ในตอนนี้ เราจะมาลงลึกในรายละเอียดว่านักวิทยุสมัครเล่นจะสามารถนำข้อมูลที่แสดงบน Dashboard ซึ่งเป็นผลลัพธ์จากความพยายามในการพัฒนามาอย่างยาวนาน มาใช้ให้เกิดประโยชน์สูงสุดในการปรับปรุงประสิทธิภาพของสถานีวิทยุของตนเองได้อย่างไร

Dashboard นี้เปรียบเสมือนเครื่องมือวัดราคาแพงอย่าง Spectrum Analyzer ที่ทุกคนสามารถเข้าถึงได้ฟรีโดยไม่ต้องเสียสตางค์ ที่ช่วยให้เรา "เห็น" สิ่งที่ปกติแล้วเราทำได้แค่ "ฟัง" เท่านั้น

1. SNR (Signal-to-Noise Ratio): รายงานผลสัญญาณที่ไม่ต้องตีความ

SNR คือหัวใจของการสื่อสาร มันคืออัตราส่วนระหว่างความแรงของ "สัญญาณ" ที่เราต้องการ ต่อ "สัญญาณรบกวน" (Noise) ยิ่งค่า SNR สูงเท่าไหร่ สัญญาณก็จะยิ่งคมชัดมากเท่านั้น เราสามารถใช้ค่า SNR นี้เพื่อ:

  • หาตำแหน่งติดตั้งที่ดีที่สุด: ไม่ว่าจะเป็นการติดตั้งสายอากาศประจำที่ หรือการหาจุดจอดรถที่ดีที่สุดสำหรับสถานีรถยนต์ ลองกดคีย์ส่งจากหลายๆ ตำแหน่ง แล้วดูว่าจุดไหนให้ค่า SNR สูงที่สุด
  • เปรียบเทียบประสิทธิภาพของสายอากาศ: ทดลองสลับเปลี่ยนสายอากาศแต่ละต้นแล้วส่งทดสอบเพื่อดูว่าสายอากาศต้นใดให้ค่า SNR ที่ดีที่สุด
  • สร้างแผนภาพการแพร่กระจายคลื่น (Radiation Pattern): สำหรับผู้ใช้สายอากาศทิศทาง (Yagi) คุณสามารถหันสายอากาศไปยังทิศของ Repeater (Empire Tower) จากนั้นค่อยๆ หมุนไปทีละ 10 องศา พร้อมกับกดคีย์ส่งและบันทึกค่า SNR ในแต่ละทิศ เมื่อครบ 360 องศา คุณจะได้แผนภาพการแพร่กระจายคลื่นของสายอากาศของคุณเอง
  • ปรับกำลังส่งให้เหมาะสม: หากส่งด้วยกำลังส่งต่ำแล้วได้ค่า SNR สูงถึง 50-60 dB ก็ไม่จำเป็นต้องใช้กำลังส่งสูงเลย ช่วยประหยัดแบตเตอรี่และลดการรบกวนที่ไม่จำเป็น

2. Occupied Bandwidth (OBW): จูนเสียงพูดให้สมบูรณ์แบบ

"เสียงแตก", "เสียงทุ้มไป", "เสียงเบาไป" ปัญหาเหล่านี้จะหมดไปเมื่อคุณเข้าใจค่า Occupied Bandwidth (OBW) ค่านี้มีความสัมพันธ์โดยตรงกับ Mic Gain หรือ Modulation Level ของเครื่องวิทยุ

ตามกฎข้อบังคับของกิจการวิทยุสมัครเล่น สำหรับการสื่อสารประเภท F3E (FM Voice) กำหนดให้มีความกว้างของแถบสัญญาณไม่เกิน 8 kHz Dashboard นี้จะช่วยให้คุณปรับตั้งเสียงพูดได้อย่างสมบูรณ์แบบ:

  • OBW < 2-3 kHz (แคบเกินไป): เสียงพูดจะเบา ทุ้ม ไม่คมชัด
  • OBW 3-8 kHz (เหมาะสม): เป็นช่วงที่เสียงพูดมีความชัดเจนและดังกำลังดีที่สุด
  • OBW > 8 kHz (กว้างเกินไป): นี่คือภาวะ Over-modulation เสียงจะเริ่มแตกพร่าและที่สำคัญคือจะเกิดการ "เบียด" หรือ "Splatter" ไปรบกวนช่องความถี่ข้างเคียง

วิธีการปรับ: ลองพูดด้วยระดับเสียงปกติของคุณ แล้วสังเกตค่า OBW บน Dashboard หากค่าสูงหรือต่ำไป ให้ปรับ Mic Gain หรือ Modulation Level ในเมนูของเครื่องวิทยุของคุณ แล้วทดสอบอีกครั้งจนได้ค่าที่อยู่ในช่วงที่เหมาะสม

3. Carrier Frequency & Deviation: ความแม่นยำคือหัวใจ

เครื่องรับส่งวิทยุทุกเครื่องอาจมีความคลาดเคลื่อนของความถี่ได้ Dashboard นี้ช่วยให้คุณตรวจสอบความแม่นยำของเครื่องคุณได้

  • Carrier Frequency: คือความถี่ของคลื่นพาหะที่วัดได้จริง
  • Frequency Deviation: คือค่าความแตกต่างระหว่างความถี่ที่คุณส่งจริงกับความถี่เป้าหมายของ Repeater (145.075000 MHz)

ค่าที่ดีที่สุดคือเบี่ยงเบนใกล้เคียง 0 Hz มากที่สุด หากเครื่องของคุณมีค่า Deviation สูง อาจส่งผลให้การเข้า Repeater ทำได้ไม่เต็มประสิทธิภาพ คุณสามารถนำข้อมูลนี้ไปใช้ในการ Calibrate หรือปรับแก้ความถี่ของเครื่องให้แม่นยำยิ่งขึ้นได้ ระบบ E24CY Monitor เองก็ผ่านการ Calibrate ด้วยเครื่องมือวัดมาตรฐานสูงที่ซิงค์กับสัญญาณ GPS ทำให้ผู้ใช้มั่นใจได้ว่าค่าที่อ้างอิงนั้นมีความแม่นยำสูงมาก

การใช้ข้อมูลทั้งสามส่วนนี้อย่างสม่ำเสมอ จะช่วยให้คุณเข้าใจประสิทธิภาพของสถานีตัวเองได้อย่างลึกซึ้ง และสามารถปรับปรุงแก้ไขให้ดีขึ้นได้ด้วยตนเอง ในตอนสุดท้าย เราจะไปดูเบื้องหลังทางเทคนิคว่าระบบทั้งหมดนี้ทำงานร่วมกันได้อย่างไร


ที่มาของความแม่นยำ

นอกเหนือจากการอ่านค่า วิเคราะห์ค่าที่สำคัญจาก FFT bins แล้ว เพื่อให้ค่า carrier frequency เชื่อถือได้มากที่สุด ใช้อ้างอิงได้โดยคลาดเคลื่อนน้อยที่สุด จึงต้องมีขั้นตอนสำคัญในการปรับความถี่ที่วัดได้ให้เที่ยงตรงมากที่สุด โดยการใช้อุปกรณ์ GPS Disciplined Oscillator ทำการ sync สัญญาณนาฬิกา 10 MHz ในตัวมันเองเข้ากับนาฬิกาของดาวเทียม GPS ที่ใช้ Atomic clock โดย GPSDO ที่ใช้ มีความแม่นยำได้ที่ระดับ 1 ppb (parts-per-billion) คือผิดพลาดไม่เกิน 1 Hz ที่ billion(b) หรือพันล้าน Hz สร้างความถี่ 10.00000000 Hz ป้อนให้ Icom IC-9700 ให้มีความถี่ส่งที่แม่นยำมากที่สุดเท่าที่เป็นไปได้ ซึ่งได้ตรวจสอบแล้ว ว่าเมื่อสั่งให้ส่งความถี่ 145.075000 ออกไป ก็วัดความถี่ส่งได้ 145.0750000 MHz แล้วส่งสัญญาณไปที่ SDR# ภาครับ แล้วอ่านความถี่ออกมาดู แล้วปรับจนได้ความถี่จนได้ 145.0750000 เช่นกัน ตรวจสอบโดยการใช้ Anritsu MS2711E ที่ sync กับดาวเทียม GPS เช่นกันโดยมีความแม่นยำระดับ 50 ppb ก็วัดได้ 145.0750000 MHz เช่นกัน เป็นอันว่า มาตรวัดเชิงความถี่ของภาครับรีพีตเตอร์ก็รายงานได้แม่นยำใช้ได้เช่นกัน

อ่านต่อ ตอนที่ 1 
อ่านต่อ ตอนที่ 3 

กว่าจะเป็น E24CY Bangkok Repeater Signal Monitor ตอนที่ 1

โดย E25VBE (Pat Jojo Sadavongvivad) 

ตอนที่ 1 : Overview - จากไอเดียสู่ Dashboard ล้ำ ๆ ประโยชน์เหลือ ๆ สำหรับนักวิทยุสมัครเล่น กับเรื่องราวที่เป็นมาและจะเป็นไป ของ E24CY Repeater Monitor (http://e24cy.decem.co.th)

ในแวดวงนักวิทยุสมัครเล่น เราคงคุ้นเคยกับการใช้เวลาไม่น้อยในการสนทนาบนความถี่เพื่อสอบถามและรายงานผลสัญญาณ (QRK/QST) ซึ่งแม้จะมีประโยชน์ แต่ก็อาจไม่มีประสิทธิภาพเสมอไป คำอธิบายมักเป็นเรื่องความเห็นเฉพาะตัวและมักใช้เวลาในการออกอากาศมาก

เรื่องราวของ E24CY Repeater Monitor เริ่มต้นขึ้นจากคำถามง่ายๆ ของ E25VBE ที่ว่า "จะดีแค่ไหน ถ้าทุกครั้งที่ปล่อยคีย์ มีเสียงบี๊บ บอกความแรงของสัญญาณได้ทันที?" แต่จากไอเดียเล็กๆ นี้ ได้นำไปสู่การเดินทางที่ยาวนานและเต็มไปด้วยความทุ่มเท เพื่อสร้างนวัตกรรมที่เป็นประโยชน์ต่อเพื่อนสมาชิกอย่างแท้จริง


จุดเริ่มต้น: จากไอเดียสู่การลงมือทำ

ก่อนที่จะมีการเขียนโค้ดแม้แต่บรรทัดเดียว สิ่งแรกที่ทำ คือการตรวจสอบให้แน่ใจว่าแนวคิดนี้ไม่ขัดต่อกฎระเบียบ(ที่แสนจะซับซ้อนสำหรับผู้มาใหม่)ใดๆ โดยได้เข้าปรึกษาหารือกับเจ้าหน้าที่ กสทช. ถึงสามท่าน รวมถึงอนุกรรมการสมาคมนักวิทยุอาสาสมัคร (VRA) 2 ท่าน และกรรมการสมาคมวิทยุสมัครเล่นแห่งประเทศไทย (RAST) E20EHQ  จนได้รับคำยืนยันว่าสามารถดำเนินการได้ เมื่อมั่นใจแล้ว การเดินทางจึงได้เริ่มต้นขึ้น คือเริ่มศึกษาวิธีการวัดความแรงสัญญาณฝั่งรับ (Received Signal Strength Index หรือ RSSI) โดยเริ่มจากความพยายามจะใช้ Yaesu FT-857D เป็นภาครับ เพื่ออ่าน RSSI ผ่าน CAT port จนพบว่าความเร็วในการอ่านค่าไม่เพียงพอ และมีความซับซ้อนอื่น ๆ สูงเกินไป ได้แก่ อ่านค่าได้เพียงประมาณ 10 ครั้งต่อวินาที และเป็นอุปกรณ์ที่ไม่เหมาะสมกับการนำไปใช้งาน



จากนั้นจึงหันไปลองใช้ NiceRF SA818 ก็เจอทางตัน เพราะค่าที่อ่านได้ไม่เสถียร เนื่องจาก selectivity ของภาครับไม่ดีพอ รวมถึงไม่มี front-end filter จึงเหมาะกับการใช้ในระดับพื้นดินเท่านั้น ต่อสายอากาศสูง ๆ ไม่ได้




จากนั้นก็หลงทาง “เดา” ว่า Icom IC-275 ที่มีอยู่ก็เป็นรุ่น high-end ต้องมีคำสั่งอ่าน RSSI แน่ ๆ เลย เสียเวลาค้นข้อมูลไปอีกครึ่งเดือน ข้อมูล CI-V ของ IC-275 ก็หายาก คล้ายจะมี คล้ายจะไม่มี สรุปแน่ชัดไม่ได้ จนกระทั่งต้องโทรไปสอบถามกับทางตัวแทน Icom ในประเทศไทยคือ G.Simons จึงได้รับคำตอบในทันทีว่า คำสั่งแบบนี้จะมีในรุ่น high-end (จริง ๆ เช่น series 9) เท่านั้น อ้าว นี่แปลว่า IC-275 ไม่ใช่รุ่น high-end สินะ  จึงได้ไปโหลดคู่มือ Icom IC-9700 ทั้ง Basic, Advance, CI-V ตลอดจน Service Manual มาไล่ดูวงจร จนนำไปสู่การตัดสินใจสั่งซื้อเจ้า 9700  ในเดือนกุมภาพันธ์ 2024 มาเพื่อการศึกษาเรื่อง SDR แบบ Direct Sampling เพื่อการอ่านค่า RSSI  และเพื่อศึกษาวิธีการควบคุมทุกชนิดผ่านทั้ง CI-V, USB และ LAN port



หลังจากได้เครื่องมา ในสัปดาห์แรก โปรแกรมต้นแบบ (Prototype) รุ่นแรกจึงได้ถือกำเนิดขึ้น โดยเป็นการอ่านค่าความแรงสัญญาณ (RSSI) ผ่านพอร์ต USB ของ IC-9700 แล้วสร้างเป็นเสียงบี๊บออกทางลำโพงคอมพิวเตอร์ ก่อนจะพัฒนาไปอีกขั้นสู่การส่งเสียงบี๊บนั้นกลับเข้าไปยังระบบทวนสัญญาณทันทีที่ผู้ใช้ปล่อยคีย์ แต่นั่นยังไม่ใช่เป้าหมาย เพราะเป็นระดับสัญญาณที่ 9700 รับได้ ไม่ใช่ระดับสัญญาณที่รีพีตเตอร์รับได้ คือขั้นตอนนี้เป็นเพียงการเรียนรู้และการทำความคุ้นเคยกับการอ่านความแรงสัญญาณเท่านั้น

หลังการสร้างเสียงบ๊๊บสำเร็จ ได้ทำโปรแกรมส่งเสียงบี๊บ 8 ครั้ง โดยเพิ่มกำลังส่งในการส่งเสียงโน๊ตแต่ละตัวจาก 0-15-30-45-60-75-90-100% (ของกำลังของ IC-9700)  เพื่อฟังเสียง chirp ที่จะกลับมาจาก repeater เมื่อปล่อยคีย์ ที่แสดงว่าการออกอากาศด้วยกำลังส่งนั้น ในตำแหน่งนั้น ๆ ที่รถเคลื่อนผ่านไป สามารถเปิด repeater ได้ เพื่อสร้างเป็น heat map ว่ากำลังส่งเท่าใดในแต่ละบริเวณสามารถเปิด repeater ได้


ก้าวสำคัญ: สู่แพลตฟอร์ม SDR# บน E24CY Repeater

หลังจากได้เรียนรู้และเข้าใจข้อจำกัดของอุปกรณ์ต่างๆ แล้ว ก้าวต่อไปที่สำคัญคือการได้รับสิทธิ์ในการ Remote connect  ให้เข้าไปทำงานบนคอมพิวเตอร์ภาครับของ E24CY รีพีตเตอร์กรุงเทพฯ โดยตรง จากท่านนายก VRA ในช่วงกลางเดือนกรกฎาคม 2567 โดยอย่างแรกที่ทำเมื่อเชื่อมต่อเข้าไปได้ คือการติดตั้งโปรแกรม TeamViewer Business Lifetime License ซึ่งทำให้การพัฒนาบนเครื่อง Repeater กลายเป็นเรื่องง่ายมาจนบัดนี้ และในวันเดียวกันนั้นเอง ที่ได้ได้เริ่มต้นเขียน SDR# Plugin เป็นครั้งแรกในชีวิต


นี่คือจุดเริ่มต้นของการต่อสู้ทางเทคนิคที่แท้จริง ก่อนจะนำไปสู่ระบบ Dashboard ที่เราเห็นกันในปัจจุบัน


วิวัฒนาการ: จากเสียงสู่ภาพ Dashboard แบบเรียลไทม์

แม้จะเริ่มต้นจากเสียงบี๊บ แต่เมื่อมีเพื่อนนักวิทยุแจ้งมาในการ eyeball กัน ว่าเพื่อนไม่สามารถฟังออกว่านี่คือตัวโน๊ตต่ำหรือสูง เมื่อกลับถึงบ้าน ก็แก้ไข plugin ทันทีให้สร้างเสียงบี๊บ 1 ครั้งสำหรับสัญญาณระดับพอใช้ สองครั้งสำหรับสัญญาณดี สามครั้งสำหรับสัญญาณดีมาก และบี๊บยาวสำหรับสัญญาณที่แรงเกินไป และเมื่อคิดต่ออีกเล็กน้อย ก็ตระหนักว่าข้อมูลในรูปแบบภาพจะให้รายละเอียดที่ลึกซึ้งและเป็นประโยชน์มากกว่า จึงได้ต่อยอดโครงการไปสู่ E24CY Repeater Monitor Dashboard ซึ่งเป็นเว็บแอปพลิเคชันที่แสดงข้อมูลสัญญาณแบบเรียลไทม์ ทำให้ผู้ใช้ทุกคนสามารถ "เห็น" ประสิทธิภาพสถานีของตนเองได้อย่างชัดเจน โดยเริ่มจากกราฟที่แสดงค่า SNR ค่าเดียวก่อน ในช่วงกลางเดือนม.ค. 2568 แล้วค่อย ๆ ปรับปรุง หาทางอ่านข้อมูลที่มากกว่าความแรงสัญญาณไปเรื่อย ๆ ซึ่งไม่มีมากไปกว่าการ Google search ค้นข้อมูลในเน็ต ถาม AI (ที่ตอบทีไรก็ error) ลองทำซ้ำแล้วซ้ำอีกหลายร้อยครั้ง จนในที่สุดก็ทำสำเร็จในต้นเดือนมิ.ย. 2568 จนได้เป็น Dashboard ที่แสดงข้อมูลสำคัญของการรับส่งวิทยุ 3 อย่างได้แก่:
  1. SNR (dB): ความแรงของสัญญาณเทียบกับสัญญาณรบกวน บอกคุณภาพการรับสัญญาณได้อย่างชัดเจน
  2. Occupied Bandwidth (kHz): ความกว้างของสัญญาณเสียงที่ถูกผสม (modulate) ไปกับคลื่นวิทยุ ใช้เพื่อปรับปรุงคุณภาพเสียงพูด
  3. Frequency Deviation (Hz): ความเบี่ยงเบนของความถี่คลื่นพาหะ เพื่อตรวจสอบความแม่นยำของเครื่องวิทยุ


โครงการนี้คือตัวอย่างของนวัตกรรมที่เกิดจากความหลงใหลและการลงมือแก้ปัญหาจริง จากไอเดียเล็กๆ ที่ผ่านการตรวจสอบอย่างรอบคอบ สู่การลงมือปฏิบัติ ลองผิดลองถูก จนกลายเป็นเครื่องมือที่ทรงพลังและเป็นประโยชน์ต่อส่วนรวม ในตอนต่อไป เราจะมาเจาะลึกถึงวิธีการนำข้อมูลจาก Dashboard นี้ไปใช้พัฒนาสถานีของคุณให้มีประสิทธิภาพสูงสุดกันครับ

อ่านต่อ ตอนที่ 2 
อ่านต่อ ตอนที่ 3