0
Tải bản đầy đủ (.pdf) (96 trang)

Thuật toán FastICA

Một phần của tài liệu KỸ THUẬT TÁCH NGUỒN MÙ (BSS) ỨNG DỤNG TRONG TRUYỀN THÔNG KHÔNG DÂY MIMO HỢP TÁC (Trang 63 -68 )

Trong các phần trên đã nêu ra một số cách tiếp cận giải quyết bài toán BSS dùng kỹ thuật ICA, mỗi cách tiếp cận có phép đo tính độc lập tín hiệu riêng và có hiệu quả phụ thuộc vào tính khả thi của thuật toán trong thực thế. Trong đó, nguyên lý cực đại phi Gaussian được dùng phổ biến nhất. Có 2 phép đo tính phi Gaussian thường dùng là kurtosis và negentropy. Phần này trình bày thuật toán ICA dựa vào phép đo tính phi Gaussian để phân tách tín hiệu bằng cách ước lượng vector giải trộn w [14].

3.2.3.1 Phép đo tính phi Gaussian

Kurtosis là phép đo tính phi Gaussian của tín hiệu dựa trên thống kê bậc 4 của biến ngẫu nhiên, với tín hiệu càng phi Gaussian có giá trị tuyệt đối kurtosis càng khác 0. Do đó hàm lượng giá (cost function) trong thuật toán ICA theo nguyên lý cực đại tính phi Gaussian chính là hàm kurtosis của tín hiệu ước lượng:

( ) ( ) ( )

2

4 3 2

kurt y =E y − E y  (3.13)

với T

y=w x là tín hiệu ước lượng và x là tín hiệu sau tiền xử lý quy tâm và trắng hóa. Nếu kurtosis có giá trị dương thì tín hiệu có phân bố siêu Gaussian (supergaussian), nếu giá trị âm thì tín hiệu có phân bố dưới Gaussian (subgaussian) và bằng 0 khi tín hiệu có phân bố Gaussian. Phép đo kurtosis có nhược điểm là dễ bị ảnh hưởng từ các mẫu tín hiệu thu được, khi chỉ có một vài mẫu có giá trị vượt trội thì ảnh hưởng ngay đến phân bố chung của tín hiệu.

Negentropy cũng là một phép đo tính phi Gaussian của tín hiệu nhưng dựa trên phép tính entropy. Ngược với kurtosis, giá trị negentropy của tín hiệu là không âm và càng phi Gaussian thì càng lớn. Negentropy có thể được biểu diễn tương đương theo một hàm không toàn phương (nonquadratic function) như sau:

( ) ( ( )) ( ( ))

2

trong đó T

y=w xv là biến ngẫu nhiên có trị trung bình bằng 0 và phương sai đơn vị. Hàm G(.) là một hàm không toàn phương, ví dụ với hàm G y( )= y4 thì Công thức (3.14) biểu diễn negentropy có dạng tương đương theo hàm kurtosis.

Trong thực tế, hàm G(.) được chọn sao cho giá trị của G(.) không biến thiên quá nhanh để ước lượng được chính xác. Hàm G(.) có thể được chọn như sau :

( ) ( )

( )

2 1 log cosh exp 2 G y ay a y G y =   = −   (3.15)

với hằng số 1≤ ≤a 2 và thường được chọn bằng 1.

3.2.3.2 Thuật toán FastICA cho tín hiệu thực

Thông thường trong các thuật toán ICA, phép tính gradient được dùng để cực đại hoặc cực tiểu hàm lượng giá như hàm kurtosis hay hàm negentropy của tính phi Gaussian. Ưu điểm của phương pháp này là thích nghi nhanh với sự thay đổi của môi trường lai trộn tín hiệu nhưng nó có tốc độ hội tụ chậm và hiệu quả phụ thuộc vào vector khởi tạo ban đầu [17]. Thuật toán FastICA được giới thiệu bởi [4],[17] khắc phục được nhược điểm trên. Đây là thuật toán phổ biến nhất trong bài toán ICA hiện nay. So với thuật toán dùng gradient hàm kurtosis và negentropy, thuật toán FastICA tương tự nhưng chỉ thay đổi công thức cập nhật vector w.

