Professional Documents
Culture Documents
%percobaan 1
i=1:1000;
fs=16000;
f1=200;
f2=1000;
f3=5000;
pi=3.14;
sin1=sin(2*pi*i*f1/fs);
sin2=sin(2*pi*i*f2/fs);
sin3=sin(2*pi*i*f3/fs);
sintot=(sin1+sin2+sin3)/3;
plot(sintot);
freqz(sintot);
%percobaan2
%rumus
%b = firl (n ,Wn)
%Wn = fs/fc*0.5
n=32;
Wnlow=800/(16000*0.5);
Wnbandlow=1000/(16000*0.5);
Wnbandhigh=3000/(16000*0.5);
Wn=6000/(16000*0.5);
lowpass = fir1(n,Wnlow);%(32,0.1)
bandpass = fir1(n,[Wnbandlow, Wnbandhigh]); %(32,[0.123, 0.375], 'bandpass')
highpass = fir1(n, Wn);%(32,0.75)
freqz(bandpass);
#define PI 3.14159265
float koef_filter[BUFFERLENGTH] = {0.020041, 0.064976, 0.167492,
0.250847, 0.250847, 0.167492, 0.064976, 0.020041};
float buffer[BUFFERLENGTH];
float x[LENGTH];
float y[LENGTH];
int i, j;
int i, j, k;
#define PI 3.14159265
float koef_filter[BUFFERLENGTH] = {0.020041, 0.064976, 0.167492,
0.250847, 0.250847, 0.167492, 0.064976, 0.020041};
float buffer[BUFFERLENGTH];
float x[LENGTH];
float y[LENGTH];
int i, j;
int k;
float filter(float input) {
float hasil;
//buffering
for(j = BUFFERLENGTH - 1; j > 0; j--) {
buffer[j] = buffer[j-1];
}
//input disimpan di buffer 0
buffer[0] = input;
// perhitungan filter
hasil = 0;
for(j = 0; j < BUFFERLENGTH; j++) {
hasil = hasil + buffer[j+k] *
round(koef_filter[j]*pow(2,32));
}
// kembalikan hasil pemfilteran
return hasil;
}
int main(int argc, char *argv[])
{
FILE *pFile;
//siapkan input
for(i=0; i < LENGTH; i++) {
x[i] =
(sin(2*PI*200/16000*i)+sin(2*PI*1000/16000*i)+sin(2*PI*5000/16000*i)) / 3;
}
//inisialisasi buffer dengan nol
for(i=0; i < BUFFERLENGTH; i++) {
buffer[i] = 0;
}
i = 1:length(y);
figure;
subplot(2,1,1); plot(i/Fs,y_left); xlabel('Time (s)');
ylabel('Amplitude'); ylim([-1 1]); title('Left');
subplot(2,1,2); plot(i/Fs,y_right); xlabel('Time (s)');
ylabel('Amplitude'); ylim([-1 1]); title('Right');
[h,w] = freqz((y_left+y_right)/2);
figure;
plot(w/(2*pi)*Fs/1000,20*log10(abs(h)));
xlabel('Frequency (kHz)');
ylabel('Magnitude (dB)');
title('Audio Magnitude Spectrum');
y_out = [y_left',y_right'];
// Buffering input
buffer[k] = input;
// perhitungan filter
hasil = 0;
for (j = 0; j < BUFFERLENGTH; j++) {
hasil += (koef_filter[j] >> 16) * (buffer[(k +
j) % BUFFERLENGTH] >> 15);
}
// Decreasing i (circular)
k=(k+BUFFERLENGTH-1)%BUFFERLENGTH;
//siapkan input
//ganti file name sesuai nama file input
pFileInput = fopen("white_noise.txt","r");
// Buffering input
buffer[k] = input;
// perhitungan filter
hasil = 0;
for (j = 0; j < BUFFERLENGTH; j++) {
hasil += (koef_filter[j] >> 16) * (buffer[(k +
j) % BUFFERLENGTH] >> 15);
}
// Decreasing i (circular)
k=(k+BUFFERLENGTH-1)%BUFFERLENGTH;
//siapkan input
//ganti file name sesuai nama file input
pFileInput = fopen("white_noise.txt","r");
// Buffering input
buffer[k] = input;
// perhitungan filter
hasil = 0;
for (j = 0; j < BUFFERLENGTH; j++) {
hasil += (koef_filter[j] >> 16) * (buffer[(k +
j) % BUFFERLENGTH] >> 15);
}
// Decreasing i (circular)
k=(k+BUFFERLENGTH-1)%BUFFERLENGTH;
//siapkan input
//ganti file name sesuai nama file input
pFileInput = fopen("white_noise.txt","r");