高精度失真度測試儀—課程設(shè)計_第1頁
高精度失真度測試儀—課程設(shè)計_第2頁
高精度失真度測試儀—課程設(shè)計_第3頁
高精度失真度測試儀—課程設(shè)計_第4頁
高精度失真度測試儀—課程設(shè)計_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、高精度失真度測試儀摘 要:設(shè)計并制作了一個高精度失真度測試儀,用于測量正弦波、方波以及三角波等等信號波的失真度。該測試儀硬件系統(tǒng)基于at89s52單片機(jī),控制包括過零比較整形電路,倍頻鎖相環(huán),加法器,a/d信號采集和系統(tǒng)顯示板五部分組成;軟件基于離散型傅立葉變換,應(yīng)用準(zhǔn)同步技術(shù)的失真度測量方法。由于鎖相環(huán)的作用,使得采樣周期與信號周期嚴(yán)格同步,有效地克服了傳統(tǒng)的基于dft的失真度測量方法中非整周期采樣引起的頻譜泄漏對測量結(jié)果的影響,實驗結(jié)果表明,該方法的采用使失真度測量的準(zhǔn)確度提高了一個數(shù)量級,測量誤差在百分之一以下。關(guān)鍵字:倍頻鎖相環(huán),a/d信號采集,離散型傅立葉變換目錄1. 系統(tǒng)設(shè)計31.

2、1 設(shè)計要求31.1.1 設(shè)計任務(wù)31.1.2 技術(shù)要求31.2 總體方案31.2.1 總體設(shè)計思路31.2.2 總體設(shè)計方案41.3單元電路設(shè)計41.3.1 過零比較整形41.3.2 加法器41.3.3 鎖相環(huán)51.3.4 數(shù)據(jù)采集71.3.5 結(jié)果顯示72. 數(shù)據(jù)處理72.1 準(zhǔn)同步采樣原理72.2利用準(zhǔn)同步技術(shù)實現(xiàn)失真度的高精度測量92.2.1 失真度的定義92.2.2 周期信號基波和諧波幅值的測量92.2.3 基于準(zhǔn)同步算法的失真度計算103. 軟件設(shè)計103.1 開發(fā)軟件及編程語言的簡介103.2 總體程序流程104 系統(tǒng)測試124.1 測試儀器與設(shè)備124.2 指標(biāo)測試12參考文獻(xiàn)

3、12附錄:c51程序:131.系統(tǒng)設(shè)計1.1 設(shè)計要求1.1.1 設(shè)計任務(wù)設(shè)計并制作了一個高精度失真度測試儀,示意圖如圖一。圖1 總體示意圖1.1.2 技術(shù)要求 (1) 能測量正弦波、方波以及三角波等等信號波的失真度:(2) 失真度測量結(jié)果的相對誤差在百分之五以內(nèi)。1.2總體方案1.2.1 總體設(shè)計思路根據(jù)設(shè)計要求中的整體示意圖,可確定系統(tǒng)構(gòu)造為:輸入的待測信號f0經(jīng)過零比較電路整形,變成脈沖信號f1進(jìn)入倍頻鎖相環(huán),產(chǎn)生倍頻脈沖信號f2;同時,待測信號f0通過加法器,進(jìn)行零下補(bǔ)償,得到信號f3,使得其信號幅值大于或等于零,便a/d轉(zhuǎn)換器進(jìn)行信號采集;脈沖信號f1和脈沖信號f2連入單片機(jī)外部中斷

