Chẳng hạn trong âm học ngư i ta nghiên c u xử lý số làm giảm tiếng ồn tạp âm c a 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
Trang 1B CỌNG TH NG
KHOA ĐI N T VI N THÔNG
BỄO CỄO Đ TÀI TÌM HI U V CÔNG C X LÝ TÍN HI U S
TRONG MATLAB (SIGNAL PROCESSING TOOLBOX)
Trang 2L I 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 c u xử lý số làm giảm tiếng ồn tạp âm c a 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 c a 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 th i gian và chi phí
Trang 3
M C L C
Phần 1: Hệ thống tuyến tính bất biến LTI 1
1.1 Hệ thống th i gian r i rạc 1
1.2 Hệ thống tuyến tính 1
1.3 Hệ thống bất biến theo th i gian 1
1.4 Hệ thống tuyến tính bất biến theo th i 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 th i gian 4
1.6 Xác định đáp ng xung đơn vị c a 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] c a dãy tín hiệu r i 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 th i 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
Trang 4
DANH M C CÁC B NG, S Đ , HÌNH
Hình 1.1 Ký hiệu một hệ thống r i 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 c u tính tuyến tính c a hệ thống có phương trình (2.1) 3
Hình 1.5 Nghiên c u tính bất biến với th i gian c a hệ thống có phương trình (1.2) 4
Hình 1.6 Đáp ng xung đơn vị c a hệ thống có phương trình (1.3) 5
Hình 1.7 Tín hiệu c a hệ thống ghép nối tiếp 7
Hình 2.1 a) Th i gian c a dãy x[n]; b) Biểu diễn th i 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 c a 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 c a 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ố c a 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 c a mạch lọc số IIR 22
Hình 4.3 Cấu trúc c a bộ lọc FIR truyền thông 22
Hình 4.4 Hình ảnh đáp biên độ c a mach lọc FIR thông thấp và thông dải 24
Hình 4.5 Các đặc trưng c a mạch lọc thông thấp thiết kế dùng cửa sổ Hamming 25
Trang 5KÝ HI U CÁC C M T VI T T T
DSP: Digital Signal Proccessing
DFT: Discrete Fourier Transform
LTI: Linear Time-Invariant System
Trang 6Ph n 1: H th ng tuy n tính b t bi n LTI
1.1 H th ng th i gian r i r c
Hệ thống th i gian r i 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
th c 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 c a hệ thống
Quan hệ vào ra c a một hệ thống r i rạc còn được biểu diễn như hình 1.1
x n y n
Hình 1.1 Ký hiệu một hệ thống r i rạc
1.2 H th ng tuy n tính
Gọi y1(n) và y2(n) lần lượt là đáp ng c a hệ thống tương ng với các tác động x1(n) và
x2(n), hệ thống là tuyến tính nếu và chỉ nếu:
Trang 7Quan hệ vào/ra c a hệ thống LTI được xác định b i tổng chập sau:
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ả b i đáp
ng xung h[n] c a nó và được mô hình hóa như hình 1.1
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 th i gian r i 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 N; 0 1 N
num b bb den a a a là các vecto hệ số c a 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 đó: ic y 1 y 2 y N]] là vecto c a các điều kiện ban đầu
1.5 Mô ph ng h th ng tuy n tính và phi tuy n
Ta nghiên c u tính tuyến tính c a hệ thống sau:
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.1)
h[n]
Trang 8với 3 tín hiệu vào là x n1 ; 2x n và x n ax n1 bx2 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
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 c u tính tuyến tính c a 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
Trang 9Mục đích c a 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-n0]
%P1_2 Nghiên c u tính bất biến với th i gian
title('tin hieu ra do vao tre x[n-10]');
Hình 1.5 Nghiên c u tính bất biến với th i gian c a 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 th i gian từ
đó ta có thể kết luận hệ thống trên là hệ thống bất biến với th i gian
Trang 101.6 Xác đ nh đáp ng xung đ n v của h th ng LTI
Trong Matlab, ngư i ta sử dụng lệnh himpz num den N , , để tính đáp ng xung c a hệ thống LTI Chương trình sau cho phép tính và vẽ đáp ng xung c a hệ thống có phương trình:
title('dap ung xung'
Hình 1.6 Đáp ng xung đơn vị c a hệ thống có phương trình (1.3)
1.7 Ghép n i ti p các h th ng 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:
Trang 11Chươ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 c a 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
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);
Hình 1.7 Tín hiệu c a 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
Trang 12[ ] [ ]e
j kn N
N n
2 1
N k
Công th c (2.1) còn được biểu diễn dưới dạng:
số 0 trước khi tính DFT
Ta xét ví dụ sau: Tính DFT c a dãy sau:
[ ] { Chương trình sau minh họa tính DFT c a 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);
Trang 13xlabel('chi so tan so k'); ylabel('pha cua X[k]');
Với N=8, M=16 ta có đồ thị mô tả kết quả c a chương trình trên cho trên hình 2.1
a)
Trang 14b) Hình 2.1 a) Th i gian c a dãy x[n]; b) Biểu diễn th i 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 c a DFT là tính thành phần phổ c a tín hiệu lối vào dù nó là
th i gian r i rạc hay liên tục Chương trình Matlab tính phổ c a 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=');
Trang 15Hì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 c a tín hiệu nhiễm tạp âm như trong chương trình sau:
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)')
Trang 16a)
b) Hình 2.3 Tín hiệu nhiễm tạp âm a) và mật độ phổ công suất c a nó b)
Trang 17Ph n 3: X lý s tín hi u th i gian liên t c
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 c a sóng biển, từ chuyển động c a cá, c a tầu biển từ sự hoạt động c a 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 th i 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 th i gian liên tục này
Với mục đích đó, tín hiệu th i gian liên tục xa(t) cần được chuyển đổi thành tín hiệu th i gian
r i 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 th i gian r i rạc đã được xử lý thành tín hiệu th i gian liên tục tương đương ya(t)
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
Trang 18Hình 3.1 Lấy mẫu một tín hiệu hình sin
3.2 Chuy n đổ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 c a DSP, lối ra c a bộ chuyển đổi A/D thư ng là mã nhị phân
Bây gi ta khảo sát hoạt động c a bộ lượng tử hóa c a 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=');
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');
Trang 19a)
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 c a bộ lượng tử hóa
3.3 Chuy n đổ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 th i gian liên tục dạng bậc thàn
Trang 20nh một bộ chuyển đổi D/A với một duy trì bậc không lối ra c a 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
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
Trang 21Ph n 4: Các k ỹ thu t thi t k m ch l c s
Thiết kế mạch lọc là xác định được hàm truyền H(z) c a mạch lọc đó là đáp ng tần số
)
( j
H e c a 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 Thi t k m ch l c s IIR
Thiết kế mạch lọc IIR là thiết kế kế mạch lọc th i gian – r i 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 c a mạch lọc tương tự để thu được đáp ng xung c a mạch lọc số, nghĩa là:
[ ] a( )t nT a( )
Với h[n] là đáp ng xung c a mạch lọc số còn ha(t) là đáp ng xung c a 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( )
Trang 224.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 c a 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
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]=butter(N,Wn) Kết quả:
Trang 23b= 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
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ố c a 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