Anda di halaman 1dari 4

Percobaan II

Fungsi Transfer
Gomgom Silalahi (14S16048)
Tanggal Percobaan : 08/11/2018
[EL3104] [Praktikum Pengolahan Sinyal Digital]
[Lab Sinyal Digital] – Teknik Elektro
Institut Teknologi Del

Dari impulse response dapat dihitung dan diperoleh nilai


dari magnitude (in dB) dan phase (in °) spectra dari filter
I. HASIL DAN ANALISIS dengan fft, abs, dan funsi angle dengan code sebgai
A. Respon Filter dan Pole/Zero Persamaan I/O berikut :
Diberikan sebuah filter persamaan orde dua dengan fft_result = fft(output); %Fourier
persamaan sebagai berikut : transform
𝑦(𝑛) = 1.5𝑦(𝑛 − 1) − 0.9𝑦(𝑛 − 2) + 𝑥(𝑛) abs_result = abs(fft_result); %Absolute
+ 0.7(𝑛 − 1) + 0.6𝑥(𝑛 − 2) value
angleInRadians = angle(fft_result);
%Angle in radians
𝑦(𝑛) − 1.5𝑦(𝑛 − 1) + 0.9𝑦(𝑛 − 2)
dB = 20*log10(abs_result); %Conversion
= 𝑥(𝑛) + 0.7(𝑛 − 1) + 0.6𝑥(𝑛 − 2)
to decibel
angleInDegrees =
𝑌(𝑧) − 1.5𝑌(𝑍)𝑧1 + 0.9𝑌(𝑧)𝑧 2 radtodeg(angleInRadians); %Angle in
= 𝑋(𝑧) + 0.7𝑋(𝑧)𝑧1 + 0.6𝑋(𝑧)𝑧 2 degrees
𝑌(𝑧)(1 − 1.5𝑧1 + 0.9𝑧 2 ) = 𝑋(𝑧)(1 + 0.7𝑧1 + 0.6𝑧 2 )
Maka diperoleh plot pola pole/zero sebagai berikut :
−1 −2
𝑌(𝑧) (1 + 0.7𝑧 + 0.6𝑧 )
=
𝑋(𝑧) (1 − 1.5𝑧 −1 + 0.9𝑧 −2 )
a = [1 -1.5 0.9]
b = [1 0.7 0.6]

Maka diperoleh fungsi transfer dari filter persamaan orde


dua .
Kemudian dari koefisien fungsi transfer tersebut,
diperoleh perhitungan seratus sample pertama dari
response impulse dengan code sebagai berikut :
close all; clear all;
fs = 10e3; %sampling frequency
L = 100; %input length
y = zeros(L,1); %output signal
initialization
a = [1 -1.5 0.9]; %denominator Dari plot diatas terjadi resonansi pada plot Impulse
coefficients Response tetapi resonansi tersebut semakin lama semakin
w = zeros(length(a),1); %deno internal mengecil . Pada plot Magnitude spectrum nilai fungsi
states H(w) memiliki nilai puncak pada n=0,9 kemudian nilai
b = [1 0.7 0.6]; %numerator coefficients minimal pada n=2 . Pada plot/zero system yang diperoleh
v = zeros(length(b),1);
x = eye(1,100);
adalah stabil. Pada plot phase spectrum nilai fungsi
output = filter(a,b,x); menurun pada nilai w=0,5 tetapi naik pada w=2 .
Kemudian kode program dari fungsi transfer diubah subplot(2,2,4)
dengan mengubah koefisien a1 = 1.9 . plot(linspace(0,2*pi,100),angleInDegrees
Maka code yang diperoleh menjadi : ); axis square;
close all; clear all; axis([0 pi -200 200]);
fs = 10e3; %sampling frequency xlabel('w[rad]');ylabel('Arg[degrees]');
L = 100; %input length title('Phase Spectrum');
y = zeros(L,1); %output signal
initialization
a = [1 -1.9 0.9]; %denominator
coefficients
w = zeros(length(a),1); %deno internal
Kemudian diperoleh plot pola pole/zero sebagai berikut :
states
b = [1 0.7 0.6]; %numerator coefficients
v = zeros(length(b),1);
x = eye(1,100);
output = filter(a,b,x);

fft_result = fft(output); %Fourier


