Professional Documents
Culture Documents
Báo Cáo Bài Tập Lớn Thông Tin Số
Báo Cáo Bài Tập Lớn Thông Tin Số
ĐỀ TÀI
THIẾT KHẾ BỘ LỌC THÔNG THẤP BẰNG
MATLAB
Giảng viên: Nguyễn Văn Đức
Nhóm 6:
Nguyễn Thị Hoài Thương : 20153727
Lê Bích Hạnh : 20151246
Nguyễn Thị Minh : 20152478
Ngô Thị Trang : 20153874
Nguyễn Đức Tường :20154297
2
I. LỜI MỞ ĐẦU
Trong xử lí tín hiệu và lọc số, mảng thiết kế bộ lọc số có vai trò quan tròn và
được nghiên cứu nhiều nhất. Chúng được nghiên cứu phát triển với mục đích có thể
mô phỏng các bộ lọc tương tự trên máy tính điện tử. Các bộ lọc số là hệ thống dùng
làm biến dạng sự phân bố tần số của các thành phần của một tín hiệu theo các chỉ
tiêu đã cho.
Trong đề tài này nhóm chúng em tìm hiểu về bộ lọc thông thấp. Chúng em xin
cảm ơn chân thành đến thầy Nguyễn Văn Đức đã hướng dẫn chỉ bảo tận tình để
nhóm em có thể hoàn thành bài tập này. Bài tìm hiểu còn nhiều thiếu xót rất mong
nhận được nhận xét ý kiến của thầy để nhóm chúng em có thể hoàn thành tốt hơn
nữa.
Em xin chân thành cảm ơn!
3
II. TỔNG QUAN VỀ MẠCH LỌC THÔNG
THẤP
1) Định nghĩa
Bộ lọc thông thấp (Low Pass Filter) tức là bộ lọc chỉ cho thành phần tần số
thấp hơn tần số cắt đi qua thôi, thành phần tần số cao thì bị loại bỏ.Với tần số có biên
độ -3db.
Nhận xét : Ở đây |𝐻(𝑒 𝑗𝜔 )| là đối xứng tức là ta định nghĩa bộ lọc số thông
thấp lý tưởng với h(n) thực . Vì thế khi khảo sát các tham số của bộ lọc ta sẽ khảo
sát trên nửa chu kì với
4
𝜔𝐶 ∶là tần số cắt
0≤ ω ≤ 𝜔𝐶 : dải thông
𝜔𝐶 ≤ ω ≤ π : dải chắn
2) Đặc trưng của bọ lọc thông thấp
Để đặc trưng cho bộ lọc thông thấp thực tế, người ta sử dụng các tham số
sau :
- Tần số giới hạn dải thông ωc (hay fc ).
- Tần số giới hạn dải chặn ωp (hay fp ).
- Độ rộng dải quá độ Δω p = |ωp - ωc|(hay Δfp ).
- Độ nhấp nhô trong dải thông δ1. Trong dải thông, đặc tính biên độ tần
số 𝐻(𝑒 𝑗𝜔 ) phải thỏa mãn điều kiện :
(1 - δ1) ≤ 𝐻(𝑒 𝑗𝜔 ) ≤(1 + δ1)
- Độ nhấp nhô trong dải chặn δ 2. Trong dải chặn, đặc tính biên độ tần
số 𝐻(𝑒 𝑗𝜔 ) phải thỏa mãn điều kiện :
𝐻(𝑒 𝑗𝜔 ) ≤ δ 2.
Bộ lọc số thực tế có Δω p , δ 1 và δ 2 càng nhỏ thì đặc tính biên độ tần số càng
gần giống dạng chữ nhật, nên độ chọn lọc tín hiệu càng tốt.
3) Ứng dụng
5
III. CÁC PHƯƠNG PHÁP THIẾT KỆ BỘ LỌC
THÔNG THẤP
1) Các phương pháp thiết kế bộ lọc thông thấp(FIR)
Cửa sổ
Lấy mẫu tần số
Thiết kế tối ưu
V.v…
2) Phương pháp cửa sổ
Cho hd(n) là hàm đáp ứng xung của bộ lọc lý tưởng tương ứng với loại bộ lọc
cần thiết kế.
Với phương pháp cửa sổ, đáp ứng xung của bộ lọc cần thiết kết được xác định
như sau:
h(n) = hd(n-α)w(n); α = N/2.
Trong đó: w(n) là hàm cửa sổ có chiều dài hữu hạn N+1 và đối xứng quanh điểm
giữa, nghĩa là: w(n) = w(N-n)
6
IV. THIẾT KẾ BỘ LỌC THÔNG THẤP BẰNG
MATLAB
1) Thiết kế bằng công cụ FDATool
Bước 1: Gõ lệnh >>fdatool trong cửa sổ command
Trong đó:
- Response Type: Lựa chọn kiểu bộ lọc thông thấp, thông cao, thông dải, chắn
dải.
- Design Method: Các phương pháp dùng để thiết kế bộ lọc IIR hoặc FIR.
- Filter Order: Bậc của bộ lọc (Độ dài của đáp ứng xung).
- Apass/2: Độ gợn sóng trong dải thông (dB).
- Astop: Độ suy giảm trong dải chắn (dB).
- Fs: Tần số lấy mẫu.
7
- Fpass: Tần số giới hạn của dải thông.
- Fstop: Tần số giới hạn của dải chắn.
Bước 2: Sau khi chọn các thông số cần thiết để thiết kế một bộ lọc thông thấp. Chọn
>> design filter
Tần số cắt fc=10kHz
Click vào vị trí trên đồ thị để thể hiện Đáp ứng biên độ (dB)
8
Bước 3: Xuất giá trị đáp ứng xung và lưu các hệ số
9
2) Thiết kế bộ lọc thông thấp bằng code matlab
Code :
lpFilt = designfilt('lowpassfir','PassbandFrequency',0.25, ...
'StopbandFrequency',0.35,'PassbandRipple',0.5, ...
'StopbandAttenuation',65,'DesignMethod','kaiserwin');
fvtool(lpFilt)
dataIn = rand(1000,1);
dataOut = filter(lpFilt,dataIn);
10
Code:
close all;
clear all;
clc
%%%%%%%%%%%hamming
fc=10000/48000;
N=133;%So luong mau
n=-((N-1)/2):((N-1)/2);
n=n+(n==0)*eps;
[h] =sin(n*2*pi*fc)./(n*pi);%ham sa roi rac
[w] = 0.54 + 0.46*cos(2*pi*n/N);%dinh nghia cua so windown hamming
d=h.*w;%cua aso lay gioi han cho h
[g,f]=freqz(d, 1, 512, 48000);
figure(1);
subplot(3,1,1);
plot(f,20*log10(abs(g)));
axis([0 2*10^4 -70 10]);
subplot(3,1,2);
stem(d);
xlabel('Coefficient number');
ylabel('Value');
title('Truncated Impulse Response');
subplot(3,1,3);
plot(w);
11
%%%%%End hamming
%%%%%%%%%%%
fc=10000/48000;
N=133;%So luong mau
n=-((N-1)/2):((N-1)/2);
n=n+(n==0)*eps;
[h] =sin(n*2*pi*fc)./(n*pi);%ham sa roi rac
[w] = 0.42 + 0.5*cos(2*pi*n/(N-1))+0.08*cos(4*pi*n/(N-1));%dinh nghia
cua so windown hamming
d=h.*w;%cua so lay gioi han cho h
[g,f]=freqz(d, 1, 512, 44100);
figure(2);
subplot(3,1,1);
plot(f,20*log10(abs(g)));
axis([0 2*10^4 -70 10]);
subplot(3,1,2);
stem(d);
xlabel('Coefficient number');
ylabel('Value');
title('Truncated Impulse Response');
subplot(3,1,3);
plot(w)
%%%end Blackman%%%%
%%%%Hanning%%%
fc=10000/48000;
N=133;%So luong mau
n=-((N-1)/2):((N-1)/2);
n=n+(n==0)*eps;
[h] =sin(n*2*pi*fc)./(n*pi);%ham sa roi rac
[w] = 0.5*( 1+ cos(2*pi*n/(N-1)));%dinh nghia cua so windown hamming
d=h.*w;%cua so lay gioi han cho h
[g,f]=freqz(d, 1, 512, 44100);
figure(3);
subplot(3,1,1);
plot(f,20*log10(abs(g)));
axis([0 2*10^4 -70 10]);
subplot(3,1,2);
stem(d);
xlabel('Coefficient number');
ylabel('Value');
title('Truncated Impulse Response');
12
%axis([0 2*10^4 -70 10]);\
subplot(3,1,3);
plot(w)
13