0. 概述
做FPGA開發或者是嵌入式開發,數字圖像處理是一個很大的領域,回顧下大學里學的模電,數電,單片機原理,數字圖像處理,通信理論,MATLAB,目前比較前沿的Python等知識聯系起來,能更好的指明人生規劃的方向。
1. 模擬電路
都記得我們大學學習的一門課程,模擬電路嗎?難,枯燥,又感覺沒有鬼用。但其實它是模擬世界到數字世界的一道橋梁,模擬信號到數字信號01。我們現在想想,數字圖像是怎么通過模擬轉為數字的?
光有強有弱,呈現在我們眼睛里就是一副灰度圖像(紅外圖像),再加上顏色區分就是彩色圖像(RGB圖像),再加上多個截面的圖像就是3D圖像(人臉識別的圖像)。光信號的強度大小需要經過量化后變為數字信號,即ADC轉換。對,就是模擬電路里面的模數轉換,例如用8位ADC將光信號量化位0~255的數字量就是灰度值,同時ADC轉化時需要配合一些運放組成的模擬電路,ADC和運放就是模擬電路。
光信號通過一路ADC和運放組成的模擬電路將光信號轉化為數字電信號得到矩陣灰度值就是灰度圖像;那彩色圖像怎么來的了?我們知道任何顏色都是有RGB三色組合而來,那我們可以用R的濾光片將R色過濾出來給一路ADC和運放組成的模擬電路轉化為R矩陣值,同樣得到G矩陣值和B矩陣值;最后得到的就是RGB的彩色圖像;采集多個截面的圖像對應的RGB值就得到3D圖像了。
下面是通過python獲取一幅RGB圖片的信息,是一個矩陣9664*1728*3*8bits數據,其中第一個像素的值就是(227,232,236),它正是由3路ADC采集加運放處理得到的數字量。
2. 數字電路和單片機原理
還記得數字電路上對應的實驗都是VHDL的實驗嗎?數字電路告訴我們各種數字邏輯:非或與異。這些邏輯讓我們能夠通過底層的邏輯來實現各種復雜的處理邏輯。還記得當時的數字電路實驗嗎?先是通過最簡單的各種門電路芯片(7系列數字芯片)來搭建數字交通燈等,接著是通過FPGA來搭建數字交通燈,還有用單片機來搭建數字交通燈,為什么同樣的實驗要來來回回做了?老師從來沒有告訴過我們,我們也從來沒有想過為什么:
門電路搭建交通燈,是為了讓我們深刻理解數字電路的底層邏輯,這也是為什么很多做了很久FPGA的人還入不了門,搞不清FPGA的編程思想,把HDL當成C來使用,有點我們從事FPGA開發的要明白,FPGA里面的最小單元是LUT+REG,而不是大學學的各種門;
FPGA來搭建交通燈,書本中用的是VHDL而不是Verilog,因為VHDL更接近底層,通過HDL編程來讓我們明白硬件描述語言這個強大的工具,能不能弄透HDL決定你是否完全入門FPGA;
接著是使用單片機來實現交通燈,這個時候我們用的是匯編或者C來實現的,其實最好的過程還是先匯編后C來實現,因為這門課程是單片機原理,目的是讓大家學習后懂了單片機原理。
而現在的FPGA應用中不光是HDL的開發,而是HDL+CPU開發,已經越來越是嵌入式的集合體,所以我們思路更需要打開:
現在回想起來,大學里面學的數字電路都是重要的基礎理論知識,懂得數字電路和單片機原理,才能更好的用來學習FPGA、單片機、DSP等。但是從來沒有老師告訴我們交叉學習這些理論的重要性,而只是玩玩混混實驗。
3. 數字信號處理、通信理論等
還記得數字信號處理一開始接介紹了ADC,接著就是各種看不懂而沒意思的公式,卷積、傅里葉等等。那時候,唯一的有點實踐的操作就是MATLAB上機實驗,但大多是抄抄抄。更不用說通信理論了,那東西更是空空空,感覺一輩子也不會用上。
但是,我們發現隨著工作年限和能力的提升,我們也后悔當初沒學好這些理論知識,工程實踐沒了這些理論知識,身價掉好多,FPGA做算法的待遇你懂的,但是要做好需要很強的數學等理論功底。
比如:下面的FFT的IP核使用,IP核例化使用沒什么難的,但是對應的原理和如何進行信號處理的話,就需要我們去補補相關的理論:
同樣,H.264視頻壓縮相關的概念也和信息論理論有很大的關系,雖然說我會用就行了,不一定要懂的理論知識,但是玩的轉的大牛都是對理論理解很徹底的。
4. MATLAB和PYTHON
MATLAB是之前我們做嵌入式常用的高級語言驗證工具,用來學習理解線性函數等數學原理,驗證算法,生成ROM的參數表等。現在比較火的Python也是一個不錯的選擇,而且還非常容易上手,可以用它做一些簡單的操作來加速工程開發,下面是通過Python的PIL庫做的一些簡單圖像處理的效果圖,有興趣的話,大家可以去做更深入的研究:
RGB轉灰度圖效果:
邊緣檢測效果:
直方圖均衡效果:
5. 個人感觸
回顧大學數模電,覺得以前沒用的東西,現在很有用而不得不得去重弄。所以,不管你現在在做什么,做的并不是感覺上的毫無用處,指不定未來就靠它來改變你的命運,為了以后的自己,做最好的現在。
如果你很幸運,還在上大學,就應該把大學所學的東西當成一個整體,學以致用,比同齡人再走遠一步。
-
FPGA
+關注
關注
1626文章
21665瀏覽量
601828 -
數字電路
+關注
關注
193文章
1600瀏覽量
80498
原文標題:那些年我們學過的數模電...
文章出處:【微信號:fpga234,微信公眾號:fpga234】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論