Bai 1

November 9, 2018 | Author: Thái Xuân Hồng Nhật | Category: N/A
Share Embed Donate


Short Description

Download Bai 1...

Description

  Họ và tên SV : Nguyễn Nguyễn Phương Phương Duy MSSV : 40600341   Nhóm : TNDD

Lớp : DD06KSTN  DD06KSTN  Ngày TN: 23/09/2009

----------------------------------------------

BÀI CHUẨN BỊ THÍ NGHIỆM XỬ LÝ SỐ TÍN HIỆU

 Bài 1: THỰC HIỆN CÁC BỘ LỌC FIR TRÊN KIT C6713 DSK  Câu 1: Cho một bộ lọc FIR có đáp ứng xung h = [ 1; -2; -3; -4 ]. Hãy xác định : a)  Bậc bộ lọc b) Phương Phương trình trình sai sai phân phân I/O I/O của của bộ lọc. c) Sơ đồ khối thực hiện dạng trực tiếp và giải thuật xử lý mẫu . Giải: a. Ta có h = [ h o; h1; h2; h3 ] = [ 1; -2; -3; -4 ] => bộ lọc bậc 3.  b. Phương trình sai phân I/O : y(n) = x(n) – 2x(n-1) – 3x(n-2) – 4x(n-3) c.Sơ đồ khối thực hiện dạng trực tiếp và giải thuật xử lý mẫu : Sơ đồ khối

Giải thuật xử lý mẫu Đặt: v0(n) = x(n) v1(n) = x(n-1) v2(n) = x(n-2) v3(n) = x(n-3)

1

Với mỗi mẫu vào x, ta có giải thuật xử lý mẫu như sau : v0 = x y = v1 - 2v2 - 3v3 – 4v4 v3 = v2 v2 = v1 v 1 = v0

Câu 2: Trình bày tóm tắt các bước thiết kế một bộ lọc FIR bằng SPTool của MATLAB. Có mấy phương pháp thiết kế bộ lọc FIR trong SPTool? Hãy liệt kê . Các bước thiết kế bộ lọc FIR bằng SPTool của MATLAB : Khởi động SPTool, từ dấu nhắc lệnh của MATLAB gõ lệnh : >> sptool Khi đó giao diện của SPTool sẽ xuất hiện với 3 cột : + Signals : hiển thị các tín hiệu. + Filters : hiển thị các bộ lọc. + Spectra : hiển thị các phổ trong Workspace. Ta thiết kế bộ lọc mới bằng cách chọn New ngay dưới cột Filters. Cửa sổ Filter  Designer xuất hiện. Trong giao diện của Filter Designer : + Trong textbox Filter : ta có tên của bộ lọc .Ví dụ : filt1 + Nhập các thông số cần thiết kế vào. + Nhấn Apply. Khi đó đáp ứng tần số của bộ lọc sẽ được hiển thị. Trở về cửa sổ SPTool ta thấy trong cột Filters sẽ xuất hiện thêm 1 dòng filt1.Ta có thể đổi tên bộ lọc bằng cách chọn menu Edit. - Các phương pháp thiết kế bộ lọc FIR trong SPTool : Có 3 phương pháp là : + Equiripple + Least squares + Window

Câu 3: Thế nào là một bộ lọc multiband? Thử phác họa đáp ứng tần số của một bộ lọc multiband? Có thể dùng MATLAB để thiết kế bộ lọc multiband hay không?  Bộ lọc multiband : bộ lọc multiband được sử dụng để chia tách các thành phần tần số của tín hiệu, giữ lại những dải tần số mong muốn và lọc bỏ các dải tần số khác.  Nó chia phổ tần số của tín hiệu thành 1 loạt những dải thông và dài chắn cách nhau  bởi dải chuyển tiếp. Một bộ lọc multiband được đặn trưng bởi sự giới hạn và tính chất của mỗi dải, và bởi một vài tính chất tổng quát. -

2

-

Phác họa đáp ứng tần số của bộ lọc multiband :

1.2

1

0.8

