Laboratorium Podstaw Przetwarzania Sygnałów
Temat ćwiczenia: Filtr dolnoprzepustowy rzędu 65
Nazwisko i Imię prowadzącego kurs: Dr inż. Jerzy Szymbor
Wykonawca: Michał Walkowski 182004
Termin zajęć: 12.12.2011 15:15 TP
Skrypt
N=65; %dl odp impulsowej
M=(N-1)/2;
%tworzenie charakterystyki czestotliwosciowej idealnego filtru fir
Ar=[ones(1,6) zeros(1,53) ones(1,6)] %czesc rzeczywista char. cz.
Ai=zeros(1,N); %czesc urojona
A=Ar+j*Ai; %zespolona charakterysttka czestotliwosciowa
%oblicznie dft reczywistej h(n)
n=0:N-1; f=n/N; h=zeros(1,N);
for k=0:N-1
h=h+A(k+1)*exp(j*2*pi*k/N*(n-M));
end;
h=real(h)/N; h=h.*blackman(N)';
subplot(3,2,1);
stem(n-M,h); grid on; title('odp imp f. FIR - h(n)');
NF=1000; k=0:NF-1; fn=k/NF; wn=2*pi*fn;
H=freqz(h,1,wn); H=H.*exp(j*wn*N);
Ax=Ar; Hx=real(H);
subplot(3,2,3);
plot(f,Ar,'r',fn,abs(H),'b'); grid on; xlabel('czestotliwosc');
title('Charakterystykka ampl filtru idealna i faktyczna');
legend('idealna', 'faktyczna');
subplot(3,2,5)
plot(fn,20*log10(abs(H))); grid on; title('abs(H) w [dB]');
xlabel('czestotliwosc');
% generowanie sygnalu testowego
fs=1000; %czestotliwosc prbkowania w Hz
deltaT=1/fs; % okres probkowania
t=0:deltaT:1-deltaT; %wektor czasu
f1=50; f2=150; n=0:N-1;
s1=sin(2*pi*f1*t); s2=sin(2*pi*f2*t);
syg=s1+s2; syg=syg+randn(1,length(syg)); %sygnal zaszumiony
subplot(3,2,2)
plot(t,syg); grid on; title('Sygnal testowy'); xlabel('Czas');
F=fft(syg); FM=abs(F);
subplot(3,2,4)
plot(FM); grid on; title('Widmo sygnalu testowego');
xlabel('czestotliwosc');
FF=F.*H; % zespolone widmo sygnallu testowego po filtracji
FF=abs(FF);
subplot(3,2,6)
plot(FF); grid on; title('Widmo sygnalu testowego po filtracji');
xlabel('czestotliwosc');
Wykresy
Wnioski
Na wykresach widać że filtr dolnoprzepustowy zadziałał. Składowa 150 Hz została odfiltrowana.