脈衝寬度調變

脈衝寬度調製（Pulse-width modulation，縮寫：PWM），簡稱脈寬調製，是用脈波來輸出模擬信號的一種技術，一般轉換後脈波的週期固定，但脈波的工作週期會依模擬信號的大小而改變。

在模擬電路中，模擬信號的值可以連續變化，在時間和值的幅度上幾乎沒有限制，基本上可取任何實數值，輸入與輸出也呈線性變化。因此在模擬電路中，電壓和電流可直接用於控制對象，例如家用電器設備中的音量開關控制、採用鹵素燈泡燈具的亮度控制等。

但模擬電路有諸多的問題：例如控制信號容易隨時間漂移，難以調節；功耗大；易受噪聲和環境干擾等。生成模擬信號對於數字電路而言往往需要額外的數字-模擬轉換器。

與模擬電路不同，數字電路是在預先確定的範圍內取值，在任何時刻，其輸出只可能為ON和OFF兩種狀態，所以電壓或電流會通/斷方式的重複脈衝序列加載到模擬負載。PWM技術是一種對模擬信號電平的數字編碼方法，通過使用高解析度計數器（調製頻率）調製方波的占空比，從而實現對一個模擬信號的電平進行編碼。其最大的優點是從處理器到被控對象之間的所有信號都是數字形式的，無需再進行數模轉換過程；而且對噪聲的抗干擾能力也大大增強（噪聲只有在強到足以將邏輯值改變時，才可能對數位訊號產生實質的影響），這也是PWM在通訊等信號傳輸行業得到大量應用的主要原因。

模擬信號能否使用PWM進行編碼調製，僅依賴帶寬，這即意味著只要有足夠的帶寬，任何模擬信號值均可以採用PWM技術進行調製編碼。

在信號接收端，需將信號解調還原為模擬信號。

目前在很多微型控制器(MCU)內部都包含有PWM控制器模塊。

## 歷史

在過去，當只有部分能量需求(以縫紉機馬達為例)，一個變阻器(被放在縫紉機的腳踏板上)串接在一個馬達上將會調整流入馬達中的電流，同時會因為電阻發熱而消耗一些能量。這其實是一個可以接受(因為總能量夠低)但沒有效率的方式。然而，變阻器只是一個控制能量的方法之一(可參考自耦變壓器做為參考)，因此需要實現一個可以達到較低成本又有效率的調整方法。這個機制同時可以被運用來當作電扇馬達、幫浦馬達、機器伺服等，同時必須足夠精細與檯燈系統互動，因此，脈衝寬度調變應運而生，作為這個複雜問題的一個解決方案。

一種早期的脈衝寬度調變方式是辛克萊X10，一個在1960年代的10瓦音樂放大器之套件版本。差不多時期脈衝寬度調變亦開始被應用在交流電馬達控制之上。

而在最近一個世紀中，有些變速的電子馬達已經有很好的效率，但他們相較於等速馬達來說較為複雜，而且有些時候需要較為大型的外部儀器輔助，像是可變電阻及如沃德里奧納多驅動器一樣的旋轉器。

## 原理

脈衝寬度調變使用一個脈衝寬度會被調變的方波，使得波型的平均值會有所變化。如果我們考慮一個週期為 $T$ 的脈衝波 $f(t)$，低值 $y_\text{min}$，高值為 $y_\text{max}$，跟一個工作循環D(duty cycle)，(參照右圖)，此波的平均值為：

$$\bar{y} = \frac{1}{T}\int^T_0f(t)\,dt.$$

當 $f(t)$ 是一個脈衝波，它的值在 $0 < t < D \cdot T$ 是 $y_\text{max}$，而在 $D \cdot T < t < T$ 是 $y_\text{min}$，上式的描述可以變為：

$$\begin{align} <pre> \bar{y} &= \frac{1}{T} \left(\int_0^{DT} y_\text{max}\,dt + \int_{DT}^T y_\text{min}\,dt\right)\\ &= \frac{1}{T} \left(D \cdot T \cdot y_\text{max} + T\left(1 - D\right) y_\text{min}\right)\\ &= D\cdot y_\text{max} + \left(1 - D\right) y_\text{min}. </pre> \end{align}$$

以上表示可以在很多狀況下被簡化，當 $y_\text{min} = 0$ 及 $\bar{y} = D \cdot y_\text{max}$。從這是可以看出，波型的平均值非常明顯地直接與工作循環之值D有關。

最簡單可以產生一個脈衝寬度調變訊號的方式是交集性方法(intersective method)，這個方法只需要使用鋸齒波或三角波(可以簡單地使用震盪器來產生)，以及一個比較器。當參考的訊號值(圖二的紅色波)比鋸齒波(圖二的藍色波)來的大，則脈衝調變後的結果會在高狀態，反之，則在低狀態。

### 微分調變

以微分調變作為控制脈衝寬度調變的方法，輸出訊號將會被積分，同時結果也會被拿來與參考訊號增減一個偏移量(作為比較的邊界)比較。當每一次的積分結果到達邊界時，脈衝調變訊號便會轉變狀態如圖三。

### 積分-微分調變

以積分-微分調變作為控制脈衝寬度調變的方法，參考訊號與輸出訊號會相減得到誤差訊號。同時此誤差會被積分，若積分超過邊界，輸出結果便會轉換狀態(參考圖四)。

### 空間向量調變

空間向量調變是一種針對多相位交流訊號，控制脈衝寬度調變的演演算法，先將參考訊號正常的取樣，接著對於每一次的樣本訊號，會有一些在參考向量相鄰的非零交換向量以及一至多個的零交換向量作為取樣之代表，目的是合成出參考向量。

### 直接轉矩控制

直接轉矩控制是一種控制交流馬達的方式。這個和微分調變方式非常類似(參考上面)，馬達的力矩以及磁力線可以被估計，當訊號要偏離磁滯帶時，藉由打開裝置的半導體開關，可以使其被控制在磁滯帶之中。

### 時間比例

很多數位電路都可以產生出脈衝寬度調變訊號(比方說很多微型控制器可以有很多脈衝寬度調變)，正常來說，這些數位電路都會使用一個每隔一段固定時間便會增加1的計數器(直接或不直接連接到電路的時間皆可)並且在脈衝寬度調變訊號的最後會被重置。當這個計數器比參考值來得多的時候，調變訊號的輸出便會轉換狀態。這個技術被稱為時間比例，特別是時間比例控制。

這個會定時增加的計數器是一個離散版本的相交性方法的鋸齒波。相交性方法的類比比較器將會變成一個在現今的計數值以及數位參考值之間簡單的積分比較。這個工作循環只會在每一次離散的步驟間有所變動，會是一個計數器精細度的函數。然而，一個高精細度的計數器將可以提供令人滿意的表現。

### 類型

有三種類型的脈衝寬度調變是可能的：

- 脈衝波的中心將會被固定在時間窗格的中心，同時脈衝波的兩邊可以移動，使得波的寬度被延伸或壓縮。
- 脈衝波領先的邊將會被固定在時間窗格領先的邊上，並且針對脈衝波的落後邊進行調變。
- 直接固定脈衝波的落後邊，再針對脈衝波的領先邊進行調變。

### 光譜

上述這三種類型的調變所產生的光譜是相似的，而且每一種都會包含一個直流的元素，一個基底邊帶在每一個諧波中，會包含調變過後的信號以及相位調變的載波。這些諧波的振幅大小會被限制在一個 $\sin x / x$ (sinc函數)的包層中並延伸至無限大，這個無限大的頻寬將會由非線性的脈衝寬度調變所造成。結果，一個數位的脈衝寬度調變將會遭受到失真扭曲的影響，並嚴重地減少其在現代通信系統上的可應用性。藉由限制脈衝寬度調變的頻寬，失真效應將可以被減少與避免。

反過來說，積分調變是一個可以製造出連續光譜，且不需要連續的諧波之隨機過程。

