xdel(winsid())
// Podstawowe Test
f1=25;
A1=50;
f2=27.5;
A2=100;
f3=50;
A3=50;
dt=1/1024;
T=1;
//wektor czasu
t=0:dt:1-dt;
// Utworzenie sygnałów skłądowych oraz sygnału wypadkowego poliharmonicznego
s1=A1*sin(2*%pi*f1*t);
s2=A2*cos(2*%pi*f2*t);
s3=A3*sin(2*%pi*f3*t);
sygnal=s1+s2+s3;
//Wykreslenie sygnalów w dzienicznie czasu
scf()
subplot(311)
plot(t,s1)
title(' sygnal A1*sin(2*%pi*f1*t)')
xlabel('Czestotliwosc [Hz]')
ylabel('Amplituda')
xgrid
subplot(312)
plot(t,s2)
title(' sygnal A2*cos(2*%pi*f2*t)')
xlabel('Czestotliwosc [Hz]')
ylabel('Amplituda')
xgrid
subplot(313)
plot(t,sygnal)
title('sygnał poliharmoniczny A1*sin(2*%pi*f1*t) + A2*cos(2*%pi*f2*t)')
xlabel('Czestotliwosc [Hz]')
ylabel('Amplituda')
xgrid
//Utworzenie okna
okno=window('hn',length(t));
sw=sygnal.*okno;
//Szybka transformata Fourera
ffsignal=fft(sw,-1);
// Skalowanie Osi
N = T/dt;
incf =1/(N*dt);
wektor_f=(0:N-1)
wektor_f(((N/2)+1):N)=(wektor_f(((N/2)+1):N))-N
wektor_f=wektor_f*incf//
//Wyrysowanie Widma Dwustronnego przeskalowanego
scf()
subplot(211)
title('przeskalowana os amplitud - widmo dwustronne')
plot2d(wektor_f,abs(ffsignal/N));
ylabel('amplituda')
xlabel('częstotliwośc [Hz]')
xgrid
//jednostronne
subplot(212)
title('widmo amplitudowe jednostronne')
plot2d(wektor_f(1:length(ffsignal)/2),abs((1/N)*ffsignal(1,1:length(ffsignal)/2)));
xlabel('częstotliwośc [Hz]')
ylabel('amplituda')
xgrid
//Wykreslenie Widma Mocy dla okna Kaisera oraz Hanninga
sm1=pspect(100,256,'hn',sygnal);
sm2=pspect(100,256,'kr',sygnal,4);
smize1=length(sm1);
smize2=length(sm2);
fr1=((1:smize1/2)/(smize1/length(sygnal)))*incf;
fr2=((1:smize2/2)/(smize2/length(sygnal)))*incf;
scf()
subplot(211)
plot(fr1,sm1(1:smize1/2))
xtitle('Widmo Mocy sygnalu poliharmonicnzego dla okna Hanninga')
xlabel('Czestotliwosc [Hz]')
ylabel('Amplituda')
xgrid
subplot(212)
plot(fr2,sm2(1:smize2/2))
xtitle('Widmo Mocy sygnalu poliharmonicnzego dla okna Kaisera')
xlabel('Czestotliwosc [Hz]')
ylabel('Amplituda')
xgrid