Anda di halaman 1dari 10

PERCOBAAN I

Signal Generation, Sampling, Quantization and Binary

Encoding Erdianto P. Sitorus (14S20009)


Dosen: Good Fried Panggabean, ST., MT, Ph.D (0125097301)
Asisten : Andi Ray Hutauruk, S.T.
Tanggal Percobaan : 19 Februari 2021
Kode MK - 14S3202 - Digital Signal Processing Laboratory
Institut Teknologi Del

1. Tuliskanlah program MATLAB untuk menghasilkan dan menampilkan seluruh sinyal yang
didefinisikan pada Tabel 1.

a. Dirac ( Unit Impulse )


Kode program

% DiracFunction
% Nama : Sapta W. Manurung
% NIM : 14S18029
N = 10;
n = -N/2:N/2;
d = [zeros(1,N/2) 1 zeros(1,N/2)];
figure;
plot(n,d);
xlabel('n');
ylabel('\delta(n)');
title('Dirac function_14S18029');
Penjelasan :

N = 10;
n = -N/2:N/2;
Artinya : kita akan mengambil sampel sebanyak 10 dan akan di plot dari -5 hingga 5

d = [zeros(1,N/2) 1 zeros(1,N/2)];
figure;
plot(n,d);
xlabel('n');
ylabel('\delta(n)');
title('Dirac function_14S18029');
Artinya : sesuai dengan equation, jika n = 0 maka outputnya akan 1 dan jika selain 0 maka outputnya
akan 0, kemudian plot(n,d) akan melakukan plot n dengan equation nya. Kemudian akan diberi label pada
x dan y dan juga diberi judul pada plot nya.

Hasil plot :
b. Unit step (Heaviside step)

Kode Program

% Nama : Sapta W. Manurung


% NIM : 14S18029
% Heaviside Function
N = 10;
n = -N/2:N/2;
u = [zeros(1,N/2) 1 ones(1,N/2)];
figure;
plot(n,u);
xlabel('n');
ylabel('u(n)');
title('Unit step function 14S18029');
Penjelasan :

N = 10;
n = -N/2:N/2;
Artinya : kita akan mengambil sampel sebanyak 10 dan akan di plot dari -5 hingga 5

