Anda di halaman 1dari 8

TUGAS

PENGOLAHAN SINYAL DIGITAL

Oleh:
Nama

: Sinta Ariyanti

NIM

: 5301413062

Prodi

: Pendidikan Teknik Elektro

PENDIDIKAN TEKNIK ELEKTRO-TEKNIK ELEKTRO


UNIVERSITAS NEGERI SEMARANG
TAHUN 2016

Tugas ini saya mendesain LPF untuk memfilter sinyal masukan berupa sinyal sinus,
sinyal kotak dan sinyal segitiga, di sinyal masukan tersebut saya meloloskan sinyal
dengan frekuensi dibawah 12 kHz.
Desain filter pada fdatool

Magnitude Response (dB)


0
-10
-20

Magnitude (dB)

-30
-40
-50
-60
-70
-80
-90
0

0.1

0.2

0.3

0.4
0.5
0.6
Normalized Frequency ( rad/sample)

0.7

0.8

0.9

A. SINYAL SINUS
function Hd = LPF
%LPF Returns a discrete-time filter object.
%
% MATLAB Code
% Generated by MATLAB(R) 7.14 and the Signal Processing Toolbox 6.17.
%
% Generated on: 06-May-2016 18:09:31
%
% Equiripple Lowpass filter designed using the FIRPM function.

% All frequency values are in Hz.


Fs = 40000; % Sampling Frequency
Fpass
Fstop
Dpass
Dstop
dens

=
=
=
=
=

10000;
12000;
0.057501127785;
0.0001;
20;

%
%
%
%
%

Passband Frequency
Stopband Frequency
Passband Ripple
Stopband Attenuation
Density Factor

% Calculate the order from the parameters using FIRPMORD.


[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);
% Calculate the coefficients using the FIRPM function.
b = firpm(N, Fo, Ao, W, {dens});
Hd = dfilt.dffir(b);
% [EOF]
%menampilkan plot dari desain LPF
fvtool(Hd);
%masukan sinyal sinus
t=0:1/Fs:0.025;
f1=5000;
f2=11000;
f3=15000;
sinyal_sinus=sin(2*pi*f1*t)+sin(2*pi*f2*t)+sin(2*pi*f3*t);
%menampilkan sinyal sebelum difilter
figure('name', 'sinyal sebelum difilter')
subplot(211)
plot(t,sinyal_sinus);
xlabel('time/s');
ylabel('amplitudo');
title('sinyal sebelum difilter dalam domain waktu');
subplot(212)
sff=fft(sinyal_sinus,512);
AFs=abs(sff);
%frekuensi sampling
f=(0:255)*Fs/512;
plot(f,AFs(1:256));
xlabel('frekuensi/Hz');
ylabel('amplitudo');
title('sinyal sebelum difilter dalam domain frekuensi');
%sinyal setelah difilter2
figure('name','sinyal setelah difilter');
%filter sinyal sinus
sinyal_filter=filter(Hd,sinyal_sinus);
subplot(211)
plot(t,sinyal_filter);
xlabel('time/s');
ylabel('amplitudo');
title('sinyal setelah dalam domain waktu');
axis([0.02 0.025 -2 2]);

subplot (212)
Fsf=fft(sinyal_filter,512);
AFsf=abs(Fsf);
f=(0:255)*Fs/512;
plot(f,AFsf(1:256));
xlabel('frekuensi/Hz');
ylabel('amplitudo');
title('sinyal setelah difilter dalam domain frekuensi');
sinyal sebelum difilter dalam domain waktu

amplitudo

2
0
-2
-4

0.005

0.01

0.015

0.02

0.025

sinyal sebelum difilter dalam domain frekuensi

300

amplitudo

time/s

200

100

0.2

0.4

0.6

0.8

1
frekuensi/Hz

1.2

1.4

1.6

1.8

2
4

x 10

sinyal setelah dalam domain waktu

amplitudo

1
0
-1
-2
0.02

0.0205

0.021

0.0215

0.022

0.0225
time/s

0.023

0.0235

0.024

0.0245

1.4

1.6

1.8

0.025

sinyal setelah difilter dalam domain frekuensi

250

amplitudo

200
150
100
50
0

0.2

0.4

0.6

0.8

1
frekuensi/Hz

1.2

B. SINYAL SQUARE
% All frequency values are in Hz.
Fs = 40000; % Sampling Frequency
Fpass = 10000;
Fstop = 12000;

% Passband Frequency
% Stopband Frequency

2
4

x 10

Dpass = 0.057501127785;
Dstop = 0.0001;
dens = 20;

% Passband Ripple
% Stopband Attenuation
% Density Factor

