You are on page 1of 17

CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

CHƯƠNG 5. XỬ LÝ TÍN HIỆU TRONG MATLAB

5.1. Phương pháp nội suy


Mục đích của nội suy
Một đối tượng thường được biểu diễn dưới dạng một mô hình toán học như hàm
truyền, mô hình trạng thái,... Để xây dựng mô hình hệ thống thì ta phải tính toán từ
các mối quan hệ vật lý cũng như hóa học biến đổi từ hệ thống. Tuy nhiên, không
phải lúc nào ta cũng có thể có được mô hình này.

Một phương pháp khác để có được thông tin về một hệ thống là đo đạc các trạng
thái của hệ thống tại các thời điểm khác nhau. Sau đó dùng phương pháp nội suy
để tính toán một cách gần đúng về mô hình hệ thống

Độ chính xác của hệ thống lúc này sẽ phụ thuộc vào tần số trích mẫu và phương
pháp nội suy mà ta sử dụng

Lệnh của Matlab

Số Lệnh Ý nghĩa
TT
1 >>interp1(X,Y,Xi,‘phuong phap noi suy‘) Nội suy 1 chiều
2 >>interp2(X,Y,Z,Xi,‘phuong phap noi suy‘) Nội suy 2 chiều
3 >>interp3(X,Y,Z,V,Xi,‘phuong phap noi Nội suy 3 chiều
suy‘)

Với lệnh nội suy 1 chiều, X và Y là một cặp vector chỉ ra giá trị đo được của đối
tượng cần nội suy. Xi là giá trị mà tại đó ta cần tính toán giá trị nội suy. X phải là
một vector đơn điệu tăng. Tương tự với nội suy 2 chiều, Z sẽ là giá trị của đối
tượng đo được ở trạng thái (X,Y). X,y phải là một vector đơn điệu tăng. Với nội
suy 3 chiều, V sẽ là giá trị của trạng thái (X,Y,Z). X,Y,Z phải là các vector đơn
điệu tăng
Phương pháp nội suy
BỘ MÔN KỸ THUẬT ĐIỆN TỬ
ĐẠI HỌC GTVT HN Page | 72
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

Số TT Tên phương pháp Ý nghĩa


1 Nearest Nội suy lân cận gần nhất
2 Linear Nội suy tuyến tính
3 Spline Nội suy theo phương pháp SPLINE
4 Cubic Nội suy khối
5 Pchip Tương tự cubic
6 V5cubic Nội suy khối mà không cần khoảng cách X
bằng nhau (có từ Matlab 5.0 trở đi)

Ví dụ 5.1.1
Lệnh trên cửa sổ Command Ý nghĩa
>> X=1:10; - Khai báo các tọa độ
>> Y=sin(x)+5*cos(x); X và giá trị đo được
>> Xi=1:0.1:10; tại các điểm đó(giả
>>Yi=interp1(X,Y,Xi,'cubic'); sử là một hàm số)
>> plot(X,Y,'o'); - Khai báo các điểm
>> hold on; Xi mà ta cần tính nội
>> plot(Xi,Yi,'r--') suy
5 - Tính giá trị Yi
4 - Vẽ các điểm đo được
3 là các dấu ’o‘
2 - Vẽ tập hợp các điểm
1 nội suy
0

-1

-2

-3

-4

-5
1 2 3 4 5 6 7 8 9 10

Xử lý dữ liệu không đơn điệu

BỘ MÔN KỸ THUẬT ĐIỆN TỬ


ĐẠI HỌC GTVT HN Page | 73
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

Trong thực tế, không phải lúc nào ta cũng có được một bộ số liệu đầy đủ và chuẩn
xác, đơn điệu tại các trạng thái khác nhau, đặc biệt là đối với số liệu nhiều chiều.
Để nội suy dữ liệu này, ta sử dụng lệnh griddata

Lệnh Ý nghĩa
>>Zi=griddata(X,Y,Z,Xi,Yi,‘phương pháp‘ Xử lý dữ liệu không đơn
điệu

Ví dụ 5.1.2
Lệnh trên cửa sổ Command Ý nghĩa
>> x=rand(50,1); - Khai báo các tọa độ
>> y=rand(50,1); X,Y và giá trị đo được
>> z=5*(x.^1)+3*(y.^1); Z tại các điểm đó(giả
>>[Xi,Yi]=meshgrid(0:0.1:1.5,0:0.1:1.5); sử là một hàm số)
>> Zi=griddata(x,y,z,Xi,Yi); - Khai báo các điểm
>> mesh(Xi,Yi,Zi) Xi,Yi mà ta cần tính
>> hold on nội suy
>> plot3(x,y,z,'o')
- Tính giá trị Zi nội suy
được
- Vẽ các điểm đo được là
8
các dấu ’o‘
6
- Vẽ tập hợp các điểm
4 nội suy
2

0
1.5
1.5
1
1
0.5
0.5
0 0

5.2. Biến đổi Fourier gián đoạn


BỘ MÔN KỸ THUẬT ĐIỆN TỬ
ĐẠI HỌC GTVT HN Page | 74
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

Biến đổi Fourier


Biến đổi Fourier được sử dụng để chuyển đổi tín hiệu cần phân tích từ miền thời
gian sang miền tần số để tiến hành các bước xử lý tiếp theo. Công thức để biến đổi
Fourier liên tục như sau

 h(t )e
 jt
H ( j )  dt
Trong thực tế, không phải lúc nào ta cũng có thể có được tín hiệu h(t) liên tục để
thực hiện biến đổi Fourier liên tục. Ta chỉ có thể có được tín hiệu rời rạc của h(t) là
h(nT). Chính vì thế mà ta cũng có phép biến đổi Fourier rời rạc

N 1
H d (k )   2h(nT )e
Phép biến đổi Fourier rời rạc chỉ được định nghĩa cho tần số gián đoạn ωk = k.Δω.
 jk
 
Trong đó Δω được gọi là độ phân giải tần số
n0 .Tần số tối đa có thể đo
NT
F max  F  1
được là .

Số
2 2T
Các lệnh liên quan tới biến đổi Fourier rời rạc
Lệnh Ý nghĩa
TT
1 fft(x) Biến đổi Forier rời rạc 1 chiều của tín hiệu x
2 ifft(X) Biến đổi Forier rời rạc ngược 1 chiều của tín
hiệu X
3 fft2(x) Biến đổi Forier rời rạc 2 chiều của tín hiệu x
4 ifft2(X) Biến đổi Forier rời rạc ngược 2 chiều của tín
hiệu X

Ví dụ 5.2.1

BỘ MÔN KỸ THUẬT ĐIỆN TỬ


ĐẠI HỌC GTVT HN Page | 75
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

Lệnh trong M-file Ý nghĩa


t=0.01:0.01:1;pi=3.14; - Tạo tín hiệu với tần số trích mẫu
x=sin(4*pi*t)+3*cos(11*pi*t);
T=diff(t(1:2));
100Hz từ khoảng thời gian 0.01
N=length(x); đến 1 đơn vị
H=fft(x); - Tính chu kỳ T và số lượng mẫu N
Hc=H/N;
f=[0:(N-1)/2]; - Biến đổi Fourier rời rạc
Hm=[Hc(1) 2*Hc(2:N/2)]; - Chuẩn hóa tín hiệu thu được
figure; - Vẽ dạng tín hiệu ban đầu và phổ
subplot(121);
plot(t,x); thu được
subplot(122);
plot(f,abs(Hm),'o');

Kết quả

4 2

1.8
3
1.6
2
1.4
1
1.2

0 1

0.8
-1
0.6
-2
0.4
-3
0.2

-4 0
0 0.5 1 0 20 40 60

Số Một số câu hỏi đặt ra trong Trả lời

BỘ MÔN KỸ THUẬT ĐIỆN TỬ


ĐẠI HỌC GTVT HN Page | 76
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

TT ví dụ 5.2

1 Tính T như thế nào Hàm diff([value1, value2]) cho


ta hiệu số của 2 giá trị value1 và value2. Ta
cũng có thể nhập trực tiếp giá trị T mà
không cần sử dụng hàm này
2 Tại sao lại phải tính N N sẽ thể hiện số lượng mẫu của tín hiệu mà
ta cần tính Fourier rời rạc. Số lượng mẫu
tăng lên thì độ chính xác của phép toán sẽ
tăng lên. Ta cần phải tính giá trị này vì giá
trị thu được từ hàm fft cũng có số lượng
bằng với N
3 Tại sao lại phải chuẩn hóa Khi số lượng trích mẫu tăng lên thì giá trị
của H sẽ tăng lên theo. Để có thể so sánh
phổ của tín hiệu ứng với số lượng mẫu khác
nhau của cùng một tín hiệu thì ta phải chuẩn
hóa bằng phép toán H/N
Kết quả của phép toán Fourier là một hàm
đối xứng, do đó ta chỉ cần tính một nửa giá
trị đầu hoặc một nửa giá trị sau là đủ

Các vấn đề còn tồn tại

- Phép biến đổi Fourier rời rạc chỉ tính toán được các điểm tần số là bội số của
Δω. Những điểm tần số khác với bội số của Δω không được xét tới. Chính vì
thế mà chúng ta không khảo sát được đặc điểm tín hiệu tại các điểm này –
hiện tượng dò tần số. Nhược điểm này có thể được khắc phục bằng cách tăng
điểm trích mẫu hoặc giảm giá trị Δω. Nhưng việc này cũng gặp hạn chế bởi
độ ảnh hưởng của tín hiệu tạp âm sẽ tăng lên
- Với một tín hiệu có chu kỳ, việc tính phổ bằng cách tính toán trong toàn thời
gian tồn tại của tín hiệu tỏ ra không hiệu quả. Thực tế ta chỉ cần tính toán
trong 1 chu kỳ là đủ
Khắc phục các vấn đề trên

BỘ MÔN KỸ THUẬT ĐIỆN TỬ


ĐẠI HỌC GTVT HN Page | 77
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

Sử dụng phương pháp tính trung bình

Nguyên tắc của phương pháp này là chia tín hiệu ra thành từng chuỗi nhỏ, tính phổ
của từng chuỗi đó rồi tính trung bình

Ưu điểm của nó là loại bỏ được phần nào hiện tượng dò tần số, do đó có khả năng
lọc nhiễu ồn trắng tốt

Ví dụ 5.2.2

Lệnh trong M-file Ý nghĩa


t=0.01:0.01:10;pi=3.14;
x=sin(4*pi*t)+3*cos(11*pi*t)+randn(1,length(t)); - Tạo tín hiệu với tần số
T=diff(t(1:2)); trích mẫu 100Hz từ
N=length(x);
Nmau=100; khoảng thời gian 0.01
f=[0:(Nmau-1)/2]/(Nmau*T); đến 10 đơn vị trong đó
Htong=zeros(1,Nmau);
for k=1:N/Nmau có tín hiệu nhiễu
xmau=x(1+(k-1)*Nmau:k*Nmau);
H=fft(xmau); - Tính chu kỳ T và số
Htong=Htong+abs(H); lượng mẫu N
end;
H=Htong/(N/Nmau); - Biến đổi Fourier rời rạc
H=[H(1) 2*H(2:Nmau/2)]/Nmau;
figure; từng khối bao gồm 100
subplot(131); mẫu, cộng dồn
plot(t,x);
title('tin hieu can phan tich'); - Tính trung bình
subplot(132);
plot(f,H,'o'); - Chuẩn hóa tín hiệu thu
title('Tin hieu pho trung binh');
xdoichung=x(1:Nmau);
được
Hdoichung=abs(fft(xdoichung)); - Vẽ dạng tín hiệu ban
Hdoichung=[Hdoichung(1)
2*Hdoichung(2:Nmau/2)]/Nmau; đầu và phổ thu được
subplot(133);
plot(f,Hdoichung,'o'); - Vẽ phổ của tín hiệu ban
title('Tin hieu pho thong thuong') đầu bình thường của
100 mẫu đầu tiên đối
chứng

BỘ MÔN KỸ THUẬT ĐIỆN TỬ


ĐẠI HỌC GTVT HN Page | 78
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

Kết quả
tin hieu can phan tich Tin hieu pho trung binh Tin hieu pho thong thuong
8 2 2

1.8 1.8
6
1.6 1.6
4
1.4 1.4
2
1.2 1.2

0 1 1

0.8 0.8
-2
0.6 0.6
-4
0.4 0.4
-6
0.2 0.2

-8 0 0
0 5 10 0 50 0 50

Nhận xét: tín hiệu được xử lý theo phương pháp phân tích phổ thông thường có
phổ tần số có các giá trị tại nhiều điểm tần số, đặc tính phổ được xử lý theo phương
pháp tính trung bình có đặc tính mịn hơn, chính xác hơn, loại bỏ được phần nào
nhiễu tạp âm

Sử dụng các hàm cửa sổ


Đối với việc tính phổ của các tín hiệu tuần hoàn, ta không thể nào có được nguyên
mẫu tín hiệu vì thời gian đo tín hiệu là một giá trị hữu hạn. Do đó, nếu ta nhân bản
những tín hiệu mà ta có được trong quá trình đo thành một chuỗi các tín hiệu kéo
dài vô hạn thì về mặt cơ bản, ta đã có được chuỗi tín hiệu nguyên mẫu. Đây chính
là tư tưởng cơ bản của phương pháp hàm cửa sổ.
Câu lệnh của phương pháp
H=fft( Hamming(length(x))´.*x )
Lệnh tính phổ Hàm cửa sổ

BỘ MÔN KỸ THUẬT ĐIỆN TỬ


ĐẠI HỌC GTVT HN Page | 79
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

Ngoài lệnh hamming, matlab còn cung cấp một số các lệnh cửa sổ khác là
bartlett, blackmann, boxcar, hann cũng được thực hiện tương tự
lệnh hamming
Ví dụ 5.2.3
Lệnh trong M-file
t=0.01:0.1:5;pi=3.14;
x=8*sin(15*pi*t)+4*cos(30*pi*t);
T=diff(t(1:2));
N=length(x);
f=[0:(N-1)/2]/(N*T);
H=fft(hamming(N)'.*x);
H=[H(1) 2*H(2:N/2)]/N;
figure;
subplot(131);
grid on;
plot(t,x);
title('tin hieu can phan tich');
subplot(132);
plot(f,abs(H),'o');
title('Tin hieu pho hamming');
subplot(133);
H1=fft(x);
H1=[H1(1) 2*H1(2:N/2)]/N;
plot(f,abs(H1),'o')
title('Tin hieu pho binh thuong');

Kết quả
tin hieu can phan tich Tin hieu pho hamming Tin hieu pho binh thuong
6 4 6

4 3.5
5
2
3

0 4
2.5
-2
2 3
-4
1.5
-6 2

1
-8
1
-10 0.5

-12 0 0
0 5 0 5 0 5

BỘ MÔN KỸ THUẬT ĐIỆN TỬ


ĐẠI HỌC GTVT HN Page | 80
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

5.3. Hàm tương quan


Khái niệm
Hàm tương quan là một hàm giá trị được sử dụng để kiểm tra xem hai hay nhiều
tín hiệu có tương đồng, đồng nhất với nhau hay không.
Hàm tương quan chéo là hàm xác định sự tương đồng của 2 hay nhiều tín hiệu với
nhau

N
1
 xy (k )  1 N  x(n  k
Hàm tự tương quan là hàm tương quan của một tín hiệu duy nhất

Ví dụ 5.3.1
n 1  x ( n  k
 xx (k )  N 
Trong tàu ngầm hải quân, để kiểm tra khoảng cách giữa tầu với mặt đất phía dưới,

N n 1
tàu phát ra một tín hiệu hướng xuống đất theo một chu kỳ nhất định. Tín hiệu thu
được là một hỗn hợp bao gồm tín hiệu đã phát và tiếng vọng của nó. Tính được độ
trễ giữa tín hiệu gốc và tiếng vọng sẽ giúp tàu tính được khoảng cách giữa tàu và
mặt đất
Chương trình trong M-file

f=30000; % Tín hiệu có tần số 30kHz


T=1/f; % Chu kỳ tín hi?u
t=0:T:0.5; % Thời gian trích mẫu tín hiệu là 0.5s
N=length(t); % Tính số mẫu N
x=randn(1,N); % tín hiệu phát đi
%-------Giả Sử tín hiệu thu được về là X--------
delay=65e-3;
di=ceil(delay/T);
tiengvong(di:N)=0.7*x(1:N-di+1);
X=x+tiengvong;
%-------Tính tương quan của tín hiệu X nhận được---
cxx=xcorr(X,'biased');
%-------Vẽ đồ thị-----
subplot(211);
plot(t,x);
grid on;
subplot(212);
plot(t,cxx(N:2*N-1))
grid on

BỘ MÔN KỸ THUẬT ĐIỆN TỬ


ĐẠI HỌC GTVT HN Page | 81
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

Kết quả

-2

-4

-6
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5

1.5

0.5

-0.5
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5

Ví dụ 5.3.2
Hai tầu ngầm cùng di chuyển trong một khu vực. Cả 2 tàu ngầm đó cùng sử dụng
một dạng tín hiệu để nhận biết nhau và để tính toán khoảng cách giữa 2 tầu để cùng
phối hợp di chuyển (giả sử 2 tín hiệu này là đồng bộ với nhau). Để thực hiện công
việc đó, cả 2 tầu đều thu tín hiệu mà nó nhận được từ môi trường và so sánh tín
hiệu đó với tín hiệu mẫu sẵn có. Kết quả thu được sẽ cho ta biết khoảng trễ mà tín
hiệu lan truyền từ tầu này sang tàu kia

Chương trình trong M-file


f=30000;% Tín hiệu có tần số 30kHz
T=1/f;% Chu kỳ tín hiệu
t=0:T:0.5;% Thời gian trích mẫu tín hiệu là 0.5s
N=length(t); %Tính số m?u N
x=randn(1,N);% tín hiệu phát đi
%-------Giả sử tín hiệu thu được về là X--------
delay=60e-3;
di=ceil(delay/T);

BỘ MÔN KỸ THUẬT ĐIỆN TỬ


ĐẠI HỌC GTVT HN Page | 82
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

tiengvong(di:N)=0.5*x(1:N-di+1);
X=x+tiengvong;
%-------Tính tương quan của tín hiệu X nhận được với tín hiệu mẫu---
cxx=xcorr(X,x,'biased');
%-------Vẽ đồ thị-----
subplot(211);
plot(t,x);
grid on;
subplot(212);
plot(t,cxx(N:2*N-1))
grid on

Kết quả chương trình

-2

-4

-6
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5

0.5

-0.5
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5

5.4. Bộ lọc

Khái niệm
Bộ lọc số có tác dụng làm tăng thêm hoặc giảm bớt một dải tần số nhất định của tín
hiệu

BỘ MÔN KỸ THUẬT ĐIỆN TỬ


ĐẠI HỌC GTVT HN Page | 83
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

Phân loại lọc số


FIR (bộ lọc có đáp ứng xung hữu hạn) IIR(bộ lọc có đáp ứng xung vô hạn)

1
1 y ( z ) y 1
H ( z ) H ( z ) 
Bộ lọc FIR
1
x( z ) x
B=fir1( N,Wn,fstyle,window)
Lệnh tạo bộ Các thuộc tính của bộ lọc
lọc
N : bậc của bộ lọc
Wn : Vector tần số cắt

2 
b1  b2 z b1 b bz z 1
Fstyle : Các dạng của bộ lọc
Mặc định : Lọc thông thấp tại tần số cắt Wn

  3 2
`high` : Lọc thông cao
`stop` : Lọc chặn dải Wn = [W1 W2]


`DC-1´ : Dải tần số đầu tiên là dải thông trong chuỗi tần số

a1  aa z
Wn = [W1 W2 W3 .... Wn]
`DC-0´ : Dải tần số đầu tiên là dải bị chặn trong chuỗi tần số
Wn = [W1 W2 W3 .... Wn]
21
Window : Các hàm cửa sổ sử dụng trong bộ lọc bao gồm : barthannwin,
bartlett, blackman, blackmanharris, bohmanwin, chebwin,
flattopwin, gausswin, hamming, hann, kaiser,
nuttallwin, parzenwin, taylorwin, triang, tukeywin

Xác định hàm truyền H của bộ lọc


Với bộ lọc B được tạo ra bởi hàm fir1 ở trên, ta có thể xác định hàm truyền đạt
H của nó bởi lệnh
BỘ MÔN KỸ THUẬT ĐIỆN TỬ
ĐẠI HỌC GTVT HN Page | 84
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

[H,W]=freqz(num, den,points, sample_freq)


Tên lệnh Các tham số
Trong đó
Num Vector đa thức B trong khái niệm, chính là bộ
lọc B
Den Vector đa thức A trong khái niệm, với lọc
FIR thì có giá trị 1
points Tham số xác định độ phân giải
Sample_freq Tần số trích mẫu với thứ nguyên Hz

Lệnh thực hiện lọc tín hiệu

Filter(num,den,data) Lọc có trễ


Filtfilt(num,den,data) Lọc không trễ
Trong đó
Num Vector đa thức B trong khái niệm, chính là bộ lọc
B
Den Vector đa thức A trong khái niệm, với lọc FIR thì
có giá trị 1
data Dữ liệu cần lọc

Ví dụ .4.1
Lệnh trong M-file Chú thích
B=fir1(30,0.3);
- Tạo bộ lọc B và bộ lọc có cửa
Bw=fir1(30,0.3,chebwin(length(B)));
[H,F]=freqz(B,1,300,100); sổ Bw
[Hw,Fw]=freqz(Bw,1,300,100); - Tìm các hàm truyền tương
subplot(121);
plot(F,abs(H),'r-',Fw,abs(Hw),'g--' ứng của nó
); - Vẽ đặc tính của 2 bộ lọc B và
legend('bo loc FIR','loc FIR + cua Bw
so chebwin');
title('dac tinh bo loc');
grid on; - Tạo tín hiệu thử nghiệm lọc
BỘ MÔN KỸ THUẬT ĐIỆN TỬ
ĐẠI HỌC GTVT HN Page | 85
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

subplot(122);
t=0:0.1:10;
x=sin(t)+0.5*cos(20*t); - Lọc bằng 2 phương pháp có
x_f=filter(B,1,x);
x_ff=filtfilt(Bw,1,x); trễ và không trễ
plot(t,x,'g-',t,x_f,'r-',t,x_ff,'b-
');
legend('tin hieu truoc loc','loc - Vẽ dạng tín hiệu trước và sau
filter','loc filtfilt');
title('tin hieu truoc va sau khi
khi lọc
loc');
grid on;

Kết quả
dac tinh bo loc tin hieu truoc va sau khi loc
1.4 1.5
bo loc FIR tin hieu truoc loc
loc FIR + cua so chebwin loc filter
loc filtfilt
1.2
1

1
0.5

0.8

0.6

-0.5
0.4

-1
0.2

0 -1.5
0 10 20 30 40 50 0 2 4 6 8 10

BỘ MÔN KỸ THUẬT ĐIỆN TỬ


ĐẠI HỌC GTVT HN Page | 86
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

Bộ lọc IIR
Khởi tạo bộ lọc
Số Cấu trúc lệnh Ý nghĩa
TT
1 Butter(N,Wn,fstyle,window) Khởi tạo bộ lọc Butterworth
2 Cheby1(N,R,Wn,fstyle,window) Khởi tạo bộ lọc Tschebycheff
dạng 1
3 Cheby2(N,R,Wn,fstyle,window) Khởi tạo bộ lọc Tschebycheff
dạng 2
4 ellip(N,Rp,Rs,Wn,fstyle,window) Khởi tạo bộ lọc Elliptic
Các tham số N, Wn, fstyle, window giống như khởi tạo bộ lọc fir. Tham số R là độ
mất mô của bộ lọc. Tương tự như vậy là các tham số Rp và Rs là độ mấp mô tăng
và giảm của bộ lọc thông dải

Sử dụng bộ lọc IIR


Việc sử dụng bộ lọc IIR ta dùng các lệnh filter hoặc filtfilt giống như đối với bộ
lọc FIR

Ví dụ 5.4.2
Lệnh trong M-file Chú thích
[B,A]=butter(4,0.4);%0.4= 20/50 --->
- Tạo bộ lọc Butter lọc tại tần
tan so 20Hz
t=0:0.01:0.5;pi=3.14; số 20Hz và hàm truyền của
x=5+20*sin(2*pi*10*t) nó
+15*cos(2*pi*70*t);
x_f=filter(B,A,x); - Tạo tín hiệu thử nghiệm lọc
x_ff=filtfilt(B,A,x);
plot(t,x,'g-',t,x_f,'r-',t,x_ff,'b-'
); - Lọc bằng 2 phương pháp có
legend('tin hieu ban dau','loc IIR trễ và không trễ
filter','loc IIR liftlift');
title('tin hieu truoc va sau khi
loc');
grid on; - Vẽ dạng tín hiệu trước và
sau khi lọc

BỘ MÔN KỸ THUẬT ĐIỆN TỬ


ĐẠI HỌC GTVT HN Page | 87
CHƯƠNG 5: XỬ LÝ TÍN HIỆU TRONG MATLAB

Kết quả
tin hieu truoc va sau khi loc
40
tin hieu ban dau
loc IIR filter
loc IIR liftlift
30

20

10

-10

-20

-30
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5

BỘ MÔN KỸ THUẬT ĐIỆN TỬ


ĐẠI HỌC GTVT HN Page | 88

You might also like