u = [zeros(1,N/2) 1 ones(1,N/2)];
figure;
plot(n,u);
xlabel('n');
ylabel('u(n)');
title('Unit step function
14S18029');
Artinya : sesuai dengan equation, jika N lebih besar sama dengan 0 maka outputnya akan 1 dan jika
selain lebih besar sama dengan 0 maka outputnya akan 0, kemudian plot(n, u) akan melakukan plot n
dengan equation nya. Kemudian akan diberi label pada x dan y dan juga di beri judul pada plotnya.

Hasil plot :
c. Sign Function

Kode program

% Sign function
% Nama : Sapta W. Manurung
% NIM : 14S18029
N = 10;
vektor = -N/2:N/2;
n = [zeros(1,N/2) 1 ones(1,N/2)];
x = 2*n-1;
plot(vektor,x);
xlabel('n');
ylabel('x(n)');
title('Sign function 14S18029')
Penjelasan :

N = 10;
vektor = -N/2:N/2;
Artinya : kita akan mengambil sampel sebanyak 10 dan akan di plot dari -10/2 = -5 hingga 10/2 = 5

n = [zeros(1,N/2) 1 ones(1,N/2)];
x = 2*n-1;
plot(vektor,x);
Artinya : disini kita akan melakukan plot 2n-1, dimana plot bernilai 1 apabila inputnya itu lebih besar
sama dengan 0 dan plotnya bernilai 0 apabila inputnya itu lebih kecil dari 0.

xlabel('n');
ylabel('x(n)');
title('Sign function 14S18029')
Artinya : kita akan memberi label pada sumbu x dan sumbu y dan juga memberi judul pada plotnya.

Hasil plot :
Dapat dilihat bahwa gambar Heaviside dengan sign function sama.

d. Rectangle Function

Kode Program

% Nama : Sapta W. Manurung


% NIM : 14S18029
M = 2;
N = 10;
n = -N/2:N/2;
Rect = [zeros(1,N/2-M) ones(1,2*M+1) zeros(1,N/2-M)];
figure;
plot(n,Rect);
xlabel('n');
ylabel('Rectangel');
title('Fungsi Rectangel 14S18029');
Penjelasan

M = 2;
N = 10;
n = -N/2:N/2;
Artinya : disini kita membuat nilai parameter M = 2 dan : kita akan mengambil sampel sebanyak 10 dan
akan di plot dari -10/2 = -5 hingga 10/2 = 5

Rect = [zeros(1,N/2-M) ones(1,2*M+1) zeros(1,N/2-M)];


figure;
plot(n,Rect);
Artinya : pada equation rectM(n) = u(n+M)-u(n-M) yang artinya plot akan bernilai 0 apabila setengah
nilai sampel – M dan plot akan bernilai 1 apabila dua kali M + 1. Kemudian yang di plot adalah nilai n
dan Rectangel nya.

Hasil Plot:
e. Sine function

Kode program :

% Nama : Sapta W. Manurung


% NIM : 14S18029
% Sine function
L = 20;
n = 0:L-1;
f0 = 100;
fs = 1000;
x0 = 1;
x = x0*sin(2*pi*f0/fs*n);
figure;
plot(n,x);
xlabel('n');
ylabel('sin');
title('Grafik Sinus 14S18029');
Penjelasan:

Dengan memasukkan keseluruhan parameter yang diperlukan seperti L( Panjang plot sumbu X), n
(Panjang plot dimulai dari 0 hingga L-1(20-1=19), f0 (frekuensi input), fs (sampling frekuensi), x0=1.
Kemudian kita membuat equation sesuai dengan equation yang terdapat pada tabel 1.

Hasil plot:
2. Tuliskanlah fungsi MATLAB [𝑥, 𝑡] = sin _𝑁𝑈(𝑓0, 𝑓s, T)

Kode program :

% sin_NU function
% Nama : Sapta W. Manurung
% NIM : 14S18029
function [x, t] = sin_NU(fs, f0, T)
t = 0:1/fs:T;
x = sin(2*pi*f0*t);
end
Penjelasan :

Disini kita akan membuat fungsi sin_NU dengan parameter ( fs, f0 dan T). kemudian vector list t yang
artinya diawali dengan 0, diakhiri dengan T dengan rentang 1/fs. Dan formula sin_NU yaitu sin (wt) atau
sin ( 2πft).

3. Menguji fungsi sin_NU

Kode program:

% Nama : Sapta W. Manurung


% NIM : 14S18029
[x,t]= sin_NU(1000,10,0.5);
figure(7);
plot(t,x);
xlabel('Waktu');
ylabel('Sinyal');
title('Fungsi sin_NU 14S18029');
Penjelasan :

Dengan parameter fs = 1000, f0 = 10, T = 0.5, maka plot akan dimulai dari 0 hingga 0.5 dengan rentang
1/1000=0.001. dan x = sin(2*pi*10*t)

Hasil plot :
Bagian B: Audio Aliasing

Kode Program :

% Nama : Sapta W. Manurung


% NIM : 14S18029
% Audio Aliasing
T = 2; %parameters
f0 = 1000;
fs1 = 20000;
fs2 = 1500;
[x1, t1] = sin_NU(fs1,f0,T);
[x2, t2] = sin_NU(fs2,f0,T);
figure;
plot(t1,x1,t2,x2,'LineWidth',3.0),
axis([0, 0.005, -1.1, 1.1])
legend('FS1','FS2')
xlabel('waktu')
ylabel('Sinyal')
title('Audio 14S18029');
%%%
soundsc(x1,fs1)
%%%
soundsc(x2,fs2)

Penjelasan : Dengan menggunakan fungsi sin_NU, terdapat 2 frekuensi sampling, yaitu fs1= 20000 Hz,
fs2 = 1500 Hz, f0=1000Hz dan T = 2. Maka plot fs1 dimulai dari 0 sampai ke 2 dengan rentang 0.00005,
dan plot fs2 dimulai dari 0 sampai ke 2 dengan rentang 0.00067. kemudian kita akan memplot dengan
jarak 0-5ms. Menurut pengamatan saya, bahwa frekuensi dengan sampling 1500 Hz lebih pelan
dibandingkan frekuensi dengan sampling 20000 Hz. Dari hasil plot, warna biru adalah fs1 dan warna
merah adalah fs2.

Hasil Plot :
Bagian C : Quantization
Kode Program Function ADC

% Nama : Sapta W. Manurung


% NIM : 14S18029
function y = adc_NU(x, R, B)
level =
[0:R/(2^B):R-R/(2^B)];
temp = [-Inf,(level(2:end)-R/(2^(B+1))),Inf];
y = zeros(1,length(x));
for i = 1:length(level)
y = y + (x >= temp(i)).*(x < temp(i+1)).*level(i);
Kode Program Uji Function

% Nama : Sapta W. Manurung


% NIM : 14S18029
R = 10;
B = 3;
x = -5:15;
y = adc_NU(x,R,B);
t = 0:length(x)-1;
figure(11)
plot(t,x,t,y)
plot(t,x,'g-*','LineWidth',2.2)
hold on
stem(t,y,'filled','LineWidth',2.2)
hold off
title('ADC 14S18029')
xlabel('Waktu(s)')
ylabel('Sinyal (volts)')
axis([-0.1,20.1,-5.1,15.1])
Penjelasan : Dengan memasukkan keseluruhan parameter, dengan Xmax= 15V dan Xmin= -5V dengan x
adalah nilai sinyal dari hasil sampling, dan y adalah nilai sinyal yang sudah dikuantisasi.kemudian kita
masukan sinyal ramp dengan rentang nilai masukan berada pada 15 v hingga -5v. kemudian
menggunakan funsi plot dan stem agar keseluruhan sketsa terlihat.

Hasil Plot

Anda mungkin juga menyukai