### 脈衝寬度調變的取樣定理

脈衝寬度調變的轉換過程是非線性的，且我們一般假設其在低頻濾波的還原上是不完美的。根據脈衝寬度調變的取樣定理，我們可以發現，脈衝寬度調變的轉換可以是完美的。這個定理敘述當 "對於任何有基頻頻帶限制的訊號，若其大小在正負0.637間，可以被單位大小的脈衝寬調變所產生的訊號所代表，波的脈衝數會等於奈奎斯特(Nyquist)取樣的數量，且峰值的限制與波是兩階還是三階互相獨立"。取樣定理告訴我們：一個有頻帶限制的訊號，如果我們的取樣頻率大於傳遞波頻率的兩倍，則訊號傳遞後可以被完整地重建。

## 應用

### 伺服

脈衝寬度調變可以用於控制伺服機構。

### 電信

在電信使用上，脈衝寬度調變是一種訊號調變的形式，其脈衝波的寬度對應到另一個特定資料會在傳送端被編碼，並於接收端解碼。

不同長度的脈衝波(要傳遞的訊息本身)將會每隔固定的時間後被傳遞(載波的頻率)

```
          _      _      _      _      _      _      _      _     
         | |    | |    | |    | |    | |    | |    | |    | |    
Clock    | |    | |    | |    | |    | |    | |    | |    | |    
       __| |____| |____| |____| |____| |____| |____| |____| |____

                 _      __     ____          ____   _
PWM signal      | |    |  |   |    |        |    | | |
                | |    |  |   |    |        |    | | |
       _________| |____|  |___|    |________|    |_| |___________

Data       0     1       2      4      0      4     1      0
```

時間訊號不一定要被包含脈衝寬度調變的傳遞上，事實上資料的領先端可以被當成一個計時器使用，如果有一個小的偏移量被加在資料值之上，去避免資料值有一個長度為零的脈衝波。

```
                _      __     ___    _____   _      _____   __     _   
               | |    |  |   |   |  |     | | |    |     | |  |   | | 
PWM signal     | |    |  |   |   |  |     | | |    |     | |  |   | |  
             __| |____|  |___|   |__|     |_| |____|     |_|  |___| |_____

Data            0       1      2       4     0        4      1     0
```

### 能量的傳遞

脈衝寬度調變可以被用來控制對於一個載子能量傳遞的多寡，而不會產生由阻抗所造成的線性能量傳遞損失。此方法所需要付出的代價是，載子所流失的能量並非一個常數且是不連續的(如降壓式轉換器)，載子上傳遞的能量也不是連續的。然而，由於載子可能是具有高頻電感性的，這時就必須要外加一個被動的電子濾波器，讓這些脈衝波變為平滑且能復原平均的類比波型，能量流入載子才會是連續的。而從供應端流出的能量則不是連續的，因此大部分情況下需要額外的能量儲存空間。(比方說在一個電路下，一個電容會吸收儲存於供應端電感的能量。)

### 亮度調節

使用PWM的方式來調節光線亮度是非常簡單有效的方法。但是頻率若低於1250Hz、會明顯增加健康及加速視力衰退風險；頻率若高於3250Hz、則不會增加健康及加速視力衰退風險；若振幅較小（不是開和關交替，而是亮和較暗交替），頻率可以降低而不傷眼（詳見IEEE 1789標準）；當頻率高於25KHz則可以讓可能產生的開關噪音高於人耳範圍，一般攝影系統也不會照出閃爍畫面。

目前多數AMOLED螢幕是採用低頻PWM調光，有明顯的健康及加速視力衰退風險。

### D類擴大機

音響擴大機也可以使用PWM的方式來放大訊號，是一種省電但音質受到質疑的擴大機。

## 外部連結

- Tutorial video on PWM including example motor speed control and LED dimming circuits
- An Introduction to Delta Sigma Converters
- Pulse Width Modulation in PID control loop - free simulator
- Pulse Width Modulation in Desktop monitors - monitor flicker