用matlab编程简单电子琴,基于MATLAB的数字信号发生器及简易电子琴设计论文.doc...
基于MATLAB的數(shù)字信號發(fā)生器及簡易電子琴設(shè)計論文
基于MATLAB的數(shù)字信號發(fā)生器及簡易電子琴設(shè)計
摘 要
數(shù)字信號發(fā)生器是一種基于軟硬件結(jié)合實現(xiàn)的函數(shù)波形產(chǎn)生儀器。在工程實踐中需要檢測和分析的各種復雜信號均可分解成各種簡單信號之和,而這些簡單信號皆可由數(shù)字信號發(fā)生器模擬產(chǎn)生,因此它在工程分析和實驗教學中有著廣泛的應(yīng)用。MATLAB是一個數(shù)據(jù)分析和處理功能十分強大的工程實用軟件,它的數(shù)據(jù)采集工具箱為實現(xiàn)數(shù)據(jù)的輸入和輸出提供了十分方便的函數(shù)和命令,在數(shù)字信號處理方面方便實用。本文介紹了一種使用MATLAB建立一個簡單數(shù)字信號發(fā)生器的基本流程,并詳細敘述了簡單波形(正弦波、方波、三角波、鋸齒波、白噪聲、脈沖、階躍、斜坡)信號的具體實現(xiàn)方法。最后,利用簡單的正弦波信號和PC的聲卡設(shè)計了一個簡易電子琴。
關(guān)鍵字:MATLAB,數(shù)字信號發(fā)生器,簡易電子琴
概述
隨著計算機技術(shù)和測試技術(shù)的不斷發(fā)展,傳統(tǒng)的測試儀器正向虛擬化方向發(fā)展,特別是在試驗教學領(lǐng)域。虛擬儀器作為現(xiàn)代儀器技術(shù)和計算機技術(shù)深層次結(jié)合的產(chǎn)物,更是得到了廣泛應(yīng)用。信號發(fā)生器原本是模擬電子技術(shù)發(fā)展的產(chǎn)物,但本文設(shè)計出的數(shù)字信號發(fā)生器是基于計算機軟硬件實現(xiàn)的數(shù)字信號發(fā)生器,是一種虛擬儀器。
設(shè)計原理
常用的數(shù)字信號發(fā)生器一般可產(chǎn)生正弦信號、方波信號、三角波信號、鋸齒波信號、白噪聲信號、脈沖信號、階躍信號、斜坡信號等。此時的數(shù)字信號又可稱為離散信號,即時間為離散變量的信號。它只在離散時間上給出函數(shù)值,是時間上不連續(xù)的“序列”。離散時間的間隔是均勻的,以表示。的值由信號的采樣頻率決定。為保證采樣后信號能真實地保留原始模擬信號信息,信號采樣頻率必須至少為原信號中最高頻率成分的2倍。這是采樣的基本法則,稱為采樣定理。本文為了使產(chǎn)生的數(shù)字信號更接近原始的模擬信號,采用的采樣頻率為原始信號頻率的30倍。
MATLAB程序提供了常用的各種基本信號的生成函數(shù)。本設(shè)計需模擬的八種信號大部分都直接使用了MATLAB提供的函數(shù),只有少數(shù)幾個信號沒有調(diào)用函數(shù),直接編寫的。為了模擬信號發(fā)生器的設(shè)置,本設(shè)計也將常用信號的幅值、頻率、相位設(shè)計成可調(diào)的。
正弦信號的實現(xiàn)
正弦波信號的數(shù)學表達式如下式(2.1)所示,
(2.1)
其中:為幅值;為頻率;為相位。
在MATLAB中,將時間變量離散化并構(gòu)造成一個一維數(shù)組,如下式(2.2)所示,
(2.2)
其中:為采樣頻率。
相應(yīng)的正弦波信號的數(shù)字信號表達式如下式(2.3)所示,
(2.3)
幅值、頻率、相位參數(shù)可以由用戶界面上的滑動條或編輯框輸入。在分別得到與的離散值后,用plot作圖函數(shù)即可獲得波形顯示。
方波信號的實現(xiàn)
在MATLAB中,可以用函數(shù)直接生成一個方波信號,其函數(shù)原型為,該函數(shù)可生成一個周期為,峰值為,占空比為的方波,的默認值為50%。
利用該函數(shù),可得到幅值、頻率、相位可調(diào)的方波信號函數(shù)如下式(2.4)所示,
(2.4)
三角波信號的實現(xiàn)
在MATLAB中,可以用函數(shù)直接生成一個三角波信號,其函數(shù)原型為,該函數(shù)可生成一個周期為,峰值為,最大值出現(xiàn)在位置的三角波。
利用該函數(shù),可得到幅值、頻率、相位可調(diào)的三角波信號函數(shù)如下式(2.5)所示,
(2.5)
鋸齒波信號的實現(xiàn)
將上述2.3節(jié)中函數(shù)中的參數(shù)值設(shè)為1,即可得到鋸齒波。利用該函數(shù)得到的幅值、頻率、相位可調(diào)的鋸齒波信號函數(shù)如下式(2.6)所示,
(2.6)
白噪聲信號的實現(xiàn)
白噪聲是指功率譜密度在整個頻域內(nèi)均勻分布的噪聲。白噪聲的實現(xiàn)可借助于MATLAB中的函數(shù),它的功能是產(chǎn)生一個均值為0,標準差為1的隨機數(shù)列或矩陣,該函數(shù)有多種調(diào)用形式,下式(2.7)即可得到一個均值為0,標準差為的維的隨機矩陣。
(2.7)
其中,為幅值;。
脈沖信號的實現(xiàn)
考慮到脈沖信號與方波信號波形相似,故以方波信號函數(shù)函數(shù)為基礎(chǔ),將函數(shù)值加1,即可得到最大值為2,最小值為0的脈沖波形,原函數(shù)的參數(shù)可以用來調(diào)節(jié)脈沖的寬度。
利用該函數(shù),得到的幅值、頻率、相位可調(diào)的脈沖信號函數(shù)如下式(2.8)所示,
(2.8)
階躍信號的實現(xiàn)
階躍信號的數(shù)學表達式如下式(2.9)所示,
(2.9)
將上式用MATLAB程序語言轉(zhuǎn)換一下,即可得階躍信號函數(shù)如下式(2.10)所示,
(2.10)
斜坡信號的實現(xiàn)
斜坡信號的數(shù)學表達式如下式(2.11)所示,
(2.11)
其中,為斜坡的斜率。將上式中的時間離散化后,即可得到斜坡信號的數(shù)字
總結(jié)
以上是生活随笔為你收集整理的用matlab编程简单电子琴,基于MATLAB的数字信号发生器及简易电子琴设计论文.doc...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用符号方法求下列极限或导数matlab,
- 下一篇: php unable to save,p