Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % WCZYTYWANIE SYGNAŁU Z PLIKU
- [x1,fp_x1] = audioread('mbi04jeden.wav');
- % x1 - zmienna do ktorej przypisujemy sygnał z pliku
- % fp_x1 - częstotliwośc próbkowania nagrania z pliku
- % DECYMACJA SYGNAŁU X1 --^
- dr = 4; % wartość rzędu deycmacji
- y1 = decimate(x1, dr); % decymacja sygnału x1
- % Po decymacji należy wygenerować oś czasu
- N_y1 = length(y1); % ilośc próbek sygnału y1
- fp_y1 = fp_x1/dr; % częstotliwość sygnału y1
- t_y1 = 0 : 1/fp_y1 : (N_y1 -1)/fp_y1; % generacja osi czasu
- % Rysujemy wykres
- subplot(4,2,1); % 4wiersze, 2kolumny, wybrana 1 komórka
- plot(t_y1, y1); % rysowanie wykresu
- title('Wykres 1');
- ylabel('sygnal po decymacji');
- xlabel('czas [s]');
- % WIDMO AMPLITUDOWE SYGNAŁU x1/ MODUŁ WIDMA x1
- NF_x1 = 2^nextpow2(fp_x1); % liczba próbek widma
- NF2_x1 = NF_x1/2 + 1; % pozbycie się lustrzanego odbicia
- v2 = fft(x1, NF_x1); % wyznaczenie widma zespolonego
- w2 = abs(v2); % wyznaczenie widma amplitudowego
- f_x1 = linspace(0, fp_x1/2, NF2_x1); % generacja osi czętotliwości
- % Rysujemy wykres
- subplot(4,2,2);
- plot(f_x1, w2(1:NF2_x1)); % wizulaizacja widma
- title('wykres 2');
- ylabel('widmo');
- xlabel('częstotliwość [Hz]');
- % PROJEKTOWANIE FILTRU GÓRNOPRZEPUSTOWEGO
- fgr = 1200; % częstotliwość graniczna
- M = 301; % długość odpowiedzi impulsowej
- fgn = fgr/(fp_x1/2); % unormowana częstotliwość graniczna
- h = fir1(M-1, fgn, 'high'); % filtr górnoprzepustowy
- % moduł funkcji transmitancji (czyli podajemy zamiast 'y' po prostu 'h')
- v3 = fft(h, NF_x1);
- w3 = abs(v3);
- % rysujemy wykres
- subplot(4,2,3);
- plot(f_x1, w3(1:NF2_x1));
- title('Wykres 3');
- ylabel('moduł transmitancji');
- xlabel('czestotliwość [Hz]');
- % FILTRACJA SYGNAŁU Z UTWORZONEGO FILTRU
- y4 = filter (h, 1, x1); %przefiltrowany sygnał do zmiennej x1f
- % widmo liczymy tak samo, korzystamy z wcześniejszych NF_x1 oraz NF2_x1
- %--------------------------------------------------------------------------
- % ZADANIE 5: Sinusoida o zmiennej częstotliwości
- %--------------------------------------------------------------------------
- fp5 = 150; % częstotliwość próbkowania
- N5 = 1500; % liczba próbek: 10s * 150
- t5_1 = 0 : 1/fp5 : 2; % generowanie osi do 2 sekundy
- t5_2 = 2 : 1/fp5 : 4; % generowanie osi od 2s do 4s
- t5_3 = 4 : 1/fp5 : 8; % generowanie osi od 4s do 8s
- t5_4 = 8 : 1/fp5 : 10; % generowanie osi od 8s do 10s
- f5_1 = 9; % czestotliwosc w przedziale 0s-2s
- f5_2 = 10; % czestotliwosc w przedziale 2s-4s
- y5_3 = 1/3*randn(1,601); % szum o rozkładzie normalnym i A=1
- f5_4 = 9; % częstotliwość w przedziale 8s-10s
- y5_1 = sin(t5_1*2*pi*f5_1); % sinusoida 0s-2s
- y5_2 = sin(t5_2*2*pi*f5_2 + pi/4); % sinusoida 2s-4s;
- y5_4 = sin(t5_4*2*pi*f5_4 + pi); % sinusoida 8s-10s
- y5 = [y5_1 y5_2 y5_3 y5_4]; % złożenie sygnałów (suma wektorów)
- t5 = [t5_1 t5_2 t5_3 t5_4]; % złożenie osi czasu (suma wektorów)
- %RYSOWANIE WYKRESU
- subplot(2,4,5);
- plot(t6, y6);
- grid on;
- title('Wykres 5');
- xlabel('czas[s]');
- ylabel('sygnał');
- %--------------------------------------------------------------------------
- % ZADANIE 6: Sygnał trójkątny
- %--------------------------------------------------------------------------
- f6 = 6;
- t6 = 5;
- fp6 = 300;
- y6 = sawtooth(2*pi*f6*t6);
- [r6, u6] = xcorr(y6,y6,3); % autokorelacja, tau_max = 3
- subplot(2,4,6);
- plot(u6, r6);
- title('Wykres 6');
- ylabel('autokorelacja');
- xlabel('przesuniecie s');
- %--------------------------------------------------------------------------
- % ZADANIE 7: KORELACJA SYGNAŁU Z 6 I 5 ZADANIA
- %--------------------------------------------------------------------------
- %KORELACJA
- [r7, u7] = xcorr(y6, y5, 2); % korelacja, tau_max = 2
- %RYSOWANIE WYKRESU
- subplot(2,4,7);
- plot(u7, r7);
- title('Wykres 7');
- ylabel('korelacja');
- xlabel('przesuniecie s');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement