Podstawowe:
dt=1/1024;
t=0:dt:1-dt;
A1=50;
A2=100;
A3=50;
f1=25;
f2=27,5;
f3=50;
s1=A1*sin(2*%pi*f1*t)
s2=A2*sin(2*%pi*f2*t)
s3=A3*sin(2*%pi*f3*t)
sygnal1=s1+s2+s3;
okno=window('hn',length(t)); //zadanie wymaga zastosowania 2 roznych funkcji okna nalezy zmienic 'hn' ->pomoc dla funkcji window F1
sw=sygnal1.*okno
scf()
title('sygnal w dziedzinie czasu')
plot(t,sygnal1)
scf()
title('funkcja okna w dziedzinie czasu')
plot(t,okno)
ffsignal=fft(sw,-1);
//scf()
//title('wynik transformaty - widmo dwustronne w funkcji indeksu probki')
//plot2d(ffsignal)
//scf()
//title('wynik transformaty - wartosci bezwzgledne widmo dwustronne w funkcji indeksu probki')
//plot2d(abs(ffsignal))
N = length(t);
incf = 1 / (N*dt);
wektor_czest = (0:N-1) *incf;
wektor_czest(((N/2)+1):N)=wektor_czest(((N/2)+1):N)-N
scf()
title('przeskalowana osie - widmo dwustronne')
ffsignal_skal=ffsignal/N
plot2d(wektor_czest,abs(ffsignal_skal));
scf()
title('widmo amplitudowe jednostronne')
plot2d(wektor_czest(1:length(ffsignal)/2),abs(2*ffsignal_skal(1,1:length(ffsignal)/2)));
xlabel('częstotliwośc [HZ]')
ylabel('amplituda [np.V]')
sm=pspect(100,256,'hn',sygnal1);
smsize=length(sm);
fr=(1:smsize)/smsize;
scf()
title('widmo mocy skala liniowa')
plot((1:smsize/2)/(2*smsize/length(sygnal1)),sm(1:smsize/2))
scf()
title('widmo mocy skala logarytmiczna')
plot(fr,log(sm));
dodatkowe:
clear
xdel(winsid())
loadXcosLibs();
importXcosDiagram('c:\Nowy folder\dodatkowe.xcos');
T=2;
dt=0.05;
A1=50;
A2=30;
f1=0.01;
f2=1.1;
K=10;
/////////////////////////////////////
t=[0:dt:T-dt];
s1=A1*sin(2*%pi*f1*t)
s2=A2*sin(2*%pi*f2*t)
sygnal1=s1+s2;
okno=window('hn',length(t)); //zadanie wymaga zastosowania 2 roznych funkcji okna nalezy zmienic 'hn' ->pomoc dla funkcji window F1
sw=sygnal1.*okno
scf()
title('sygnal w dziedzinie czasu')
plot(t,sygnal1)
scf()
title('funkcja okna w dziedzinie czasu')
plot(t,okno)
ffsignal=fft(sw,-1);
N = length(t);
incf = 1 / (N*dt);
wektor_czest = (0:N-1) *incf;
wektor_czest(((N/2)+1):N)=wektor_czest(((N/2)+1):N)-N
scf()
title('przeskalowana osie - widmo dwustronne')
ffsignal_skal=ffsignal/N
plot2d(wektor_czest,abs(ffsignal_skal));
scf()
title('widmo amplitudowe jednostronne')
plot2d(wektor_czest(1:length(ffsignal)/2),abs(2*ffsignal_skal(1,1:length(ffsignal)/2)));
xlabel('częstotliwośc [HZ]')
ylabel('amplituda [np.V]')
sm=pspect(8,32,'hn',sygnal1);
smsize=length(sm);
fr=(1:smsize)/smsize;
scf()
title('widmo mocy skala liniowa')
plot((1:smsize/2)/(2*smsize/length(sygnal1)),sm(1:smsize/2))
scf()
title('widmo mocy skala logarytmiczna')
plot(fr,log(sm));
//model z XCOS
T=30;
t=[0:dt:T-dt];
s1=A1*sin(2*%pi*f1*t)
s2=A2*sin(2*%pi*f2*t)
sygnal1=s1+s2;
V.time=t';
V.values=sygnal1';
xcos_simulate(scs_m,4)
scf()
subplot(2,1,1)
plot(A.time,A.values)
xgrid
xtitle('wykres przed filtracja');
subplot(2,1,2)
plot(B.time,B.values)
xgrid
xtitle('wykres po filtracji');
666666666:
clc
clear
xdel(winsid())
loadXcosLibs();
importXcosDiagram('C:\6.xcos');
dt=0.05;
T=2;
A1=50;
A2=30;
f1=0.01;
f2=1.1;
t=[0:dt:T-dt];
s1=A1*sin(2*%pi*f1*t)
s2=A2*sin(2*%pi*f2*t)
sygnal=s1+s2;
scf(1)
title('Sygnal w dziedzinie czasu')
plot(t,sygnal)
okno=window('hn',length(t));
sw=sygnal.*okno
ffsignal=fft(sw,-1); // transformata Fourier
N=length(t);
incf=1/(N*dt);
// skalowanie osi (amplituda i częstotliwosc)
wektor_czest=(0:N-1)*incf;
wektor_czest(((N/2)+1):N)=wektor_czest(((N/2)+1):N)-N
ffsignal_skal=2*ffsignal/N
scf(2)
title('Widmo dwustronne po skalowaniu osi amplitudy i częstotliwości')
plot2d(wektor_czest,abs(ffsignal_skal))
scf(3)
title('Widmo jednosttronne')
plot2d(wektor_czest(1:length(ffsignal)/2),abs(2*ffsignal_skal(1,1:length(ffsignal)/2)));
xlabel('Czestotliwosc [Hz]')
ylabel('Amplituda')
// wykresy mocy dla trzech roznych okien
sm=pspect(8,32,'hn',sygnal);
smsize=length(sm);
fr=(1:smsize)/smsize;
scf(4)
subplot(331)
plot(fr,sm);
subplot(332);
title('Widmo mocy Hanninga');
plot((1:smsize/2)/(2*smsize/length(sygnal)),sm(1:smsize/2))
subplot(333);
plot(fr,log(sm));
sm=pspect(8,32,'hm',sygnal);
smsize=length(sm);
fr=(1:smsize)/smsize;
subplot(334)
plot(fr,sm);
subplot(335);
title('Widmo mocy Hamminga');
plot((1:smsize/2)/(2*smsize/length(sygnal)),sm(1:smsize/2))
subplot(336);
plot(fr,log(sm));
sm=pspect(8,32,'re',sygnal);
smsize=length(sm);
fr=(1:smsize)/smsize;
subplot(337)
plot(fr,sm);
subplot(338);
title('Widmo mocy prostokątne');
plot((1:smsize/2)/(2*smsize/length(sygnal)),sm(1:smsize/2))
subplot(339);
plot(fr,log(sm));
// Xcos
K=1;
T=30;
t=[0:dt:T-dt];
s1=A1*sin(2*%pi*f1*t)
s2=A2*sin(2*%pi*f2*t)
sygnal=s1+s2;
V.time = t';
V.values= sygnal';
Info=scicos_simulate(scs_m,Info=list())
scf(5)
subplot(2,1,1)
plot(B.time,B.values)
xgrid
xtitle('Wykres przed filtracja');
subplot(2,1,2)
plot(A.time,A.values)
xgrid
xtitle('Wykres po filtracji');
// Wnioski
// w analizowanym przypadku najefektywniejsze jest zastosowanie okna Hamminga, ponieważ w przypadku kiedy sygnał ma tylko dwie składowe harmoniczne, a konieczne jest szybie wygaszenie przecieków energii sygnału, to własnie okno Hamminga, dzieki temu ze pierwszy listek boczny ma najwiekszy spadek amplitudy w stosunku do pozostalym wykorzystanych okien, jest najlepszym rozwiazaniem.