1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài 3 TN xử lý số tín hiệu (IIR)

31 33 1

Đ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

Tiêu đề Báo cáo thí nghiệm bộ môn: Xử lý số tín hiệu
Tác giả Nhóm: L10
Người hướng dẫn Huỳnh Văn Phận
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Xử lý số tín hiệu
Thể loại báo cáo
Năm xuất bản 2020 – 2021
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 31
Dung lượng 1,31 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Báo cáo TN Xử lý số tín hiệu online - đại học Bách Khoa Thành phố Hồ Chí Minh (HCMUT) Bài 3: IIR -Hiểu rõ các bước từ thiết kế đến hiện thực bộ lọc FIR/IIR lên trên một kit DSP. -Quan sát đáp ứng xung và đáp ứng tần số của bộ lọc. -Kiểm tra đặc tính (thông thấp, thông cao, thông dải, chắn dải) của bộ lọc. -Khảo sát ngõ ra của bộ lọc khi ngõ vào là tín hiệu xung vuông. -Hệ thống lại các lý thuyết đã học.

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA ĐIỆN - ĐIỆN TỬ

BÁO CÁO THÍ NGHIỆM

BỘ MÔN: XỬ LÝ SỐ TÍN HIỆU

Nhóm: L10 GIẢNG VIÊN HƯỚNG DẪN: HUỲNH VĂN PHẬN

Năm học: 2020 – 2021

Trang 2

2.2 Các bộ lọc IIR

2.2.1 Bộ lọc IIR chắn dải

Thiết kế, thực hiện và kiểm tra một bộ lọc IIR chắn dải bậc 10, tần số trung tâm 1750Hz, sử dụngphương pháp Elliptic với các thông số như sau:

Tần số cắt: 1700 Hz và 1800 Hz

Độ gợn dải thông và dải chắn tương ứng là 1 dB và 60 dB

Tần số lấy mẫu: 8000 Hz

Thiết kế bộ lọc dùng SPTool trên MATLAB:

1. Khởi động SPTool Dưới cột Filters, nhấn nút New để mở cửa sổ Filter Designer

2. Trong giao diện của Filter Designer:

a. Trong text box Filter: Tên bộ lọc được tự đặt (ở đây là filt2) Tên này có thể thay đổi

sau này

b. Nhập các thông số thiết kế vào:

• Response Type = Bandstop

• Design Method = IIR Elliptic

Trang 3

Bộ lọc chắn dải như mong muốn

3. Trở về cửa sổ SPTool, trong cột Filters sẽ xuất hiện thêm một dòng filt2 [design] Đây chính là bộ lọc vừa thiết kế Thay đổi tên bộ lọc trên thành bs1750 bằng cách chọn Edit 

Name…filt2 [design] Trong cửa sổ mới xuất hiện, nhập tên mới

4. Từ cửa sổ SPTool, chọn File  Export… Trong Export list xuất hiện, chọn

Filter: bs1750 [design] rồi nhấn nút Export to workspace

5. Đóng cửa sổ SPTool lại Một thông báo xuất hiện hỏi có muốn lưu lại phiên làm việc hiệntại hay không Nếu muốn lưu lại, chọn Save

6. Mở cửa sổ Workspace của MATLAB, ta sẽ thấy trong workspace sẽ xuất hiện biến mới là

bs1750 Đây chính là bộ lọc mà ta đã thiết kế trong SPTool và xuất ra workspace của

MATLAB Biến này được lưu dưới dạng một cấu trúc mô tả bộ lọc đã thiết kế Nhấn đúpchuột vào tên biến bs1750 trong workspace, ta sẽ thấy được các field của cấu trúc này

7. Trong các field này, field tf thể hiện hàm truyền của bộ lọc Field này cũng là một cấu trúc gồm 2 field: tf.num và tf.den thể hiện tương ứng các hệ số của đa thức tử số và đa

thức mẫu số Để chuyển các hệ số này sang dạng mỗi tầng bậc hai (second-ordersection), trong MATLAB có thể dùng các lệnh sau:

Trang 4

trong đó b0i, b1i, b2i là các hệ số tử số hàm truyền của phần bậc 2 thứ i và 1, a1i, a2i là các hệ

số mẫu số của hàm truyền của phần bậc 2 thứ i

Các phần tử của ma trận sos này sẽ được sử dụng để thực hiện bộ lọc IIR Ghi nhận các giá trị b

và a vào bảng sau

0.852664231745

610

0.332949775032 229

-0.852664232172 453

0.348426502847 038

-0.784598410841 208

-0.361361777931 278