4、t0,t1中,通過脈沖信號f1的中斷請求開通a/d轉(zhuǎn)換器,通過脈沖信號f2的中請求進(jìn)行數(shù)據(jù)采集;采集得到的數(shù)據(jù)送入單片機(jī)進(jìn)行數(shù)據(jù)處理,然后通過lcd輸出測量結(jié)果。由于測量和數(shù)據(jù)處理中,數(shù)據(jù)量和計算量較大,故本系統(tǒng)在單片機(jī)外擴(kuò)展了一片外部ram,以便數(shù)據(jù)的存放。1.2.2 總體設(shè)計方案根據(jù)總體設(shè)計思路,可畫出總體方案方框圖,如圖2。圖2 總體方案方框圖1.3 單元電路設(shè)計1.3.1 過零比較整形 采用比較芯片lm311,f0反相輸入信號,正相輸入端接地,輸出信號f1即為脈沖信號。1.3.2 加法器為方便數(shù)據(jù)采集,需將待測信號幅值變換到a/d轉(zhuǎn)換器的采集范圍內(nèi)。fo通過加法器把信號提到零上來,然后

5、通過放大電路把最大幅值調(diào)整到+5v,即為信號f3。圖5 兩級運放電流/電壓變換電路1.3.3 鎖相環(huán)集成鎖相環(huán)芯片cd4046是由cmos電路構(gòu)成的多功能單片集成鎖相環(huán),具有功耗低、輸入阻抗高、電源電壓范圍寬等優(yōu)點。在信號處理和數(shù)字系統(tǒng)中,cd4046都得到了廣泛的應(yīng)用,常被用于頻率調(diào)制、頻率鎖定、時鐘同步和頻率合成等方面。cd4046的工作頻率小于1.2mhz,屬于低頻鎖相環(huán)。電源電壓為515v,輸出驅(qū)動電流大于2.6mv。其內(nèi)部結(jié)構(gòu)及典型應(yīng)用電路如圖3-12所示。圖3-12 cd4046內(nèi)部結(jié)構(gòu)圖與其他鎖相環(huán)不同的是:cd4046具有兩個可選用的鑒相器和:相位比較器是一個異或門,適用于輸入

6、信號中噪聲分量較多、信噪比較低的場合,但必須要求輸入信號具有50的占空比。當(dāng)無輸入信號或噪聲信號輸入時,異或門輸出平均電壓等于udd/2,經(jīng)低通濾波器后送到vco輸入端9,使vco在中心頻率上起振。相位比較器由四個觸發(fā)器、控制門和三態(tài)輸出電路組成,是邊緣觸發(fā)工作方式的鑒相器,因而對輸入信號占空比無特定的要求,但相位比較器的信噪比容限不如相位比較器高。選用相位比較器為鑒相器時,捕獲帶和同步帶具有相同的帶寬。如圖3-12所示,cd4046采用的是rc型壓控振蕩器,必須外接電容c1和電阻r1作為充放電元件,當(dāng)鎖相環(huán)對跟蹤的輸入信號的頻率寬度有要求時還需要外接電阻r2。cd4046的工作頻率與芯片外圍

7、的器件取值有關(guān)。為使鎖相環(huán)工作在最佳狀態(tài),在選擇外接元件參數(shù)時,既要考慮壓控振蕩器的中心頻率,也要兼顧最高頻率和最低頻率。根據(jù)經(jīng)驗公式得、,壓控振蕩器的中心頻率為。其中c0為寄生電容,約為30pf;r1、r2的取值一般在10k1m之間;udd10v時,c1取值大于50pf;udd5v時,c1取值大于100pf。本系統(tǒng)中中心頻率為50hz。設(shè)計電路時,c1取值為164 pf,r1為一最大電阻為100 k的電位器,r2接空,即r2無窮大。圖3-13 cd4046的倍頻電路1.3.4 數(shù)據(jù)采集采用a/d轉(zhuǎn)換芯片adc0809。電路如下: 1.3.5 結(jié)果顯示顯示采用lcd。電路如下:2. 數(shù)據(jù)處理2

