5.舉例及程式設計中的心得
5.1舉例
「第3章 dsp晶元的定點運算.doc」這篇文章中給了乙個很簡單有能說明問題的例子,不想動大腦了,直接引用過來如下。
這是乙個對語音頻號(0.3khz~3.4khz)進行低通濾波的c語言程式,低通濾波的截止頻率為800hz,濾波器採用19點的有限衝擊響應fir濾波。語音頻號的取樣頻率為8khz,每個語音樣值按16位整型數存放在insp.dat檔案中。
例3.7 語音頻號800hz 19點fir低通濾波c語言浮點程式
複製** **如下:
#include
const int length = 180 /*語音幀長為180點=22www.cppcns.com.5ms@8khz取樣*/
void filter(int xin[ ],int xout[ ],int n,float h[ ]); /*濾波子程式說明*/
/*19點濾波器係數*/
static float h[19]=
;static int x1[length+20];
/*低通濾波浮點子程式*/
void filter(int xin[ ],int xout[ ],int n,float h[ ])
for(i=0;i}
/*主程式*/
void main( )
fcloseall( ); /*關閉檔案*/
return(0);
}例3.8 語音頻號800hz 19點fir低通濾波c語言定點程式
複製** **如下:
#include
const int length=180;
void filter(int xin[ ],int xout[ ],int n,int h[ ]);
static int h[19]=; /*q15*/
static int x1[length+20];
/*低通濾波定點子程式*/
void filter(int xin[ ],int xout[ ],int n,int h[ ])
for(i=0;i
}主程式與浮點的完全一樣。
5.2程式設計中的心得
通過上邊的例子,相信大家都大致明白了轉換的過程。乙個函式模組如此,乙個大的軟體專案的轉換也無非如此。所不同的是,對於乙個專案,很少有乙個個單獨的模組,一般都是幾個或數個模組都有聯絡,千一發而動全身,所以,再進行轉換之前,最好理清各個軟體模組之間的關係www.cppcns.com。
協調,協調,再協調。
寫到這裡, 與afreez一起學習dsp中浮點轉定點運算這個問題的討論終於可以收筆了。拖拖拉拉,拉了有3個月之久,現在終於可以了卻自己的愧疚了。從第三部分開始,寫的有寫著急,因為沒有足夠的時間來寫,還想把剩下的寫完,只能這麼解決了。我想,文章只是給出學者乙個思路,如果自己以後遇到了這樣的問題,還需要自己去探索的,沒有一勞永逸的文章,畢竟問題都各個不同嗎。
本文標題: dsp中浮點轉定點運算--舉例及程式設計中的心得
本文位址:
IQMath是什麼 浮點轉定點運算,dsp
註明出處 blog.csdn.net lanmanck 網上搜了一下沒發現很合適的,特寫出來與大家分享。大家都知道嵌入式系統裡帶浮點運算指令的cpu都比較少,ti的dsp也是定點的便宜。那麼我們運算時想把浮點數速度提高怎麼辦?有人就想到了,把浮點轉成定點就可以了。好了iqmath就是幹這個事的。舉個...
IQMath是什麼 浮點轉定點運算,dsp
註明出處 blog.csdn.net lanmanck 網上搜了一下沒發現非常合適的,特寫出來與大家分享。大家都知道嵌入式系統裡帶浮點運算指令的cpu都比較少,ti的dsp也是定點的廉價。那麼我們運算時想把浮點數速度提高怎麼辦?有人就想到了,把浮點轉成定點就能夠了。好了iqmath就是幹這個事的。舉...
DSP 浮點與定點
浮點與定點也是經常是初學者困惑的問題,在選擇dsp器件的時候,是採用浮點還是採用定點,如果用定點是16位還是32位?其實這個問題和你的演算法所要求的訊號的動態範圍有關。定點的計算不過是把乙個資料當作整數來處理,通常ad取樣來的都是整數,這個數相對於真實的模擬訊號有乙個刻度因子,大家都知道用乙個16位...