B CỌNG THNG
TRNG ĐI HC ĐIN LC
KHOA ĐIN T VIN THÔNG
BỄO CỄO Đ TÀI
TÌM HIU V CÔNG C X LÝ TÍN HIU S
TRONG MATLAB
(SIGNAL PROCESSING TOOLBOX)
Giảng viên : Đ Văn Tun
Nhóm 10 lớp: Đ6 ĐTVT2
Khoá : 2011-2016
1. Hoàng Khc Chung
2. Nguyn Th Đc
3. Nguyn Văn HoƠn
4. Nguyn Chí Thành
5. Nguyn Trng Nghĩa
6. HoƠng Văn Khá
7. Nguyn Hu Tú
Hà Ni, tháng 5 năm 2014
LI M ĐU
Xử lý tín hiệu số (digital signal processing –DSP) là một công nghệ tiên tiến đã và đang
làm thay đổi có tính cách mạng trong rất nhiều lĩnh vực. Mỗi lĩnh vực đều phát triển phương
pháp xử lý cho riêng mình, đáp ng nhu cầu do nghành đó đặt ra. Chẳng hạn trong âm học
ngưi ta nghiên cu xử lý số làm giảm tiếng ồn tạp âm ca môi trưng, trong Y học thì phân
tích các tín hiệu siêu âm, điên tâm đồ,… Tuy nhiên thành tựu quan trọng nhất ca xử lý tín
hiệu số là trong điều khiển và trong viễn thông.
Công nghệ xử lý số đã tạo được những modem tốc độ cao giúp truy nhập thu phát
truyền dữ liệu với chất lượng cao. Các modem với các công nghệ nhận dạng tín hiệu tổng hợp
tiếng nói, nén ảnh, xử lý ảnh, khử nhiễu,… càng ngày càng thông minh hơn. Nh công nghệ
phân tích và tổng hợp tín hiệu tinh vi ngưi ta đã làm ra được các robot, có thể giao tiếp, tác
động tới con ngưi.
Một trong những công cụ phần mềm giúp thực hiện công việc xử lý tín hiệu số là
Matlab. Matlab giúp chúng ta xử lý khối công việc nhanh hơn tiếp kiệm thi gian và chi phí.
MC LC
Phần 1: Hệ thống tuyến tính bất biến LTI 1
1.1. Hệ thống thi gian ri rạc 1
1.2. Hệ thống tuyến tính 1
1.3. Hệ thống bất biến theo thi gian 1
1.4. Hệ thống tuyến tính bất biến theo thi gian (LTI) 1
1.4.1. Định nghĩa: 1
1.4.2. Ghép nỗi tiếp hệ thống LTI: 2
1.4.3. Mô phỏng hệ thống LTI trong Matlab: 2
1.5. Mô phỏng hệ thống tuyến tính và phi tuyến 2
1.6. Mô phỏng hệ thống bất biến với thi gian 4
1.6. Xác định đáp ng xung đơn vị ca hệ thống LTI 5
1.7. Ghép nối tiếp các hệ thống LTI 5
Phần 2: Biến đổi Fourier DFT 7
2.1. Tính DFT X[k] ca dãy tín hiệu ri rạc x[n]. 7
2.1.1. Định nghĩa: 7
2.1.2. Tính DFT X[k] 7
2.2. Phân tích phổ dùng DFT 9
Phần 3: Xử lý số tín hiệu thi gian liên tục 12
3.1. Lấy mẫu tín hiệu 12
3.2. Chuyển đổi A/D 13
3.3 Chuyển đổi D/A 14
Phần 4: Các kỹ thuật thiết kế mạch lọc số 16
4.1. Thiết kế mạch lọc số IIR 16
4.1.1. Thiết kế mạch lóc số bằng sự bất biến xung 16
4.1.2. Thiết kế mạch lọc thông thấp elliptic và Butterworth 17
4.1.3. Thiết kế mạch lọc thông dải Butterworth 18
4.1.4. Mô phỏng quá trình lọc số dùng mạch lọc IIR 19
4.2. Thiết kế mạch lọc số FIR 19
4.2.1. Quá trình thiết kế một mạch lọc FIR. 20
4.2.2. Thiết kế mạch lọc dùng hàm cửa sổ. 22
Tài liệu tham khảo 24
DANH MC CÁC BNG, S Đ, HÌNH
Hình 1.1. Ký hiệu một hệ thống ri rạc 1
Hình 1.2. Mô hình hóa hệ thống LTI 2
Hình 1.3. Mô hình hóa hai hệ thống LTI ghép nối tiếp. 2
Hình 1.4. Nghiên cu tính tuyến tính ca hệ thống có phương trình (2.1). 3
Hình 1.5. Nghiên cu tính bất biến với thi gian ca hệ thống có phương trình (1.2). 4
Hình 1.6. Đáp ng xung đơn vị ca hệ thống có phương trình (1.3) 5
Hình 1.7. Tín hiệu ca hệ thống ghép nối tiếp 7
Hình 2.1. a) Thi gian ca dãy x[n]; b) Biểu diễn thi gian biên độ và pha DFT dãy x[n]. 10
Hình 2.2. Phân tích phổ dùng DFT 11
Hình 2.3 Tín hiệu nhiễm tạp âm a) và mật độ phổ công suất ca nó b). 12
Hình 3.1. Lấy mẫu một tín hiệu hình sin. 14
Hình 3.2. a) Tín hiệu tương tự lối vào; b) tín hiệu lối ra ca bộ lượng tử hóa. 16
Hình 3.3. Tín hiệu tương tự lối ra. 17
Hình 4.1. Đáp ng tần số ca mạch lọc IIR thông dải Butterworth. 21
Hình 4.2. Tín hiệu lối vào và tín hiệu lối ra ca mạch lọc số IIR 22
Hình 4.3. Cấu trúc ca bộ lọc FIR truyền thông 22
Hình 4.4. Hình ảnh đáp biên độ ca mach lọc FIR thông thấp và thông dải 24
Hình 4.5. Các đặc trưng ca mạch lọc thông thấp thiết kế dùng cửa sổ Hamming 25
KÝ HIU CÁC CM T VIT TT
DSP: Digital Signal Proccessing
DFT: Discrete Fourier Transform
LTI: Linear Time-Invariant System
Nhóm 10 1
Phn 1: H thng tuyn tính bt bin LTI
1.1. H thng thi gian ri rc
Hệ thống thi gian ri rạc là một thiết bị hay là một toán thuật mà nó tác động lên một
tín hiệu vào (dãy vào) để cung cấp một tín hiệu ra (dãy ra) theo một qui luật hay một th tục
tính toán nào đó. Định nghĩa theo toán học, đó là một phép biến đổi hay một toán tử mà nó
biến một dãy vào x(n) thành dãy ra y(n).
Ký hiệu:
y n T x n
Tín hiệu vào được gọi là tác động hay kích thích, tín hiệu ra được gọi là đáp ng. Biểu
thc biểu diễn mối quan hệ giữa kích thích và dáp ng được gọi là quan hệ vào ra ca hệ
thống.
Quan hệ vào ra ca một hệ thống ri rạc còn được biểu diễn như hình 1.1.
( ) ( )
T
x n y n
Hình 1.1. Ký hiệu một hệ thống ri rạc
1.2. H thng tuyn tính
Gọi y
1
(n) và y
2
(n) lần lượt là đáp ng ca hệ thống tương ng với các tác động x
1
(n) và
x
2
(n), hệ thống là tuyến tính nếu và chỉ nếu:
1 2 1 2 1 2
. . . . . .T a x n b x n aT x n bT x n a y n b y n
với a, b là 2 hằng số bất kỳ và với mọi n.
1.3. H thng bt bin theo thi gian
Một hệ thống là bất biến theo thi gian nếu và chỉ nếu tín hiệu vào bị dịch n
d
mẫu thì đáp
ng cũng dịch n
d
mẫu, ta có:
Nếu
y n T x n
và
1 d
x n x n n
thì
11
dd
y n T x n T x n n y n n
1.4. H thng tuyn tính bt bin theo thi gian (LTI)
1.4.1. Định nghĩa:
Hệ thống tuyến tính bất biến theo thi gian là hệ thống thỏa mãn đồng thi hai tính chất
tuyến tính và bất biến.
Nhóm 10 2
Quan hệ vào/ra ca hệ thống LTI được xác định bi tổng chập sau:
( ) ( ) ( )
k
y n x k h n k
và được ký hiệu bằng:
*y n x n h n
Từ đó phương trình 1.30 ta thấy một hệ thống LTI hoàn toàn có thể được đặc tả bi đáp
ng xung h[n] ca nó và được mô hình hóa như hình 1.1
x[n] y[n]
Hình 1.2. Mô hình hóa hệ thống LTI
1.4.2. Ghép nỗi tiếp hệ thống LTI:
Hai hệ thống LTI có đáp ng xung lần lượt là h1[n] và h2[n] ghép nối tiếp với nhau như
trên hình 1.3 thì hệ thống tổng thể có đáp ng xung :
1 * 2h n h n h n
x[n] y[n] x[n] y[n]
Hình 1.3. Mô hình hóa hai hệ thống LTI ghép nối tiếp.
1.4.3. Mô phỏng hệ thống LTI trong Matlab:
Để mô phỏng các hệ thống thi gian ri rạc LTI, có thể dùng hàm filter. Lệnh này có
nhiều phiên bản, chẳng hạn khi viết:
,,y filter num den x
Trong đó: x là vecto tín hiệu lối vào
0 1 0 1
;
NN
num b b b den a a a
là các vecto hệ số ca hệ thống
y là vecto lối ra
Tín hiệu lối ra y[n] cũng có thể được tính nếu ta dùng lệnh
, , , y filter num den x ic
Trong đó:
1 2 ]]ic y y y N
là vecto ca các điều kiện ban đầu
1.5. Mô phng h thng tuyn tính và phi tuyn
Ta nghiên cu tính tuyến tính ca hệ thống sau:
0.4 1 0.75 2 2,2403 2,4908 1 2,2403 2y n y n y n x n x n x n
(1.1)
h[n]
h
1
[n]
h
2
[n]
h[n]
Nhóm 10 3
với 3 tín hiệu vào là
1 ; 2 1 2x n x n và x n ax n bx n
và tín hiệu vào ban đầu là 0
Chương trình sau dùng để mô phỏng hệ thống trên:
%P1_1: Nghien cuu tinh chat tuyen tinh
va phi tuyen
%phat tin hieu vao
clf
n=0:40; a=2; b=-3;
x1=cos(2*pi*0.1*n);
x2=cos(2*pi*0.4*n);
x=a*x1+b*x2;
num=[2.2403 2.4908 2.2403];
dem=[1 -0.4 0.75];
ic=[0,0]; %điều kiện ban đầu là 0
y1=filter(num,dem,x1,ic); %tính y1(n)
y2=filter(num,dem,x2,ic); %tính y2(c)
y=filter(num,dem,x,ic); %tính y[n]
yt=a*y1+b*y2;
%vẽ tín hiệu ra
subplot(3,1,1);
stem(n,y);grid;
xlabel('chi so n'); ylabel(' bien do');
title('loi ra cua y[n]=T{ a*x1[n]+b*x2[n] }')
subplot(3,1,2);
stem(n,yt);grid;
xlabel('chi so n'); ylabel('bien do');
title(' loi ra cua y[n]=a*y1[n]+b*y2[n]');
%sai số
subplot(3,1,3);
ys=yt-y;
stem(n,ys); grid;
xlabel('chi so n'); ylabel('bien do');
title('sai so');
Hình 1.4. Nghiên cu tính tuyến tính ca hệ thống có phương trình (2.1).
Từ kết quả mô phỏng trên ta thấy sai số giữa yt và y là ys=yt-y rất nhỏ nên ta có xem hệ
thông trên là một hệ thống tuyến tính
Nhóm 10 4
1.6. Mô phng h thng bt bin vi thi gian
Bây gi ta nghiên cu tính bất biến với thi gian thông qua mô phỏng hệ thống có phương
trình sau:
2.2403 2.4908 1 2.2403 2 0.4 1y n x n x n x n y n
(1.2)
Mục đích ca chương trình là tìm tín hiệu lối ra y[n] đối với 2 tín hiệu lối vào x[n] x[n-n
0
]
%P1_2 Nghiên cu tính bất biến với thi gian
clf
n=0:40;
n0=10;
a=0.3;b=-2;
%tín hiệu vào
xn=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n);
%tín hiệu trễ
xn0=[zeros(1,n0) xn];
num=[2.2403 2.4908 2.2403];
den=[1 -0.4 0.75];
ic=[0 0];
yn=filter(num,den,xn,ic);
yn0=filter(num,den,xn0,ic);
subplot(2,1,1); stem(n,yn);
xlabel('chi so thoi gian n');
ylabel('bien do');
title('tin hieu ra y[n]');
subplot(2,1,2);stem(n,yn0(1:41));
xlabel('chi so thoi gian n');
ylabel('bien do');
title('tin hieu ra do vao tre x[n-10]');
Hình 1.5. Nghiên cu tính bất biến với thi gian ca hệ thống có phương trình (1.2).
Theo kết quả mô phỏng trên ta thấy tín hiệu sau khi trễ không bị thay đổi theo thi gian từ
đó ta có thể kết luận hệ thống trên là hệ thống bất biến với thi gian.
Nhóm 10 5
1.6. Xác đnh đáp ng xung đn v của h thng LTI
Trong Matlab, ngưi ta sử dụng lệnh
,,h impz num den N
để tính đáp ng xung ca hệ
thống LTI. Chương trình sau cho phép tính và vẽ đáp ng xung ca hệ thống có phương trình:
0.4 1 0.75 2 2.2403 2.4908 1 2.2403 2 y n y n y n x n x n x n
(1.3)
%P1_3 Tính đáp ng xung đơn vị
clf
N=40;
num=[2.2403 2.4908 2.2403];
den=[1 -0.4 0.75];
h=impz(num,den,N);
stem(h);
xlabel('chi so thoi gian n');
ylabel('bien do');
title('dap ung xung'
Hình 1.6. Đáp ng xung đơn vị ca hệ thống có phương trình (1.3)
1.7. Ghép ni tip các h thng LTI
Trong thực tế ngưi ta thưng ghép nối tiếp các hệ thống LTI nhân quả bậc thấp (thưng là
bậc 2) với nhau để được các hệ thống bậc cao. Chẳng hạn ngưi ta ghép 2 hệ thống bậc 2 có
phương trình sai phân:
1 0.9 1 1 0,8 1 2 0.3 0.3 1 0.4 2y n y n y n x n x n x n
(1.4)
và
2 0.7 2 1 0.85 2 2 0.2 1 0.5 1 1 0.3 1 2y n y n y n y n y n y n
(1.5)
để thu được hệ thống bậc 4 có phương trình:
1.6 1 2.28 2 1.325 3 0.68 4y n y n y n y n y n
0.06 0.19 1 0.27 2 0.26 3 0.12 4x n x n x n x n x n
(1.6)
Nhóm 10 6
Chương trình sau mô phỏng hệ thống bậc 4 vơí phương trình (1.6) và hệ thống nối tiếp 2
hệ thống bậc 2 (1.4) (1.5). Trong chương trình này tín hiệu x[n] là tín hiệu lối vào ca hệ thống
bậc 4 (1.6) có tín hiệu ra là y[n].Sau đó áp dụng tín hiệu lối vào x[n] này cho hệ thống bậc 2 với
phương trình (1.4) để tín hiệu ra y1[n] tiếp đên dùng y1[n] làm tín hiệu lối vào cho hệ thống bậc
2 có phương trình (1.5) để tìm lối ra y2[n] để xác định sai số thực hiện.tất cả tín hiệu được hiển
thị trên hình 1.7 .
%P1_4 ghép nối tiếp hai hệ thống LTI
clf;
x=[1 zeros(1,40)]; %tín hiệu lối vào x[n]
n=0:40;
%các hệ số ca phương trình bậc 4
den=[1 1.6 2.28 1.325 0.68];
num=[0.06 -0.19 0.27 -0.26 0.12];
%Tính tín hiệu lối ra ca hệ thống bậc 4
y=filter(num,den,x);
%Các hệ số ca phương trình bậc 2
num1=[0.3 -0.2 0.4]; den1 = [1 0.9 0.8];
num2=[0.2 -0.5 0.3]; den2 = [1 0.7 0.85];
yl=filter(num1,den1,x); %tính y1[n]
y2=filter(num2,den2,yl); % tính y2[n]
d=y-y2 ; %tính sai số
%Vẽ các tín hiệu ra
subplot(3,1,1);
stem(n,y); grid;
ylabel('Bien do');xlabel('chi so thoi gian n');
title('tin hieu ra cua phuong trinh bac 4');
subplot(3,1,2);
stem(n,y2); grid;
ylabel('Bien do');xlabel('chi so thoi gian n');
title('loi ra cua he thong noi tiep');
subplot(3,1,3);
stem(n,d);grid;
ylabel('bien do');xlabel('chi so thoi gian n');
title('sai so tin hieu loi ra (bac 4 - bac 2)');
Hình 1.7. Tín hiệu ca hệ thống ghép nối tiếp
Từ kết quả mô phỏng trên ta thấy sai số tín hiệu lối ra rất nhỏ cho nên hệ thống có phương
trình bậc 4 tương đương với hai hệ thống có phương trình bậc 2 ghép nối tiếp với nhau.
Nhóm 10 7
Phn 2: Bin đổi Fourier DFT
2.1. Tính DFT X[k] của dãy tín hiu ri rc x[n].
2.1.1. Định nghĩa:
DFT là biến đổi Fourier ri rạc ca dãy hữu hạn x[n] với
01nN
được xác định bằng
biểu thc sau:
2
1
0
[ ] [ ]e
j kn
N
N
n
X k x n
(2.1)
Với
0,1, , 1kN
Công thc (2.1) được gọi là công thc phân tích tín hiệu, trong khi
2
1
0
1
[ ] [ ]
2
j kn
N
N
k
x n X k e
(2.2)
Với
0,1, , 1nN
được gọi là công thc tổng hợp tín hiệu. Đó là biến đổi Fourier nghịch đảo (IDFT). Hai công thc
(2.1) và (2.2) tạo thành cặp biến đổi Fourier ri rạc.
Công thc (2.1) còn được biểu diễn dưới dạng:
2/
[ ] ( ) , 0,1 , 1
i
kN
X k X e k N
(2.3)
2.1.2. Tính DFT X[k].
Trong Matlab, thì X[k] được tính nh hàm fft. Hmaf này có hai dạng. Đó là fft(x) cho DFT
X[k] ca dãy x[n]; cả hai dãy có cùng chiều dài như nhau. Trong khi lệnh fft(x,M) tính DFT M
điểm ca dãy x[n] có chiều dài N với M ≥ N. Nếu M > N thì dãy x[n] phải được điền thêm M-N
số 0 trước khi tính DFT.
Ta xét ví dụ sau: Tính DFT ca dãy sau:
Chương trình sau minh họa tính DFT ca x[n]:
%P2_1 Tính DFT
N=input('chieu dai N cua day =');
M=input('chieu dai M cua X[k]=');
%phát ra dãy x[n]
x=[ones(1,N)];
%tinh DFT M diem
X=fft(x,M);
Nhóm 10 8
%vẽ dãy x[n] va X[k]
t=0:1:N-1;
stem(t,x)
title('day x[n]')
xlabel('chi so thoi gian n'); ylabel('bien do');
pause
subplot(2,1,1)
k=0:1:M-1;
stem(k,abs(X))
title('Bien do cua DFT |X[k]|')
xlabel('chi so tan so k'); ylabel('bien do');
subplot(2,1,2)
stem(k,angle(X))
title('Pha cua DFT X[k]')
xlabel('chi so tan so k'); ylabel('pha cua X[k]');
Với N=8, M=16 ta có đồ thị mô tả kết quả ca chương trình trên cho trên hình 2.1.
a)
Nhóm 10 9
b)
Hình 2.1. a) Thi gian ca dãy x[n]; b) Biểu diễn thi gian biên độ và pha DFT dãy x[n].
2.2. Phân tích phổ dùng DFT
ng dụng quan trọng nhất ca DFT là tính thành phần phổ ca tín hiệu lối vào dù nó là
thi gian ri rạc hay liên tục. Chương trình Matlab tính phổ ca tín hiệu gồm hai thành phần
có tần số 0,22 (biên độ 0.5) và 0,34 (biên độ 1) được thực hiện chương trình sau đây.
%P2_2 Phân tích phổ dùng DFT
clf;
N=input('chieu dai cua tin hieu N=');
M=input('so diem tinh DFT M=');
n=0:N-1;
x=0.5*sin(2*pi*n*0.22) + sin(2*pi*n*0.34);
Fx=fft(x,M);
k=0:M-1;
stem(k,abs(Fx));grid
xlabel('chi so tan so k'); ylabel('bien do');
title(['N=',num2str(N),',M=',num2str(M)]);
Kết quả phân tích phổ cho trên hình 2.2 với N=16, M=128
Nhóm 10 10
Hình 2.2. Phân tích phổ dùng DFT
Cũng có thể dùng DFT để tính mật độ phổ công suất ca tín hiệu nhiễm tạp âm như trong
chương trình sau:
%P2_3 Tính mật độ phổ công suất
Fs = 1000; % tấn số lấy mẫu
T = 1/Fs; % chu kỳ mẫu
L = 1000; % độ dài ca tín hiệu
t = (0:L-1)*T;
x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t); % tín hiệu chưa nhiễm tạp âm
y = x + 2*randn(size(t)); % tín hiệu bị nhiễm tạp âm
figure(1)
plot(Fs*t(1:50),y(1:50))
title('Tin hieu nhiem tap am')
xlabel('thoi gian (milliseconds)')
NFFT = 2^nextpow2(L);
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
figure(2)
plot(f,2*abs(Y(1:NFFT/2+1)))
title('Mat do pho cong suat')
xlabel('Tan so (Hz)')
ylabel('|Y(f)|')
Nhóm 10 11
a)
b)
Hình 2.3 Tín hiệu nhiễm tạp âm a) và mật độ phổ công suất ca nó b).
Nhóm 10 12
Phn 3: X lý s tín hiu thi gian liên tc
Trong thế giới thực hàng ngày, các thông tin đều xuất phát từ các nguồn vật lý; chẳng hạn
như từ các dao động ca sóng biển, từ chuyển động ca cá, ca tầu biển từ sự hoạt động ca
máy móc v.v… Các nguồn gốc vật lý này đều được truyển đi dưới dạng các tín hiệu thi gian
liên tục. Vì vậy để thu nhận thông tin về các nguồn vật lý này, ta phải xử lý các tín hiệu đó.
Các thuật toán xử lý số DSP thưng được áp dụng để xử lý các tín hiệu thi gian liên tục này.
Với mục đích đó, tín hiệu thi gian liên tục x
a
(t) cần được chuyển đổi thành tín hiệu thi gian
ri rạc tương đương x[n], thuật toán DSP xử lý tín hiệu tương đương này sau đó chuyển đổi
tín hiệu thi gian ri rạc đã được xử lý thành tín hiệu thi gian liên tục tương đương y
a
(t).
3.1. Ly mu tín hiu
Khi lấy mẫu một tín hiệu ta cần chọn tần số lấy mẫu sao cho tần số lấy mẫu f
m
phải thỏa
mãn điều kiện Nyquist; tc là tần số lấy mẫu phải lớn hơn hoặc ít nhất phải bằng hai lần tần
số lớn nhất f
c
ca tín hiệu
2
mc
ff
nếu không thì hiện tượng chồng phổ sẽ xảy ra.
Ta thực hiện thực nghiệm việc lấy mẫu bằng việc lấy mẫu tín hiệu hình sin
%P3_1 Lấy mẫu tín hiệu hình sin
clf;
t=0:0.0005:1;
f=3; %tần số tín hiệu
xa=cos(2*pi*f*t);
subplot(2,1,1);
plot(t,xa);grid;
xlabel('thoi gian,s');
ylabel('bien do');
title('tin hieu thoi gian lien tc x(a)');
subplot(2,1,2);
fm=10; %tần số lấy mẫu
T=1/fm;
n=0:T:1;
length(n);
xs=cos(2*pi*f*n);
k=0:length(n)-1;
stem(k,xs);grid;
xlabel('so mau lay trong 1s');
ylabel('bien do');
title('tin hieu thoi gian roi rac x[n]');
Đồ thị cho trên hình 3.1
Nhóm 10 13
Hình 3.1. Lấy mẫu một tín hiệu hình sin.
3.2. Chuyn đổi A/D
Để chuyển đổi tín hiệu đã được lấy mẫu thành tín hiệu số cần chuyển đổi A/D. Trong các
ng dụng ca DSP, lối ra ca bộ chuyển đổi A/D thưng là mã nhị phân.
Bây gi ta khảo sát hoạt động ca bộ lượng tử hóa ca bộ chuyển đổi A/D sigma-delta
khi tín hiệu vào hình sin tần số 0,02Hz. Chương trình sau thực hiện thực nghiệm này.
%P3_2 Lượng tử hóa
clf;
%phát ra tín hiệu lối vào
N=input('chieu dai cua day loi vao N=');
A=input('bien do vua loi vao A=');
w0=2*pi*0.02;
n=1:N;
m=n-1;
x=A*cos(w0*m);
plot(m,x);
xlabel('chi so thoi gian');
ylabel('bien do');
title('tin hieu so loi vao');
pause
%phat loi ra luong tu
x=(x)/(A);
y=zeros(1,N+1);
a=zeros(1,N+1);
e=0.01;
for k=2:N+1
a(k)=x(k-1)-e;
if a(k)>=0; y(k)=1;
else y(k)=-1;
end e=y(k)-a(k);
end
yn=y(2:N+1);
stairs(m,yn) %ve loi ra luong tu
axis([0 N+1 -1.2 1.2]);
xlabel('thoi gian');
ylabel('bien do');
title('loi ra so cua bo luong tu sigma-delta');
Nhóm 10 14
a)
b)
Hình 3.2. a) Tín hiệu tương tự lối vào; b) tín hiệu lối ra ca bộ lượng tử hóa.
3.3 Chuyn đổi D/A
Sau khi đã lượng tử bằng bộ chuyển đổi A/D muốn khôi phục lại tín hiệu đấy tr lại tín
hiệu tương tự ta cần dùng đến bộ chuyển đổi D/A. Quá trình chuyển đổi D/A gồm hai bước:
bước đầu tiên là chuyển đổi dãy số lối vào thành dạng soáng thi gian liên tục dạng bậc thàn
Nhóm 10 15
nh một bộ chuyển đổi D/A với một duy trì bậc không lối ra ca nó, tiếp đến bước th hai
là một bộ lọc thông thấp khôi phục tín hiệu analog ban đầu.
Ta khảo sát bộ chuyển đổi này thông qua việc khôi phục lại tín hiệu trong phần 3.2. Ta
thêm đoạn chương trình sau vào chương trình trong phần 3.2
% A/D sang D/A
pause
Y=fft(yn);
H=[1 1 0.5 zeros(1,N-5) 0.5 1]; % mạch lọc thông thấp
YF=Y.*H; %lọc
out=ifft(YF);
plot(m,out);
xlabel('thoi gian'); ylabel('dien do');
title('loi ra analog da duoc loc thong thap');
Khi đó tín hiệu được khôi phục trên hình 3.2
Hình 3.3. Tín hiệu tương tự lối ra.
Nhóm 10 16
Phn 4: Các kỹ thut thit k mch lc s
Thiết kế mạch lọc là xác định được hàm truyền H(z) ca mạch lọc đó là đáp ng tần số
)(
j
He
ca nó thỏa mãn các yêu cầu thiết kế. Sau khi thu được hàm truyền H(z) đến bước
th hai là thể hiện hàm truyền đó dưới dạng các cấu trúc thích hợp nhất. Đó là sự thực thi các
mạch lọc. Có hai loại mạch lọc chính là FIR và IIR.
4.1. Thit k mch lc s IIR
Thiết kế mạch lọc IIR là thiết kế kế mạch lọc thi gian – ri rạc bao gồm phép biến đổi
mạch lọc tương tự thành một mạch lọc số thỏa mãn các quy định đã được mô tả .
Một số thiết kế mạch lọc IIR
1. Thiết kế mạch lọc số bằng sự bất biến xung
2. Thiết kế mạch lọc thông thấp elliptic và Butterworth
3. Thiết kế mạch lọc thông dải butterworth
4. ….
4.1.1. Thiết kế mạch lóc số bằng sự bất biến xung
Đây là phương pháp lấy mẫu đáp ng xung ca mạch lọc tương tự để thu được đáp ng
xung ca mạch lọc số, nghĩa là:
[ ] ( ) ( )
aa
t nT
h n h t h nT
Với h[n] là đáp ng xung ca mạch lọc số còn h
a
(t) là đáp ng xung ca mạch lọc tương
tự. Trong Matlab kỹ thuật bất biến xung được thực thi nh hàm imp_invr. Để hiểu rõ hơn ta
thực hiện thực nghiệm sau:
Biến đổi mạch lọc tương tự sau thành mạch lọc số H(z) dùng kỹ thuật bất biến xung với
T=0,1
2
1
()
56
a
s
Hs
ss
Chương trình thực hiện thực nghiệm trên
%P41_1 bất biến xung
c=[1,1];
d=[1,5,6];
T=0.1;
[b,a]=imp_invr(c,d,T);
x=impseq(0,-2,-30);
Khi đó ta có các hệ số ca hàm truyền ca mạch lọc số:
Nhóm 10 17
b= 1.0000 -0.8966 và a= 1.0000 -1.5595 0.6065
Do vậy hàm truyền có dạng sau:
1
12
1 0,8966
()
1 1,5595 0,6065
z
Hz
zz
4.1.2. Thiết kế mạch lọc thông thấp elliptic và Butterworth
Quá trình thiết kế mạch lọc có hai bước:
Bước 1: Xác định bậc ca mạch lọc N và thừa số chia thang tần số Wn. Ta thực hiện nh
lệnh
[N,Wn]=buttrord(Wp,Ws,Rp,Rs)
[N,Wn]=ellipord(Wp,Ws,Rp,Rs)
Trong đó: Wp=2fp/F và Ws=2fs/F là các tần số méo dải thông và dải chặn. F là tần
số lấy mẫu còn fp và fs là tần số dải thông và dải chăn. Hai thông số khác là Rp và Rs lấy
theo dB.
Bước 2: Thiết kế mạch lọc. Ta sử dụng hàm sau:
[b,a]=butter(N,Wn)
[b,a]=ellip(N,Rp,Rs,Wn)
Khi đó hàm truyền thu được là:
0
1
()
1
N
m
m
m
N
k
k
k
bz
Hz
az
Ta xét thực nghiệm sau: : Thiết kế mạch lọc elliptic và butterworth thông thấp với các quy
định sau: Tần số mép ca thông dai fp=800Hz, mép ca dải chặn fs=1kHz, độ mấp mô ca
dai thông 0.5dB, độ suy giảm cực tiểu ca dải chặn 40dB và tần số lấy mẫu F=4kHz
Chương trình thực hiện cho thực nghiệm trên:
%thiết kế mạch lọc elliptic
[N,Wn]=ellipord(0.4,0.5,0.5,40);
[b,a]=ellip(N,0.5,40,Wn)
Kết quả:
b = 0.0528 0.0797 0.1295 0.1295 0.0797 0.0528
a = 1.0000 -1.8107 2.4947 -1.8801 0.9537 -0.2336
% thiết kế mạch lọc butterwoth
[N,Wn]=buttord(0.4,0.5,0.5,40);
[b,a]=butter(N,Wn)
Kết quả:
Nhóm 10 18
b= 0.0000 0.0000 0.0003 0.0019 0.0070 0.0195 0.0423 0.0725 0.0997
0.1107 0.0997 0.0725 0.0423 0.0195 0.0070 0.0019 0.0003 0.0000
0.0000
a= 1.0000 -2.8967 6.2773 -9.2059 10.9677 -10.3830 8.2442 -5.4399 3.0421
-1.4302 0.5678 -0.1882 0.0517 -0.0116 0.0021 -0.0003 0.0000 -0.0000
0.0000
4.1.3. Thiết kế mạch lọc thông dải Butterworth
Ta xét thực nghiệm mẫu sau: thiết kế mạch lọc thông dải lý tưng và Butterworth có dải
thông tử 200Hz đến 300Hz và tần số lấy mẫu 1000Hz. Chương trình sau mô tả thực nghiệm
trên.
%mạch lọc lý tưng
f=[0 0.4 0.4 0.6 0.6 1];
H=[0 0 1 1 0 0];
F=1000;
fn=f*F/2;
subplot(2,2,1);
plot(fn,H);
title('dap ung tan so mong muon');
%mạch lọc butterworth
N=8 ;
Bp=[.4 .6]
Rp=.1;
[Bb,Ab]=butter(N,Bp)
h=[abs(freqz(Bb,Ab,n))];
subplot(2,1,2);
plot(fn,H,f,h);
Title('dap ung thuc va dap ung mong
muon');
xlabel('Tan so,Hz'); ylabel('Bien do');
Hình 4.1. Đáp ng tần số ca mạch lọc IIR thông dải Butterworth.
Từ đó ta thấy thực tế không thể thiết kế được một mạch lọc lý tưng được.
Nhóm 10 19
4.1.4. Mô phỏng quá trình lọc số dùng mạch lọc IIR
đây ta sẽ sử dụng mạch lọc IIR elliptic trong lọc tín hiệu lối vào mong muốn. Chương
trình sau mô tả sự lọc đó.
%P4_1_4 lọc số IIR dùng elliptic
clf;
% xac dinh tin hieu vao
k=0:50;
x1=1.5*cos(0.2*pi*k);
x2=2*cos(0.7*pi*k);
x=x1+x2;
% Chon ham truyen cua mach loc
[N,Wn]=ellipord(0.25,0.55,0.5,50);
[num,den]=ellip(N,0.5,50,Wn);
y=filter(num,den,x);
% Ve tin hieu vao va ra
subplot(2,1,1);
stem(k,x); grid; axis([0 50 -4 4]);
xlabel('Chi so thoi gian n');
ylabel('Bien do');
title('Tin hieu so loi vao');
subplot(2,1,2);
stem(k,y); grid; axis([0 50 -4 4]);
xlabel('Chi so thoi gian n');
ylabel('Bien do');
title('Tin hieu loi ra');
Hình 4.2. Tín hiệu lối vào và tín hiệu lối ra ca mạch lọc số IIR
4.2. Thit k mch lc s FIR
Bộ lọc FIR là bộ lọc có đáp ng xung chiều dài hữu hạn, tc là đáp ng xung chỉ khác
không trong một khoảng có chiều dai hữu hạn N (từ 0 đến N-1). Bộ lọc FIR với bậc cảu bộ
lọc là N được biểu diễn như hình sau:
Nhóm 10 20
x[n] ……
h
0
h
1
h
2
h
N-2
h
N-1
……… y
n
Hình 4.3. Cấu trúc ca bộ lọc FIR truyền thông
Trong đó: x[n] là tín hiệu lối vào ca mạch
y[n] là tín hiệu lối ra ca mạch
h[n] là đáp ng xung ca mạch
Lối ra y[n] và lối vào x[n] liên hệ với nhau bi công thc
1
0
[ ] [ ] [ ]
N
k
y n h k x n k
4.2.1. Quá trình thiết kế một mạch lọc FIR.
Gồm hai bước:
Bước 1: Tìm bậc N ca mạch lọc FIR từ các quy định đã cho.
Để xác định bậc ca mạch lọc FIR mong muốn chúng ta sử dụng công thc gần đúng ca
Kaiser:
10
20log ( 13
14,6( ) / 2
ps
sp
N
Trong Matlab, ta dùng hàm remezord để tìm bậc ca hàm truyền
[N,fpts,mag,wt]=remozord(fedge,mval,dev)
[N,fpts,mag,wt]=remozord(fedge,mval,dev,FT)
Bước 2: Xác định hàm truyền ca mạch lọc
Ta sử dụng hàm remez(N,fpts,mag,wt) để thiết kế mạch lọc
Để hiểu rõ hơn ta xét thực nghiệm sau: Thiết kế mạch lọc dải thông và dải chăn có tần số
mép dải thông fb=800Hz tần số mép dải chặn fs=1000Hz độ mấp mô ca dai thông là
0,5dB (δp=0,0559) và độ suy giảm dải chặn là 40dB (δs=0,01) tần số lấy mẫu F=4000Hz.
Chương trình sau mô tả cho thực nghiệm.
delay
x
+
delay
x
+
delay
x
x
x
+
+