快速演算法設計原理
*快速演算法的主要目標為節省計算時間,採取手段主要如下:
*#減少加法數量
*#減少乘法數量
*#減少迴圈數量
**其中以減少乘法數量最為重要,可以最為高效率節省計算量。
快速演算法的設計重要的四種概念
N-point DFT
對於任何點數的離散傅立葉轉換(DFT),都有其適合的快速演算法.
線性非時變系統的運算複雜度
由於線性非時變系統可以用卷積Convolution來表示,故我們可以說其運算複雜度為,三個傅立葉轉換的計算量(包括兩個FTs 以及一個IFT)
⇒3 \theta(NlogN)
⇒ \theta(NlogN)
若使用了快速演算法,我們可以將其運算複雜度降為 \theta(N)
Replacement of DFTs
對於DFT的計算有複數(complex number)的問題,我們也可以透過矩陣的方式來處理.
運算簡化技巧
下面以四個例子來解說:
(1) y_1 = ax_1 + 2ax_2
⇒y_1=\begin{pmatrix} a & 2a \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}
⇒y_1 = a(x_1 + 2x_2)
⇒1 MULs, 1 ADD (一個乘法,一個加法)
(2)\begin{pmatrix} y_1 \\ y_2 \end{pmatrix} =\begin{pmatrix} a & a \\ a & a \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}
⇒y_1 = a(x_1 + x_2)
⇒y_2 = y1
⇒1 MULs, 1 ADD
(3)\begin{pmatrix} y_1 \\ y_2 \end{pmatrix} =\begin{pmatrix} a & b \\ b & a \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}
⇒\begin{pmatrix} y_1 \\ y_2 \end{pmatrix} =\begin{pmatrix} \frac{a+b}{2} & \frac{a+b}{2} \\ \frac{a+b}{2} & \frac{a+b}{2} \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}+ \begin{pmatrix} \frac{a-b}{2} & -\frac{a-b}{2} \\ -\frac{a-b}{2} & \frac{a-b}{2} \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}
⇒2MULs, 4 ADDs
(4)\begin{pmatrix} y_1 \\ y_2 \end{pmatrix} =\begin{pmatrix} a & b \\ c & a \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}
⇒\begin{pmatrix} y_1 \\ y_2 \end{pmatrix} =\begin{pmatrix} a & a \\ a & a \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}+ \begin{pmatrix} 0 & b-a \\ c-a & 0 \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}
⇒3MULs, 3 ADDs
複數的乘法
if x = a + ib and y = c + id
⇒xy = ac-bd + i(ad+bc )
令e為實數項,f為虛數項
\begin{pmatrix} e \\ f \end{pmatrix} =\begin{pmatrix} c & -d \\ d & c \end{pmatrix} \begin{pmatrix} a \\ b \end{pmatrix} =\begin{pmatrix} c & c\\ c & c \end{pmatrix}\begin{pmatrix} a \\ b \end{pmatrix} + \begin{pmatrix} 0 & -c-d\\ d-c & 0 \end{pmatrix}\begin{pmatrix} a \\ b \end{pmatrix}
(1) let x_1 = c(a + b) ; y_1 = x_1
(2) let x_2 = (-c-d)b ; y_2 = (d-c)a
⇒e = x_1+x_2 ; f = y_1+y_2
⇒3MULs, 3~5 ADDs
從這裡我們可以看出虛數的乘法量大致為實數乘法量的三倍。
参考
评论 (0)