數字信號處理工程師是怎麼養成的?

題主目前是一名通信工程專業的本科生,以後想做數字信號處理方向的工作,想知道數字信號處理工程師的學習路線是怎麼樣的?現在應該如何準備?最好能夠有推薦的教材和學習路線來實例說明。


談談我的理解。

(一)寫在前面

鄙人大二的時候自學的TI的數字信號處理器,做了幾個小項目,但總有瓶頸,覺得這裡水太深,還想終身從事DSP開發行業,就報考了某學校的航海學院,選了一個做水下通信技術的導師,經歷這麼多年,也有自己的理解,身邊也多多少少有業內人士在世界各地苟延殘喘的活著,所以給題主提提建議,希望有所幫助。

(二)真的存在「DSP工程師」?

首先要明確,數字信號處理是一門非常非常基礎的學科,至於說數字信號處理工程師的稱呼,個人覺得不太貼切,範圍實在太廣,暫且理解為利用數字信號處理的知識解決問題的人吧。數字信號處理這條路到研究生階段還要重新學習(增補知識),將自適應信號和隨機信號等擴充進來作為理論基礎,還增添小波,希爾伯特等多種處理手段,另外,你會發現大學期間的微積分已經滿足不了後續的學習了,所以還要繼續學習數學。到這裡之後你會發現,原來學習的數字信號處理(本科階段)僅僅是冰山一角,因為,本科階段研究的是確定信號和線性時不變系統,這個確實很簡單,可現實生活中沒有那麼多確定和那麼多的碰巧,尤其是題主所在的通信行業。所以我個人覺得,作為一個「數字信號處理工程師」,把自己的理論局限於確定信號和線性時不變系統,肯定是不合格的!在這裡,我推薦考研,且要考好學校。考研的目的清晰,第一,通過考研可以把數學英語好好學學;第二,可以繼續深造,導師畢竟是業內人士,導師人脈幫助和你接觸的人的群體進行進一步篩選。第三,你可以繼續學習,來真真正正的在這個領域打好基礎。 也有人說,我可以在社會上工作,然後自學,我想說的是,自學確實是一種能力,但你能保證一定能找到你想做的工作嗎,你的發展方向必須要符合公司的發展方向,這裡能自主的成分有幾分呢?且社會比校園內部浮躁,多多少少會干擾你的效率。如果真的喜歡這個行業,差這兩年嗎?再說真有能力的人,不會被考試難住。其實本人也是工作一年後決定辭職考研的。

有了理論基礎,就可以選擇基於這個基礎的方向,每個方向上還有自己支撐理論。比如,做圖像處理,視頻處理,音頻處理,生物醫學或者我們做的水下通信,這些所有的方向都是基於數字信號處理理論基礎,然後衍生出自己領域的知識。因此,我就覺得,不應該叫數字信號處理工程師,應該叫具體方向的工程師,比如圖像處理工程師,音頻處理工程師。題主可以選擇一個具體方向來研究,每一個方向都很有很高的研究價值,就算去公司應聘,這個薪水也是很高的。

(三)數字信號處理和數字信號處理器都叫DSP

