Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clc
- clear all
- close all
- [y,fs]=audioread('31_samogloski_aaa1.wav');
- dt=1/fs;
- t=dt*[0:1:(length(y)-1)];
- subplot(2,1,1)
- plot(t,y(:,1)); % sygnał akustyczny
- title('wykres sygnału przed filtracją')
- subplot(2,1,2);
- plot(t,y(:,2)); % sygnał eeg
- fg1=250;
- f=[ 0, 2*fg1/fs, 2*1.1*fg1/fs, 1];
- A=[1,1,0,0];
- %filtracja
- B=fir2(1024,f,A);
- yfiltr(:,1)=conv(y(:,1),B);
- yfiltr(:,2)=conv(y(:,2),B);
- t=dt*[0:1:(length(yfiltr)-1)];
- figure(2)
- subplot(2,1,1)
- plot(t,yfiltr(:,1));% sygnał akustyczny
- title('sygnał po filtracji')
- subplot(2,1,2)
- plot(t,yfiltr(:,2));% sygnał eeg
- %poniżej etapy wyznaczania tonu podstawowego metodą analizy przejść przez 0
- for i=1:1:length(yfiltr);
- if yfiltr(i,1) >= 0; %w celu analizy sygnału glotograficznego 1 -> 2
- yn(i,1)=1;
- else
- yn(i,1)=-1;
- end
- end
- for i=1:1:(length(yn)-1);
- if (yn(i,1) == 1 && yn(i+1,1) == 1)
- ys(i,1)= 0;
- else if (yn(i,1) == -1 && yn(i+1,1) == -1);
- ys(i,1)= 0;
- else
- ys(i,1)=1;
- end
- end
- end
- l=0;
- for k=1:1:length(ys)
- if ys(k)==1
- l=l+1;
- odleglosc(l)=k;
- end
- end
- n=0;
- for m=1:2:length(odleglosc)-2
- n=n+1;
- okres(n)=odleglosc(m+2)-odleglosc(m);
- end
- T=mean(okres);
- Tx=T*dt;
- f0=(1/Tx);%ton podstawowy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement