江蘇大學(xué) dsp課程設(shè)計(jì)
《江蘇大學(xué) dsp課程設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《江蘇大學(xué) dsp課程設(shè)計(jì)(19頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、word JIANGSU UNIVERSITY 本 科 生 課程設(shè)計(jì) DSP課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 基于ICETEK5509實(shí)驗(yàn)箱和基2FFT算法的頻譜分析 學(xué)院名稱:計(jì)算機(jī)科學(xué)與通信工程學(xué)院 專業(yè)班級(jí):通信工程 學(xué)生: 指導(dǎo)教師: 指導(dǎo)教師職稱: 年月 一、 設(shè)計(jì)目的與意義 1、本課程設(shè)計(jì)與理論課、實(shí)驗(yàn)課一起構(gòu)成《DSP芯片原理與應(yīng)用》完整課程 體系; 2、針對(duì)理論課、實(shí)驗(yàn)課中無(wú)時(shí)間和不方便提與容和需強(qiáng)調(diào)重點(diǎn)進(jìn)展補(bǔ)充與 完善; 3、
2、以原理算法的實(shí)現(xiàn)與驗(yàn)證體會(huì)DSP技術(shù)的系統(tǒng)性,并加深根本原理的體會(huì)。 二、 設(shè)計(jì)要求 1、系統(tǒng)設(shè)計(jì)要求: ⑴.設(shè)計(jì)一個(gè)以ICETEK5509為硬件主體,F(xiàn)FT為核心算法的頻譜分析系統(tǒng) 方案; ⑵.用C語(yǔ)言編寫(xiě)系統(tǒng)軟件的核心局部,熟悉CCS調(diào)試環(huán)境的使用方法, 在CCS IDE中仿真實(shí)現(xiàn)方案功能; ⑶.在實(shí)驗(yàn)箱上由硬件實(shí)現(xiàn)頻譜分析。 2、具體要求: ⑴.FFT算法C語(yǔ)言實(shí)現(xiàn)與驗(yàn)證 1) 參考教材節(jié)FFT核心算法在CCS軟件仿真環(huán)境中建立FFT工 程:添加main()函數(shù),更改教材中個(gè)別語(yǔ)
3、法錯(cuò)誤,添加相應(yīng)的庫(kù)文 件,建立正確的FFT工程; 2) 設(shè)計(jì)檢測(cè)信號(hào),驗(yàn)證FFT算法的正確性與FFT的局部性質(zhì); 3) 運(yùn)用FFT完成IFFT的計(jì)算。 ⑵.單路、多路數(shù)模轉(zhuǎn)換〔A/D〕 1) 回顧C(jī)CS的根本操作流程,尤其是開(kāi)發(fā)環(huán)境的使用; 2) 參考實(shí)驗(yàn)指導(dǎo)和示例工程掌握5509芯片A/D的C語(yǔ)言根本控制流 程; 3) 仔細(xì)閱讀工程的源程序,做好注釋,為后期開(kāi)發(fā)做好系統(tǒng)采集前端 設(shè)計(jì)的準(zhǔn)備。 ⑶.系統(tǒng)集成,實(shí)現(xiàn)硬件頻譜
4、分析 1) 整合前兩個(gè)工程,實(shí)現(xiàn)連續(xù)信號(hào)的頻譜分析工程的構(gòu)建; 2) 參考A/D轉(zhuǎn)換示例和DSP系統(tǒng)功能自檢示例完成硬件連接,并測(cè)試 開(kāi)發(fā)系統(tǒng)運(yùn)行效果; 3) 基于現(xiàn)有系統(tǒng),對(duì)于實(shí)時(shí)頻譜分析給出進(jìn)一步開(kāi)發(fā)設(shè)計(jì)和系統(tǒng)改良 方案。 三、課程設(shè)計(jì)原理 1、DSP應(yīng)用系統(tǒng)構(gòu)成: 注:一般的輸入信號(hào)首先進(jìn)展帶限濾波和抽樣,然后進(jìn)展模數(shù)〔A/D〕轉(zhuǎn)換,將信號(hào)變成數(shù)字比特流。根據(jù)奈奎斯特抽樣定理,對(duì)低通信號(hào)模擬,為保持信號(hào)的不丟失,抽樣頻率必須至少是輸入帶限信號(hào)的最高頻率的2倍,工程上為帶限
5、信號(hào)最高頻率的3-5倍。 2、快速離散傅里葉變換〔FFT〕的根本原理: 頻譜分析系統(tǒng) FFT是一種快速有效地計(jì)算離散傅里葉變換〔DFT〕的方法。它是根據(jù)離散傅里葉變換的奇、偶、虛、實(shí)等特性,對(duì)離散傅里葉變換的算法進(jìn)展改良獲得的?! ? 因?yàn)樾枰狽次復(fù)數(shù)乘法和N-1次復(fù)數(shù)加法,所以計(jì)算全部X(k),共需要次復(fù)數(shù)乘法和N(N-1)次復(fù)數(shù)加法。實(shí)現(xiàn)一次復(fù)數(shù)乘法需要四次實(shí)數(shù)乘法和兩次實(shí)數(shù)加法,一次復(fù)數(shù)加法需要兩次實(shí)數(shù)加法,因此直接計(jì)算全部X(k)共需要4次實(shí)數(shù)乘法和2N(2N-1)次實(shí)數(shù)加法。為減少運(yùn)算量,提高運(yùn)算速度,就必須改良算法。 FFT算法就是不斷地把長(zhǎng)序列的DF
6、T分解成幾個(gè)短序列的DFT,并利用的周期性和對(duì)稱性來(lái)減少DFT的運(yùn)算次數(shù)。 具有以下固有特性: (1)的周期性: (2)的對(duì)稱性: (3)的可約性: 另外,。 利用的上述特性,將x(n)或X(k)序列按一定規(guī)律分解成短序列進(jìn)展運(yùn)算,這樣可以防止大量的重復(fù)運(yùn)算,提高計(jì)算DFT的運(yùn)算速度。算法形式有很多種,但根本上可以分為兩大類,即按時(shí)間抽取(Decimation In Time,DIT)FFT算法和按頻率抽取(Decimation InFrequency,DIF)FFT算法。 N=8的按時(shí)間抽取FFT N=8的按頻率抽取FFT 2.1實(shí)數(shù)序列的F
7、FT: 反FFT運(yùn)算可以表示為: 式中,是時(shí)域信號(hào)的傅里葉變換。比擬和可以看出,通過(guò)如下修改,我們可以用FFT算法來(lái)實(shí)現(xiàn)反FFT: ⑴增加一個(gè)歸一化因子; ⑵將用其復(fù)共軛代替。 由于第二點(diǎn)需要修改符號(hào),因此FFT程序還不能不加修改的來(lái)計(jì)算反FFT。 因?yàn)? 可見(jiàn),求的反FFT可以分為以下三個(gè)步驟: ⑴取的共軛,得; ⑵求的FFT,得; ⑶取的共軛,并除以,即得。 采用這種方法可以完全不用修改FFT程序就可以計(jì)算反FFT。 3、單路、多路模數(shù)轉(zhuǎn)換實(shí)驗(yàn)原理〔AD) ⑴ TMS320VC5509A模數(shù)轉(zhuǎn)換模塊特性: —帶置采樣和保持的10位模數(shù)轉(zhuǎn)換模塊ADC,最
8、小轉(zhuǎn)換時(shí)間為500ns, 最大采樣率為21.5KHz。 —2個(gè)模擬輸入通道〔AIN0-AIN1〕。 —采樣和保持獲取時(shí)間窗口有單獨(dú)的預(yù)定標(biāo)控制。 ⑵ 模數(shù)轉(zhuǎn)換工作過(guò)程: —模數(shù)轉(zhuǎn)換模塊接到啟動(dòng)轉(zhuǎn)換模塊后,開(kāi)始轉(zhuǎn)換第一通道的數(shù)據(jù)。 —經(jīng)過(guò)一個(gè)采樣時(shí)間的延遲后,將采樣結(jié)果放入轉(zhuǎn)換結(jié)果存放器保存。 —轉(zhuǎn)換完畢,設(shè)置標(biāo)志。 —等待下一個(gè)啟動(dòng)信號(hào)。 ⑶ 模數(shù)轉(zhuǎn)換的程序控制: 模數(shù)轉(zhuǎn)換相對(duì)于計(jì)算機(jī)來(lái)說(shuō)是一個(gè)較為緩慢的過(guò)程。一般采用中斷方式啟動(dòng)轉(zhuǎn)換或保存結(jié)果,這樣在CPU忙于其它工作時(shí)可以少占用處理時(shí)間。設(shè)計(jì)轉(zhuǎn)換程序應(yīng)首先考慮處理過(guò)程如何與模數(shù)轉(zhuǎn)換的時(shí)間相匹配,
9、根據(jù)實(shí)際需要選擇適當(dāng)?shù)挠|發(fā)轉(zhuǎn)換手段,也要能與時(shí)地保存結(jié)果。 由于TMS320VC5509A DSP芯片的A/D轉(zhuǎn)換精度是10位,轉(zhuǎn)換結(jié)果的低10位為所需數(shù)值,所以在保存時(shí)應(yīng)注意將結(jié)果的高6位去除,取出低10位有效數(shù)字。 ⑷ 實(shí)驗(yàn)程序流程圖: 開(kāi) 始 初始化CPU時(shí)鐘、 EMIF、AD采樣時(shí)鐘 啟動(dòng)AD0通道采集〔連續(xù) 256次〕存入緩沖區(qū)nADC0 啟動(dòng)AD1通道采集〔連續(xù)256次〕存入緩沖區(qū)nADC1 實(shí)驗(yàn)程序流程圖 四.實(shí)驗(yàn)程序和流程圖: 1、FFT ⑴FFT程
10、序:
#include
11、px EE(struct px b1,struct px b2) //兩個(gè)復(fù)數(shù)的相乘--b1*b2 {struct px b3; //定義相乘的結(jié)果b3 b3.real=b1.real*b2.real-b1.imag*b2.imag; b3.imag=b1.real*b2.imag+b1.imag*b2.real; return(b3); }
12、 //返回相乘結(jié)果b3 /*輸入:xin(實(shí)部,虛部), 輸出:xin(實(shí)部,虛部), N:FFT點(diǎn)數(shù)*/ void FFT(struct px *xin, int N) { int f,m,nv2,nm1,i,k,j=1,l; struct px v,w,t; //v為蝶形因子,w為中間變量 nv2=N/2; f=N; fo
13、r (m=1;(f=f/2)!=1;m++) {;} //計(jì)算蝶形運(yùn)算的級(jí)數(shù)m=3,
nm1=N-1;
/*變址運(yùn)算*/
for (i=1;i<=nm1;i++) //實(shí)現(xiàn)位反轉(zhuǎn)
{ if(i 14、 for (l=1;l<=m;l++)
{le=pow(2,l);
lei=le/2;
v.real=1.0;v.imag =0.0; //第一級(jí)蝶形運(yùn)算的運(yùn)算因子
w.real =cos(pi/lei);w.imag =-sin(pi/lei); //用于改變蝶形運(yùn)算因子中間變量
for(j=1;j<=lei;j++) // 改變第二,三蝶形運(yùn)算的運(yùn)算因子 {for(i=j;i<=N;i=i+le) / 15、/循環(huán) N/le 次
{ip=i+lei;
t=EE(xin[ip],v);
xin[ip].real=xin[i].real-t.real;
xin[ip].imag =xin[i].imag-t.imag;
xin[i].real=xin[i].real+t.real;
xin[i].imag=xin[i].imag+t.imag;}
v=EE(v,w);
}}}
return;
}
/* 16、****************main programe********************/
#include 17、al=sin(pi*i/128);
s[i].real=cos(2*pp*i/256);
s[i].imag=0 ;
input[i]=sin(2*pp*i/256);
}
FFT(s,Num);
for(i=1;i<257;i++)
{
result[i]=sqrt(pow(s[i].real,2)+pow(s[i].imag,2));
}
開(kāi)始
輸入xin,N
m=log2N
變址運(yùn)算
l=1
完畢
輸出頻譜圖
l++
第l次蝶形運(yùn)算
l<=m
}
⑵FFT流 18、程圖
3、AD
⑴AD程序
#include "myapp.h"
#include "ICETEK-VC5509-EDU.h"
#include "scancode.h"
#include "fft.h"
#include "math.h"
struct px s0[257],s1[257];
float input0[256],input1[256],output0[256],output1[256];
void InitADC();
19、 void wait( unsigned int cycles );
void EnableAPLL( );
unsigned int nADC0[256],nADC1[256];
main()
{ int i;
unsigned int uWork;
EnableAPLL();
SDRAM_init();
InitADC();
PLL_Init(132);
while ( 1 )
{ for ( i=0;i<256;i++ )
{ ADCCTL=0x8000; // 啟動(dòng)AD轉(zhuǎn)換,通道0
w 20、hile ( uWork&0x8000 );
nADC0[i]=uWork&0x0fff; //0xfff→0x3ff 取后十位,前兩位一直為0
s0[i+1].real=nADC0[i]; //實(shí)部為nADC0中的值
input0[i]= s0[i+1].real;
s0[i+1].imag=0; //虛部為0
}
for ( i=0;i<256;i++ )
{ ADCCTL=0x9000; // 啟動(dòng)AD轉(zhuǎn)換,通道1
while ( 21、 uWork&0x8000 );
nADC1[i]=uWork&0x0fff;//0xfff→0x3ff 取后十位,前兩位一直為0
s1[i+1].real=nADC1[i]; //實(shí)部為nADC1中的值
input1[i]= s1[i+1].real;
s1[i+1].imag=0;//虛部為0
}
FFT(s0,256); //調(diào)用FFT函數(shù)對(duì)s0進(jìn)展FFT變換
FFT(s1,256); //調(diào)用FFT函數(shù)對(duì)s1進(jìn)展 22、FFT變換 23、 24、 25、 26、 27、 28、
for(i=0;i<256;i++)
{ output0[i]=sqrt(pow(s0[i+1].real,2)+pow(s0[i+1].imag,2)); //取模
29、 output1[i]=sqrt(pow(s1[i+1].real,2)+pow(s1[i+1].imag,2));}
asm( " nop"); // break point
}
}
void InitADC()
{
ADCCLKCTL=0x23; // 4MHz ADCLK 4*(35+1)=144MHz
ADCCLKDIV=0x4f00;
}
void wait( unsigned int cycles )
{ int i;
for ( i = 0 ; i < cycles ; i++ ){ }}
void Enable 30、APLL( )
{ /* Enusre DPLL is running */
*( ioport volatile unsigned short* )0x1f00 = 4;
wait( 25 );
*( ioport volatile unsigned short* )0x1f00 = 0;
// MULITPLY
*( ioport volatile unsigned short* )0x1f00 = 0x3000;
// COUNT
*( ioport volatile unsigned short* )0x1f0 31、0 |= 0x4F8;
wait( 25 );
//*( ioport volatile unsigned short* )0x1f00 |= 0x800
// MODE
*( ioport volatile unsigned short* )0x1f00 |= 2;
wait( 30000 );
// APLL Select
*( ioport volatile unsigned short* )0x1e80 = 1;
// DELAY
wait( 60000 );
}
32、
⑵AD流程圖
開(kāi)始
初始化CPU時(shí)鐘、EMIF、AD采樣時(shí)鐘
啟動(dòng)AD0通道采集〔連續(xù)256次〕存入緩沖區(qū)nADC 0
將nADC0數(shù)據(jù)賦值給s0結(jié)構(gòu)體中的實(shí)部,虛部為0
啟動(dòng)AD1通道采集〔連續(xù)256次〕存入緩沖區(qū)nADC 1
將nADC1數(shù)據(jù)賦值給s1結(jié)構(gòu)體中的實(shí)部,虛部為0
FFT〔s0,256〕
FFT(s1,256)
圖5-2 AD流程圖
五、實(shí)驗(yàn)步驟與結(jié)果分析
實(shí)驗(yàn)步驟與結(jié)果分析
33、1、FFT驗(yàn)證的步驟和分析:
⑴實(shí)驗(yàn)步驟:
參考教材中的FFT核心算法在CCS軟件仿真中建立FFT工程:
首先更改FFT算法中的個(gè)別語(yǔ)法錯(cuò)誤,初步理解程序,其次編寫(xiě)main()函數(shù)使系統(tǒng)能夠找到程序入口地址,由于正余弦信號(hào)的頻譜為脈沖信號(hào),因此這里采用正余弦與其線性組合作為檢測(cè)信號(hào),編寫(xiě)檢測(cè)信號(hào)程序時(shí),應(yīng)注意將采樣點(diǎn)放入結(jié)構(gòu)體數(shù)組s[257]中。然后添加庫(kù)文件到工程中,編譯、下載,用viewgraphTime/Frequency…觀察波形,設(shè)置觀察窗口為:
⑵實(shí)驗(yàn)結(jié)果截圖:
檢測(cè)信號(hào)為input[i]=sin(2*pp*〔i-1〕/256)
檢測(cè) 34、信號(hào)input[i]=cos(2*pp*〔i-1/〕256)
檢測(cè)信號(hào)為直流信號(hào)Input[i]=1
檢測(cè)信號(hào)input[i]=sin(10*2*pp*〔i-1〕/256)
input[i]=0.5+sin(10*2*pp*i/256)+cos(50*2*pp*i/256)
⑶實(shí)驗(yàn)結(jié)果分析:
1) 信號(hào)中有直流分量,有正弦信號(hào)和余弦信號(hào),但在時(shí)域波形中得
不出信號(hào)的組成如何;
2)在0頻時(shí)有直流分量;
3)正余弦信號(hào)頻譜實(shí)部大小相等關(guān)于中間值〔129,0〕對(duì)稱,虛部大
小相等方 35、向相反,關(guān)于中間值〔129,0〕對(duì)稱,因此驗(yàn)證了FFT算
法的正確性;
4)換個(gè)角度思考,可以利用此算法來(lái)驗(yàn)證奈奎斯特抽樣定理,正余
弦時(shí)域中任意線性組合不影響頻譜分布,以與驗(yàn)證FFT的柵欄效
應(yīng),只能看到整數(shù)倍頻的點(diǎn)等。
2、IFFT驗(yàn)證的步驟和分析:
⑴實(shí)驗(yàn)結(jié)果截圖:
1) 輸入信號(hào)為cos(2*pi*m/256)時(shí)
cos(2*pi*m/256)輸入信號(hào)和IFFT后時(shí)域圖
2) 輸入信號(hào)為sin(2*pi*m/256)時(shí)
36、 sin(2*pi*m/256)輸入信號(hào)和IFFT后時(shí)域圖
3) 輸入信號(hào)為1+sin(2*pi*m/256)+cos(2*pi*m/256)時(shí)
1+sin(2*pi*m/256)+cos(2*pi*m/256)輸入信號(hào)和IFFT后時(shí)域圖
3、兩通道模數(shù)轉(zhuǎn)換〔A/D〕在開(kāi)發(fā)環(huán)境中的調(diào)試
⑴ 通道波形的產(chǎn)生
根據(jù)實(shí)驗(yàn)指導(dǎo)書(shū)中的操作步驟調(diào)試出兩通道一樣的正弦波,使圖像在CCS界面中動(dòng)態(tài)變化,調(diào)節(jié)實(shí)驗(yàn)板上的頻率、波形控制按鈕,圖形界面輸出相應(yīng)的波形,圖6-3-1為0通道在10KHZ—100KHZ、1通道在10—100HZ事的正弦波:
37、
4.兩個(gè)工程整合后:
六、課程設(shè)計(jì)心得
本次DSP課程設(shè)計(jì)針對(duì)理論課、實(shí)驗(yàn)課中無(wú)時(shí)間和不方便提與容和需強(qiáng)調(diào)重點(diǎn)進(jìn)展補(bǔ)充與完善,以原理算法的實(shí)現(xiàn)與驗(yàn)證體會(huì)DSP技術(shù)的系統(tǒng)性,并加深了我對(duì)根本原理的體會(huì)。在這幾天中,我學(xué)到了如下幾點(diǎn):
⑴ 通過(guò)對(duì)FFT算法進(jìn)展分析研究,從根底深入研究和學(xué)習(xí),掌握FFT
算法的關(guān)鍵;
⑵ 通過(guò)對(duì)DSP芯片工作原理以與開(kāi)發(fā)環(huán)境的回顧,在DSP芯片上實(shí)現(xiàn)對(duì)信
號(hào)的實(shí)時(shí)頻譜分析;
⑶ 這次課程設(shè)計(jì),雖然不能做到完全理解掌握,但依然讓我加深了對(duì)各門(mén)專
業(yè)課之間的聯(lián)系;
⑷ 通過(guò)與同組成員的互相溝通,不僅使各自的知識(shí)得到了擴(kuò)大,而且從中得
到了很多的啟示,增強(qiáng)了團(tuán)隊(duì)合作能力;
19 / 19
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 精美實(shí)用框架完整的年終總結(jié)工作匯報(bào)新年計(jì)劃
- 英語(yǔ)滬教版小學(xué)六年級(jí)下冊(cè)Module4Unit12Thefivepeas優(yōu)質(zhì)課ppt課件
- 四年級(jí)上冊(cè)書(shū)法ppt課件-第14課-弓字旁-西泠印社版
- 腦卒中患者良肢位的擺放
- 九年級(jí)語(yǔ)文上學(xué)期期中測(cè)試(含第三單元)課件 語(yǔ)文版 (23)
- 第1講Java概覽
- 護(hù)理質(zhì)量匯報(bào)一季度
- 2020年鼠年公司年會(huì)PPT模板課件
- 六年級(jí)語(yǔ)文下冊(cè)《古詩(shī)詞背誦》課件-課件
- 二年級(jí)語(yǔ)文下冊(cè)《開(kāi)滿鮮花的小路》教學(xué)課件-部編版
- C語(yǔ)言課件二維數(shù)組
- 精神科病歷書(shū)寫(xiě)及存在問(wèn)題解答課件
- 銷售管家終端數(shù)據(jù)采集方案課件
- 無(wú)創(chuàng)呼吸機(jī)課件
- 安全使用食品添加劑-說(shuō)課課件