H.264視頻編解碼標準以其高壓縮比、高圖像質量、良好的網絡適應性等優點在數字電視廣播、網絡視頻流媒體傳輸、視頻實時通信等許多方面得到了廣泛應用。提高H.264幀內預測的速度,對于實時性要求較高的場合具有重大的意義。為此,論文在總結國內外相關研究的基礎上,針對H.264幀內預測的軟件實現具有運算量大、實時性差等缺點,提出了一種基于FPGA的高并行、多流水線結構的幀內預測算法的硬件實現。 論文在詳細闡述H.264幀內預測編碼技術的基礎上,分析了17種預測模式算法,通過Matlab仿真建模,直觀地給出了預測模式的預測效果,并在JM12.2官方驗證平臺上測試比較各種預測模式對編碼性能的影響,以此為根據對幀內預測模式進行裁剪。接著論文提出了基于FPGA的幀內預測系統的設計方案,將前段采集劍的RGB圖像通過色度轉換模塊轉換成YCbCr圖像,存入片外SDRAM中,控制模塊負責讀寫數掘送入幀內預測模塊進行處理。幀內預測模塊中,采用一種并行結構的可配置處理單元,即先求和再移位最后限幅的電路結構,來計算各預測模式下的預測值,極大地減小了預測電路的復雜度。針對預測模式選擇算法,論文采用多模式并行運算的方法,即多個結構相同的殘差計算模塊,同時計算各種預測模式對應的SATD值,充分發揮FPGA高速并行處理的能力。其中Hadamard變換使用行列分離的變換方法,采用蝶形快速變換、流水線設計提高硬件的工作效率。最后,論文設計了LCD顯示模塊直觀地顯示所得到的最佳預測模式。 整個幀內預測系統被劃分成多個功能模塊,采用層次化、模塊化的設計思想,并采用流水線結構和乒乓操作來提高系統的并行性、運行速度和總線利用率。所有模塊用Verilog語言設計,由Modelsim仿真和集成開發環境ISE9.1綜合。仿真與綜合結果表明,系統時鐘頻率最高達到106.7MHz。該設計在完成功能的基礎上,能夠較好地滿足實時性要求。論文對于研究基于FPGA的H.264視頻壓縮編碼系統進行了有益的探索,具有一定的實用價值。
上傳時間: 2013-07-21
上傳用戶:ABCD_ABCD
遺傳算法是一種基于自然選擇原理的優化算法,在很多領域有著廣泛的應用。但是,遺傳算法使用計算機軟件實現時,會隨著問題復雜度和求解精度要求的提高,產生很大的計算延時,這種計算的延時限制了遺傳算法在很多實時性要求較高場合的應用。為了提升運行速度,可以使用FPGA作為硬件平臺,設計數字系統完成遺傳算法。和軟件實現相比,硬件實現盡管在實時性和并行性方面具有很大優勢,但同時會導致系統的靈活性不足、通用性不強。本文針對上述矛盾,使用基于功能的模塊化思想,將基于FPGA的遺傳算法硬件平臺劃分成兩類模塊:系統功能模塊和算子功能模塊。針對不同問題,可以在保持系統功能模塊不變的前提下,選擇不同的遺傳算子功能模塊完成所需要的優化運算。本文基于Xilinx公司的Virtex5系列FPGA平臺,使用VerilogHDL語言實現了偽隨機數發生模塊、隨機數接口模塊、存儲器接口/控制模塊和系統控制模塊等系統功能模塊,以及基本位交叉算子模塊、PMX交叉算子模塊、基本位變異算子模塊、交換變異算子模塊和逆轉變異算子模塊等遺傳算法功能模塊,構建了系統功能構架和遺傳算子庫。該設計方法不僅使遺傳算法平臺在解決問題時具有更高的靈活性和通用性,而且維持了系統架構的穩定。本文設計了多峰值、不連續、不可導函數的極值問題和16座城市的旅行商問題 (TSP)對遺傳算法硬件平臺進行了測試。根據測試結果,該硬件平臺表現良好,所求取的最優解誤差均在1%以內。相對于軟件實現,該系統在求解一些復雜問題時,速度可以提高2個數量級。最后,本文使用FPGA實現了粗粒度并行遺傳算法模型,并用于 TSP問題的求解。將硬件平臺的運行速度在上述基礎上提高了近1倍,取得了顯著的效果。關鍵詞:遺傳算法,硬件實現,并行設計,FPGA,TSP
上傳時間: 2013-06-15
上傳用戶:hakim
論文研究了基于Bayer格式的CCD原始圖像的顏色插值算法,并將設計的改進算法應用到以FPGA為核心的圖像采集前端。出于對成本和體積的考慮,一般的數字圖像采集系統采用單片CCD或CMOS圖像傳感器,然后在感光表面覆蓋一層顏色濾波陣列(CFA),經過CFA后每個像素點只能獲得物理三基色(紅、綠、藍)其中一種分量,形成馬賽克圖像。為了獲得全彩色圖像,就要利用周圍像素點的值近似地計算出被濾掉的顏色分量,稱這個過程為顏色插值。由于當前對圖像采集系統的實時性要求越來越高,業內已經開始廣泛采用FPGA來進行圖像處理,充分發揮硬件并行運算的速度優勢,以求在處理速度和成像質量兩方面均達到滿意的效果。。主要的工作內容如下: 本文首先介紹了彩色濾波陣列、圖像色彩恢復和插值算法的概念,然后分析和研究了當下常用的顏色插值算法,如雙線性插值算法、加權系數法等等,指出了各個算法的特點和不足;接下來針對硬件系統并行運算的特性和實時性處理的要求,結合其中兩種算法的思路設計了適用于硬件的改進算法,該算法主要引入了方向標志位的概念以及平滑的邊界仲裁法則來檢測邊界,借鑒利用梯度的三角函數關系來判斷邊界方向,通過簡化且適用于硬件的方法計算加權系數,從而選擇合適的方向進行插值。 在介紹了FPGA用于圖像處理的優勢后,針對FPGA的特點采用模塊化結構設計,詳細闡述了本文算法的軟件實現過程及所使用到的關鍵技術;文章設計了一個以FPGA為核心的前端圖像采集平臺,并將改進插值算法應用到整個系統當中。詳細分析了采集前端的硬件需求,討論了核心芯片的選型和硬件平臺設計中的注意事項,完成了印制電路板的制作。 文章通過MATLAB仿真得到了量化的性能評估數據,并選取幾種算法在硬件平臺上運行,得到了實驗圖片。最后結合圖片的視覺效果和仿真數據對幾種不同算法的效果進行了評估和比較,證明改進的算法對圖像質量有所增強,取得了良好的效果。
上傳時間: 2013-06-11
上傳用戶:it男一枚
高性能ADC產品的出現,給混合信號測試領域帶來前所未有的挑戰。并行ADC測試方案實現了多個ADC測試過程的并行化和實時化,減少了單個ADC的平均測試時間,從而降低ADC測試成本。本文實現了基于FPGA的ADC并行測試方法。在閱讀相關文獻的基礎上,總結了常用ADC參數測試方法和測試流程。使用FPGA實現時域參數評估算法和頻域參數評估算法,并對2個ADC在不同樣本數條件下進行并行測試。 本研究通過在FPGA內部實現ADC測試時域算法和頻域算法相結合的方法來搭建測試系統,完成了音頻編解碼器WM8731L的控制模式接口、音頻數據接口、ADC測試時域算法和頻域算法的FPGA實現。整個測試系統使用Angilent33220A任意信號發生器提供模擬激勵信號,共用一個FPGA內部實現的采樣時鐘控制模塊。并行測試系統將WM8731.L片內的兩個獨立ADC的串行輸出數據分流成左右兩通道,并對其進行串并轉換。然后對左右兩個通道分別配置一個FFT算法模塊和時域算法模塊,并行地實現了ADC參數的評估算法。在樣本數分別為128和4096的實驗條件下,對WM8731L片內2個被測.ADC并行地進行參數評估,被測參數包括增益GAIN、偏移量OFFSET、信噪比SNR、信號與噪聲諧波失真比SINAD、總諧波失真THD等5個常用參數。實驗結果表明,通過在FPGA內配置2個獨立的參數計算模塊,可并行地實現對2個相同ADC的參數評估,減小單個ADC的平均測試時間。FPGA片內實時評估算法的實現節省了測試樣本傳輸至自動測試機PC端的時間。而且只需將HDL代碼多次復制,就可實現多個被測ADC在同一時刻并行地被評估,配置靈活。基于FPGA的ADC并行測試方法易于實現,具有可行性,但由于噪聲的影響,測試精度有待進一步提高。該方法可用于自動測試機的混合信號選項卡或測試子系統。
上傳時間: 2013-06-07
上傳用戶:gps6888
神經網絡控制算法作為一種比較成熟的智能控制算法,在空空導彈的理論研究中也得到了很多應用,但它的實際應用通常是通過軟件實現的,而軟件實現是串行執行指令,運行速度慢,可靠性低,很難滿足實際導彈制導系統實時性的要求。控制算法硬件實現的最大特點就是可提高控制算法的實時運算速度和可靠性。本課題針對導彈制導系統,以FPGA為硬件平臺研究神經網絡控制算法的硬件實現。本文首先對BP神經網絡算法思想進行了深入分析,并對BP網絡的各個階段進行了理論推導,最后對BP神經網絡PID飛行控制算法進行了研究和總結,為硬件實現提供了理論基礎。基于對上述理論的深入研究和分析,本文提出了一種適合FPGA實現該神經網絡控制算法的硬件實現模型。在該模型中,神經網絡各層之間采用串行執行數據方式,層間則采用并行運行方式,可有效提高系統的運算速度。由于模塊化、層次化的自頂向下的模塊化設計方法可有效減少錯誤的產生,是設計復雜大規模系統的理想設計方法。本文采用了此設計方法,通過把系統模塊化,對各個子模塊分別用VHDL硬件描述語言進行描述,并基于QUARTUS II軟件開發平臺進行綜合和仿真,直到達到研究設計要求。最后將仿真程序源代碼下載配置到具體的Cyclone II系列EP2C70 FPGA芯片中,應用于某實際導彈控制系統的研究。理論分析和實驗結果表明該神經網絡飛行控制算法的FPGA硬件實現是有效可行的,可滿足系統實時性的要求,為制導系統的實際工程實現提供了基礎。
上傳時間: 2013-04-24
上傳用戶:冇尾飛鉈
數字PID控制算法是將模擬PID離散化得到,各參數有著明顯的物理意義,調整方便,所以PID控制器很受工程技術人員的喜愛。
上傳時間: 2013-10-15
上傳用戶:nairui21
中望CAD2010體驗版正式發布。作為中望公司的最新年度力作,在繼承以往版本優勢的基礎上,中望CAD2010融入了以“安全漏洞抓取、內存池優化、位圖和矢量圖混合處理”等多項可以極大提高軟件穩定性和效率的中望正在申請全球專利的獨創技術,新增了眾多實用的新功能,在整體性能上實現了巨大的飛躍,主要體現在以下幾方面: 大圖紙處理能力的提升 文字所見即所得、消隱打印等新功能 二次開發接口更加成熟 一、大圖紙處理能力的提升 中望CAD2010版采用了更先進的內存管理以及壓縮技術,采用了一些新的優化算法,使得中望CAD常用命令執行效率和資源占用情況得到進一步的提高,特別是在低內存配置下大圖紙的處理能力,大大減少了圖紙內存資源占用量,提升了大圖紙處理速度。主要體現在: 大圖紙內存占用量顯著下降,平均下降約30%,地形圖類圖紙則平均下降50%; 實體縮放和平移,zoom\pan\redraw更加順暢; 保存速度更快、數據更安全,保存速度平均有40%的提升。 二、新增功能 1、文字所見即所得 文字編輯器有多處改進,文字編輯時顯示的樣式為最后在圖面上的樣式,達到了所見即所得的效果。文字編輯器新加入段落設置,可進行制表位、縮進、段落對齊方式、段落間距和段落行距等項目的調整。另外,在文字編輯器內可直接改變文字傾斜、高度、寬度等特征。 2、消隱打印 中望CAD2010版本支持二維和三維對象的消隱打印,在打印對象時消除隱藏線,不考慮其在屏幕上的顯示方式。此次消隱打印功能主要體現在以下兩個方面: (一)、平臺相關命令和功能的調整 視口的“屬性”:增加“著色打印”選項(“線框”和“消隱”兩種著色打印項) 選擇視口后,右鍵菜單支持“著色打印”項( “線框”和“隱藏”兩種模式) 命令mview增加了“著色打印”功能項,可以方便用戶設置視口的“著色打印屬性”(線框和消隱兩種模式) 打印”對話框調整:在布局空間,激活“打印”對話框,以前的“消隱打印”選項顯示為“隱藏圖紙空間對象”。 頁面設置管理器啟動的“打印設置”對話框調整:圖紙空間中,通過頁面設置管理器激活的“打印設置”對話框,以前的“消隱打印”選項顯示為“隱藏圖紙空間對象” (二)、消隱打印使用方法的調整 模型空間: 可通過“打印”或“頁面設置管理器”打開的“打印設置”對話框中的“消隱打印”選項來控制模型空間的對象是否消隱打印,同時包含消隱打印預覽,若勾選“消隱打印”按鈕,模型空間的對象將被消隱打印出來。 布局空間: 若要在布局空間消隱打印對象,分為兩種情況: 1) 布局空間視口外的對象是否消隱,直接取決于“打印設置”對話框中“隱藏圖紙空間對象”按鈕是否被勾選; 2)布局空間視口中的對象是否消隱,取決于視口本身的屬性,即“著色打印”特性選項,必須確保該選項為“消隱”才可消隱打印或預覽 3、圖層狀態管理器 可以創建多個命名圖層狀態,以保存圖層的狀態列表,用戶可以通過選擇圖層狀態來表現圖紙的不同顯示效果。這種圖層狀態可以輸出供其它圖紙使用,也可以輸入其它保存的圖層狀態設置。 4、文字定點縮放 能夠依據文字位置的特征點,如中心,左下等,作為基準點,對多行文字或單行文字進行縮放,同時不改變基準點位置。 5、Splinedit新功能 全面支持樣條曲線的編輯,主要體現在SPLINEDIT命令行提示中,如下: 擬合數據(F)/閉合樣條(C)/移動(M) 頂點(V)/精度(R)/反向(E)/撤消(U)/<退出(X)>: 擬合數據: 增加(A)/閉合(C)/刪除數據(D)/移動(M)/清理(P)/切線(T)/<退出(X)>: 增加、刪除數據:通過增加、刪除樣條曲線的擬合點來控制樣條曲線的擬合程度。 移動:通過移動指定的擬合點控制樣條曲線的擬合數據 閉合/打開:控制樣條曲線是否閉合。 清理:清除樣條曲線的擬合數據,從而使命令提示信息變為不包含擬合數據的情形。 切線:修改樣條曲線的起點和端點切向。 閉合樣條:將打開的樣條曲線閉合。若選擇的樣條曲線為閉合的,該選項為“打開”,將閉合的樣條曲線打開。 移動:可用來移動樣條曲線的控制點到新的位置。 精度:可通過添加控制點、提高階數或權值的方式更為精密的控制樣條曲線的定義。 反向:調整樣條曲線的方向為反向。 6、捕捉和柵格功能增強 7、支持文件搜索路徑 關于激活注冊:打開CAD界面,找到左上面的“幫助”,激活產品-復制申請碼-再打開你解壓到CAD包找到keygen.exe(也就是注冊機,有的在是“Key”文件里,如果沒有可以到網上下載),輸入申請碼--點擊確定,就中間那個鍵--得到數據 應該是五組-復制再回到上面激活碼頁面,粘貼激活碼確定就ok !復制(粘貼)的時候用 ctrl +c(v),用鼠標右鍵沒用! 如果打開安裝CAD就得注冊才能運行的,那方法也跟上邊的差不多! 其實你在網上一般是找不到激活碼的,因為各個申請碼不一樣,所以別人的激活碼到你那基本上沒用,只能用相應的方法得到激活碼,這方法也就要你自己去試了,我原來也不會裝CAD,但現在一般3分鐘就裝好了,只要知道怎么說了就快了,一般軟件都是一樣的裝法,不會裝可以到網上找資料!有時求人不如求已,自己算比在網上等著別人給你算快多了
上傳時間: 2013-11-18
上傳用戶:段璇琮*
at91rm9200啟動過程教程 系統上電,檢測BMS,選擇系統的啟動方式,如果BMS為高電平,則系統從片內ROM啟動。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個地址處都可以訪問到ROM。由于9200的ROM中固化了一個BOOTLOAER程序。所以PC從0X0處開始執行這個BOOTLOAER(準確的說應該是一級BOOTLOADER)。這個BOOTLOER依次完成以下步驟: 1、PLL SETUP,設置PLLB產生48M時鐘頻率提供給USB DEVICE。同時DEBUG USART也被初始化為48M的時鐘頻率; 2、相應模式下的堆棧設置; 3、檢測主時鐘源(Main oscillator); 4、中斷控制器(AIC)的設置; 5、C 變量的初始化; 6、跳到主函數。 完成以上步驟后,我們可以認為BOOT過程結束,接下來的就是LOADER的過程,或者也可以認為是裝載二級BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來找合法的BOOT程序。所謂合法的指的是在這些存儲設備的開始地址處連續的存放的32個字節,也就是8條指令必須是跳轉指令或者裝載PC的指令,其實這樣規定就是把這8條指令當作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關于如何計算和寫這條指令可以參考用戶手冊。一旦合法的映像找到之后,則BOOT程序會把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當BOOT程序完成了把合法的映像搬到SRAM的任務以后,接下來就進行存儲器的REMAP,經過REMAP之后,SRAM從映設前的0X200000地址處被映設到了0X0地址并且程序從0X0處開始執行。而ROM這時只能在0X100000這個地址處看到了。至此9200就算完成了一種形式的啟動過程。如果BOOT程序在以上所列的幾種存儲設備中找到合法的映像,則自動初始化DEBUG USART口和USB DEVICE口以準備從外部載入映像。對DEBUG口的初始化包括設置參數115200 8 N 1以及運行XMODEM協議。對USB DEVICE進行初始化以及運行DFU協議。現在用戶可以從外部(假定為PC平臺)載入你的映像了。在PC平臺下,以WIN2000為例,你可以用超級終端來完成這個功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設然后執行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內的ROM啟動的一個過程。如果BMS為低電平,則AT91RM9200會從片外的FLASH啟動,這時片外的FLASH的起始地址就是0X0了,接下來的過程和片內啟動的過程是一樣的,只不過這時就需要自己寫啟動代碼了,至于怎么寫,大致的內容和ROM的BOOT差不多,不同的硬件設計可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設計的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說不用像片內啟動可能需要BOOT好幾級了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個開放源代碼的軟件,用戶可以自由下載并根據自己的應用配置。總的說來,筆者以為AT91RM9200的啟動過程比較簡單,ATMEL的服務也不錯,不但提供了片內啟動的功能,還提供了UBOOT可供下載。筆者寫了一個BOOTLODER從片外的FLASHA啟動,效果還可以。 uboot結構與使用uboot是一個龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設的驅動,是一個功能強大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動uboot,還有兩個boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級boot。其源碼可以從atmel的官方網站下載。 我們知道,當9200系統上電后,如果bms為高電平,則系統從片內rom啟動,這時rom中固化的boot程序初始化了debug口并向其發送'c',這時我們打開超級終端會看到ccccc...。這說明系統已經啟動,同時xmodem協議已經啟動,用戶可以通過超級終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內的sram中。這個loder完成的功能主要是初始化時鐘,sdram和xmodem協議,為下載和啟動uboot做準備。當下載了loader.bin后,超級終端會繼續打印:ccccc....。這時我們就可以下在uboot了。uboot將被下載到sdram中的一個地址后并把pc指針調到此處開始執行uboot。接著我們就可以在終端上看到uboot的shell啟動了,提示符uboot>,用戶可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了對內存、flash、網絡、系統啟動等一些命令。 如果系統上電時bms為低電平,則系統從片外的flash啟動。為了從片外的flash啟動uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動后首先執行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開始從片內rom啟動uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫到flash中的目的,假如我們已經啟動了uboot,可以這樣操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系統復位,就可以看到系統先啟動boot,然后解壓縮uboot.gz,然后啟動uboot。注意,這里uboot必須壓縮成.gz文件,否則會出錯。 怎么編譯這三個源碼包呢,首先要建立一個arm的交叉編譯環境,關于如何建立,此處不予說明。建立好了以后,分別解壓源碼包,然后修改Makefile中的編譯器項目,正確填寫你的編譯器的所在路徑。 對loader和boot,直接make。對uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會在當前目錄下分別生成*.bin文件,對于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對loader和boot搞不清楚為什么要兩個,有什么區別嗎?首先有區別,boot主要完成從flash中啟動uboot的功能,他要對uboot的壓縮文件進行解壓,除此之外,他和loader并無大的區別,你可以把boot理解為在loader的基礎上加入了解壓縮.gz的功能而已。所以這兩個并無多大的本質不同,只是他們的使命不同而已。 特別說名的是這三個軟件包都是開放源碼的,所以用戶可以根據自己的系統的情況修改和配置以及裁減,打造屬于自己系統的bootloder。
上傳時間: 2013-10-27
上傳用戶:wsf950131
傳統的基于位置信息的服務(LBS)的隱私保護需要LBS提供者(簡稱LSP)與用戶之間通過第三方作為中介來進行信息交換,但這種模式極易遭到攻擊者攻擊。為此提出一種基于K-匿名機制的隱形空間算法KABSCA(k-anonymity based spatial cloaking algorithm ),通過移動設備獨立建立一個分布式網絡直接與LSP通訊進而避免了第三方的安全威脅。仿真實驗顯示:使用這種算法,用戶可以享受到高質量的信息服務以及高度的隱私保護。
上傳時間: 2013-11-06
上傳用戶:540750247
本文在分析了無線電頻譜管理現狀及頻譜資源緊張的前提下,引出頻譜管理中的認知無線電技術,同時提出了基于博弈論的電磁頻譜管理的模型化方法,深入地分析了博弈論算法的收斂性及效用函數的選擇,并且通過Matlab仿真以最小化系統間總干擾為目標描述了博弈論模型在電磁頻譜動態管理中的應用。
上傳時間: 2013-10-19
上傳用戶:392210346