Phép đo negentropy thường được dùng trong thuật toán FastICA. Negentropy của tín hiệu được viết ở dạng tương đương được cho ở Công thức (3.14). Gọi hàm phi tuyến g(.) là vi phân bậc 1 của hàm G(.) trong Công thức (3.15) và cũng có vi phân bậc 1 là hàm g

( )

. . Thuật toán FastICA khởi tạo vector ban đầu w và sau mỗi vòng lặp thực hiện cập nhật giá trị vector w như Công thức (3.16) cho đến khi hội tụ.

( )

T

( )

T

Sau cập nhật, vector w được chuẩn hóa độ lớn (norm) về đơn vị: /

ww w (3.17)

Sự hội tụ của thuật toán là tích giữa vector w trước và sau cập nhật có giá trị tuyệt đối gần bằng 1. Vì vector w được cập nhật mà không phụ thuộc vào bất kỳ biến phụ nào khác nên tốc độ hội tụ sẽ nhanh hơn.

3.2.3.3 Thuật toán FastICA khi có nhiễu

Thuật toán FastICA ở trên được thực hiện với giả sử tín hiệu thu không bị ảnh hưởng bởi nhiễu. Trong thực tế, tín hiệu thu còn bị ảnh hưởng của nhiễu xung quanh. Ta giả sử nhiễu n độc lập với tín hiệu gốc s, được cộng vào tín hiệu thu x

một cách độc lập ở các sensor, có phân bố Gaussian và ma trận hiệp phương sai :

2

I

σ

Σ = (3.18)

Khi đó, mô hình tín hiệu ở Công thức (3.3) trở thành:

x= As+n (3.19)

trong đó n=( ,...,n1 nN) là vector nhiễu. Theo Công thức (3.5), tín hiệu ước lượng

1 1 T y =w x lúc này trở thành:

( )

1 1 1 1 T T T y =w x=w As +w n (3.20)

Phép đo kurtosis của y1 sẽ là:

( )

1

(

1

( )) ( )

1

T T

kurt y =kurt w As +kurt w n (3.21) Vì biến ngẫu nhiên nhiễu n có phân bố Gaussian nên ( 1T ) 0

kurt w n = , do đó nhiễu n không ảnh hưởng đến phép đo tính phi Gaussian của tín hiệu ước lượng. Tuy nhiên, nhiễu ảnh hưởng trong quá trình tiền xử lý trắng hóa vì tiền xử lý thực hiện cho x trong Công thức (3.19) đã bao gồm cả nhiễu. Do đó, biến đổi trắng hóa trong mô hình ICA tín hiệu có nhiễu được cho bởi [14] :

( )

1/2

trong đó

( )

T

C=E xx . Ma trận hiệp phương sai

(

C− Σ

)

đóng vai trò là phép biến đổi trắng hóa cho tín hiệu có nhễu, còn được gọi là phép biến đổi gần trắng hóa (quasiwhitening). Tín hiệu sau trắng hóa có thể được biểu diễn bởi:

xɶ=Bs+nɶ (3.23)

với B là ma trận trực giao và nɶ là nhiễu sau trắng hóa.

Sau tiền xử lý trắng hóa, thuật toán fastICA được sử dụng, công thức cập nhật vector ước lượng sau mỗi vòng lặp như sau:

( ) (

T

) ( )

T

wE xg w xɶ ɶI+ Σɶ wE g w x ′ ɶ (3.24)

trong đó Σɶ là ma trận hiệp phương sai của nhiễu sau tiền xử lý, được tính bởi :

( )

1/2

( )

1/2

T

E nn  C C

Σ =ɶ ɶ ɶ = − Σ Σ − Σ (3.25)

và hàm g(.) có thể được chọn là g u( )=tanh( ), ( )u g u =uexp(−u2/ 2), ( )g u =u3. Cũng như trong trường hợp không nhiễu, sau mỗi vòng lặp cập nhật vector w sẽ được chuẩn hóa norm về giá trị đơn vị theo Công thức (3.17).

3.2.3.4 Thuật toán FastICA cho tín hiệu phức