0.999999999505 846

0.280872670866 996

-0.963772074731 663

-0.419430489052 090

0.999999999616 848

0.483998057131 818

-0.964510697225 853

-0.346015671203 774

1.000000000224 74

0.311928932295 225

-0.994307551293 976

-0.434549970594 600

1.000000000151 96

0.465630397820 057

-0.994395645612 719

Thực hiện bộ lọc IIR trên Matlab

Chương trình Matlab thực hiện bộ lọc như sau:

clc;

close all;

Fs=8000;

h1 = bs1750.tf.num;

Trang 5

endfor j2 = Mb:-1:2 v(j2) = v(j2 -1);

endend

Yk=fft(yn,Ly);

Yk_mag=abs(Yk);

Trang 6

Kiểm tra bộ lọc

1. Kiểm tra bộ lọc với tín hiệu sine đa tần có các thành phần tần số 1000 Hz và 1750 Hz:

- Đáp ứng tần số bộ lọc:

Trang 7

- x(n), y(n):

- X(k), Y(k):

Trang 8

2. Kiểm tra bộ lọc với ngõ vào tín hiệu tổng của các tín hiệu sin tần số 100 – 3900 Hz:Chương trình Matlab thực hiện yêu cầu:

endfor j2 = Mb:-1:2 v(j2) = v(j2 -1);

endend

Trang 9

2.2.2 Bộ lọc IIR thông thấp

Tương tự như phần II.2.1, hãy thiết kế, thực hiện và kiểm tra một bộ lọc IIR thông thấp thuộc loại Chebyshev 2 với các thông số như sau:

Trang 10

• Bậc bộ lọc: 10

• Cạnh dải dải chắn: 1.6 KHz

• Độ gợn dải chắn: 60 dB

• Tần số lấy mẫu: 8 kHz

1. Đáp ứng tần số của bộ lọc thiết kế dùng MATLAB:

2. Giá trị các hệ số đáp ứng xung mỗi tầng bậc 2 của bộ lọc thực hiện trên kit DSP:

0.0084666270516 1881

0.015432767504 3263

0.0084666270516 1877

0.15885477033 7671

-0.020933743022 1357

1 0.876755314665

951

1.0000000000000 0

0.29931923606 4403

-0.139355279814 572

1 0.054217374634 1.0000000000000 - 0.335661466991

Trang 11

0.9999999999999 95

0.74992808723 5843

-0.571249256955 465

-0.595538785465 102

0.9999999999999 96

0.95816569601 0330

-0.841167573036 574

3. Kiểm tra bộ lọc với ngõ vào tín hiệu sin đa tần có các thành phần tần số 1000 Hz và 1700Hz:

- Đáp ứng tần số bộ lọc

Trang 12

- x(n), y(n)-X(k), Y(k);

Trang 13

4. Kiểm tra bộ lọc với ngõ vào tín hiệu tổng của các tín hiệu sin tần số 100 – 3900 Hz:Chương trình Matlab thực hiện yêu cầu:

Trang 14

w(j1) = w(j1 -1);

endfor j2 = Mb:-1:2 v(j2) = v(j2 -1);

endend

xlabel ('y(n)');

figure(3)

subplot(2,1,1);

stem((0:Lx/2-1)*Fs/Lx,Xk_mag(1:Lx/2)/Lx);xlabel('Hz');

ylabel('Amp');

title('X(k)');

subplot(2,1,2);

stem((0:Ly/2-1)*Fs/Ly,Yk_mag(1:Ly/2)/Ly);xlabel('Hz');

ylabel('Amp');

title('Y(k)');

Phổ của tín hiệu ngõ vào và ngõ ra:

Trang 15

Nhận xét/Giải thích:

Ngõ ra chỉ có xung từ tần số 0-1500Hz do đi qua bộ lọc thông thấp có tần số cắt thấp 1600HzLưu các chương trình Matlab trong mục này với tên Bai_2 _IIR_lp_1600_NHOMx.m

2.2.3 Thực hiện bộ lọc IIR thông dải

Tương tự như phần II.2.1, hãy thiết kế, thực hiện và kiểm tra một bộ lọc IIR thông dải thuộc loại Chebyshev 2 với các thông số như sau:

Trang 16

2. Gía trị các hệ số đáp ứng xung mỗi tầng bậc 2 của bộ lọc thực hiện trên kit DSP:

4.888997913815 30e-05

9.444136957240 55e-05

-4.888997913815 31e-05

0.0999345043935 856

-0.394527887315 094

1 1.931712208457

55

0.999999999999 999

