Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- close all; clear all; clc;
- a = load('sejs_2.txt');
- [Np, Nt] = size(a);
- Fs = 400;
- dx = 25;
- t=(0:(Np-1))'/Fs;
- figure; hold on;
- for k=1:24
- plot(t, a(:,k)+k-1);
- xc = xcorr(a(:,k),a(:,1));
- FB(k,1)=find(xc==max(xc(:)),1,'first')
- end
- hold off
- %Obliczenie rózniczy czasu pomiędzy odbiornikiem k'tym a pierwszym.
- %Interesuje nas tylko wartosc max. nie musimy zapamietac wektora.
- FB =(FB-Np)/Fs %odjąć ilość próbek (przesówamy się do zera. pierwsza próbka względem pierwszej ma zerowe przesunięcie)
- %Jak znając czasowe przesunięcie, odgadnąć prędkość?
- %prędkośc : dx/dt
- %wykorzystać regresję liniową (linia trendu), bo śrenia to w podstawówce.
- %mamy układ równań, 23 równania, 1 niewiadoma.
- %dx = v * dt. zamieniamy dx na 25 wartości od 0 do 575. dt na próbkowanie
- %Fs.
- %zamieniamy dx dt na wektory.
- G=ones(Nt,2);
- G(:,1)=FB; %Do pierwszej kolumny wstawiamy wartosci z FB;
- x=(0:Nt-1)'*dx;
- v=pinv(G'*G)*G'*x %Otrzymujemy prędkość. oraz przesunięcie. Prędkość 600.
- v=pinv(G)*x %pinv to macierz odwrotna. argument^-1
- %%Szereg Fouriera, zamiana funkcji niecigej na cigla.
- close all; clear all; clc;
- Fs=100;
- t=-10:(1/Fs):10;
- xt=1.0*(abs(t)<1);
- XT=ones(size(t))/2;
- for n=1:15000
- an=2*sin(n*pi/2)/(n*pi);
- XT=XT+an*cos(n*pi*t/2);
- end
- plot(t,xt,'.r',t,XT,'g')
- %%Szereg Fouriera, Trójkąt
- close all; clear all; clc;
- Fs=100;
- t=-10:(1/Fs):10;
- xt=1.0*(1-abs(t)).*(abs(t)<1);
- XT=ones(size(t))/8; %%wyraz wolny
- for n=1:100
- an=8*(1-cos(n*pi/4))/(n*n*pi*pi);
- XT=XT+an*cos(n*pi*t/4);
- end
- plot(t,xt,'.r',t,XT,'g')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement