1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

BCB 3 TN XLSTH

17 6 0

Đ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

Định dạng
Số trang 17
Dung lượng 1,1 MB

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

Nội dung

THIẾT KẾ VÀ THỰC HIỆN BỘ LỌC IIR TRÊN MATLAB Giảng viên hướng dẫn: Huỳnh Văn Phận Họ tên sinh viên: Nguyễn Trần Tú Anh MSSV: 1910770 Lớp: L06... Vẽ sơ đồ khối dạng trực tiếp 1 của bộ lọ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ÀI CHUẨN BỊ THÍ NGHIỆM XỬ LÝ SỐ TÍN

HIỆU BÀI 4 THIẾT KẾ VÀ THỰC HIỆN BỘ LỌC IIR

TRÊN MATLAB Giảng viên hướng dẫn: Huỳnh Văn Phận

Họ tên sinh viên: Nguyễn Trần Tú Anh

MSSV: 1910770 Lớp: L06

Trang 2

Câu 3 Viết chương trình Matlab thực hiện giải thuật xử lý mẫu dạng trực tiếp để thực hiện bộ lọc IIR tổng quát có bậc M có tín hiệu ngõ vào x

Code:

clc;

close all;

a = input('Nhap he so mau:');

b = input('Nhap he so tu:');

M = length(a);

Lv= length(b);

xn= input('Nhap gia tri ngo vao:');

w = zeros(1,M+1);

L = length(xn);

v = zeros(1,L);

for i = 1 : L

v(1) = xn(i);

for j = 1 : M

w(1) = w(1)-a(j).*w(j+1);

end

for r = 1 : Lv

w(1) = w(1)+b(r).*v(r);

end

y(i) = w(1);

for k = L : -1 : 2

v(k) = v(k-1);

end

for t = M+1 : -1 : 2

w(t) = w(t-1);

end

end

Trang 3

Kết quả mô phỏng:

Câu 4 Cho bộ lọc IIR có hàm truyền

1 Vẽ sơ đồ khối dạng trực tiếp 1 của bộ lọc Vẽ đáp ứng tần số của bộ lọc (có thể sử dụng hàm freqz trên Matlab) Tìm ngõ ra y(n) khi ngõ vào x(n) = [1,

2, -1, 1]

Trang 5

Code Matlab:

clc;

close all;

a=[2 -3 0 4];

b=[1 0.2 -0.3 0 0.5];

[H, w] = freqz(a,b);

H_magnitude = abs(H);

plot(w/pi,H_magnitude);

xlabel('w');

ylabel('Amplitude');

title('Dap ung tan so');

Kết quả mô phỏng:

2 Sử dụng chương trình Matlab đã viết ở câu hỏi chuẩn bị 3 để xác định ngõ ra của bộ lọc khi ngõ vào x n ( ) = [ 1, 2, 1,1 − ]

Kiểm tra tính chính xác với kết quả tính được ở ý 1

Trang 6

Code Matlab:

clc;

close all;

a = [1 0.2 -0.3 0 0.5];

b = [2 -3 0 4];

M = length(a);

Lv= length(b);

xn= [1 2 -1 1];

w = zeros(1,M+1);

L = length(xn);

v = zeros(1,L);

for i = 1 : L

v(1) = xn(i);

for j = 1 : M

w(1) = w(1)-a(j).*w(j+1); end

for r= 1 : Lv

w(1) = w(1)+b(r).*v(r);

end

y(i) = w(1);

for k = L : -1 : 2

v(k) = v(k-1);

end

for t = M+1 : -1 : 2

w(t) = w(t-1);

end

end

Kết quả mô phỏng:

Kết quả tính ở ý 2 giống với ý 1.

Trang 7

Câu 5 Viết chương trình Matlab thực hiện giải thuật xử lý mẫu dạng chính tắc để thực hiện bộ lọc IIR tổng quát có bậc M có ngõ vào x Sau đó tính ngõ ra với các thông số bộ lọc và ngõ vào như câu hỏi chuẩn bị 4.

Code Matlab:

clc;

close all;

a = [1 0.2 -0.3 0 0.5];

b = [2 -3 0 4];

M = length(a);

Lv= length(b);

xn= [1 2 -1 1];

w = zeros(1,M+1);

Lx= length(xn);

y = zeros(1,Lx);

for i = 1 : Lx

for j = 2 : M

w(1) = xn(i)-a(j).*w(j+1);

end

for r = 1 : Lv

y(i)=y(i)+b(r).*w(r);

end

for t = M : -1 : 2

w(t) = w(t-1);

end

end

Kết quả mô phỏng:

Trang 8

Câu 6 Viết chương trình Matlab thực hiện giải thuật xử lý mẫu (dạng nối tiếp) để thực hiện bộ lọc IIR dạng nối tiếp với K = 5 tầng của các bộ lọc IIR bậc 2 với ma trận hệ số bộ lọc sos và ma trận trạng thái trung gian W có ký hiệu như trên (Để thuận tiện, sinh viên có thể cho ma trận sos, tín hiệu ngõ vào x(n) bất kỳ để kiểm tra chương trình)

Code Matlab:

clc

clear

K=input('So tang cua bo loc:');

B=zeros(K,3);

A=zeros(K,3);

for i=1:K

fprintf('cot:%d\n',i);

for i1=1:3

b=input('Gia tri cua tu:');

B(i,i1)=b;

end

end

for i=1:K

fprintf('cot:%d\n',i);

for i1=1:3

a=input('Gia tri cua mau:');

A(i,i1)=a;

end

end

w=zeros(K,3);

k=input('nhap cot:');

x=zeros(1,k);

for i=1:k

g=input('Nhap gia tri cho x:');

x(1,i)=g;

end

k1=input('So mau can tinh cua y:');

while k1<k

k1=input('So mau can tinh cua y:');

end

y=zeros(1,k1);

d=zeros(1,K);

xn=zeros(1,k1);

c=zeros(1,k1);

t=k+1:1:k1;

xn=[x zeros(size(t))];

for i=1:k1

c(1,1)=xn(1,i);

for i1=1:K

w(i1,1)=c(1,i1)-A(i1,2)*w(i1,2)-A(i1,3)*w(i1,3);

d(1,i1)=B(i1,1)*w(i1,1)+B(i1,2)*w(i1,2)+B(i1,3)*w(i1,3);

w(i1,3)=w(i1,2);

w(i1,2)=w(i1,1);

Trang 9

c(1,i1+1)=d(1,i1);

end

y(1,i)=d(1,K);

end

Kết quả mô phỏng:

Câu 7 Cho bộ lọc IIR có hàm truyền nối tiếp

Trang 10

1 Xác định ma trận hệ số bộ lọc sos (A, B) và ma trận các biến trạng thái trung gian W đối với bộ lọc trên.

Trang 11

2 Vẽ sơ đồ khối với bộ lọc dạng nối tiếp với các thông số trên.

3 Viết lưu đồ giải thuật xử lý mẫu cho bộ lọc trên.

Trang 12

4 Viết chương trình Matlab thực hiện giải thuật xử lý mẫu trên để tìm ngõ ra của bộ lọc khi ngõ vào x(n) = [1, 2, -1, 1]

Code Matlab:

clc;

close all;

xn=[1,2,-1,1];

sos=[3 -4 2 1 -0.4 0.5;3 4 2 1 0.4 0.5;9 -4 4 1 0.84 0.25];

B = sos(:,1:3);

A= sos(:,4:6);

W=zeros(size(B));

K=length(B);

for ii=0:K

xn(1)=xn(ii+1);

for n=0:K-1

W(n+1,1)=xn(n+1)-A(n+1,2)*W(n+1,2)-A(n+1,3)*W(n+1,3);

y(n+1)=B(n+1,1)*W(n+1,1)+B(n+1,2)*W(n+1,2)+B(n+1,3)*W(n+1,3);

W(n+1,3)=W(n+1,2);

W(n+1,2)=W(n+1,1);

xn(n+2)=y(n+1);

end

y(ii+1)=y(K-1);

end

Kết quả mô phỏng:

Trang 13

1 CHUẨN BỊ LÝ THUYẾT THÍ NGHIỆM

1.2 Bộ lọc IIR

Cho một bộ lọc có hàm truyền như sau:

2

4 25

0 1

5 )

− +

=

z z

z H

Trang 17

6 Vẽ đáp ứng biên độ - tần số và pha - tần số của bộ lọc?

7 Xác định đặc tính của bộ lọc?

Bộ lọc thông dải.

Ngày đăng: 28/08/2022, 22:38

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w