0.0999345043425 369

0.394527887315 306

-1.564356868622 12

0.999999999999 994

0.2682752600114 57

-0.461408596586 891

1 1.564356868622

12

1.000000000000 01

0.2682752598859 70

0.461408596613 264

-1.219017780325 69

1.000000000000 55

0.3768703472766 42

-0.557403929011 642

1 1.219017780325 1.000000000000 0.3768703462629 0.557403929225

Trang 17

83 17 00 986

1 0.985779522240

508

0.999999999995 641

0.4366927114868 53

0.653416752617 471

-0.985779522240 480

0.999999999990 904

0.4366927188910 05

-0.653416758317 106

1 0.835069940499

630

1.000000000038 81

0.4663003924163 95

0.738100602568 877

-0.835069940555 032

1.000000000051 32

0.4663003607687 41

-0.738100617309 498

-0.737415272187 916

0.999999999877 311

0.4800438083558 18

-0.809829496847 943

1 0.737415272733

955

0.999999999790 688

0.4800438100258 77

0.809829585761 049

1 0.674953706913

301

1.000000000660 69

0.4871552166084 71

0.870865516194 636

-0.674953708941 863

1.000000000107 18

0.4871552930970 57

-0.870865630182 046

-0.637653729637 750

1.000000000029 95

0.4932138817411 08

-0.924655231934 189

1 0.637653733010

591

0.999999998937 644

0.4932139515999 93

0.924655285911 270

1 0.620168171961

213

1.000000000576 45

0.5016066985113 82

0.974946738023 043

-0.620168173796 292

0.999999999942 691

0.5016067166049 65

-0.974946746166 433

3. Kiểm tra bộ lọc với ngõ vào tín hiệu sin đa tần có các thành phần tần số 1000 Hz và 2000Hz:

Trang 18

- Đáp ứng tần số bộ lọc

- x(n), y(n)

- X(k), Y(k)

Trang 19

4. Kiểm tra bộ lọc với ngõ vào tín hiệu tổng của các tín hiệu sin tần số 100 – 3900 Hz:Chương trình Matlab thực hiện yêu cầu:

Trang 20

for j1 = Ma:-1:2 w(j1) = w(j1 -1);

endfor j2 = Mb:-1:2 v(j2) = v(j2 -1);

endend

xlabel ('y(n)');

figure(3)

subplot(2,1,1);

Trang 21

Ngõ ra chỉ có xung từ tần số 1600Hz-2400Hz do qua bộ lọc thông dải.

Lưu các chương trình Matlab trong mục này với tên Bai_3_IIR_bp_1600_2400_NHOMx.m

2.2.4 Thiết kế bộ lọc IIR multiband

Trong thí nghiệm này, chúng ta thiết kế, thực hiện và kiểm tra một bộ lọc IIR multiband có đáp ứng mong muốn như bộ lọc ở phần II.1.4

Các bước thiết kế giống như ở phần II.1.4 với nội dung file multibandiir63.m dùng để thiết kế như sau:

%multibandiir63.m: Multiband IIR filter with 63 coefficients

Trang 22

f = [0 0.1 0.12 0.18 0.2 0.3 0.32 0.38 0.4 1];

m = [0 0 1 1 0 0 1 1 0 0];

n = 63;

[num, den] = yulewalk(n-1,f,m);

% frequency response with 256 points[h w] = freqz(num,den,256);

% plot magnitude of the filterplot(5000*f,m);

figure;

plot(w/pi,abs(h));

Trong đoạn chương trình trên, lưu ý:

- Lệnh remez được thay bằng lệnh yulewalk dùng để thiết kế bộ lọc IIR Lệnh này trả về các hệ số của tử số và mẫu số của hàm truyền bộ lọc, được chứa tương ứng trong biến num

và den.

- Lệnh freqz được sửa đổi để vẽ đáp ứng tần số của bộ lọc IIR đã thiết kế

Các giá trị của num và den được sử dụng khi cần thực hiện bộ lọc này.

1. Đáp ứng tần số của bộ lọc thiết kế dùng MATLAB:

Trang 23

2. Gía trị các hệ số đáp ứng xung mỗi tầng bậc 2 của bộ lọc thực hiện trên kit DSP:

0.0039259971310 4432

0.00056922597090 0901

0.0033450638697 9231

-0.28566956324 9288

0.68009819355 6299

-0.09878864675809 51

1.0007332311818 3

1.27235867924 311

-0.74427325760 7858

1 1.45257814699475 0.9958551303689

96

1.32532193955 738

0.83592041703 6316

