Viết chương trình Matlab tính DFT 8 điểm của chuỗi sau
We’ve updated our privacy policy so that we are compliant with changing global privacy regulations and to provide you with insight into the limited ways in which we use your data. You can read the details below. By accepting, you agree to the updated privacy policy. Thank you! View updated privacy policy We've encountered a problem, please try again. ĐẠI HỌC QUỐC GIA TP.HCM P. F. I. E. V BÁO CÁO Tp.Hồ Chí Minh, 6/2012 Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 MỤC LỤC I. II. GIỚI THIỆU ................................................................................................................. 2 CÔNG CỤ YÊU CẦU CHO BÀI THÍ NGHIỆM .................................................... 2 A. Phần mềm và phần cứng
........................................................................................... 2 TIẾN HÀNH THÍ NGHIỆM..................................................................................... 4 A. Phần DTFT ................................................................................................................ 5 KẾT LUẬN ............................................................................................................... 18 VI. TÀI LIỆU THAM KHẢO ......................................................................................... 18 1 Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 I. MỤC ĐÍCH BÀI THÍ NGHIỆM II. GIỚI THIỆU III. CÔNG CỤ YÊU CẦU CHO BÀI THÍ NGHIỆM Phần mềm và phần cứng Máy PC cấu hình Intel® Pentium® hay tương đương trở lên 2 Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 B. Giới thiệu bộ KIT TMS320C5515 eZdsp™ USB Stick Development Hình 1 Bộ Kit TMs320C5515 Các thành phần chính của bộ KIT 3 Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 Hình 2 Sơ đồ khối chức năng bộ kit IV. TIẾN HÀNH THÍ NGHIỆM ( ( ) ( ) ) ( ) ( ) Thực hiện lấy mẫu tín hiệu x1, x2 trên với tần số lấy mẫu fS = 1000 Hz và lấy 128 cộng vào tín hiệu gốc) Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số 4 Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit
TMS320C5515 Hình 3 Mô hình hoá tín hiệu x1 và x2 A. Phần DTFT Thực hiện biến đổi DTFT trên MATLAB clear all; Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số 5 Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 subplot(2,2,4); plot(w/pi,angle(X2)); grid; Hình 4 Biên độ và góc pha tín hiệu (có xét nhiễu) Nhận thấy khi chúng ta mô hình hóa nhiễu tín hiệu trong thực tế bằng 6 Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 Hình 5 Biên độ và góc pha tín hiệu (không nhiễu) 2. Chương trình viết bằng ngôn ngữ C cho KIT TMS320C5515 /* dtft.c - DTFT of length-L signal at a single frequency w */ /* complex arithmetic */ complex dtft(L, x, w) /* usage: X=dtft(L, x, z = cexp(cmplx(0, -w)); /* set \(z=e\sp{-j\om}\) X = cmplx(0,0); /* initialize \(X=0\) */ */ for (n=L-1;
n>=0; n--) 7 /* complex arithmetic */ Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 /* DTFT at one frequency void dtftr(L, x, N, X, wa, wb) /* usage: dtftr(L, x, N, /* frequency bin width */ for (k=0; k X[k] = dtft(L, x, wa + k*dw);\(X(\om\sb{k})\) */ } B. /* \(k\)th DTFT value Phần FFT MÔ HÌNH LÝ THUYẾT 2. MÔ HÌNH THÍ NGHIỆM Tạo tín hiệu Thực hiện Vẽ đồ thị Thực hiện Vẽ đồ thị So sánh và 8 Hình 6 Mô hình thực hiện thí nghiệm Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 3. PHẦN THỰC HÀNH Tạo tín hiệu đầu vào và thực hiện giải thuật FFT bằng MATLAB fs = 1000; Kết quả hiển thị trên MATLAB sau khi chạy chương trình trên. Hình 7 Tín hiệu sau khi lấy mẫu với tần số fs = 1000 Hz 9 Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 Hình 9 Phổ tần số tín hiệu sau phép biến đổi FFT trên MATLAB Chúng ta cũng có thể vẽ lại phổ tần số của tín hiệu dưới dạng đồ thị 10 Hình 8 Đồ thị nối điểm của phổ tần số tín hiệu Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 Đến bước này, chúng ta đã thực hiện xong nhánh trên của sơ đồ thí Tạo file ngõ vào cho bộ KIT Đoạn chương trình sau dùng để tạo file ngõ vào cho bộ KIT do các mẫu của tín hiệu khảo sát được tạo ra bằng chương trình MATLAB nên các mẫu này sẽ được lưu dưới dạng biến ma trận 1x128. Để KIT vốn giao tiếp với máy tính qua phần mềm CCS làm việc với ngôn ngữ C có thể đọc được các giá trị này, chúng ta cần chuyển các giá trị trên lưu thành file đuôi .bin samples1 = round(x1); c) 2.3 Chạy chương trình trên CCS và kết nối với KIT TMS320C5515 → Tool Settings → C5500 Compiler → Include Options → Add dir to #include Search Path (--include_path, -I)" 11 Hình 10 Giao diện thẻ C/C++ Project sau khi thêm thư viện Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 Thư mục chương trình viết bằng ngôn ngữ C gồm các file thư viện
//#include "t6_SCALE.h" #define NX 128 int main() { DATA x[2*NX], *px = x ; // Uint16 i ; printf(" Import samples1.bin \n ") ; ImportFile( 2*NX , (Uint16*)px ) ; // compute printf(" Processing \n ") ; cfft(x,NX, NOSCALE); cbrev(x,x,NX); printf(" Export FFT1.bin \n ") ; ExportFile( 2*NX, (Uint16*)px ) ; printf(" Done \n ") ; return 0 ; } Chương trình chính main.c thực hiện việc gọi hàm cfft để thực hiện FILE *fp ; Uint16 data , pdata[2] ; Uint32 i ; fp = fopen ( "D:\\Project_TMS320C5515\\workspace\\FFT\\samples1.bin", "rb" ) ; if ( fp == (FILE*)NULL ) { printf(" Error : can't open file_in \n" ) ; return 1 ; // check error } for ( i = 0 ; i < pixel; i++ ) { Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số 12 Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 Uint32 i ; fp = fopen ( "D:\\Project_TMS320C5515\\workspace\\FFT\\FFT1.bin", "wb" ) ; if ( fp == (FILE*)NULL ) { printf(" Error : can't open file_in \n" ) ; return 1 ; // check error } for (i = 0; i < pixel; i++ ) { fputc(p_buffer_data[i] & 0xFF, fp); fputc(p_buffer_data[i] >> 8, fp); // fwrite(p_buffer_data, 1, pixel, fp); } fclose(fp) ; return 0 ; } Kết
quả thực hiện khi build và debug thành công trên phần mềm 13 Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 Hình 11 Giao diện chính chương trình CCS Hình 12 Giao diện thẻ Debug Hình 13 Kết quả tính toán FFT trên KIT được ghi lại trong file FFT1.bin d) Hiển thị kết quả sau khi
chạy trên KIT trên MATLAB id = fopen('D:\Project_TMS320C5515\workspace\FFT\FFT1.bin','rb'); Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số 14 Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 title('FFT su dung KIT TMS320C5515'); Hình 14 Phổ tần số tín hiệu sau phép biến đổi FFT trên KIT TMS320C5515 Phổ tín hiệu được vẽ lại dưới dạng đồ thị nối điểm 15 Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 Hình 15 Đồ thị nối điểm của phổ tần số tín hiệu Đến bước này, chúng ta đã thực hiện xong
nhánh dưới của sơ đồ thí So sánh và nhận xét 2 kết quả 16 Nhóm 8 – VP2008 | Xử lý tín hiệu tương tự và số Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 Hình 16 So sánh phổ tần số Hình 17 So sánh đồ thị nối điểm Từ đồ thị, chúng ta có thể dễ dàng nhận thấy giải thuật FFT thực 17 Thực hiện phép biến đổi DTFT, DFT/FFT trên bộ kit TMS320C5515 f) Kiểm chứng lại thí nghiệm với tín hiệu x2 fs = 1000; Thực hiện tương tự các bước như trên, chúng ta thu được kết quả Hình 18 Phép biến đổi FFT của x2 trên MATLAB và trên KIT TMS320C5515 g) V. Nhận xét kết quả thu được KẾT LUẬN VI. TÀI LIỆU THAM KHẢO 18 |