版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、信號(hào)處理算法設(shè)計(jì)與驗(yàn)證信號(hào)處理專業(yè)同學(xué) 之 算法開(kāi)發(fā) 新手上路 專題講座杜偉韜廣播電視數(shù)字化教育部工程研究中心中國(guó)傳媒大學(xué)2009 11.4 本講座的面向?qū)ο?本講座的內(nèi)容 算法開(kāi)發(fā)中工具鏈的使用 編寫結(jié)構(gòu)化的MATLAB仿真 MATLAB算法向C算法的映射和遷移 混合開(kāi)發(fā)環(huán)境下的算法驗(yàn)證與調(diào)試本講座面向?qū)ο?使用MATLAB開(kāi)發(fā)算法的同學(xué) 完成理論算法設(shè)計(jì)后,需要把算法在某種處理器平臺(tái)上實(shí)現(xiàn)的同學(xué)帶著問(wèn)題來(lái)聽(tīng)課你知道小明是如何做的么?信號(hào)處理應(yīng)用的場(chǎng)景設(shè)想 ,關(guān)于小明信號(hào)處理算法不會(huì)獨(dú)立存在,它需要某些載體和方法,讓數(shù)據(jù)流入到信號(hào)處理系統(tǒng)之中,處理之后再流出去小明是一個(gè)品學(xué)兼優(yōu)的電子系二年級(jí)
2、同學(xué),他先后完成了以下的事情1、用MATLAB的信號(hào)處理工具箱,設(shè)計(jì)了一個(gè)64階、3KHz處的FIR低通濾波器,用MATLAB程序把流行音樂(lè)歌曲WAV文件中的人聲部分濾出來(lái)。2、還是用MATLAB環(huán)境,濾波器的系數(shù)不變,但是濾波器運(yùn)算的部分用C程序?qū)崿F(xiàn),因?yàn)镃的執(zhí)行要快一些,并且MATLAB里面可以編譯并且調(diào)用C程序3、為了更快,小明把浮點(diǎn)版本的C程序修改成定點(diǎn)版本的C程序了4、后來(lái)小明學(xué)習(xí)了數(shù)字信號(hào)處理器DSP的知識(shí),老師獎(jiǎng)勵(lì)給他一個(gè)開(kāi)發(fā)板,于是小明可以對(duì)音頻線輸入的經(jīng)過(guò)ADC轉(zhuǎn)換的數(shù)字聲音信號(hào)進(jìn)行實(shí)時(shí)的低通濾波處理,然后再用DAC把數(shù)字音頻信號(hào)轉(zhuǎn)換成模擬信號(hào)送到音頻輸出線上去,他把這個(gè)開(kāi)發(fā)
3、板連接在電腦音頻輸出孔和音箱之間,聽(tīng)著不一樣的音樂(lè)作品,小明快樂(lè)的享受著自己的小成果提問(wèn),小明除了豎著耳朵聽(tīng)之外,有什么方法能精確一些的分析、評(píng)價(jià)自己做的濾波器的計(jì)算結(jié)果是否正確呢本講座的內(nèi)容 算法開(kāi)發(fā)中工具鏈的使用 編寫結(jié)構(gòu)化的MATLAB仿真 MATLAB算法向C算法的映射和遷移 嵌入式開(kāi)發(fā)環(huán)境下的算法驗(yàn)證與調(diào)試一家之言 僅供參考關(guān)于工具的使用方法,最詳細(xì)的說(shuō)明應(yīng)當(dāng)是工具的手冊(cè)。本講座的焦點(diǎn)在于,如何用一些 算法開(kāi)發(fā)中工具鏈的使用 編寫結(jié)構(gòu)化的MATLAB仿真 MATLAB算法向C算法的映射和遷移 嵌入式開(kāi)發(fā)環(huán)境下的算法驗(yàn)證與調(diào)試算法中的工具鏈 算法的開(kāi)發(fā)流程 工具的用途 各層環(huán)境之間的差
4、異 (matlab,c,目標(biāo)cpu) 調(diào)試面臨的問(wèn)題(數(shù)據(jù)一致性分析)算法開(kāi)發(fā)的流程理論算法設(shè)計(jì)參考文獻(xiàn),公式推導(dǎo),算法可行性,開(kāi)發(fā)快速算法、浮點(diǎn)仿真,算法的理論性能MATLAB C定點(diǎn)算法設(shè)計(jì)分析精度、動(dòng)態(tài)范圍,確定字長(zhǎng),數(shù)制系統(tǒng)、定點(diǎn)仿真MATLAB C面向CPU算法設(shè)計(jì)發(fā)揮CPU運(yùn)算單元存取通道的并行度,利用CPU的特定庫(kù)函數(shù),指令集C匯編問(wèn)題:為什么不直接在目標(biāo)平臺(tái)上開(kāi)發(fā)算法,這樣的結(jié)果更加真實(shí),似乎離著最終結(jié)果也更加接近?采用多個(gè)工具開(kāi)發(fā)的原因問(wèn)題本身是分層次的 理論上應(yīng)當(dāng)選取哪些算法?推導(dǎo)出來(lái)額數(shù)學(xué)公式正確么?有快速算法么?如何驗(yàn)證理論計(jì)算和快速算法的正確性? 定點(diǎn)策略應(yīng)該如何制定
5、?設(shè)定的動(dòng)態(tài)范圍和精度夠么? 應(yīng)該選取哪些處理器的指令集呢?哪些算法和數(shù)據(jù)應(yīng)當(dāng)放在處理器的片內(nèi)/片外呢?解決問(wèn)題也是有順序的 一次面臨太多問(wèn)題,普通人無(wú)法思考的面面俱到。 集中優(yōu)勢(shì)兵力、各個(gè)擊破。 層次化的設(shè)計(jì),上層為底層提供需求,底層約束上層的可行性工具本身也是有特點(diǎn)的 容易生成激勵(lì)信號(hào)和測(cè)試環(huán)境模型,評(píng)價(jià)結(jié)果性能 執(zhí)行速度較快,跨平臺(tái)的移植能力較好 容易導(dǎo)出大量的節(jié)點(diǎn)信息,便于分析和調(diào)試 面向最終硬件結(jié)構(gòu),最能反映出真實(shí)結(jié)果數(shù)據(jù)一致性的驗(yàn)證文件傳遞法激勵(lì)信號(hào)目目標(biāo)標(biāo)算算法法浮浮點(diǎn)點(diǎn)版版本本目目標(biāo)標(biāo)算算法法定定點(diǎn)點(diǎn)版版本本定點(diǎn)化輸出浮點(diǎn)信號(hào)輸出定點(diǎn)信號(hào)浮點(diǎn)輸入數(shù)據(jù)文件對(duì)比/誤差分析目目標(biāo)標(biāo)算
6、算法法C C定定點(diǎn)點(diǎn)版版本本目目標(biāo)標(biāo)算算法法C C浮浮點(diǎn)點(diǎn)版版本本定點(diǎn)輸入數(shù)據(jù)文件浮點(diǎn)輸出數(shù)據(jù)文件定點(diǎn)輸出數(shù)據(jù)文件加載到Matlab中Matlab環(huán)境C環(huán)境目標(biāo)CPU環(huán)境目目標(biāo)標(biāo)算算法法C CP PU U平平臺(tái)臺(tái)版版本本外設(shè)輸入數(shù)據(jù)外設(shè)輸出數(shù)據(jù)控制程序 不是所有的仿真都必須要做,根據(jù)情況有選擇的做一部分就可,因?yàn)樽罱K要做的是目標(biāo)CPU環(huán)境下的算法代碼數(shù)據(jù)一致性的驗(yàn)證內(nèi)存?zhèn)鬟f法激勵(lì)信號(hào)目目標(biāo)標(biāo)算算法法浮浮點(diǎn)點(diǎn)版版本本目目標(biāo)標(biāo)算算法法定定點(diǎn)點(diǎn)版版本本定點(diǎn)化輸出浮點(diǎn)信號(hào)輸出定點(diǎn)信號(hào)對(duì)比/誤差分析目目標(biāo)標(biāo)算算法法C C定定點(diǎn)點(diǎn)版版本本目目標(biāo)標(biāo)算算法法C C浮浮點(diǎn)點(diǎn)版版本本MEX接口MEX接口Matla
7、b環(huán)境C環(huán)境Matlab里面可以編譯和調(diào)用C程序,這稱為MEX(Matlab擴(kuò)展)我們提供的fft參考設(shè)計(jì)中 包括 文件數(shù)據(jù)傳遞和MEX數(shù)據(jù)傳遞性能,是對(duì)比出來(lái)的 什么東西之間互相對(duì)比 首先有一個(gè)理想性能的指標(biāo),比如從公式中推導(dǎo)和分析出來(lái)的性能。 浮點(diǎn)算法模型的性能。不同字長(zhǎng)配置的定點(diǎn)算法的性能。目標(biāo)處理器平臺(tái)的算法性能。 怎么對(duì)比 根據(jù)你的算法應(yīng)用情況,關(guān)注特定的指標(biāo)參數(shù),比如,信噪比,誤碼率,最大誤差,平均誤差等等。理論算法設(shè)計(jì) 制定需求 輸入的信號(hào)特性,輸出的信號(hào)數(shù)據(jù)特性 處理速度的需求,資源開(kāi)銷的需求 推導(dǎo)算法 選取符合需求的算法 推導(dǎo)算法標(biāo)號(hào)系統(tǒng)和運(yùn)算規(guī)則 研究算法的存儲(chǔ)結(jié)構(gòu) 仿真算
8、法 使用仿真工具進(jìn)行浮點(diǎn)仿真 確定最終目標(biāo)算法的公式 該仿真結(jié)果即為理性情況下系統(tǒng)的性能10( )() ( )Niy nx ni h i定點(diǎn)算法設(shè)計(jì) 分析數(shù)據(jù)動(dòng)態(tài)范圍 信號(hào)數(shù)值邊界分析 數(shù)值定標(biāo) 用多少比特字長(zhǎng)表示各個(gè)數(shù)據(jù) 符號(hào)位,整數(shù)部分,小數(shù)部分 運(yùn)算單元特性:溢出,舍入模式 仿真驗(yàn)證 比特精確的參考模型 用于電路仿真或匯編優(yōu)化對(duì)照所謂定點(diǎn),就是一種根據(jù)需要自定義的整數(shù)的含義,舉例來(lái)說(shuō)19491001雖然是一個(gè)整數(shù),但是在特定的環(huán)境下也可以表示一個(gè)日期。信號(hào)處理中的定點(diǎn)就是規(guī)定了一個(gè)整數(shù)的整數(shù)位和小數(shù)位,例如規(guī)定0 x1002,整數(shù)和小數(shù)部分各占8個(gè)比特。這是程序員所定義的,但對(duì)于編譯器是
9、透明的,處理器仍然按照整數(shù)乘加運(yùn)算對(duì)這些數(shù)據(jù)進(jìn)行操作。很神奇是么?我小時(shí)候還以為電視機(jī)里面藏著人呢。舉例: 矢量點(diǎn)積X15.X1X0Y15.Y1Y0Z+ X(-1,+1) Y(-1,+1) T(-1,+1) Z(-16,+16)X,Y (1,0,15)T(1,0,15)(S,IL,FL)Z(1,3,15)16位CPU:X,Y (1,0,15) T(1,0,15)Z(1,3,12)32位CPU:X,Y (1,16,15) T(1,16,15) Z(1,16,15)150)()(iiyixz很多時(shí)候,32位CPU上的定點(diǎn)算法開(kāi)發(fā)起來(lái)更容易,甚至不用考慮加法的溢出 算法開(kāi)發(fā)中工具鏈的使用 編寫結(jié)構(gòu)化
10、的MATLAB仿真 MATLAB算法向C算法的映射和遷移 嵌入式開(kāi)發(fā)環(huán)境下的算法驗(yàn)證與調(diào)試結(jié)構(gòu)化的MATLAB仿真 什么是結(jié)構(gòu)化? 為什么要結(jié)構(gòu)化? MATLAB數(shù)據(jù)的結(jié)構(gòu)化什么是結(jié)構(gòu)化?A 程序1中的變量BCDBCDA程序2中的變量所謂結(jié)構(gòu)化的程序就是指,1 過(guò)程結(jié)構(gòu)化,這是通過(guò)函數(shù)調(diào)用來(lái)實(shí)現(xiàn)的,其對(duì)立面是用GOTO語(yǔ)句進(jìn)行滿天飛。2存儲(chǔ)結(jié)構(gòu)化,這是利用結(jié)構(gòu)體之類的語(yǔ)法進(jìn)行變量之間依存關(guān)系的捆綁,與之相對(duì)的是用全局變量隨意命名為什么要結(jié)構(gòu)化 1、過(guò)程結(jié)構(gòu)化的意義是封裝完成特定功能的代碼過(guò)程,這個(gè)重要性很明顯。 2、數(shù)據(jù)的結(jié)構(gòu)化容易被忽視 尤其是Matlab,可以隨意開(kāi)辟新變量 當(dāng)你面對(duì)幾十個(gè)
11、、上百個(gè)全局變量的時(shí)候你甚至記不清某個(gè)變量的用途,哭吧。 所以要把數(shù)據(jù)結(jié)構(gòu)化 例如變量“器官”的子變量有“心”,“肝”,“肺”等 和C的類與對(duì)象有些類似Matlab的數(shù)據(jù)結(jié)構(gòu)化 Matlab可以有結(jié)構(gòu)體對(duì)象 例如,在命令行敲入“s.a=1”,看看會(huì)發(fā)生什么 關(guān)于結(jié)構(gòu)體類型,請(qǐng)從Matlab的幫助文檔了解更多情況 結(jié)構(gòu)體可以作為函數(shù)調(diào)用的參數(shù) 例如某個(gè)函數(shù),把結(jié)構(gòu)體s的兩個(gè)成員變量a, b 縮小為0.5倍,可以這樣寫在文件foo.m中寫入function s = foo(s) a = s.a; b = s.b; a = a*0.5; b = b*0.5; s.a = a; s.b = b;end
12、在命令行敲入S1.a = 4; S1.b = 6;S1 = foo(S1);Matlab函數(shù)參數(shù)的結(jié)構(gòu)化 看看哪個(gè)代碼風(fēng)格更好 1、k=foo(a,b,c,d,e,f,g) 2、k=foo(s) / s has sub element a,b,c,d,e,f,g 避免Matlab函數(shù)的入口參數(shù)過(guò)多 1,你可能會(huì)記不住有哪些參數(shù) 2,如果調(diào)用時(shí)傳遞參數(shù)的順序錯(cuò)了就麻煩了 比如 函數(shù)原型是k=foo(a,b,c,d,e,f,g) 調(diào)用時(shí)寫成k1=foo(b1,a1,g1,f1,c1,d1,e1) 你覺(jué)得不可能?等你的變量名長(zhǎng)度大于8個(gè)字母的時(shí)候就可能了結(jié)構(gòu)化的Matlab仿真包含什么內(nèi)容 初始化部
13、分 配置部分 算法模型部分 誤差分析部分大部分的電子系統(tǒng)都包括 初始化、配置、運(yùn)行的功能?;仡櫮愕氖謾C(jī),開(kāi)機(jī)的時(shí)候?yàn)槭裁幢容^慢呢?因?yàn)樵诔跏蓟布蛙浖?。?lái)電話的時(shí)候是否有鈴聲和振動(dòng)取決于什么呢?取決于情景模式的配置對(duì)吧。對(duì)于一個(gè)正在開(kāi)發(fā)的系統(tǒng),為了評(píng)價(jià)和調(diào)試它,我們還要有一些探測(cè)、分析系統(tǒng)的輸出數(shù)據(jù)和內(nèi)部數(shù)據(jù)的方法。仿真部件的作用激勵(lì)信號(hào)目目標(biāo)標(biāo)算算法法浮浮點(diǎn)點(diǎn)版版本本目目標(biāo)標(biāo)算算法法定定點(diǎn)點(diǎn)版版本本定點(diǎn)化輸出浮點(diǎn)信號(hào)輸出定點(diǎn)信號(hào)對(duì)比/誤差分析配置激勵(lì)信號(hào)的類型:白噪聲、窄帶噪聲、單音正弦、多音正弦等初始化激勵(lì)信號(hào)的數(shù)據(jù)配置定點(diǎn)策略,如16位字長(zhǎng),32位字長(zhǎng)等初始化算法模型的常量,例如濾波器
14、系數(shù)配置算法模型的參數(shù),例如濾波器的通帶阻帶、過(guò)渡帶配置分析模塊參數(shù),例如譜分析FFT長(zhǎng)度,窗函數(shù)類型初始化分析模塊的常量,例如譜分析窗函數(shù)數(shù)據(jù)通常情況下,電子系統(tǒng)的各個(gè)模塊都需要配置和初始化,請(qǐng)思考,當(dāng)你用遙控器配置電視機(jī)顯示1頻道的時(shí)候,這個(gè)配置命令被解析并轉(zhuǎn)化為高頻頭的頻點(diǎn)配置命令和顯像管的臺(tái)號(hào)顯示配置命令。但是內(nèi)部的配置解析命令對(duì)用戶卻是透明、不可見(jiàn)的。我們?cè)O(shè)計(jì)程序的時(shí)候也是類似的電子設(shè)備的初始化就像運(yùn)動(dòng)員的熱身,為了在當(dāng)前模式下運(yùn)行,需要先準(zhǔn)備一些數(shù)據(jù)或是內(nèi)存空間等資源結(jié)構(gòu)化Matlab代碼的寫法 用結(jié)構(gòu)體來(lái)封裝不同的數(shù)據(jù) 結(jié)構(gòu)體的嵌套體現(xiàn)數(shù)據(jù)的包容關(guān)系 不同功能的代碼過(guò)程用函數(shù)封裝
15、 結(jié)構(gòu)體作為函數(shù)參數(shù)cfg:配置數(shù)據(jù)model:算法模型數(shù)據(jù)init:初始化的數(shù)據(jù)tb:全部仿真數(shù)據(jù)濾波器系數(shù)激勵(lì)信號(hào)浮點(diǎn)模型定點(diǎn)模型激勵(lì)配置算法模型配置 算法開(kāi)發(fā)中工具鏈的使用 編寫結(jié)構(gòu)化的MATLAB仿真 MATLAB算法向C算法的映射和遷移 嵌入式開(kāi)發(fā)環(huán)境下的算法驗(yàn)證與調(diào)試從Matlab到C 為什么要寫C代碼 寫C代碼有哪些問(wèn)題要考慮 如何驗(yàn)證C算法代碼 C算法代碼的結(jié)構(gòu)是怎樣的為什么要寫C代碼 1、C代碼的執(zhí)行速度快(較Matlab) 2、跨平臺(tái)移植性好 3、Matlab可以自動(dòng)把M函數(shù)轉(zhuǎn)化為C代碼 用自動(dòng)生成的C代碼可以么? 某些時(shí)候可以,比如在PC上運(yùn)行,對(duì)執(zhí)行速度要求較低時(shí) 自動(dòng)
16、生成的C代碼可讀性相對(duì)較差,不好維護(hù) 對(duì)高效率運(yùn)行的需求難以滿足 對(duì)嵌入式環(huán)境不太適合 4、所以,我們要自己手工寫C代碼寫C代碼有哪些問(wèn)題要考慮 數(shù)據(jù)結(jié)構(gòu) 函數(shù)功能的劃分 有效率的標(biāo)號(hào)和尋址策略C算法函數(shù)的數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)的重要性 設(shè)計(jì)良好的數(shù)據(jù)結(jié)構(gòu)能夠提高代碼效率 例如,重用一些已經(jīng)計(jì)算出來(lái)的數(shù)據(jù),避免再次計(jì)算浪費(fèi)CPU 例如,利于代碼算法的人工維護(hù) 變量類型的劃分 全局變量、常量 局部變量 內(nèi)存堆和結(jié)構(gòu)體變量 如何劃分需要根據(jù)特定目標(biāo)應(yīng)用,多看優(yōu)秀的開(kāi)源算法代碼積累經(jīng)驗(yàn) 可參考 杜偉韜 編寫的“規(guī)范化的 C算法代碼結(jié)構(gòu)”數(shù)據(jù)結(jié)構(gòu)圖Libmad的一部分?jǐn)?shù)據(jù)結(jié)構(gòu)例子,這種圖表有利于對(duì)代碼進(jìn)行
17、認(rèn)識(shí)和維護(hù)struct mad_stream streamunsigned char const *bufferunsigned char const *bufendunsigned longskiplenintsyncunsigned long freerateunsigned char const *this_frameunsigned char const *next_framestruct mad_bitptrptrstruct mad_bitptranc_ptrunsigned intanc_bitlenunsigned char(*main_data)MAD_BUFFER_MDLE
18、Nunsigned intmd_lenintoptionsenum mad_errorerrorstruct mad_frameframestruct mad_headerheaderintoptionsmad_fixed_tsbsample23632mad_fixed_t(*overlap)23218struct mad_synthsynthmad_fixed_tfilter222168unsigned intphasestruct mad_pcmpcmstruct mad_bitptranc_ptrunsigned char const*byteunsigned shortcacheuns
19、igned shortleftstruct mad_headerheaderenum mad_layerlayerenum mad_modemodeintmode_extensionenum mad_emphasisemphasisunsigned longbitrateunsigned intsamplerateunsigned shortcrc_checkunsigned shortcrc_targetintflagsintprivate_bitsmad_timer_tdurationstruct*syncstruct mad_streamstreamstruct mad_framefra
20、mestruct mad_synthsynthstruct mad_bitptrptrunsigned char const*byteunsigned shortcacheunsigned shortleftstruct mad_pcmpcmunsigned intsamplerateunsigned shortchannelsunsigned shortlengthmad_fixed_tsamples21152函數(shù)功能的劃分 重復(fù)使用的代碼包裝到一個(gè)函數(shù)里 不同功能的代碼包裝到不同的函數(shù)里 區(qū)分Init、Run和Close功能的函數(shù) 合理掌握函數(shù)的代碼尺寸 盡量不要太大,尤其是超出你的思考范
21、圍的標(biāo)號(hào)和尋址的策略 什么是標(biāo)號(hào)? 區(qū)分算法理論概念上的標(biāo)號(hào)描述與實(shí)際算法代碼中的尋址策略 概念上的標(biāo)號(hào)描述是為了更好理解 代碼中的尋址策略是為了更有效率 例如FIR濾波器 概念上是個(gè)移位寄存器 實(shí)際代碼里會(huì)真正移動(dòng)數(shù)據(jù)么? 那么如何做到移位的效果呢? 答案:不移動(dòng)數(shù)據(jù),移動(dòng)指針30)()()(iihinxnyDDDh(0)h(1)h(2)h(3)x(n)x(n-1)x(n-2)x(n-3)y(n)x(3)x(2)x(1)x(0)h(0)h(1)h(2)h(3)x(3)x(2)x(1)x(4)x(3)x(2)x(5)x(4)提問(wèn) 在C版本的FIR中,設(shè)有4個(gè)數(shù)據(jù)要移位寄存 用1維數(shù)組存儲(chǔ)數(shù)據(jù)
22、最新的數(shù)據(jù)和最老的數(shù)據(jù)的位置關(guān)系是怎樣的。 設(shè)最新的數(shù)據(jù)下標(biāo)是I,那么最老的數(shù)據(jù)的下標(biāo)K和I的關(guān)系是什么? 在C代碼中用什么表達(dá)式通過(guò)I計(jì)算K?x(3)x(2)x(1)x(0)h(0)h(1)h(2)h(3)x(3)x(2)x(1)x(4)x(3)x(2)x(5)x(4)標(biāo)號(hào)和尋址的總結(jié) 概念上的標(biāo)號(hào)系統(tǒng)是給理論算法和數(shù)學(xué)用的 代碼中的尋址策略是概念上標(biāo)號(hào)系統(tǒng)的具體化,但是要有效率和適應(yīng)處理器情況 好的尋址策略有時(shí)會(huì)很重要 利用訪問(wèn)的局部性,增加Cache命中率 提高運(yùn)算的并發(fā)性,利用更多的計(jì)算單元(尤其是對(duì)于SIMD,VLIW結(jié)構(gòu)的CPU))(2)( 1)()2/()2/()(2 )()()
23、( 112/012/0nynynyNihNinxnyihinxnyNiNi例如:分成兩部分計(jì)算代碼尋址策略對(duì)緩存命中的影響)(2)( 1)()2/()2/()(2 )()()( 112/012/0nynynyNihNinxnyihinxnyNiNi)(2)( 1)() 12() 12()(2 )2()2()( 112/012/0nynynyihinxnyihinxnyNiNi串行計(jì)算的CPU上,哪個(gè)算法Cache命中率高如何驗(yàn)證C算法代碼 在目標(biāo)板子或系統(tǒng)中實(shí)際運(yùn)行 在PC上面用數(shù)據(jù)文件的方法 嵌入到Matlab里面跑混合仿真提問(wèn):你認(rèn)為以上的這些手段各有什么利弊?提示,從觀測(cè)數(shù)據(jù)的精細(xì)程度,
24、分析數(shù)據(jù)的難易程度,評(píng)價(jià)實(shí)時(shí)性效果,評(píng)價(jià)算法的真實(shí)應(yīng)用效果的角度來(lái)考慮。 算法開(kāi)發(fā)中工具鏈的使用 編寫結(jié)構(gòu)化的MATLAB仿真 MATLAB算法向C算法的映射和遷移 嵌入式開(kāi)發(fā)環(huán)境下的算法驗(yàn)證與調(diào)試嵌入式環(huán)境下的算法開(kāi)發(fā) 資源受限的嵌入式環(huán)境 目標(biāo)處理器上的軟件仿真 硬件系統(tǒng)中的實(shí)時(shí)調(diào)試資源受限的嵌入式環(huán)境 內(nèi)存容量小 處理器的片內(nèi)存儲(chǔ)器、板載存儲(chǔ)器都比較小 裝不下很多的測(cè)試數(shù)據(jù) 平臺(tái)功能有限 不方便在目標(biāo)系統(tǒng)上運(yùn)行復(fù)雜的結(jié)果分析算法 I/O能力有限 不方便把大量的數(shù)據(jù)實(shí)時(shí)傳送給PC機(jī)進(jìn)行分析目標(biāo)處理器上的軟件仿真 優(yōu)點(diǎn) 有充足的虛擬出來(lái)的存儲(chǔ)器資源 和PC環(huán)境交換數(shù)據(jù)比較快(應(yīng)用軟件之間交換數(shù)據(jù)) 方便用MATLAB進(jìn)行結(jié)果分析和評(píng)價(jià) 局限性 通常不帶Cache命中的仿真,導(dǎo)致真實(shí)度降低 只能看到算法代碼的執(zhí)行速度,無(wú)法驗(yàn)證I/O交互的效率,比如無(wú)法仿真DMA的過(guò)程硬件系統(tǒng)中的實(shí)時(shí)調(diào)試 實(shí)時(shí)性和數(shù)據(jù)正確性的矛盾 監(jiān)測(cè)數(shù)據(jù)需要消耗CPU和RAM資源 消耗了資源會(huì)影響實(shí)時(shí)性 優(yōu)點(diǎn) 反映最真實(shí)的算法性能,包括Cache Miss 帶有I/O交互和DMA,能夠反映出實(shí)時(shí)性 局限性 數(shù)據(jù)的監(jiān)測(cè)難度較大 不方便進(jìn)行數(shù)據(jù)分析沒(méi)有銀彈,但有策略 沒(méi)有萬(wàn)能的調(diào)試方法 但是 調(diào)試的策略是不變的 望遠(yuǎn)鏡和顯微鏡并用的方法 采用宏觀的觀測(cè)、評(píng)價(jià)方法定位(包括猜測(cè)?)到出現(xiàn)問(wèn)題的模塊 采
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)設(shè)備代收款協(xié)議書
- 電力公司會(huì)計(jì)崗位協(xié)議
- 跨區(qū)域投資二手房買賣合同模板
- 地下人行通道盾構(gòu)機(jī)租賃合同
- 美容設(shè)備租賃協(xié)議
- 教育行業(yè)加班輔導(dǎo)計(jì)劃
- 專利申請(qǐng)委托協(xié)議
- 歷史文化街區(qū)綠化施工合同
- 藝術(shù)設(shè)計(jì)教師勞動(dòng)合同模板
- 水廠監(jiān)理協(xié)議書
- 2024-2025學(xué)年部編版語(yǔ)文八年級(jí)上冊(cè) 期中綜合測(cè)試卷(四)
- 2024至2030年中國(guó)別墅行業(yè)投資前景分析預(yù)測(cè)及未來(lái)趨勢(shì)發(fā)展預(yù)測(cè)報(bào)告
- 初中七年級(jí)上冊(cè)綜合實(shí)踐活動(dòng) 低碳生活從我做起 教學(xué)設(shè)計(jì)
- 2024年金融貸款居間服務(wù)合同樣本(四篇)
- 2024中石油校園招聘高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 醫(yī)師定期考核(簡(jiǎn)易程序)練習(xí)及答案
- 2022-2023學(xué)年北京市海淀區(qū)清華附中八年級(jí)(上)期中數(shù)學(xué)試卷【含解析】
- 2024-2030年中國(guó)會(huì)計(jì)師事務(wù)所行業(yè)深度分析及發(fā)展前景與發(fā)展戰(zhàn)略研究報(bào)告
- 2024年國(guó)有企業(yè)新質(zhì)生產(chǎn)力調(diào)研報(bào)告
- 2024年安全員A證考試試題庫(kù)附答案
- 2024年國(guó)家開(kāi)放大學(xué)電大《金融學(xué)》形考任務(wù)答案
評(píng)論
0/150
提交評(píng)論