欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于Cooley-Tukey的FFT算法

文檔序號(hào):10534787閱讀:2305來(lái)源:國(guó)知局
一種基于Cooley-Tukey的FFT算法
【專利摘要】本發(fā)明公開了一種基于Cooley?Tukey的FFT算法,利用FPGA芯片,采用Radix?4的碟形運(yùn)算,把N點(diǎn)FFT分解成一個(gè)以上的短序列的FFT。本發(fā)明使用Cooley?Tukey的FFT算法,把N點(diǎn)FFT分解成幾個(gè)較短序列的FFT,大大減少?gòu)?fù)乘次數(shù);采用Radix?4的碟形運(yùn)算,解決了計(jì)算延時(shí)長(zhǎng)、動(dòng)態(tài)響應(yīng)速度慢的問(wèn)題,并利用FPGA豐富邏輯資源給予實(shí)現(xiàn),解決了占用大量RAM空間的問(wèn)題。
【專利說(shuō)明】
_種基于Goo I ey-Tukey的FFT算法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及電力系統(tǒng)諧波檢測(cè)領(lǐng)域,尤其是利用FPGA芯片實(shí)現(xiàn)的基于Cooley-Tukey的FFT算法。
【背景技術(shù)】
[0002] FFT算法廣泛應(yīng)用于電力系統(tǒng)諧波電流檢測(cè)領(lǐng)域,以往的諧波電流檢測(cè)方法是利 用DSP芯片使用傳統(tǒng)FFT算法檢測(cè)諧波電流,但傳統(tǒng)的方法存在計(jì)算延時(shí)長(zhǎng)、動(dòng)態(tài)響應(yīng)速度 慢、計(jì)算精度不高、占用大量RAM空間的問(wèn)題。

【發(fā)明內(nèi)容】