transform
abs_result = abs(fft_result); %Absolute
value
angleInRadians = angle(fft_result);
%Angle in radians
dB = 20*log10(abs_result); %Conversion
to decibel
angleInDegrees =
radtodeg(angleInRadians); %Angle in
degrees
ANALISIS :
%Impulse response Dari hasil plot yang diperoleh bias dilihat bahwa pada impulse
figure; response diperoleh hasil yang pada kira-kira n = 0 – 25 terjadi
subplot(2,2,1) resonansi pada fungsi h(n) kemudian resonansi tersebut
plot(output); axis square; semakin lama semakin mengecil sehingga pada n>25 nilai pada
axis([0 100 min(output) max(output)]); h(n) stabil pada nilai 0 . Pada Magnitude spectrum digunakan
xlabel('\itn'); ylabel('\ith(n)'); nilai w dari 0 -3 kemudian nilai tersebut dimasukkan kedalam
title('Impulse response'); fungsi H(w) kemudian plot yang diperoleh adalah naik sampai
20 dB , kemudiaan menurun dengan puncak pada 20 dB . Pada
%Magnitude response plot Pole/zero diperoleh system tidak stabil karena nilai yang
subplot(2,2,2) diperoleh berada pada luar lingkaran.
plot(linspace(0,2*pi,100),dB); axis
square; B. Desain Pole/Zero High Pass Filter (HPF)
axis([0 pi -40 40]); Pada tugas kedua ini dimisalkan sebuah filter HPF orde
xlabel('w[rad])');ylabel('H(w)[dB]');tit pertama dengan persamaan sebagai berikut:
le('Magnitude spectrum'); 𝐺(1 − 𝑏𝑧 −1 )
𝐻(𝑧) =
1 + 𝑎𝑧 −1
%Pole-Zero Pattern Dari fungsi H(z) dapat diperoleh nilai dari respon
subplot(2,2,3)
frekuensi dimana w adalah frekuensi digital :
n=[0:100]/100;
circle = exp(2*pi*j*n); 1 − 𝑏𝑒 −𝑗𝑤
𝐻(𝑤) = 𝐺
plot(circle,'r'); 1 − 𝑎𝑒 −𝑗𝑤
hold on; Kemudian dari respon frekuensi berikut dapat diperoleh
plot(roots(b),'o'); juga atenuasi A sebagai fungsi dari nilai a dan b yaitu :
plot(roots(a),'x');
title('Pole/zero pattern');
axis([-2 2 -2 2]); 𝐻(0)
axis square; 𝐴=
grid; 𝐻(𝜋)

%Phase Spectrum
1 − 𝑏(𝑐𝑜𝑠0 − 𝑗𝑠𝑖𝑛0) 1−𝑏 Lalu uji fungsi dengan nilai masukan parameter {𝑨𝒅𝑩 = −𝟐𝟎
𝐻(0) = 𝐺 =𝐺
1 + 𝑎(𝑐𝑜𝑠0 − 𝑗𝑠𝑖𝑛0) 1+𝑎 𝒅𝑩, 𝜼𝒆𝒇𝒇 = [𝟏𝟎 𝟐𝟎 𝟑𝟎], 𝜺 = 𝟏%} dengan code :
function [b,a,G] =
1 − 𝑏(𝑐𝑜𝑠𝜋 − 𝑗𝑠𝑖𝑛𝜋) 1+𝑏 HighPassFilter_NU(AdB,inputVals,epsilon)
𝐻(𝜋) = 𝐺 =𝐺 for m=1:3
1 + 𝑎(𝑐𝑜𝑠𝜋 − 𝑗𝑠𝑖𝑛𝜋) 1−𝑎
nEff = inputVals(m);
1−𝑏 A = 10.^(AdB./20);
1−𝑏 1−𝑎 a = epsilon.^(1./nEff);
𝐴 =𝐺 1+𝑏 = × b = (1-A-a.*(1+A))./(1+A-a.*(1-A));
1+𝑏 1+𝑏 1+𝑎
1−𝑏 G = (1-a)./(1+b);
w = linspace(0,2.*pi,1000);
Didapat juga koefisien b sebagai fungsi dari A dan a yaitu : H = G.*(1-b.*exp(-1j.*w))./(1+a.*exp(-
1 − 𝐴 − 𝑎(1 + 𝐴) 1j.*w));
𝑏 = abs_output = abs(H);
1 + 𝐴 − 𝑎(1 − 𝐴)
Serta sebagai fungsi 𝜺 dan 𝜼𝒆𝒇𝒇 yaitu : dB = 20.*log10(abs_output);
𝑙𝑛 ∈ 1 subplot(2,2,m)
𝑛𝑒𝑓𝑓 = ; 𝑎 = ∈𝑛𝑒𝑓𝑓 plot(w, dB); axis square;
𝑙𝑛𝑎
axis([0 2.*pi -20 0]);
Dan factor gain dari G sebagai fungsi dari a dan b adalah : xlabel('Angle, w');
1−𝑏 1−𝑎 ylabel('Magnitude spectra, H(w)');
𝐻(𝜋) = 1; 𝐺 = 1; 𝐺 title(['Magnitude spectra on nEff ='
1−𝑎 1+𝑏 num2str(nEff)]);
Dari setiap fungsi yang didapat mengimplementasikan hold on
end
filter,dengan mengambil nilai {𝑨𝒅𝑩, 𝜼𝒆𝒇𝒇, 𝜺 } dan {𝒃, 𝒂, 𝑮}
sebagai parameter luaran dan diperoleh code :
function [b,a,G] =
HighPassFilter1_NU(AdB,nEff,epsilon) AdB = -20;
A = 10.^(AdB./20); epsilon = 0.01;
a = epsilon.^(1./nEff); inputVals = [10 20 30];
b = (1-A-a.*(1+A))./(1+A-a.*(1-A)); HighPassFilter2_NU(AdB,inputVals,epsilon
G = (1-a)./(1+b); )
w = linspace(0,2.*pi,1000);
H = G.*(1-b.*exp(-1j.*w))./(1+a.*exp(-
1j.*w)); Dan diperoleh plot gambar :
abs_output = abs(H);
dB = 20.*log10(abs_output);
plot(w, dB); axis square;
axis([0 2.*pi -20 0]);
xlabel('Angle, w');
ylabel('Magnitude spectra, H(w)');
title('Magnitude spectra on nEff');
hold on
end

