Marta Byczek Karol Chrupczalski Patrycja Grabowska |
Identyfikacja Układów Mechatronicznych Projekt nr 5 Sprawozdanie |
Prowadzący: mgr inż. Łukasz Ambroziński |
---|---|---|
IMIR, Mechatronika, Projektowanie Mechatroniczne |
Temat: Próbkowanie | Data zajęć: 7.05.2015r. |
Opis ćwiczenia:
Pozbycie się z nagrania zakłócenia.
Skrypt utworzony w Matlabie:
% standardowa procedura czyszcząca
clc
clear all
close all
% wczytanie sygnału Pulsu
load('Pulse.mat');
% częstotliwość próbkowania
fs = 44100; %[HZ]
% czas
t = (1:length(yp))/fs;
% psd
[pxx, fxx] = periodogram(yp, [], [], fs);
figure(1)
plot(t,yp);
xlabel('Czas [s]'); ylabel('Amplituda');
title('Sygnał czasowy');
figure(2)
semilogx( fxx,10*log10(pxx) );
xlabel('Częstotliwość [Hz]');ylabel('Amplituda [dB]');
title('Widmowa gęstość mocy');
% wyszukanie wymaganych częstotliwości
Agr = 10*log10( pxx(1) );
pasmo = fxx( 10*log10( pxx ) > Agr );
pass = pasmo( 10*log10( pxx ) > -50 );
fstop = [pasmo(1), pasmo(end) ];
fpass = [pass(1),pass(end) ];
% wczytanie pliku wav
[y, fs] = wavread('Nabucco.wav');
% wektor współczynników filtru dopasowanego
h=yp(end:-1:1);
% przefiltrowane
z1 = filter(h,1,y(:,1));
z2 = filter(h,1,y(:,2));
% wyświetlenie przefiltrowanych kanałów
figure(3)
subplot(2,1,1)
plot(tnab,z1,'b')
title('Kanal pierwszy po filtracji');
xlabel('czas [s]');
ylabel('Amplituda');
subplot(2,1,2)
plot(tnab,z2,'g');
title('Kanal drugi po filtracji');
xlabel('czas [s]');
ylabel('Amplituda');
% wykresy Bode'go filtru dopasowanego
figure(4)
fh = (0:length(h)-1)*fs./length(h);
fftfilt = fft(h);
ind = find( fh < fs/2 );
subplot(2,1,1)
semilogx( fh(ind),20*log( abs(fftfilt(ind)) ) );
xlabel('Częstotliwość [Hz]');
ylabel('Amplituda [dB]');
subplot(2,1,2)
semilogx( fh(ind),unwrap( angle(fftfilt(ind)) ) );
xlabel('Częstotliwość [Hz]');
ylabel('Faza [rad]');
% Kanał w którym był puls
figure(5)
subplot(2,1,1)
plot(tnab, y(:,2));
title('Kanał 2 - Sygnał przed filtracją');
xlabel('Czas [s]');
ylabel('Amplituda');
subplot(2,1,2)
plot(tnab,z2);
title('Kanał 2 - Sygnał po filtracją');
xlabel('Czas [s]');
ylabel('Amplituda');
% wyznaczenie czasu wystąpienia pulsu
[z2max,n]=max(abs(z2));
twyst = tnab(n)
Otrzymane wykresy:
Limity częstotliwości 1.346 - 215.3 Hz
Zakłócenia występują w II kanale od 2 sekundy