8、.1 準(zhǔn)同步采樣原理對于周期信號的某些特征的測量可以看作是進(jìn)行一種積分求均值運算。對于任意周期信號的平均值式中,t為信號 f(t)的周期,t0為積分起點。若將積分區(qū)間t0,t0+t等分為n段,勻采樣得到n個數(shù)據(jù),可以證明當(dāng)nm (m為信號,f(t)的最高諧波次數(shù))時,有如下等式成立:通過增加采樣點數(shù)n,就可以使平均值的測量結(jié)果達(dá)到令人滿意的精度,這就是同步采樣算法及其理論基礎(chǔ)。然而,在實際的采樣中不可能做到采樣周期與信號周期嚴(yán)格同步,也就是在實際采樣中,區(qū)間的長度不是t而是,t,其中為同步誤差,準(zhǔn)同步算法就是要在| 不太大的情況下,通過適當(dāng)增加采樣數(shù)據(jù)量來實現(xiàn)對高準(zhǔn)確度估計的算法,較好地解決了

9、同步誤差對測量準(zhǔn)確度的影響問題,同時降低對采樣時間問隔的要求。假設(shè)被測信號,f(t)處于穩(wěn)定狀態(tài),將寬度為,n(t+)的積分區(qū)間t0,t0+n(t+)等分為,nn 段,由此得到nn+1個數(shù)據(jù)f(ti),(i=i0,i0+1i0+nn),則有如下定義:經(jīng)過n層遞推運算可以最終表示為如式(5)所示的形式,n為權(quán)系數(shù)。式(3)和式(4)中,(i=i0,i0+1i0+nn)為對應(yīng)的數(shù)值求積公式所確定的權(quán)系數(shù)(一般的求均值運算式所有系數(shù)為1);c為遞推計算所在的層數(shù);k為序號,k=1,(n-c)n+1,這說明在從第1層到第n層的遞推計算中各層中f的個數(shù)是逐漸以n 個數(shù)為步長遞減的,例如,=l,n=3,n

10、=2,信號s長度為7時,遞推過程的計算情況如表1所示。在實際的測量中,為了實現(xiàn)當(dāng)遞推的層數(shù),n很小時,就能使在一定的精度條件下接近,這就必須要求:|較小(|0.2),同時滿足|1.2 m (假定n30,若n30可將系數(shù)適當(dāng)加大)。由于在實際測量中希望盡可能地減小同步誤差以減少遞推次數(shù),從而提高計算速度,所以稱以上所講的數(shù)據(jù)處理方法為準(zhǔn)同步采樣法。2.2 利用準(zhǔn)同步技術(shù)實現(xiàn)失真度的高精度測量2.2.1 失真度的定義失真度定義為信號中全部諧波分量的能量與基波能量之比的方根值,如果負(fù)載與信號頻率無關(guān),則信號的失真度也可以定義為全部諧波電壓的有效值與基波電壓的有效值之比并以百分?jǐn)?shù)表示,即式中為失真度,

11、p為信號總功率,p1為基波信號的功率,u1為基波電壓的有效值,u2un為諧波電壓有效值。 因此,失真度可以通過基波和各次諧波的幅值計算得到。2.2.2 周期信號基波和諧波幅值的測量任意周期信號都可通過傅立葉變換成以下格式:周期信號(m 為最高諧波次數(shù)) 存在同步誤差 的情況下,取nn+1個數(shù)據(jù)(本系統(tǒng)中,采用20倍頻,測量四個周期,故n=4,n=20),當(dāng)滿足是,經(jīng)過n層遞推計算,有:根據(jù)三角函數(shù)的正交特性,基波與各次諧波的幅值有:由式(8)可知,第m次諧波的幅值am可歸結(jié)為對周期信號f(t)積分求均值運算,則采用準(zhǔn)同步采樣方法可以獲得接近予“理想同步采樣”的幅值測量準(zhǔn)確度。綜合式(5)、式(

12、7)和式(8)可得準(zhǔn)同步采樣時諧波幅值計算公式:2.2.3 基于準(zhǔn)同步算法的失真度計算由式(9)求得各次諧波幅值,結(jié)合失真度定義式(6),準(zhǔn)同步條件下,得到進(jìn)行失真度計算公式:3. 軟件設(shè)計3.1 設(shè)計中所用軟件及編程語言的簡介本設(shè)計硬件由數(shù)字模擬電路組成,軟件為keil,編程語言是c51。調(diào)試時用wave仿真器進(jìn)行模擬仿真調(diào)試。keil軟件是目前最流行開發(fā)mcs-51系列單片機(jī)的軟件,它提供了包括c編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uvision)將這些部分組合在一起。即使不使用c語言而僅使用匯編語言,keil方便易用的集成環(huán)

