Professional Documents
Culture Documents
Gabrian A07
Gabrian A07
Gabrian A07
Apply a different window to eliminate the Gibbs phenomenon (other than Kaiser)
a. Blackman window
Attachment
Matlab code:
clc, clear all, close all
%% Signal(Time Domain)
F=[300 400 1000 2000]; %frequencies
A=[1 1 3 1];
Fs=6000;
fcll=350;
fclh=800; %Frequency cutoff
N=0.05*Fs;
t=0:1/Fs:(N-1)/Fs;
y=0;
for j=1:length(F)
y=y+A(j)*cos(2*pi*F(j)*t);
end
figure(1),subplot(3,2,1),plot(t,y)
title('Sinyal asli'),xlabel('time(s)'),ylabel('y(t)'),
ax2=axis(gca);
set(gcf,'Units','Normalized','OuterPosition',[0 0.04 0.5 .96])
%axis([min(t) max((t) min (y) max(y)])
%% Filter parameters
L=N+1; %filter length
n_h=(-(L-1)/2:(L-1)/2);
M=(N-1)/2;
figure(2),title('Amplitude Spectrum')
set(gcf,'Units','Normalized','OuterPosition',[0.5 0.04 0.5 0.96])
subplot(2,2,1),plot(f,A_Y,'r'),title('Original')
ax = axis(gca);
subplot(2,2,3),plot(f,A_H),title('Filter Response')
xlabel('f(Hz)'),ylabel('Amplitude')
%Y_dB = 10*log10((abs(Y(1:floor(N2/2)))));
%H_dB = 10*log10((abs(H(1:floor(N2/2)))));
%figure(10),plot(f,H_dB)
%xlabel('Frequency(Hz)'),ylabel('Amplitude(dB)')
%suptitle([num2str(fcl)'Hz Low-pass Filter (Hann
Window):L='num2str(L)])
y2_conv = ifft(HY,N2);
t2_conv = 0:1/Fs:(N2-1)*(1/Fs);
figure(1),subplot(3,2,2),plot(t,y),%axis(ax2)
hold on,plot(t2_conv,y2_conv)
legend('Origin','Filtered(conv)')
y2_kali = ifft(YH,N2);
t2_kali = 0:1/Fs:(N2-1)*(1/Fs);
figure(1),subplot(3,2,4),plot(t,y),
hold on,plot(t2_kali,y2_kali),%axis(ax2)
legend('Origin','Filtered(kali)')
%% Applying Filter (Freq domain; Length N)
Y2=fft(y,N);
H2=fft(h,N);
YH2=Y2.*H2;
y2=ifft(YH2);
figure(1),subplot(3,2,3),plot(t,y),%axis(ax2)
hold on,plot(t,y2)
legend('Origin','Filtered (kali, length N)')