有一些人提到嵌入式的DSP晶元,這個不要和數字信號處理混為一談,它不是數字信號處理的專利,雖然叫做數字信號處理器,但這裡邊既有淵源又有差別。DSP晶元屬於嵌入式範疇,驅動和開發模式和思維和一般單片機無異。只不過在硬體結構上適合運算信號處理的演算法,在外設方面提供了更為人性,更方便工程的功能。一般你可以看到,控制領域也會大量應用DSP設備來跑控制領域的演算法。如果要真正的作為一個所謂的數字信號處理工程師,你應該做的主要工作是面向專業領域的專業演算法,對於配置DSP設備,應屬於嵌入式工程師該做的事情,但話說回來,你要和這個DSP處理器經常打交道,你也同樣要熟練掌握的。同樣道理,FPGA也是一樣。DSP無法滿足工程要求的時候,剛好FPGA可以解決,可考慮作為此方案的解決方法,FPGA的獨有並行機制很大的優勢(舉個例子,我就不拽專業辭彙了,就通俗的說下,我們當初做水下無線無線通信,調製信號用DSP做的,載波出現諧波干擾,在陸地上完全可以忽略,但水下要還要考慮此頻段的干擾信號對某種海洋生物的威脅,故需提純載波信號,就是用的數字方法,但增加了演算法計算量,速度上不來,導致通信失敗,故換了一款FPGA)。(不要就此認為FPGA比DSP牛逼,並不是這樣,抓老鼠用老鼠夾,切菜用菜刀,什麼地方該用什麼就用什麼)。但DSP和FPGA裡面的演算法,原理都是一樣的,只是需要變換語言,考慮指令不同,運行條件不同等等,演算法核心是不變的。可作為數字信號處理工程師的你,這些演算法的執行器或者說載體,是不是都應該有所掌握呢,你不能說我這套演算法好使,MATLAB驗證過了就OK了,移植後實際狀況可能並不是那麼順利,你需要考慮這些執行器的指令周期,內存,時序等等,或者要用他們專門的語言來翻譯,所以,你要學的東西比想像中多的多。你有一身武藝,一身武功,同樣的招式,要拿刀也好使,拿劍也好使,刀和劍只是工具而已,DSP和FPGA單片機就是這武器,真正做一個江湖人,刀劍都要會用的。俗話說,人前顯貴,人後遭罪,這身武功並不容易,你需要投入很多很多,也許你的朋友畢業開始攢錢買房子,穿起大牌衣服,給女票買了名貴的化妝品,換了好幾千元的手機的時候,你還過得如此清貧,別灰心,你會守得雲開見月明的。

只想強調一點,需要功夫在裡面,功夫就是時間精力金錢和你的心。速成的東西別人能速成,你也同樣能速成,根本沒有差異優勢,而信號處理給了你這個機會,因為,沒人可以速成。

(四)學習建議

至於給題主的建議,本人建議把數學學好至關重要,翻開信號處理的課程你也看到了,滿篇的數學推導和證明,你需要去耐心理解這個過程,這樣就需要很好的數學功底,建立好了這樣的思維,你才能真正的理解這門學科,否則死記公式,為了做題,你痛苦,它也痛苦。那麼多定理的出現並不是為了難為你,而是為了解決問題,因為這些看上去複雜的定理出現,才使問題變得簡單,只要你用心拜讀,發現這些定理真特么神奇。另外,還是建議題主考研,俗話說,師傅領進門,修行在個人。我們要入這個門,就要有這樣的關係,不斷的去接觸這個行業的人,他們用什麼軟體,他們學到什麼程度,你也一目了然,也知道自己處於什麼位置了,也知道自己該學什麼了。可以說,碩士畢業時候,本科工作兩年了,可能碩士剛畢業在職場上欠缺一些經驗還需要適應社會大環境而不如本科生,但十年後能一樣嗎?誰會在乎多出那兩年的經驗,又是誰基礎打的牢,別小瞧這三年,年紀輕輕把基礎打好才能建起高樓大廈,所以不要急。如果題主無考研打算,本科一樣也有活路,目前信號處理技術處於不斷發展中,但經典的也就那些,一般工程常用演算法的都被下游公司(德州儀器,ADI這些)封裝到函數庫中,且普適性非常友好,在網站上也能獲的一些網友的開源演算法,能把這些經典的演算法的功能,適用條件輸入輸出搞懂一般工程沒有問題了。例如,德州儀器的DSP,數字圖像處理,音頻的處理基本演算法都可以直接調用庫的,且浮點和定點庫分開,開發過程根本不需要了解演算法具體如何實現,只把目標放在內存分配,庫配置上就好了。我覺得,如果本科畢業能把信號處理什麼功能,適用條件,輸入輸出掰扯明白,足以找一個不錯的工作,後續通過學習和工程擴展,也會進步不少的。

(五)學歷建議

