訊號發生實驗總結
一、概述
/分析思路
1. 原理
產生連續訊號的方法有兩種,一種是查表法,另一種是我們常用的計算法。
查表法,即將要輸出的資料計算好,儲存在
dsp中,然後依次輸出。查表法,速度快,可以產生較高頻率的波形,而且不占用
dsp的計算時間,但是占用
dsp儲存空間較大。
計算法,即用計算的方法依次計算資料而後輸出,然後再計算而後輸出。其優點是不占用
dsp的儲存空間,但缺點是要占用
dsp的計算時間,使得執行程式的開銷變大。
本實驗用計算法產生乙個余弦波訊號,從
da輸出。由余弦遞推公式:
,如果要產生乙個連續的余弦波形,必須先知道前兩個余弦值的大小,然後利用遞推公式計算出後面的資料。
計算法演算法實現:
#define _cosx 0.999390827
由程式中的這個語句可以推出,語句中的
x=2;其中
n=0,1,2,~~~~~~~180
。 根據公式
可以知道,所發生的余弦訊號的各取值分別為
cos0,cos2,cos4
……cos88,cos90
……cos178,cos180
……cos358,cos360
,一共顯示
180個余弦值。
2. 分析思路
首先了解產生連續波形的兩種方法,了解余弦訊號的發生原理,繼而對其原理進行分析,然後細看程式,尋找突破口,找到調試點,對硬體連線(相關各晶元和介面之間的連線)分析,實驗**,查詢資料解決問題。
二、電路原理
下圖為mcbsp
緩衝串列埠接收和傳送資料的過程,
mcbsp
通過dx和dr
引腳與外部裝置進行資料通訊,
dx序列資料傳送
,dr序列資料傳送。
下圖為dsp5402
晶元與ad50
連線圖三、應用程式
本實驗程式基於以上設計思路,使用
c語言實現連續余弦波的輸出,主程式如下:
/* program for generates a sequence cosine signal*/
/*used wt-5402 in dsp tms320vc5402*/
/*and send this signal to ad50()*/
/*if you use oscillograph you can see this signal*/
/* designed by wcang.axn.mpin*/
/* 2002.6.8*/
/* "@(#) dsp/bios 4.51.0 06-10-02 (wcang.axn.mpin)"*/
ioport unsigned port0bfff;
#define iosr port0bfff
#define _cosx 0.999390827
#pragma data_section(_cosx,"data_buf1")
float _cosx[200];
#pragma data_section(dacdata,"data_buf2")
int dacdata[180];
void delay(void);
void main(void)
i=0;
while(1) }
void delay(void)
程式所使用的配置檔案為:
-c -o cos.out
-l rts.lib
memory
sections
> parampage 0
.cinit:{} > parampage 0
.data:{} > daram page 1
.bss: {} > daram page 1
.const:{} > daram page 1 }
對程式的分析:
1.「#define _cosx 0.999390827
」,程式中此語句告訴清楚的告訴我們,
x的取值為
2,也就是說生成的波形每隔
2°就輸出乙個連續的點,以這樣的方式產生波形。
2.程式關鍵部分:
while(1)
以上部分實現波形發生的演算法。本實驗的演算法主要體現在余弦遞推公式上面,利用余弦遞推公式產生一組連續的余弦波形。「
dacdata[i]=_cosx[i]*2047+2048
」此語句使浮點數轉換為定點數。
3.以上程式是存在問題的。以上程式只提供了實現波形的產生,並沒有提供與硬體相連的程式,也就導致了實驗過程中無法用示波器找到合適的測試點測試實驗結果。接收資料的埠是
iosr
,其位址為
port0bfff
,這是乙個
io埠位址,而程式中所給位址都是資料空間
daram
和程式空間
param
。程式執行結果:
資料圖:
產生的訊號資料波形圖
上圖顯示了兩個週期內的資料圖,迴圈輸出一
個週期內的資料就會產生連續的波形。此圖中對應的實際資料如下圖所示:
四、結果分析
本實驗通過
dsp晶元產生乙個連續的余弦波訊號,產生的余弦波由
ad50的da
輸出。dsp
的緩衝串列埠
mcbsp
與ad50
相連線,傳遞資料。
實驗七 訊號
專案 內容所屬課程 作業要求 學號姓名 17043215賴長江 學習目標 1.了解訊號的概念。2.掌握訊號處理的方法。1.編寫乙個簡單的程式並執行,然後向該程序傳送不同的訊號以觀察該程序對接收到訊號的反應。在終端編譯並執行該程式,我們可以在當前終端通過按鍵組合向該程序傳送訊號 ctrl c ctrl...
實驗七 訊號
專案 內容這個作業屬於哪個課程 這個作業的要求在 學號 姓名 17041530 嚴喆皓 作業學習目標 1 了解訊號的概念 2 掌握訊號處理的方法 1.編寫乙個簡單的程式並執行,然後向該程序傳送不同的訊號以觀察該程序對接收到訊號的反應。1 在當前終端通過按鍵組合向該程序傳送訊號 ctrl c ctrl...
音訊訊號發生器 發生器電路
以下三種電路比較簡單,很好理解!用的晶元不一樣,也可以設計出同種型別的電路。前面用閘電路實驗組成多諧報蕩器,它可以驅動發光二極體發出變化無窮的彩色閃光,用多諧振盪器輸出的脈衝驅動可以使揚聲器發出聲響,用一種頻率的訊號源可以使揚聲器發出單一頻率的聲響 如果用幾種頻率的訊號源混合後可以發出各種不同的聲響...