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 2014LI 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
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
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.
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
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
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.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 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
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)
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
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
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
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
[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
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;
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
x
+
delay
x
+
delay
x
x
x
+
+