1. Trang chủ
  2. » Công Nghệ Thông Tin

Thực hành một số lệnh xử lý tín hiệu và hệ thống rời rạc trong miền thời gia, bộ lọc FIR

13 3,2K 35
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Thực Hành Một Số Lệnh Xử Lý Tín Hiệu Và Hệ Thống Rời Rạc Trong Miền Thời Gia, Bộ Lọc Fir
Trường học Trường Đại Học Khoa Học Tự Nhiên
Chuyên ngành Xử Lý Tín Hiệu
Thể loại Bài thực hành
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 13
Dung lượng 184,5 KB

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

Nội dung

Thực hành một số lệnh xử lý tín hiệu và hệ thống rời rạc trong miền thời gia, bộ lọc FIR

Trang 1

BÀI THỰC HÀNH MATLAB 5

Mục đích: Cho sinh viên làm quen với một số lệnh xử lý tín hiệu và hệ thống rời rạc trong miền thời gia, bộ lọc FIR

Phần 1 Thực hành lệnh xử lý tín hiệu và hệ thống rời rạc trong miền thời gian

Yêu cầu thực hành: Sinh viên tìm hiểu các lệnh với trợ giúp của phần help trong Matlab, thực hiện

các chương trình theo từng bài và phát triền theo các bài tập

Lệnh zeros: tạo một ma trận với toàn bộ các phần tử có giá trị bằng 0

Lệnh ones: tạo một ma trận với toàn bộ các phần tử có giá trị bằng 1

Lệnh rand: tạo một ma trận với các phần tử nhận các giá trị ngẫu nhiên được phân bố đều

trong khoảng từ 0 đến 1

Lệnh randn: tạo một ma trận với các phần tử nhận các giá trị ngẫu nhiên theo phân bố Gauss

có giá trị trung bình bằng 0, phương sai bằng 1

Lệnh min: trả về giá trị nhỏ nhất trong một ma trận

Lệnh max: trả về giá trị lớn nhất trong một ma trận

Lệnh fliplr: lộn ngược lại thứ tự các phần tử trong một ma trận theo hướng xuất phát từ phải

qua trái trở thành từ trái qua phải

Lệnh plot và stem: vẽ đồ thị của một dãy số, plot để thể hiện dạng liên tục, stem để thể hiện

dạng rời rạc, thường sử dụng hàm stem để vẽ tín hiệu ở miền n

Lệnh conv: trả về tích chập của 2 vector

Bài 1: Cho dãy xung đơn vị và chương trình vẽ chúng như sau:

Dãy xung đơn vị:

clf;

% Tao day xung don vi

n = -10:20;

Trang 2

delta = [zeros(1,10) 1 zeros(1,20)];

subplot(2,1,1);

stem(n,delta);

xlabel('thoi gian roi rac n'); ylabel('bien do'); title('tao day xung don vi');

axis([-10 20 0 1.2]);

Kết quả cho đồ thị sau:

Bài tập:

Từ chương trình vẽ xung đơn vị trên, hãy viết các chương trình vẽ đồ thị của các tín hiệu có dạng

a Dãy nhảy đơn vị u(n) có dạng sau:

Trang 3

b Viết dãy dốc đơn vị r(n);

c Viết chương trình biểu diễn hàm mũ thực trên đồ thị

Bài 2: Cho dãy chữ nhật với chiều dài L và chương trình tạo dẫy xung chữ nhật như sau

clf;

%tao day chu nhat

n = 0:20;

L=10;

chunhat= [ones(1,L) zeros(1,20-L+1)];

subplot(2,1,1);

stem(n,chunhat); grid;

xlabel('thoi gian roi rac n'); ylabel('bien do'); title('tao day xung chu nhat');

axis([0 20 0 1.2]);

Kết quả cho đồ thị sau:

Trang 4

Bài tập:

Trên cơ sở chương trình dẫy xung chữ nhật đã cho, sinh viên hãy thực hiện những việc sau:

a Viết thêm vào chương trình đó để vừa vẽ đồ thị đã cho và vừa vẽ đồ thị của tín hiệu trễ đi 3 mẫu như sau:

b Thực hiện việc nhập chiều dài L của dãy từ bàn phím

Trang 5

Bài 3

Cho một dãy tín hiệu hình sin dạng tương tự và chương trình vẽ tín hiệu hình sin đó Từ tín hiệu hình sin đã cho hãy vẽ tín hiệu hình sin rời rạc với chiều dài dãy phát từ 0 đến 50, với pha ban đầu của tín hiệu là  và /2

n=0:40;

f=0.1;

pha=0;

A=1.5;

goc=2*pi*f*n-pha;

x=A*cos(goc);

clf;

plot(n,x);

axis([0 40 -2 2]);

grid;

title('Day tin hieu hinh sin');

xlabel('Chi so thoi gian n');

ylabel('Bien do');

axis;

Kết quả cho đồ thị sau:

Trang 6

Bài tập:

Hãy vẽ dạng tín hiệu hình sin trên thành tín hiệu hình sin rời rạc.

Bài 4:

Viết chương trình tính tích chập của hai dãy hữu hạn sau

% Tinh toan va ve tich chap cua 2 day co chieu dai huu han

% Nhap cac day tu ban phim

x=input('Nhap day kich thich x=');

h=input('Nhap dap ung xung cua he thong h=');

y=conv(x,h);

nx=length(x); %chieu dai cua day x

nh=length(h); %Chieu dai cua day h

ny=nx+nh-1; %Chieu dai cua day y

disp(y);

n=0:ny-1;

subplot(2,1,1);

Trang 7

xlabel('Thoi gian roi rac n');

ylabel('Bien do');

title('tich chap cua 2 day co chieu dai huu han');

Chạy chương trình và

Nhap day kich thich x=[2 3 1 2 5]

Nhap dap ung xung cua he thong h=[1 2 3 1 2 1]

Kết quả cho đồ thị sau:

Bài tập:

Hãy thay đổi chương trình để vừa vẽ tích chập của dãy và vẽ dãy trễ của tích chập dãy y, với độ trễ được nhập từ bàn phím

Trang 8

Phần 2 Thực hành phép biến đổi Fourier,

Yêu cầu thực hành: Sinh viên tìm hiểu các lệnh với trợ giúp của phần help trong Matlab, thực hiện

các chương trình theo từng bài và phát triền theo các bài tập

Bài 1: Cho chuỗi x(n) =[1,1,1,1], tìm biến đổi Fourier thời gian rời rạc, vẽ biên độ và pha

x = [1,1,1,1];

subplot(1,1,1);

w = [0:1:500]*2*pi/500;

[H] = freqz(x,1,w);

magH = abs(H); phaH = angle(H);

phaH(126)=-47.5841*pi/180;

subplot(2,1,1); plot(w/pi,magH); grid

xlabel('frequency in pi units');

ylabel('|X|'); title('Magnitude of the DTFT')

subplot(2,1,2); plot(w/pi,phaH/pi*180); grid

xlabel('frequency in pi units');

ylabel('Degrees'); title('Angle of the DTFT')

Kết quả cho đồ thị sau:

Bài tập: Hãy thay đổi chương trình để thực hiện với chuỗi nhập từ bàn phím

Bài 2: Cho dãy x=cos(0.48πn)+ cos(0.52πn)πn)+ cos(0.52πn)n)+ cos(0.52πn)+ cos(0.52πn)n)

Trang 9

Xác định và vẽ phổ Fourier rời rạc của x(n), 0≤n≤10

n=[0:1:99];

x=cos(0.48*pi*n)+cos(0.52*pi*n);

n1=[0:1:9];y1=x(1:1:10);