另外,補充一下,TI公司招FAE已經是碩士打底,更別說進研發。如果想去大公司沒有學歷,門都進不去。同樣是5年工作經驗,含金量上肯定有差別。畢業初幾年能在大公司跪舔,有大公司的背景支撐,你在以後在此行業會吃的很開,你在小公司經常聽見這經理以前都是在XXX牛逼公司做過的(很可能就是一個打醬油的小角色),所以,切勿做井底之蛙,只看當下,要眼光放長,做好規劃,年薪20W的在信號處理行業算是低收入人群了。有些人普遍認為,本科畢業再賺錢,讀碩士後還要花錢。請改正這樣的思維定式,讀碩士≠不賺錢。本科教育後尤其是工科,是可以賺錢的,只要你實力過硬,可以接私活做,一個項目結清也是有幾萬的收入,加上努力學習得到獎學金和導師費,還有名義上的助教費,收入怎麼能少呢?只是從事這類行業的人很低調,不太在乎衣食住行的質量,但這並不代表「窮」。

有很多適合本科畢業生的道路,甚至去選擇這些道路比研究生去走這條道路要有優勢,比如CS行業,這個上手極快,賺的也多,尤其能去那種外包公司歷練幾年的,那更是吃香,純屬拼工作經驗與工作強度。最終,可以總結一條規律,如果這個行業需要有強大的理論背景,考研是最適合的,如果這個行業工程性強,那麼就適合早早工作。就像是,通信專業,控制專業,視覺處理專業,人工智慧這類的,需要強大的理論支撐,需要學習鑽研,所以考研是最適合不過的了;又比如,像是開發軟體C++,Java這類的,極具現實實用性,工程性極強,越早上手,做過的項目越多越好。題外話,我建議本科生畢業生能考慮C++的道路,這個老專業或許比不上當今的Java啊,安卓啊,可如果能在十年內修鍊成多線程編程骨灰級的玩手,這是很有前途的。

綜上,在信號處理行業,無論研究生從背景,平台,基礎上,都有優勢。所以建議再進一步,攻讀碩士學位甚至博士,作為自己事業道路的起點。


有興趣,努力,勤奮。

我認識一個最高學歷為高中的,沒參加高考,自學了大學數學物理,信號處理,fpga 開發,PCB設計,機械原理,能自己獨立設計高速板。

現在在自己創業做東西, 才24歲。


這個專業和這個方向一般都要讀碩士 博士的,因為很多理論複雜,本科不一定掌握的好。 說到教材的話,肯定先把信號系統和數字信號處理兩門課學好,然後學好數字信號處理理論後想做工程的話要學 偏硬體的東西,ASIC FPGA什麼的。


呵呵 我就是信號處理工程師 本科 研究生現在不值錢 我工作2年大概15w的水平 研究生大部分還不如我 如果你想做這行學的好沒讀研的必要(能上清華上交這種級別的除外) 要掌握的不同行業不一樣 一般來說信號系統 數字信號處理 通信原理 matlab等都是必要的 另外再加dsp或者fpga開發技術


您好,信號處理工程師軟體和硬體分別需要具備什麼技能呢


學好數字信號處理,譜分析,陣列信號處理,統計信號處理,隨機過程,矩陣分析。多思考,多寫代碼做模擬。沒有捷徑可走!


威靈頓·日天,寫了很多,大體不錯,但對DSP和FPGA關係的理解有些偏差。我做DSP+FPGA系統很多年了,從TI的C62、C67到C64,我的理解是:DSP只適合做大規模數據運算,控制功能很弱,因此必須加入控制能力很強的FPGA,才能使系統發揮出真正的效率。所以DSP和FPGA是互補關係,DSP用以計算,FPGA用來做控制。當然有些系統計算能力要求不高,直接用好一些FPGA就搞定了,但從成本上講,不如用低端些DSP+FPGA系統。簡而言之,讓每個器件做自己最擅長的事情,才有高的效費比


推薦閱讀:

在Minecraft里如何建立可靠的通訊與郵遞系統?
地震之後有什麼黑科技能夠提高找到被困者的幾率?
國內通信壟斷嗎?
隨著用戶越來越處於一種隨時在線的狀態,現在IM及社交工具的用戶「在線狀態」這個功能還是恰當的設計么?還如果砍掉,你覺得有多大影響?
通信基站在爆炸中受損,用什麼措施來保持通信順暢?

TAG:圖像處理 | 通信 | 數字信號處理 | 工程師 |