![QT任意波發(fā)生器_第1頁](http://file4.renrendoc.com/view/36b43dc7e16130c170ea548c09a0aafb/36b43dc7e16130c170ea548c09a0aafb1.gif)
![QT任意波發(fā)生器_第2頁](http://file4.renrendoc.com/view/36b43dc7e16130c170ea548c09a0aafb/36b43dc7e16130c170ea548c09a0aafb2.gif)
![QT任意波發(fā)生器_第3頁](http://file4.renrendoc.com/view/36b43dc7e16130c170ea548c09a0aafb/36b43dc7e16130c170ea548c09a0aafb3.gif)
![QT任意波發(fā)生器_第4頁](http://file4.renrendoc.com/view/36b43dc7e16130c170ea548c09a0aafb/36b43dc7e16130c170ea548c09a0aafb4.gif)
![QT任意波發(fā)生器_第5頁](http://file4.renrendoc.com/view/36b43dc7e16130c170ea548c09a0aafb/36b43dc7e16130c170ea548c09a0aafb5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
...wd......wd......wd...基于QT的任意波形數(shù)據(jù)生成軟件設(shè)計摘要隨著電子測量技術(shù)與計算機技術(shù)的嚴(yán)密結(jié)合,一種新的信號發(fā)生器——任意波形發(fā)生器應(yīng)運而生。用戶可以用它生成任意復(fù)雜波形,因而具有廣闊的應(yīng)用前景。任意波形發(fā)生器是應(yīng)用越來越廣泛的一種信號源,而國內(nèi)在任意波形發(fā)生器的研制方面相對較晚,推出的產(chǎn)品很少,市場占有率幾乎為零。因此,對任意波形發(fā)生器的研制進展深入的研究已成為測試領(lǐng)域的一個新的課題,同時對于促進虛擬儀器技術(shù)的開展、應(yīng)用以及適應(yīng)自動測試系統(tǒng)的組建和完整性要求都具有深遠(yuǎn)的意義。本設(shè)計是基于QT軟件來實現(xiàn)任意波數(shù)據(jù)的生成,本系統(tǒng)包含有根本波形模塊,諧波模塊,手繪波形模塊,根本波形合成模塊。QT的模塊程度更高、運行速度快、本錢低、開發(fā)方便并且全部都是開放源代碼。本任意波形發(fā)生器不僅能產(chǎn)生正弦波、方波、三角波等常用的標(biāo)準(zhǔn)信號,也可以將幾種根本波形進展合成,并根據(jù)用戶的需要生成任意波形,對于目前三種典型的任意波形發(fā)生器——PC總線插卡式,獨立儀器,VXI模塊都有重要的參考價值。關(guān)鍵詞:波形發(fā)生器,任意波形,QT,LinuxQT-BASEDARBITRARYWAVEFORMGENERATIONSOFTWAREDESIGNDATAABSTRACTInmodernelectronicmeasuringinstruments,testexcitationsignalgeneratorusedisakindofveryimportantinstrument,closelyintegratedwiththeelectronicmeasurementtechnologyandcomputertechnology,anewsignalgenerator-cameintobeingarbitrarywaveformgenerator.Relativelylateinthedevelopmentofthedomesticaspectsofthearbitrarywaveformgenerator,developmentandapplicationoftheproductisrelativelydevelopedmoreslowly.Therefore,thedevelopmentofanarbitrarywaveformgeneratorin-depthresearchhasbecomeanewsubjectareastested,whileallhavefar-reachingsignificanceforpromotingthedevelopmentandapplicationofvirtualinstrumenttechnologyandtheautomatictestsystemtoadapttotheformationandintegrityrequirements.Inthispaper,basedontheanalysisofexistingwaveformgeneratordesignscheme,basedonQTsoftwaretoachievearbitrarywaveformdatatogenerateahigherdegreeofQTmodule,runningspeed,lowcost,easytodevelopandareallopensource.Sowhetheritisbasedonthedevelopmentofelectronictechnology,marketdemandorsoftware-basedquickandeasytouseQTtoachievearbitrarywaveformdatagenerationisgroundbreakingandisstillverynecessary.Thearbitrarywaveformgeneratorcangeneratearbitrarywaveformsaccordingtotheuser'sneeds,thecurrentthreetypicalarbitrarywaveformgenerator-PCbusplug-in,independentinstrument,VXImodulehasimportantreferencevalue.KEYWORDS:WaveformGenerator,ArbitraryWaveform,QT,Linux目錄27099前言122137第1章緒論229903§1.1課題來源、目的及意義216938§1.2任意波形數(shù)據(jù)生成的國內(nèi)外研究現(xiàn)狀28750§1.3當(dāng)前主要任意波形數(shù)據(jù)生成的根本方式49814§1.3.1基于VXI的數(shù)字信號處理法 430710§1.3.2軟件合成法 418624§1.3.3直接數(shù)字頻率合成 59618§1.4本文主要研究內(nèi)容6250第2章系統(tǒng)軟件設(shè)計715068§2.1系統(tǒng)總體設(shè)計框圖7983§2.2根本波形的設(shè)計829744§2.3諧波的設(shè)計1429625§2.4手繪波形的設(shè)計1711285§2.5根本波形合成的設(shè)計209223第3章使用說明書2218257§3.1主操作界面2212679§3.2參數(shù)輸入界面2322102§3.2.1諧波參數(shù)輸入界面 2324192§3.2.2根本波參數(shù)輸入界面 2416243§3.2.3手繪波形界面 2422716§3.3操作步驟說明257978第4章測試分析報告26240§4.1按鍵事件的功能測試2614491§4.2參數(shù)輸入的功能測試2917940§4.2.1諧波參數(shù)輸入的測試 2924039§4.2.2根本波形參數(shù)輸入的測試 3031911§4.3手繪波形的功能測試3414574第5章系統(tǒng)測試結(jié)果356394結(jié)論 3924289參考文獻4011513致謝 41前言隨著電子測量及其他部門對各類信號發(fā)生器的廣泛需求及電子技術(shù)的迅速開展,促使信號發(fā)生器種類增多,性能提高。尤其隨著70年代微處理器的出現(xiàn),更促使信號發(fā)生器向著自動化、智能化方向開展。任意波發(fā)生器在工業(yè)生產(chǎn)、科研實驗中獲得了越來越廣泛的應(yīng)用;如在雷達、通訊、仿真、電子、生物、機械、計算機等一系列系統(tǒng)測試中,都要用到任意波發(fā)生器;尤其是在要求同步輸出任意波形的場合以及需要產(chǎn)生復(fù)雜波形信號的場合,任意波發(fā)生器具有特別的優(yōu)勢??梢?,為適應(yīng)現(xiàn)代電子技術(shù)的不斷開展和市場需求,研究制作高性能的任意波數(shù)據(jù)生成器十分有必要,而且意義重大。QT是1991年奇趣科技開發(fā)的一個跨平臺的C++圖形用戶界面應(yīng)用程序框架。它提供應(yīng)應(yīng)用程序開發(fā)者建設(shè)藝術(shù)級的圖形用戶界面所需的所有功能。QT是面向?qū)ο蟮目蚣埽褂锰厥獾拇a生成擴展以及一些宏,易于擴展,允許組件編程。本設(shè)計是基于QT軟件來實現(xiàn)任意波數(shù)據(jù)的生成,QT的模塊程度更高、運行速度快、本錢低、開發(fā)方便并且全部都是開放源代碼。所以不管是基于電子技術(shù)的開展、市場的需求還是基于軟件的方便快捷,使用QT來實現(xiàn)任意波數(shù)據(jù)的生成是開創(chuàng)性的并且還是十分有必要的。第1章緒論§1.1課題來源、目的及意義波形發(fā)生器即通常所說的信號發(fā)生器是一種常見的信號源,廣泛應(yīng)用與電子電路、自動控制和科學(xué)試驗領(lǐng)域,是一種為電子測量工作提供符合嚴(yán)格技術(shù)要求的電信號設(shè)備。隨著現(xiàn)代電子技術(shù)的飛速開展,現(xiàn)代電子測量工作對波形發(fā)生器的性能提出了更高的要求,不僅要求能產(chǎn)生正弦波,方波等標(biāo)準(zhǔn)波,還能根據(jù)需要產(chǎn)生任意波形,切操作方便,輸出波形質(zhì)量好,輸出頻率范圍寬,輸出頻率穩(wěn)定度、準(zhǔn)確度及分辨率高,頻率轉(zhuǎn)換速度快且頻率轉(zhuǎn)換時輸出波形相位連續(xù)等。在科學(xué)研究、工程教育及生產(chǎn)實踐中,如工業(yè)過程控制、教學(xué)實驗、機械振動實驗、動態(tài)分析、材料實驗、生物醫(yī)學(xué)等領(lǐng)域,常常需要用到低頻信號發(fā)生器。而在我們?nèi)粘I钪?,以及一些科學(xué)研究中,鋸齒波和正弦波、矩形波信號是常用的根本測試信號。譬如在示波器、電視機等儀器中,為了使電子按照一定規(guī)律運動,以及利用熒光屏顯示圖像,常用到鋸齒波產(chǎn)生器作為時基電路。信號發(fā)生器作為一種通用的電子儀器,在生產(chǎn)、科研、測控、通訊等領(lǐng)域都得到了廣泛的應(yīng)用。但市場上能看到的儀器在頻率精度、寬帶、波形種類及控制方面都已不能滿足許多方面的需求。加之各類功能的半導(dǎo)體集成芯片的快速生產(chǎn),都使我們研制一種低功耗、寬頻帶,能產(chǎn)生多種波形并具有程控等低頻的信號發(fā)生器成為可能?!?.2任意波形數(shù)據(jù)生成的國內(nèi)外研究現(xiàn)狀任意波形發(fā)生器是隨著眾多領(lǐng)域?qū)τ趶?fù)雜的、可由用戶定義的測試信號波形日益增長的需要,以及不斷進步的計算機技術(shù)和微電子技術(shù)在測量儀器中的應(yīng)用而形成和開展起來的一類新的測試儀器。作為當(dāng)代最新的一類信號源,引起了世界各國的廣泛重視,紛紛投入人力物力進展研究制作。主要現(xiàn)狀如下:第一,研究制作的任意波形發(fā)生器主要有獨立的臺式儀器和適用于個人計算機的插卡以及VXI模塊。第二,主要采用了直接數(shù)字頻率合成技術(shù)(DirectDigitalfrequencySynthesis,簡稱DDS),研究制作根本上均采用了軟件結(jié)合硬件的方式。虛擬儀器開發(fā)編程語言LabWindows/CVI、匯編語言、VisualBasic、VisualC、EDA開發(fā)軟件及硬件描述語言等軟件和FPGA、CPLD、DSP芯片及高速存儲器、高速D/A轉(zhuǎn)化器、單片機等硬件被廣泛應(yīng)用。第三,大量使用各種高速器件提高時鐘頻率,使任意波形發(fā)生器輸出波形頻率不斷提高,能應(yīng)用于越來越廣泛的領(lǐng)域。第四,使用各種計算機語言開發(fā)任意波形發(fā)生器波形編輯軟件和操作軟件面板,使任意波形發(fā)生器的操作控制或任意波形數(shù)據(jù)生成變得更加方便和容易,允許徒手從計算機顯示屏上輸入任意波形。上位機于任意波形發(fā)生器硬件模塊廣泛使用RS-232/485、GPIB等總線進展數(shù)據(jù)通信,近年,USB接口也逐步被廣泛研究和應(yīng)用。第五,與VXI資源結(jié)合。由于VXI總線的逐步成熟和對測量儀器的高要求,在很多領(lǐng)域需要使用VXI系統(tǒng)測量和產(chǎn)生復(fù)雜的波形,VXI的系統(tǒng)資源提供了明顯的優(yōu)越性。但由于開發(fā)VXI模塊的周期長,而且需要專門的VXI機箱的配套使用,使得VXI的任意波形發(fā)生器模塊僅限于航空、軍事及國防等大型領(lǐng)域,在民用方面,VXI模塊遠(yuǎn)遠(yuǎn)不如臺式儀器更為方便[4]。就任意波形發(fā)生器技術(shù)而言,目前引領(lǐng)技術(shù)潮流的仍是國外的幾大儀器公司,如美國國家儀器NI,美國安捷倫〔Agilent〕公司,美國泰克〔Tektronix〕公司,從臺式機到插卡式模板都有不同檔次的產(chǎn)品。泰克公司的任意波形發(fā)生器產(chǎn)品在波形合成上采取了傳統(tǒng)技術(shù)與DDS技術(shù)相結(jié)合的方式,使輸出波形的質(zhì)量很高。Agilent公司是單純的采用DDS技術(shù)來合成波形,這樣在電路構(gòu)造上要簡單得多,性價比很高。代表性的產(chǎn)品有NI發(fā)布的NI5412,Agilent33220A函數(shù)/任意波形發(fā)生器,美國泰克公司研制的AFG3000系列的任意波形發(fā)生器等,這些波形發(fā)生器都具有易于操作、高頻率分辨率和寬頻率范圍等特點。這些產(chǎn)品代表了任意波形發(fā)生器的開展趨勢:即更高取樣率,更高分表率,更大存儲量和更豐富的人機接口界面[6]。目前我國已開場研制任意波形發(fā)生器,并取得了可喜的成果。但總的來說,我國任意波形發(fā)生器還沒有形成真正的產(chǎn)業(yè)。就目前國內(nèi)成熟的產(chǎn)品來看,多為一些PC儀器插卡,獨立儀器和VXI系統(tǒng)的模塊很少,并且我國目前任意波形發(fā)生器的種類和性能都與國外同類產(chǎn)品存在較大的差距,因此加緊對這類產(chǎn)品的研制顯得迫在眉睫。任意波形發(fā)生器作為信號發(fā)生器家族的一個新的成員,技術(shù)開展十分迅速,市場份額也日漸擴大,其狀況和地位有如示波器家族中的數(shù)字存儲示波器,以美國TEK公司為代表的國際各大電子測量儀器公司,其任意波形發(fā)生器產(chǎn)品已經(jīng)紛紛形成系列,開場逐步取代傳統(tǒng)的函數(shù)發(fā)生器,可以說任意波形發(fā)生器已經(jīng)成為信號源的開展方向。§1.3當(dāng)前主要任意波形數(shù)據(jù)生成的根本方式§1.3.1基于VXI的數(shù)字信號處理法VXI總線以其開發(fā)的系統(tǒng)構(gòu)造、模塊化的設(shè)計、緊湊的機械構(gòu)造、良好的電磁兼容性等一系列優(yōu)點,在眾多軍事、工業(yè)、商業(yè)等領(lǐng)域受到日益廣泛的應(yīng)用?;赩XI總線的任意波形生成將實現(xiàn)儀器的高速、模塊化,可以通過PC機調(diào)用任意波形生成的軟件面板來對儀器進展控制,具有測試精度高、使用空間小等特點。作為當(dāng)代一類新型的信號源,在設(shè)計上它不僅保存了傳統(tǒng)臺式任意波形發(fā)生器所具有的各種功能,而且較傳統(tǒng)波形發(fā)生器產(chǎn)生波形的種類多、頻率高,可由計算機直接控制。作為一種基于VXI總線的卡式儀器,它可以很方便地與VXI總線測試系統(tǒng)集成,很大限度的發(fā)揮計算機和微電子技術(shù)在當(dāng)今測試領(lǐng)域中的應(yīng)用,具有一定的應(yīng)用和開展前景?;赩XI總線任意波形發(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]?!?.3.2軟件合成法軟件合成法是由計算機軟件,根據(jù)幅值、頻率、相位計算出產(chǎn)生高精度波形所需數(shù)據(jù)表,計算機將離散序列送經(jīng)D/A轉(zhuǎn)化器和濾波器輸出。這種方法是優(yōu)點是電路簡單,缺點是不能產(chǎn)生高頻率的信號。造成信號頻率低的原因是數(shù)據(jù)讀取速度受計算機指令執(zhí)行時間的限制,僅靠提高存儲器本身存取速度和D/A轉(zhuǎn)換器的速度不可能解決信號帶寬問題?!?.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所示。波圖1-1典型DDS系統(tǒng)隨著數(shù)字信號處理理論和方法引入到頻率合成領(lǐng)域中,任意波形發(fā)生器使用直接數(shù)字合成的方式可以方便的產(chǎn)生各種需求的波形。將圖1-1中的正弦查找表用波形存儲器來替代[10],得到圖形如圖1-2所示。每個波形存儲器中存儲一個周期的任意波形信號,周期由假設(shè)干波形點構(gòu)成,而波形點和相位一一對應(yīng),所以又相當(dāng)于一個相位/振幅變換器,振幅信息通過D/A轉(zhuǎn)換器生成階梯波形,經(jīng)過濾波得到需要的波形。波指定頻率正弦波圖1-2任意波形DDS系統(tǒng)波指定頻率正弦波§1.4本文主要研究內(nèi)容本設(shè)計是基于QT軟件來實現(xiàn)任意波數(shù)據(jù)的生成,屬于直接數(shù)字信號合成。QT的模塊程度更高、運行速度快、本錢低、開發(fā)方便并且全部都是開放源代碼。QT還是面向?qū)ο螅哂袃?yōu)良的跨平臺性,以及大量的開發(fā)文檔等,這些優(yōu)越性使我們在開發(fā)任意波軟件時具有更多的優(yōu)勢。QT的界面設(shè)計十分強大,使軟件更加符合人們的要求,更加的人性化??傊赒T軟件開發(fā)任意波形的生成對于降低本錢、提高系統(tǒng)的可靠性、靈活性、適應(yīng)性,縮短開發(fā)周期,具有重大的實際意義。本設(shè)計的主要工作如下:1、分析任意波形數(shù)據(jù)生成的開展、分類、及各種任意波形生成的方法。2、進展軟件局部設(shè)計及測試:根據(jù)系統(tǒng)要實現(xiàn)的功能畫出本系統(tǒng)的軟件流程圖,編寫C++源代碼,并進展編譯、修改直到達滿意的結(jié)果。3、系統(tǒng)模塊調(diào)試:軟件整體設(shè)計完畢后,對各個模塊就行測試、修改直到達滿意的結(jié)果。4、對設(shè)計的系統(tǒng)進展測試,獲得測試的波形,并且進展波形分析。第2章系統(tǒng)軟件設(shè)計§2.1系統(tǒng)總體設(shè)計框圖本系統(tǒng)是基于QT進展的純軟件開發(fā)設(shè)計,本系統(tǒng)包含有四大模塊,分別為:根本波形生成模塊,諧波生成模塊,手繪波形生成模塊,根本波合成波根本波形生成根本波形生成諧波生成手繪波形根本波合成主控制器圖2-1系統(tǒng)總體設(shè)計框圖根本波形共有18種標(biāo)準(zhǔn)波形分別為:正弦波、余弦波、正切波、余切波、升指數(shù)、降指數(shù)、正半波、負(fù)半波、正全波、負(fù)全波、噪聲、抽樣函數(shù)、高斯函數(shù)、直流、方波、三角波、鋸齒波、負(fù)鋸齒。本設(shè)計的諧波是基于正弦波實現(xiàn)的。手繪波形是建設(shè)一個窗口,在這個窗口里用戶可以用鼠標(biāo)點擊移動畫線,根據(jù)用戶自己的要求,可以畫出用戶想要的波形。根本波形的合成是基于根本波形的根基上,在任意波形任意相位任意點處,與任意波形連接,也可以是在某些位置處和其他波形合成,形成一個新的波形。本系統(tǒng)的流程圖如圖2-2所示。初始化有鍵按下NY諧波根本波形手繪波形參數(shù)選擇參數(shù)選擇參數(shù)選擇顯示輸出繼續(xù)添加波形N初始化有鍵按下NY諧波根本波形手繪波形參數(shù)選擇參數(shù)選擇參數(shù)選擇顯示輸出繼續(xù)添加波形NY開場完畢圖2-2系統(tǒng)流程圖§2.2根本波形的設(shè)計在根本波形的設(shè)計前要先進展QT窗口的建設(shè),設(shè)計主操作界面,使用QT進展窗口程序設(shè)計的一般流程如圖2-3所示。對于創(chuàng)立一個新的QT應(yīng)用程序來說,QT使用一個projectworkspace來存儲該工程所需的所有文件,其中projectworkspace就是一個文件夾,與工程相關(guān)的文件存儲在該文件夾下。而一個工程又由一定數(shù)量的文件組成,如果要生成一個可執(zhí)行程序,文件必須包括cpp文件和頭文件,而這些文件通常都存儲在同一工作區(qū)文件夾中。我們在New選擇一個工程類型,創(chuàng)立一個新的GUIapplication首先從菜單單欄中選擇File項翻開如圖2-4和圖2-5所示。創(chuàng)立工程目錄新建工程創(chuàng)立圖形界面編寫代碼生成main.c根據(jù)工程文件生成.wvt文件編譯并運行創(chuàng)立工程目錄新建工程創(chuàng)立圖形界面編寫代碼生成main.c根據(jù)工程文件生成.wvt文件編譯并運行圖2-3QT窗口設(shè)計流程在圖2-4所示的New對話框中選C++,選擇子項GUIApplication工程類型。當(dāng)開場一個新工程里首先想好三項內(nèi)容。第一項內(nèi)容是工程類型是什么;第二項內(nèi)容是工程名稱是什么;第三項內(nèi)容是是否需要創(chuàng)立界面。圖2-6工程是否需要創(chuàng)立界面〔需要的話,創(chuàng)立界面上打上勾〕。圖2-4File子菜單圖2-5New對話框圖2-6含一個活開工作區(qū)的IDE窗口設(shè)計主操作界面:界面直接表現(xiàn)一個應(yīng)用程序的功能。QT提供應(yīng)應(yīng)用程序開發(fā)者建設(shè)藝術(shù)級的圖形用戶界面所需的所用功能。主界面主要包括對話框,工具欄和菜單欄,它們可以將應(yīng)用程序的所有功能與界面中的控件或菜單命令聯(lián)系起來。主界面窗口大小為600*500的,包含一個tableView和九個按鍵。TableView是為了顯示當(dāng)前生成的波形的根本信息。如圖2-7。信號和槽機制是QT的核心機制,要精通QT編程就必須對信號和槽有所了解。信號和槽是一種高級接口,應(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ū)域,分別為:publicslots、protectedslots和privateslots。圖2-7主界面的運行界面publicslots:在這個區(qū)內(nèi)聲明的槽意味著任何對象都可將信號與之相連接。這對于組件編程非常有用,你可以創(chuàng)立彼此互不了解的對象,將它們的信號與槽進展連接以便信息能夠正確的傳遞。protectedslots:在這個區(qū)內(nèi)聲明的槽意味著當(dāng)前類及其子類可以將信號與之相連接。這適用于那些槽,它們是類實現(xiàn)的一局部,但是其界面接口卻面向外部。privateslots:在這個區(qū)內(nèi)聲明的槽意味著只有類自己可以將信號與之相連接。這適用于聯(lián)系非常嚴(yán)密的類。我們以上九個槽函數(shù)都屬于這一類型。以上是創(chuàng)立類以及設(shè)置主窗口的根本操作,根本波形、諧波、手繪及根本波合成都是在此根基上來進展研發(fā)的。根本波形首先是在系統(tǒng)的mix類中,它的程序流程圖如圖2-8所示。理據(jù)繼續(xù)添加波形YN數(shù)開場完畢圖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的頭文件中privateslots中。波形中正弦波為sin_generate_wave,正弦波的程序如下:for(i=start;i<end;i++){temp=i;temp/=32768.0;temp*=count;temp*=3.141592653;temp=sin(temp+phase/360*2*3.141592653);temp+=1.0;temp/=2.0;temp*=(16383.0*amplitude/100);*(p+i)=temp+*(p+i);}其他還有余弦波cos_generate_wave,正切波tan_generate_wave,余切波cot_generate_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_generate_wave,負(fù)鋸齒fusawtooth_generate_wave。這些函數(shù)定義都在頭文件的publicslots中,函數(shù)程序與正弦波的函數(shù)程序相類似?!?.3諧波的設(shè)計諧波在設(shè)計中首先要創(chuàng)立屬于諧波的類,創(chuàng)立類的過程見2.2根本波形類的創(chuàng)立。本次設(shè)計的諧波屬于dialog類中,它的程序流程圖如圖2-10所示。數(shù)波計算出波Y開場完畢N圖2-10諧波的程序流程圖添加諧波的設(shè)計界面如圖2-11。圖2-11添加諧波的設(shè)計界面此界面包含有諧波次數(shù)、幅度比例、信號相位、確定及取消。諧波次數(shù)能選擇2-100次;幅度大小為0-100;相位為0-360。確定和取消的槽函數(shù)為dialog_ok和dialog_cancel,屬于privateslots。諧波的設(shè)計程序為:intwave_count;//定義wave_countdoublewave_amplitude;//定義wave_amplitudeintwave_phase;//定義wave_phaseboolok;//申請布爾變量okdoublewave_temp_data[32768];//32768個數(shù)組generate_wave(wave_data,2,100.0,0);//產(chǎn)生基波for(inti=0;i<model->rowCount();i++){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(intk=0;k<32768;k++)wave_data[k]+=wave_temp_data[k];}wave_data_process(wave_data,32768);show_wave(wave_data,32768);//顯示圖形returntrue;如圖2-12選擇諧波次數(shù)50次,幅值100,相位0。圖2-12諧波參數(shù)選擇界面生成的圖形如圖2-13。圖2-13諧波生成圖形§2.4手繪波形的設(shè)計手繪波形在設(shè)計中首先要創(chuàng)立屬于手繪的類,創(chuàng)立類的過程見2.2根本波形類的創(chuàng)立。手繪波形屬于tuyaban這一類,此模塊的程序流程圖如圖2-14所示。手繪界面設(shè)置窗口大小為600*500。設(shè)計手繪波形需要三個事件,鼠標(biāo)點擊事件、移動鼠標(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)點擊鼠標(biāo)點擊判斷兩點中是否有其他數(shù)值Y覆蓋原數(shù)據(jù)N輸出波形鼠標(biāo)松開移動開場完畢圖2-14手繪波形的程序流程圖手繪波形編程的難點在于坐標(biāo)的處理。inti;//定義變量idoublek,b,temp;//定義變量k,b,tempintstart,end;k=0;b=0;//起始位置的x值大于終止位置的x值的數(shù)據(jù)處理if(endPoint.x()>lastPoint.x()){temp=((500-endPoint.y())*32-(500-lastPoint.y())*32);temp/=(endPoint.x()*64-lastPoint.x()*64);k=temp;b=(500-endPoint.y())*32-k*endPoint.x()*64;if(endPoint.x()>500){end=500*64;}else{end=endPoint.x()*64;}if(lastPoint.x()*64<0){start=0;}else{start=lastPoint.x()*64;}for(i=start;i<end;i++){random_wave_data[i]=b+k*i;}}else{temp=((500-lastPoint.y())*32-(500-endPoint.y())*32);temp/=(lastPoint.x()*64-endPoint.x()*64);k=temp;b=(500-endPoint.y())*32-k*endPoint.x()*64;if(lastPoint.x()>500){end=500*64;}else{end=lastPoint.x()*64;}if(endPoint.x()<0){start=0;}else{start=endPoint.x()*64;}for(i=start;i<end;i++){random_wave_data[i]=b+k*i;}}QPainterpp(&pix);//根據(jù)鼠標(biāo)指針前后兩個位置就行繪制直線pp.fillRect(1,1,500,400,Qt::white);for(i=0;i<499;i++)pp.drawLine(QPointF(i,500-(random_wave_data[i*64]/32)),QPointF((i+1),500-(random_wave_data[(i+1)*64]/32)));//讓前一個坐標(biāo)值等于后一個坐標(biāo)值,這樣就能實現(xiàn)畫出連續(xù)的QPainterpainter(this);painter.drawPixmap(0,0,pix);§2.5根本波形合成的設(shè)計手繪波形屬于mix這一類,此模塊的程序流程圖如圖2-15所示。根本波形的合成是基于根本波形生成的,本設(shè)計在設(shè)計根本波形的合成時是保存根本波的數(shù)據(jù),當(dāng)再一次添加根本波形時,將現(xiàn)有的數(shù)據(jù)與保存的數(shù)據(jù)進展疊加來進展合成的。根本波形合成運用的界面是和添加根本波形的界面如圖2-9一樣的。輸入?yún)?shù)開場輸入?yún)?shù)開場數(shù)據(jù)處理數(shù)據(jù)處理輸出數(shù)據(jù)輸出數(shù)據(jù)數(shù)據(jù)保存數(shù)據(jù)保存Y繼續(xù)添加波形Y繼續(xù)添加波形NN完畢完畢圖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文件格式。按鈕⑧:點擊能查詢該軟件的相關(guān)信息。按鈕⑨:點擊能夠清空當(dāng)前所有的波形數(shù)據(jù)。按鈕⑩:點擊翻開.wvt格式文件。按鈕?:點擊退出軟件?!?.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。按鈕④:點擊進入主操作界面顯示諧波波形。按鈕⑤:點擊返回到主操作界面?!?.2.2根本波參數(shù)輸入界面該界面屬于設(shè)定根本波形參數(shù)的界面。功能:設(shè)定根本波形參數(shù)、實現(xiàn)根本波的合成。如圖3-3。以下為具體區(qū)域和按鈕功能介紹。圖3-3設(shè)定根本波形參數(shù)界面區(qū)域①:選擇波形類型,要進展不同波形合成,就繼續(xù)添加波形。區(qū)域②:設(shè)定波形的幅值,范圍為0-100。區(qū)域③:設(shè)定波形的相位,范圍為0-360。區(qū)域④:設(shè)定波形的起始位置,范圍為0-32768,半個周期為16384,四分之一周期為8192,四分之三周期為24576。區(qū)域⑤:設(shè)定波形的終止位置,范圍為0-32768。按鍵⑥:點擊轉(zhuǎn)入主界面,顯示波形。按鍵⑦:點擊返回到主界面?!?.2.3手繪波形界面該界面屬于手繪波形的界面。功能:實現(xiàn)手繪任意波的功能。如圖3-4。以下為具體區(qū)域和按鈕功能介紹。區(qū)域①:手繪區(qū)。按鍵②:點擊將手繪區(qū)的波形復(fù)制到主界面的波形顯示區(qū)。按鍵③:點擊返回到主操作界面。圖3-4手繪波形界面§3.3操作步驟說明本系統(tǒng)進入主操作界面后,可以根據(jù)需要點擊主操作界面按鍵③,進入到添加波形界面或點擊主操作界面按鍵④,進入添加諧波界面或點擊主操作界面⑤,進入到手繪波形界面。根據(jù)自己的需求,選擇自己的參數(shù)、類型或者畫出自己的波形圖,點擊確定在主操作界面區(qū)域②顯示出生成的波形??梢岳^續(xù)添加波形,合成新的波形,也可以點擊主操作界面按鍵⑦保存所生成的波形。點擊主操作界面按鍵?退出系統(tǒng)。第4章測試分析報告§4.1按鍵事件的功能測試主操作界面的按鍵功能測試。點擊主操作界面按鍵③添加波形按鍵,彈出圖4-1所示對話框。測試結(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é)果正常。點擊主操作界面⑨退出按鍵,直接退出軟件。測試結(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é)果正常?!?.2.2根本波形參數(shù)輸入的測試首先測試根本波形是否顯示正常。在根本波參數(shù)輸入界面區(qū)域①波形選擇區(qū),選擇正弦波,在區(qū)域②幅值區(qū)域輸入幅值100,在區(qū)域③相位區(qū)域輸入0,在區(qū)域④起始位置輸入0,在區(qū)域⑤終止位置輸入32768,點擊按鍵⑤確定按鍵,輸出波形如圖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-10a降指數(shù)b噪聲圖4-11a負(fù)全波b正半波圖4-12a高斯函數(shù)b抽樣函數(shù)圖4-13a負(fù)半波b正半波圖4-14a方波b三角波圖4-15a鋸齒波b負(fù)鋸齒圖4-16§4.3手繪波形的功能測試點擊主操作界面按鍵⑤手繪,進入到手繪圖形的功能界面。在手繪波形界面區(qū)域①繪制圖形如圖4-17所示。點擊手繪波形按鍵③確定得到圖4-18,測試結(jié)果正常。圖4-17手繪界面圖4-18主界面第5章系統(tǒng)測試結(jié)果測試各個模塊后,對整體系統(tǒng)進展測試。首先添加根本波形正弦波,顯示前半個周期,緊接著添加抽樣函數(shù)后半個周期,結(jié)果如圖5-1。選擇刪除sinc波形,改為添加余弦波后半個周期如圖5-2所示。圖5-1波形合成顯示圖5-2波形合成顯示這是測試不同波的銜接,下來測試不能波形的合成。首先選擇正弦波,幅值設(shè)為50,一個周期,再接著選擇高斯函數(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ù),然后進入到手繪界面。圖5-6進入手繪界面第六章工程開發(fā)總結(jié)本設(shè)計是基于QT的任意波數(shù)據(jù)生成,通過設(shè)計實現(xiàn)任意波的生成,包括根本波形的生成,諧波的生成,手繪波形以及根本波形的合成。本設(shè)計主要完成的工作如下:1、掌握QT軟件的根本操作方法。2、熟悉C++編程語言的編程標(biāo)準(zhǔn)。3、學(xué)會了關(guān)于GUI的界面設(shè)計及程序編寫并設(shè)計了系統(tǒng)界面。4、編寫了根本波形、諧波、手繪波形和根本波形合成模塊的程序,最終完成了系統(tǒng)的設(shè)計。本系統(tǒng)能根本完成日常任意波的運用需要,包含了大多數(shù)的基本波形,很有實用價值。但是本系統(tǒng)設(shè)計也有缺陷,仍然有許多改良的地方,比方手繪界面做的還相比照擬粗糙,不夠精細(xì);不能在任意一個位置處添加一個完整周期的波形,只能夠在幾個波形一樣位置處銜接波形;根本波形中有很多波是沒有相位的,所以有些地方處理的還不妥當(dāng)。通過開發(fā)該工程,使我掌握了使用QT軟件,并且更加熟練的運用C++程序語言編寫程序,更加明白設(shè)計中一些細(xì)節(jié)的重要性,也更明白與人溝通的重要性。在工程進展的過程中,我們要不斷的去整理自己的工作情況和做好總結(jié),這樣以來,無論是在自己的技術(shù)還是其他方面,都會對我們有很大提高,在長期的積累后,我們個人能力會有極大的提高。結(jié)論本文根據(jù)工業(yè)的需求提出了基于QT的任意波形數(shù)據(jù)生成的軟
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年產(chǎn)品試制協(xié)議樣本(2篇)
- 2025年九年級物理教學(xué)工作上半年總結(jié)(三篇)
- 2025年二年級體育教師工作總結(jié)(2篇)
- 城市廣場石材運輸合同樣本
- 服裝公司辦公樓裝修合同
- 健身房裝修工程合同-@-1
- 展覽館裝修委托合同
- 陽江金平路施工方案
- 2025年度化工安全工程師簡易勞動合同
- 油氣田廢渣運輸服務(wù)協(xié)議
- 礦山安全培訓(xùn)課件-地下礦山開采安全技術(shù)
- 課堂精練九年級全一冊數(shù)學(xué)北師大版2022
- 著衣母嬰臥像教學(xué)設(shè)計
- 【課件】DNA片段的擴增及電泳鑒定課件高二下學(xué)期生物人教版(2019)選擇性必修3
- GB/T 6417.1-2005金屬熔化焊接頭缺欠分類及說明
- 2023年湖北成人學(xué)位英語考試真題及答案
- 《社會主義市場經(jīng)濟理論(第三版)》第七章社會主義市場經(jīng)濟規(guī)則論
- 《腰椎間盤突出》課件
- 漢聲數(shù)學(xué)圖畫電子版4冊含媽媽手冊文本不加密可版本-29.統(tǒng)計2500g早教
- simotion輪切解決方案與應(yīng)用手冊
- 柴油發(fā)電機運行檢查記錄表格
評論
0/150
提交評論