13、境、強(qiáng)大的軟件仿真調(diào)試工具也會大大提高仿真調(diào)試的效率。wave是南京偉福實業(yè)有限公司開發(fā)的集成調(diào)試環(huán)境,配合e6000、h51、k51、p51、lpc76x、lpc932、pic6000、lab2000p、lab6000等型號的偉福仿真器的使用,支持c語言的編寫和軟件仿真。3.2 總體程序流程4 系統(tǒng)數(shù)據(jù)測試4.1 測試儀器與設(shè)備支流穩(wěn)壓穩(wěn)流電源,sg1733sb3a信號源,agilent33120a4.2 指標(biāo)測試每種頻率測三次,三種波形。失真度單位為: 正弦波實際失真度為0,本系統(tǒng)理論值為0.2%。實際測量值分布在0.46%-1.51%之間,大部分?jǐn)?shù)據(jù)都在1%以下,而實際要求為5%以下。達(dá)

14、到了要求。方波實際失真度為48%,本系統(tǒng)理論值為50.2%。系統(tǒng)實際測量值分布在45.09%-50.32%之間,即相對誤差在2.91%-2.32%之間,而實際要求為5%以下。達(dá)到了要求。三角波實際失真度大約為12%,本系統(tǒng)理論值為12.5%。系統(tǒng)測試結(jié)果的相對誤差都在5%以下。達(dá)到了要求。參考文獻(xiàn)1書 1謝自美編,武漢:華中理工大學(xué)出版社,2000年第二版。2閻石主編,北京:高等教育出版社,1998年11月第四版。3康光華編,北京:高等教育出版社,1999年6月第四版。4李華編,武漢:華中理工大學(xué)出版社,2000年第二版。 2論文 袁曉峰,許化龍,陳淑紅,。附錄 c51程序/* 失真度測量 *

15、/#include#include#include#include#define lcd_data xbyte0xdfff /lcd數(shù)據(jù)寫入地址/#define lcd_com xbyte0x9fff /lcd指令寫入地址/#define lcd_busy xbyte0xbfff /lcd查忙標(biāo)志地址/#define ad_0809 xbyte0xefff /ad0809 地址 /#define ulong unsigned long#define uchar unsigned char#define uint unsigned int#define pi 3.1415926/* 全局變量定義

16、*/uchar pdata a82;uchar xdata *s;uchar i=1;uchar disp_buff16; /lcd顯示緩沖區(qū)/*準(zhǔn)同步系數(shù)*/uint code p82=0, 1, 4, 10, 20, 35, 56, 84, 120, 65, 220, 286, 264, 455, 560, 680, 816, 969,1140,1330,1540,1770,2018,2281,2556,2840,3130,3423,3716,4006,4290,4565,4828,5076,5306,5515,5700,5858,5986,6081,6140,6160,6140,6081

17、,5986,5858,5700,5515,5306,5076,4828,4565,4290,4006,3716,3423,3130,2840,2556,2281,2018,1770,1540,1330,1140, 969, 816, 680, 560, 455, 364, 286, 220, 165, 120, 84, 56, 35, 20, 10, 4, 1 ;/*函數(shù)聲明*/*公用子程序*/void delay(uint time); /短延時void l_delay(uchar k); /長延時void f_busy(void); /查忙標(biāo)志void lcd_clear(void); /

