Professional Documents
Culture Documents
Kod
Kod
clear
close all
Fs=200;
tp=1/Fs;
a1=2;
a2=1;
a3=1;
fsyg1=10;
fsyg2=20;
fsyg3=40;
y1=a1*sin(2*pi*fsyg1*t);
y2=a2*sin(2*pi*fsyg2*t);
y3=a3*sin(2*pi*fsyg3*t);
y=y1+y2+y3;
dFs=Fs/N;
f=0:dFs:Fs-dFs; %dla widma%
M=length(y);
wid=abs(fft(y));
N=length(wid);
wid(1)=wid(1)/N;
wid(2:end)=wid(2:end)./(N/2);
df=Fs/N;
fprintf('Rozdzielczo�� analizy = %1.2f Hz\n',df);
f=0:df:(Fs-df);
figure(1)
subplot(211)
%plot(t,y,'b');
plot(t,y,'b');
axis tight;
grid on
xlabel('Czas')
ylabel('Amplituda')
title('Sygna� (pierwsze 1000 pr�bek)')
hold on;
subplot(212)
stem(f,widmo,'-*b');%rysujemy wykres, dla widma wykorzystujemy sten, '-' bo linia,
'*' bo punkty zaznaczone gwiazdkami, 'b' bo kolor%
axis tight;
grid on;
title('Widmo');
xlabel('Czestotliwosc [Hz]');
ylabel('Amplituda');
figure(2)
spectrogram(y,boxcar(128),100,[],Fs,'yaxis');%tutaj pierwsze, jaki mamy sygna�,
boxcar oznacza okno jakie wycinamy (mo�e by� te� inne okno) w nawiasie jest liczba
pr�bek w oknie(128), noverlap, czyli ile nochodzi (100), potem jest transformata
fouriera, jak wstawimy [] to bierze tyle ile by�o w oknie; potem jest Fs czyli
cz�stotliwo�� pr�bkowania (jak jej nie damy, liczymy w warto�ciach unormowanych);
potem mo�na sobie na przyk��d yaxis - odwr�ci� osie.
title('Spektrogram')
%sound (y, Fs)
Program 2
%%% Spectrogram %%%
clear
close all
Fs=200;
tp=1/Fs;
a1=1;
a2=1;
a3=1;
fsyg1=10;
fsyg2=20;
fsyg3=40;
t=0:tp:8-tp;
t1=0:tp:2-tp; % czestotliwosc probkowania Fs=2000Hz; czas koncowy tk=2s
y1=a1*sin(2*pi*fsyg1*t1);
y2=a2*sin(2*pi*fsyg2*t1);
y3=a3*sin(2*pi*fsyg3*t1);
y4=a1*sin(2*pi*fsyg1*t1);
y=[y1 y2 y3 y4];
dFs=Fs/N;
f=0:dFs:Fs-dFs; %dla widma%
%t=0sek odpowiada f=100Hz; t=1sek odpowiada f=500Hz
%y=chirp(t,100,1,500,'linear'); % 'linear', 'quadratic', and 'logarithmic' zrobione
to jest tak, � w 0 jest 100, w 1s jest 500 hz czestotliwo��. Zwi�ksza sie ona
liniowo
M=length(y);
wid=abs(fft(y));
N=length(wid);
wid(1)=wid(1)/N;
wid(2:end)=wid(2:end)./(N/2);
df=Fs/N;
fprintf('Rozdzielczo�� analizy = %1.2f Hz\n',df);
f=0:df:(Fs-df);
figure(1)
subplot(211)
%plot(t,y,'b');
plot(t,y,'b');
axis tight;
grid on
xlabel('Czas')
ylabel('Amplituda')
title('Sygna� (pierwsze 1000 pr�bek)')
hold on;
subplot(212)
stem(f,widmo,'-*b');%rysujemy wykres, dla widma wykorzystujemy sten, '-' bo linia,
'*' bo punkty zaznaczone gwiazdkami, 'b' bo kolor%
axis tight;
grid on;
title('Widmo');
xlabel('Czestotliwosc [Hz]');
ylabel('Amplituda');
figure(2)
%spectrogram(y,boxcar(128),100,[],Fs,'yaxis');%tutaj pierwsze, jaki mamy sygna�,
boxcar oznacza okno jakie wycinamy (mo�e by� te� inne okno) w nawiasie jest liczba
pr�bek w oknie(128), noverlap, czyli ile nochodzi (100), potem jest transformata
fouriera, jak wstawimy [] to bierze tyle ile by�o w oknie; potem jest Fs czyli
cz�stotliwo�� pr�bkowania (jak jej nie damy, liczymy w warto�ciach unormowanych);
potem mo�na sobie na przyk��d yaxis - odwr�ci� osie.
spectrogram(y,boxcar(256),100,[],Fs,'yaxis');
title('Spektrogram')
%sound (y, Fs)
Fs=200;
tp=1/Fs;
a1=1;
a2=1;
a3=1;
fsyg1=10;
fsyg2=20;
fsyg3=40;
t=0:tp:8-tp;
t1=0:tp:2-tp; % czestotliwosc probkowania Fs=2000Hz; czas koncowy tk=2s
y1=a1*sin(2*pi*fsyg1*t1);
y2=a2*sin(2*pi*fsyg2*t1);
y3=a3*sin(2*pi*fsyg3*t1);
y4=a1*sin(2*pi*fsyg1*t1);
y=[y1 y2 y3 y4];
dFs=Fs/N;
f=0:dFs:Fs-dFs; %dla widma%
M=length(y);
wid=abs(fft(y));
N=length(wid);
wid(1)=wid(1)/N;
wid(2:end)=wid(2:end)./(N/2);
df=Fs/N;
fprintf('Rozdzielczo�� analizy = %1.2f Hz\n',df);
f=0:df:(Fs-df);
figure(1)
subplot(211)
%plot(t,y,'b');
plot(t,y,'b');
axis tight;
grid on
xlabel('Czas')
ylabel('Amplituda')
title('Sygna� (pierwsze 1000 pr�bek)')
hold on;
subplot(212)
stem(f,widmo,'-*b');%rysujemy wykres, dla widma wykorzystujemy sten, '-' bo linia,
'*' bo punkty zaznaczone gwiazdkami, 'b' bo kolor%
axis tight;
grid on;
title('Widmo');
xlabel('Czestotliwosc [Hz]');
ylabel('Amplituda');
figure(2)
subplot(311)
%spectrogram(y,boxcar(128),100,[],Fs,'yaxis');%tutaj pierwsze, jaki mamy sygna�,
boxcar oznacza okno jakie wycinamy (mo�e by� te� inne okno) w nawiasie jest liczba
pr�bek w oknie(128), noverlap, czyli ile nochodzi (100), potem jest transformata
fouriera, jak wstawimy [] to bierze tyle ile by�o w oknie; potem jest Fs czyli
cz�stotliwo�� pr�bkowania (jak jej nie damy, liczymy w warto�ciach unormowanych);
potem mo�na sobie na przyk��d yaxis - odwr�ci� osie.
spectrogram(y,hamming(128),100,[],Fs,'yaxis');
title('Spektrogram')
hold on;
subplot(312)
%spectrogram(y,boxcar(128),100,[],Fs,'yaxis');%tutaj pierwsze, jaki mamy sygna�,
boxcar oznacza okno jakie wycinamy (mo�e by� te� inne okno) w nawiasie jest liczba
pr�bek w oknie(128), noverlap, czyli ile nochodzi (100), potem jest transformata
fouriera, jak wstawimy [] to bierze tyle ile by�o w oknie; potem jest Fs czyli
cz�stotliwo�� pr�bkowania (jak jej nie damy, liczymy w warto�ciach unormowanych);
potem mo�na sobie na przyk��d yaxis - odwr�ci� osie.
spectrogram(y,hamming(256),100,[],Fs,'yaxis');
hold on;
subplot(313)
%spectrogram(y,boxcar(128),100,[],Fs,'yaxis');%tutaj pierwsze, jaki mamy sygna�,
boxcar oznacza okno jakie wycinamy (mo�e by� te� inne okno) w nawiasie jest liczba
pr�bek w oknie(128), noverlap, czyli ile nochodzi (100), potem jest transformata
fouriera, jak wstawimy [] to bierze tyle ile by�o w oknie; potem jest Fs czyli
cz�stotliwo�� pr�bkowania (jak jej nie damy, liczymy w warto�ciach unormowanych);
potem mo�na sobie na przyk��d yaxis - odwr�ci� osie.
spectrogram(y,hamming(64),50,[],Fs,'yaxis');