subplot(2,1,1);stem(n1,y1);title('signal x(n), 0 <= n

<= 9');xlabel('n')

axis([0,10,-2.5,2.5])

Y1=fft(y1);magY1=abs(Y1(1:1:6));

k1=0:1:5;w1=2*pi/10*k1;

subplot(2,1,2);stem(w1/pi,magY1);title('Samples of DTFT Magnitude');

xlabel('frequency in pi units')

Kết quả cho đồ thị sau:

Bài tập: Xác định và vẽ phổ Fourier rời rạc của x(n), 0≤n≤100

Trang 10

Phần 2 Thiết kế bộ lọc FIR

Yêu cầu thực hành: Sinh viên tìm hiểu các lệnh với trợ giúp của phần help trong Matlab, thực hiện

các chương trình theo từng bài và phát triền theo các bài tập

Yêu cầu: Thiết kế mạch lọc thông thấp với hàm của sổ Trong Matlab có các hàm cửa sổ Blackman, hamming, hanning, kaiser là:

W=blackman(L)

W=hamming(L)

W=hanning(L)

W=kaiser(L,beta)

Viết một chương trình loc_thong_thap.m để thiết kế mạch lọc thông thấp với cửa sổ hamming với các quy định

Chương trình như sau:

function loc_thong_thap()

%Thiet ke mach loc thong thap

wp=0.2*pi;ws=0.3*pi;

tr_width=ws-wp;

M=ceil(6.6*pi/tr_width)+1;

n=[0:1:M-1];

wc=(ws+wp)/2;

hd=ideal_lp(wc,M);

w_ham=(hamming(M))';

h=hd.*w_ham;

[db,mag,pha,grd,w]=freqz_m(h,[1]);

delta_w=2*pi/1000;

Rp=-(min(db(1:1:wp/delta_w+1)));

As=-round(max(db(ws/delta_w+1:1:501)));

Trang 11

subplot(2,2,1);stem(n,hd);title('Dap ung xung ly

tuong');

axis([0 M-1 -0.1 0.3]);

xlabel('n');ylabel('hd[n]');

subplot(2,2,2);stem(n,w_ham);title('Cua so hamming'); axis([0 M-1 0 1.1]);

xlabel('n');ylabel('w(n)');

subplot(2,2,3);stem(n,h);title('Dap ung xung thiet ke');

axis([0 M-1 -0.1 0.3]);

xlabel('n');ylabel('h(n)');

subplot(2,2,4);plot(w/pi,db);title('Dap ung bien do, dB');grid;

axis([0 1 -100 10]);

xlabel('Tan so, w/pi');ylabel('Decibels');

function hd = ideal_lp(wc, M)

% Ideal LowPass filter computation

%

-% [hd] = ideal_lp(wc, M)

% hd = ideal impulse response between 0 to M-1

% wc = cutoff frequency in radians

% M = length of the ideal filter

%

alpha = (M-1)/2;

n = [0:1:(M-1)]

M = n - alpha + eps; % add smallest number to avoid divide by zero

hd = sin(wc*M) / (pi*M);

function [db, mag, pha, grd, w] = freqz_m(b, a)

% Modified version of freqz sunroutine

Trang 12

%

-% [db,mag,pha,grd,w] = freqz_m(b, a)

% db = Relative magnitude in dB computed over 0 to pi radians

% mag = absolute magnitude computed over 0 to pi

radians

% pha = Phase response in radians over 0 to pi

radians

% grd = group delay over 0 to pi radians

% w = 501 frequency samples between 0 to pi radians

% b = numerator polynimial of H(z) (for FIR: b=h)

% a = denominator polynomial of H(z) (for FIR: a=[1])

%

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

H = (H(1:1:501));

w = (w(1:1:501));

mag = abs(H);

db = 20*log10((mag+eps)/max(mag));

pha = angle(H);

grd = grpdelay(b,a,w);

% End of function

Kết quả cho đồ thị sau:

Trang 13

Bài tập:

1 Tìm hiểu các function, các lệnh trong chương trình loc_thong_thap.m

2 Thay đổi chương trình lọc thông thấp trên với các hàm cửa sổ khác là Blackman, hanning, kaiser.

Ngày đăng: 18/09/2012, 10:13

HÌNH ẢNH LIÊN QUAN

Hãy vẽ dạng tín hiệu hình sin trên thành tín hiệu hình sin rời rạc. - Thực hành một số lệnh xử lý tín hiệu và hệ thống rời rạc trong miền thời gia, bộ lọc FIR
y vẽ dạng tín hiệu hình sin trên thành tín hiệu hình sin rời rạc (Trang 6)

TỪ KHÓA LIÊN QUAN

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

w