• 沒有找到結果。

遞迴最小平方演算法之實現

N/A
N/A
Protected

Academic year: 2021

Share "遞迴最小平方演算法之實現"

Copied!
11
0
0

加載中.... (立即查看全文)

全文

(1)

遞迴最小平方演算法之實現

Implementation of Recursive Least-Squares Algorithm

作者:林伯彥 系級:通訊四乙 學號:D0550129 開課老師:林育德 課程名稱:高等生醫信號處理 開課系所:自動控制工程學系碩士班 開課學年:108 學年度 第二學期

(2)

中文摘要

本篇報告以實現遞迴最小平方演算法為主,並且將其應用在生醫信號中,來 濾除心電信號中之電力線干擾。在閱讀此篇報告之前,建議先閱讀[3]中的內容, 先了解其原理以及如何應用在生醫信號中,而如果像要更加瞭解演算法的各種不 同樣貌,可以在閱讀[1]的內容。在這篇報告中,在驗證部分使用的是 MATLAB (2018b, MathWorks®, Inc., USA)。

關鍵字:

遞迴最小平方演算法、非穩態信號處理、統計信號處理、電力線干擾、

(3)

Abstract

This report implements the Recursive Least-Squares algorithm, and is applied to biomedical signal processing to suppress the power-line interference in Electrocardiogram signal. Before you read this report, I suggest to read reference [3] to understand how this algorithm can work and how to use in biomedical signal. If you wanted to know more about this algorithm, you also can read reference [1] to improve your capability. In this report, all of computer experiments were conducted in MATLAB (2018b, MathWorks®, Inc., USA).

Keyword:Recursive Least-Squares (RLS) Algorithm, Nonstationary Signal Processing, Statistical Signal Processing, power-line interference (PLI), noise canceler, Electrocardiogram (ECG).

(4)

中文摘要---1

英文摘要---2

目次---3

一、

介紹---4

二、

程式碼---5

三、

結果---6

四、

參考文獻---10

(5)

一、

介紹

RLS(Recursive Least-Squares)基本上是從最小平方的方法(Least Squares)衍 伸而來。 最小平方法是用來替代維納(wiener filter)濾波的一種方法。基本上,維納濾 波器是從綜合平均(ensemble average)衍伸而來,其輸出是既有已知的輸入來獲 得,也就是假設其信號是廣義穩態(wide-sense stationary)。在另一方面,最小平 方法是確定性的方法,特別是使用了時間平均,也就是濾波結果使用了由之前取 樣所計算的數值。最小平方其計算方式為batch-processing approach, 因此濾波 器適用於非穩態信號,藉由重複計算一塊一塊的偏壓這種計算方法雖然會比其他 的演算法還要複雜,但是現在機器運算量可以非常大,因此這種方法越來越受歡 迎。 而在 RLS 演算法中一個最重要的特徵就是他的收斂率會快於 LMS 演算法, 因為RLS 演算法利用反相關的計算將輸入信號白化,而此平均值為 0,然而卻也 增加了其計算複雜度。 圖 1 為其方塊圖,基本上架構與 LMS 演算法極為相似,但是在演算法多了 一個叫做正規化的步驟。 圖1 最後,RLS 演算法可以由下列步驟來實現 (1) 初始值設定 𝒘̂ (0) = 𝟎 𝐏(0) = 𝛿−1𝐈

(6)