[0003] 本發(fā)明要解決的技術(shù)問(wèn)題是現(xiàn)有的FFT算法計(jì)算延時(shí)長(zhǎng)、動(dòng)態(tài)響應(yīng)速度慢、計(jì)算精 度不高、占用大量RAM空間。
[0004]為解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案是:一種基于Cooley-Tukey的FFT算 法,利用FPGA芯片,采用Radix-4的碟形運(yùn)算,把N點(diǎn)FFT分解成一個(gè)以上的短序列的FFT,N = rl*r2,包括以下步驟:步驟1:將x(n)改寫成x(nl,n0),利用x(n) = x(r2m+n〇) =x(m,n〇), f' = (),2- 1 r\ 1 =riY...\-1步驟2:做r2個(gè)rl點(diǎn)的FFT,得到 X1(k0,n0);尤1(&為乞咖1為風(fēng)' 、 - * "r-〇 k〇 = 0,l,…,n-l;步驟3:把N個(gè)Xl(k0,n0)乘以相應(yīng)的旋轉(zhuǎn)因子,組成Xl'(k0,n0); 弋'(Av ?n) = 4 (軏為)步驟4:做rl 個(gè)r2 點(diǎn)FFT,得到X2(k0,kl);;('A) = Z ki = 0,1,…,r2_l;步驟5:進(jìn)行整序,得到X(kl,k0) =X(k),其中k = rl*kl+k0 ;X(ki,k〇) =X2 (k〇,ki)〇
[0005] 傳統(tǒng)FFT方法,N點(diǎn)FFT的復(fù)乘次數(shù)等于N2,計(jì)算量過(guò)于龐大,計(jì)算延時(shí)長(zhǎng)、動(dòng)態(tài)響應(yīng) 速度慢;使用Cooley-Tukey的FFT算法,把N點(diǎn)FFT分解成幾個(gè)較短序列的FFT,可使復(fù)乘次數(shù) 大大減少;基于Cooley-Tukey的FFT算法在本設(shè)計(jì)中采用Radix-4的碟形運(yùn)算予以實(shí)現(xiàn),相 對(duì)于傳統(tǒng)的Radix-2碟形運(yùn)算在運(yùn)算次數(shù)和運(yùn)算時(shí)間上有了大幅度的減少。
[0006] 進(jìn)一步,步驟4中,旋轉(zhuǎn)因子以向量6# = (3〇80 +」8;[110的形式表現(xiàn),以查找表方 式實(shí)現(xiàn)向量旋轉(zhuǎn)運(yùn)算;該向量的的實(shí)部和虛部存儲(chǔ)在寄存器中,且只存儲(chǔ)在1/8圓內(nèi),即 卜41之間的旋轉(zhuǎn)因子;按照旋轉(zhuǎn)因子的周期性和對(duì)稱性,通過(guò)交換實(shí)部虛部和改變正負(fù)號(hào) 得到其他的旋轉(zhuǎn)因子。本設(shè)計(jì)中,旋轉(zhuǎn)因子只存儲(chǔ)在1/8圓內(nèi),大大減少RAM的存儲(chǔ)空間。
[0007] 本發(fā)明提的優(yōu)點(diǎn)是:使用Cooley-Tukey的FFT算法,把N點(diǎn)FFT分解成幾個(gè)較短序列 的FFT,大大減少?gòu)?fù)乘次數(shù);采用Radix-4的碟形運(yùn)算,解決了計(jì)算延時(shí)長(zhǎng)、動(dòng)態(tài)響應(yīng)速度慢 的問(wèn)題,并利用FPGA豐富邏輯資源給予實(shí)現(xiàn),解決了占用大量RAM空間的問(wèn)題。
【附圖說(shuō)明】
[0008] 圖1是Radix-4的碟形運(yùn)算不意圖。
[0009] 圖2是復(fù)數(shù)加法器結(jié)構(gòu)示意圖。
[0010] 圖3是復(fù)數(shù)減法器結(jié)構(gòu)示意圖。
[0011] 圖4是復(fù)數(shù)乘法器結(jié)構(gòu)示意圖。
[0012] 圖5是旋轉(zhuǎn)因子的選取示意圖。
[0013] 圖6是本發(fā)明方法的實(shí)現(xiàn)框圖。
[0014] 圖7是本發(fā)明蝶形單元的設(shè)計(jì)示意圖。
【具體實(shí)施方式】
[0015] 下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。
[0016] 傳統(tǒng)FFT方法,N點(diǎn)FFT的復(fù)乘次數(shù)等于N2,計(jì)算量過(guò)于龐大,計(jì)算延時(shí)長(zhǎng)、動(dòng)態(tài)響應(yīng) 速度慢;使用Cooley-Tukey的FFT算法,把N點(diǎn)FFT分解成幾個(gè)較短序列的FFT,可使復(fù)乘次數(shù) 大大減少,例如把N點(diǎn)FFT分解成兩個(gè)
-點(diǎn)FFT,則復(fù)乘次數(shù)將減少為
[0017] 這里用假設(shè)進(jìn)行N=rl*r2的二維Cooley -Tukey快速算法,來(lái)解釋Cooley -Tukey 快速算法,分五步驟:
[0018] a?將x(n)改寫成x(nl,n0),利用
[0019] x(n)=x(r2ni+n〇)=x(ni,n〇),] 1 * 1 ' (/?,, =0J, 2,???,/-, -1
[0020] b?做 r2 個(gè) rl 點(diǎn)的 FFT,得到)Q(k0,n0)。 r「1
[0021] (k0,?〇) = ^,n0)W^h, A-(j =0,1, ???,/, -1 n{ ^0'
[0022] c.把N個(gè)Xl(k0,n0)乘以相應(yīng)的旋轉(zhuǎn)因子C,組成Xl'(k0,n0)。
[0023] X^(ka,n0) =
[0024] d?做rl個(gè)r2點(diǎn)FFT,得到X2(k0,kl)。
[0025] X:(k{i,kl) = h -1 ?p=〇
[0026] e ?進(jìn)行整序,得到X(kl ,k0) =X(k),其中k = rl*kl+k0。
[0027] X(ki,ko)=X2(ko,ki)
[0028] 基于Cooley-Tukey的FFT算法在本設(shè)計(jì)中采用Radix-4的碟形運(yùn)算予以實(shí)現(xiàn),相對(duì) 于傳統(tǒng)的Radix-2碟形運(yùn)算在運(yùn)算次數(shù)和運(yùn)算時(shí)間上有了大幅度的減少;從上述的五個(gè)步 驟中可以得出,基于Cooley-Tukey的FFT算法包括復(fù)數(shù)加減法、復(fù)數(shù)乘法和旋轉(zhuǎn)因子$/°的 存取。
[0029]如圖1所示,為Radix-4的碟形運(yùn)算計(jì)算方式。
[0030]計(jì)算公式為:
[0031] X(K)=A+Bffp+Cff2p+Dff3p
[0032] X(K+N/4) =A-jBffp-Cff2P+jDff3P
[0033] X(K+2N/4) =A-jBffp+Cff2P-jDff3P
[0034] X(K+3N/4) =A+jBffp-Cff2P-jDff3P
[0035] 計(jì)算公式可以分割為如下的復(fù)數(shù)運(yùn)算:
[0036] X'[n]=[(x[n]+x[n+N/2])]+[(x[n+N/4]+x[n+3N/4])]
[0037] x'[n+N/2]=[(x[n]+x[n+N/2])]-[(x[n+N/4]+x[n+3N/4])]
[0038] x'[n+N/4]=[(x[n]_x[n+N/2])]-j*[(x[n+N/4]_x[n+3N/4])]
[0039] x'[n+3N/4]=[(x[n]-x[n+N/2])]+j*[(x[n+N/4]-x[n+3N/4])]
[0040] 公式 2
[0041 ] 如圖2-3所示,從公式2中,加減計(jì)算可以歸納為a+b,a-b,a+jb,a-jb四種形式。采 用復(fù)數(shù)加法器和復(fù)數(shù)減法器可以完成此運(yùn)算。
[0042] 如圖4所示,從公式2中,乘法運(yùn)算可以歸納為如下的形式:
[0043] Y=AXB = (a+jb) X (c+jd) = (ac_bd)+j(ad+bc) = yre+jyim
[0044] 對(duì)于A,B相乘的結(jié)果Y來(lái)說(shuō),它的實(shí)部和虛部可以做如下變換:
[0045] yre= (ac_bd) =ac-ad+ad_bd= (c-d)a+(a_b)d
[0046] yim= (ad+bc) =ad-bd+bd+bc= (c+d)b+(a-b)d
[0047] 如圖7所示,為依據(jù)上述加減乘運(yùn)算方法設(shè)計(jì)的蝶形單元。
[0048] 如圖5所示,旋轉(zhuǎn)因子^^^可以表示為向量e# = cos0+jsin0,該向量的的實(shí)部和 虛部存儲(chǔ)在寄存器中,利用查找表方式實(shí)現(xiàn)向量旋轉(zhuǎn)運(yùn)算。在本設(shè)計(jì)中,為了減少RAM的存 儲(chǔ)空間,只存儲(chǔ)在1/8圓內(nèi),§卩^.4之間的旋轉(zhuǎn)因子。其他的旋轉(zhuǎn)因子都是這1/8圓周區(qū)域 內(nèi)旋轉(zhuǎn)因子的變換。按照旋轉(zhuǎn)因子的周期性和對(duì)稱性,其他區(qū)域的旋轉(zhuǎn)因子,通過(guò)交換實(shí)部 虛部和改變正負(fù)號(hào)得到。
[0049] 例如:設(shè)點(diǎn)A為其_
的一個(gè)旋轉(zhuǎn)因子,假設(shè)它寫成矢量形式是A=c〇SX+j* sinx〇
[0050] 則映射到4個(gè)象限內(nèi)的另外7個(gè)投影是:
[0051] sin x+j氺cos x;-cos x+j氺sin x;_sin x+j氺cos x;-cos x+j*(-sin x);
[0052] -sin x+j氺(_cos x);sin x+j氺(_cos x);cos x+j氺(_sin x).
[0053]加起來(lái)一共是8個(gè)數(shù)據(jù)。
[0054]只需要將這樣的一個(gè)數(shù)據(jù)的實(shí)部和虛部的數(shù)值,不包括符號(hào)分別存儲(chǔ)在寄存器同 一個(gè)地址的數(shù)據(jù)存儲(chǔ)單元里,就可以在取出這個(gè)數(shù)據(jù)后,通過(guò)變換,安排好它的實(shí)部和虛 部,重新安插它的正負(fù)號(hào),得到其他在該級(jí)運(yùn)算中所需要的另外7個(gè)旋轉(zhuǎn)因子。
[0055]如圖6所示,運(yùn)算模塊(包括加減運(yùn)算和乘法運(yùn)算)為Radix-4運(yùn)算模塊,控制模塊 產(chǎn)生所有的控制信號(hào)、存儲(chǔ)器1和2的讀寫地址、寫使能、運(yùn)算模塊的啟動(dòng)信號(hào)旋轉(zhuǎn)因子表的 讀寫地址等信號(hào)。
【主權(quán)項(xiàng)】
1. 一種基于Cooley-Tukey的FFT算法,其特征是:利用FPGA芯片,采用Radix-4的碟形運(yùn) 算,把N點(diǎn)FFT分解成一個(gè)以上的短序列的FFT,N=rl *r2,包括以下步驟: 步驟1:將x(n)改寫成x(nl,n0),利用步驟2:做r2個(gè)r 1點(diǎn)的FFT,得到Xl (kO,n0);步驟3:把N個(gè)XI (kO,nO)乘以相應(yīng)的旋轉(zhuǎn)因子,組成XΓ (kO,nO); 步驟4:做r 1個(gè)r2點(diǎn)FFT,得到X2 UO,k 1);步驟5:進(jìn)行整序,得到X(kl,kO)=X(k),其中k = rl*kl+kO; X(ki,ko)=X2(ko,ki)〇2. 根據(jù)權(quán)利要求1所述的一種基于Cooley-Tukey的FFT算法,其特征是:步驟4中,旋轉(zhuǎn) 因子以向量e# = C0s0+jsin0的形式表現(xiàn),以查找表方式實(shí)現(xiàn)向量旋轉(zhuǎn)運(yùn)算;該向量的 的實(shí)部和虛部存儲(chǔ)在寄存器中,且只存儲(chǔ)在1/8圓內(nèi),8卩1。,4之間的旋轉(zhuǎn)因子;按照旋轉(zhuǎn)因 子的周期性和對(duì)稱性,通過(guò)交換實(shí)部虛部和改變正負(fù)號(hào)得到其他的旋轉(zhuǎn)因子。
【文檔編號(hào)】G06F17/14GK105893328SQ201610244184
【公開日】2016年8月24日
【申請(qǐng)日】2016年4月19日
【發(fā)明人】劉明, 仇志凌, 張明, 葛文海
【申請(qǐng)人】南京亞派科技股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
邵阳县| 弥渡县| 台州市| 离岛区| 延庆县| 浦东新区| 青岛市| 利川市| 合肥市| 阿坝县| 彭泽县| 武汉市| 汝南县| 乳山市| 长葛市| 沁源县| 滕州市| 都江堰市| 璧山县| 班玛县| 搜索| 浮山县| 察隅县| 陕西省| 资中县| 长治市| 莒南县| 正阳县| 敖汉旗| 海兴县| 稷山县| 沂水县| 弋阳县| 万州区| 安仁县| 木里| 永新县| 芮城县| 宜城市| 赣榆县| 汪清县|