1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài giảng Xử lý tín hiệu số: Chương 6 - TS. Đinh Đức Anh Vũ

30 129 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 788,31 KB

Nội dung

Bài giảng Xử lý tín hiệu số - Chương 6: Giải thuật cho biến đổi Fourier cung cấp cho người học các kiến thức: DFT & IDFT, phương pháp chia -trị, FFT cơ số 2, Parallel-Pipelined architecture, hiện thực các giải thuật FFT,... Mời các bạn cùng tham khảo.

dce 2011 Chương Giải thuật cho biến đổi Fourier (FFT) BK TP.HCM ©2011, TS Đinh Đ ức Anh Vũ dce 2011 Nội dung Tính DFT & IDFT Tính trực tiếp Biến đổi WN Lọc tuyến tính Chia-Trị Cơ số Cơ số DSP – Giải thuật cho Biến đổi Fourier Tách số Goertzel Chirp-z ©2011, Đinh Đức Anh Vũ dce 2011 DFT & IDFT • Tính DFT: xác định chuỗi N giá trị phức {X(k)} biết trước chuỗi {x(n)} chiều dài N N −1 DFT X (k ) = ∑ x(n)WNkn ≤ k ≤ N −1 IDFT x ( n) = N ≤ n ≤ N −1 n =0 N −1 − kn X k W ( ) ∑ N k =0 – Giải thuật tính DFT áp dụng cho việc tính IDFT • Tính trực tiếp – N2 phép nhân phức – N(N-1) phép cộng phức → Độ phức tạp : O(N2) • Biến đổi WN – – – – 2N2 phép tính lượng giác 4N2 phép nhân số thực 4N(N-1) phép cộng số thực Một số phép toán số địa để nạp x(n) DSP – Giải thuật cho Biến đổi Fourier N −1  2πkn 2πkn  X R (k ) = ∑ [ xR (n) cos( N ) + xI (n) sin( N )]  n =0  N −1  X (k ) = − [ x (n) sin( 2πkn ) − x (n) cos( 2πkn )] ∑ R I N N  I n =0 Giải thuật tính DFT tối ưu phép toán theo cách khác Doi xung WNk + N /2 = −WNk Tuan hoan WNk + N = WNk ©2011, Đinh Đức Anh Vũ dce 2011 Phương pháp chia-trị (1) • • Nguyên tắc: phân rã nhỏ việc tính DFT N điểm thành việc tính DFT kích thước nhỏ → giải thuật FFT Phương pháp – Giả sử N=L.M – Lưu trữ x(n) vào mảng chiều L × M (l: số hàng, m: số cột) n→ … N-1 x(0) x(1) x(2) … x(N-1) – Cách lưu trữ • Theo dòng n = Ml + m • Theo cột n = l + mL l m … M-1 x(0,0) x(0,1) … x(0,M-1) x(1,0) x(1,1) … x(1,M-1) x(2,0) x(2,1) … x(2,M-1) … … … … x(L-1,0) x(L-1,1) … x(L-1,M-1) L-1 – Tương tự, giá trị DFT X(k) tính lưu trữ ma trận L × M (p: số hàng, q: số cột) • Theo dịng k = Mp + q • Theo cột k = p + qL DSP – Giải thuật cho Biến đổi Fourier ©2011, Đinh Đức Anh Vũ dce 2011 Phương pháp chia-trị (2) N −1 X (k ) = ∑ x(n)WNkn ≤ k ≤ N −1 n =0 Với: M −1 L −1 x(n) X(k) X ( p, q ) = ∑∑ x(l , m)WN( Mp + q )( mL +l ) : theo cột : theo hàng m =0 l =0 WN( Mp + q )( mL +l ) = WNMLmpWNmLqWNMplWNlq  lq  M −1 mq   X ( p, q ) = ∑ WN  ∑ x(l , m)WM  WLlp l =0   m =0  L −1 DFT M điểm F(l,q) G(l,q) DFT L điểm X(p,q) DSP – Giải thuật cho Biến đổi Fourier WNNmp = WNmqL = WNmq/ L = WMmq WNMpl = WNpl/ M = WLpl (1): Tính L DFT M điểm Nhân phức : LM2 Cộng phức : LM(M-1) (2): Tính G(l,q) Nhân phức : LM (3): Tính X(p,q) Nhân phức : ML2 Cộng phức : ML(L-1)  Độ phức tạp Nhân phức : N(M+L+1) Cộng phức : N(M+L-2) ©2011, Đinh Đức Anh Vũ dce 2011 Phương pháp chia-trị (3) • Hiệu PP tính trực tiếp • Nhân phức : N2 • Cộng phức : N(N-1) PP chia-trị • Nhân phức : N(M+L+1) • Cộng phức : N(M+L-2) N=1000 → L=2, M=500 106 nhân phức → 503,000 (~ N/2) • PP chia-trị hiệu • Giải thuật – Phân rã nhỏ đến (v-1) lần n = l + mL k = Mp + q N= r1r2r3…rv n = Ml + m k = qL + p Giải thuật Giải thuật 1 Lưu trữ t/h theo cột Tính DFT M điểm hàng Nhân ma trận kết với hệ số pha WNlq Tính DFT L điểm cột Đọc ma trận kết theo hàng DSP – Giải thuật cho Biến đổi Fourier Lưu trữ t/h theo hàng Tính DFT L điểm cột Nhân ma trận kết với hệ số pha WNpm Tính DFT M điểm hàng Đọc ma trận kết theo cột ©2011, Đinh Đức Anh Vũ dce 2011 Phương pháp chia-trị (4) • Mơ hình tính tốn DFT điểm thơng qua việc tính DFT điểm DFT điểm W6lq X(2) x(2)x(5) X(5) X(1) DFT điểm x(4) x(0)x(3) x(1) • X(4) X(0) X(3) Giải thuật tính FFT số – Nếu N = r1r2r3…rv = rv → mơ hình tính DFT có cấu trúc (chỉ dùng DFT r điểm) – r = → FFT số – Chọn M = N/2 L = x(0) Giải thuật chia theo thời gian m=0 x(1) x(2) m=1 … … … x(N-1) m=M-1 l=0 x(0) x(2) … x(N-2) f1(2n) l=1 x(1) x(3) … x(N-1) f2(2n+1) DSP – Giải thuật cho Biến đổi Fourier … n= 0,1, …, N/2-1 ©2011, Đinh Đức Anh Vũ dce 2011 FFT số (1) N −1 X (k ) = ∑ x(n)WNkn k = 0,1, , N − n =0 = kn kn + ( ) ( ) x n W x n W ∑ ∑ N N n even = n old ( N / ) −1 ∑ x(2m)W m =0 X (k ) = mk N ( N / ) −1 ∑ m =0 f1 (m)W km N /2 + ( N / ) −1 +W ∑ x(2m + 1)W m =0 k ( m +1) N WN2 = WN / ( N / ) −1 ∑ k N m =0 = F1 (k ) + WNk F2 (k ) f (m)WNkm/ k = 0,1, , N − f1 (m) ←  → F1 (k ) DFTN / k = 0,1, , N / f (m) ←  → F2 (k ) DFTN / k = 0,1, , N / k  ( ) = ( ) + X k F k W k = 0,1, , N2 −  N F2 ( k )  k N ( + ) = ( ) − X k F k W k = 0,1, , N2 −  N F2 ( k )  DSP – Giải thuật cho Biến đổi Fourier F1(k), F2(k) tuần hoàn chu kỳ N/2 F1(k+ N/2) = F1(k) F2(k+ N/2) = F2(k) WNk + N / = −WNk ©2011, Đinh Đức Anh Vũ dce 2011 FFT số (2) G1 (k ) = F1 (k )  G2 (k ) = WNk F2 (k ) k = 0,1, , N2 − k = 0,1, , N2 − G1(k) G2(k)  X (k ) = G1 (k ) + G2 (k )  N X k ( + ) = G1 ( k ) − G2 ( k )  DFT2 k = 0,1, , N2 − X(k) X(k+ N/2) k=0,1,…,(N/2-1) k = 0,1, , N2 − DFT điểm DFT DFT điểm DFT điểm điểm DSP – Giải thuật cho Biến đổi Fourier ©2011, Đinh Đức Anh Vũ dce 2011 FFT số (3) • Tiếp tục phân f1(n) f2(n) thành chuỗi N/4 điểm v11 (n) =  v12 (n) =  v21 (n) = v (n) =  22 f1 (2n) n = 0,1, , N4 − f1 (2n + 1) n = 0,1, , N4 − f ( 2n ) n = 0,1, , N4 − f (2n + 1) n = 0,1, , N4 −  F1 (k ) = V11 (k ) + WNk / 2V12 (k )  k N  F1 (k + ) = V11 (k ) − WN / 2V12 (k )  k F k V k W = + ( ) ( )  21 N / 2V22 ( k )  F (k + N ) = V (k ) − W k V (k ) 21 N / 22  vij(n) DFT N/4 điểm Vij(k) k = 0,1, , N4 − k = 0,1, , N4 − k = 0,1, , N4 − k = 0,1, , N4 − • Hiệu DFT trực tiếp N=2v điểm Nhân phức: N2 Cộng phức: N2 – N DSP – Giải thuật cho Biến đổi Fourier FFT số Các DFT điểm Nhân phức: (N/2)log2N Cộng phức: Nlog2N ©2011, Đinh Đức Anh Vũ 10 dce 2011 FFT số (7) • Thứ tự chuỗi liệu vào sau phân (v-1) lần – Biểu diễn số dạng nhị phân – Chuỗi sau phân chia lấy theo thứ tự đảo bit Bộ nhớ Địa Bộ nhớ Địa Bộ nhớ Địa x(0) 000 x(0) 000 x(0) 000 x(1) 001 x(2) 010 x(4) 100 x(2) 010 x(4) 100 x(2) 010 x(3) 011 x(6) 110 x(6) 110 x(4) 100 x(1) 001 x(1) 001 x(5) 101 x(3) 011 x(5) 101 x(6) 110 x(5) 101 x(3) 011 x(7) 111 x(7) 111 x(7) 111 Phân chia DSP – Giải thuật cho Biến đổi Fourier Phân chia ©2011, Đinh Đức Anh Vũ 16 dce 2011 FFT số (8) • Phân chia theo tần số – – – – – Phương pháp chia trị M = 2, L = N/2 Chuỗi liệu nhập xếp theo cột Phân chia X(k) thành X(2k) X(2k+1) Sau phân chia tiếp tục X(k chẵn) X(k lẻ) x(0) X(0) x(1) DFT điểm x(2) x(3) -1 x(5) -1 x(6) -1 x(7) -1 8 8 W W W W A = (a+b) WN’ X(2) X(4) X(6) x(4) a b –1 W N’ B = (a–b)WN’ X(1) DFT điểm DSP – Giải thuật cho Biến đổi Fourier X(3) X(5) X(7) ©2011, Đinh Đức Anh Vũ 17 dce FFT số (1) 2011 x(0) x(2) x(4) … … … x(N-1) l,p = 0,1,2,3 m,q = 0,1,…,N/4 – L = 4, M = N/4 N = 4v n = 4m + l k = (N/4)p + q m=0 m=1 m=(N/4)-1 l=0 x(0) x(4) … … x(N-4) x(4n) l=1 x(1) x(5) … … x(N-3) x(4n+1) n = 0,1,…,N/4-1 l=2 x(2) x(6) … … x(N-2) x(4n+2) l=3 x(3) x(7) … … x(N-1) x(4n+3) DSP – Giải thuật cho Biến đổi Fourier ©2011, Đinh Đức Anh Vũ 18 dce 2011 FFT số (2)  lq  M −1 mq   lp X ( p, q ) = ∑ WN  ∑ x(l , m)WM  WL l =0   m =0  L −1 [ ] X ( p, q ) = ∑ WNlq F (l , q ) W4lp p = 0,1,2,3 l =0 DFT N/4 điểm l = 0,1,2,3  N = q , , , ( − 1)  N /4 F (l , q ) = ∑ x (l , m)WNmq/ m =0  x(l , m) = x(4m + l )  N  X ( p, q ) = X ( p + q )  X (0, q )  1  X (1, q )  1 − j  =  X (2, q ) 1 −    j  X (3, q )  1 1   WN0 F (0, q )    j   WNq F (1, q )  −1 −  WN2 q F (2, q )     3q − − j  WN F (3, q )  DSP – Giải thuật cho Biến đổi Fourier ©2011, Đinh Đức Anh Vũ 19 dce 2011 FFT số (3) WN0 WNq -j -1 j -1 WN2 q -1 j -1 WN3q -j q 2q Dạng rút gọn 3q DSP – Giải thuật cho Biến đổi Fourier ©2011, Đinh Đức Anh Vũ 20 dce 2011 FFT số (4) Độ phức tạp: khối tính tốn cần + nhân phức + 12 cộng phức N=4v + Tầng tính tốn : v = log4N + Mỗi tầng có : N/4 khối tính tốn 3vN/4 = (3N/8)log2N 12vN/4 = (3N/2)log2N : Nhân phức : Cộng phức (giảm 25% vs FFT2) (tăng 50% vs FFT2) Biểu diễn lại nhân ma trận  X (0, q ) 1  X (1, q )  0 =   X (2, q ) 1     X (3, q )  0 (3N/8)log2N Nlog2N  1   WN0 F (0, q )    q    − j  1 −   WN F (0, q )  −  0 1  WN2 q F (0, q )    3q  j  0 − 1 WN F (0, q )  : Nhân phức : Cộng phức DSP – Giải thuật cho Biến đổi Fourier (giảm 25% vs FFT2) (bằng FFT2) ©2011, Đinh Đức Anh Vũ 21 dce 2011 Hiện thực giải thuật FFT • FFT số – Tính tốn hình bướm: (N/2)log2N lần – Hệ số quay WNk: tính lần lưu bảng – Bộ nhớ: 2N muốn việc tính tốn thực chỗ • 4N muốn đơn giản hóa tác vụ số điều khiển; đồng thời cho phép chuỗi nhập xuất theo thứ tự • IDFT x ( n) = N N −1 − kn X ( k ) W ∑ N ≤ n ≤ N −1 k =0 – Khác việc tính DFT IDFT hệ số 1/N dấu hệ số pha WN • Đảo chiều sơ đồ tính DFT, đổi dấu hệ số pha, chia kết cuối cho N → IDFT • • DFT với số điểm khác 2v 4v → đệm thêm số Độ phức tạp – Tác vụ số học (nhân phức, cộng phức) – Cấu trúc thực giải thuật (qui tắc vs bất qui tắc) – Kiến trúc DSPs (xử lý song song tác vụ) DSP – Giải thuật cho Biến đổi Fourier ©2011, Đinh Đức Anh Vũ 22 dce 2011 Ứng dụng giải thuật FFT • Tính DFT chuỗi thực – x1(n) x2(n): chuỗi thực độ dài N cần tính DFT – Định nghĩa chuỗi x(n) = x1(n) + jx2(n) 0≤n≤N–1 – X(k) = X1(k) + jX2(k) (tính tuyến tính DFT) x ( n) + x * ( n) x1 (n) = x ( n) − x * ( n) x2 ( n ) = 2j DFTN x* (n) ← → X * ( N − k ) DSP – Giải thuật cho Biến đổi Fourier { [ ]} { [ ]} X (k ) = DFT [x(n)] + DFT x* (n) X (k ) = DFT [x(n)] − DFT x* (n) X (k ) = X (k ) = [X (k ) + X ( N − k )] [X (k ) − X ( N − k )] * * ©2011, Đinh Đức Anh Vũ 23 dce 2011 Ứng dụng giải thuật FFT • Tính DFT chuỗi thực 2N điểm – – – – g(n): chuỗi thực độ dài 2N cần tính DFT ≤ n ≤ N-1 Tách thành chuỗi x1(n) = g(2n) x2(n) = g(2n+1) Định nghĩa chuỗi x(n) = x1(n) + jx2(n) ≤ n ≤ N-1 X(k) = X1(k) + jX2(k)(tính tuyến tính DFT) X (k ) = X (k ) = G (k ) [X (k ) + X ( N − k )] [X (k ) − X ( N − k )] * * N −1 N −1 n =0 n =0 = ∑ g (2n)W22Nnk + ∑ g (2n + 1)W2(N2 n +1) k N −1 = ∑ x1 (n)W n =0 nk N +W k 2N N −1 nk x n W ( ) ∑ N n =0 G (k ) = X (k ) + W2kN X (k ) k = 0,1,  , N − G (k + N ) = X (k ) − W2kN X (k ) k = 0,1,  , N − DSP – Giải thuật cho Biến đổi Fourier ©2011, Đinh Đức Anh Vũ 24 dce 2011 Ứng dụng giải thuật FFT • Lọc tuyến tính chuỗi liệu dài – Overlap-add – Overlap-save • DFT + FFT Phương pháp – h(n) – Đáp ứng xung đơn vị lọc (chiều dài M) • Được đệm thêm L-1 số không cho N = L + M – = 2v • H(k): DFT N điểm h(n), theo thứ tự đảo h(n) theo thứ tự thuận (Giải thuật FFT suy giảm theo tần số) – xm(n) – khối liệu chiều dài L (đã phân cắt) • Được đệm thêm M–1 điểm (giá trị tùy theo PP lọc dùng) • Xm(k): DFT N điểm xm(n), theo thứ tự đảo (Giải thuật FFT suy giảm theo tần số) – Ym(k) = H(k)Xm(k) • H(k) Xm(k) có thứ tự đảo → Ym(k) theo thứ tự đảo • ym(n) = IDFTN{Ym(k)} theo thứ tự thuận dùng giải thuật FFT suy giảm theo thời gian – Không cần thiết đảo vị trí liệu việc tính DFT IDFT • Tính tương quan (tương tự) DSP – Giải thuật cho Biến đổi Fourier ©2011, Đinh Đức Anh Vũ 25 dce 2011 Phương pháp lọc tuyến tính • • FFT khơng hiệu tính DFT (IDFT) số điểm (< log2N) → tính trực tiếp Giải thuật Goertzel – Dựa vào tính chu kỳ WNk biểu diễn việc tính tốn DFT lọc tuyến tính X (k ) = W − kN N N −1 ∑ x(m)W m =0 N −1 km N = ∑ x(m)WN− k ( N − m ) m =0 N −1 Đăt yk (n) = ∑ x(m)WN− k ( n − m ) = x(n) * hk (n) H k ( z) = 1 − WN− k z −1 m =0 vói ⇒ hk (n) = WN− knu (n) Một pole vòng tròn đơn vị tần số ωk=2πk/N X ( k ) = y k ( n) n = N Thay tính tổng chập trực tiếp, ta dùng PTSP yk (n) = WN− k yk (n − 1) + x(n) DSP – Giải thuật cho Biến đổi Fourier yk (−1) = Việc tính DFT điểm k thực cách cho t/h vào cộng hưởng pole tần số ωk=2πk/N ©2011, Đinh Đức Anh Vũ 26 dce 2011 Giải thuật Goertzel • Kết hợp cặp cộng hưởng có pole liên hợp phức − WN− k z −1 H k ( z) = − cos(2πk / N ) z −1 + z − • Hiện thực dạng chuẩn tắc (dạng II) vk (n) = cos 2Nπk vk (n − 1) − vk (n − 2) + x(n) n = 0,1, , N yk (n) = vk (n) − WNk vk (n − 1) n=N – Với đ/k đầu vk (−1) = vk (−2) = • x(n) • + + cos( 2Nπk ) yk(n) tính lần cho n = N –1 • • + – Z–1 vk(n) lặp lại cho n = 0, 1, …, N – Mỗi vòng cần phép nhân thực vk(n) yk(n) Wnk Z–1 Nếu x(n) t/h thực, cần N+1 phép nhân thực để tính X(k) X(N-k) {do tính đối xứng} Giải thuật Goertzel thích hợp số giá trị DFT cần tính nhỏ (≤ log2N) DSP – Giải thuật cho Biến đổi Fourier ©2011, Đinh Đức Anh Vũ 27 dce 2011 Giải thuật BĐ Chirp-z (1) • • DFT N điểm ~ X(zk) với zk = ej2πkn/N , k=0,1,…,N-1 (các điểm cách vòng tròn đơn vị) N −1 x(n) z k− n k = 0,1, , L − BĐ Z x(n) điểm zk X ( z k ) = ∑ n =0 • Nếu zk = rej2πkn/N (zk N điểm cách vòng tròn bk r) N −1 X ( z k ) = ∑ [ x(n)r − n ]e − j 2πkn / N k = 0,1, , N − n =0 – Việc tính DFT thực giải thuật FFT cho chuỗi x(n)r-n • Vòng tròn đơn vị jθ z = r e Tổng quát, zk nằm cung xoắn ốc điểm 0 gốc toạ độ) Im(z) z k = r0 e jθ ) k = 0,1,  , L − Im(z) Im(z) r0 r0 Re(z) R0 = r0 = Φ0 = θ0 = ( R0 e jφ k Re(z) R0 = 1, r0 < Φ0 = θ0 = DSP – Giải thuật cho Biến đổi Fourier (đi vào Im(z) θ0 Re(z) R0 < Re(z) R0 > ©2011, Đinh Đức Anh Vũ 28 dce 2011 Giải thuật BĐ Chirp-z (2) y (k ) X ( zk ) = k = 0,1, , L − h( k ) BĐ chirp-z V = R0 e jφ0 h( n) = V n2 / g (n) = x(n)(r0 e jθ − n ) V −n2 / N −1 y ( k ) = ∑ g ( n) h( k − n) k = 0,1,  , L − n =0 R0 = ⇒ h(n) = e ω = nφ0 / jφ n / = e j ( nφ / ) n ≡ e j ω n Tần số t/h mũ phức h(n), tăng tuyến tính theo thời gian → h(n): chirp signal DSP – Giải thuật cho Biến đổi Fourier ©2011, Đinh Đức Anh Vũ 29 dce 2011 Giải thuật BĐ Chirp-z (3) • Xác định tổng chập vòng chuỗi g(n) N điểm chuỗi h(n) M điểm (M > N) – N-1 điểm đầu điểm lặp lại – M-(N-1) điểm lại chứa kết N −1 y ( k ) = ∑ g ( n) h( k − n) k = 0,1,  , L − n =0 • • • • • • • • Giả sử M = L + (N–1) M điểm chuỗi h(n) xác định –(N–1) ≤ n ≤ (L–1) n = 0,1,…,M–1 Định nghĩa chuỗi M điểm h1(n) = h(n–N+1) H1(k) = DFTM{h1(n)} G(k) = DFTM{g(n)} (sau đệm thêm vào g(n) L-1 số 0) Y1(k) = G(k)H(k) → y1(n) = IDFT{Y1(k)} n = 0,1,…,M–1 N-1 điểm y1(n) điểm lặp → loại bỏ chúng Các điểm kết giá trị y1(n) N–1 ≤ n ≤ M–1 – y(n) = y1(n+N-1) • X(zk)= y(k)/h(k) n = 0,1,…,L–1 k = 0,1,…,L–1 DSP – Giải thuật cho Biến đổi Fourier ©2011, Đinh Đức Anh Vũ 30 ... Biến đổi Fourier ©2011, Đinh Đức Anh Vũ 12 dce 2011 FFT số (6) x(0) X(0) x(4) W X(1) -1 x(2) W x (6) W -1 W X(2) -1 X(3) -1 x(1) -1 -1 -1 W x(5) W -1 W x(3) -1 -1 W W x(7) W -1 W DSP – Giải thuật... đổi Fourier ©2011, Đinh Đức Anh Vũ 19 dce 2011 FFT số (3) WN0 WNq -j -1 j -1 WN2 q -1 j -1 WN3q -j q 2q Dạng rút gọn 3q DSP – Giải thuật cho Biến đổi Fourier ©2011, Đinh Đức Anh Vũ 20 dce 2011 FFT... : N(M+L-2) ©2011, Đinh Đức Anh Vũ dce 2011 Phương pháp chia-trị (3) • Hiệu PP tính trực tiếp • Nhân phức : N2 • Cộng phức : N(N-1) PP chia-trị • Nhân phức : N(M+L+1) • Cộng phức : N(M+L-2) N=1000

Ngày đăng: 11/02/2020, 17:29

TỪ KHÓA LIÊN QUAN