)()()()( )()()()( )()()()( )()()()( 3,32,31,30,3 3,22,21,20,2 3,12,11,10,1 3,02,01,00,0 XXXX XXXX XXXX XXXX ⇔ )()()()( )()()()( )()()()( )()()()( 15141312 111098 7654 3210 XXXX XXXX XXXX XXXX Trên đây chỉ là những ví dụ mang tính chất minh họa cho việc thực hiện thuật toán FFT phân chia theo thời gian. Để nghiên cứu sâu hơn về các thuật toán FFT, có thể tìm hiểu ở các tài liệu tham khảo 3,6,12 (xem ở cuối sách). 4.6 Một số ứng dụng của DFT 4.6.1 Xấp xỉ hàm tần số của dãy vô hạn hoặc có độ dài rất lớn DFT thường được sử dụng để nghiên cứu phổ tín hiệu, cũng như tổng hợp bộ lọc số. Bằng công thức nội suy [4.2-25] cho phép xác định gần đúng hàm tần số X N (e j ω ) = FT[x(n) N ] qua dãy phức X(k) N = DFT[x(n) N ]. Tuy nhiên, không thể dùng DFT để xác định hàm tần số của dãy x(n) vô hạn. Nếu dãy x(n) N hữu hạn, nhưng có N rất lớn thì việc tính DFT để tìm X(k) N và X N (e j ω ) cũng rất khó khăn do khối lượng và thời gian tính quá lớn. Từ đó có yêu cầu xấp xỉ hàm tần số X(e j ω ) của dãy x(n) vô hạn hoặc có độ dài N rất lớn bằng hàm tần số X N (e j ω ) của dãy hữu hạn x(n) N với N không quá lớn. Để thực hiện điều đó, cần "chặt" lấy một đoạn thích hợp của dãy x(n), biến nó thành dãy hữu hạn x(n) N , sau đó tính X(k) N = DFT[x(n) N ], từ đó xấp xỉ hàm tần số X N (e j ω ) bằng công thức nội suy [4.2-25]. 4.6.1a Các yếu tố ảnh hưởng đến sai số xấp xỉ hàm tần số Việc "chặt" dãy vô hạn x(n) thành dãy hữu hạn x(n - n 0 ) N , tương đương nhân nó với hàm cửa sổ w(n - n 0 ) N có dạng : −+∉ −+∈≠ =− )]1(,[0 )]1(,[0 )( 00 00 0 N N nnnKhi nnnKhi nnw N [4.6-1] Tức là : NN nnwnxnnx )().()( 00 −=− Khi đó phổ rời rạc của dãy hữu hạn x(n- n 0 ) N có thể tìm được bằng DFT : ∑ −+ = − −=−= 1 00 0 0 1 .)().(])([)( N NNN n nn njk ennwnxnnxDFT kX ω Sai số xấp xỉ hàm tần số X(e j ω ) của dãy x(n) vô hạn khi dùng hàm cửa sổ w(n - n 0 ) N và tính qua DFT sẽ phụ thuộc vào 3 yếu tố sau : 1. Dạng hàm cửa sổ w(n - n 0 ) N . 2. Vị trí đặt cửa sổ, tức là giá trị của n 0 . 3. Độ dài của cửa sổ, tức là giá trị của N. Để giảm sai số xấp xỉ, cần chọn dạng hàm cửa sổ w(n), vị trí đặt cửa sổ n 0 và độ dài của cửa sổ N thích hợp. 4.6.1b Các phương pháp giảm sai số xấp xỉ hàm tần số 1. Chọn vị trí đặt cửa sổ n 0 Nguyên tắc chung là chọn cửa sổ trùm lên vùng quan trọng của dãy x(n), bỏ qua các vùng ít quan trọng. Vì thế, để chọn vị trí đặt cửa sổ n 0 , cần biết dạng cụ thể của dãy x(n). Thông thường người ta chọn cửa sổ ở vùng x(n) có giá trị lớn, và bỏ qua các vùng x(n) có giá trị nhỏ. Ví dụ với dãy )()( 2 nunx n − = thì các mẫu có giá trị lớn nằm ở gần gốc tọa độ, vì thế vị trí cửa sổ cần được chọn với n 0 = 0. 2. Chọn độ dài của cửa sổ N Sai số xấp xỉ sẽ phụ thuộc rất lớn vào việc chọn độ dài hàm cửa sổ N, hay chính là độ dài N của dãy x(n) N . Tất nhiên, N càng lớn thì sai số xấp xỉ càng nhỏ, nhưng thời gian tính DFT sẽ càng lớn. Tuy nhiên, có những trường hợp do dạng cụ thể của dãy x(n) mà việc tăng lớn N sẽ không ảnh hưởng nhiều đến độ chính xác của hàm tần số được xấp xỉ. Vì thế, giá trị của N để xấp xỉ phải được chọn tối ưu theo các yêu cầu sau : - Sai số cho phép của hàm tần số được xấp xỉ X N (e j ω ) so với X(e j ω ). - Dạng cụ thể của dãy x(n) - Hạn chế về thời gian tính DFT. 3. Chọn hàm cửa sổ w(n) Dạng hàm cửa sổ ảnh hưởng rất lớn đến độ chính xác của việc xấp xỉ hàm tần số. Việc chọn hàm cửa sổ nào để xấp xỉ hóa hàm tần số, không chỉ phụ thuộc vào độ chính xác yêu cầu, mà còn phụ thuộc vào hạn chế về thời gian tính toán, vì 183 hàm cửa sổ cho độ chính xác càng cao thì việc tính toán sẽ càng phức tạp, và thời gian tính sẽ càng lớn. Do đó việc chọn hàm cửa sổ phụ thuộc vào sự tối ưu giữa độ chính xác yêu cầu và thời gian tính. 4.6.2 Một số hàm cửa sổ thường dùng 4.6.2a Cửa sổ chữ nhật w R (n) N = rect N (n) −+∉ −+∈ =−=− )](,[ )](,[ )()( 10 11 00 00 00 N N nnnKhi nnnKhi nnrectnnw NNR [4.6-1] Theo [3.1-9] , đặc tính tần số của cửa sổ chữ nhật w R (n) N có dạng : ( ) ( ) 2 ).1( 2 2 1 1 sin sin )]([)( ω ω ω ω ω ω − − − − = − − == N N NR j j j j e e e nrectFTe N W [4.6-2] Các tham số của đặc tính tần số các hàm cửa sổ là bề rộng đỉnh trung tâm ∆Ω và tỷ số giữa biên độ đỉnh trung tâm và đỉnh thứ cấp đầu tiên. Đối với cửa sổ chữ nhật có : - Bề rộng đỉnh trung tâm: N R π 4 =∆Ω [4.6-3] - Tỷ số giữa biên độ đỉnh trung tâm và đỉnh thứ cấp đầu tiên : == 2 3 3 .sin sin. )( )( 3 0 N N N N W W N R R R j j e e π π π η [4.6-4] Với N = 6 , η ≈ 4,285 ; Với N = 50 , η ≈ 4,705 ; Với N = 9 , η ≈ 4,5 ; Với N = 100 , η ≈ 4,711 Khi N → ∞ thì 712,4 2 3 == π η Như vậy, khi N tăng lớn, η thay đổi không nhiều và giới hạn của η khi N → ∞ là η max = 4,712. Trên thực tế người ta thường tính tham số này theo dexiben (dB) và ký hiệu là λ : dB R 13 712,4 1 20 1 20 1010 loglog −=== η λ [4.6-5] Khi N lớn cửa sổ chữ nhật có các tham số : - ∆ω R = 4π/N - λ R = -13 dB Đồ thị cửa sổ chữ nhật w R (n) 10 và đặc tính biên độ tần số W R (e j ω )tương ứng trên hình 4.22. w R (n) 10 Hình 4.22 : Đồ thị cửa sổ w R (n) 10 và hàm W R (e j ω ) tương ứng . Khi xấp xỉ hàm tần số bằng cửa sổ chữ nhật, độ chính xác ở búp sóng chính cao, nhưng độ gợn sóng của ở cả búp sóng chính và các búp sóng phụ đều lớn. 4.6.2b Cửa sổ tam giác w T (n) N <− − =− − kh¸c mäi Víi Khi n nn nn nnw N N NT 0 2 ||2 1 || )( 0 0 0 [4.6-6] 184 9 n 0 1 2- 1 3 4 5 6 7 8 1 Cửa sổ tam giác w T (n) N là dãy đối xứng. Có thể chứng minh được, cửa sổ tam giác w T (n) N là tích chập của hai cửa sổ chữ nhật : 2222 )(*)()(*)()( 1 2 1 2 NNNN nwnwnrectnrectnw RRNT NN −=−= Từ đó tìm được đặc tính tần số của cửa sổ tam giác : ( ) ( ) ωωωωω ω ω jNjjjj eeeee N N WW N W RRT −− == 4 4 . 2 . 2 2 2 sin sin ).().()( [4.6-7] Đồ thị của cửa sổ tam giác w T (n - 5) 10 với n 0 = 5 , N = 10 , và đồ thị đặc tính biên độ tần số W T (e j ω ) tương ứng trên hình 4.23 . w T (n - 5) 10 Hình 4.23 : Đồ thị cửa sổ w T (n - 5) 10 và hàm W T (e j ω ). Khi N lớn, cửa sổ tam giác có các tham số : - ∆ω T = 8π/N - λ T = -26 dB So sánh hàm biên độ tần số của cửa sổ tam giác và cửa sổ chữ nhật : - Vì ∆ω T = 2 ∆ω R nên X T (e j ω ) có đỉnh trung tâm rộng hơn, với hai sườn ít dốc hơn X R (e j ω ) . Hàm tần số được xấp xỉ bằng cửa sổ tam giác có sai số ở búp chính lớn hơn dùng cửa sổ chữ nhật . - Vì λ T = 0,5 λ R nên X T (e j ω )có độ gợn sóng ở búp chính và các búp phụ thấp hơn X R (e j ω ). Hàm tần số được xấp xỉ bằng cửa sổ tam giác có độ gợn sóng nhỏ hơn dùng cửa sổ chữ nhật. 4.6.2c Cửa sổ cosin w C (n) N ≤− − =− kh¸c mäi Víi Khi N0 2 || )( cos )( 0 0 0 N N nn nn nnw NC π [4.6-8] Cửa sổ cosin w C (n) N là dãy đối xứng. Khi biểu diễn dãy w C (n) N dưới dạng : 2 . cos)( nn NN ee n nw N NC ππ π − − = = Theo đó tìm được đặc tính tần số của cửa sổ cosin : 185 0 , 8 0 , 6 0 , 4 n 0 , 2 0 , 8 0 , 6 0 , 4 0 , 2 0 1 2 43 865 7 9 1 0 1 1- 1 1 − − + + + − − = 2 1 . sin2 sin sin2 sin )( 2 2 2 2 2 2 2 2 N C j j ee N N N N W π π π π ω ω ω ω ω [4.6-9] W C (e j ω ) là xếp chồng của hai cửa sổ chữ nhật W R (e j ω ) ngược pha nhau. Đồ thị của cửa sổ cosin w C (n - 5) 10 với n 0 = 5 , N = 10 , và hàm biên độ tần số W C (e j ω ) tương ứng trên hình 4.24. w C (N - 5) 10 Hình 4.24 : Đồ thị cửa sổ w C (n - 5) 10 và hàm W C (e j ω ) tương ứng. Khi N lớn, cửa sổ cosin có các tham số : - ∆ω C = 3π/N - λ C = -24 dB So sánh cửa sổ cosin với cửa sổ tam giác và cửa sổ chữ nhật : - ∆ω C < ∆ω R < ∆ω T , xấp xỉ hàm tần số dùng cửa sổ cosin có sai số ở búp chính lớn hơn dùng cửa sổ chữ nhật, nhưng nhỏ hơn dùng cửa sổ tam giác. - Vì λ T < λ C < λ R nên độ gợn sóng của hàm tần số xấp xỉ bằng cửa sổ cosin thấp hơn dùng cửa sổ chữ nhật, lớn hơn dùng cửa sổ tam giác. 6.6.2d Các cửa sổ Hanning w H n (n) N và Hamming w Hm (n) N - Hàm cửa sổ Hamming tổng quát có dạng : −≤≤ −+ = kh¸cnmäiVíi Khi 0 10 2 1 )( cos)( )( N N n n nw NH π αα [4.6-10] - Khi α = 1 chính là cửa sổ dạng chữ nhật w R (n) N . Đặc tính biên độ tần số của cửa sổ Hamming tổng quát : + + − + − − − + = N N N NN W j e H 22 22 22 22 2 2 sin4 sin 2 )1( sin4 sin 2 )1( sin sin )( π π π π ω ω α ω ω α ω ω α ω Đặc tính pha tần số của cửa sổ Hamming tổng quát : 186 0 , 8 1 6 1 0 0 , 9 5 5 9 0 , 5 9 3 0 , 3 1 7 n 0 , 8 1 0 , 5 9 4 0 , 3 1 8 1 2 0 , 9 5 0 1 − − = 2 1 )( N H j e ω ωϕ 1. Cửa sổ Hanning w H n (n) N Theo [4.6-10] khi α = 0,5 có cửa sổ Hanning : −≤≤ + = kh¸cnmäiVíi Khi 0 10 2 5,05,0 )( cos )( N N n n nW NH n π [4.6-11] Đặc tính tần số của cửa sổ Hanning : − − + + + − − + = 2 1 . sin4 sin sin4 sin sin2 sin )( 22 22 22 22 2 2 N H j j n ee N N N NN W ω ω π π π π ω ω ω ω ω ω [4.6-12] Đồ thị cửa sổ Hanning w H n (n) 10 và hàm biên độ tần số X Hn (e j ω ) tương ứng trên hình 4.25. w H n (n) 10 Hình 4.25 : Đồ thị cửa sổ w H n (n) 10 và hàm X H n (e j ω ). Khi N lớn, cửa sổ Hanning có các tham số : - ∆ω H n = 2,3π/N - λ H n = -32 dB So sánh cửa sổ Hanning với cửa sổ tam giác và cửa sổ chữ nhật : - Vì ∆ω R < ∆ω H n < ∆ω T nên búp chính của cửa sổ Hanning lớn hơn cửa sổ chữ nhật và nhỏ hơn cửa sổ tam giác. - Vì λ H n > λ C > λ R nên độ gợn sóng ở cả búp chính và các búp phụ của cửa sổ Hanning thấp hơn các cửa sổ chữ nhật, tam giác, và cosin. 2. Cửa sổ Hamming w H m (n) N Theo [4-88] khi α = 0,54 có hàm cửa sổ Hamming : 187 0 , 9 0 4 0 , 6 5 n 1 0 , 1 0 0 , 3 5 0 , 9 0 1 5 1 06 0 , 1 0 0 , 3 5 0 , 6 5 730 2 98 −≤≤ + = kh¸cnmäiVíi Khi 0 10 2 46,054,0 )( cos )( N N n n nW N Hm π [4.6-13] Đặc tính tần số của cửa sổ Hamming : [4.6-14] − − + + + − − + = 2 1 . sin sin sin sin sin sin. )( 22 22 .23,0 22 22 .23,0 2 2 54,0 N H j j n ee N N N NN W ω ω π π π π ω ω ω ω ω ω Đồ thị của cửa sổ Hamming w H m (n) 10 và hàm biên độ tần số X H m (e j ω )tương ứng trên hình 4.26. w H m (n) 10 Hình 4.26 : Đồ thị cửa sổ w H m (n) 10 và hàm X H m (e j ω ). Khi N lớn, cửa sổ Hamming có các tham số : - ∆ω H n = 2,3π/N - λ H n = -43 dB So sánh cửa sổ Hamming với cửa sổ tam giác và cửa sổ chữ nhật : - Vì ∆ω R < ∆ω H m < ∆ω T nên búp chính của cửa sổ Hamming lớn hơn cửa sổ chữ nhật và nhỏ hơn cửa sổ tam giác. - Vì λ H m > λ H n > λ R nên độ gợn sóng ở cả búp chính và các búp phụ của hàm tần số được xấp xỉ bằng cửa sổ Hamming là thấp nhất trong dạng các cửa sổ trên. Như vậy, cửa sổ chữ nhật cho hàm tần số X N (e j ω ) gần giống X(e j ω ) ở búp sóng chính, nhưng gây sai số lớn ở các vùng biên vì có sóng phụ lớn. Cửa sổ tam giác cho hàm tần số X N (e j ω ) có sai số ở búp sóng chính lớn hơn và sai số ở các búp sóng phụ nhỏ hơn so với dùng cửa sổ chữ nhật. Các cửa sổ Cosin, và Hamming, Hanning đạt được độ chính xác trung hòa của hai cửa sổ chữ nhật và tam giác ở cả vùng búp sóng chính và các búp sóng phụ. Độ gợn sóng của cửa sổ Hamming là nhỏ nhất. 4.6.3 ứng dụng DFT để tìm phản ứng y(n) của hệ xửlýsố FIR 4.6.3a Tìm phản ứng y(n) của hệ xửlýsố bằng tích chập vòng của DFT Xét hệ xửlýsố TTBBNQ có đặc tính xung h(n) M hữu hạn, tác động là tínhiệusố x(n) L hữu hạn, với M gần bằng L và chúng đều không quá lớn. Khi đó phản ứng của hệ là dãy y(n) hữu hạn và được tính theo tích chập tuyến tính : ML nhnxny )(*)()( = [4.6-15] Theo định lý về quan hệ của tích chập vòng và tích chập tuyến tính, tích chập tuyến tính [4-98] đúng bằng tích chập vòng : MLN nhnxny )(*)()( = với )( 1 −+= MLN [4.6-16] Như vậy, để tìm phản ứng y(n) của hệ xửlýsố TTBBNQ, có thể tính qua DFT theo tích chập vòng [4.6-16] , các bước thực hiện như sau : 1. Tính DFT N điểm của đặc tính xung h(n) M và tác động x(n) L : 188 4 n 1 8 1 0 0 , 4 0 7 0 , 1 7 5 0 , 9 1 3 0 , 4 0 210 9 0 , 6 8 0 , 1 7 0 , 9 1 0 , 6 8 6 ∑ − = − = 1 0 1 .)()( N MN n njk enh kH ω với N = (M + L - 1) và N π ω 2 1 = ∑ − = − = 1 0 1 .)()( N LN n njk enx kX ω 2. Tính DFT của phản ứng : NNN kHkXkY )(.)()( = 3. Tính IDFT để tìm được phản ứng : ])(.)([])([)( NNNN kHkXkY IDFTIDFTny == 4.6.3b Tìm phản ứng y(n) bằng phương pháp cộng xếp chồng DFT Trên thực tế, các hệ xửlýsố thường có đặc tính xung h(n) M với độ dài M không lớn, trong khi tác động x(n) L có độ dài L rất lớn. Khi đó, cần tìm phản ứng y(n) của hệ xửlýsố với L >> M . Trong trường hợp đó, việc tìm phản ứng y(n) bằng cách tính tích chập vòng qua DFT như phương pháp đã nêu trên sẽ tốn nhiều thời gian và bộ nhớ của máy tính. Hơn nữa, khi đó mẫu đầu tiên của y(n) chỉ nhận được sau khi kết thúc tất cả tính toán trên toàn bộ độ dài L rất lớn của tác động x(n) L . Để nhận được kết quả tính toán phản ứng y(n) nhanh hơn, người ta thường sử dụng phương pháp cộng xếp chồng DFT do Stokham đưa ra, trong đó chia việc tính toán phản ứng y(n) thành các phân đoạn nhỏ y i (n), theo các bước như sau : 1. Chia dãy tác động x(n) L thành nhiều phân đoạn x i (n) S . 2. Dùng DFT tính các tích chập MSR nhnxny ii )(*)()( = của phân đoạn i 3. Tổng hợp các phản ứng y i (n) R để nhận được phản ứng y(n). Dưới đây sẽ trình bầy cụ thể phương pháp này. Giả sử cần tìm phản ứng y(n) của hệ xửlýsố TTBBNQ có đặc tính xung hữu hạn h(n) M và tác động x(n) L , với M << L và L rất lớn. Khi đó, coi dãy vào x(n) L là tổng của các dãy con thành phần có độ dài bằng nhau x i (n) S , với S có giá trị gần bằng M và L/S là số nguyên : ∑ = = SL SL i i nxnx 1 )()( [4.6-17] Trong đó : −+∉ −+∈ = ]110 11 )[(,[ ])[(,[)( )( SS SS iinKhi iinKhinx nx L S i Vì thế có thể tìm được phản ứng y i (n) R của mỗi tác động x i (n) S : ∑ − = −== 1 0 )(.)()(*)()( R SMSMR m iii mnxmhnxnhny [4.6-18] Với y i (n) R có độ dài : R = M + S - 1 Dãy y i (n) R là phản ứng phân đoạn i của phản ứng y(n). Biểu thức [4.6-18] là tích chập vòng, và được tính qua DFT như phương pháp và các bước đã được trình bầy ở mục trên. Thay [4.6-17] vào [4.6-18] nhận được : ∑∑∑ ∑ = − = − = = −=−= SL R SM R SL SMR i m i m i ii mnxmhmnxmhny 1 1 0 1 0 1 )(.)()(.)()( Hay : ∑ = = SL R i ii nyny 1 )()( [4.6-19] Từ đó rút ra các bước cụ thể của phương pháp cộng xếp chồng DFT là : 1. Chia dãy tác động x(n) L thành các dãy con x i (n) S có độ dài S . 2. Tính các DFT R điểm của đặc tính xung h(n) M và tác động x i (n) S : ∑ − = − = 1 0 1 .)()( R MR n njk enh kH ω với R = (M + S - 1) và R π ω 2 1 = ∑ − = − = 1 0 1 .)()( R SR n njk ii enx kX ω 3. Tính DFT của phản ứng phân đoạn i là Y i (k) R : RRR kHkXkY i )(.)()( = 4. Tính IDFT để tìm được phản ứng phân đoạn i là y i (n) R : ])(.)([])([)( RRRR kHkXkY iii IDFTIDFTny == 5. Sau khi đã tính được tất cả các phản ứng phân đoạn y i (n) R , tìm phản ứng y(n) bằng tổng [4.6-19]. 189 Khi sử dụng phương pháp cộng xếp chồng DFT, việc chọn độ dài phân đoạn S sẽ ảnh hưởng lớn đến khối lượng và tốc độ tính toán vì : - Nếu S lớn thì số đoạn phải tính sẽ nhỏ, nhưng thời gian tính cho một đoạn sẽ lớn. - Nếu S nhỏ thì số đoạn phải tính sẽ lớn, nhưng thời gian tính cho một đoạn sẽ nhỏ đi. Người ta thường chọn giá trị tối ưu của S căn cứ vào độ dài M của đặc tính xung h(n) M và độ dài R tính DFT theo bảng Helms(bảng 4.20). Khi sử dụng phương pháp cộng xếp chồng DFT, nên sử dụng các thuật toán FFT để giảm thời gian tính toán. Để tìm phản ứng y(n) của hệ xửlýsố có h(n) M và x(n) L với M << L và L rất lớn, ngoài phương pháp cộng xếp chồng DFT như đã trình bầy ở trên, còn có một số phương pháp khác nữa, với hiệu quả cũng tương tự. Bảng 4.20 : Bảng Helms Độ dài M của h(n) M Độ dài của DFT R = (M + S - 1) Độ dài M của h(n) M Độ dài của DFT R = (M + S - 1) 32 172 ÷ 310 2048 11 ÷ 17 64 311 ÷ 575 4096 18÷ 29 128 576 ÷ 1050 8192 30 ÷ 52 256 1051 ÷ 2000 16.384 53 ÷ 94 512 2001 ÷ 3800 32.768 95 ÷ 171 1024 3801 ÷ 7400 65.536 190 . các yêu cầu sau : - Sai số cho phép của hàm tần số được xấp xỉ X N (e j ω ) so với X(e j ω ). - Dạng cụ thể của dãy x(n) - Hạn chế về thời gian tính DFT ). Khi N lớn, cửa sổ tam giác có các tham số : - ∆ω T = 8π/N - λ T = -26 dB So sánh hàm biên độ tần số của cửa sổ tam giác và cửa sổ chữ nhật : - Vì ∆ω