函數 > 信號處理 > 其他轉換 > 範例:希爾伯特轉換
範例:希爾伯特轉換
使用 hilbert 函數建立實數信號的希爾伯特轉換,使分析信號的離散傅立葉轉換在負數頻率上的量值為零。
1. 使用 sincos 函數定義輸入信號。使用 rnd 函數加入隨機雜訊。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
2. 繪製輸入信號。
按一下以複製此運算式
3. 使用 hilbert 函數計算輸入信號的希爾伯特轉換。
按一下以複製此運算式
4. 繪製希爾伯特轉換信號。
按一下以複製此運算式
5. 建構及繪製複數信號。
按一下以複製此運算式
按一下以複製此運算式
後續步驟顯示分析信號的量值為原始信號的複數包絡。
6. 使用 dft 函數求解信號 z1 的頻譜。
按一下以複製此運算式
7. 繪製頻譜的絕對值。
按一下以複製此運算式
對於向量而言,介於 dft 函數與已取代的 CFFT 函數之間的縮放係數為 1/N
8. 在同一個圖中繪製所有四個信號。
按一下以複製此運算式
希爾伯特建立的新信號與輸入信號在轉換區域中以下列方式相互關聯:
按一下以複製此運算式
其中 H 又稱為希爾伯特轉換器,是使用頻率回應的濾波器:
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
您可以透過濾波器設計程序與函數建構 H
典型的希爾伯特轉換器
Rabiner 與 Gold 合著的 Theory and Application of Digital Signal Processing (數位信號處理的理論與應用) (Prentice-Hall, Inc.) 中提供典型希爾伯特轉換器的係數。下列範例以 Stearns 與 David 合著的 Signal Processing Algorithms (信號處理演算法) (Prentice-Hall) 第 14.4 節的使用方式為基礎。典型濾波器的係數會加窗並會位移,以取得奇數長度 L 的不正式濾波。
1. 定義長度與中心。
按一下以複製此運算式
按一下以複製此運算式
2. 定義未加窗的係數 h
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
3. 使用 hamming 函數以漢明窗為係數加窗,並使用 vectorize 運算子逐元素乘以 h 與視窗。
按一下以複製此運算式
4. 使用 gain 函數透過係數 h 計算濾波器在頻率 f 時的增量。
按一下以複製此運算式
按一下以複製此運算式
5. 繪製增量與頻率。
按一下以複製此運算式
頻率會常態化為取樣頻率 1。
6. 使用 exparg 函數計算濾波器的相角位移。
濾波器具有 C 的延遲,因此我們會計算延遲信號的相對濾波器之相角位移。延遲具有該轉移函數:
按一下以複製此運算式
按一下以複製此運算式
其中:
按一下以複製此運算式
按一下以複製此運算式
7. 以度數為單位繪製相角位移。
按一下以複製此運算式
幾乎整個頻率範圍的位移皆為 -90 度以上。
檢驗濾波器
1. 定義信號參數。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
2. 使用 exp 函數建立新信號。使用 rnd 函數加入低頻雜訊。
按一下以複製此運算式
您可以將游標置於 rnd 上並按 F5 鍵,重新計算並獲得不同的隨機信號 T
按一下以複製此運算式
3. 將這些元素的共軛置於信號的最後 200 個位置,以確保我們在對其進行反轉時,保證結果為實數。
按一下以複製此運算式
新的向量具有 1001 個元素,其中 1-200 個元素包含原始向量 T,而 801-1000 個元素包含 T 的共軛。中間元素設置為 0。
4. 求解 T 信號的傅立葉轉換。
按一下以複製此運算式
使用 Re 函數移除小的虛數捨入誤差。雜訊會透過建構其轉換 T 所產生,並使用第一個元素之後的前 200 個元素的隨機相角與單位量值。
5. 繪製轉換的信號。
按一下以複製此運算式
6. 使用 response 函數取得向量 ZT 對濾波器 HamL 的回應。
按一下以複製此運算式
按一下以複製此運算式
7. 使用 ZT 的前 800 個元素與 R 的後 800 個元素建立複數信號 z2
按一下以複製此運算式
將傅立葉轉換向量 ZT 的前 800 個儲存為向量 a2
按一下以複製此運算式
將回應向量 R 的後 800 個元素儲存為向量 b2
按一下以複製此運算式
定義複數信號 z2
按一下以複製此運算式
8. 使用 dft 函數計算信號 z2 的離散傅立葉轉換。
按一下以複製此運算式
對於向量而言,介於 dft 函數與已取代的 CFFT 函數之間的縮放係數為 1/P
9. 繪製信號 z2 的離散傅立葉轉換的絕對值。
按一下以複製此運算式
上圖顯示用以在轉換區域中產生信號的原始 200 個點。頻譜的上半部份基本上為零,由此得知希爾伯特轉換器濾波已確實執行。
這是否有幫助?