ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN TỬ VIỄN THÔNG
BÀI TẬP MÔN
Thiết kế lọc số và mã hóa băng con
Người hướng dẫn: Học viên thực hiện:
TS. Ngô Văn Sỹ Phạm Hữu Phương
Lớp: K25.KĐT.ĐN
Đà Nẵng, 12/2012
3.3c) Phân tích biến đổi DTFT của dãy sau vẽ đồ thị biên độ và pha của X(e
ω
j
) sử
dụng MATLAB.
x(n) = n(0.5)
n
u(n)
X(e
ω
j
) = F{ n(0.5)
n
u(n)} =
2
)5.01(
5.0
ω
ω
j
j
z
= -2 +
1
5.01
3
−
− z
h(n)= -2
δ
(n) + 3(0.5)
n
u(n)
ii) Xác định phương trình hiệu của hệ thống
H(z)=
)(
)(
zX
zY
=
5.0
1
−
+
z
z
=
1
1
5.01
1
)
3
(cos1
−−
−
+−
−
zz
z
π
π
, |z|
1〉
X(z) =
21
1
1
5.01
−−
−
+−
−
zz
z
Y(z)= H(z)X(z)=
1
1
5.01
1
−
[R,p,C]=residuez(b,a)
R =
0.5000 - 0.8660i
0.5000 + 0.8660i
p =
0.5000 + 0.8660i
0.5000 - 0.8660i
C =
[]
Y(z)=
13/13/
1
866.05.0
1
866.05.0
−−−
−
+
+
−
−
ze
j
ze
j
jj
ππ
y(n)= (
j866.05.0 −
)e
−
= W
kM
M
−
= (W
k
M
)*
H(z) = (
∑
−
=
−
−
−
−
1
0
1k-
M
W1
)(
)
1
(
M
k
M
z
H
zHkH
M
z
L
k
k
M
Where L=
2
1−M
for M odd, L =
1
2
−
M
for M even, and
2
0.8 , 60
s
w Rp dB
π
= =
1
0.35 , 1
p
w Rp dB
π
= =
2
M
k
kHzkH
π
π
Proof. The sum in (1) can be expressed as (assuming M even)
H(z) =
−
+
+
+
−
+
−
−
∑ ∑
zW
kH
z
MH
zW
kH
z
H
M
z
=
+
+
−
+
−
−
+
−
M
Mk
k
M
M
z
MH
z
H
zW
kMH
zW
kH
M
z
=
+
+
−
+
−
+
−
M
k
k
M
M
k
k
M
M
z
MH
z
H
zW
kH
zW
kH
M
z
=
+
+
−
+
k
M
k
M
k
M
k
M
M
z
MH
z
H
zWzW
zWkHkHzWkHkH
M
z
Consider
11
11
*)(1][1[
)(*)(**))(()(
−−−−
−−−−
−−
−+−
zWzW
zWkHkHzWkHkH
k
M
cos(21
]
2
)(cos[|)(|2)](cos[|)(|2
−−
−
+−
−∠−∠
z
M
k
z
M
k
kHkHzkHkH
π
π
=2|H(k)|H
)(z
k
)(z
k
Which completes the proof.
7) Thiết kế bộ lọc thông dải kiểu FIR bằng phương pháp lấy mẫu tần số :
Bài toán thiết kế:
Cạnh thấp dải chắn:
Cạnh thấp dải thông:
Cạnh cao dải thông:
Cạnh cao dải chắn:
Chúng ta chọn M=40 để chúng ta có 2 mẫu trong dải chuyển tiếp, đưa vào tần số lấy
function [Hr,w,b,L] = Hr_Type2(h);
%
%
M = length(h);
L = M/2;
b = 2*[h(L:-1:1)]; % 1x(L+1) row vector
n = [1:1:L]; n = n-0.5;
w = [0:1:500]'*pi/500;
Hr = cos(w*n)*b';
freqz_m:
function [db,mag,pha,grd,w]=freqz_m(b,a);
% Modified version of freqz subroutine
%
% [db,mag,pha,grd,w]=freqz_m(b,a);
% db=Relative magnitude in dB computed over 0 to pi radians
% mag=absolute magnitude computed over 0 to pi radians
% grd= Group delay over 0 to pi radians
% w=501 frequency samples between 0 to pi radians
% b=numerator polynomial of H(z) (for FIR: a=h)
% a=demonitor polynomial of H(z) (for FIR: a=[1])
%
[H,w]=freqz(b,a,1000,'whole');
H=(H(1:1:501))';w=(w(1:1:501))';
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
grd=grpdelay(b,a,w);
Chương trình chính:
% THIET KE BO LOC FIR THONG DAI SU DUNG PP LAY MAU TAN SO
% Cac thong so cua bo loc:
[0,0.2,0.35,0.65,0.8,1])
set(gca,'YTickMode','manual','YTick',
[0,0.109,0.5941,1]);grid
subplot(2,2,4);plot(w/pi,db); axis([0,1,-100,10]); grid
title('Magnitude response'); xlabel('Frequency in pi unit');
ylabel('Decibel');
set(gca,'XTickMode','Manual','XTick',
[0,0.2,0.35,0.65,0.8,1]);
set(gca,'YTickMode','Manual','YTick',[-60;0]);
set(gca,'YTickLabelMode','manual','YTickLabels',['60';' 0'])
Kết quả chương trình:
7.23
7.22) A digital signal x(n) contains a sinusoid of frenquency
2/
π
and a Gaussian
noise
)(n
ω
of zero mean and unit variance; that is,
x(n) = 2 cos
)(
2
n
n
ω
π
+
We want to filter out the noise component using a 50
th
% Next iteration
Deltaw = Deltaw+0.01*pi;
ws1=wp1-Deltaw; ws2=wp2+Deltaw;
F=[0, ws1, wp1, wp2, ws2, pi]/pi;
h=remez(50,F,m);
[db,mag,pha,grd,w]=freqz_m(h,1);
delta_w = pi/500;
Asd = floor(-max(db([1:floor(ws1/delta_w)]))); % Actual Attn
Asd = 26
% Next iteration
Deltaw = Deltaw+0.01*pi;
ws1=wp1-Deltaw; ws2=wp2+Deltaw;
F=[0, ws1, wp1, wp2, ws2, pi]/pi;
h=remez(50,F,m);
[db,mag,pha,grd,w]=freqz_m(h,1);
delta_w = pi/500;
Asd = floor(-max(db([1:floor(ws1/delta_w)]))), % Actual Attn
Asd =30
Hf_1 = figure('Units','normalized','position',[0.1,0.1,0.8,0.8],'color',[0,0,0]);
set(Hf_1,'NumberTitle','off','Name','P7.22a');
plot(w/pi,db); axis([0,1,-50,0]); title('Log-Magnitude Response in P7.22a');
xlabel('frequency in pi units'); ylabel('DECIBELS')
set(gca,'XTickMode','manual','XTick',[0;ws1/pi;ws2/pi;1],'fontsize',10)
set(gca,'YTickMode','manual','YTick',[-30;0])
set(gca,'YTickLabelMode','manual','YTickLabels',[' 30';' 0 '],'fontsize',10);grid
b) The time-domain response of the filter. MATLAB script:
% (b) Time-domain Response
n = [0:1:200]; x = 2*cos(pi*n/2)+randn(1,201); y = filter(h,1,x);
Hf_2 = figure('Units','normalized','position',[0.1,0.1,0.8,0.8],'color',[0,0,0]);
set(Hf_2,'NumberTitle','off','Name','P7.22b');