版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于QT的任意波形數(shù)據(jù)生成軟件設(shè)計摘 要隨著電子測量技術(shù)與計算機(jī)技術(shù)的緊密結(jié)合,一種新的信號發(fā)生器任意波形發(fā)生器應(yīng)運(yùn)而生。用戶可以用它生成任意復(fù)雜波形,因而具有廣闊的應(yīng)用前景。任意波形發(fā)生器是應(yīng)用越來越廣泛的一種信號源,而國內(nèi)在任意波形發(fā)生器的研制方面相對較晚,推出的產(chǎn)品很少,市場占有率幾乎為零。因此,對任意波形發(fā)生器的研制進(jìn)行深入的研究已成為測試領(lǐng)域的一個新的課題,同時對于促進(jìn)虛擬儀器技術(shù)的發(fā)展、應(yīng)用以及適應(yīng)自動測試系統(tǒng)的組建和完整性要求都具有深遠(yuǎn)的意義。本設(shè)計是基于QT軟件來實現(xiàn)任意波數(shù)據(jù)的生成,本系統(tǒng)包含有基本波形模塊,諧波模塊,手繪波形模塊,基本波形合成模塊。QT的模塊程度更高、運(yùn)行速
2、度快、成本低、開發(fā)方便并且全部都是開放源代碼。本任意波形發(fā)生器不僅能產(chǎn)生正弦波、方波、三角波等常用的標(biāo)準(zhǔn)信號,也可以將幾種基本波形進(jìn)行合成,并根據(jù)用戶的需要生成任意波形,對于目前三種典型的任意波形發(fā)生器PC總線插卡式,獨立儀器,VXI模塊都有重要的參考價值。關(guān) 鍵 詞:波形發(fā)生器,任意波形,QT,LinuxQT-BASED ARBITRARY WAVEFORM GENERATION SOFTWARE DESIGN DATAABSTRACTIn modern electronic measuring instruments,test excitation signal generator use
3、d is a kind of very important instrument,closely integrated with the electronic measurement technology and computer technology,a new signal generator - came into being arbitrary waveform generatorRelatively late in the development of the domestic aspects of the arbitrary waveform generator,developme
4、nt and application of the product is relatively developed more slowlyTherefore,the development of an arbitrary waveform generator in-depth research has become a new subject areas tested,while all have far-reaching significance for promoting the development and application of virtual instrument techn
5、ology and the automatic test system to adapt to the formation and integrity requirementsIn this paper,based on the analysis of existing waveform generator design scheme,based on QT software to achieve arbitrary waveform data to generate a higher degree of QT module,running speed,low cost,easy to dev
6、elop and are all open sourceSo whether it is based on the development of electronic technology,market demand or software-based quick and easy to use QT to achieve arbitrary waveform data generation is groundbreaking and is still very necessaryThe arbitrary waveform generator can generate arbitrary w
7、aveforms according to the user 's needs,the current three typical arbitrary waveform generator - PC bus plug-in,independent instrument,VXI module has important reference valueKEY WORDS:Waveform Generator,Arbitrary Waveform,QT,Linux目 錄前 言1第1章 緒 論2§1.1 課題來源、目的及意義2§1.2任意波形數(shù)據(jù)生成的國內(nèi)外研究現(xiàn)狀2
8、67;1.3當(dāng)前主要任意波形數(shù)據(jù)生成的基本方式4§1.3.1基于VXI的數(shù)字信號處理法4§1.3.2 軟件合成法4§1.3.3直接數(shù)字頻率合成5§1.4 本文主要研究內(nèi)容6第2章 系統(tǒng)軟件設(shè)計7§2.1 系統(tǒng)總體設(shè)計框圖7§2.2 基本波形的設(shè)計8§2.3 諧波的設(shè)計14§2.4 手繪波形的設(shè)計17§2.5 基本波形合成的設(shè)計20第3章 使用說明書22§3.1 主操作界面22§3.2 參數(shù)輸入界面23§3.2.1 諧波參數(shù)輸入界面23§3.2.2 基本波參數(shù)輸入界面
9、24§3.2.3 手繪波形界面24§33 操作步驟說明25第4章 測試分析報告26§4.1 按鍵事件的功能測試26§4.2 參數(shù)輸入的功能測試29§4.2.1 諧波參數(shù)輸入的測試29§4.2.2 基本波形參數(shù)輸入的測試30§4.3 手繪波形的功能測試34第5章 系統(tǒng)測試結(jié)果35結(jié) 論39參考文獻(xiàn)40致 謝41前 言隨著電子測量及其他部門對各類信號發(fā)生器的廣泛需求及電子技術(shù)的迅速發(fā)展,促使信號發(fā)生器種類增多,性能提高。尤其隨著70年代微處理器的出現(xiàn),更促使信號發(fā)生器向著自動化、智能化方向發(fā)展。任意波發(fā)生器在工業(yè)生產(chǎn)、科研實驗中
10、獲得了越來越廣泛的應(yīng)用;如在雷達(dá)、通訊、仿真、電子、生物、機(jī)械、計算機(jī)等一系列系統(tǒng)測試中,都要用到任意波發(fā)生器;尤其是在要求同步輸出任意波形的場合以及需要產(chǎn)生復(fù)雜波形信號的場合,任意波發(fā)生器具有特別的優(yōu)勢??梢?,為適應(yīng)現(xiàn)代電子技術(shù)的不斷發(fā)展和市場需求,研究制作高性能的任意波數(shù)據(jù)生成器十分有必要,而且意義重大。QT是1991年奇趣科技開發(fā)的一個跨平臺的C+圖形用戶界面應(yīng)用程序框架。它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的所有功能。QT是面向?qū)ο蟮目蚣?,使用特殊的代碼生成擴(kuò)展以及一些宏,易于擴(kuò)展,允許組件編程。本設(shè)計是基于QT軟件來實現(xiàn)任意波數(shù)據(jù)的生成, QT的模塊程度更高、運(yùn)行速度快
11、、成本低、開發(fā)方便并且全部都是開放源代碼。所以不管是基于電子技術(shù)的發(fā)展、市場的需求還是基于軟件的方便快捷,使用QT來實現(xiàn)任意波數(shù)據(jù)的生成是開創(chuàng)性的并且還是十分有必要的。第1章 緒 論§1.1 課題來源、目的及意義波形發(fā)生器即通常所說的信號發(fā)生器是一種常見的信號源,廣泛應(yīng)用與電子電路、自動控制和科學(xué)試驗領(lǐng)域,是一種為電子測量工作提供符合嚴(yán)格技術(shù)要求的電信號設(shè)備。隨著現(xiàn)代電子技術(shù)的飛速發(fā)展,現(xiàn)代電子測量工作對波形發(fā)生器的性能提出了更高的要求,不僅要求能產(chǎn)生正弦波,方波等標(biāo)準(zhǔn)波,還能根據(jù)需要產(chǎn)生任意波形,切操作方便,輸出波形質(zhì)量好,輸出頻率范圍寬,輸出頻率穩(wěn)定度、準(zhǔn)確度及分辨率高,頻率轉(zhuǎn)換
12、速度快且頻率轉(zhuǎn)換時輸出波形相位連續(xù)等。在科學(xué)研究、工程教育及生產(chǎn)實踐中,如工業(yè)過程控制、教學(xué)實驗、機(jī)械振動實驗、動態(tài)分析、材料實驗、生物醫(yī)學(xué)等領(lǐng)域,常常需要用到低頻信號發(fā)生器。而在我們?nèi)粘I钪?,以及一些科學(xué)研究中,鋸齒波和正弦波、矩形波信號是常用的基本測試信號。譬如在示波器、電視機(jī)等儀器中,為了使電子按照一定規(guī)律運(yùn)動,以及利用熒光屏顯示圖像,常用到鋸齒波產(chǎn)生器作為時基電路。信號發(fā)生器作為一種通用的電子儀器,在生產(chǎn)、科研、測控、通訊等領(lǐng)域都得到了廣泛的應(yīng)用。但市場上能看到的儀器在頻率精度、寬帶、波形種類及控制方面都已不能滿足許多方面的需求。加之各類功能的半導(dǎo)體集成芯片的快速生產(chǎn),都使我們研制一
13、種低功耗、寬頻帶,能產(chǎn)生多種波形并具有程控等低頻的信號發(fā)生器成為可能。§1.2任意波形數(shù)據(jù)生成的國內(nèi)外研究現(xiàn)狀 任意波形發(fā)生器是隨著眾多領(lǐng)域?qū)τ趶?fù)雜的、可由用戶定義的測試信號波形日益增長的需要,以及不斷進(jìn)步的計算機(jī)技術(shù)和微電子技術(shù)在測量儀器中的應(yīng)用而形成和發(fā)展起來的一類新的測試儀器。作為當(dāng)代最新的一類信號源,引起了世界各國的廣泛重視,紛紛投入人力物力進(jìn)行研究制作。主要現(xiàn)狀如下:第一,研究制作的任意波形發(fā)生器主要有獨立的臺式儀器和適用于個人計算機(jī)的插卡以及VXI模塊。第二,主要采用了直接數(shù)字頻率合成技術(shù)(Direct Digital frequency Synthesis,簡稱DDS)
14、 ,研究制作基本上均采用了軟件結(jié)合硬件的方式。虛擬儀器開發(fā)編程語言LabWindows/CVI、匯編語言、Visual Basic、Visual C、EDA開發(fā)軟件及硬件描述語言等軟件和FPGA、CPLD、DSP芯片及高速存儲器、高速D/A轉(zhuǎn)化器、單片機(jī)等硬件被廣泛應(yīng)用。第三,大量使用各種高速器件提高時鐘頻率,使任意波形發(fā)生器輸出波形頻率不斷提高,能應(yīng)用于越來越廣泛的領(lǐng)域。第四,使用各種計算機(jī)語言開發(fā)任意波形發(fā)生器波形編輯軟件和操作軟件面板,使任意波形發(fā)生器的操作控制或任意波形數(shù)據(jù)生成變得更加方便和容易,允許徒手從計算機(jī)顯示屏上輸入任意波形。上位機(jī)于任意波形發(fā)生器硬件模塊廣泛使用RS-232/
15、485、GPIB等總線進(jìn)行數(shù)據(jù)通信,近年,USB接口也逐步被廣泛研究和應(yīng)用。第五,與VXI資源結(jié)合。由于VXI總線的逐步成熟和對測量儀器的高要求,在很多領(lǐng)域需要使用VXI系統(tǒng)測量和產(chǎn)生復(fù)雜的波形,VXI的系統(tǒng)資源提供了明顯的優(yōu)越性。但由于開發(fā)VXI模塊的周期長,而且需要專門的VXI機(jī)箱的配套使用,使得VXI的任意波形發(fā)生器模塊僅限于航空、軍事及國防等大型領(lǐng)域,在民用方面,VXI模塊遠(yuǎn)遠(yuǎn)不如臺式儀器更為方便4。就任意波形發(fā)生器技術(shù)而言,目前引領(lǐng)技術(shù)潮流的仍是國外的幾大儀器公司,如美國國家儀器有限公司NI,美國安捷倫(Agilent)公司,美國泰克(Tektronix)公司,從臺式機(jī)到插卡式模板都
16、有不同檔次的產(chǎn)品。泰克公司的任意波形發(fā)生器產(chǎn)品在波形合成上采取了傳統(tǒng)技術(shù)與DDS技術(shù)相結(jié)合的方式,使輸出波形的質(zhì)量很高。Agilent公司是單純的采用DDS技術(shù)來合成波形,這樣在電路結(jié)構(gòu)上要簡單得多,性價比很高。代表性的產(chǎn)品有NI發(fā)布的NI5412,Agilent 33220A函數(shù)/任意波形發(fā)生器,美國泰克公司研制的AFG3000系列的任意波形發(fā)生器等,這些波形發(fā)生器都具有易于操作、高頻率分辨率和寬頻率范圍等特點。這些產(chǎn)品代表了任意波形發(fā)生器的發(fā)展趨勢:即更高取樣率,更高分表率,更大存儲量和更豐富的人機(jī)接口界面6。目前我國已開始研制任意波形發(fā)生器,并取得了可喜的成果。但總的來說,我國任意波形發(fā)
17、生器還沒有形成真正的產(chǎn)業(yè)。就目前國內(nèi)成熟的產(chǎn)品來看,多為一些PC儀器插卡,獨立儀器和VXI系統(tǒng)的模塊很少,并且我國目前任意波形發(fā)生器的種類和性能都與國外同類產(chǎn)品存在較大的差距,因此加緊對這類產(chǎn)品的研制顯得迫在眉睫。任意波形發(fā)生器作為信號發(fā)生器家族的一個新的成員,技術(shù)發(fā)展十分迅速,市場份額也日漸擴(kuò)大,其狀況和地位有如示波器家族中的數(shù)字存儲示波器,以美國TEK公司為代表的國際各大電子測量儀器公司,其任意波形發(fā)生器產(chǎn)品已經(jīng)紛紛形成系列,開始逐步取代傳統(tǒng)的函數(shù)發(fā)生器,可以說任意波形發(fā)生器已經(jīng)成為信號源的發(fā)展方向。§1.3當(dāng)前主要任意波形數(shù)據(jù)生成的基本方式§1.3.1基于VXI的數(shù)字
18、信號處理法VXI總線以其開發(fā)的系統(tǒng)結(jié)構(gòu)、模塊化的設(shè)計、緊湊的機(jī)械結(jié)構(gòu)、良好的電磁兼容性等一系列優(yōu)點,在眾多軍事、工業(yè)、商業(yè)等領(lǐng)域受到日益廣泛的應(yīng)用?;赩XI總線的任意波形生成將實現(xiàn)儀器的高速、模塊化,可以通過PC機(jī)調(diào)用任意波形生成的軟件面板來對儀器進(jìn)行控制,具有測試精度高、使用空間小等特點。作為當(dāng)代一類新型的信號源,在設(shè)計上它不僅保留了傳統(tǒng)臺式任意波形發(fā)生器所具有的各種功能,而且較傳統(tǒng)波形發(fā)生器產(chǎn)生波形的種類多、頻率高,可由計算機(jī)直接控制。作為一種基于VXI總線的卡式儀器,它可以很方便地與VXI總線測試系統(tǒng)集成,很大限度的發(fā)揮計算機(jī)和微電子技術(shù)在當(dāng)今測試領(lǐng)域中的應(yīng)用,具有一定的應(yīng)用和發(fā)展前景
19、。基于VXI總線任意波形發(fā)生器是數(shù)字式信號發(fā)生器,數(shù)字信號處理法采用數(shù)字信號處理器(DSP)實現(xiàn)任意波形合成。用DSP求解一個數(shù)字遞推關(guān)系式產(chǎn)生出波形的離散序列,輸出給D/A轉(zhuǎn)換器,可以獲得較高頻率的波形信號。這種方法需要專用DSP開發(fā)系統(tǒng),而且存在輸出頻率不連續(xù)可調(diào)和控制不便的缺點7。§1.3.2 軟件合成法軟件合成法是由計算機(jī)軟件,根據(jù)幅值、頻率、相位計算出產(chǎn)生高精度波形所需數(shù)據(jù)表,計算機(jī)將離散序列送經(jīng)D/A轉(zhuǎn)化器和濾波器輸出。這種方法是優(yōu)點是電路簡單,缺點是不能產(chǎn)生高頻率的信號。造成信號頻率低的原因是數(shù)據(jù)讀取速度受計算機(jī)指令執(zhí)行時間的限制,僅靠提高存儲器本身存取速度和D/A轉(zhuǎn)換
20、器的速度不可能解決信號帶寬問題。§1.3.3直接數(shù)字頻率合成DDS是從相位概念出發(fā)直接合成所需要波形的一種新的頻率合成技術(shù)。DDS是把一系列數(shù)字量信號通過D/A轉(zhuǎn)換形成模擬信號的合成技術(shù)。主要是利用高速存儲器作查詢表,然后通過高速D/A轉(zhuǎn)換器產(chǎn)生已經(jīng)用數(shù)字形式存入的正弦波(或其他任意波形)14。一個典型的DDS系統(tǒng)應(yīng)包括:參考時鐘,正弦查找表,相位累加器,D/A轉(zhuǎn)換電路和濾波器等組成5,如圖1-1所示。相位寄存器正弦查找表D/A轉(zhuǎn)換器濾波器頻率控制器參考時鐘指定頻率正弦波圖1-1 典型DDS系統(tǒng)隨著數(shù)字信號處理理論和方法引入到頻率合成領(lǐng)域中,任意波形發(fā)生器使用直接數(shù)字合成的方式可以方
21、便的產(chǎn)生各種需求的波形。將圖1-1中的正弦查找表用波形存儲器來替代10,得到圖形如圖1-2所示。每個波形存儲器中存儲一個周期的任意波形信號,周期由若干波形點構(gòu)成,而波形點和相位一一對應(yīng),所以又相當(dāng)于一個相位/振幅變換器,振幅信息通過D/A轉(zhuǎn)換器生成階梯波形,經(jīng)過濾波得到需要的波形。指定頻率正弦波濾波器頻率控制器參考時鐘D/A轉(zhuǎn)換器波形存儲器相位寄存器指定頻率正弦波圖1-2 任意波形DDS系統(tǒng)§1.4 本文主要研究內(nèi)容本設(shè)計是基于QT軟件來實現(xiàn)任意波數(shù)據(jù)的生成,屬于直接數(shù)字信號合成。QT的模塊程度更高、運(yùn)行速度快、成本低、開發(fā)方便并且全部都是開放源代碼。QT還是面向?qū)ο?,具有?yōu)良的跨平
22、臺性,以及大量的開發(fā)文檔等,這些優(yōu)越性使我們在開發(fā)任意波軟件時具有更多的優(yōu)勢。QT的界面設(shè)計十分強(qiáng)大,使軟件更加符合人們的要求,更加的人性化。總之基于QT軟件開發(fā)任意波形的生成對于降低成本、提高系統(tǒng)的可靠性、靈活性、適應(yīng)性,縮短開發(fā)周期,具有重大的實際意義。本設(shè)計的主要工作如下:1、分析任意波形數(shù)據(jù)生成的發(fā)展、分類、及各種任意波形生成的方法。2、進(jìn)行軟件部分設(shè)計及測試:根據(jù)系統(tǒng)要實現(xiàn)的功能畫出本系統(tǒng)的軟件流程圖,編寫C+源代碼,并進(jìn)行編譯、修改直到達(dá)滿意的結(jié)果。3、系統(tǒng)模塊調(diào)試:軟件整體設(shè)計結(jié)束后,對各個模塊就行測試、修改直達(dá)到滿意的結(jié)果。4、對設(shè)計的系統(tǒng)進(jìn)行測試,獲得測試的波形,并且進(jìn)行波形
23、分析。第2章 系統(tǒng)軟件設(shè)計§2.1 系統(tǒng)總體設(shè)計框圖本系統(tǒng)是基于QT進(jìn)行的純軟件開發(fā)設(shè)計,本系統(tǒng)包含有四大模塊,分別為:基本波形生成模塊,諧波生成模塊,手繪波形生成模塊,基本波合成波基本波形生成諧波生成手繪波形基本波合成主 控 制 器形模塊。本系統(tǒng)的總體設(shè)計框圖如圖2-1所示。圖2-1 系統(tǒng)總體設(shè)計框圖 基本波形共有18種標(biāo)準(zhǔn)波形分別為:正弦波、余弦波、正切波、余切波、升指數(shù)、降指數(shù)、正半波、負(fù)半波、正全波、負(fù)全波、噪聲、抽樣函數(shù)、高斯函數(shù)、直流、方波、三角波、鋸齒波、負(fù)鋸齒。本設(shè)計的諧波是基于正弦波實現(xiàn)的。手繪波形是建立一個窗口,在這個窗口里用戶可以用鼠標(biāo)點擊移動畫線,根據(jù)用戶自己
24、的要求,可以畫出用戶想要的波形。基本波形的合成是基于基本波形的基礎(chǔ)上,在任意波形任意相位任意點處,與任意波形連接,也可以是在某些位置處和其他波形合成,形成一個新的波形。本系統(tǒng)的流程圖如圖2-2所示。初始化有鍵按下NY諧波基本波形手繪波形參數(shù)選擇參數(shù)選擇參數(shù)選擇顯示輸出繼續(xù)添加波形NY開始結(jié)束 圖2-2 系統(tǒng)流程圖§2.2 基本波形的設(shè)計在基本波形的設(shè)計前要先進(jìn)行QT窗口的建立,設(shè)計主操作界面,使用QT進(jìn)行窗口程序設(shè)計的一般流程如圖2-3所示。對于創(chuàng)建一個新的QT應(yīng)用程序來說,QT使用一個project workspace來存儲該項目所需的所有文件,其中project workspac
25、e就是一個文件夾,與項目相關(guān)的文件存儲在該文件夾下。而一個項目又由一定數(shù)量的文件組成,如果要生成一個可執(zhí)行程序,文件必須包括cpp文件和頭文件,而這些文件通常都存儲在同一工作區(qū)文件夾中。我們在New選擇一個項目類型,創(chuàng)建一個新的GUI application首先從菜單單欄中選擇File項打開如圖2-4和圖2-5所示。創(chuàng)建工程目錄新建工程創(chuàng)建圖形界面編寫代碼生成mainc根據(jù)工程文件生成wvt文件編譯并運(yùn)行圖2-3 QT窗口設(shè)計流程在圖2-4所示的New對話框中選C+,選擇子項GUI Application項目類型。當(dāng)開始一個新項目里首先想好三項內(nèi)容。第一項內(nèi)容是項目類型是什么;第二項內(nèi)容是項目
26、名稱是什么;第三項內(nèi)容是是否需要創(chuàng)建界面。圖2-6項目是否需要創(chuàng)建界面(需要的話,創(chuàng)建界面上打上勾)。圖2-4 File子菜單圖2-5 New對話框圖2-6 含一個活動工作區(qū)的IDE窗口設(shè)計主操作界面:界面直接表現(xiàn)一個應(yīng)用程序的功能。QT提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的所用功能。主界面主要包括對話框,工具欄和菜單欄,它們可以將應(yīng)用程序的所有功能與界面中的控件或菜單命令聯(lián)系起來。主界面窗口大小為600*500的,包含一個tableView和九個按鍵。TableView是為了顯示當(dāng)前生成的波形的基本信息。如圖2-7。信號和槽機(jī)制是QT 的核心機(jī)制,要精通 QT 編程就必須對信號和
27、槽有所了解。信號和槽是一種高級接口,應(yīng)用于對象之間的通信,它是 QT 的核心特性,也是 QT 區(qū)別于其它工具包的重要地方。圖中九個按鍵分別為添加波形、添加諧波、手繪、刪除、保存、關(guān)于、清空、打開、退出。這九個按鍵的槽函數(shù)分別為:add_bx_signal、add_signal、tuyaban、del_signal、save_file、about_software、clear_signal、open_file、Quit。我們在設(shè)置槽函數(shù)時,要先在頭文件聲明槽函數(shù)13,頭文件中有三個區(qū)域,分別為:public slots、protected slots和private slots。圖2-7 主界面
28、的運(yùn)行界面public slots:在這個區(qū)內(nèi)聲明的槽意味著任何對象都可將信號與之相連接。這對于組件編程非常有用,你可以創(chuàng)建彼此互不了解的對象,將它們的信號與槽進(jìn)行連接以便信息能夠正確的傳遞。protected slots:在這個區(qū)內(nèi)聲明的槽意味著當(dāng)前類及其子類可以將信號與之相連接。這適用于那些槽,它們是類實現(xiàn)的一部分,但是其界面接口卻面向外部。private slots:在這個區(qū)內(nèi)聲明的槽意味著只有類自己可以將信號與之相連接。這適用于聯(lián)系非常緊密的類。我們以上九個槽函數(shù)都屬于這一類型。以上是創(chuàng)建類以及設(shè)置主窗口的基本操作,基本波形、諧波、手繪及基本波合成都是在此基礎(chǔ)上來進(jìn)行研發(fā)的?;静ㄐ问?/p>
29、先是在系統(tǒng)的mix類中,它的程序流程圖如圖2-8所示。數(shù)據(jù)處理輸出數(shù)據(jù)繼續(xù)添加波形YN輸入?yún)?shù)開始結(jié)束圖2-8 基本波形的程序流程圖共模塊共包含有18種基本波形,它的設(shè)計界面如圖2-9。圖2-9 基本波形的設(shè)計界面此模塊包含有波形、幅值、相位、起始點、終止點、確定及取消。波形的槽函數(shù)為comboBox,包含有18個基本波形,可以任意選擇基本波形;幅值為am,最大值為100,最小值為0;相位為ph,最大為360;起始點和終止點范圍為0到32768;確定的槽函數(shù)為dialog_ok;取消的槽函數(shù)為dialog_cancel。這幾個槽函數(shù)的定義都在mix的頭文件中private slots中。波形中
30、正弦波為sin_generate_wave,正弦波的程序如下: for(i = start; i < end; i +) temp = i; temp /= 327680; temp *= count; temp *= 3; temp = sin(temp + phase / 360* 2 * 3); temp += 10; temp /= 20; temp *= (163830 * amplitude / 100); *(p + i) = temp + *(p + i); 其他還有余弦波cos_generate_wave,正切波tan_generate_wave,余切波cot_gene
31、rate_wave,直流dc_generate_wave,升指數(shù)expf_generate_wave,降指數(shù)expr_generate_wave,負(fù)全波full_n_generate_wave,正全波full_p_generate_wave,高斯函數(shù)gaus_generate_wave,負(fù)半波half_n_generate_wave,正半波half_p_generate_wave,噪聲noise_generate_wave,抽樣函數(shù)sinc_generate_wave,方波square_generate_wave,三角波triangle_generate_wave,鋸齒波sawtooth_ge
32、nerate_wave,負(fù)鋸齒fusawtooth_generate_wave。這些函數(shù)定義都在頭文件的public slots中,函數(shù)程序與正弦波的函數(shù)程序相類似。§2.3 諧波的設(shè)計諧波在設(shè)計中首先要創(chuàng)建屬于諧波的類,創(chuàng)建類的過程見22基本波形類的創(chuàng)建。本次設(shè)計的諧波屬于dialog類中,它的程序流程圖如圖2-10所示。輸入?yún)?shù)生成基波計算顯示輸出繼續(xù)添加諧波Y開始結(jié)束N圖2-10 諧波的程序流程圖添加諧波的設(shè)計界面如圖2-11。 圖2-11添加諧波的設(shè)計界面此界面包含有諧波次數(shù)、幅度比例、信號相位、確定及取消。諧波次數(shù)能選擇2-100次;幅度大小為0-100;相位為0-360。
33、確定和取消的槽函數(shù)為dialog_ok和dialog_cancel,屬于private slots。諧波的設(shè)計程序為: int wave_count;/定義wave_count double wave_amplitude;/定義wave_amplitude int wave_phase;/定義wave_phase bool ok;/申請布爾變量ok double wave_temp_data32768; /32768個數(shù)組 generate_wave(wave_data,2,1000,0);/產(chǎn)生基波 for(int i = 0; i < model->rowCount(); i
34、+) wave_count = model->item(i,0)->text()toInt(&ok,10); wave_amplitude = model->item(i,1)->text()toDouble(&ok); wave_phase = model->item(i,2)->text()toInt(&ok,10) % 360; generate_wave(wave_temp_data,wave_count,wave_amplitude,wave_phase); for(int k = 0; k < 32768; k +)
35、wave_datak += wave_temp_datak; wave_data_process(wave_data,32768); show_wave(wave_data,32768);/顯示圖形 return true;如圖2-12選擇諧波次數(shù)50次,幅值100,相位0。圖2-12 諧波參數(shù)選擇界面生成的圖形如圖2-13。圖2-13 諧波生成圖形§2.4 手繪波形的設(shè)計手繪波形在設(shè)計中首先要創(chuàng)建屬于手繪的類,創(chuàng)建類的過程見22基本波形類的創(chuàng)建。手繪波形屬于tuyaban這一類,此模塊的程序流程圖如圖2-14所示。手繪界面設(shè)置窗口大小為600*500。設(shè)計手繪波形需要三個事件,鼠標(biāo)
36、點擊事件、移動鼠標(biāo)事件和松開鼠標(biāo)事件,分別為paintEvent、mousePressEvent和mouseReleaseEvent。當(dāng)點擊鼠標(biāo)時記錄一個坐標(biāo)點(橫坐標(biāo)和縱坐標(biāo)),移動鼠標(biāo),松開鼠標(biāo)時再記錄一個坐標(biāo)點。然后判斷兩點間是否有其他波形,覆蓋原有的波形,顯示新的波形。鼠標(biāo)點擊判斷兩點中是否有其他數(shù)值Y覆蓋原數(shù)據(jù)N輸出波形鼠標(biāo)松開移動開始結(jié)束圖2-14 手繪波形的程序流程圖手繪波形編程的難點在于坐標(biāo)的處理。 int i;/定義變量i double k,b,temp;/定義變量k,b,temp int start,end; k = 0;b = 0;/起始位置的x值大于終止位置的x值的數(shù)據(jù)
37、處理 if(endPointx() > lastPointx() temp = (500 - endPointy() * 32 - (500 - lastPointy() * 32); temp /= (endPointx() * 64 - lastPointx() * 64); k = temp; b = (500 - endPointy() * 32 - k * endPointx() * 64; if(endPointx() > 500) end = 500 * 64; else end = endPointx() * 64; if(lastPointx() * 64 <
38、; 0) start = 0; else start = lastPointx() * 64; for(i = start;i < end;i+) random_wave_datai = b + k * i ; else temp = (500 - lastPointy() * 32 - (500 - endPointy() * 32); temp /= (lastPointx() * 64 - endPointx() * 64); k = temp; b = (500 - endPointy() * 32 - k * endPointx() * 64; if(lastPointx()
39、> 500) end = 500 * 64; else end = lastPointx() * 64; if(endPointx() < 0) start = 0; else start = endPointx() * 64; for(i = start;i < end;i+) random_wave_datai = b + k * i ; QPainter pp(&pix); / 根據(jù)鼠標(biāo)指針前后兩個位置就行繪制直線 ppfillRect(1,1,500,400,Qt:white); for(i = 0; i < 499;i+) ppdrawLine(QPo
40、intF(i,500 - (random_wave_datai * 64 / 32),QPointF(i + 1),500 - (random_wave_data(i + 1) * 64 / 32); / 讓前一個坐標(biāo)值等于后一個坐標(biāo)值,這樣就能實現(xiàn)畫出連續(xù)的 QPainter painter(this); painterdrawPixmap(0,0,pix);§2.5 基本波形合成的設(shè)計手繪波形屬于mix這一類,此模塊的程序流程圖如圖2-15所示。基本波形的合成是基于基本波形生成的,本設(shè)計在設(shè)計基本波形的合成時是保留基本波的數(shù)據(jù),當(dāng)再一次添加基本波形時,將現(xiàn)有的數(shù)據(jù)與保留的數(shù)據(jù)進(jìn)行
41、疊加來進(jìn)行合成的。 基本波形合成運(yùn)用的界面是和添加基本波形的界面如圖2-9相同的。輸入?yún)?shù)開始 數(shù)據(jù)處理輸出數(shù)據(jù)數(shù)據(jù)保留Y繼續(xù)添加波形N結(jié)束 圖2-15 基本波合成程序流程圖第3章 使用說明書 §3.1 主操作界面該界面屬于主要操作控制界面。功能:實現(xiàn)添加基本波形、添加諧波、手繪波形、保存等功能。如圖3-1所示。以下為區(qū)域和按鈕功能介紹。圖3-1主操作界面區(qū)域:顯示當(dāng)前波形的參數(shù)。區(qū)域:波形顯示區(qū)。按鈕:點擊可實現(xiàn)添加基本波形以及合成波形的功能。按鈕:點擊可實現(xiàn)添加諧波的功能。按鈕:點擊可實現(xiàn)手繪任意波形的功能。按鈕:刪除當(dāng)前選中的波形參數(shù)。按鈕:保存當(dāng)前波形為wvt文件格式。按鈕:
42、點擊能查詢該軟件的相關(guān)信息。按鈕:點擊能夠清空當(dāng)前所有的波形數(shù)據(jù)。按鈕:點擊打開wvt格式文件。按鈕:點擊退出軟件。§3.2 參數(shù)輸入界面§3.2.1 諧波參數(shù)輸入界面該界面屬于設(shè)定諧波參數(shù)界面。功能:設(shè)定諧波參數(shù)。如圖3-2。以下為具體區(qū)域和按鈕功能介紹。圖3-2 添加諧波界面區(qū)域:選擇諧波次數(shù),范圍為2-100。區(qū)域:選擇諧波的幅值參數(shù),范圍為0-100。區(qū)域:選擇諧波的信號相位,范圍為0-360。按鈕:點擊進(jìn)入主操作界面顯示諧波波形。按鈕:點擊返回到主操作界面。§3.2.2 基本波參數(shù)輸入界面該界面屬于設(shè)定基本波形參數(shù)的界面。功能:設(shè)定基本波形參數(shù)、實現(xiàn)基本
43、波的合成。如圖3-3。以下為具體區(qū)域和按鈕功能介紹。圖3-3 設(shè)定基本波形參數(shù)界面區(qū)域:選擇波形類型,要進(jìn)行不同波形合成,就繼續(xù)添加波形。區(qū)域:設(shè)定波形的幅值,范圍為0-100。區(qū)域:設(shè)定波形的相位,范圍為0-360。區(qū)域:設(shè)定波形的起始位置,范圍為0-32768,半個周期為16384,四分之一周期為8192,四分之三周期為24576。區(qū)域:設(shè)定波形的終止位置,范圍為0-32768。按鍵:點擊轉(zhuǎn)入主界面,顯示波形。按鍵:點擊返回到主界面。§3.2.3 手繪波形界面該界面屬于手繪波形的界面。功能:實現(xiàn)手繪任意波的功能。如圖3-4。以下為具體區(qū)域和按鈕功能介紹。區(qū)域:手繪區(qū)。按鍵:點擊將
44、手繪區(qū)的波形復(fù)制到主界面的波形顯示區(qū)。按鍵:點擊返回到主操作界面。圖3-4 手繪波形界面§3.3 操作步驟說明本系統(tǒng)進(jìn)入主操作界面后,可以根據(jù)需要點擊主操作界面按鍵,進(jìn)入到添加波形界面或點擊主操作界面按鍵,進(jìn)入添加諧波界面或點擊主操作界面,進(jìn)入到手繪波形界面。根據(jù)自己的需求,選擇自己的參數(shù)、類型或者畫出自己的波形圖,點擊確定在主操作界面區(qū)域顯示出生成的波形??梢岳^續(xù)添加波形,合成新的波形,也可以點擊主操作界面按鍵保存所生成的波形。點擊主操作界面按鍵退出系統(tǒng)。第4章 測試分析報告§4.1 按鍵事件的功能測試主操作界面的按鍵功能測試。點擊主操作界面按鍵添加波形按鍵,彈出圖4-1
45、所示對話框。測試結(jié)果正常。圖4-1 基本波形參數(shù)輸入界面點擊主操作界面按鍵添加諧波按鍵,彈出圖4-2所示對話框。測試結(jié)果正常。圖4-2 諧波參數(shù)輸入界面點擊主操作界面按鍵手繪按鍵,彈出圖4-3所示對話框,測試結(jié)果正常。點擊主操作界面按鍵刪除按鍵,如圖4-4所示。測試結(jié)果正常。點擊主操作界面按鍵保存按鍵,彈出保存界面如圖4-5。測試結(jié)果正常。點擊主操作界面按鍵關(guān)于按鍵,彈出介紹該軟件的對話框如圖4-6。測試結(jié)果正常。圖4-3 手繪操作界面 圖4-4 波形合成點擊主操作界面按鍵清空按鍵,如圖4-7所示。測試結(jié)果正常。點擊主操作界面按鍵打開按鍵,彈出打開文件對話框,如圖4-8。測試結(jié)果正常。點擊主操
46、作界面退出按鍵,直接退出軟件。測試結(jié)果正常。 圖4-5 保存界面 圖4-6 關(guān)于軟件界面 圖4-7 清空功能圖4-8 打開界面§4.2 參數(shù)輸入的功能測試§4.2.1 諧波參數(shù)輸入的測試在諧波參數(shù)輸入界面區(qū)域諧波次數(shù)選擇50次,區(qū)域幅值比例輸入最大值100,區(qū)域相位輸入0,點擊按鍵確定。輸出波形如圖4-9。測試結(jié)果正常。§4.2.2 基本波形參數(shù)輸入的測試首先測試基本波形是否顯示正常。在基本波參數(shù)輸入界面區(qū)域波形選擇區(qū),選擇正弦波,在區(qū)域幅值區(qū)域輸入幅值100,在區(qū)域相位區(qū)域輸入0,在區(qū)域起始位置輸入0,在區(qū)域終止位置輸入32768,點擊按鍵確定按鍵,輸出波形如圖
47、4-9(a)。測試結(jié)果正常。 圖4-9 諧波顯示 a 正弦波 b余弦波圖4-9分別測試其他幾種波形。圖4-9(b)為余弦波;圖4-10為直流(a)和升指數(shù)(b);圖4-11為降指數(shù)(a)和噪聲(b);圖4-12為全波(a)和正全波(b);圖4-13為高斯函數(shù)(a)和抽樣函數(shù)(b);圖4-14為負(fù)半波(a)和正半波(b);圖4-15為方波(a)和三角波(b);圖4-16為鋸齒波(a)和負(fù)鋸齒(b)。 a直流 b 升指數(shù)圖4-10 a 降指數(shù) b 噪聲圖4-11 a 負(fù)全波 b 正半波圖4-12 a 高斯函數(shù) b抽樣函數(shù)圖4-13 a 負(fù)半波 b 正半波圖4-14 a 方波 b 三角波圖4-15
48、a 鋸齒波 b 負(fù)鋸齒圖4-16§4.3 手繪波形的功能測試點擊主操作界面按鍵手繪,進(jìn)入到手繪圖形的功能界面。在手繪波形界面區(qū)域繪制圖形如圖4-17所示。點擊手繪波形按鍵確定得到圖4-18,測試結(jié)果正常。 圖4-17 手繪界面 圖4-18 主界面第5章 系統(tǒng)測試結(jié)果測試各個模塊后,對整體系統(tǒng)進(jìn)行測試。首先添加基本波形正弦波,顯示前半個周期,緊接著添加抽樣函數(shù)后半個周期,結(jié)果如圖5-1。選擇刪除sinc波形,改為添加余弦波后半個周期如圖5-2所示。 圖5-1 波形合成顯示 圖5-2 波形合成顯示這是測試不同波的銜接,下來測試不能波形的合成。首先選擇正弦波,幅值設(shè)為50,一個周期,再接著
49、選擇高斯函數(shù)前半個周期,重疊的地方就合成新的圖形,如圖5-3所示。圖5-3 波形合成顯示 點擊添加諧波選擇諧波次數(shù)10次,幅值100,能夠直接在主界面上顯示諧波,不需要清除以前的波形,還能在主操作界面區(qū)域(2),把顯示的轉(zhuǎn)換成諧波所有的參數(shù),如圖5-4。顯示完之后還可以繼續(xù)添加諧波,能夠一直添加,如圖5-5。 圖5-4 諧波生成 圖5-5 諧波生成 當(dāng)主操作界面有波形時點擊手繪會提示你是否保存文件,如圖5-6所示,點擊yes或者no后會清除當(dāng)前主操作界面所有數(shù)據(jù),然后進(jìn)入到手繪界面。 圖5-6 進(jìn)入手繪界面第六章 項目開發(fā)總結(jié)本設(shè)計是基于QT的任意波數(shù)據(jù)生成,通過設(shè)計實現(xiàn)任意波的生成,包括基本
50、波形的生成,諧波的生成,手繪波形以及基本波形的合成。本設(shè)計主要完成的工作如下:1、掌握QT軟件的基本操作方法。2、熟悉C+編程語言的編程規(guī)范。3、學(xué)會了關(guān)于GUI的界面設(shè)計及程序編寫并設(shè)計了系統(tǒng)界面。4、編寫了基本波形、諧波、手繪波形和基本波形合成模塊的程序,最終完成了系統(tǒng)的設(shè)計。本系統(tǒng)能基本完成日常任意波的運(yùn)用需要,包含了大多數(shù)的基本波形,很有實用價值。但是本系統(tǒng)設(shè)計也有缺陷,仍然有許多改進(jìn)的地方,比如手繪界面做的還相對比較粗糙,不夠精細(xì);不能在任意一個位置處添加一個完整周期的波形,只能夠在幾個波形相同位置處銜接波形;基本波形中有很多波是沒有相位的,所以有些地方處理的還不妥當(dāng)。通過開發(fā)該項目,使我掌握了使用QT軟件,并且更加熟練的運(yùn)用C+程序語言編寫程序,更加明白設(shè)計中一些細(xì)節(jié)的重要性,也更明白與人溝通的重要性。在項目進(jìn)行的過程中,我們要不斷的去整理自己的工作情況和做好總結(jié),這樣以來,無論是在自己的技
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年快遞企業(yè)快遞包裹安全監(jiān)控服務(wù)合同集3篇
- 2025年度綠城綠色建筑項目委托代建技術(shù)支持協(xié)議4篇
- 2025年消防工程維修及消防安全檢測合同3篇
- 2025版鋁塑窗專利授權(quán)與應(yīng)用合同4篇
- 2025年度臨時空調(diào)設(shè)備租賃與能耗管理合同4篇
- 二零二五年度新型建材采購與銷售一體化合同2篇
- 二零二五年度苯板銷售代理合作協(xié)議書3篇
- 二零二五版數(shù)據(jù)中心機(jī)房建設(shè)與維護(hù)合同
- 2025年度龍樓中心小學(xué)學(xué)生研學(xué)旅行活動組織合同4篇
- 2025年度高端醫(yī)療設(shè)備采購定金協(xié)議書4篇
- 2025年工程合作協(xié)議書
- 2025年山東省東營市東營區(qū)融媒體中心招聘全媒體采編播專業(yè)技術(shù)人員10人歷年高頻重點提升(共500題)附帶答案詳解
- 2025年宜賓人才限公司招聘高頻重點提升(共500題)附帶答案詳解
- KAT1-2023井下探放水技術(shù)規(guī)范
- 駕駛證學(xué)法減分(學(xué)法免分)題庫及答案200題完整版
- 竣工驗收程序流程圖
- 清華經(jīng)管工商管理碩士研究生培養(yǎng)計劃
- 口腔科診斷證明書模板
- 管溝挖槽土方計算公式
- 國網(wǎng)浙江省電力公司住宅工程配電設(shè)計技術(shù)規(guī)定
- 煙花爆竹零售應(yīng)急預(yù)案
評論
0/150
提交評論