PERCOBAAN 7
TRANSFORMASI FOURIER
DISKRIT
Tujuan
Praktikum
- Mahasiswa mampu memahami konsep dasar
transformasi sinyal waktu diskrit
- Mahasiswa dapat menyusun program
simulasinya.
7.1
Teori Dasar
Sebelum kita berbicara tentang transformasi Foureir
Diskrit atau dalam bahasa aslinya disebut sebagai discrete Fourier transform (DFT), marilah kita kembali sejenak
tentang sesuatu yang sudah popular di telinga kita yaitu Fourier transform (FT).
Transformasi Fourier untuk sebuah sinyal waktu kontinyu x(t) secara matematis
dituliskan sebagai
Sementara DFT dibentuk dengan menggantikan integral
berhingga dengan sederetan jumlahan pada suatu nilai berhingga:
Simbol Δ memiliki arti equal by definition atau dalam bahasa yang mudah
bagi kita adalah bahwa sisi kiri secara definisi akan senilai dengan sisi
kanan. Sementara x(tn) selanjutnya akan kita kenal juga sebagai x(n), yang
merupakan notasi sample ke-n pada sinyal input. X(ωk) juga dapat dijumpai
sebagai X(k) yang merupakan spektral sample ke-k.
Parameter lain yaitu:
• jΔ√ −1 = merupakan dasar dari bilangan
komplek.
• ωk = kΩ = merupakan sample frekuensi ke-k. Sedangkan Ω merupakan interval sampling dalam
radian dan memiliki nilai Ω =2π/NT.
radian dan memiliki nilai Ω =2π/NT.
• N =
merupakan sample frekuensi yang digunakan.
• T
= 1/fs = 1/(sampling rate).
Dengan melihat persamaan di atas jelas bagi kita
bahwa DFT memiliki basis sinyal sinusoda dan merupakan bentuk komplek. Sehingga
representasi domain frekuensi yang dihasilkan juga akan memiliki bentuk
komplek. Dengan demikian anda akan melihat adanya bagian real dan imajiner, dan
bisa juga hasil transformasi direpresentasikan dalam bentuk nilai absolute yang
juga dikenal sebagai magnitudo respon frekuensinya dan magnitudo respon fase. Selanjutnya
untuk proses pengolahan sinyal digital, DFT mutlak diperlukan karena kita akan
berhubungan dengan sinyal waktu diskrit, yang merupakan bentuk tersampel dari
sinyal waktu kontinyu. Dan dalam praktikum ini kita akan memanfaatkan bentuk
dasar library fft yang merupakan pengembangan dari algorithma dasar DFT.
Mengapa kita menggunakan fft? Hal ini bisa dijawab dengan anda masuk ke Matlab command like dan ketikkan help fft. Akan
muncul keterangan:
FFT Discrete Fourier
transform.
FFT(X) is the discrete
Fourier transform (DFT) of vector X. For
matrices, the FFT
operation is applied to each column. For N-D
arrays, the FFT
operation operates on the first non-singleton
dimension.
FFT(X,N) is the N-point
FFT, padded with zeros if X has less
than N points and
truncated if it has more.
Cukup jelas bagi kita mengapa kita bisa memanfaatkan
library fft dalam praktikum kali ini.
7.2 Peralatan
- PC multimedia yang sudah
dilengkapi dengan OS Windows
-
Perangkat Lunak Matlab yang dilengkapi dengan Tool Box DSP
7.3 Langkah
Percobaan
Sebelum memasuki bentuk
DFT yang benar-benar representatif dalam pengolahan ke domain frekuensi yang
sebenarnya, kita akan memulai dengan langkah yang paling dasar dengan tujuan
anda akan merasa lebih mudah memahaminya bagaimana sebenarnya konsep DFT
bekeja.
7.3.1 Dasar Pembentukan DFT
Di sini kita mulai dengan
mencoba melihat bentuk transformasi Fourier dari sinyal cosinus yang memiliki
periode eksak didalam window yang terdapat pada sampel. Langkahnya adalah sebagai
berikut:
1. Bangkitkan sinyal sinus x(t) = 3cos(2πt), pada t =
nT. Untuk suatu n = 0~ 99, dan
T=0,01.
%File Name:
dft_1.m
n=0:199;
T=0.01;
x_t=3*cos(2*pi*n*T);
plot(n,x_t)
grid;
2. Untuk sementara anda jangan
memperhatikan apakah sinyal yang muncul sesuai dengan nilai sebenarnya. Biarkan
axis dan ordinatnya masih dalam angka seadanya. Anda ganti bagian perintah plot(n,x_t)
dengan stem(n,x_t). Coba perhatikan apa yang anda dapatkan.
3. Untuk memulai langkah program DFT, kita
mulai dengan membuat program baru, yang mengacu pada bentuk persamaan berikut
ini.
Atau dalam bentuk riel dan imaginer adalah:
%File Name: dft_2.m
clear all;
N=200;
nn=N-1;
for k=1:200;
x_n=0.0;
for n=1:nn
x_n =
(3*cos(0.02*pi*n)).*(exp(-j*k*2*pi*n/200)) + x_n;
end
yR(k)=real(x_n);
yI(k)=imag(x_n);
magni_k(k)=sqrt(real(x_n).*real(x_n)
+imag(x_n).*imag(x_n));
end
figure(1)
stem(yR)
axis([0 200 0 800])
xlabel('indek fekuensi')
title('Bagian Real')
grid;
figure(2)
stem(yI)
axis([0 200 0 800])
xlabel('indek frekuensi')
title('Bagian Imajiner')
grid;
Anda perhatikan ada dua
nilai non-zero dalam domain frekuensi indek, tepatnya pada n=2 dan n=N-2 atau
198, masing-masing bernilai 300. Nilai ini merepresentasikan AN/2, dimana A=3
yang merupakan amplitudo sinyal cosinus dan N = 200 merupakan jumlah sample
yang digunakan. Sementara bagian imajiner bernilai nol semua, mengapa?
Gambar 10.1. Bagian Real
pada Domain Frekuensi
Anda perhatikan ada dua
nilai non-zero dalam domain frekuensi indek, tepatnya pada n=2 dan n=N-2 atau
198, masing-masing bernilai 300. Nilai ini merepresentasikan AN/2, dimana A=3
yang merupakan amplitudo sinyal cosinus dan N = 200 merupakan jumlah sample
yang digunakan. Sementara
bagian imajiner bernilai nol semua, mengapa?
Gambar
10.2. Bagian Imajiner pada Domain
Frekuensi
4. Coba ulangi langkah 1-3 dengan merubah
dari sinyal cosinus menjadi sinyal sinus. Untuk langkah k-1 anda rubah
x_t=3*cos(2*pi*n*T); menjadi x_t=3*sin(2*pi*n*T);
Demikian juga pada untuk langkah ke-3 bentuk
x_n = (3*cos(0.02*pi*n)).*(exp(-j*k*2*pi*n/200))
+ x_n;
menjadi
→ x_n =
(3*sin(0.02*pi*n)).*(exp(-j*k*2*pi*n/200)) + x_n;
Apa yang anda dapatkan?
5. Ulangi langkah 1-3 dengan merubah nilai
sample N=200, menjadi N=1000. Apa yang anda dapatkan?
7.3.2 Zero Padding
Kita mulai dengan sebuah sinyal waktu
diskrit berupa sekuen unit step.
Gambar
10.3. Sekuen Unit Step
Apabila
kita menggunakan transformasi Fourier pada sinyal ini, akan diperoleh bentuk
seperti berikut:
Gambar
10.4. Transformasi Fourier Sekuen
Unit
Untuk memahami konsep zero padding pada DFT, anda ikuti langkah-langkah percobaan berikut ini.
1. Buat program baru untuk pembangkitan
sekuen unit step dan gunakan juga fft untuk memperoleh
nilai DFT.
nilai DFT.
2. Modifikasi program anda dengan
menambahkan nilai nol sebanyak 4 angka di belakang sekuen
bernilai satu tersebut.
bernilai satu tersebut.
3. Modifikasi program anda sehingga nilai
nol dibelakang sekuen unit step menjadi 12, catat apa yang
terjadi.
terjadi.
4. Lanjutkan penambahan nilai nol menjadi
16, dan catat apa yang terjadi.
Gambar 10.5. Sekuen Unit Step dan Hasil DFT
7.3.3 Representasi Dalam Domain Frekuensi
Cara yang paling mudah dalam menguji program
transformasi ke domain frekuensi adalah dengan menggunakan sinyal bernada
tunggal, yaitu sinyal dengan fungsi dasar sinusoida. Untuk itu coba anda
perhatikan dengan yang telah anda lakukan pada percobaan ke-1, yaitu pada
pemahaman dasar DFT. Disitu sinyal cosinus yang ditransformasikan menghasilkan
bentuk dalam tampilan indek frekuensi. Dengan mengkobinasikan percobaan ke-1
dan percobaan ke-2 kita akan mampu menyusun sebuah program DFT yang mampu digunakan
untuk pengamatan sinyal waktu diskrit dan melihat tampilannya dalam domain frekuensi.
Untuk itu ikuti langkah berikut.
1. Susun sebuah program baru dengan
algorithma yang merupakan kombinasi dari percobaan ke-1
dan percobaan ke-2.
dan percobaan ke-2.
%prak_SS_7_2.m
% zero-padded
data:
clear all
T = 128; % sampling rate
zpf = 2; % zero-padding factor
n =
0:1/T:(T-1)/T; % discrete time axis
fi = 5; %
frequency
xw =
[sin(2*pi*n*fi),zeros(1,(zpf-1)*T)];
nn=length(xw);
k=0:nn-1;
% Plot time data:
subplot(2,1,1);
plot(zpf*k/nn,xw);%normalisasi absis domain waktu
axis([0 zpf -1.1 1.1])
xlabel('domain waktu (detik)')
% Smoothed, interpolated spectrum:
X = fft(xw);
spec = abs(X);
f_X=length(X)
f=0:f_X-1;
% Plot spectral magnitude:
subplot(2,1,2);
plot(f/T,spec);
axis([0 T/T 0 100])
xlabel('domain frekuensi (x pi), ternormalisasi terhadap
frekuensi sampling')
Gambar 10.6. Sinyal Sinus dalam Domain Waktu dan Hasil DFT
2. Lakukan
beberapa modifikasi, sehingga tampilannya nilai frekuensi dalam Hz.
% Plot spectral magnitude:
subplot(2,1,2);
plot(f/2,spec);
axis([0 T/2 0 100])
xlabel('domain frekuensi')
Amati dan catat hasilnya.
3.
Lakukan modifikasi kembali untuk mendapatkan nilai magnitudo dalam besaran dB
% Plot spectral magnitude:
subplot(2,1,2);
plot(f/2,spec);
axis([0 T/2 0 40])
xlabel('domain frekuensi
dalam dB')
grid
Amati dan catat hasilnya
4.
Sekarang coba bangkitkan sebuah sinyal sinus dan dapatkan nilai frekuensinya
dengan memanfaat-
kan DFT. Dimana sinyal sinus ini memiliki bentuk dasar sebagai berikut.
kan DFT. Dimana sinyal sinus ini memiliki bentuk dasar sebagai berikut.
x(n) = (1/64)*(sin(2*π*n/64)+ (1/3)*sin(2*π∗15*n/64))
7.4 Analisis Data
Dari apa yang telah anda
lakukan anda catat hasilnya, analisis. Kemudian tunjukkan, pengetahuan apa yang
telah anda dapatkan setelah melakukan percobaan DFT di atas. Beri contoh
memanfaatkan DFT.
7.5 Tugas
1. Apa yang dimaksud dengan zero padding?
2. Apa
pengaruh perbedaan nilai zero padding pada tampilan sinyal dalam domain frekuensi?
3. Berapa
sample yang dipersyaratkan dalam operasi DFT?
4. Apa
perbedaan tampilan nilai frekuensi dalam radiant dan tampilan frekuensi dalam
Hz?
5. Apa
yang dimaksud tampilan nilai magnitudo dalam dB?
6. Sebuah system LSI ditunjukkan dengan system
LCCDE.
Y(n) = 0,5(n-1) + bx(n)
Tentukan nilai dari b sehingga |H(ejω)| adalah sama dengan satu pada ω = 0, dan
tentukan titik setengah daya ( yaitu frekuensi pada |H(ejω)|2 adalah sama dengan satu setengah dari nilai
puncaknya, yang mana terjadi pada ω = 0.
7. Jika
suatu system didefinisikan dengan persamaan diferensial:
y(n) = ay(n-1) + bx(n) + x(n-1)
Dimana a dan b adalah tiel, dan |a|<1. Tentukan
hubungan antara a dan b yang harus terjadi jika tanggapan frekuensi harus
mempunyai magnitude konstan untuk semua ω, yaitu:
|H(ejω)| = 1
Tidak ada komentar:
Posting Komentar