算法密集型電子和通信系統的設計需要大量算法和熟悉C/C++的人員。現在,從算法到c代碼有望一鍵實現了。
不久前,數學計算軟件的領先軟件供應商MathWorks公司發布了MATLAB Coder。該公司稱是一個全新平臺,是過去十年專注努力的結晶,特點是可以直接從MATLAB算法到實現一鍵完成。
MathWorks中國教育業務發展總監陳煒博士解釋道,傳統上,算法密集型電子和通信系統的設計通常首先使用MATLAB:MATLAB算法最后需要轉換為c代碼,以集成到最終產品中。從MATLAB手動轉換為c可能需要數天到數周的時間,有可能產生設計錯誤并造成投放市場的時間延遲。現在,設計工程師可以使用MATLAB加快開發任務(如定點設計和原型建立),然后使用MATLAB Coder自動生成c代碼。傳統軟件分工
MATLAB是矩陣實驗室的縮寫復合詞,在MathWorks看來,所有算法都可以轉化為矩陣,而MATLAB的目標是做算法易于開發的科學計算平臺。現在的算法工程師或系統工程師可能是某個方面專家,例如信號處理、圖像處理、通信處理以及其他算法密集型的開發應用。這些領域核心的工作需要一些創新或自己的IP(知識產權)。對于使用MATLAB的設計、系統和研發工程師/研究人員,當他們把新的構想和算法寫出來后,真正實現需要硬件或軟件工程師重新寫C/C++代碼來實現。
傳統的從算法到c代碼的流程如圖l。左側是某一領域的專家,有新的想法后,例如想開發新的雷達系統(算法),或新一代的手機(不僅有藍牙、WiFi和3G等,還要完成多任務處理等),在概念設計階段最重要的任務是算法/想法是可以實現的。MATLAB可以快速地實現算法,因為優勢是一種算法平臺,無需專門針對某種硬件和考慮細節,例如數據類型、內存管理等(這些是c代碼開發的人實現的),只需要考慮概念能否實現。用MATLAB寫完程序,驗證合格后,再由軟硬件工程師手動地、重新基于這些算法,改寫成c/C++代碼。為何要用C,C++
如圖l右側,需要用C/c++。其原因是:首先,現在的新技術開發是跨團隊或跨領域的,而c是多領域通用的。很可能是某團隊只開發某一功能,最重要的是需要多團隊工作融合成一個平臺,需要C/C++源代碼來分享,因此第一部分要手動寫出c/c++源代碼。

第二部分是,exe,在算法開發后,要驗證,快速原型,即到硬件上后實時是什么樣:還有測試,需要開發各種測試環境,保證模型在各種開發環境下都是可靠的,用,exe可執行文件就可以脫離MATLAB平臺,這是為快速原型開發和測試時使用的。
Jib文件(庫文件)生成了靜態庫,可使更多的組件或仿真器來直接調用。
MEX是MATLAB Executable(MATLAB下的可執行文件),意味著當有了c語言后,還可以生成MEX可執行文件,回到MATLAB環境,做更多的驗證。
傳統來說,既有專家級的人物開發算法,又有另一部分人寫c代碼,這是一個循環往復的工作,直至拿到c/c++代碼獲得最優處理。有了MATLAB Coder,工作簡化為一個人一一系統工程師或算法工程師,想一個新的算法或需求,然后再直接生成代碼,即源文件,這大大縮減了代碼生成時間。