版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> DSP課程設(shè)計</b></p><p> 實 驗 報 告</p><p><b> 信號的調(diào)制與解調(diào)</b></p><p><b> 目 錄</b></p><p> 一、設(shè)計任務(wù)書…………………………………………………………1&
2、lt;/p><p> 二、設(shè)計內(nèi)容……………………………………………………………5</p><p> 三、設(shè)計方案、算法原理說明…………………………………………10</p><p> 四、程序設(shè)計、調(diào)試與結(jié)果分析………………………………………15</p><p> 五、設(shè)計(安裝)與調(diào)試的體會………………………………………25</p
3、><p> 六、參考文獻……………………………………………………………26</p><p><b> 一、設(shè)計任務(wù)書</b></p><p> 信號的調(diào)制和解調(diào)廣泛應(yīng)用于通訊及信息處理領(lǐng)域。調(diào)制就是用低頻的調(diào)制信號去控制高頻載波的某一個參數(shù),使載波信號的參數(shù)按照調(diào)制信號的規(guī)律變化,可分為調(diào)幅、調(diào)頻和調(diào)相信號調(diào)制;信號的解調(diào)是調(diào)制的逆過程,是從
4、已調(diào)高頻信號中取出調(diào)制信號,對應(yīng)的分為調(diào)幅、調(diào)頻和調(diào)相信號的解調(diào)。本設(shè)計要求采用DSP及其A/D、D/A轉(zhuǎn)換器實現(xiàn)信號的調(diào)制和解調(diào)功能。</p><p><b> 1.設(shè)計要求及目標</b></p><p><b> 基本部分:</b></p><p> 使用DSP產(chǎn)生調(diào)幅波和調(diào)頻波。調(diào)制信號從MIC音頻輸入接口輸入
5、,頻率小于1000HZ;載頻由DSP程序內(nèi)部產(chǎn)生,頻率在4000—8000HZ之間,調(diào)幅信號的調(diào)制度為50%。</p><p><b> 發(fā)揮部分:</b></p><p> 使用DSP對所產(chǎn)生的調(diào)幅及調(diào)頻信號進行解調(diào),并通過SPEAKER音頻輸</p><p> 接口輸出解調(diào)后的信號。</p><p><
6、b> 2.設(shè)計思路 </b></p><p> 模擬模擬幅度調(diào)制(AM)的實質(zhì)是頻譜搬移,其模型如下: </p><p> 輸出已調(diào)調(diào)幅信號的時域一般表示式為:</p><p> 如果載波的瞬時頻率偏移隨調(diào)制信號f(t)成線性變化,則為頻率調(diào)制。調(diào)頻信號表示式:</p><p> 其瞬時頻率為,其中ωc是未調(diào)載波的
7、標稱角頻率,f (t)是調(diào)制信號,系數(shù)KFM稱為頻偏常數(shù)。</p><p> 由數(shù)字振蕩器遞歸的差分方程:y[n]=A*y[n-1]-y[n-2]</p><p> 其中:A=2cos(x),x=ωFM/FS, FS為采樣頻率。</p><p> 就可以迭代計算出調(diào)頻信號的每一個輸出樣點的值,經(jīng)過D/A變換和濾波便可以得到模擬的調(diào)頻信號。</p>
8、<p> 3.要求完成的任務(wù)</p><p> ?。?)編寫C語言程序,并在CCS集成開發(fā)環(huán)境下調(diào)試通過。</p><p> ?。?)實現(xiàn)設(shè)計所要求的各項功能。</p><p> ?。?)按要求撰寫設(shè)計報告。</p><p><b> 二、設(shè)計內(nèi)容</b></p><p><
9、;b> 1.基本部分:</b></p><p> 使用DSP產(chǎn)生調(diào)幅波(AM)和調(diào)頻波(FM)。調(diào)制信號m(t)從MIC音頻輸入接口(J5)輸入,頻率f小于1000HZ;載頻c(t)由DSP程序內(nèi)部產(chǎn)生,頻率在4000—8000HZ之間,調(diào)幅信號的調(diào)制度(modulation degree)為50%。</p><p><b> 2.發(fā)揮部分:</b&
10、gt;</p><p> 使用DSP對所產(chǎn)生的調(diào)幅(AM)及調(diào)頻(FM)信號進行解調(diào),并通過SPEAKER音頻輸出(J6)接口輸出解調(diào)后的信號。</p><p> 三、設(shè)計方案、算法原理說明</p><p><b> 1.整體構(gòu)思:</b></p><p> 由J5輸入fmax=1000Hz的音頻信號,經(jīng)A/D
11、轉(zhuǎn)換后變?yōu)?5bit的二進制數(shù)據(jù),再經(jīng)FIR濾波器濾出噪聲及高頻分量(避免因高頻分量的存在而影響系統(tǒng)的處理效果),后對經(jīng)FIR濾波器輸出的信號進行調(diào)制,選用載波為Fc=6250Hz。信號流圖如圖5.1所示:</p><p><b> 2.具體實現(xiàn):</b></p><p> ?、?c(t)的產(chǎn)生:</p><p> 有兩種實現(xiàn)方法:查表法
12、和計算法。其中,查表法速度快,可以產(chǎn)生頻率較高的波形,并且不占用DSP的計算時間,但由于它占用DSP的內(nèi)部存儲空間,尤其對采樣頻率比較大的輸出波形,而DSP的內(nèi)部存儲空間畢竟是有限的,所以其應(yīng)用受到一定程度的限制;相反,計算法不占用DSP的內(nèi)部存儲空間,因而它多用于查表法不太適用的場合,但由于它要占用DSP的計算時間,因而使得執(zhí)行程序的時間開銷變大,不適用于高速處理場合。由于調(diào)制系統(tǒng)的載波頻率較高,所以本實驗采用的實現(xiàn)方法是查表法。&l
13、t;/p><p> ?、?m(t)實時采集</p><p> 由于系統(tǒng)設(shè)計的是調(diào)制解調(diào),而非一般的信號處理程序,因此需要對信號進行實時采集和處理。考慮到dsk板的硬件資源,最終決定采用先經(jīng)過A/D對模擬信號進行離散量化,再經(jīng)mcbsp進行信號處理的整體方案。而在數(shù)據(jù)經(jīng)mcbsp后,對其進行相關(guān)的處理??紤]到dsk板上的codec(TLC320AD50C)內(nèi)含抗混疊濾波器和重構(gòu)濾波器,因此可以
14、省略輸入端低通濾波器和輸出端的濾波器。</p><p><b> ⑶ AM調(diào)制的實現(xiàn)</b></p><p> 由AM調(diào)制的原理框圖可知,其基本的過程是先對輸入的信號加入一直流分量,其中所加直流分量要大于輸入信號以保證后續(xù)調(diào)制不會出現(xiàn)過調(diào)幅現(xiàn)象。而信號的調(diào)制則采用的是對抽樣后的信號直接與對應(yīng)的調(diào)制信號相乘。由于dsp產(chǎn)生周期信號的方法是通過查表產(chǎn)生的,所以本方案采
15、用的是將抽樣得到的離散信號直接與調(diào)制信號表里的對應(yīng)項相乘得到。再經(jīng)codec輸出。</p><p> 四、程序設(shè)計、調(diào)試與結(jié)果分析</p><p><b> 程序清單:</b></p><p><b> 調(diào)幅:</b></p><p><b> 程序1:</b><
16、/p><p><b> /*頭文件定義*/</b></p><p> #include <type.h></p><p> #include <board.h></p><p> #include <codec.h></p><p> #include &
17、lt;mcbsp54.h></p><p> #include <tms320.h></p><p> #include <dsplib.h></p><p> #include <math.h> </p><p&g
18、t; /*延遲子程序定義*/</p><p> void delay(s16 period);</p><p> #pragma DATA_SECTION(delaybuff,"delay");</p><p> short delaybuff[16]={0};</p><p> short *delayptr
19、= &(delaybuff[0]); </p><p> short inp_buffer[1];</p><p> short out_buffer[1];</p><p> short *inp_ptr=inp_buffer;</p><p> short *out_ptr=out_buffer;</p>&
20、lt;p> HANDLE hHandset;</p><p><b> s16 data;</b></p><p> s16 temp_buffer[256];</p><p> /*利用查表法產(chǎn)生載波信號定義*/</p><p> s16 SINE_TABLE[]=</p><p&g
21、t;<b> {</b></p><p> 0x00324,0x00647 ,0x0096A,0x00C8B ,0x00FAB,0x012C7 ,0x015E1,0x018F8</p><p> ,0x01C0B,0x01F19 ,0x02223,0x02527 ,0x02826,0x02B1E ,0x02E10,0x030FB</p&
22、gt;<p> ,0x033DE,0x036B9 ,0x0398C,0x03C56 ,0x03F16,0x041CD ,0x0447A,0x0471C</p><p> ,0x049B3,0x04C3F ,0x04EBF,0x05133 ,0x0539A,0x055F4 ,0x05842,0x05A81</p><p> ,0x05CB3,0
23、x05ED6 ,0x060EB,0x062F1 ,0x064E7,0x066CE ,0x068A5,0x06A6C</p><p> ,0x06C23,0x06DC9 ,0x06F5E,0x070E1 ,0x07254,0x073B5 ,0x07503,0x07640</p><p> ,0x0776B,0x07883 ,0x07989,0x07A7C ,0x07B
24、5C,0x07C29 ,0x07CE2,0x07D89</p><p> ,0x07E1C,0x07E9C ,0x07F08,0x07F61 ,0x07FA6,0x07FD7 ,0x07FF5,0x07FFE</p><p> ,0x07FF5,0x07FD7 ,0x07FA6,0x07F61 ,0x07F08,0x07E9C ,0x07E1C,0x07D89</p
25、><p> ,0x07CE2,0x07C29 ,0x07B5C,0x07A7C ,0x07989,0x07883 ,0x0776B,0x07640</p><p> ,0x07503,0x073B5 ,0x07254,0x070E1 ,0x06F5E,0x06DC9 ,0x06C23,0x06A6C</p><p> ,0x068A5,0x066CE
26、 ,0x064E7,0x062F1 ,0x060EB,0x05ED6 ,0x05CB3,0x05A81</p><p> ,0x05842,0x055F5 ,0x0539A,0x05133 ,0x04EBF,0x04C3F ,0x049B3,0x0471C</p><p> ,0x0447A,0x041CD ,0x03F16,0x03C56 ,0x0398C,0x036B
27、9 ,0x033DE,0x030FB</p><p> ,0x02E10,0x02B1E ,0x02826,0x02527 ,0x02223,0x01F19 ,0x01C0B,0x018F8</p><p> ,0x015E1,0x012C7 ,0x00FAB,0x00C8B ,0x0096A,0x00647 ,0x00324,0x00000</p><
28、;p> ,0x0FCDC,0x0F9B9 ,0x0F696,0x0F375 ,0x0F056,0x0ED39 ,0x0EA1F,0x0E708</p><p> ,0x0E3F5,0x0E0E7 ,0x0DDDD,0x0DAD9 ,0x0D7DA,0x0D4E2 ,0x0D1F0,0x0CF05</p><p> ,0x0CC22,0x0C947 ,0x0C674
29、,0x0C3AA ,0x0C0EA,0x0BE33 ,0x0BB86,0x0B8E4</p><p> ,0x0B64D,0x0B3C1 ,0x0B141,0x0AECD ,0x0AC66,0x0AA0C ,0x0A7BE,0x0A57F</p><p> ,0x0A34D,0x0A12A ,0x09F15,0x09D0F ,0x09B19,0x09932 ,0x097
30、5B,0x09594</p><p> ,0x093DD,0x09237 ,0x090A2,0x08F1F ,0x08DAC,0x08C4C ,0x08AFD,0x089C0</p><p> ,0x08895,0x0877D ,0x08677,0x08584 ,0x084A4,0x083D8 ,0x0831E,0x08277</p><p> ,
31、0x081E4,0x08164 ,0x080F8,0x0809F ,0x0805A,0x08029 ,0x0800B,0x08002</p><p> ,0x0800B,0x08029 ,0x0805A,0x0809F ,0x080F8,0x08164 ,0x081E4,0x08277</p><p> ,0x0831E,0x083D7 ,0x084A4,0x08584
32、 ,0x08677,0x0877D ,0x08895,0x089C0</p><p> ,0x08AFD,0x08C4B ,0x08DAC,0x08F1F ,0x090A2,0x09237 ,0x093DD,0x09594</p><p> ,0x0975B,0x09932 ,0x09B19,0x09D0F ,0x09F15,0x0A12A ,0x0A34D,0x0A57
33、F</p><p> ,0x0A7BE,0x0AA0B ,0x0AC66,0x0AECD ,0x0B141,0x0B3C1 ,0x0B64D,0x0B8E4</p><p> ,0x0BB86,0x0BE33 ,0x0C0EA,0x0C3AA ,0x0C674,0x0C947 ,0x0CC22,0x0CF05</p><p> ,0x0D1F0,0
34、x0D4E1 ,0x0D7DA,0x0DAD9 ,0x0DDDD,0x0E0E7 ,0x0E3F5,0x0E708</p><p> ,0x0EA1E,0x0ED38 ,0x0F055,0x0F375 ,0x0F696,0x0F9B9 ,0x0FCDC,0x00000</p><p><b> }; </b></p><p>&
35、lt;b> /*主程序*/</b></p><p> void main()</p><p><b> {</b></p><p> s16 cnt=2;</p><p> int i=0,j=0;</p><p> s32 dat32;</p><
36、;p> /*初始化5402DSK扳*/</p><p> if (brd_init(100))</p><p><b> return;</b></p><p> /*閃燈程序定義*/</p><p> while ( cnt-- )</p><p><b> {<
37、;/b></p><p> brd_led_toggle(BRD_LED0);</p><p> /* brd_delay_msec(1000); */</p><p> delay(1000);</p><p> brd_led_toggle(BRD_LED1);</p><p> /* brd_de
38、lay_msec(1000); */</p><p> delay(1000);</p><p> brd_led_toggle(BRD_LED2);</p><p> /* brd_delay_msec(1000); */</p><p> delay(1000);</p><p><b> }&
39、lt;/b></p><p> hHandset = codec_open(HANDSET_CODEC); /* 獲取Codec的句柄 */</p><p> /* Set codec parameters */</p><p> codec_dac_mode(hHandset, CODEC_DAC_15BIT);
40、 /* DAC in 15-bit mode */</p><p> codec_adc_mode(hHandset, CODEC_ADC_15BIT); /* ADC in 15-bit mode */</p><p> codec_ain_gain(hHandset, CODEC_AIN_6dB); /* 輸入信號增益為6dB */&
41、lt;/p><p> codec_aout_gain(hHandset, CODEC_AOUT_MINUS_6dB); /* 輸出信號增益為-6 dB */</p><p> codec_sample_rate(hHandset,SR_16000); /* 取樣頻率為16KHz*/</p><p> /* Polling and
42、digital loopback */</p><p><b> while (1)</b></p><p><b> {</b></p><p> /* Wait for sample from handset */</p><p> while (!MCBSP_RRDY(HANDSET_
43、CODEC)) {};</p><p> /*數(shù)據(jù)處理開始*/ </p><p> data = *(volatile u16*)DRR1_ADDR(HANDSET_CODEC); </p><p> i=i+100;//產(chǎn)生一個頻率為6250HZ的載波</p><p> i=i&0xff;//修正樣點指針
44、 </p><p> temp_buffer[j]=data;</p><p><b> j++;</b></p><p> j=j&0xff; </p><p> dat32 =(data+10)* SINE_TABLE[i];</p><p> *(volatile
45、u32*)DXR1_ADDR(HANDSET_CODEC) = dat32;</p><p><b> }</b></p><p><b> return;</b></p><p><b> }</b></p><p><b> /*延遲子程序*/</b
46、></p><p> void delay(s16 period)</p><p><b> {</b></p><p><b> int i, j;</b></p><p> for(i=0; i<period; i++)</p><p><b&g
47、t; {</b></p><p> for(j=0; j<period>>1; j++);</p><p><b> }</b></p><p><b> }</b></p><p><b> Cmd文件:</b></p>
48、<p><b> MEMORY</b></p><p><b> {</b></p><p> PAGE 0: VECS: origin = 0080h, length = 0080h /* Internal Program RAM */</p><p> PRAM: origin =
49、7600h, length = 8000h /* Internal Program RAM */</p><p> PAGE 1: SCRATCH: origin = 0060h, length = 0020h /* Scratch Pad Data RAM */</p><p> DMARAM: origin = 0C00h, length = 0300h /* DMA
50、buffer */</p><p> DATA: origin = 1100h, length = 0080h /* Internal Data RAM */</p><p> STACK: origin = 1180h, length = 0560h /* Stack Memory Space */</p><p> INRAM:
51、 origin = 1900h, length = 0100h /* Internal Data RAM */</p><p> HPRAM0: origin = 1A00h, length = 0002h /* HPI memory accessible by Host and DSP */</p><p> HPRAM1: origin = 1A02h, l
52、ength = 0280h /* HPI memory accessible by Host and DSP */</p><p> HPRAM2: origin = 1C82h, length = 0280h /* HPI memory accessible by Host and DSP */</p><p> EXRAM: origin = 1F10h, lengt
53、h = 4000h /* External Data RAM */</p><p><b> }</b></p><p> /*****************************************************************************/</p><p> /* DSP Memory A
54、llocation */</p><p> /*****************************************************************************/</p><p><b> SECTIONS</b><
55、/p><p><b> {</b></p><p> .cinit > PRAM PAGE 0</p><p> .text > PRAM PAGE 0</p><p> .vectors > VECS PAGE 0</p><p> init_var
56、 > PRAM PAGE 0</p><p> detect > PRAM PAGE 0</p><p> vrcprg > PRAM PAGE 0</p><p> matprg > PRAM PAGE 0</p><p> .stack > STACK PAGE 1</
57、p><p> .trap > SCRATCH PAGE 1</p><p> .const > EXRAM PAGE 1</p><p> .data > EXRAM PAGE 1</p><p> .bss > EXRAM PAGE 1</p><p>
58、.cio > EXRAM PAGE 1</p><p> .switch > EXRAM PAGE 1</p><p> coefficients > EXRAM PAGE 1,align 1024</p><p> delay > EXRAM PAGE 1,align 1024</p><p>
59、 tables > EXRAM PAGE 1</p><p> var > EXRAM PAGE 1</p><p> svctab > EXRAM PAGE 1 /* SS_V LSP table */</p><p> vctab > EXRAM PAGE 1 /*
60、V LSP table */</p><p> uvctab > EXRAM PAGE 1 /* UV LSP table */</p><p> cuvtab > EXRAM PAGE 1 /* Stochastic codebook */</p><p> cdbktab > EXRAM P
61、AGE 1 /* various codebook tables*/</p><p> logtab > EXRAM PAGE 1 /* table for log2 */</p><p> powtab > EXRAM PAGE 1 /* table for pow2 */</p><p&
62、gt; hamtab > EXRAM PAGE 1 /* table for hamming */</p><p> lgwtab > EXRAM PAGE 1 /* table for lag window */</p><p> acostab > EXRAM PAGE 1 /* table
63、for arccos */</p><p> sqrtab > EXRAM PAGE 1 /* table for square root */</p><p> acbtab > EXRAM PAGE 1 /* table for thresholds in acb */</p><p> pm03
64、tab > EXRAM PAGE 1 /* table for x^(-0.3) computation */</p><p> costab > EXRAM PAGE 1 /* table for cosine */</p><p> V23 > INRAM PAGE 1</p><p&g
65、t; FSK > INRAM PAGE 1</p><p> hpibuff0 > HPRAM0 PAGE 1</p><p> hpibuff1 > HPRAM1 PAGE 1</p><p> hpibuff2 > HPRAM2 PAGE 1</p><p> dma_buff >
66、; DMARAM PAGE 1</p><p><b> }</b></p><p> 以上就是我們調(diào)幅波的產(chǎn)生程序,這個程序基本上是按照任務(wù)書的要求設(shè)計的,但因為最后一天沒借到板子,所以只用仿真器產(chǎn)生了載波的波形如圖:</p><p> 因為第一個程序的音頻接收部分我們借鑒的是語音壓縮的程序,但我們發(fā)現(xiàn)在調(diào)制過程中我們該程序?qū)φ{(diào)制信號的
67、接收很差,在多次調(diào)試失敗的情況下,我們只能通過DSK板同時產(chǎn)生調(diào)制信號和載波,效果很好,程序如下:</p><p> /*利用查表法取得調(diào)制信號,次程序只是利用查表法產(chǎn)生載波和輸入信號,沒有里利用語音輸入作為輸入信號*/</p><p> #include <type.h></p><p> #include <board.h><
68、/p><p> #include <codec.h></p><p> #include <mcbsp54.h></p><p> void delay(s16 period);</p><p> HANDLE hHandset;</p><p><b> s16 data;&l
69、t;/b></p><p><b> u16 j=0;</b></p><p><b> u16 n=0;</b></p><p><b> u16 a=0;</b></p><p> s32 out_buffer[256];</p><p&g
70、t; s32 out_buffer1[256];</p><p> s32 out_buffer2[256];//定義</p><p> s16 SINE_TABLE[]=</p><p><b> {</b></p><p> 0x00324,0x00647 ,0x0096A,0x00C8B ,0x00F
71、AB,0x012C7 ,0x015E1,0x018F8</p><p> ,0x01C0B,0x01F19 ,0x02223,0x02527 ,0x02826,0x02B1E ,0x02E10,0x030FB</p><p> ,0x033DE,0x036B9 ,0x0398C,0x03C56 ,0x03F16,0x041CD ,0x0447A,0x047
72、1C</p><p> ,0x049B3,0x04C3F ,0x04EBF,0x05133 ,0x0539A,0x055F4 ,0x05842,0x05A81</p><p> ,0x05CB3,0x05ED6 ,0x060EB,0x062F1 ,0x064E7,0x066CE ,0x068A5,0x06A6C</p><p> ,0x
73、06C23,0x06DC9 ,0x06F5E,0x070E1 ,0x07254,0x073B5 ,0x07503,0x07640</p><p> ,0x0776B,0x07883 ,0x07989,0x07A7C ,0x07B5C,0x07C29 ,0x07CE2,0x07D89</p><p> ,0x07E1C,0x07E9C ,0x07F08,0x07F61 ,
74、0x07FA6,0x07FD7 ,0x07FF5,0x07FFE</p><p> ,0x07FF5,0x07FD7 ,0x07FA6,0x07F61 ,0x07F08,0x07E9C ,0x07E1C,0x07D89</p><p> ,0x07CE2,0x07C29 ,0x07B5C,0x07A7C ,0x07989,0x07883 ,0x0776B,0x07640&
75、lt;/p><p> ,0x07503,0x073B5 ,0x07254,0x070E1 ,0x06F5E,0x06DC9 ,0x06C23,0x06A6C</p><p> ,0x068A5,0x066CE ,0x064E7,0x062F1 ,0x060EB,0x05ED6 ,0x05CB3,0x05A81</p><p> ,0x05842,0x0
76、55F5 ,0x0539A,0x05133 ,0x04EBF,0x04C3F ,0x049B3,0x0471C</p><p> ,0x0447A,0x041CD ,0x03F16,0x03C56 ,0x0398C,0x036B9 ,0x033DE,0x030FB</p><p> ,0x02E10,0x02B1E ,0x02826,0x02527 ,0x02223,0
77、x01F19 ,0x01C0B,0x018F8</p><p> ,0x015E1,0x012C7 ,0x00FAB,0x00C8B ,0x0096A,0x00647 ,0x00324,0x00000</p><p> ,0x0FCDC,0x0F9B9 ,0x0F696,0x0F375 ,0x0F056,0x0ED39 ,0x0EA1F,0x0E708</p>
78、<p> ,0x0E3F5,0x0E0E7 ,0x0DDDD,0x0DAD9 ,0x0D7DA,0x0D4E2 ,0x0D1F0,0x0CF05</p><p> ,0x0CC22,0x0C947 ,0x0C674,0x0C3AA ,0x0C0EA,0x0BE33 ,0x0BB86,0x0B8E4</p><p> ,0x0B64D,0x0B3C1 ,0x
79、0B141,0x0AECD ,0x0AC66,0x0AA0C ,0x0A7BE,0x0A57F</p><p> ,0x0A34D,0x0A12A ,0x09F15,0x09D0F ,0x09B19,0x09932 ,0x0975B,0x09594</p><p> ,0x093DD,0x09237 ,0x090A2,0x08F1F ,0x08DAC,0x08C4C ,
80、0x08AFD,0x089C0</p><p> ,0x08895,0x0877D ,0x08677,0x08584 ,0x084A4,0x083D8 ,0x0831E,0x08277</p><p> ,0x081E4,0x08164 ,0x080F8,0x0809F ,0x0805A,0x08029 ,0x0800B,0x08002</p><p&g
81、t; ,0x0800B,0x08029 ,0x0805A,0x0809F ,0x080F8,0x08164 ,0x081E4,0x08277</p><p> ,0x0831E,0x083D7 ,0x084A4,0x08584 ,0x08677,0x0877D ,0x08895,0x089C0</p><p> ,0x08AFD,0x08C4B ,0x08DAC,0x0
82、8F1F ,0x090A2,0x09237 ,0x093DD,0x09594</p><p> ,0x0975B,0x09932 ,0x09B19,0x09D0F ,0x09F15,0x0A12A ,0x0A34D,0x0A57F</p><p> ,0x0A7BE,0x0AA0B ,0x0AC66,0x0AECD ,0x0B141,0x0B3C1 ,0x0B64D,0
83、x0B8E4</p><p> ,0x0BB86,0x0BE33 ,0x0C0EA,0x0C3AA ,0x0C674,0x0C947 ,0x0CC22,0x0CF05</p><p> ,0x0D1F0,0x0D4E1 ,0x0D7DA,0x0DAD9 ,0x0DDDD,0x0E0E7 ,0x0E3F5,0x0E708</p><p> ,0x0E
84、A1E,0x0ED38 ,0x0F055,0x0F375 ,0x0F696,0x0F9B9 ,0x0FCDC,0x00000</p><p><b> }; </b></p><p><b> /*主程序*/</b></p><p> void main()</p><p><b&
85、gt; {</b></p><p> s16 amp=1;//定義幅度</p><p> s16 cnt=2;</p><p><b> u16 i=0;</b></p><p><b> u16 m=0;</b></p><p> if (brd
86、_init(100))</p><p><b> return;</b></p><p> /* 定義閃燈程序*/</p><p> while ( cnt-- )</p><p><b> {</b></p><p> brd_led_toggle(BRD_LED
87、0);</p><p> /* brd_delay_msec(1000); */</p><p> delay(1000);</p><p> brd_led_toggle(BRD_LED1);</p><p> /* brd_delay_msec(1000); */</p><p> delay(1000)
88、;</p><p> brd_led_toggle(BRD_LED2);</p><p> /* brd_delay_msec(1000); */</p><p> delay(1000);</p><p><b> }</b></p><p><b> while (1)&l
89、t;/b></p><p><b> {</b></p><p> i=i+1;//62.5HZ</p><p> // i=i+10;//625HZ</p><p> // i=i+100;//6250HZ</p><p> i&=0x00ff;
90、 // 修正樣點指針</p><p> out_buffer1[j]=amp*SINE_TABLE[i];//利用查表法產(chǎn)生一個載波信號,并存放在數(shù)組out_buffer1中</p><p> //m=m+1;//62.5HZ</p><p> m=m+10;//625HZ</p><p> // m=m+100;
91、//6250HZ</p><p> m&=0x00ff; // 修正樣點指針</p><p> out_buffer2[j]=amp*SINE_TABLE[m];//利用查表法產(chǎn)生一個輸入信號,并存放在數(shù)組out_buffer2中</p><p> out_buffer[j]=(10+out_buffer1[j])*out_buff
92、er2[j];</p><p><b> j++;</b></p><p> j&=0x00ff; //mod 255</p><p><b> }</b></p><p><b> }</b></p><p> /* 定義延遲程
93、序*/ </p><p> void delay(s16 period)</p><p><b> {</b></p><p><b> int i, j;</b></p><p> for(i=0; i<period; i++)</p><p><
94、;b> {</b></p><p> for(j=0; j<period>>1; j++);</p><p><b> }</b></p><p><b> }</b></p><p><b> Cmd:</b></p>
95、<p><b> MEMORY</b></p><p><b> {</b></p><p> PAGE 0: VECS: origin = 0080h, length = 0080h /* Internal Program RAM */</p><p> PRAM: origin
96、= 7600h, length = 8000h /* Internal Program RAM */</p><p> PAGE 1: SCRATCH: origin = 0060h, length = 0020h /* Scratch Pad Data RAM */</p><p> DMARAM: origin = 0C00h, length = 0300h /* DM
97、A buffer */</p><p> DATA: origin = 1100h, length = 0080h /* Internal Data RAM */</p><p> STACK: origin = 1180h, length = 0560h /* Stack Memory Space */</p><p> INRA
98、M: origin = 1900h, length = 0100h /* Internal Data RAM */</p><p> HPRAM0: origin = 1A00h, length = 0002h /* HPI memory accessible by Host and DSP */</p><p> HPRAM1: origin = 1A02h,
99、 length = 0280h /* HPI memory accessible by Host and DSP */</p><p> HPRAM2: origin = 1C82h, length = 0280h /* HPI memory accessible by Host and DSP */</p><p> EXRAM: origin = 1F10h, len
100、gth = 4000h /* External Data RAM */</p><p><b> }</b></p><p> /*****************************************************************************/</p><p> /* DSP Memory
101、 Allocation */</p><p> /*****************************************************************************/</p><p><b> SECTIONS</b>&l
102、t;/p><p><b> {</b></p><p> .cinit > PRAM PAGE 0</p><p> .text > PRAM PAGE 0</p><p> .vectors > VECS PAGE 0</p><p> init_v
103、ar > PRAM PAGE 0</p><p> detect > PRAM PAGE 0</p><p> vrcprg > PRAM PAGE 0</p><p> matprg > PRAM PAGE 0</p><p> .stack > STACK PAGE 1<
104、;/p><p> .trap > SCRATCH PAGE 1</p><p> .const > EXRAM PAGE 1</p><p> .data > EXRAM PAGE 1</p><p> .bss > EXRAM PAGE 1</p><p>
105、 .cio > EXRAM PAGE 1</p><p> .switch > EXRAM PAGE 1</p><p> tables > EXRAM PAGE 1</p><p> var > EXRAM PAGE 1</p><p> svctab > EXR
106、AM PAGE 1 /* SS_V LSP table */</p><p> vctab > EXRAM PAGE 1 /* V LSP table */</p><p> uvctab > EXRAM PAGE 1 /* UV LSP table */</p><p> cuvtab
107、 > EXRAM PAGE 1 /* Stochastic codebook */</p><p> cdbktab > EXRAM PAGE 1 /* various codebook tables*/</p><p> logtab > EXRAM PAGE 1 /* table for log2
108、*/</p><p> powtab > EXRAM PAGE 1 /* table for pow2 */</p><p> hamtab > EXRAM PAGE 1 /* table for hamming */</p><p> lgwtab > EXRAM PAGE 1
109、 /* table for lag window */</p><p> acostab > EXRAM PAGE 1 /* table for arccos */</p><p> sqrtab > EXRAM PAGE 1 /* table for square root */</p><p>
110、; acbtab > EXRAM PAGE 1 /* table for thresholds in acb */</p><p> pm03tab > EXRAM PAGE 1 /* table for x^(-0.3) computation */</p><p> costab > EXRAM PAGE 1
111、 /* table for cosine */</p><p> V23 > INRAM PAGE 1</p><p> FSK > INRAM PAGE 1</p><p> hpibuff0 > HPRAM0 PAGE 1</p><p> hpibuff1 >
112、HPRAM1 PAGE 1</p><p> hpibuff2 > HPRAM2 PAGE 1</p><p> dma_buff > DMARAM PAGE 1</p><p><b> }</b></p><p> 信號調(diào)制后的波形如圖:</p><p> 最后我們又
113、嘗試了用計算法產(chǎn)生載波和調(diào)制信號,程序如下:</p><p> #include <stdio.h></p><p> #include <math.h></p><p> #define TURE 1</p><p> int y[500],i;</p><p><b>
114、float M;</b></p><p> void main()</p><p><b> {</b></p><p> puts("amplitude modulation sinewave example started.\n");</p><p><b> M=5
115、0;</b></p><p> for(i=0;i<500;i++)</p><p><b> {</b></p><p><b> y[i]=0;</b></p><p><b> }</b></p><p> while(
116、TURE)</p><p><b> {</b></p><p> for(i=0;i<500;i++)</p><p><b> {</b></p><p> y[i]=(int)((1+M/100*sin(i*2*3.14159*20/4000))*sin(i*2*3.14159*
117、200/4000)*16384);</p><p><b> }</b></p><p> puts("program end");</p><p><b> }</b></p><p><b> }</b></p><p>
118、<b> Cmd:</b></p><p><b> MEMORY</b></p><p><b> {</b></p><p> PAGE 0: EPROG: origin=0x1400,len=0x7c00</p><p> VECT: origin=0xf
119、f80,len=0x80</p><p> PAGE 1: USERREGS: origin=0x60,len=0x1c</p><p> IDATA: origin=0x80,len=0x3000</p><p><b> }</b></p><p><b> SECTIONS</b>
120、;</p><p><b> {</b></p><p> .vectors:> VECT PAGE 0</p><p> .text: > EPROG PAGE 0</p><p> .cinit: > EPROG PAGE 0</p><p> .bss:
121、 > IDATA PAGE 1</p><p> .const: > IDATA PAGE 1</p><p> .switch: > IDATA PAGE 1</p><p> .sysmem: > IDATA PAGE 1</p><p> .stack: > IDATA PAGE 1<
122、/p><p><b> }</b></p><p><b> 調(diào)制后波形如圖: </b></p><p> 五、設(shè)計(安裝)與調(diào)試的體會</p><p> 通過此次實驗設(shè)計,我們基本了解了DSP的內(nèi)部資源以及各部件的作用。通過應(yīng)用DSP算法實現(xiàn)通過FIR及IIR兩種不同的濾波器對信號進行濾波的實
123、驗過程,使我們熟悉了使用DSP工程的建設(shè)以及應(yīng)用于DSP系統(tǒng)的C語言的編寫,學(xué)會了通過MATLAB進行濾波器設(shè)計并導(dǎo)出我們所需要的相關(guān)系數(shù)以及頭文件,并對CCS5000對程序的完整調(diào)試過程有了進一步的理解。 在剛開始上這門實驗課時,理論部分感覺很像剛剛學(xué)過的的單片機,在得知他是匯編語言與C語言聯(lián)合編程時,就感覺c語言已很久不用,再看程序時那些c語言程序完全摸不到頭腦。后來經(jīng)過看課件和以前學(xué)過的C語言教材逐步對它有所了解。在ccs中有很
124、多現(xiàn)成的的函數(shù),我們需要的是合理實時調(diào)用它來解決問題。這次實驗應(yīng)該說是我所經(jīng)歷的小學(xué)期課程中難度系數(shù)最高,實驗過程最為復(fù)雜的一次,雖然沒有焊接電路那種細致并需要絕對的耐心的手工制作,但是實驗里所需要的是對于幾種不同的語言的熟練運用以及程序編輯時的縝密的邏輯能力以及分析能力。討論在這次實驗中很有幫助,它可以糾正錯誤的想法,啟發(fā)新的方法。而每次上機實驗都會出現(xiàn)各種各樣的不同情況。有時進入就會出錯,板子沒插好,但是再運行時</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- dsp實驗報告-信號的調(diào)制與解調(diào)-課程設(shè)計
- dsp課程設(shè)計--dsp原理及應(yīng)用實驗報告
- 高頻電子線路課程設(shè)計實驗報告--2fsk調(diào)制解調(diào)電路的設(shè)計
- 課程設(shè)計---am調(diào)制與解調(diào)報告
- 課程設(shè)計實驗報告
- fm調(diào)制與解調(diào)系統(tǒng)課程設(shè)計報告
- dsp綜合課程設(shè)計---2fsk調(diào)制解調(diào)的實現(xiàn)
- 基于ook調(diào)制解調(diào)設(shè)計的課程設(shè)計報告
- am調(diào)制與解調(diào)課程設(shè)計
- sopc課程設(shè)計實驗報告
- mfc課程設(shè)計實驗報告
- javaweb課程設(shè)計實驗報告
- wed課程設(shè)計實驗報告
- plc課程設(shè)計實驗報告
- eda課程設(shè)計--eda課程設(shè)計實驗報告
- protel課程設(shè)計---振幅調(diào)制與解調(diào)實驗電路的設(shè)計
- 展示設(shè)計課程設(shè)計實驗報告
- 2fsk調(diào)制與解調(diào)電路課程設(shè)計報告
- 通信原理課程設(shè)計--dsb調(diào)制解調(diào)
- 數(shù)電課程設(shè)計實驗報告
評論
0/150
提交評論