MATLAB函數angle、unwrap

一、angle

相位角

  1. 語法
    P =angle(Z)
  2. 描述
    P = angle(Z)返回複數數組Z的每個元素的相角(以弧度爲單位)。角度介於±π之間。
  3. 對於複數Z,幅值R和相角theta由下式給出
    R =絕對值(Z)
    θ=角度(Z)
  4. 可以根據
    Z = R. * exp(i * theta)轉換回原始複數Z。
  5. 例子
    矩陣元素的相角
    創建一個複數值矩陣,並計算每個元素的相角。
    Z = [1-1 i  2 + 1i  3-1i   4 + 1i
           1 + 2i 2-2i 3 + 2i 4-2i
           1-3i 2 + 3i 3-3i 4 + 3i
           1 + 4i 2-4i 3 + 4i 4-4i];
  6. P= angle(Z)
    P = 4×4

   -0.7854 0.4636 -0.3218 0.2450
    1.1071 -0.7854 0.5880 -0.4636
   -1.2490 0.9828 -0.7854 0.6435
    1.3258 -1.1071 0.9273 -0.7854

  1. 算法
    角度函數採用複數z = x + iy並計算atan2(y,x)來找到在xy平面上在正x軸和從原點到點(x,y)的射線之間形成的角度。這個相位角也是複數對數的虛部,因爲

總結

一、什麼是unwrap

要計算一個系統相頻特性,就要用到反正切函數,計算機中反正切函數規定,在一、二象限中的角度爲0~pi,三四象限的角度爲0~-pi。若一個角度從0變到2pi,但實際得到的結果是0~pi,再由-pi~0,在w=pi處發生跳變,跳變幅度爲2pi,這就叫相位的卷繞。unwrap(w)就是解卷繞,使相位在pi處不發生跳變,從而反應出真實的相位變化。

二、unwrap功能

unwrap功能檢查出數據相位跳變,並糾正跳變,實際上在檢查是否跳變的時候是有個標準unwrap(pha,tol),這個tol就是標準,在默認的情況下,這個標準是pi,也就是說unwrap在檢查到數據前後兩點的差距在超過tol的時候,就認爲有跳變。然後就會處理數據,讓後面的數據加2pi或者減2pi是數據連續。大部分情況下使用pi這個標準都比較合適,所以第二個參數可以缺省,特殊情況下是可以通過設置tol調整鑑別標準。
三、unwrap使用

unwrap函數不單能對數列作用,還能對矩陣作用,實現對矩陣每一行或者每一列實施相位矯正,所以完整的格式是unwrap(pha,tol,dim)。最後一個參數dim表示需要對矩陣的行,還是列進行unwrap操作。如果對列每一列操作,那麼第三個參數可以缺省而要對每一行操作,那麼第三個參數填2。比如,unwrap(pha,[],2)表示對矩陣phi中的相位數據,每一行實施相位矯正,使用默認的檢測跳變標準。

 

二、 unwrap

  1. unwrap
    校正相位角以產生更平滑的相位圖
  2. 句法
    Q =unwrap(P)
    Q =unwrap(P,tol)
    Q =unwrap(P,[ ],dim)
    Q =unwrap(P,tol,dim)
  3. 描述
    當P的連續元素之間的絕對跳變大於或等於π弧度的默認跳變公差時,
    Q = unwrap(P)通過添加±2π的倍數來校正矢量P中的弧度相位角。
    如果P是矩陣,則展開,操作按列進行。
    如果P是多維數組,則展開,將在第一個非單維度上進行。
  4. Q = unwrap(P,tol)使用跳躍公差tol而不是默認值π。
    Q = unwrap(P,[],dim)使用默認公差沿暗角展開。
    Q = unwrap(P,tol,dim)使用tol的跳躍公差。

以下相位數據來自三階傳遞函數的頻率響應。 相位曲線從-1.8621到1.7252在w = 3.0和w = 3.5之間躍遷3.5873弧度。

w = [0:.2:3,3.5:1:10]; 
p = [    0
     -1.5728
     -1.5747
     -1.5772
     -1.5790
     -1.5816
     -1.5852
     -1.5877
     -1.5922
     -1.5976
     -1.6044
     -1.6129
     -1.6269
     -1.6512
     -1.6998
     -1.8621
      1.7252
      1.6124
      1.5930
      1.5916
      1.5708
      1.5708
      1.5708 ];
semilogx(w,p,'b*-'), hold 

使用unwrap來校正相角,得到的跳躍爲2.6959,小於默認的跳躍公差π。 該圖將新曲線繪製在原始曲線上。

 

Example 2

Array P features smoothly increasing phase angles except for discontinuities at elements (3,1) and (1,2).

P = [      0    7.0686    1.5708    2.3562
      0.1963    0.9817    1.7671    2.5525
      6.6759    1.1781    1.9635    2.7489
      0.5890    1.3744    2.1598    2.9452 ]

The function Q = unwrap(P) eliminates these discontinuities.

Q =
           0    7.0686    1.5708    2.3562
      0.1963    7.2649    1.7671    2.5525
      0.3927    7.4613    1.9635    2.7489
      0.5890    7.6576    2.1598    2.9452

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章