LAPORAN PROJECT PENGOLAHAN SINYAL DIGITAL FOURIER ANALYSIS
LAPORAN PROJECT PENGOLAHAN SINYAL DIGITAL FOURIER ANALYSIS
BAB I
PENDAHULUAN
Sinyal adalah sesuatu yang membawa informasi. Setiapa sinyal yang tidak membawa informasi digolongkan sebagai noise. Salah satu informasi penting dalam sebuah sinyal adalah frekuensinya.
Sinyal yang memiliki lebih dari 1 frekuensi akan memberikan kesulitan tersendiri untuk mengetahui frekuensi berapa saja yang ada dalam sinyal tersebut. Oleh karena itu, pengolahan sinyal dalam domain waktu biasanya tidak cukup dan kita memerlukan pengolahan sinyal dalam domain frekuensi.
Perhatikan sinyal pada gambar diatas. Sebenarnya kita sudah bisa menghitung periode dari sinyal yang ditampilkan. Tetapi apabila kita diminta untuk mengidentifikasi frekuensi berapa saja yang ada dalam sinyal tersebut, maka kita akan kesulitan.
Gambar 1.1 Sinyal dalam domain waktu
Gambar 1.2 Sinyal dalam domain frekuensi
Gambar pertama adalah penjumlahan 10 sinyal sinusoid dengan amplitude yang sama, tetapi frekuensinya kelipatan 50 Hz. Gambar kedua merupakan bentuk penampilan gambar pertama jika ditunjukkan dalam domain frekuensi. Gambar kedua dapat dilihat dengan simulasi yang disebut spectrum analyzer. Secara umum, sinyal sinusoid adalah sinyal standar. Hal ini tampak dari bentuk umum fungsinya yang bisa dipergunakan untuk menyatakan semua sinyal sinusoid. Hal ini membuat proses analisis sebuah sinyal menjadi lebih mudah karena sinyal seperti ini sudah dikenali. Menurut Fourier, kita bisa menyatakan setiap sinyal sebagai penjumlahan sinusoid yang frekuensinya merupakan kelipatan frekuensi dasarnya. Apabila pernyataan ini dibalik, maka kita bisa mengatakan bahwa setiap sinyal dapat dipecah pecah menjadi sinyal sinusoid yang apabila dijumlahkan akan membentuk sinyal semula. Dengan demikian, sinyal membawa informasi sinyal lain yang tersembunyi apabila dilihat dalam domain waktu.
1. 1 Sejarah
Jean Baptise Joseph Fourier dilahirkan pada 21 Maret 1768 di Auxerre, Perancis. Dia adalah seorang ahli matematika dan fisika. Fourier melakukan berbagai macam percobaan yang berhubungan dengan pembatas panas. Ia hidup pada zaman revolusi Perancis yang terkenal di bawah Napoleon Bonaparte. Fourier meninggal pada 16 Mei 1830. Pada tahun 1822, ia mempublikasikan Theorie analytique de la chaleur. Dalam hasil karyanya ini, ia mengatakan bahwa setiap fungsi, baik itu diskrit maupun kontinyu, dapat dinyatakan sebagai penjumlahan sinyal sinusoid. Saat itu, tidak ada
orang yang menerima hasil temuannya. Peter Gustav Dirichley, seorang ahli matematika berkebangsaan Jerman melakukan penelitian lebih lanjut pada hasil kerja Fourier dan memberikan beberapa syarat untuk mengaplikasikan teori Fourier. Selanjutnya, teori dinamakan deret Fourier dan integral Fourier, atas jasa Jean Baptise Joseph Fourier.
1. 2 Analisis Fourier
Analisis Fourier mempelajari berbagai teknik untuk menganalisis sebuah fungsi dengan menguraikannya sebagai deret atau integral fungsi tertentu (yang sifat-sifatnya telah kita kenal dengan baik, seperti fungsi polinom atau fungsi trigonometri). Analisis Fourier merupakan alat yang ampuh untuk memecahkan berbagai masalah, khususnya masalah yang berbentuk persamaan diferensial parsial yang muncul dalam sains dan ilmu rekayasa, dan tentunya untuk menganalisis signal seperti signal suara dan citra. Berikut adalah gambar yang menunjukkan diagram analisis Fourier.
Gambar 1.3 Diagram analisis Fourier
1. 3 Transformasi Fourier
Pembahasan deret Fourier dibatasi pada sinyal periodic. Bagaimana mengunakan analisis Fourier untuk sinyal yang tidak periodic? Jenis sinyal ini diproses dengan menggunakan transformasi Fourier. Transformasi Fourier merupakan bentuk umum analisis Fourier sehingga kita bisa menggunakannya untuk sinyal periodic juga. Transformasi Fourier digunakan untuk menguraikan sinyal domain waktu menjadi komponen-komponen frekuensi yang masing-masing memiliki amplitudo dan fase. Menggunakan transformasi Fourier invers sinyal time series dapat direkonstruksi dari representasi frekuensi-domainnya.
Transformasi Fourier adalah salah satu konsep yang paling penting dalam pemrosesan sinyal digital dan tidak hanya digunakan untuk memperkirakan distribusi spektral sinyal dalam domain frekuensi (spektrum kekuasaan). Transformasi Fourier juga merupakan dasar dari analisis koherensi dan jenis tertentu yang disebut sinyal pengganti. Akhirnya, transformasi Fourier diimplementasikan di banyak DSP (Digital Signal Processing) rutinitas karena setiap operasi matematika dalam domain waktu memiliki operasi setara dalam domain frekuensi yang sering komputasi lebih cepat. Dengan demikian, transformasi Fourier kadang-kadang dilaksanakan semata-mata untuk mempercepat algoritma. Menggunakan inverse Fourier transformasi, sinyal domain waktu direkonstruksi dari representasi domain frekuensi.
Transformasi dipergunakan untuk menyederhanakan analisis sinyal dan sistem. Jika seseorang mendapati bahwa analisis dalam domain waktu sulit dilakukan, maka sebaiknya dicoba untuk menganalisis dalam domain yang lain. Perpindahan domain ini disebut dengan transformasi. Apabila kita meminjam domain lain untuk melakukan analisis, maka hasil akhirnya harus dikembalikan ke domain semula.
1. 4 MATLAB
MATLAB adalah singkatan dari Matrix Laboratory. MATLAB merupakan aplikasi yang banyak digunakan dalam lingkungan komputasi teknik untuk perhitungan numeric dan visualisasi yang menuntut kinerja tinggi. MATLAB mengintegrasikan anilisis numeric, perhitungan matriks, serta pemrosesan sinyal dan grafis dalam penggunaan yang mudah, dimana masalah dan solusi dinyatakan dengan apa yang tertulis secara matematis, tanpa pemograman tradisional. MATLAB memungkinkan kita untuk mengekspresikan seluruh algoritma dalam beberapa baris untuk memecahkan solusi dengan tingkat akurasi yang tinggi hanya dalam beberapa menit, serta dapat dengan mudah memanipulasi tampilan 3D dalam beragam warna.
Gambar 1.4 Tampilan jendela MATLAB
MATLAB telah berkembang menjadi sebuah environment pemrograman yang canggih yang berisi fungsi-fungsi built-in untuk melakukan tugas pengolahan sinyal, aljabar linier, dan kalkulasi matematis lainnya. MATLAB juga berisi toolbox yang berisi fungsifungsi tambahan untuk aplikasi khusus . Di dalam toolbox tersedia fiturefiture yang biasa digunakan untuk pengolahan sinyal, pengolahan gambar, design sistem control, sitem simulasi dinamis, sistem identifikasi, jaringan syaraf, komunikasi panjang gelombang, dan lain lain. MATLAB juga bisa digunakan untuk menangani sistem linier, non-linier, waktu kontinu, diskrit-waktu, multivariable dan sistem multirate. MATLAB bersifat extensible, dalam arti bahwa seorang pengguna dapat menulis fungsi baru untuk ditambahkan pada library ketika fungsi-fungsi built-in yang tersedia tidak dapat melakukan tugas tertentu. Kemampuan pemrograman yang dibutuhkan tidak terlalu sulit bila Anda telah memilikin pengalaman dalam pemrograman bahasa lain seperti C, PASCAL, atau FORTRAN.
BAB II
PEMBAHASAN
2. 1 Discrete Fourier Transform (DFT)
Istilah ini sengaja dipertahankan dalam bahasa Inggris karena sudah menjadi istilah standar. Ide dasar dibalik DFT adalah mendiskritkan pengintegralan dengan penjumlahan. Dengan demikian, computer melakukan diskritisasi, sehingga dinamakan Discrete Fourier Transform. Dalam laporan ini akan dibahas rumus untuk menghitung transformasi Fourier diskrit (DFT) dan numerik mempelajari DFT pada sinyal pendek (hanya beberapa sampel) untuk melacak pada indeks dalam rumus FT (yang kebanyakan orang menganggap rumit dan abstrak ketika bekerja dengan sinyal panjang). Satu "masalah" besar pada time series adalah bahwa kita akan mendapatkan sampel data dalam domain
waktu.
Algoritma yang digunakan untuk mengubah sampel data dari domain waktu ke domain frekuensi dan menghasilkan nilai magnitude disebut Discrete Fourier Transform (DFT). DFT menstabilkan hubungan antara sample – sample signal domain waktu dan merepresentasikan ke domain frekuensi. DFT biasa digunakan dalam analisis spectral, diaplikasikan dalam mekanik, pencitraan medis, analisa angka, instrumentasi, dan telekomunikasi.
Ada banyak cara Discrete Fourier Transform (DFT) muncul dalam praktek, tetapi pada umumnya digunakan untuk sinyal periodik. Angka-angka tersebut muncul, misalnya, sebagai nilai-nilai sample diskrit dari fungsi sample analog selama beberapa periode dan kemudian diperpanjang secara berkala. Angka tersebut juga muncul sebagai seperangkat nilai diskrit dari pengukuran dalam sebuah percobaan dengan asumsi bahwa percobaan diperpanjang secara berkala. Dalam kasus apapun, urutan dari DFT adalah urutan periodik baru dan berhubungan dengan urutan asli melalui Iinverse DFT yang dapat mengubah mirip dengan Inverse Fourier Transform. DFT sangat berguna dalam analisis spektral dari kedua seri Fourier dan transformasi Fourier. Misalkan terdapat sinyal sampel x (n), maka notasi Discrete Fourier Transform (DFT) adalah:
Di mana k = 0, 1, 2,…, N-1.
Besarnya X(k) [yaitu nilai absolut] terhadap k disebut spektrum x(n).
Di mana n = 0, 1, 2,…, N-1.
Nilai-nilai k sebanding dengan frekuensi sinyal menurut:
Di mana adalah frekuensi sampling.
Dengan asumsi x adalah sampel dari sinyal dengan panjang N, maka program Matlab sederhana untuk melakukan penjumlahan di atas adalah sebagai berikut:
n=[0:1:N-1];
k=[0:1:N-1];
WN=exp(-j*2*pi/N);
nk=n'*k;
WNnk=WN .^ nk;
Xk=x * WNnk;
Inverse DFT didefinisikan sebagai:
Sebuah program Matlab sederhana untuk melakukan inverse DFT dapat ditulis sebagai berikut:
n=[0:1:N-1];
k=[0:1:N-1];
WN=exp(-j*2*pi/N);
nk=n'*k;
WNnk=WN .^ (-nk);
x=(Xk * WNnk)/N;
Gambar dibawah ini merupakan contoh sederhana dari proses DFT dimana sampel data dari domain waktu ke-n diubah menjadi domain frekuensi dan menghasilkan nilai magnitude.
Gambar 2.1 DFT menggunakan MATLAB
Program MATLAB:
F=150;
Fs=1000; %Sampling frequency
nT=0:1/Fs:1;
n=0:length(nT)-1;
r=sin(2*pi*F*nT);
U=abs(fft(r));
frek=(0:length(U)-1)/length(U).*Fs; %determine x axis
figure;subplot(2,1,1); % Start plotting the signal
stem(n,r);
xlabel('n');
ylabel('amplitude');
title('Sinyal diskrit');
subplot(2,1,2); % Start plotting the signal
stem(frek,U);
xlabel('Frekuensi');
ylabel('|X(F/Fs)|');
title('Spektrum Frekuensi Sinyal Diskrit');
Contoh Soal 2-1. Gunakan x(n) = {1,1,1,1}, dan N = 4, tentukan DFT!
Plot Magnitude dan fase DFT! Gunakan IDFT untuk mentransfer hasil DFT (yaitu urutan Xk) ke urutan aslinya.
Program MATLAB:
N=4;
n=[0:1:N-1]; % row vector
k=[0:1:N-1]; % row vector
x=ones(1,4); % Generate x = [ 1 1 1 1 1 1]
subplot(2,2,1); % Start plotting the signal
stem(k,x);
xlabel(' k ');
ylabel(' Amplitude ');
title('Original signal');
WN=exp(-j*2*pi/N);
nk=n'*k; % Generate N by N matrix of nk values
WNnk=WN.^(nk);
Xk=x*WNnk; % Determine DFT by multiplying signal x[n] with WNnk
subplot(2,2,2); % Start plotting the signal
stem(k,abs(Xk)); % Magnitude response
xlabel(' k ');
ylabel(' Amplitude ');
title('Magnitude response');
ph=angle(Xk);
subplot(2,2,3); % Start plotting the signal
stem(k,ph); % Phase response
xlabel(' k ');
ylabel(' Radians ');
title('Phase response ');
WNnk1=WN.^(-nk);
x1=(Xk*WNnk1)/N; % Determine IDFT by multiplying sequence with X[k]
% and dividing it by N
subplot(2,2,4); % Start plotting the signal
stem(k,x1);
xlabel(' k ');
ylabel(' Amplitude ');
title('Inverse DFT');
Gambar 2.2 DFT dan IDFT
2. 2 Aplikasi
Dalam point sebelumnya telah dibahas tentang definisi, formula, serta simulasi Discrete Fourier Transform (DFT) menggunakan aplikasi MATLAB. Aplikasi MATLAB tersebut di atas juga telah menunjukkan bagaimana proses DFT dapat mengubah sinyal dalam domain waktu ke dalam domain frekuensi. Point selanjutnya akan dibahas bagaimana DFT diaplikasikan dalam pengolahan sinyal digital, yaitu: analisis spectral sinyal, analisis spectral lanjut, serta penggunaan DFT pada Notch
Filter.
2. 2. 1 Analisis Spektral Sinyal
Sinyal adalah representasi data yang berbentuk gelombang elektromagnetik. Sedangkan spektrum merupakan jarak rentang frekuensi dimana sinyal berada. Untuk menghitung frekuensi dari suatu sinyal, sebuah implementasi diskrit dari analisa Fourier dapat digunakan, yaitu kemudian lebih dikenal sebagai Fast Fourier Transform (FFT). Secara umum teknik ini merupakan pendekatan yang terbaik untuk transformasi. Dalam hal ini input sinyal ke window ditetapkan memiliki panjang Kita dapat memilih analisis windowing mana yang akan digunakan. Output dari syntax FFT(x,n) merupakan sebuah vector kompleks dengan n amplitude kompleks dari 0 Hz sampai dengan sampling frekuensi yang digunakan. Seringkali kita menginginkan untuk menganalisa suatu sinyal yang panjang dengan cara mengambil satu bagian yang cukup mewakili. Hal ini lebih kita kenal sebagai proses windowing. Windowing merupakan suatu fungsi yang berfungsi untuk mengalikan sinyal terpotong yang discontinue dengan fungsi window agar menjadi sinyal continue. Windowing diperlukan untuk mengurangi efek diskontinuitas dari potongan – potongan sinyal. Ada beberapa jenis dari windowing itu sendiri, yaitu:
Hamming, Hanning, Bartlet, Rectangular, dan Blackman.
Contoh Soal 2-2. Misalkan ( ) ( ) di mana 30Hz, dengan asumsi frekuensi sample = 128 Hz dan N = 256 sampel, dapatkan FFT dengan windowing sinyal menggunakan Rectangular dan Hamming Window, zero padding untuk = 1024. Plot besarnya normalisasi FFT dari windowed signals. Windowed sinyal manakah yang memiliki mainlobe yang lebih sempit?
Program Matlab:
f1=30; % Signal frequency
fs=128; % Sampling frequency
N=256; % Number of samples
N1=1024; % Number of FFT points
n=0:N-1; % Index n
f=(0:N1-1)*fs/N1; % Defining the frequency points [axis]
x=cos(2*pi*f1*n/fs); % Generate the signal
XR=abs(fft(x,N1)) % Find the magnitude of the FFT using No
% windowing (1. e. Rectangular window)
xh=hamming(N); % Define the hamming samples
xw=x .* xh'; % Window the signal
XH=abs(fft(xw,N1)); % Find the magnitude of the FFT of the windowed signal
subplot(2,1,1); % Start plotting the signal
plot(f(1:N1/2),20*log10(XR(1:N1/2)/max(XR)));
title('Spectrum of x(t) using Rectangular Windows');
grid;
xlabel('Frequency, Hz');
ylabel('Normalised Magnitude, [dB]');
subplot(2,1,2); % Start plotting the signal
plot(f(1:N1/2),20*log10(XH(1:N1/2)/max(XH)));
title('Spectrum of x(t) using Hamming Windows');
grid;
xlabel('Frequency, Hz');
ylabel('Normalised Magnitude, [dB]');
Gambar 2.3 Output program contoh soal 2-2
Dari proses windowing menggunakan Matlab diatas dapat dilihat bahwa plot spektrum sinyal baik menggunakan Rectangular Window maupun Hamming Window memiliki amplitudo puncak yang sama, yaitu sebesar f = 30Hz sesuai dengan frekuensi sinyal. Sementara Rectangular Window memiliki mainlobe sempit, Hamming Window memberikan sidelobes puncak kurang dari Rectangular Window.
2. 2. 2 Analisis Spektral Lanjut
Spektrum sinyal hanyalah sebuah plot besarnya komponen sinyal terhadap frekuensi yang sesuai. Sebagai contoh jika sinyal terdiri dari dua sinusoidal pada 120Hz dan 60Hz, maka idealnya spektrum akan plot besarnya vs frekuensi dan akan berisi dua puncak, yaitu: satu di 60 Hz dan yang lainnya di 120 Hz diilustrasikan dalam contoh berikut.
Dalam contoh berikut, kita menggambarkan penggunaannya. Salah satu aspek yang paling penting dari analisis spektral adalah interpretasi spektrum dan hubungannya dengan sinyal diselidiki.
Contoh Soal 2-3. Generate 256 sample dari sinyal sinusoidal frekuensi sebesar 1 Khz dengan frekuensi sample 8 Khz. Plot sinyal dan spectrumnya!
Program Matlab:
N=256; % Total Number of Samples
fs=8000; % Sampling frequency set at 8000 Hz
f=1000;
n=0:N-1;
x=sin(2*pi*(f/fs)*n); % Generate the sinusoidal signal
X=fft(x); % Estimate its spectrum using fft command
magX=abs(X);
% Build up an appropriate frequency axis
fx=0:(N/2)-1; % Vektor for f = 0,1,2,...(N/2)-1
fx=(fx*fs)/N; % Scale it so that it represents frequencies in Hz
% Start plotting the signal
figure(1);
subplot(1,1,1);
plot(fx,20*log10(magX(1:N/2)));
grid;
title('Spectrum of a sinusoidal signal with f=1KHz');
xlabel('Frequency (Hz)');
ylabel('Magnitude (dB)');
Gambar 2.4 Output program contoh soal 2-3
Dari plot spektrum di atas jelas menunjukkan bahwa sinyal terdiri dari komponen sinusoidal tunggal yang memiliki frekuensi 1000Hz. Artefak lain yang terdapat pada gambar disebabkan oleh terbatasnya jumlah sampel, efek windowing, dan akurasi perhitungan.
2. 2. 3 Filter dengan Menggunakan Discrete Fourier Transform (DFT)
Jika dalam suatu sistem diketahui:
Sinyal input x(n) ↔ X(ω)
Respon impuls h(n) ↔ H(ω)
Sinyal output y(n) ↔ Y(ω)
Maka:
Y(ω) = H(ω) X(ω)
Dengan menggunakan persaamaan di atas dapat disimpulkan bahwa pemilihan respon impuls dapat menyaring (filter) sinyal input untuk mendapatkan sinyal output yang diinginkan.
Contoh Soal 2-4. Diketahui sebuah sistem filter adalah sebagai berikut:
Gambar 2.5 Sistem filter contoh soal 2-4
Plot input spectrum, respon magnitude dari filter, dan output spectrum dari
Notch filter tersebut!
Program MATLAB:
clear;
N=1024; % Total number of samples
fs=1000; % Sampling frequency set 1000 Hz
f1=120;
f2=60;
n=0:N-1;
x=sin(2*pi*(f1/fs)*n)+sin(2*pi*(f2/fs)*n);
[pxx, fx]=psd(x,2*N,fs);
plot(fx,20*log10(pxx));
grid;
title('Magnitude Spectrum of x(n)');
xlabel ('Frequency, Hz');
ylabel ('Magnitude, dB');
sin(2*pi*(f2/fs)*n);
b=[1 -1.8596 1];
a=[1 -1.8537 0.9937];
k=0.9969;
b=k*b;
figure(1);
subplot(1,1,1); % Start plotting the signal
subplot(1,3,1); % Start plotting the signal
[pxx, fx]=psd(x,2*N,fs);
plot(fx,20*log10(pxx));
grid;
title('Magnitude Spectrum of x(n)');
xlabel ('Frequency, Hz');
ylabel ('Magnitude, dB');
[h,f]=freqz(b,a,1024,fs); % Determines the frequency response
% of the filter with coefficients 'b'
% and 'a', using 1024 points arround
% the unit circle with a sampling
% frequency of fs. The function
% returns the transfer function h,
% for each frequency in f in Hz
magH=abs(h); % Calculate the magnitude of the filter
phaseH=angle(h); % Calculate the phase angle of the filter
subplot(1,3,2); % Divides the figure into two rows and
one
% coloumn and make the first row the
active one
plot(f,20*log10(magH)); % Plots the magnitude in dB against frequency
grid; % Add a grid
title('Magnitude Response of the Notch Filter');
xlabel ('Frequency, Hz');
ylabel ('Magnitude, dB');
y=filter(b,a,x);
[pyy, fy]=psd(y,2*N,fs);
subplot(1,3,3); % Start plotting the signal
plot(fy,20*log10(pyy));
grid;
title('Magnitude Spectrum of y(n)');
xlabel ('Frequency, Hz');
ylabel ('Magnitude, dB');
Gambar 2.6 Output program contoh soal 2-4
Dari hasil plot di atas dapat dilihat bahwa sinyal input terdiri dari dua komponen sinyal sinusoidal yaitu pada frekuensi 60 Hz dan 120 Hz. Dari besarnya respons dari filter, jelas bahwa filter melemahkan komponen sinyal yang berada pada frekuensi 60 Hz. Oleh karena itu, spektrum keluaran terdiri dari sinyal 120 Hz dan sinyal yang dilemahkan (0 dB) pada frekuensi 60 Hz .
BAB III
PENUTUP
Analisis Fourier mempelajari berbagai teknik untuk menganalisis sebuah fungsi dengan menguraikannya sebagai deret atau integral fungsi tertentu (yang sifat-sifatnya telah kita kenal dengan baik, seperti fungsi polinom atau fungsi trigonometri). Analisis Fourier adalah salah satu cara merepresentasikan bentuk sinyal kedomain frekuensi. Analisis Fourier ada dua macam, yaitu untuk fungsi periodic menggunakan Deret Fourier, sedangkan untuk fungsi non periodik menggunakan Transformasi Fourier. Transformasi Fourier digunakan untuk menguraikan sinyal domain waktu menjadi komponen-komponen frekuensi yang masing-masing memiliki amplitudo dan fase. Algoritma yang digunakan untuk mengubah sampel data dari domain waktu ke domain frekuensi dan menghasilkan nilai magnitude disebut Discrete Fourier Transform (DFT). DFT menstabilkan hubungan antara sample – sample signal domain waktu dan merepresentasikan ke domain frekuensi. Dengan menggunakan software MATLAB, telah kita ketahui bahwa Discrete Fourier Transform (DFT) dapat diaplikasikan untuk proses windowing dalam menganalisa suatu sinyal, plot spectrum sinyal, serta filter sinyal dimana aplikasi tersebut banyak dijumpai dalam Digital Signal Processing (DSP).
Comments
Post a Comment