Trong nhiều ứng dụng thực tế như truyền thông vô tuyến, tín hiệu và ma trận lai trộn (ma trận kênh truyền) là các số phức. Khi đó bài toán ICA có tín hiệu nguồn và tín hiệu thu được đều là số phức.

Giả sử các tín hiệu phức s= +u iv có trị trung bình bằng 0, các thành phần thực và ảo độc lập nhau và có cùng phương sai, tức là phần thực và ảo là không tương quan, thỏa mãn H

E ss  = IT 0

E ss  = . Nếu giả sử E s  = i2 1 thì tính không xác định về biên độ của ICA sẽ được khắc phục. Vì ta có thể biểu diễn

( )

( 1 )

As= zA z s với z là số phức có độ lớn bằng 1, do đó pha của tín hiệu s có thể bị thay đổi khi ước lượng, hay tín hiệu ước lượng y có thể sai pha so với tín hiệu gốc s.

Tương tự như tín hiệu thực, thuật toán FastICA cũng được phát triển để ước lượng cho tín hiệu phức. Vì phân bố của số phức thường có dạng đối xứng cầu nên ta chỉ quan tâm đến độ lớn (modulus) của chúng, do đó phép đo chỉ dựa trên độ lớn như phép đo negentropy sẽ đơn giản hơn trong việc tính toán. Hàm negentropy của tín hiệu phức như sau :

( ) (

2

)

H J y E G w x 

=  (3.26)

trong đó x là tín hiệu thu sau khi được tiền xử lý trắng hóa, G(.) là một hàm chẵn. Nếu G y( )= y2 thì ( ) [| H | ]4

J y =E w x nên Công thức (3.26) biểu diễn negentropy ở dạng tương đương theo hàm kurtosis. Các hàm G(.) khác có thể là [14]:

( )

( ) ( )

( )

2 log / 2 G y a y G y a y G y y = + = + = (3.27)

với hằng số a tùy ý, thường được chọn a=0.1.

Thuật toán FastICA cho tín hiệu phức cũng được thực hiện tương tự như tín hiệu thực, sử dụng phép đo negentropy trong Công thức (3.26), công thức cập nhật cho mỗi vector w như sau:

( ) ( )

( ) ( )

* 2 2 2 2 H H H H H w E x w x g w x E g w x w x g w x w   ←   − +   (3.28)

trong đó hàm g

( )

. là vi phân của hàm G(.) ở Công thức (3.27) và cũng có vi phân bậc 1 là hàm g

( )

. . Sau mỗi bước cập nhật, w được chuẩn hóa norm về đơn vị :

w w

w

Thuật toán trên được dùng để ước lượng một nguồn tín hiệu nên còn được gọi là thuật toán ước lượng một thành phần (one-unit). Ta có thể ước lượng nhiều nguồn tín hiệu bằng cách lặp lại nhiều lần thuật toán ước lượng một thành phần. Để tín hiệu ước lượng không trùng nhau, tín hiệu sau mỗi lần ước lượng 1H ,..., H

n

w x w x

được trực giao hóa với nhau. Phương pháp trực giao đơn giản nhất là phương pháp trực giao phân tán, trong đó các vector giải trộn được ước lượng lần lượt. Giả sử có p tín hiệu đã được ước lượng, tức là đã có p vector w1,…,wp , khi ước lượng vector thứ p+1 là wp+1, sau mỗi lần cập nhật bằng thuật toán FastICA ta thực hiện trực giao hóa cho wp+1 theo Công thức:

( )

1 1 1 1 p H p p p j j j w + w + w + w w = = −

(3.30)

Sau trực giao hóa, vector wp+1 được chuẩn hóa norm về đơn vị như Công thức (3.29). Ta cũng có thể ước lượng tất cả vector của ma trận giải trộn W cùng lúc, khi đó ma trận W được trực giao theo công thức như sau:

(

H

)

1/2

W =W W W (3.31)

trong đó ma trận W =

(

w1,...,wn

)

là ma trận giải trộn được ước lượng.

Một phần của tài liệu KỸ THUẬT TÁCH NGUỒN MÙ (BSS) ỨNG DỤNG TRONG TRUYỀN THÔNG KHÔNG DÂY MIMO HỢP TÁC (Trang 63 -68 )

×