18、清屏lcdvoid datas_dis(ulong datas,uchar p_str,char p_end,uchar p_pon); /數(shù)字顯示void chars_dis(uchar *s); /字符顯示/void lcd_dis(uchar str,uchar end); /lcd顯示void lcd_dis();/*功能子程序*/void dft(void);/求取基波和諧波的幅值/*中斷函數(shù)*/ /void int0(void) interrupt 0 using 2 /*計數(shù)器中斷 int0*/ /void int1(void) interrupt 2 using 3 /*計數(shù)器

19、中斷 int1*/*/*數(shù)據(jù)顯示程序*/*datas:the data to be displayed;p_str:starting display position; p_end:ending display position; p_pon:point display position; 以上所述顯示位置均為lcd上的絕對位置。 p_end比p_pon小1,則無小數(shù)點,按整數(shù)方式顯示,以此方式顯示時不能顯示到顯示屏的最右邊一位; 所有的整型都化成ulong后送顯,小數(shù)以整數(shù)表示以減少代碼量 */void datas_dis(ulong datas,uchar p_str,char p_end

20、,uchar p_pon) ulong d_t; uchar m; for(m=0;m=p_str;p_end-) if(p_end=p_pon) disp_buffp_end=.; else disp_buffp_end=(datas/d_t0)?0x30+(datas/d_t)%10):(p_endp_pon-1)?0x20:0x30); d_t=d_t*10; /*字符顯示程序*/*整體刷以便顯示緩沖區(qū),在data_dis();之前使用,將要顯示數(shù)字的位用空格填充, 用其他符號填充也可。 入口為字符串首地址 */void chars_dis(uchar *s) uchar w; for(

21、w=0;w16;w+) disp_buffw=sw;/*/*軟件延時程序*/*void delay(uint time) while(time-); /短延時 */void delay(uint time) int i; for(i=0;itime;i+);/*/void l_delay(uchar k) uchar p; for(p=0;pk;p+) /軟件長時間延時 delay(40000);/*/*查忙標(biāo)志子程序*/void f_busy(void) int p2,y; int t7; p2=0x80; do y=lcd_busy;t7=p2&y; while (t7=0x80); /*

22、/*lcd清屏*/void lcd_clear(void) p0=0x00; f_busy(); lcd_com=0x01; f_busy(); lcd_com=0x38; f_busy(); lcd_com=0x0e; f_busy(); lcd_com=0x06;/*/*void lcd_dis(uchar str,uchar end) uchar r=0; for(r=str-1;r8?8:end);r+) f_busy(); /顯示前八位 lcd_data=disp_buffr; if(end8) f_busy(); /移光標(biāo) lcd_com=0xc0; for(r=8;rend;r+

23、) /顯示后八位 f_busy(); lcd_data=disp_buffr; */void lcd_dis() uchar r; f_busy(); /移光標(biāo) lcd_com=0x80; for(r=0;r8;r+) f_busy(); lcd_data=disp_buffr; delay(10000); f_busy(); /移光標(biāo) lcd_com=0xc0; for(r=8;r16;r+) f_busy(); lcd_data=disp_buffr; /*/void dft(void) int m,n; double real_sum,imag_sum,mean_sq_power=0.0

24、,a1,distortion; /* */ for(m=1;m=13;m+) real_sum=0; imag_sum=0; for(n=1;n=81;n+) real_sum+=pn*(*(s+n)/51.0-2.5)*cos(0.3102807506*m*n); imag_sum+=pn*(*(s+n)/51.0-2.5)*sin(0.3102807506*m*n); /*real_sum+=pn*(*(s+n)/51.0-2.5)*cos(2*4*pi*m*n/81); imag_sum+=pn*(*(s+n)/51.0-2.5)*sin(2*4*pi*m*n/81); /*real_sum+=pn*(an/51.0-2.5)*cos(1.19679718*4*m*n); imag_sum+=pn*(an/51.0-2.5)*sin(1

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論