(2) 濾波計算 𝒌(𝑛) = 𝜆 −1𝐏(𝑛 − 1)𝒖(𝑛) 1 + 𝜆−1𝒖𝐻𝐏(𝑛 − 1)𝒖(𝑛) ξ(𝑛) = 𝑑(𝑛) − 𝒘̂𝐻(𝑛 − 1)𝒖(𝑛) 𝒘̂ (𝑛) = 𝒘̂𝐻(𝑛 − 1) + 𝒌(𝑛)ξ(𝑛) 𝐏(𝑛) = 𝜆−1𝐏(𝑛 − 1) − 𝜆−1𝒌(𝑛)𝒖𝐻(𝑛)𝐏(𝑛 − 1) 其中𝑑(𝑛)為時間𝑛 的觀察到的信號;𝒖(𝑛)為M × 1的參考信號;𝒘̂ (𝑛)與 𝒘̂𝐻(𝑛 − 1)為時間在𝑛的 M × 1以及時間在𝑛 − 1 的 1 × M的權重向量;𝜆為遺落因 子,其值介於0 到 1 之間,而且非常接近於 1,而當𝜆 = 1時,則為一般的 LS 法, 而(1 − 𝜆)−1嚴格來說,是可以用來測量延遲的演算法,所以說,當𝜆 = 1則為無 限延遲,也就是無限記憶體;而最後𝛿則為正規化變數(regularization parameter), 當輸入擁有大的訊雜比時(約大於 30dB),則𝛿小,反之亦然。而計算中的ξ(𝑛)又 可稱為前置誤差(a priori error),是由時間𝑛的觀測信號與時間𝑛 − 1的估測信號 相減的結果,因為是估測時間𝑛前就做相減,因此就叫做前置誤差,因此如果誤 差事經過估測後再相減,則叫做後置誤差(a posteriori error),而後置誤差的準確 度會大於前置誤差,不過有些演算法兩種都會使用,例如卡爾曼濾波器(kalman filter)。

二、

程式碼

clc;clear;close all; Fs = 500;M=10;

fid = fopen('D:\project\code\ECG_Signal\e3a.txt','r'); ECG= fscanf(fid, '%f')'; T=(0:length(ECG)-1)/Fs; Ref=.2*cos(2*pi*60*T); Xn=ECG+Ref; ww=zeros(1,length(Xn)); W=zeros(M,1); P=eye(M)/.01; Lamda=1; EE=zeros(1,length(Xn)); figure, subplot(211),

(7)

xlabel('time(sec.)'),ylabel('amplitude(mV.)'); [h,w]=FFT(Xn);

subplot(212),

plot(w/(2*pi)*Fs,(abs(h)));axis([0 250 0 .04]);grid; xlabel('frequency(Hz)'),ylabel('amplitude(mV.)');

%% RLS for ii=M:length(Xn) R=Ref(ii:-1:ii-M+1)'; K=(Lamda^(-1)*P*R)/(Lamda^(-1)*R'*P*R+1); Alpha=Xn(ii)-W'*R; EE(ii)=Alpha; W=W+K*Alpha; P=Lamda^(-1)*(P-K*R'*P); ww(ii)=W'*R-Ref(ii); end figure, subplot(211),

plot(T,EE);axis([0 10 -inf inf]);grid;

xlabel('time(sec.)'),ylabel('amplitude(mV.)'); [h,w]=FFT(EE);

subplot(212),

plot(w/(2*pi)*Fs,(abs(h)));axis([0 250 0 .04]);grid; xlabel('frequency(Hz)'),ylabel('amplitude(mV.)');

%% FileClose fclose(fid);

三、

結果

在此部分將會展示使用使演算法所濾波的結果,在這裡使用的例子為心電信 號之電力線干擾消除,在展示結果之前,先給定以下條件: 𝑑(𝑛) = 𝑚(𝑛) + 𝑣(𝑛) (1) = 𝑚(𝑛) + 𝐴𝑣𝑐𝑜𝑠(2𝜋𝑓𝑣𝑛) (2) 𝑢(𝑛) = 𝐴𝑢𝑐𝑜𝑠(2𝜋𝑓𝑢𝑛) 其中𝑚(𝑛)為未受干擾的心電信號,𝑣(𝑛)代表的是電力線干擾信號,也就是(2) 中的第二項。而在(2)中,𝐴𝑣為電力線干擾振幅;𝑓𝑣為電力線干擾頻率,在此為

(8)

60Hz。再來是參考信號𝑢(𝑛),其中數值與(1)中𝑣(𝑛)相似,在此假設相等。再來 是誤差式 ξ(𝑛) = 𝑑(𝑛) − 𝒘̂𝐻(𝑛 − 1)𝒖(𝑛) (3) 其中𝒘̂𝐻為估測權重的共軛轉至,其中(3)中𝒘̂𝐻(𝑛 − 1)𝒖(𝑛)若與𝑣(𝑛)相等,則 ξ(𝑛) = 𝑚(𝑛) + 𝑣(𝑛) − 𝑣(𝑛) (4) ξ(𝑛) = 𝑚(𝑛) 因此,如果經由參考信號運算出的𝒘̂𝐻(𝑛 − 1)𝒖(𝑛)越接近真實干擾信號,則 相減出來的誤差會越接近真實的心電信號,還有在此假設𝜆為 1。 在結果中,除了直接從時域以及頻率域觀察演算法結果外,在此也引用了[2] 中的MSE 演算法來觀察濾波器階數、𝛿大小,以及干擾振幅大小對濾波器所造成 的性能會有何變化,而[2]中 MSE 演算法定義如下: 𝑀𝑆𝐸 = ∑ (𝑑(𝑛) − 𝑑̂(𝑛))2 𝐿−1 𝑛=0 𝐿 (5) (5)代表在時間長度 L 中,將原始信號與經過濾波器的信號相減、平方、累 加L-1 後除上時間長度 L。如果經過(5)運算後的數值越小,代表濾波器的性能越 好,反之,則越差。除了(5),也使用了學習曲線(learning curve)來觀察濾波器的 收斂速度,在此使用的不是ξ(𝑛),是𝑢(𝑛) − 𝒘̂𝐻(𝑛 − 1)𝒖(𝑛)的結果,因此跟[1]中 不太一樣,不過也具有相同的趨勢。 以下為實驗結果。

(9)

圖2

(10)

圖4(𝐴𝑣 = 𝐴𝑢 = 0.2)

圖5

(11)

從圖 2 及圖 3 可以看到,受干擾的心電信號經過 RLS 演算法後,成功的將 干擾濾除,而且比起LMS 快很多。而在圖 4 可以看到,在相同的延遲下,當𝛿越 大,則其MSE 值也越大;另外,當𝛿固定,當使用的延遲越多,MSE 也越大,反 之亦然。圖5 可以很明顯看到,𝛿越大,收斂速度越慢,跟圖 6 的 LMS 收斂速度 比起來,整體速度是快於LMS。

四、

參考資料

[1] S. Haykin, Adaptive Filter Theory, Pearson, 2014.

[2] K. M. Chang, “Arrhythmia ECG Noise Reduction by Ensemble Empirical Mode Decomposition”, Sensors in Biomechanics and Biomedicine, vol. 10, issue 6, pp. 6063-6080, 2010.

參考文獻

相關文件

In summary, the main contribution of this paper is to propose a new family of smoothing functions and correct a flaw in an algorithm studied in [13], which is used to guarantee

This kind of algorithm has also been a powerful tool for solving many other optimization problems, including symmetric cone complementarity problems [15, 16, 20–22], symmetric

we often use least squares to get model parameters in a fitting problem... 7 Least

To convert a string containing floating-point digits to its floating-point value, use the static parseDouble method of the Double class..

For MIMO-OFDM systems, the objective of the existing power control strategies is maximization of the signal to interference and noise ratio (SINR) or minimization of the bit

In the development of data acquisition interface, matlab, a scientific computing software, was applied to acquire ECG data with real-time signal processing.. The developed

This thesis makes use of analog-to-digital converter and FPGA to carry out the IF signal capture system that can be applied to a Digital Video Broadcasting - Terrestrial (DVB-T)

This thesis focuses on the use of low-temperature microwave annealing of this novel technology to activate titanium nitride (TiN) metal gate and to suppress the V FB