陳凱



在信息技術課程中,為了介紹將模擬信號轉換為數字信號的原理,教師可能會找一些軟件或單片機來演示將模擬信號轉換為數字信號的過程。不過,無論是軟件還是單片機演示,模數轉換過程中的具體細節卻仍然隱藏在幕后,實踐和理論略有脫節的嫌疑。本文將介紹兩個比較特別的小實驗,由學習者親自動腦動手搭建設備來實現模數轉換的每一步驟,從而對模數轉換的基本原理有更加直觀的了解。
● 木桿推球——機械模數轉換“原型機”
機械模數轉換機的作用,是將一段在空間上連續的波形,按相等的間隔采樣,獲得一連串該波強度的離散的數字值。之所以稱為“原型機”,是因為考慮到有限的時間、場地及材料,較難做到全員體驗整個手工DIY的過程,因此機械制作及設備運行過程是利用物理沙盒軟件Algodoo(也稱作Phun)來實現的。圖1為機械模數轉換“原型機”細部。
“原型機”的原理很簡單,由一系列可以左右劃動的長木桿來推動原本放置在槽中的小球,槽和木桿越密集則采樣也就越為精細。“原型機”完成后,可以用一塊表面不平(為了呈現出波形)的橡皮(橡皮材質是為增加摩擦力)來測試“原型機”的運行效果。運行結束后,槽中留下的球的數量就指示了該處波的強度。圖2為機械模數轉換“原型機”的運行過程。
Algodoo真實還原了物理世界中各個物體之間的交互及狀態變化過程,所以說,只要有充足的時間,也可以將此設計用真正的材料搭建出來。只要真正動手做一下,就能體驗到,在實際制作過程中會遭遇多個意想不到的困難和意外。例如,如何盡量使長桿保持水平而不被卡住?如何克服因小球相互碰撞以及慣性作用而造成的精度上的誤差?等等。
● 撞球和翹翹板——采樣數值編碼器
上面的木桿推球設備所獲得的波的強度是十進制值(其實就是球的個數)。如何將十進制數轉換為二進制數呢?下面的這個裝置借助Algodoo中的“Hinge”工具來做成翹翹板(如圖3)。第一個球掉落時,會將翹翹板砸成左高右低的狀態,記為“1”。當第二個球掉落時,先將上面的翹翹板砸成左低右高,記為“0”,再將下面的翹翹板砸成左高右低,記為“1”,由下往上連著讀就是“10”。第三個球掉落后兩個翹翹板的狀態都是左高右低,由下往上連著讀就是“11”。以此類推,在恰當位置放置足夠多的翹翹板,就能將球的數量轉換成二進制數值,所以可以把這個小設備當作二進制編碼器來使用。
Algodoo軟件可以在www.algodoo.com網站免費下載到,大家不妨親自動手一試。