線性調(diào)頻信號基于FPGA IP核的脈沖壓縮設(shè)計
2.2.1 FFT運算
對于長度為N的時域序列X(n)的離散傅里葉變換為X(k):
FFT算法主要是利用旋轉(zhuǎn)因子exp(-j2πnk/N)的周期性和對稱性的特點進行改進的算法,可以有效地減小運算量。Xilinx公司的FFT核利用Cooley-Tukey算法實現(xiàn)FFT/IFFT運算,最高支持216點長度的運算,可以實現(xiàn)流水線型、基4、基2三種結(jié)構(gòu),蝶形運算后可選擇對數(shù)據(jù)順序輸出還是倒序輸出,對IP核進行不同的配置,可以實現(xiàn)資源和運算速度的最優(yōu)化。在此選用基4蝶形運算,對于1 024點數(shù)據(jù),需要5級蝶形運算。
Xilinx公司的FFT核的參數(shù)通過GUI界面(見圖5)進行設(shè)置,可設(shè)置的參數(shù)包括FFT點數(shù),運算實施方法,輸入數(shù)據(jù)位數(shù)等,設(shè)置完畢后點擊Generate可即時生成代碼。本文引用地址:http://2s4d.com/article/191135.htm
硬件描述語言采用VHDL,使用時程序中要對器件初始化并進行定義,F(xiàn)FT核的器件定義語句見圖6。
2.2.2 匹配濾波系數(shù)產(chǎn)生
根據(jù)匹配濾波理論,對于一個確定的輸入信號,匹配濾波系數(shù)就是這個輸入信號的頻譜的復(fù)共軛,系數(shù)可以通過Matlab預(yù)先計算出來并以二進制的文件格式進行存儲。此處計算時可以進行加權(quán)處理,在系數(shù)中乘以窗函數(shù)即可。
通過Xilinx公司的單口Block Memory核,可以把Matlab產(chǎn)生的存儲文件加載進去。當(dāng)程序運行時,根據(jù)使能控制信號,把匹配濾波系數(shù)數(shù)據(jù)(1 024點)依次讀取出來,送入乘法器進行后續(xù)運算。BlockMemory核的參數(shù)設(shè)置通過GUI界面進行,可即使生成代碼。
2.2.3 乘法運算
乘法運算部分完成FFT后數(shù)據(jù)與匹配濾波系數(shù)數(shù)據(jù)的復(fù)數(shù)乘法運算。根據(jù)復(fù)數(shù)的乘法規(guī)則。
(A+aj)(B+bj)=(AB-ab)+(Ab+aB)j
兩個復(fù)數(shù)的乘法運算實際上包括了4個實數(shù)的乘法運算,因此,此部分的設(shè)計用到了4個乘法器核。Xilinx公司的乘法器核支持補碼運算,可輸入A,B兩路數(shù)據(jù),每路的輸入數(shù)據(jù)長度可達64 b。乘法器核的參數(shù)設(shè)置也是通過GUI界面進行,可即使生成代碼。
評論