1 1.98111654298302 0.9980136395642

17

1.79079369582 597

0.83593089720 8638

-0.73030027924688 5

0.3059929535247 52

1.65671361659 985

-0.83735700975 6308

-1.97439225764657

1.0037788263620 7

1.58509269043 202

-0.83819898627 0824

-1.48456035882524

1.0073019415628 7

0.83435447182 9124

-0.85449642011 6735

-0.92152481475033 1

0.5575368157995 53

0.95665532771 9333

-0.86944735920 9166

1 1.23694038330187 0.9961091788959

20

1.17372491377 654

0.87210450200 3550

1 1.63572158888678 0.9968343179718

83

1.51935787898 635

0.88650880562 8092

1 1.88493073474561 0.9954468405317

45

1.78984788841 972

0.88723440583 0938

-0.67398355489183 7

0.7094297104485 82

0.75525140977 4527

-0.89024692801 6489

1 0.96065094200282 0.9981382969796 0.91415375789 0.90082831353

Trang 24

0 02 5803 8475

1 1.78304606915569 0.9981406768722

52

1.69980193328 344

0.91119464446 3468

-1.52164696993942

0.6428756733341 84

1.76775685129 704

-0.91235210782 4736

1 0.60885336644980

0

0.9977867169049 28

0.56757585136 2290

0.91370553587 1920

-1.47052719536260

0.9566282912670 99

1.61696890706 264

-0.92891974430 3023

-1.29311530892520

0.9960921635031 44

1.07971213031 995

-0.92939197595 5501

1 1.95007073302276 0.9990573463636

97

1.89687226121 709

0.93204880802 2672

-1.92534033028584

1.0028009237147 9

1.83279276319 238

-0.93928592953 8752

-1.78530300981232

0.9237416160229 98

1.81356453492 186

-0.94330494211 3962

-0.56726298060171 1

1.0018615169687 0

0.71412094010 8058

-0.94700607745 8800

-1.05768816188096

0.9416513714784 15

1.05840786083 411

-0.95112974309 4874

-1.58838202792499

0.9973141627844 81

1.59399099373 305

-0.95257596822 2986

-1.22969677115892

0.9974716926591 36

1.14670521890 141

-0.95363260109 4818

Trang 25

1

-0.61242716703192 5

0.8571161798557 72

0.67677306667 8776

-0.95698042671 9982

-0.84442474164252 8

0.9588536482845 58

0.84441285009 0775

-0.95886635401 7009

-1.65810767441368

0.9575775841174 34

1.65935032053 506

-0.95979442952 3424

-1.86481942796085

0.9388405882195 53

1.86915249123 997

-0.96303920905 9850

-0.67110284579317 8

0.9426837369814 36

0.64064409023 5217

-0.96495647263 1048

-0.58981806157359 1

0.9688230874254 63

0.60934800347 4224

-0.98164247930 6726

3. Kiểm tra bộ lọc với ngõ vào tín hiệu sin đa tần có các thành phần tần số 500 Hz, 750 Hz

và 1750 Hz:

- Đáp ứng tần số bộ lọc

Trang 26

- x(n), y(n)

- X(k), Y(k)

Trang 27

3. Kiểm tra bộ lọc với ngõ vào tín hiệu tổng của các tín hiệu sin tần số 100 – 3900 Hz:Chương trình Matlab thực hiện yêu cầu:

Trang 28

endfor j2 = Mb:-1:2 v(j2) = v(j2 -1);

endend

xlabel ('y(n)');

figure(3)

subplot(2,1,1);

stem((0:Lx/2-1)*Fs/Lx,Xk_mag(1:Lx/2)/Lx);xlabel('Hz');

ylabel('Amp');

Trang 29

Lưu các chương trình Matlab trong mục này với tên Bai_3_IIR_mb_NHOMx.m

4. So sánh các kết quả với phần trước:

- FIR

Trang 30

- IIR

DO FIR LÀ BỘ LỌC CÓ GIÁ TRỊ HỮU HẠN NÊN NGÕ RA PHỔ BIÊN ĐỘ TRONG DẢI CHẮN SẼ KHÔNG BỊ LỌC BỎ HOÀN TOÀN CÒN IIR LÀ BỘ LỌC VÔ HẠN NÊN NGÕ RA PHỔ BIÊN ĐỘ NẰM TRONG DẢI CHẮN SẼ CÓ GIÁ TRỊ GẦN NHƯ BẰNG 0 THÔNG DẢI CỦA IIR LỌC TỐT HƠN FIR.

Ngày đăng: 10/03/2022, 11:06

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w