Diperoleh plot gambar :

ANALISIS :
Karena Neff meningkat , a menjadi turun secara eksponensial ,
dan karena A menurun , nilai dari H(w) juga menurun. Namun
untuk menjaga nilai H(w) pada range yang tetap, nilai dari w
harus diperkecil. Analisis ini dapat dibuktikan dalam plot
gambar
Diperoleh plot gambar :
C. Filter Resonator
Diberikan filter resonator ternormalisasi :

a. Ekspresikan koefisien filter (𝐺, 𝑎1, 𝑎2) dalam


parameter frekuensi sampling 𝑓s , frekuensi puncak 𝑓0
dan lebar frekuensi Δ𝑓 sebagai parameter masukan.
2𝜋∆𝑓 2𝜋𝑓0
. ∆𝑤 = 𝑎𝑛𝑑 𝑤𝑜 =
𝑓𝑠 𝑓𝑠
𝜋∆𝑓 2𝜋∆𝑓 4𝜋𝑓0 𝜋∆𝑓 2
𝐺= √1 + ( − 2) 𝑐𝑜𝑠 + (1 − )
𝑓𝑠 𝑓𝑠 𝑓𝑠 𝑓𝑠
𝜋∆𝑓 2𝜋𝑓0
𝑎1 = −2(1 − )𝑐𝑜𝑠
𝑓𝑠 𝑓𝑠
𝜋∆𝑓 2
𝑎2 = (1 − )
𝑓𝑠
b. Tuliskan sebuah fungsi MATLAB ResonatorFilter_NU,
yang akan menghasilkan koefisien filter 𝑓s, 𝑓0dan Δ𝑓
sebagai parameter masukan.
function ResonatorFilter_NU(fs, f0, df)
a1 = -2.*(1-
pi.*df./fs).*cos(2.*pi.*f0./fs);
a2 = (1 - pi.*df./fs).^2;
G = (pi.*df./fs).*sqrt(1+(2.*pi.*df./fs-
2).*cos(4.*pi.*f0./fs)+(1-
pi.*df./fs).^2);
disp(a1);
disp(a2);
disp(G);
f = 0:15*10.^6;
H = G./(1 + a1.*exp(-1j.*2.*pi.*f) +
a2.*exp(-2j.*2.*pi.*f));
HdB=mag2db(abs(H));
plot(f, HdB);
xlabel('Frequency, Hz');
ylabel('Magnitude spectrum H(w), dB');
title('The filter frequency response');

c. Ujilah fungsi anda dengan 𝑓s = 30 𝑀𝐻𝑧; 𝑓0=2 MHz; Δ𝑓 =


0.5 𝑀𝐻𝑧. Plotlah respon frekuensi filter (spectrum magnitude
dalam dB) untuk rentang: 0 ≤ 𝑓 ≤ 15 𝑀𝐻𝑧.
fs = 30*10^6;
f0 = 2*10^6;
df = 0.5*10^6;
>>ResonatorFilter_NU

Anda mungkin juga menyukai