兩個解卷繞指令的比較及來源解析_第1頁
兩個解卷繞指令的比較及來源解析_第2頁
兩個解卷繞指令的比較及來源解析_第3頁
全文預覽已結束

下載本文檔

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

文檔簡介

兩個解卷繞指令的比較及來源解析

1matlab處理軟件的分析1b是一個具有強大功能的工程計算和價值分析軟件。目前,它是世界上應用最廣泛的工程計算軟件之一。它集矩陣運算、信號處理和圖形顯示等諸多功能于一體,提供了大量命令供用戶使用,構成了一個操作方便且界面友好的操作環(huán)境。在使用Matlab對數(shù)字信號進行處理的過程中,經(jīng)常需要對復向量的相位進行解卷繞處理。本文介紹了Matlab所提供的兩個用于將信號相位解卷繞的命令“unwrap”和“phase”,深入闡述了它們用法的異同,并結合實例補充更正Matlab幫助文檔中的一處疏漏,增強了程序的通用性。2相位解卷繞算法在Matlab語言中,一般情況下,復向量X的相位值θ(單位為弧度)可以通過調(diào)用命令“angle(X)”求出,且θ的取值范圍被限定在主值區(qū)間[-π,π]內(nèi),從而造成相位數(shù)據(jù)在主值區(qū)間端點附近出現(xiàn)較大的“跳變”,因此我們需要對相位數(shù)據(jù)進行解卷繞,以保持相位數(shù)據(jù)在主值區(qū)間端點附近的連續(xù)變化,從而得到連續(xù)的“自然態(tài)”的相位值。Matlab提供了unwrap命令對相位數(shù)據(jù)進行解卷繞,其語法規(guī)則為“P=unwrap(θ,TOL)”。其中θ為儲存了待解卷繞的相位的數(shù)組,TOL為一個門限值,其默認值為π,當θ中相鄰兩元素之差的絕對值大于TOL時,Matlab就對θ在主值區(qū)間端點附近的跳變進行糾正,被糾正后的相鄰兩個相位數(shù)據(jù)之差的絕對值一定小于TOL。此外,Matlab還提供了一個命令phase,調(diào)用“P=phase(X)”就可以得到復向量X的解卷繞后的“自然態(tài)”的相位值(單位為弧度)。盡管在Matlab的幫助文檔中清楚地給出如下關系:“phase(X)=unwrap(angle(X))”,但在實際應用中,我們發(fā)現(xiàn)情況并非全都如此。例如,當X={1,—0.75+0.67i,—1+0.09i,一1+0.03i,1—0.09i,1+0.09i,—1—0.03i,—1一0.09i,—0.75—0.67i}時,分別調(diào)用“P1=unwrap(angle(X))”和“P2=phase(X)”后所得結果如圖1所示。我們發(fā)現(xiàn)兩種相位解卷繞方法對同一數(shù)據(jù)的處理結果從第五個數(shù)據(jù)點開始出現(xiàn)差異,這與Matlab幫助文檔中“phase(X)=unwrap(angle(X))”的說法似乎不太一致。那么,造成這種現(xiàn)象的原因究竟是什么呢?3分析和解決問題的方法3.1phase命令門限值的確定當我們調(diào)用“PI=unwrap(angle(X))”時,實際上是將門限值TOL的值設置為默認值π,也就是說,P1中相鄰兩元素之差的絕對值一定不大于π。通過對圖1中P1曲線進行分析就可以證明這一點,但同時我們發(fā)現(xiàn),該圖中P2曲線的第四、五數(shù)據(jù)點之差的絕對值約為3.2,鑒于前面所得的結論,任意相鄰的兩個數(shù)據(jù)點之差的絕對值一定小于門限值TOL。這說明在“P2=phase(X)”這個命令的調(diào)用過程中采用的門限值一定不是π,而是一個大于3.2的值。在Matlab的幫助文檔中查不到phase命令的門限值的相關信息,這說明其門限值并不能以參數(shù)的形式被傳入和修改,也即它應該是一個確定值。那么這個值的大小為多少呢?在Matlab命令窗口中的命令提示符“>>”后輸入“openphase”(只輸入引號內(nèi)的文本,下同),即可打開包含phase命令的M文件,在該文件的第27行,存在著如下所示的代碼:“I=find(abs(DF)>3.5)”;其中的“3.5”即為phase命令對相位進行解卷繞時所采用的門限值。我們可以據(jù)此對圖1中兩組本應重合的數(shù)據(jù)發(fā)生“差異”現(xiàn)象給出合理的解釋:當調(diào)用“P1=unwrap(angle(X))”時,由于X的第四個和第五個元素相位差的絕對值約為3.2,大于unwrap命令畎認的門限值π,因此從X的第五個元素開始,Matlab對X的相位進行糾正,而當調(diào)用“P2=phase(X)”時,由于X的第四個和第五個元素相位差的絕對值小于phase命令的門限值3.5,因此Matlab對X的相位不予糾正。3.2phase命令的修改經(jīng)過以上論述,我們基本了解了Matlab中unwrap命令和phase命令功能的異同,相對于“P=unwrap(angle(X))”而言,“P=phase(X)”具有輸入方便的特點,因此我們希望在對信號的相位解卷繞的過程中能夠盡量多的使用phase命令。前面提到過,phase命令的門限值并不能以參數(shù)的形式被傳入和修改,但我們可以利用Matlab代碼的開放性,對phase命令M文件的代碼進行修改。根據(jù)前面得到的結論將phase命令M文件第27行中的“3.5”修改為“pi”后保存,此時運行“phase(X)”和“unwrap(angle(X))”的結果完全等同。當然也可以根據(jù)實際需要將這個“3.5”修改為任何一個合適的值。此處為了便于對比,我們將phase命令M文件第27行中的“3.5”修改為“pi”后,分別調(diào)用“P1=unwrap(angle(X))”和“P2=phase(X)”所得結果如圖2所示:由此可見只有當unwrap與phase這兩個命令的門限值相等時,其結果才相同。在得到這個結論之后,就可以使我們對Matlab中的unwrap與phase這兩個命令的使用更加得心應手,同時,也能夠最大限度的減小Matlab的運算結果與理論值發(fā)生差異的可能性。4matlab中的相位解卷繞命令為了增加phase命令的通用性,避免經(jīng)常性地修改M文件所帶來的不便,我們可以在phase命令的M文件中第1行和第27行作如下改動:其中輸入?yún)⒘縏OL即為phase命令的門限值。當它與unwrap命令的門限值相同時,這兩個命令對同—個信號的處理結果也必定相同。作為—種功能強大,性能優(yōu)異的工程計算軟件,Matlab在數(shù)值分析、系統(tǒng)建模、數(shù)字信號處理以及自動控制理論等領域都具有較高的應用價值。其開放的代碼和友好的操作界面也極大地增強了自身的通

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論