Nguyên lý và lưu đồ thuật toán1.1... - Ước lượng của phổ tín hiệu sạch:- Chỉnh lưu bán sóng: 1.1.2 Wiener Filter - Mục đính: Tìm một bộ lọc tuyến tính Giω để MSE là nhỏ nhất... - Thuật t
Trang 11 Nguyên lý và lưu đồ thuật toán
1.1 Nguyên lý
1.1.1 Trừ phổ
a Trừ phổ biên độ
- Mô hình tín hiệu:
- Ước lượng của phổ tín hiệu sạch:
- Chỉnh lưu bán sóng :
Với:
b Trừ phổ công suất
- Mô hình tín hiệu:
Phân tích tín hi?u thành các frame FFT
? ?c l??ng nhi?u
Hàm x? lý gi?m nhi?u
Tín hi?u
Overlap và adding Tín hi?u
s?ch
) ( , ) (
) ( ) ( )
(
ω θ ω
ω ω
ω
i y j i
i i
i
e Y
N S
Y
=
+
=
) ( ) (
) ( 1
) ( ) ( )
( ˆ
) (
) ( ,
ω ω
ω µ
ω µ ω ω
ω
ω θ
i G
i
j i
i
Y Y
e Y
S
i
i y
−
=
−
=
)) ( ) ( , 0 max(
) ( ˆ
)) ( , 0 max(
) (
ω µ ω ω
ω ω
−
=
⇔
⇐
i i
i i
Y S
G G
∑
=
frames only -noise
) (
1 ) (
M
i Y
ω µ
{ 2} { 2} { 2}
2 2
) ( )
( )
(
) ( ) ( )
(
ω ω
ω
ω ω
ω
i i
i
i i
i
N E Y
E S
E
N S
Y
−
= +
=
Trang 2- Ước lượng của phổ tín hiệu sạch:
- Chỉnh lưu bán sóng:
1.1.2 Wiener Filter
- Mục đính: Tìm một bộ lọc tuyến tính Gi(ω) để MSE là nhỏ nhất
Giả sử tín hiệu tín hiệu s[k] và n[k] không có sự tương quan với nhau thì:
Trường hợp tổng quát:
α β
α β
ω γ ω
ω
−
=
−
=
) (
1 1
) (
) ( 1
)
2 2
i i
i i
Y E
N E G
Với:
- α=β=1: Trừ phổ công suất
- α=2, β=0.5: Trừ phổ biên độ
- α=2, β=1: Wiener Filter
2
) ( )
( ).
(
) ( ).
( )
(
,
,
ω
ω ω
ω
ω ω
ω
i yy
i sy i
i
i i
i
P
P Y
Y E
Y S
E
<- auto-correlation in i-th frame
{ } { { } } { 2} 2
2
2 2
2 2
2
) ( ) (
) (
) ( 1
) (
) ( )
( )
(
ω ω
ω
ω ω
ω ω
ω
i i
i
i i
i i
i
G Y
E
Y E
N E Y
E
N E Y
E S
E
=
−
=
−
=
( 2 2)
2
) ( ˆ ) ( , 0 max )
(
S
−
2 ) ( ˆ
) ( )
( )
ω ω ω ω
i S Y G S
2
2 2
2 2
,
, ,
,
,
) ( ˆ
) ( 1 )
( ˆ
) ( ) ( ˆ )
(
) ( )
( )
(
) ( )
(
ω
ω µ ω
ω µ ω
ω
ω
ω ω
ω ω
i i
i i
yy
i nn i
yy i
yy
i ss
i
Y Y
Y P
P P
P
P
Trang 31.2 Thuật toán
1.2.1 Thuật toán trừ phổ
C?p nh?t nhi?u N và NRM
V?i khung ti?p theo i=i+1
Kh?i t?o nhi?u (N) (trung bình công su?t nhi?u ban đ?u)
Nén tín hi?u X(:,i)=Beta*Y(:,i)
Tr? ph? D=YS(:,i)N
Tín hi?u ra X(:,i)=max(D,0);
Bi?n đ?i FFT t?ng segment (Y/2)
S Đ
SpeechFlag=0?
I<s? khung
BEGI N Phân chia tín hi?u đ?u vào thành các
segment, s? d?ng c?a s? Hamming
Tính pha và biên đ? t?ng segment
Gán nhi?u d? NRM=0 Gán tín hi?u ra X=0 H? s? nén Beta=0.03 Tính biên đ? trung bình (YS) V?i khung đ?u tiên i=0
VAD
D<NRM?
D= min c?a 3 m?u thu?c 3 segment k? nhau (có tr? nhi?u)
Đ
S
Đ
S Khôi ph?c tín hi?u đ?y đ?
Trang 41.2.2 Thuật toán Wiener
4
Tín hi?u ra X(:,i)=G.*Y(:,i)
Kh?i t?o nhi?u (N, LambdaD) Bi?n đ?i FFT t?ng segment (Y/2)
BEGI N Phân chia tín hi?u đ?u vào thành các
segment, s? d?ng c?a s? Hamming
Tính pha và biên đ? t?ng segment
Alpha=0.99 Gán đ? l?i G=1 Gán tín hi?u ra X=0 SNRpost=Gamma=1 V?i khung đ?u tiên i=0
VAD (B? qua nh?ng khung đ?u)
S
Đ SpeechFlag=0?
C?p nh?t nhi?u N và LambdaD Tính l?i SNRpost
Tính SNRpri theo SNRpost Tính đ? l?i G=SNRpri/(1+SNRpri)
V?i khung ti?p theo i=i+1 I<s? khung Đ
S Khôi ph?c tín hi?u đ?y đ?
Th?c hiên IFFT và n?i các frame
Trang 52 Kiểm tra thuật toán và đánh giá
Khi các tham s? Beta=0.3; Gamma=1; IS=0.25s; SP=40%; NoiseMargin=3dB;
Hangover=8; v?i c?a s? Hamming
- Thuật toán trừ phổ
- Thuật toán Wiener
Table CCR (Comparison Category Rate)
Much
better
Better Slightly
better
About the same
Slightly worse
worse
Nhận xét:
- Sử dụng cửa số Hamming là tối ưu, so với các cửa sổ khác
- IS = (0.1 s - 0.3s), kết quả ngõ ra không thay đổi nhiều
- SP = (0.4 s - 0.6s), kết quả ngõ ra không thay đổi nhiều
- Gamma = 1 (trừ phổ biên độ), chọn Gamma=2 (trừ phổ công suất) thì ngõ ra bị nhiễu tác động lớn
- Beta = 0.01, triệt được nhiễu hai đầu tín hiệu nhưng tín hiệu bị méo, với giá trị là 0.05 thì tín hiệu khá tốt Với giá trị 0.03 thì kết quả tốt nhất
- Noiselength = (3 – 10), kết quả ngõ ra không thay đổi nhiều
- NoiseMargin:
=1dB, tín hiệu ngõ ra gần giống với tín hiệu sạch nhưng vẫn còn nhiễu
Trang 6=5dB, một số đoạn tín hiệu bị mất.
- Hangover:
= 4 or 6, giảm nhiễu đáng kể
= 1 or 2, giảm nhiễu nhưng một số đoạn tín hiệu ra bị nén xuống (nghe nhỏ hơn)
- Đối với thuật toán Wiener, ngoài các thông số SP, IS, NoiseLength, NoiseMargin,
Hangover, cửa số Hamming giống như phương pháp trừ phổ, còn có thêm thông số alpha
là hệ số làm trơn trong phương pháp ước lượng tỉ số SNRpri, Alpha thường chọn 0,99
Tóm lại ta thấy tín hiệu ngõ ra của bộ lọc nhạy nhất với thông số NoiseMargin Cả hai thuật toán đều có tính hiệu quả giống nhau đối với nhiễu ở mức SNR thấp, nhưng đối với môi trường có SNR cao hơn thì thuật toán Wiener xử lý triệt nhiễu tốt hơn
6