Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Prosjekt i digital signalbehandling og akustikk Inf3460 – vår ’08 Henning Vangli.

Liknende presentasjoner


Presentasjon om: "Prosjekt i digital signalbehandling og akustikk Inf3460 – vår ’08 Henning Vangli."— Utskrift av presentasjonen:

1 Prosjekt i digital signalbehandling og akustikk Inf3460 – vår ’08 Henning Vangli

2  Hardware:  Et stykk 8-kanals EDIROL UA-101 USB-lydkort  6 transducere(ryggesensorer)  En pc med USB  Software:  Lydkortdrivere  MATLAB™  Egenskrevet matlabkode

3 Oppgaven baserer seg på at Matlab skal kunne måle avstanden mellom flere mottagere og en sender, og ved å vite posisjonen til mottagerne kunne finne posisjonen til senderen. Dette forutsetter at Matlab klarer å starte og sende på samtlige kanaler samtidig. Dette oppnår man ved først å laste data inn i cachen på lydkortet, før man sender ett startsignal kalt ’trigger’. Dette skulle vise seg å være særdeles vanskelig å få stabilt.

4 I Matlab’s hjelpetekst finner jeg i ”Data Acquisition Toolbox” en ”property” jeg er helt avhengig av(grønn pil). Beklageligvis inneholder den et lite problem(rød pil):

5 Jeg kan derfor ikke sende en ny trigger til lydkortet før den forrige er ferdig behandlet. Dette begrenser dessverre hastigheten. Av andre begrensninger i prosjektet kan nevnes: 1. Liten følsomhet i inngangene gjør at bevegelsesområdet blir svært lite, og at en del av sensorene ofte faller ut. 2. Jeg har lagt inn korreksjon for sensortreghet ved økende støynivå, men pga liten følsomhet vil ofte støyen være høyere en signalet. 3. Plott i Matlab bruker mye prosesseringstid. Begrenser hastigheten, men kan slås av. 4. Grunnet usporadiske forsinkelser i prosessorplanlegningen og/eller buffere, blir en del av målingene nesten alltid forsinket. Dette har jeg prøvd å rette på(se neste slide).

6

7 Avstandsmåling gjøres ved å finne første forekomst av en sample som er høyere enn støynivået som antas å være det høyeste blant de første 118 samplene

8 For å finne posjonen, bruker jeg LSQ-metoden:  % Using trilateration w/minimum squared error  noError = find(measuredDist > 0);%Finding all positive and nonzero entries  noErrorl = length(noError) %Number of assumed funtional distance measurements   A = zeros(noErrorl-1,3);  b = zeros(noErrorl-1,1);  if(noErrorl >= 3)  xyztopsq = sum((Xm(noError(noErrorl),:)).^2);%Saving comp. time by precomputing this value  disttopsq = measuredDist(noError(noErrorl))^2;%Same with this one  for(i = 1:(noErrorl-1))  b(i) = (measuredDist(noError(i))^2) - disttopsq - sum((Xm(noError(i),:)).^2) + xyztopsq;  A(i,:) = 2.*( Xm(noError(noErrorl),:) - Xm(i,:));  end  %Estimating position:  if(rank(A) < 3)  pos = lsqr(A,b,[],[],[],[],[0;0;lastpos(3)])%If a sensor that normally makes Xm non-singular fails, last found z- coordinate is used.  else  pos = lsqr(A,b)  lastpos = pos;  end  else  'Feil i for mange målinger'  pos = [0 0 0]  end

9 Alt i alt virker programmet. Men den har fortsatt store begrensninger. Selv med 5 sensorer:


Laste ned ppt "Prosjekt i digital signalbehandling og akustikk Inf3460 – vår ’08 Henning Vangli."

Liknende presentasjoner


Annonser fra Google