0.6

0.4

0.2

0 0

500

1000

1500

2000

2500

3000

3500

4000

4500

5000

Ta có thể dùng Matlab để thiết kế một bộ lọc FIR multiband bằng cách sử dụng một số lệnh trong Matlab. Ví dụ như dùng hàm remez.

Câu 4: Tóm tắt các bước sẽ làm trong phần thí nghiệm : Thực hiện ví dụ theo tài liệu thí nghiệm bao gồm 3 phần chính: + Thiết kế bộ lọc FIR, từ đó thu được đáp ứng xung h(n) của bộ lọc. + Thực hiện bộ lọc lên trên kit C7613 DSK : sử dụng đáp ứng xung từ phần thiết kế để viết chương trình thực hiện mạch lọc lên kit.Chương trình sẽ đọc từng mẫu dữ liệu vào và tiến hành giải thuật xử lý mẫu để tính ngõ ra. + Kiểm tra lại bộ lọc đã thực hiện. Thiết kế bộ lọc : Dùng công cụ SPTool trong matlab thiết kế bộ lọc trên theo phương pháp Least squares FIR. Thực hiện bộ lọc: Bộ lọc được thực hiện trên kit bằng chương trình theo ngôn ngữ C //Fir.c FIR filter. Include coefficient file with length N #include "coefficients.h" //coefficient file #include "dsk6713_aic23.h" //codec-dsk support file Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; //set sampling rate int yn = 0; //initialize filter's output short dly[N]; //delay samples interrupt void c_int11()

//ISR 3

{ short i; dly[0]=input_sample(); //input newest sample yn = 0; //initialize filter's output for (i = 0; i< N; i++) yn += (h[i] * dly[i]); //y(n) += h(i)* x(n-i) for (i = N-1; i > 0; i--) //starting @ end of buffer dly[i] = dly[i-1]; //update delays with data move output_sample(yn >> 15); //scale output filter sample return; } void main() { comm_intr(); while(1); }

//init DSK, codec, McBSP //infinite loop

Tóm lại, các bước để thực hiện bộ lọc lên kit như sau: 1. Lấy các hệ số của hàm truyền của bộ lọc, nhân với hệ số tỉ lệ 2 15 >> cof = round(lp2500.tf.num*2^15) 2. Nếu cửa sổ workspace của MATLAB chưa hiển thị, hãy mở nó lên. Trong workspace, nhấn đúp chuột vào tên biến cof để mở cửa sổ Array Editor. 3. Mở CCS (nhớ mở nguồn của DSK trước khi mở CCS). 4. Mở tập tin project (đã được tạo sẵn) FIR.pjt trong C:\CCStudio_v3.1\myprojects\FIR. 5. Trong cửa sổ Project View, tab File View, mở rộng phần Include, mở tập tin coeficients.h. 6. Đặt các hệ số của bộ lọc vừa thiết kế vào trong tập tin này. (Có thể copy và  paste từ cửa sổ Array Editor trên). Điểu chỉnh giá trị N cho đúng với chiều dài đáp ứng xung. Lưu ý rằng các giá trị của đáp ứng xung cách nhau bằng một dấu phẩy (,). Lưu tập tin sau khi sửa đổi. 7. Xác lập các tùy chọn phù hợp (xem phần hướng dẫn sử dụng trong tài liệu này) rồi tiến hành biên dịch chương trình. Sau khi dịch thành công, hãy nạp chương trình lên trên kit và chạy chương trình.  Kiểm tra bộ lọc : Sử dụng công cụ vẽ trong miền tần số của CSS để xem đáp ứng tần số của bộ lọc vừa thực hiện.Chọn View - Grapth – Time/Frequency.Chọn Display Type là FFT Magnitude và Start Address là địa chỉ bắt đầu của vector đáp ứng xung. Đưa tín hiệu hình sine từ máy phát sóng vào, thay đổi tần số và quan sát tín hiệu ngõ ra. Áp dụng ví dụ trên để thực hiện các bài thí nghiệm phần sau.

4

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF