Oleh :
LABORATORIUM KOMPUTER
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS MATARAM
KATA PENGANTAR
Semakin maju era digitalisasi maka pengolahan sinyal digital pun semakin
berkembang. Untuk melakukan pengolahan sinyal digital maka suatu sinyal harus dapat
diamati dengan beberapa cara, yaitu : dengan mengamati sifat-sifat statistik dari sinyal
tersebut, dengan mengamati sinyal tersebut dalam ruang waktu dan dengan mengamati
sinyal tersebut dalam ruang frekwensi. Sinyal-sinyal alami (continue) tidak dapat
langsung diproses dengan cara digital, jadi sebelum diproses sinyal tersebut didigitalisasi
(sehingga bersifat discrete) dengan melakukan pencuplikan (sampling).
Pada modul praktikum ini dilakukan pembuatan program/scrip pada MATLAB
untuk memahami algoritma-algoritma yang digunakan untuk mengamati sinyal-sinyal
diskrit dan cara membentuk sinyal-sinyal diskrit tersebut dengan melakukan sampling,
juga dibuat program/scrip beberapa penerapan dari pengolahan sinyal digital.
Penulis menyadari masih terdapat banyak kekurangan dalam penulisan modul
praktikum ini. Untuk itu maka saran dan kritik penulis harapkan demi kesempurnaan
modul praktikum ini. Akhir kata penulis mengharapkan modul praktikum ini dapat
bermanfaat.
penulis
1. Tujuan :
Dapat mengetahui karakteristik suatu sinyal melalui sifat-sifat statistik (nilai rata-
rata, variance dan standard deviation) dan probabilitas sinyal tersebut, yang kemudian
dapat digunakan dalam melakukan Pemrosesan Sinyal Digital.
2. Tinjauan singkat :
Gambar 1.1 Grafik sebuah sinyal tegangan terhadap waktu dan rata-ratanya
N −1
1
µ=
N
∑x
i =0
i (1.1)
Variance (σ2) menunjukkan daya (power) yaitu fluktuasi sinyal terhadap nilai
rata-ratanya (1.2)
Standard deviation (σ) juga disebut average deviation atau juga disebut nilai
Root-Mean-Square (RMS) yang umum digunakan di bidang elektronika. Nilai RMS
menunjukkan besarnya komponen AC dari sebuah sinyal. Jika sebuah sinyal tidak
memiliki komponen DC maka nilai RMS – nya adalah sama dengan standard deviation –
nya. Sebagai catatan standard deviation adalah akar kwadrat dari variance (1.3).
2
1 N −1
σ = ∑ ( xi − µ )
N − 1 i =0
(1.3)
Gambar 1.2 Histogram dari sinyal Gb. 1.1 dibagi dalam 128 dan 32 point.
Sedangkan nilai Probability Mass Function (pmf) adalah nilai histogramnya dibagi
dengan jumlah sample.
3. Langkah percobaan :
3.1. Ketiklah scrip berikut dalam bentuk M-File menggunakan MATLAB : (ingat
simpan/save scrip yang dibuat)
clc;
close all;
clear;
load leleccum;
sinyal = leleccum(1:500); % ambil 500 data saja
t=length(sinyal);
figure;
plot((0:t-1),sinyal,'k',(0:t-1),rata,'k');
title(['sinyal asli \mu = ',...
num2str(rata),'; \sigma^2 = ',...
num2str(variance),...
'; \sigma = ',num2str(standev)]);
xlabel('waktu (t) (detik)'); ylabel('tegangan (v) (volt)');
Pelajari scrip yang telah dibuat, kemudian run scrip tersebut, amati dari grafik-
grafik yang dihasilkan !, buat analisanya !
3.2. Sisipkan scrip berikut di baris 8 dari scrip pada langkah (3.1.)
k = 5;
sinyal2 = sinyal;
sinyal2(50:250) =sinyal(50:250) + k;
dan sisipkan scrip berikut diakhir baris scrip pada langkah (3.1.)
figure;
plot((0:t-1),sinyal2,'k',(0:t-1),ratas2,'k');
title(['sinyal modifikasi \mu = ',num2str(ratas2),...
'; \sigma^2 = ',num2str(variances2),...
'; \sigma = ',num2str(standevs2)]);
xlabel('waktu (t) (detik)'); ylabel('tegangan (v) (volt)');
figure;
plot((0:t-1),sinyal,'k',(0:t-1),sinyal2,'r',(0:t-
1),rata,'k',(0:t-1),ratas2,'r');
title('sinyal asli dan sinyal modifikasi')
xlabel('waktu (t) (detik)'); ylabel('tegangan (v) (volt)');
Pelajari scrip yang telah dibuat, kemudian run scrip tersebut, amati dari grafik-
grafik yang dihasilkan !, buat analisanya !
3.3. Lakukan langkah (3.2) dengan nilai k = -10, -5, 10, kemudian run scrip tersebut,
amati dari grafik-grafik yang dihasilkan !, buat analisanya !
3.4. Ketiklah scrip berikut dalam bentuk M-File menggunakan MATLAB : (ingat
simpan/save scrip yang dibuat)
clc;
close all;
load leleccum;
sinyal = leleccum(1:500); % ambil 500 data saja
sinyal(100:250) = sinyal(100:250)-5;
k = 5;
t=length(sinyal);
figure;
hist(sinyal,128);
title('histogram 128 point'); xlabel('sample');
ylabel('frekwensi muncul');
figure;
hist(sinyal,64);
title('histogram 32 point'); xlabel('sample'); ylabel('frekwensi
muncul');
Pelajari scrip yang telah dibuat, kemudian run scrip tersebut, amati dari grafik-
grafik yang dihasilkan !, buat analisanya !
3.5. Lakukan langkah (3.1.) dan rubah sinyal leleccum menjadi sinyal sinus dari scrip
berikut !
fs = 1/1000;
ss = (0:fs:1);
sinyal = sin(2*pi*50*ss);
Lakukan juga dengan sinyal penjumlahan dua buah sinyal sinus dengan
frekwensi berbeda !
fs = 1/1000;
ss = (0:fs:1);
sinyal = sin(2*pi*50*ss) + 2*sin(2*pi*120*ss);
Run scrip tersebut, amati dari grafik-grafik yang dihasilkan !, buat juga grafik
histogramnya, buat analisanya !
1. Tujuan :
2. Tinjauan singkat :
Sinyal sinusoidal (berupa sinyal cosinus maupun sinus) waktu-diskrit berasal dari
sinyal sinusoidal waktu kontinyu yang dicuplik pada periode waktu tertentu, sinyal ini
dinyatakan dengan (2.2)
f0 adalah frekwensi sinyal dalam Hz, A adalah amplitudo, T adalah periode sampling
yang nilainya T=1/fs, n adalah nilai pencuplikan dan θ adalah beda phase, misal sinyal
sinus dengan sinyal cosinus berbeda phase 900. Gambar 2.2. menampilkan dua buah
sinyal cosinus yang memiliki amplitudo dan frekwensi yang sama tetapi waktu
pencuplikannya berbeda.
A j ( 2πf 0 nT +θ ) A − j ( 2πf 0 nT +θ )
x[n] = e + e
2 2 (2.3)
Ada beberapa sinyal uji yang sering digunakan untuk menguji sebuah plant, antara
lain sinyal impulse (2.4), sinyal unit step (2.5) dan sinyal ramp(2.6).
1; n = 0
δ [n] = (2.4)
0; n ≠ 0
1; n ≥ 0
u[n] = (2.5)
0; n < 0
n; n ≥ 0
r[ n ] = (2.6)
0; n < 0
Daya sinyal (Signal power) diskrit adalah besarnya daya yang dimiliki oleh suatu
sinyal diskrit. Persamaan daya sinyal diskrit adalah
3. Langkah percobaan :
3.1. Ketiklah scrip berikut dalam bentuk M-File menggunakan MATLAB : (ingat
simpan/save scrip yang dibuat)
clc;
close all;
sinyal = A*cos(2*pi*f0*t);
plot(n,sinyal);
title(['sinyal : {\itA}*cos(2{\it\pif_0nT})']);
tkhor = 0.5*fs/10;
tkver = max(sinyal)-(max(sinyal)/10);
text(tkhor,tkver,['{\itA} = ',num2str(A),'; {\itf_0} = ',...
num2str(f0),'Hz; {\itf_s} = ',num2str(fs),'Hz;',...
' {\itT} = 1/{\itf_s} = ',num2str(1/fs),' detik']);
xlabel('n (sample)'); ylabel('Amplitudo');
Pelajari scrip yang telah dibuat, kemudian run scrip tersebut, lakukan untuk nilai A =
1, 3, 5; nilai f0 = 1Hz, 2Hz, 5Hz, 10Hz; nilai fs = 1Hz, 10Hz, 100Hz, amati dari
grafik-grafik yang dihasilkan ?, buat analisanya !
3.2. Ketiklah scrip berikut dalam bentuk M-File menggunakan MATLAB : (ingat
simpan/save scrip yang dibuat)
clc;
close all;
3.3. Ketiklah scrip berikut dalam bentuk M-File menggunakan Matlab : (ingat
simpan/save scrip yang dibuat)
clc;
close all;
sinyal_impl = 1 *(t==0);
sinyal_stp = 1 *(t>0);
sinyal_ramp = t .*(t>0);
plot(n,sinyal_impl);
title('sinyal uji impulse');
tkhor = 0.5*fs/10;
tkver = max(sinyal_impl)-(max(sinyal_impl)/25);
tkver1 = max(sinyal_stp)+(max(sinyal_stp)/25);
text(tkhor,tkver,['{\itf_s} = ',num2str(fs),'Hz;',...
' {\itT} = 1/{\itf_s} = ',num2str(1/fs),' detik']);
axis([0 max(n) 0 tkver1]);
xlabel('n (sample)'); ylabel('Amplitudo');
figure; plot(n,sinyal_stp);
title('sinyal uji unit step');
tkhor = 0.5*fs/10;
tkver = max(sinyal_stp)-(max(sinyal_stp)/25);
tkver1 = max(sinyal_stp)+(max(sinyal_stp)/25);
text(tkhor,tkver,['{\itf_s} = ',num2str(fs),'Hz;',...
' {\itT} = 1/{\itf_s} = ',num2str(1/fs),' detik']);
axis([0 max(n) 0 tkver1]);
xlabel('n (sample)'); ylabel('Amplitudo');
figure; plot(n,sinyal_ramp);
title('sinyal uji ramp');
tkhor = 0.5*fs/10;
tkver = max(sinyal_ramp)-(max(sinyal_ramp)/25);
tkver1 = max(sinyal_ramp)+(max(sinyal_ramp)/25);
text(tkhor,tkver,['{\itf_s} = ',num2str(fs),'Hz;',...
' {\itT} = 1/{\itf_s} = ',num2str(1/fs),' detik']);
axis([0 max(n) 0 tkver1]);
xlabel('n (sample)'); ylabel('Amplitudo');
Pelajari scrip yang telah dibuat, kemudian run scrip tersebut, amati dari grafik-
grafik yang dihasilkan !, buat analisanya !
3.4. Sisipkan scrip berikut di baris 12 dari scrip pada langkah (3.1.)
dump = 0;
for t=1:length(sinyal)
dump = dump + (sinyal(t))^2;
end
Pelajari scrip yang telah dibuat, kemudian run scrip tersebut, tentukan besarnya
daya sinyal untuk nilai A = 1, 3, 5; nilai f = 1Hz, 2Hz, 5Hz, 10Hz; nilai Ts = 1Hz,
10Hz, 100Hz !
1. Tujuan :
2. Tinjauan singkat :
Umumnya ada tiga operasi dasar yang dapat dilakukan terhadap sebuah sinyal
dalam ruang-waktu, yaitu time scale (penskalaan terhadap waktu), time reversal
(pembalikan terhadap waktu) dan time sift (penggeseran terhadap waktu).
Sinyal waktu-diskrit diskalakan dengan faktor b>0 adalah merubah waktu
pencuplikan dari T ke T/b, seperti diilustrasikan pada gambar berikut.
Gambar 2.1 Grafik dari sebuah sinyal waktu-diskrit yang mengalami penskalaan
Sinyal waktu-diskrit yang mengalami pergeseran waktu adalah suatu sinyal yang
dihasilkan dengan cara menggeser sebesar t – t1, bila t1 > 0 maka sinyal digeser ke kanan
sebesar t1 (mengalami penundaan waktu), bila t1 < 0 maka sinyal digeser ke kiri sebesar t1
(mengalami percepatan), seperti diilustrasikan pada gambar berikut.
Gambar 2.3 Grafik dari sebuah sinyal waktu-diskrit yang mengalami penggeseran
b0
b1 a1 z-1
z-1
y[n-1]
X X
Gambar 3.1. Blok diagram sebuah sistem waktu-diskrit (z-1 menandakan ditunda/delay)
k l
y[nT ] = ∑ (− ai ) y[(n − i )T ] + ∑ bi x[(n − i )T ] (3.1)
i =1 i =0
Dari (3.1), bila ai , bi ≠ 0 maka sistem disebut tapis IIR, sedangkan bila ai = 0; bi ≠ 0 maka
sistem disebut tapis FIR. Sistem tapis FIR juga dapat diwujudkan dengan melakukan
konvolusi antara masukan dengan plan. Sehingga (3.1) dapat diubah sebagai berikut :
l
y[nT ] = ∑ bi x[(n − i )T ] (3.1)
i =0
3. Langkah percobaan :
3.1. Ketiklah scrip (untuk penskalaan sinyal) berikut dalam bentuk M-File menggunakan
MATLAB : (ingat simpan/save scrip yang dibuat)
clc;
close all;
clear;
T = 2;
t = -6:T:6;
y = t/2;
z = t/0.5;
hs = abs(t);
Pelajari scrip yang telah dibuat, kemudian run scrip tersebut, ubah-ubahlah nilai-
nilai Ts, persamaan y, z dengan mengubah nilai pembagi, amati dari grafik-grafik
yang dihasilkan !, buat analisanya !
3.2. Ketiklah scrip (untuk pembalikan sinyal) berikut dalam bentuk M-File
menggunakan Matlab : (ingat simpan/save scrip yang dibuat)
clc;
close all;
clear;
T = 1;
t = -4:T:4;
y = 2*t;
z = -2*t;
Pelajari scrip yang telah dibuat, kemudian run scrip tersebut, ubah-ubahlah nilai Ts,
amati dari grafik-grafik yang dihasilkan !, buat analisanya !
3.3. Ketiklah scrip (untuk penggeseran sinyal) berikut dalam bentuk M-File
menggunakan Matlab : (ingat simpan/save scrip yang dibuat)
clc;
close all;
clear;
Ts= 1;
t = -6:Ts:6;
x = 0.08*t - 0.96*sqrt(abs(t));
y = 0.08*(t-1) - 0.96*sqrt(abs(t-1));
z = 0.08*(t+2) - 0.96*sqrt(abs(t+2));
Pelajari scrip yang telah dibuat, kemudian run scrip tersebut, ubah-ubahlah nilai Ts,
persamaan y dengan mengubah nilai pengurang t, z dengan mengubah nilai
penambah t, amati dari grafik-grafik yang dihasilkan !, buat analisanya !
3.4. Perhatikan blok diagram sebuah sistem berikut ! Sistem ini memiliki frekwensi
cuplik (fs) 10 sample/detik (T = 1/10 detik). Gambarkan grafik y[nT] untuk 0 <= t
<= 3 detik jika masukan sinyalnya adalah x[nT] = 2u[(n-2)T] (u adalah sinyal unit
step) dengan b0 = 1/3; b1 = 1/3 dan b2 = 1/3 (adalah perilaku tapis moving average,
salah satu tapis FIR). Plant z-1 adalah plant waktu tunda (delay).
b0
b0x[nT]
x[nT] y[nT] = b0x[nT] + b 1x[(n-1)T] + b 2x[(n-2)T]
x +
b1x[(n-1)T]
+
b1 b2x[(n-2)T]
z-1
b1x[(n-1)T]
x[(n-1)T] x +
b2
z-1
b2x[(n-2)T]
x[(n-2)T] x
Blok diagram sistem tersebut diubah menjadi sebuah model matematikanya, sebagai
berikut :
DelyStf = 3;
AmplStf = 2;
x = AmplStf*(n>DelyStf); %buat fungsi step
b0 = 1/3;
b1 = 1/3;
b2 = 1/3;
for k = 3:length(t),
ytemp(k) = b2*x(k) + b1*x(k-1) + b0*x(k-2);
end
plot(n,x,'--r');
hold on;
plot(n,ytemp);
title('Analisa ruang-waktu dari suatu sistem diskrit (Tapis
MOVING AVERAGE)');
xlabel(['n (sample); ({\itT} = ',num2str(1/fs),'detik)']);
ylabel('amplitudo'); grid on;
axis([0 max(n) -0.20 (AmplStf+0.2)]);
legend([num2str(AmplStf),'{\itu}[({\itn}-',...
num2str(DelyStf),'){\itT}]'],['{\ity}({\itnT})']);
Pelajari scrip yang telah dibuat, kemudian run scrip tersebut, ubahlah nilai-nilai
DelyStf (2,3 dst), AmplStf(1,2 dst) , fs(10,20,50,100) yang membentuk sinyal step
unit, amati dari grafik-grafik yang dihasilkan !, buat analisanya !
3.5. Buatlah blok diagram pada langkah 3.4. dengan menggunakan SIMULINK pada
MATLAB seperti pada gambar berikut :
3.6. Lakukan langkah 3.4 dan 3.5 untuk tapis 4-point dan 5-point moving average, amati
dari grafik-grafik yang dihasilkan !, buat analisanya !
3.7. Ketiklah scrip berikut dalam bentuk M-File menggunakan Matlab : (ingat
simpan/save scrip yang dibuat)
DelyStf = 2;
AmplStf = 2;
x = AmplStf*(n>DelyStf);
pj_b = length(b);
pj_x = length(x);
plot(n,x,'--r');
title('Analisa ruang-waktu dari suatu sistem diskrit (Tapis
MOVING AVERAGE)');
hold on;
plot(n,temp(1:31));
xlabel(['n (sample); ({\itT} = ',num2str(1/fs),'detik)']);
ylabel('amplitudo'); grid on;
axis([0 max(n) -0.20 (AmplStf+0.2)]);
legend([num2str(AmplStf),'{\itu}[({\itn}-',...
num2str(DelyStf),'){\itT}]'],['{\ity}({\itnT})']);
Pelajari scrip yang telah dibuat, kemudian run scrip tersebut, ubahlah nilai-nilai
st(2,3 dst), at(1,2 dst) , Ts(10,20,50,100) yang membentuk sinyal step unit, amati
dari grafik-grafik yang dihasilkan !, buat analisanya !
3.9. Lakukan langkah 3.4, 3.5 dan 3.7 dengan sinyal masukan impulse dan ramp,
bandingkan hasilnya dan buat analisanya !
1. Tujuan :
2. Tinjauan singkat :
sinyal ini memiliki karakteristik : amplitudonya 4 dan 6, phasenya 0.4 rad dan –0.2 rad
dan frekwensi yang dinormalisasi 0.1 dan 0.2. Ke-enam buah nilai tadi adalah merupakan
representasi dalam ruang-frekwensi yang dinormalisasi dari sinyal x[nT ] . Dari data-data
di atas maka dapat dibentuk spektrum frekwensi (frequency spectrum) atau secara umum
disebut spektrum.
x[nT ] = [2e − j 0.4 ]e j 2π ( −0.1) n + [2e j 0.4 ]e j 2π ( 0.1) n + [3e j 0.2 ]e j 2π ( −0.2) n + [3e − j 0.2 ]e j 2π ( 0.2) n (4.2)
Gambar 2.2 Grafik spectrum amplitudo dan phase dari (4.1) atau (4.2)
Gambar 2.3 Grafik Unit Impulse Signal (4.3) dan Fourier transform-nya
Gambar 2.5 Grafik Unit Ramp Signal (4.4) dan Fourier transform-nya
3. Langkah percobaan :
3.1. Sebuah deret x[n] (sinyal-diskrit) mempunyai spektrum amplitudo dan phase yang
ternormalisasi dari sebuah sinyal x[nT] seperti gambar berikut :
clc;
clear;
close all;
n = 0:30;
x = 2*cos(0.3*pi*n + 0.4) + 6*cos(0.5*pi*n - 0.8) +...
4*cos(0.6*pi*n - 0.4);
stem(n,x,'fill');
title(['Sinyal {\itx}[({\itn}]']);
xlabel('n');
ylabel('{\itx}[({\itn}]')
axis([0 30 -12 12]);
Pelajari scrip yang telah dibuat, kemudian run scrip tersebut, amati dari grafik yang
dihasilkan !, buat analisanya !
3.2. Tambahkan scrip berikut pada akhir scrip yang telah dibuat pada langkah 3.1 !
T = 0.01;
t = n*T;
figure; stem(t,x,'fill'); grid on;
title(['Sinyal {\itx}[{\itnT}]']);
xlabel(['t (detik) ; ({\itT} = ',num2str(T),')']);
ylabel('{\itx}[{\itnT}]')
axis([0 0.65 -12 12]);
T2 = 0.02;
t2 = n*T2;
Pelajari scrip yang telah dibuat, kemudian run scrip tersebut, amati dari grafik-
grafik yang dihasilkan (pengaruh periode sampling) !, buat analisanya !
3.3. Ketiklah scrip berikut (untuk mendapatkan representasi dalam ruang frekwensi dari
sinyal-sinyal uji : impulse, step dan ramp) dalam bentuk M-File menggunakan
MATLAB : (ingat simpan/save scrip yang dibuat)
Ts = 1/10; %(second);
t = 0:Ts:1;
n = t*(1/Ts);
x = ones(1,length(n));
for st = 0:length(n)-1
x(st+1) = x(st+1) * (st == 0);
end
stem(n,x,'fill');
title(['Unit Pulse Signal {\it\delta}[{\itn}]']);
xlabel('\itn');
ylabel('{\itx}[({\itn}]')
axis([0 length(t)-1 -Ts*0.25 Ts*10]);
btakh = 256;
cctv = fft(x,btakh);
cctvka = cctv(btakh/2:btakh);
cctvki = cctv(1:(btakh/2)-1);
fulltv = [cctvka cctvki];
% settt = (1/Ts)*((-btakh/2):(btakh/2)-1)/btakh;
settt = 2*((-btakh/2):(btakh/2)-1)/btakh;
figure; subplot(211); plot(settt,abs(fulltv));
title(['Foureir Transform dari Unit Step Signal
{\it\delta}[{\itn}]']);
ylabel('Magnitude');
subplot(212); plot(settt,angle(fulltv));
ylabel(['Phase']);
xlabel(['frekwensi yang dinormalisasi']);
Scrip di atas hanya untuk sinyal impulse (Gambar 2.3.), pelajari scrip di atas
kemudian buatlah untuk sinyal step dan ramp. Amati grafik-grafik yang dihasilkan,
buat analisanya !.
3.4. Ketiklah scrip berikut dalam bentuk M-File menggunakan Matlab : (ingat
simpan/save scrip yang dibuat) :
x = [-2,0,-1,0,2,1,2,3,1,2,1,4,1,0,1,0,-1,...
-3,-4,-2,-2,1,0,-3,1,4,1,3,4,1,0,2];
Ts = 1/100;
n = -15:16;
stem(n,x);
title(['Sinyal {\itx}[{\itn}]']);
ylabel(['Amplitudo']);
xlabel(['{\itn}']);
axis([-16 17 min(x)-1 max(x)+1]);
l_fft = 256;
x_fft = fft(x,l_fft);
x_fftka = x_fft(l_fft/2:l_fft);
x_fftki = x_fft(1:(l_fft/2)-1);
fulltv = [x_fftka x_fftki];
setskl = 2*((-l_fft/2):(l_fft/2)-1)/l_fft;
figure; subplot(211); plot(setskl,abs(fulltv));
title(['Spektrum magnitude sinyal {\itx}[{\itn}]']);
ylabel(['Amplitudo']);
subplot(212); plot(setskl,angle(fulltv));
title(['Spektrum sudut phase sinyal {\itx}[{\itn}]']);
ylabel(['Radian']);
xlabel(['frekwensi yang dinormalisasi']);
h = zeros(size(x));
h(15:19) = [1/3 1/3 1/3 1/3 1/3];
h_fft = fft(h,l_fft);
h_fftka = h_fft(l_fft/2:l_fft);
h_fftki = h_fft(1:(l_fft/2)-1);
fulltvh = [h_fftka h_fftki];
condata = conv(x,h);
conv_fft = fft(condata,l_fft);
conv_fftka = conv_fft(l_fft/2:l_fft);
conv_fftki = conv_fft(1:(l_fft/2)-1);
fulltvcon = [conv_fftka conv_fftki];
1. Tujuan :
2. Tinjauan singkat :
3. Langkah percobaan :
1 1 1 1
2 2 2 2
f∆
f
− f1 − fc − f2 0 f1 fc f2
Buatlah sebuah m-file yang dapat menghasilkan sinyal beat note dengan f c = 400
dan f ∆ =20 Hz, Ts (waktu sampling) = 1/1000, kemudian amati spektrumnya
(menggunakan fungsi fft), dengar suara yang dihasilkan oleh sinyal x(t)
(menggunakan fungsi sound). Sehingga didapat gambar grafik-grafik berikut :
Gambar 2.2 Sinyal dan spektrum beat note f c = 400 dan f ∆ =20 Hz yang
dihasilkan menggunakan MATLAB
5 5
2 2
1 1 1 1
2 2 2 2
f
− ( fc + f ∆ ) − fc − ( fc − f∆ ) ( fc + f∆ ) fc ( fc − f ∆ )
0
keys = [ 40 42 44 45 47 49 51 52 ];
fs = 11025;
Ts = 1/fs;
t = 0:Ts:1;
for kk = 1:length(keys);
sel(1,kk) = keys(kk) - 49;
f(1,kk) = 440 * 2^(sel(1,kk)/12);
end;
x1 = sin(2*pi*f(1,1)*t);
x2 = sin(2*pi*f(1,2)*t);
x3 = sin(2*pi*f(1,3)*t);
x4 = sin(2*pi*f(1,4)*t);
x5 = sin(2*pi*f(1,5)*t);
x6 = sin(2*pi*f(1,6)*t);
x7 = sin(2*pi*f(1,7)*t);
x8 = sin(2*pi*f(1,8)*t);
dly = zeros(1,length(x1)/2);
data = [ x1 x2 x3 x4 x5 x6 x7 x8];
sound(data,fs);
Amati dan pelajari scrip tersebut, kemudian run apa yang terjadi ? dengarkan suara
yang terdengar ! Ubah-ubahlah nilai fs, apa yang terjadi ?.
Buatlah agar menghasilkan suara do-re-mi-re-mi-fa-mi-fa-sol-fa-sol-la-sol-la-si !