Báo cáo bài tập lớn Xử lý tín hiệu tương tự và số
MỤC LỤC Phần Trang Lời mở đầu 2 Lời cảm ơn 3 I. Yêu cầu bộ lọc và lý thuyết tổng quát 4 1. Yêu cầu về bộ lọc FIR 4 2. Lý thuyết bộ lọc FIR 4 II. Mô phỏng MATLAB và viết chương trình CCS 10 1. Mô phỏng Matlab bài toán bộ lọc FIR 10 2. Yêu cầu phần mềm và phần cứng 14 3. Viết chương trình trên CCS 6.1 16 III. Kết quả 23 IV. Tài liệu tham khảo 24 Báo cáo bài tập lớn Xử lý tín hiệu tương tự và số GVHD: PGS.TS Lê Tiến Thường Nhóm 1 2 LỜI MỞ ĐẦU Xử lý tín hiệu số (Digital Signal Processing – DSP) đã trở thành môn học cơ sở cho nhiều ngành khoa học, kĩ thuật: Điện- Điện tử, Viễn thông,…Trong đó, phép xử lí cơ bản nhất của DSP là lọc, và các hệ thống được đề cập đến nhiều nhất trong xử lý tín hiệu số là các bộ lọc số (Digital Filter). Nếu xét về đáp ứng xung có thể chia các bộ lọc số thành 2 loại chính là bộ lọc có đáp ứng xung hữu hạn FIR (Finite Impulse Response) còn gọi là lọc không đệ quy, và bộ lọc có đáp ứng cung vô hạn IIR (Infinite Impulse Response) còn gọi là lọc đệ quy. Xét về đáp ứng tần số biên độ có thể chia các bộ lọc, FIR hay IIR, thành 4 loại cơ bản: thông thấp, thông cao, thông dải và chắn dải. Các bộ lọc này có thể được thiết kế bằng những phương pháp sau đây: phương pháp cửa sổ ( Window Design Techniques), phương pháp lấy mẫu tần số (Frequency Sampling Design Techniques) và phương pháp xấp xỉ tối ưu cân bằng gợn sóng (Optimal Equiripple Design Techniques). Trong báo cáo bài tập lớn này, nhóm xin phép được trình bày việc thiết kế bộ lọc thông thấp FIR bậc 3 thực hiện trên phần cứng TMS320C5515 của Texas Instrument (TI) để nắm vững lí thuyết về bộ lọc FIR cũng như làm quen với KIT TMS320C5515 và các phần mềm hỗ trợ Code Composer Studio (CCS), MATLAB… Báo cáo bài tập lớn Xử lý tín hiệu tương tự và số GVHD: PGS.TS Lê Tiến Thường Nhóm 1 3 LỜI CẢM ƠN Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ, giúp đỡ ít hay nhiều, dừ trực tiếp hay gián tiếp của người khác. Trong suốt thời gian thực hiện báo cáo này, nhóm em đã nhận được sự quan tâm, giúp đỡ của quý Thầy cô và bạn bè. Với lòng biết ơn sâu sắc nhất, nhóm xin chân thành cảm ơn PGS.TS Lê Tiến Thường đã hướng dẫn nhóm trong việc tiếp cận đến các vấn đề Xử lý số tín hiệu để hoàn thành báo cáo này. Project được thực hiện trong gần suốt học kì 2, bước đầu đã giúp nhóm tìm hiểu thêm về một số kiến thức còn hạn chế và còn nhiễu bỡ ngỡ. Do vậy, không tránh khỏi những thiếu sót là điều chắc chắn, nhóm rất mong nhận được những ý kiến đóng góp quý báu của quý Thầy cô và các bạn học cùng lớp để những kiến thức của nhóm trong lĩnh vực này được hoàn thiện hơn. Báo cáo bài tập lớn Xử lý tín hiệu tương tự và số GVHD: PGS.TS Lê Tiến Thường Nhóm 1 4 I. Yêu cầu bộ lọc và lý thuyết tổng quát 1. Yêu cầu về bộ lọc FIR Trong project này, yêu cầu thiết kế bộ lọc thông thấp FIR bậc 3, có tần số cắt . Thiết kế trên KIT TMS 320C5515. 2. Lý thuyết bộ lọc FIR Các hệ thống LTI rời rạc có thể phân loại thành hệ thống FIR ( Finite Impulse Response) và IRR ( Infinite Impulse Response), đó là nó có đáp ứng xung h(n) hữu hạn hay vô hạn. Trong bài báo cáo này, ta chỉ đề cập đến bộ lọc FIR. Đây là dạng bộ lọc có đáp ứng xung h(n) có giá trị trên khoảng thời gian hữu hạn và bằng 0 ở các giá trị khác: trong đó M được xem như là bậc của bộ lọc. Tương ứng với nó, chiều dài của vector đáp ứng xung của bộ lọc FIR là Các hệ số của đáp ứng xung được gọi theo nhiều cách khác nhau hệ số lọc ( filter coeficients, filter weights, hay filter taps). Ta đã biết y(n) là tích chập (convolution) của chuỗi đầu vào x(n) với chuỗi bộ lọc h(n), được viết dưới dạng: Hay viết rút gọn lại là: Vì vậy với bộ lọc FIR, có phương trình đơn giản như sau: Hay khai triển ra là: Như vậy, phương trình I/O nhận được từ tổng có trọng số của các mẫu đầu vào hiện tạo và M mẫu trước đó Báo cáo bài tập lớn Xử lý tín hiệu tương tự và số GVHD: PGS.TS Lê Tiến Thường Nhóm 1 5 Về mặt lý thuyết, dựa trên đặc điểm của đáp ứng tần số, xử lý tín hiệu số quan tâm đến 4 loại bộ lọc lý tưởng sau đây: a. Bộ lọc thông thấp lý tưởng Đáp ứng biên độ - tần số : Khi đó đáp ứng xung của bộ lọc thông thấp lý tưởng với trễ nhóm là: b. Bộ lọc thông cao lý tưởng Đáp ứng biên độ - tần số : Khi đó đáp ứng xung của bộ lọc thông thấp lý tưởng với trễ nhóm là: c. Bộ lọc thông dải lý tưởng Đáp ứng biên độ - tần số : Khi đó đáp ứng xung của bộ lọc thông thấp lý tưởng với trễ nhóm là: d. Bộ lọc chắn dải lý tưởng Đáp ứng biên độ - tần số : Khi đó đáp ứng xung của bộ lọc thông thấp lý tưởng với trễ nhóm là: Chúng ta có nhận xát là đáp ứng cung của các bộ lọc lý tưởng nói trên có chiều dài vô hạn, xuất phát từ chỉ số đến , và không nhân quả, dẫn đến không thể thực hiện được về mặt vật lý. Khi tổng hợp bộ lọc thực tế, ta phải chấp nhận đáp ứng xung phải xuất pát từ chỉ số 0 để đáp ứng điều kiện nhân quả. Khi đó, đáp ứng tần số của bộ lọc thực tế có phần quá độ từ dải thông đến dải chắn, hoặc ngược lại, và được gọi là dải chuyển tiếp (transition Báo cáo bài tập lớn Xử lý tín hiệu tương tự và số GVHD: PGS.TS Lê Tiến Thường Nhóm 1 6 band). đồng thời phải có sự gợn sóng (ripple) ở cả dải thông và dải chắn hoặc ít nhất tại một trong hai, dải thông hoặc dải chắn. Việc thiết kế bộ lọc là quá trình tìm ra các tham số, hay dãy đáp ứng xung của bộ lọc, thỏa mãn các yêu cầu chỉ tiêu kỹ thuật cho trước, cụ thể là một số hoặc tất cả các tham số tuyệt đối (absolute specification) sau: Tần số cắt dải thông Tần số cắt dải chắn Độ gợn sóng dải thông Độ gợn sóng dải chắn Trên thực tế, các tham số thường được cho dưới dạng tương đối(relative specification) tính theo đơn vị decibels dưới dạng sau đây: Độ gợn sóng dải thông theo dB được tính bằng công thức: Độ suy gảm dải chắn theo dB được tính bằng công thức: Bộ lọc FIR có một số ưu điểm về mặt thực hiện như sau: - Đáp ứng pha là tuyến tính - Tương đối dễ thiết kế và luôn luôn là hê thống ổn định - Thực hiện được với hiệu quả cao - Có thể thực hiện được trên cơ sở áp dụng biến đỗi Fourier rời rạc Hàm đáp ứng pha - tần số của bộ lọc FIR có dạng sau: Và hàm đáp ứng tần số của bộ lọc FIR được cho dưới dạng độ lớn và pha như sau: Dựa trên tính chất đối xứng hay phản đối xứng của dãy đáp ứng xung và chiều dài N của dãy đáp ứng xung, người ta phân loại bộ lọc FIR làm 4 loại sau đây: a. Bộ lọc FIR loại 1: h(n) đối xứng, N lẻ, Báo cáo bài tập lớn Xử lý tín hiệu tương tự và số GVHD: PGS.TS Lê Tiến Thường Nhóm 1 7 với dẫn đến: b. Bộ lọc FIR loại 2: h(n) đối xứng, N chẵn, với dẫn đến: c. Bộ lọc FIR loại 3: h(n) đối xứng, N lẻ, với dẫn đến: Báo cáo bài tập lớn Xử lý tín hiệu tương tự và số GVHD: PGS.TS Lê Tiến Thường Nhóm 1 8 d. Bộ lọc FIR loại 4: h(n) đối xứng, N chẵn, với dẫn đến: Có 3 phương pháp để tổng hợp bộ lọc FIR pha tuyến tính, đó là: Phương pháp của sổ. Phương pháp lấy mẫu tần số Phương pháp lặp Trong phần này ta xét phương pháp thiết kế dựa trên phương pháp cửa số. Tư tưởng cơ bản của phương pháp cửa sổ là tìm ra đáp ứng xung của bộ lọc lý tưởng rồisau đó cắt xén ở hai đầu ( hay nhân với một hàm của sổ) dãy đáp ứng xung đó sao cho ta thu được một bộ lọc FIR pha tuyến tính, đồng thời là nhân quả. Điểm nhấn mạnh ở phương pháp này là tìm ra đáp ứng xung thích hợp của bộ lọc lý tưởng và lựa chọn hàm của sổ thích hợp. Về mặt lý tưởng, bộ lọc thông thấp lý tưởng pha tuyến tính có độ lợi dải thông bằng 1 và đáp ứng tần số bằng 0 trên toàn dải chắn, tức là: , với Thì ta sẽ thu được dãy đáp ứng xung Có tính chất đối xứng tại Với các bộ lọc số lý tưởng khác, bao gồm thông cao, thông dải, và chắn dải, dãy của đáp ứng xung cũng có dạng tương tự như vậy và có thể suy ra từ dạng đáp ứng xung của bộ lọc thông thấp lý tưởng nói trên. Để thu được đáp ứng xung của bộ loc FIR về mặt thực tế, phương pháp cửa số dùng kỹ thuật nhân hàm đáp ứng xung của bộ lọc lý tưởng với một hàm cửa sổ w(n), với Báo cáo bài tập lớn Xử lý tín hiệu tương tự và số GVHD: PGS.TS Lê Tiến Thường Nhóm 1 9 w(n) là một hàm đối xứng với trong khoảng từ 0 đến N-1 và bằng 0 trong khoảng còn lại. Kết quả là hàm đáp ứng xung của bộ lọc thực tế h(n) là đối xứng hoặc phản đối xứng với trong khoảng [0,N-1]. Các cửa sổ thông dụng: Cửa sổ chữ nhật Cửa sổ tam giác Cửa sổ Hamming Cửa sổ Hanning Cửa sổ Blackman Cửa sổ Kaiser Báo cáo bài tập lớn Xử lý tín hiệu tương tự và số GVHD: PGS.TS Lê Tiến Thường Nhóm 1 10 II. Mô phỏng MATLAB và lập trình trên CCS 1. Mô phỏng Matlab bài toán bộ lọc FIR Trước khi thiết kế bộ lọc FIR dựa trên yêu cầu đặt ra, nhóm thực hiện thiết kế bộ lọc FIR trên Matlab bằng công cụ fdatool của nó. Sau đó tiến hành mô phỏng trên Simulink dựa vào bộ lọc FIR đã được thiết kế với một số mẫu tín hiệu. Tổng quan về công cụ thiết kế bộ lọc số FDATool Công cụ thiết kế bộ lọc số (FDATool) cung cấp cho ta những kĩ thuật iên tiến để thiết kế, phân tích, mô phỏng các bộ lọc số. Nó cho phép nâng cao khả năng xử lý hệ thống trong thời gian thực như với bộ lọc thích nghi, bộ lọc đa nhiệm và sự chuyển đổi giữa chúng. Ở hộp công cụ hỗ trợ thiết kế bộ lọc FIR gồm: + Tramg bị cho thiết kế bộ lọc FIR bao gồm các chức năng giảm thiểu về thứ tự, về gợn song, về pha, về bang kề bên, về điểm đơn bang, lỗi xấp xỉ, song hài và độ gợn song lớn nhất của thiết kế. + Thiết kế với bộ lọc FIR gọn nhẹ, tối ưu với những thiết kế pha phi tuyến và giảm thiểu được lỗi. + Thiết kế bộ lọc FIR nửa băng tần được trang bị bao gồm: phương pháp cửa sổ, phương pháp hình vuông… Tiến hành thiết kế bộ lọc FIR với fdatool + Gõ lệnh >>fdatool trên command window, hiện ra cửa sổ làm việc Filter Design & Analysis Tool. + Trong cửa sổ làm việc, thiết kế bộ lọc FIR theo yêu cầu, sử dụng phương pháp cửa sổ (Design/Window) [...].. .Báo cáo bài tập lớn GVHD: PGS.TS Lê Tiến Thường Xử lý tín hiệu tương tự và số Nhóm 1 Hình 1 Bộ lọc thông thấp FIR dùng phương pháp cửa sổ trong Design và Response Hình 2 Chọn bậc bộ lọc trong Filter và sử dụng cửa sổ hình chữ nhật bằng cách chọn Rectangular Window trong Options 11 Báo cáo bài tập lớn GVHD: PGS.TS Lê Tiến Thường Xử lý tín hiệu tương tự và số Nhóm 1 Hình 3 Trong... Y(t)'); 13 Báo cáo bài tập lớn GVHD: PGS.TS Lê Tiến Thường Xử lý tín hiệu tương tự và số Nhóm 1 Phổ biên độ của tín hiệu đầu ra và đầu vào như sau Hình 6 Phổ biên độ của tín hiệu vào và ra Cho thấy với bộ lọc thông thấp FIR tần số cắt 3kHz, tại các tần số cao 10kHz và 16kHz đều bị triệt tiêu gần như hoàn toàn Vì vậy có thể sử dụng bộ lọc FIR h = {0.2406, 0.2694, 0.2594, 0.2406} 2 Yêu cầu phần mềm và phần... bộ FIR và một số lý thuyết liên quan trong bài tập lớn này Tìm được bộ lọc có đáp ứng phù hợp với yêu cầu của project Thực hiện code trong CCS và build thành công Mô phỏng MATLAB có kết quả phù hợp với yêu cầu 23 Báo cáo bài tập lớn GVHD: PGS.TS Lê Tiến Thường IV Xử lý tín hiệu tương tự và số Nhóm 1 Tài liệu tham khảo Giáo trình “ Xử lý số tín hiệu và wavelet” – Lê Tiến Thường Giáo trình:... } 22 Báo cáo bài tập lớn GVHD: PGS.TS Lê Tiến Thường Xử lý tín hiệu tương tự và số Nhóm 1 fwrite( pdata_out, sizeof(Uint8), 4 * M , pfile_out) ; // // // Close // // free(pdata_in); free(pdata_out) ; fclose(pfile_in) ; fclose(pfile_out) ; III Kết quả Kết quả thực hiện được Nhóm đã tìm hiều lý thuyết bộ FIR và một số lý thuyết... = fopen('F:\Project\x.bin','wb'); fwrite( id, x, 'float') ; fclose(id) ; 16 Báo cáo bài tập lớn GVHD: PGS.TS Lê Tiến Thường Xử lý tín hiệu tương tự và số Nhóm 1 Sau khi chạy trong matlab, nhóm được file x.bin để làm ngõ vào của KIT TMS320C5515 Trong CCS 6.1, tạo Project mới để lập trình cho KIT với các thông số bộ FIR tần số cắt 3kHZ như trên: h = {0.2406, 0.2694, 0.2594, 0.2406} Trong main.c #include... (CCS) 15 Báo cáo bài tập lớn GVHD: PGS.TS Lê Tiến Thường Xử lý tín hiệu tương tự và số Nhóm 1 Hình 9 Phần mềm giao tiếp giữa PC với bộ KIT Code Composer StudioTM (CCS) Code Composer Studio là môi trường phát triển tích hợp được TI xây dựng nhằm hỗ trợ khách hàng trong việc tiếp cận và phát triển ứng dụng với các sản phẩm của TI IDE này có môi trường làm việc khá thân thiện, có kết hợp với Programer và Debugger... TMS320C5515 eZdsp™ USB Stick Development Tool Hình 7 KIT TMS320C5515 eZdsp™ USB Stick Development Tool 14 Báo cáo bài tập lớn GVHD: PGS.TS Lê Tiến Thường Xử lý tín hiệu tương tự và số Nhóm 1 Các thành phần chính của bộ KIT C55x CPU và các bộ nhớ liên quan Phần cứng tăng tốc FFT Bốn bộ điều khiển DMA và giao diện bộ nhớ bên ngoài Module quản lí điện Các thiết bị ngoại vi I/O bao gồm I2S, I2C, SPI,... ( number_block = 0 ; number_block < number_block++ ) sizefile /( 4*Lx ) ; { fread( pdata_in, sizeof(Uint8), 4 * Lx, pfile_in ) ; for ( i = 0 ; i < Lx ; i++ ) { 19 Báo cáo bài tập lớn GVHD: PGS.TS Lê Tiến Thường Xử lý tín hiệu tương tự và số Nhóm 1 if ( number_block % 50 == 0 ) printf(" %ld \n ", number_block ) ; // // fread( pdata_in, sizeof(Uint8), 4 * Lx, pfile_in... 0x000000FF ); *( pdata_out + 4*i + 1 ) = >> 8 >> 16 (Uint8) ( ( tempt & 0x00FF0000 ) ; ) (Uint8) ( ( tempt & 0x0000FF00 *( pdata_out + 4*i + 2 ) = ) ) ; 20 Báo cáo bài tập lớn GVHD: PGS.TS Lê Tiến Thường *( pdata_out + 4*i + 3 ) = Xử lý tín hiệu tương tự và số Nhóm 1 (Uint8) ( ( tempt & 0xFF000000 ) >> 24 ) ; } fwrite( pdata_out, sizeof(Uint8), 4 * Lx, pfile_out) ; } // ... ) = (Uint32)( data[0] | data[1] | data[2] | data[3] ) ; } else *( p_x_Uint32 + i ) = 0 ; } // // conv( M, h, Lx, x, y ) ; 21 Báo cáo bài tập lớn GVHD: PGS.TS Lê Tiến Thường Xử lý tín hiệu tương tự và số Nhóm 1 for ( k = 0 ; k < M ; k++ ) { y[ k ] += ytemp[ k ] ; ytemp[ k ] = y[ k + Lx ] ; } // // for (i = 0; i < Lx ; i++ ) . Báo cáo bài tập lớn Xử lý tín hiệu tương tự và số GVHD: PGS.TS Lê Tiến Thường Nhóm 1 14 Phổ biên độ của tín hiệu đầu ra và đầu vào như sau Hình 6. Phổ biên độ của tín hiệu vào và ra. trọng số của các mẫu đầu vào hiện tạo và M mẫu trước đó Báo cáo bài tập lớn Xử lý tín hiệu tương tự và số GVHD: PGS.TS Lê Tiến Thường Nhóm 1 5 Về mặt lý. Báo cáo bài tập lớn Xử lý tín hiệu tương tự và số GVHD: PGS.TS Lê Tiến Thường Nhóm 1 10 II. Mô phỏng MATLAB và lập trình trên CCS 1. Mô phỏng Matlab bài toán bộ lọc FIR