• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于FPGA的FIR濾波器設計

      2014-04-21 00:46:58周劍敏謝文雷葛斌陳虞蘇
      新媒體研究 2014年3期

      周劍敏+謝文雷+葛斌+陳虞蘇

      摘 要 介紹了基于FPGA芯片進行FIR濾波器的設計過程,具體涉及到MATLAB對FIR濾波器的仿真、數(shù)據(jù)的量化和生成;FPGA對FIR濾波器的設計、仿真和數(shù)據(jù)生成,最后形成FPGA和MATLAB聯(lián)合設計FIR濾波器。

      關鍵詞 FGPA;FIR;MATLAB

      中圖分類號:TN911 文獻標識碼:A 文章編號:1671-7597(2014)03-0034-01

      濾波器在信息領域應用非常廣泛。隨著現(xiàn)代技術的發(fā)展,如何在FPGA上進行濾波器設計是非常迫切的。FPGA是通過硬件描述語言進行程序設計的,要把基于數(shù)學基礎的濾波器在FPGA上設計出來還是有一定難度的。而用MATLAB進行濾波器設計又顯的非常簡單。因此需要把MATLAB和FPGA技術結合起來,進行濾波器設計,這樣就能事半功倍。本文將以一個簡單的FIR濾波器為例,用MATLAB和FPGA進行聯(lián)合設計濾波器。

      1 基本流程

      一般采用MATLAB和FPGA聯(lián)合設計有多種方法。一種是由MATLAB軟件設計出濾波器系統(tǒng),并在MATLAB中利用工具直接轉換成VHDL代碼;一種是由MATLBA軟件設計出FIR關鍵系數(shù)和測試文件,然后在FPGA中使用系數(shù)設計濾波器,使用測試文件形成測試結果,最后再由MATLAB把測試結果驗證,證明FPGA設計濾波器的正確性。第一種方法在濾波器系統(tǒng)較為復雜的時候,很難滿足設計要求,調試時反而顯得復雜。本文采用第二種方法進行濾波器的聯(lián)合設計。

      2 MATLAB的FIR系數(shù)和測試文件生成

      在設計時,使用MATLAB產(chǎn)生濾波器系數(shù)和測試文件。MATLAB里有各種專門的FIR濾波器系數(shù)生成函數(shù),如B=fir1(N,Wn,'high')函數(shù)。

      B:表示返回的FIR濾波器的單位脈沖響應,長度為N+1。

      N:表示濾波器的階數(shù)。

      Wn:表示濾波器的截至頻率。

      High:表示是高通濾波器。

      用戶只要按濾波器設計要求,獲取B系數(shù)就能得到浮點數(shù)表示的FIR濾波器系數(shù)。

      濾波器系數(shù)生成后,需要有測試文件測試濾波器的特性。用戶可以根據(jù)濾波器的特性,利用MATLAB自動生成測試文件。如利用MATLAB程序:

      sin_t = 0:1/fs:0.1;

      sin_c1 = 2 * pi * f_1 * sin_t;

      sin_c2 = 2 * pi * f_2 * sin_t;

      sj = 1/3*sin(sin_c1) + sin(sin_c2);

      自動就生產(chǎn)了含有2個頻率成份的浮點數(shù)表示的sj信號。

      若僅僅是檢測MATLAB設計的FIR濾波器是否正確,可以把sj輸入到FIR濾波器中,觀察濾波器輸出就可以判斷。目前是要在FPGA中設計并驗證濾波器。所以需要把MATLAB生成的濾波器系數(shù)和測試文件量化成符合FPGA需要的二進制表示的整數(shù)。

      使用MATLAB,對sj信號進行12位量化過程如下:

      bin_long = 12;

      sj_quan_12 = round(sj /max(sj))*(2^(bin_long-1)-1));

      量化完成后,還需要把參數(shù)寫成文件,等待FPGA的調用。MATLAB中把測試文件寫成文件如下:

      fidout=fopen('result.txt','w'); %open result file and wait for write

      for i=1:length(sj_quan_12)

      for j=1:bin_long

      fprintf(fidout,'%s',sj_quan_12(i,j));

      if mod(j,bin_long)==0

      fprintf(fidout,'\r\n');

      end

      end

      end

      fclose(fidout);

      3 FPGA程序設計

      本文利用XILINX公司的FPGA芯片XC6SLX45作為硬件載體,使用VHDL語言進行FIR程序編寫。具體元件說明如下:

      COMPONENT fir_book

      PORT(

      rst : IN std_logic;--復位信號輸入

      clk : IN std_logic;--時鐘輸入

      xin : IN std_logic_vector(11 downto 0);--測試文件/實際信號輸入

      yout : OUT std_logic_vector(28 downto 0)—FIR濾波輸出

      );

      END COMPONENT;

      xin為FIR濾波器的輸入端,同時也是仿真時,MATLAB生成的測試文件輸入端。yin是xin經(jīng)過FPGA內部設計的FIR濾波器濾波后的輸出信號。

      在FPGA中輸入MATLAB的測試文件的程序如下:

      file invect:text is "e:\\matlab_study \result.txt";

      if not(endfile(invect)) then

      readline(invect,vline);

      read(vline,v);

      xin<=v;

      end if;

      在FPGA中輸出仿真給MATLAB測試的程序如下:

      file outvect:text open write_mode is "e:\\matlab_study \result_out.txt";

      write(lineout,viout,right,10);

      writeline(outvect,lineout);

      4 結論

      在不需要經(jīng)過硬件環(huán)境實際測試情況下,可以通過MATLAB生成濾波器系數(shù)和測試文件,再由FGPA按生成的濾波器系數(shù)和測試文件仿真生成結果文件,最后MATLAB測試結果文件,驗證FPGA濾波器設計的正確性?;贔PGA和MATLAB的濾波器設計具有很強的實用性和參考意義。

      參考文獻

      [1]任志健,萬智萍,朱俊南,朱柏輝.ARM嵌入式遠程視頻監(jiān)控數(shù)據(jù)采集系統(tǒng)設計[J].計算技術與自動化,2013(2):100-1104.

      [2]Lattice Semiconductor Corporation. Lattice ECP3 Family Data Sheet[EB/OL].2010.http://www.latticesemi.com.

      [3]Elpida Memory Inc. 1G bits DDR2 SDRAM [EB/OL].2009. http://www.elpida.com.

      [4]Winbond Inc. 3V 64M-BIT SERIAL FLASH MEMEORY WITH DUAL/QUAD SPI&QPI[EB/OL].2009.http://www.winbond.com.

      [5]ATMEL Corporation . 3-Wire Serial EEPROs [EB/OL].2009. http://www.atmel.com.

      [6]Aptina Imaging Corporation . 1/2.5-Inch 5Mp CMOS Digital Image Sensor [EB/OL].2005.http://www.aptina. com.

      [7]MARVELL Corporation . Alaska 88e1118r Technical Product Brief[EB/OL].2011.http://www.marvell. com.endprint

      乐亭县| 泸水县| 霍林郭勒市| 无棣县| 重庆市| 合川市| 万年县| 安多县| 益阳市| 临武县| 泗洪县| 治多县| 华安县| 临夏市| 耒阳市| 潍坊市| 康乐县| 新竹市| 乾安县| 茶陵县| 金坛市| 南溪县| 黄大仙区| 盐山县| 长丰县| 汉川市| 镇沅| 建宁县| 桃江县| 彭泽县| 夏邑县| 合作市| 甘孜县| 昆明市| 巧家县| 南华县| 江口县| 丹寨县| 蒲江县| 泰和县| 石景山区|