劉力:高級工程師;畢業于清華大學無線電系,后進入中國科學院自動化研究所工作;曾參加國家重點科技項目的研發,現任北京利國電子公司總經理。聯系作者:liguo@liguo.com.cn
3、模擬信號與數字信號之間的轉換與損失
模擬信號:是指信號的幅度是連續可變的信號,以往常見的包括音頻信號、視頻信號和VGA等信號都是模擬信號。由于電平幅度是連續可變化的,因此可以表現最小的變化。如電壓信號,我們可以精確到0.1V、0.01V、1mV、1μV、1pV等等,只要是有所不同,就可以表現出來。其優點是可以無窮精確地表示一個變量,缺點是:不利于存貯,容易受到干擾(因為有一點不同就已經表現出來了),不利于傳輸等等。
數字信號:是用“0”和“1”即2進制代碼表示的狀態,例如對電壓信號而言,我們可以將0V定義為“0”,而將5V定義為“1”。一般以2.5V為分界線,小于2.5V時都認為是“0”,而大于2.5V時都認為是“1”了,這樣做優點便于存貯傳輸,不易被干擾。在數字電路中,TTL電平一般指的5V電平,當前常用的控制電路中,常用的是TTL電平,也有一些芯片內部或對外用3.5V電平,那“0”或“1”的分界線就是在1.75V左右,當然也有一些電路用更高的電平。只要將“0”與“1”分界點定義在電平中間即可。
模擬與數字信號之間的轉換: 從數字信號的特點可以看到,用“0”和“1”的狀態來表示信號是極不精確的,以TTL電平為例,它只能表示一個信號大于2.5V或是小于2.5V,它僅將一個規一化了的數值分成了二份,具體值是多少僅用“0”和“1”是表現不出來的,但如果用多個“0”和“1”狀態組合來表示一個數值,精度就會提高。例如用00表示小于1/4的值,01表示大于1/4小于1/2的值用,10表示大于1/2小于3/4的值,11表示大于3/4的值,即用2位數字狀態就可以表現出1/4的精度,同理用3位狀態就能表現1/8精度的值,用8位狀態可表現1/256的精度,用10位狀態可表現1/1024的精度等等,如果用的位數足夠高,就可以表現足夠的精度,這個位數就是對應的bit數,我們一般常用的是8bit10bit、12bit、16bit等。在電子計算機中的發展中,初期是采用的是8bit稱為1Byte,因此現在有很多參數包括存貯器件位數,通道參數等都是以8bit=1Byte的倍數為基準表示。在控制協議等數據應用場合,采用的是16進制碼,這與我們常用的10進制碼是不同的,10進制碼是逢10進1,如9、10、20、30……100等,而16進制碼是逢以16進1,其表示方法如下:(4位數組合可以表現16種狀態)
0 0 0 0 0 1 0 0 0 8
0 0 0 1 1 1 0 0 1 9
0 0 1 0 2 1 0 1 0 A
0 0 1 1 3 1 0 1 1 B
0 1 0 0 4 1 1 0 0 C
0 1 0 1 5 1 1 0 1 D
0 1 1 0 6 1 1 1 0 E
0 1 1 1 7 1 1 1 1 F
當然,如果給出一個代碼是EF,則可對應8個bit狀態,分別是1 1 1 0 1 1 1 1,尤其在控制代碼中,每一個bit都會有相應的準確的物理定義,知道上述這種對應,會便于理解控制協議。
在將模擬信號轉換成數字信號時,有幾項主要指標將要考慮,①量化位數,即量化的bit數,即將一個規一化的值分成多少份,如果是8bit量化,即分為了256份,如果是10bit量化,即分成了1024份等等,以8bit量化為例,如果模擬信號之間的差距小于1/256〜4‰的時候,數字化的信號是分辨不出這其中之的差距的,因此對信號是有損失的,②量化速度,因為信號是一個隨時間軸變化的電平(電流等)信號,除了對幅度進行分份量化,還要看其對時間的反應速度,如果1秒鐘采一次樣進行量化,采樣頻率為1Hz,如果一秒鐘采10次,采樣頻率為10Hz等等,現在的采樣頻率在幾十〜幾百MHz是容易實現的。如圖:[Page]
 |
將模擬信號轉換成數字信號即由Analog轉為Digital信號稱為A/D(模/數變換)過程,反之稱為D/A(數/模變換)
以A/D過程為例,由于采樣位數和采樣頻率的限制,數字信號<