% Calculate the order from the parameters using FIRPMORD.


[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);
% Calculate the coefficients using the FIRPM function.
b = firpm(N, Fo, Ao, W, {dens});
Hd = dfilt.dffir(b);
% [EOF]
%menampilkan plot dari desain LPF
fvtool(Hd);
%masukan sinyal sinus
t=0:1/Fs:0.0025;
f1=5000;
sinyal_square=square(2*pi*f1*t)
%menampilkan sinyal sebelum difilter
figure('name', 'sinyal sebelum difilter')
subplot(211)
plot(t,sinyal_square);
xlabel('time/s');
ylabel('amplitudo');
title('sinyal sebelum difilter dalam domain waktu');
subplot(212)
sff=fft(sinyal_square,512);
AFs=abs(sff);
%frekuensi sampling
f=(0:255)*Fs/512;
plot(f,AFs(1:256));
xlabel('frekuensi/Hz');
ylabel('amplitudo');
title('sinyal sebelum difilter dalam domain frekuensi');
%sinyal setelah difilter2
figure('name','sinyal setelah difilter');
%filter sinyal square
sinyal_filter=filter(Hd,sinyal_square);
subplot(211)
plot(t,sinyal_filter);
xlabel('time/s');
ylabel('amplitudo');
title('sinyal setelah dalam domain waktu');
axis([0.002 0.0025 -2 2]);
subplot (212)
Fsf=fft(sinyal_filter,512);
AFsf=abs(Fsf);
f=(0:255)*Fs/512;
plot(f,AFsf(1:256));
xlabel('frekuensi/Hz');

ylabel('amplitudo');
title('sinyal setelah difilter dalam domain frekuensi')
sinyal sebelum difilter dalam domain waktu

amplitudo

0.5
0
-0.5
-1

0.5

time/s

1.5

2.5
-3

x 10

sinyal sebelum difilter dalam domain frekuensi

80

amplitudo

60
40
20
0

0.2

0.4

0.6

0.8

1
frekuensi/Hz

1.2

1.4

1.6

1.8

2
4

x 10

sinyal setelah dalam domain waktu

amplitudo

1
0
-1
-2
2

2.1

2.2

time/s

2.3

2.4

2.5
-3

x 10

sinyal setelah difilter dalam domain frekuensi

50

amplitudo

40
30
20
10
0

0.2

0.4

0.6

0.8

1
frekuensi/Hz

1.2

Sinyal sawtooth
% All frequency values are in Hz.
Fs = 40000; % Sampling Frequency
Fpass
Fstop
Dpass
Dstop
dens

=
=
=
=
=

10000;
12000;
0.057501127785;
0.0001;
20;

%
%
%
%
%

Passband Frequency
Stopband Frequency
Passband Ripple
Stopband Attenuation
Density Factor

% Calculate the order from the parameters using FIRPMORD.

1.4

1.6

1.8

2
4

x 10

[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);


% Calculate the coefficients using the FIRPM function.
b = firpm(N, Fo, Ao, W, {dens});
Hd = dfilt.dffir(b);
% [EOF]
%menampilkan plot dari desain LPF
fvtool(Hd);
%masukan sinyal sinus
t=0:1/Fs:0.25;
f1= 10000;
f2= 200;
f3= 3000;
sinyal_sawtooth=sawtooth(2*pi*f1*t)+ sawtooth(2*pi*f2*t)+ sawtooth(2*pi*f3*t);
%menampilkan sinyal sebelum difilter
figure('name', 'sinyal sebelum difilter')
subplot(211)
plot(t,sinyal_sawtooth);
xlabel('time/s');
ylabel('amplitudo');
title('sinyal sebelum difilter dalam domain waktu');
subplot(212)
sff=fft(sinyal_sawtooth,512);
AFs=abs(sff);
%frekuensi sampling
f=(0:255)*Fs/512;
plot(f,AFs(1:256));
xlabel('frekuensi/Hz');
ylabel('amplitudo');
title('sinyal sebelum difilter dalam domain frekuensi');
%sinyal setelah difilter2
figure('name','sinyal setelah difilter');
%filter sinyal square
sinyal_filter=filter(Hd,sinyal_sawtooth);
subplot(211)
plot(t,sinyal_filter);
xlabel('time/s');
ylabel('amplitudo');
title('sinyal setelah dalam domain waktu');
axis([0.002 0.0025 -2 2]);
subplot (212)
Fsf=fft(sinyal_filter,512);
AFsf=abs(Fsf);
f=(0:255)*Fs/512;
plot(f,AFsf(1:256));
xlabel('frekuensi/Hz');
ylabel('amplitudo');
title('sinyal setelah difilter dalam domain frekuensi')