Xây dựng bộ điều khiển và nhận dạng tiếng nói bằng sử lý tín hiệu số DSP 56002
Trang 1BIẾN ĐỔI FOURIER
Trong chương này sẽ trình bày về phép biến đổi Fourier với các tín hiệu liên tục và rời rạc Đồng thời giới thiệu về thực hiện phép biến đổi nhanh Fourier FFT trên DSP56002 sử dụng giải thuật phân chia theo thời gian DIT (decimation-in-time) Đây là công cụ toán học cơ bản chuẩn bị cho việc nhận dạng tiếng nói ở phần sau
A BIẾN ĐỔI FOURIER LIÊN TỤC:
Cho hàm khả tích tuyệt đối f(t) ta có biến đổi Fourier của nó là :
ω−= (t).e dt)
Biến đổi Fourier ngược là:
= F( ).e d2
Ta ký hiệu biến đổi Fourier và Fourier ngược của nó là:)
Các tính chất của biến đổi Fourier Cho cặp biến đổi Fourier: (t)↔F(ω)
F(ω)↔ (t)
Trang 2Phép biến đổi Fourier có các tính chất sau:
1 Tuyến tính:
( +β ↔α ω +β ωα
2 Tính đối xứng:
F(t)↔2.π (−ω)
3 Tính chất dịch chuyển :
Nếu tín hiệu trong miền thời gian dịch chuyển một khoảng t
othì trong miền tần số tương ứng sẽ bị dịch đi một hệ số pha:
( − o ↔ −jωto ω
Ngược lại sự dịch chuyển trong miền tần số một ωo thì trong miền thời gian sẽ nhân với một hệ số pha :
( jωto ↔ ω−ωo
4 Tính chất co giãn :
ω↔
5 Tính chất vi phân và tích phân :
6 Mômen:gọi mnlà mômen cấp n của f(t)
= t (t)dt
Khi đó :
7 Tích chập :h(t) là tích chập của f(t) và g(t) ,ký hiệu là h(t)
=f(t)*g(t) và h(t) được tính bởi công thức :
= ( )g(t )d)
Biến đổi Fourier của tích chập :)(G)(F)t(g*)t
π↔
Trang 38 Bất đẳng thức Paserval :phép biến đổi Fourier là một phép biến
đổi trực giao nên nó thỏa mãn tính chất bảo toàn năng lượng theo biểu thức Paserval:
= F ( )G( )d2
= F( ) d2
Đây là công thức tính năng lượng tín hiệu qua miền tần số
B BIẾN ĐỔI FOURIER RỜI RẠC:
Cho một chuỗi {x[n]}n∈Z biến đổi Fourier rời rạc của nó được cho bởi công thức:
ω−ω =
njj ) x[n]ee
Công thức biến đổi Fourier ngược của nó là:
= X(e ).e d2
Điều kiện để biểu thức (*) hội tụ là chuỗi f[n] phải có tổng giá trị tuyệt đối giới hạn Giả sử chuỗi f[n] là kết quả lấy mẫu của tín hiệu liên tục f(t) tại những thời điểm nT:
ω− π=
C PHÂN TÍCH BIẾN ĐỔI NHANH FOURIER:
Biến đổi Fourier rời rạc (DFT) được sử dụng rộng rãi trong các ứng dụng của xử lý tín hiệu số để xác định thành phần tần số của tín hiệu và để thực hiện lọc tín hiệu trong miền tần số Phương pháp chuyển đổi Fourier nhanh (FFT) là một thuật giải hữu hiệu, tốc độ cao cho việc tính toán trong chuyển đổi Fourier (DFT) Nguyên do FFT đạt được tốc độ tính toán cao như vậy là nhờ cách chia nhỏ tập dữ liệu mẫu ra thành các tập con nhỏ hơn và nhờ đó mà loại bỏ được các phép tính toán không cần thiết Hai phương pháp phổ biến trong việc chia nhỏ tập dữ liệu mẫu là:
1 Thuật giải FFT phân chia mười theo thời gian (decimation-in-time)
Trang 4Tập lệnh của bộ xử lý DSP56002 cung cấp các ưu điểm của nó cho thuật giải FFT phân tích lấy một phần mười theo thời gian Thuật giải FFT phân tích lấy một phần mười theo tần số cũng ứng dụng được DSP56002 nhưng tốc độ thực thi thấp hơn Cho nên ở đây chúng ta chỉ xét thuật giải FFT phân tích lấy một phần mười theo thời gian.
FFT có thể được tính toán bằng cách phân tích tập dữ liệu mẫu ra thành các tập con nhỏ hơn theo thuật giải FFT chia mười theo thời gian Điều đó có nghĩa là trước tiên phải tách các mẫu trong tổng DFT ra thành hai nhóm, một nhóm thì chứa các mẫu có n là chẵn, còn một nhóm thì chứa các mẫu có n là lẻ Đặt n=2r đối với các mẫu chẵn, còn n=2r+1 cho các mẫu lẻ, lúc đó DFT có thể được viết lại như sau:
++(N/2) 1
N x(2r 1).WW
++ (N/2) 1
N W x(2r 1).WW
Vì N là một số nguyên chẵn và 2N
W =WN/2= e−j4πn/N, phương trình trên có thể được viết lại:
X1,m(k) = X1,m−1(k)+WNk.X2,m−1(k) (7.4)X1,m(k) = X(k)
Trong đó:
∑−=− =(N/2) 1
1 (k) x(2r).WX
− =(N/2) 1 +
2 (k) x(2r 1).k.WX
Và trong đó mỗi X1,m−1(k)và X2,m−1(k)là một DFT N/2 mẫu.Tương tự ta có hai DFT N/2 mẫu có thể được viết lại là:
Trang 5X1,m−1 = 1,m−2 + Nk 2,m−2)k(X
X2,m−1 = 3,m−2 + Nk 4,m−2
Trong đó :X1,m−2(k), X2,m−2(k),X3,m−2(k),X4,m−2(k) là các DFT 4 mẫu.Quá trình phân tích có thể được tiếp tục cho đến khi có được kết quả là một nhóm N/2 DFT 2-mẫu (radix-2) đối với cổng đầu tiên của phép tính DFT N-mẫu, khi đó tổng số cổng m = log2(N).
1 Phương pháp tính con bướm:
Phương pháp tính chung cho mỗi nhóm của mỗi cổng của DFT được dựa trên phép Buterfly Hai giá trị phức trong cùng một cổng được rút ra từ hai giá trị phức ở cổng trước đó thông qua phương trình:
X j−1 và X j−1[q] tương ứng Vì vậy phép thế chỗ của FFT Butterfly tối thiểu hóa được tổng vị trí RAM cần thiết cho tính toán DFT.
Các hệ số WNcủa Butterfly luôn là mũ r hay r+N/2 vì
⇒ Xij[p]=X j−1[p]+WNr X j−1[q] (7.7)]
Trong tính toán DFT, j được tăng từ 1 đến m, i và n2 được giảm từ 2m−1
đến 20, còn no được tăng từ 20đến 2m−1.
2 Sắp xếp lại thứ tự dữ liệu nhập “Bit-Reversed”:
Để thực hiện phép thế chỗ (in-place), thì các thành phần của ngỏ nhập tuần tự x(n) cần phải được sắp xếp lại theo một cách đặc biệt và được lưu vào
Trang 6phần của x(n) có một địa chỉ nhị phân tương ứng, mà địa chỉ của x(0) được gọi là địa chỉ nền L và m bit thấp nhất của L được gán là zero.
Ví dụ với n ngỏ nhập tuần tự 8 mẫu:
Các bit thấp nhất của địa chỉ
Đảo các bit thấp nhất của địa chỉ.
Mô tả sự thay thế từ địa chỉ nền L
Ngõ nhập tuần tự ở thứ tự đảo bit
thứ tự của ngỏ nhập tuần tự x(n)
3 Ba thủ tục khác nhau để thực hiện FFT trên DSP56002
4 Thủ tục để tính toán offset nhóm của FFT và tính hệ số offset của FFT
5 Ba macro biên dịch DSP56002 thực hiện hoàn thành FFT N-mẫu.
1 Tạo ra các hệ số “twiddle”:
Hệ số twiddle ở trong phương trình (7.2) có thể được ghi lại:)
WNk = −j2πk/N = π − π
Trong đó :k =0,1,…, (N-1)/2
Macro biên dịch DSP56002 SINCOS ASM tạo ra các bảng tra đối với hệ số twiddle Bù của các giá trị phần được tạo ra bởi phương nhớ X, còn phần ảo được chứa trong bộ nhớ Y Mỗi bảng chứa một nửa chu kỳ sóng sin và cos
Trang 7Vì các giá trị sin và cosin có tầm từ -1 đến +1 và bộ xử lý DSP56002 có tầm phân số là từ -1 đến 1-223(nhỏ hơn 1) nên cần phải chọn bù giá trị cos(0) để tránh trường hợp cos(0)= +1.
2 Lưu tín hiệu nhập tuần tự x(n) theo thứ tự đảo bit (Bit-Reversed Order):
Đơn vị định địa chỉ tổng quát của DSP56002 (AGU) có một chế độ định địa chỉ tự động thực hiện đảo bit Khi sử dụng chế độ định địa chỉ này trong cách tính FFT, thì DSP56002 sẽ tự động lựa chọn thành phần nhập (xuất) tuần tự thích hợp Thuật giải đảo bit có thể được sử dụng để thực hiện một sự đảo m bit thấp nhất của địa chỉ bộ nhớ Điều này có thể thực hiện được bằng cách cộng thêm một offset N=2m−1vào giá trị địa chỉ và cứ thế tiếp tục với các bit còn lại theo hướng đảo.
3 Phương pháp tính toán bướm:
Các phương trình (7.7) và (7.8) được dùng để tính toán bướm Nếu các phần thực và ảo của X j[p],X j−1[p],X j[q],X j−1[q] và r
W là:]
Vì hệ số twiddle được dùng trong các phương trình (7.7) và (7.8) có dạng
e− 2π , có biên độ nhỏ hơn một, nên biên độ củaar’ = ar + wr * br – wi * bi
ai’ = ai + wi * br + wr * bi
br’ = ar – wr * br + wi * bi = 2 * ar - ar’bi’= ai – wi * br – wr * bi = 2 * ai - ai’
Và ở đây sau khi tính bướm, ar và br’ được chứa vào bộ nhớ X; ai và bi’ đươc chứa vào bộ nhớ Y.