太原嵌入式linux驱动开发之实数蝶形运算算法的推导
时间:10-02
整理:3721RD
点击:
太原市山西思软IT实训中心嵌入式学员和大家分享实数蝶形运算算法,如下。
蝶形公式:
X(K) = X‘(K) +X’(K+B)W PN ,
X(K+B) = X‘(K) -X’(K+B) W PN
其中W PN= cos(2餚/N)- jsin(2餚/N)。
设 X(K+B) = XR(K+B) + jXI(K+B),
X(K) = XR(K) + jXI(K) ,
有:
XR(K)+jXI(K)= XR‘(K)+jXI’(K)+[ XR‘(K+B) + jXI’(K+B)]*[ cos(2餚/N)-jsin(2餚/N)];
继续分解得到下列两式:
XR(K)= XR‘(K)+ XR’(K+B) cos(2餚/N)+ XI‘(K+B) sin (2餚/N) (1)
XI(K)= XI’(K)-XR‘(K+B) sin(2餚/N)+XI’(K+B)cos(2餚/N) (2)
需要注意的是: XR(K)、XR‘(K)的存储位置相同,所以经过(1)、(2)后,该位置上的值已经改变,而下面求X(K+B)要用到X’(K),因此在编程时要注意保存XR‘(K)和XI’(K)到TR和TI两个临时变量中。