




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第8章
TMS320C55x軟件設計實例
如果說DSP的硬件設計是基礎,那么軟件算法則是系統(tǒng)的精華所在。精確、高效的軟件算法設計確保所需功能的實現(xiàn),而且系統(tǒng)的精確性和高效性也十分依賴于軟件設計。
在本章中給出了一系列軟件設計實例,既有數(shù)字信號處理的基本算法的實例——卷積算法、FIR濾波器算法、IIR濾波器算法和FFT算法;又有語音壓縮和解壓縮算法的例子——G711語音壓縮和解壓縮;然后給出了圖像處理算法的實例——圖像銳化算法的實現(xiàn);最后是有關C55x處理器在通信系統(tǒng)中應用的實例——包括卷積編碼的DSP實現(xiàn)和Viterbi譯碼算法的DSP實現(xiàn)。希望這些軟件設計實例能夠給讀者以啟發(fā)。2023/1/311DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.1卷積算法
8.1.1卷積算法
卷積積分是計算連續(xù)線性時不變系統(tǒng)輸出響應的主要方法。同樣,對于離散系統(tǒng),卷積和也是求線性時不變系統(tǒng)輸出響應的重要方法
。
卷積和的運算在圖形表示上可分為四步:
(1)翻轉:先在變量坐標m上作圖x(m)和h(m),將h(m)以m=0的垂直軸為對稱軸翻轉成h(m);
(2)移位:將h(m)移位n,即得h(nm)。當n為正整數(shù)時,右移n位。當n為負整數(shù)時,左移n位;
(3)相乘:再將h(nm)和x(m)的相同m值的對應點值相乘;
(4)相加:把以上所有對應點的乘積疊加起來,即得y(n)值。
2023/1/312DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.1.2
卷積算法的MATLAB實現(xiàn)
MATLAB提供了一個函數(shù)conv用于計算兩個有限長序列之間的卷積。conv函數(shù)假定這兩個序列都在n=0開始。
例如:已知兩個序列:
x(n)=[3,11,7,0,1,4,2],3≤n≤3;
h(n)=[2,3,0,5,2,1],1≤n≤4求卷積y(n)=x(n)h(n)。
要作該例子的卷積,就能用>>x=[3,11,7,0,1,4,2];>>h=[2,3,0,5,2,1];>>y=conv(x,h)y=631476515411822382得到y(tǒng)(n)值。然而conv函數(shù)不提供任何定時信息。通過對conv函數(shù)的簡單擴展,它能完成任意位置序列的卷積。2023/1/313DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.2有限沖激響應濾波器(FIR)的實現(xiàn)8.2.1有限沖激響應濾波器的特點和結構
有限沖激響應濾波器是信號處理中常用的一種濾波器,這種濾波器有如下優(yōu)點:容易實現(xiàn)線性相位。只要保證系數(shù)的偶對稱,就可很容易實現(xiàn)線性相位;可以實現(xiàn)任意形狀濾波器。通過窗函數(shù)法可以方便的實現(xiàn)多通帶、多阻帶濾波器;
穩(wěn)定性好。因為FIR濾波器沒有反饋,是自然穩(wěn)定的。2023/1/314DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.2.1有限沖激響應濾波器的特點和結構
但FIR濾波器也有一些缺點:
設計FIR濾波器無法直接設定阻帶衰減指標。為了達到阻帶衰減指標往往要多次更改設計參數(shù),直到通帶、阻帶性能達到要求;階數(shù)較大。要滿足理想的濾波器性能需要比無限沖激響應濾波器更長的階數(shù);
過渡帶性能和實時性之間存在矛盾。要使FIR濾波器的過渡帶盡量小就需要較長的階數(shù),這就需要在過渡帶性能和實時性之間尋求平衡。2023/1/315DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.2.1
有限沖激響應濾波器的特點和結構
FIR濾波器差分方程如下,x(n)為輸入序列,y(n)為輸出序列,h(k)為濾波器系數(shù),N為濾波器階數(shù)。下圖是FIR濾波器的結構圖。2023/1/316DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.2.2
有限沖激響應濾波器的MATLAB設計
FIR濾波器系數(shù)的產生可以通過MATLAB得到。MATLAB是MathWorks公司用于數(shù)值計算和信號處理的數(shù)學計算工具包,可以方便直觀地進行分析、計算和系統(tǒng)仿真。b=fir1(20,[0.20.5])freqz(b,1,512)
FIR濾波器設計可以采用兩種方法實現(xiàn)。
方法1:直接通過MATLAB的濾波器設計函數(shù),具體示例如下:
2023/1/317DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.2.2
有限沖激響應濾波器的MATLAB設計b=fir1(20,[0.20.5])freqz(b,1,512)
fir1函數(shù)需要兩個參數(shù),即濾波器階數(shù)和濾波器參數(shù)。
可以看到,所設計的濾波器階數(shù)為20階,[0.20.5]表示該濾波器為帶通濾波器,通帶范圍為歸一化頻率0.2~0.5,指令freqz(b,1,512)所給出的是該濾波器的幅頻、相頻響應特性,如圖所示。2023/1/318DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.2.2
有限沖激響應濾波器的MATLAB設計
方法2:采用濾波器設計工具箱來設計濾波器的參數(shù),可以方便地得到所需濾波器。該方法按照如下步驟來實現(xiàn):
(1)打開MATLAB濾波器設計工具箱中的濾波器設計與分析工具(FDATool)。(2)在濾波器設計頁面中設置濾波器參數(shù):
濾波器類型選擇帶通;設計方法選擇FIR(有限沖激響應濾波器)、窗函數(shù)法設計;濾波器階數(shù)選擇最小階數(shù),窗類型采用Kaiser窗;頻率選擇歸一化頻率,阻帶1設為0.15,通帶1設為0.2,通帶2設為0.5,阻帶2設為0.55;幅度單位選分貝,阻帶1設為20dB,通帶設為1dB,阻帶2設為20dB。2023/1/319DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.2.2
有限沖激響應濾波器的MATLAB設計
方法2:采用濾波器設計工具箱來設計濾波器的參數(shù),可以方便地得到所需濾波器。該方法按照如下步驟來實現(xiàn):
(3)單擊設計濾波器按鈕,在右上窗口可以看到所設計濾波器的幅頻、相頻等各種圖形。(4)在File菜單,選擇“Export”子菜單出現(xiàn)Export窗口,選擇輸出到Text-file,單擊“OK”按鈕即可將參數(shù)輸出到指定文件中。2023/1/3110DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.2.2
有限沖激響應濾波器的MATLAB設計
右圖顯示了用濾波器設計與分析工具設計FIR濾波器的界面。如果對比兩種濾波器設計方法就會發(fā)現(xiàn),利用濾波器設計與分析工具設計濾波器更為直觀、方便。2023/1/3111DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.2.3有限沖激響應濾波器DSP實現(xiàn)
在利用C55x系列處理器編寫程序時,應充分利用處理器所提供的各種條件。在下面所給出的實例中,可以發(fā)現(xiàn)該程序充分發(fā)揮了C55x內核雙乘法器的作用,并靈活使用輔助寄存器的各種尋址方式。這樣做將提高處理器的工作效率,更好地滿足系統(tǒng)實時性的要求。該濾波器的階數(shù)為4,輸入數(shù)據(jù)長度為11。2023/1/3112DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例程序清單:N_TAPS.set4N_DATA.set11.dataCOEFFS.int1,2,3,4IN_DATA.int1,2,3,4,5,6,7,8,9,10,11.bssOUT_DATA,N_DATA+N_TAPS1,,1.textBCLRARMS.arms_off
bfir:MOV #CODFFS,XCDPAMOV #(IN_DATA+N_TAPS1),XAR0AMOV #(IN_DATA+N_TAPS),XAR1AMOV #OUT_DATA,XAR2
;濾波器抽頭;XAR2指向輸出向量8.2.3有限沖激響應濾波器DSP實現(xiàn)
;輸入數(shù)據(jù)數(shù)
;濾波器系數(shù)
;輸入向量
;ARMS清零
;輸出向量
;ARMS=0
;指向濾波器系數(shù)
;XAR0指向輸入向量
;XAR1指向輸入向量2023/1/3113DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例MOV#((N_DATAN_TAPS+1)/21),BRC0MOV#(N_TAPS3),CSR MOV#(-(N_TAPS1)),T0MOV#(N_TAPS+1),T1|| RPTBLOCALFIREND1 MPY *AR0,*CDP+,AC0::MPY*AR1,*CDP+,AC1 RPT CSR MACM *AR0,*CDP,AC0 ::MACM*AR1,*CDP+,AC1MACM *AR0(T1),*CDP(T0),AC0::MACM *AR1(T1),*CDP(T0),AC1MOV dbl(LO(AC0)),dbl(*AR2)FIREND
;載入外循環(huán)次數(shù)8.2.3有限沖激響應濾波器DSP實現(xiàn)
;載入內循環(huán)次數(shù)
;外循環(huán)開始
;抽頭1
;內循環(huán)開始
;存儲結果
;循環(huán)結束2023/1/3114DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.2.3有限沖激響應濾波器DSP實現(xiàn)
計算的最終結果為:0x0014,0x001E,0x0028,0x0032, 0x003C,0x0046,0x0050,0x005A在取濾波器系數(shù)時,應注意要對生成的系數(shù)進行處理。這是因為生成的系數(shù)一般都帶有小數(shù)部分,而C55x系列處理器是定點處理器,不能處理小數(shù)。因此,要對系數(shù)進行適當放大,使所有系數(shù)都在32768~+32767之間。
2023/1/3115DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.3無限沖激響應濾波器(IIR)的實現(xiàn)
8.3.1無限沖激響應濾波器的結構
無限沖激響應濾波器的差分方程如下:右圖是無限沖激響應濾波器的結構。2023/1/3116DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.3.2
無限沖激響應濾波器的MATLAB設計
同有限沖激響應濾波器一樣,無限沖激響應濾波器也可以在MATLAB中通過兩種不同的方法進行設計。
方法1:利用濾波器設計函數(shù)直接生成濾波器。
MATLAB中提供了多種IIR濾波器的設計方法,包括巴特沃斯濾波器,切比雪夫Ⅰ型、切比雪夫Ⅱ型濾波器,橢圓濾波器等,接下來以切比雪夫Ⅰ型濾波器為例設計一個低通濾波器。設計的低通濾波器要求其采樣頻率為44100Hz,通帶為8kHz,過渡帶為500Hz,阻帶衰減為30dB。2023/1/3117DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.3.2
無限沖激響應濾波器的MATLAB設計右圖是該濾波器的幅頻、相頻曲線圖。Wp=8000/22050;Ws=8500/22050;[n,Wn]=cheb1ord(Wp,Ws,3,30)[b,a]=cheby1(n,3,Wn) freqz(b,a,512,44100)
;計算在所給參數(shù)下所需最小階數(shù)
;給出濾波器系數(shù)
2023/1/3118DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.3.2
無限沖激響應濾波器的MATLAB設計
方法2:采用濾波器設計與分析工具設計濾波器。
右圖是應用濾波器設計與分析工具設計同樣參數(shù)的濾波器。具體步驟為:(1)
打開FDATool
;(2)
設置濾波器參數(shù);在濾波器類型中選擇低通
設計方法選擇IIR(3)
單擊設計濾波器按鈕,在右上窗口可以看到各種圖形。選擇頻率單位、通帶、阻帶選擇幅度單位、通帶、阻帶(4)
單擊File菜單,選擇“Export”子菜單,選擇輸出到“Text-file”,單擊“OK”
。2023/1/3119DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.3.3無限沖激響應濾波器的DSP實現(xiàn)
接下來給出IIR濾波器的DSP實現(xiàn)算法,該算法把IIR濾波器分解成多個單元,每個單元如圖所示:單元中x(n)、y(n)按下式推導
:2023/1/3120DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.3.3
無限沖激響應濾波器的DSP實現(xiàn)
程序中AR0指向輸入數(shù)據(jù)*x(n),AR1指向濾波器系數(shù)*h,AR2指向輸出數(shù)據(jù)y(n),AR3指向中間變量dbuffer,T0存放濾波器中組成單元的數(shù)量,T1存放輸入數(shù)據(jù)個數(shù),濾波器的系數(shù)存放的順序如下:
a11a21b21b11....a1ia2ib2ib1i
中間變量的排列順序如下,i是中間變量所在單元的序號:
d1(n–1),d2(n–1),..di(n–1)d1(n–2),d2(n–2)...di(n–2)2023/1/3121DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.4快速傅里葉變換(FFT)8.4.1快速傅里葉變換(FFT)算法
離散傅里葉變換作為信號處理中最基本和最常用的運算,在信號處理領域占有基礎性的地位,離散傅里葉變換定義為:
k=0,1,…,N1,k=0,1,…,N1,
2023/1/3122DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.4.1快速傅里葉變換(FFT)算法
如果直接按照公式進行計算,求出N點X(k)需要N2次復數(shù)乘法,N(N1)次復數(shù)加法,如此推算,進行1024點傅里葉變換共需要4194304次實數(shù)乘法,這對于實時處理是無法接受的。而傅里葉快速(FFT)算法的提出使傅里葉變換成為一種真正實用的算法。
k=0,1,…,N1,FFT運算公式為:2023/1/3123DSP系統(tǒng)設計第8章TMS320C55x軟件設計實例8.4.1快速傅里葉變換(FFT)算法接下來將介紹利用C55x處理器實現(xiàn)傅里葉快速算法。
k=0,1,…,N1,
右圖給出8點時域抽取FFT的示意圖:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院居間合同范本
- 招標公司服務合同范本
- 南京耐磨地坪合同范本
- 叉車代理銷售合同范本
- 個人房屋轉讓協(xié)議書
- 1+X繼保試題含參考答案
- 與個人搬運合同范本
- 辦公改造合同范本
- 高壓電工作業(yè)復習題+參考答案
- 三八婦女節(jié)活動邀請函
- 麥琪的禮物全面英文詳細介紹
- 使用智能手機教程文檔
- 數(shù)字資產培訓課件
- (醫(yī)院安全生產培訓)課件
- 大檔案盒正面、側面標簽模板
- 幼兒園優(yōu)質公開課:中班數(shù)學《到艾比家做客》課件
- 保潔巡查記錄表
- 部編人教版歷史八年級下冊《三大改造》省優(yōu)質課一等獎教案
- 水輪機調速器現(xiàn)場調試
- 貴州省體育高考評分標準
- 比較思想政治教育(第二版)第十二章課件
評論
0/150
提交評論