1 / 9

Ultralydposisjonering med lydkort

Ultralydposisjonering med lydkort. Prosjekt i digital signalbehandling og akustikk Inf3460 – vår ’08. Henning Vangli. Utstyr. Hardware: Et stykk 8-kanals EDIROL UA-101 USB-lydkort 6 transducere(ryggesensorer) En pc med USB Software: Lydkortdrivere MATLAB™ Egenskrevet matlabkode.

benard
Download Presentation

Ultralydposisjonering med lydkort

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Gjennomføring 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: • Liten følsomhet i inngangene gjør at bevegelsesområdet blir svært lite, og at en del av sensorene ofte faller ut. • 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. • Plott i Matlab bruker mye prosesseringstid. Begrenser hastigheten, men kan slås av. • 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. Avstandsdeteksjon 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

  7. Posisjonsbestemmelse For å finneposjonen, brukerjeg 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 • %Estimatingposition: • 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 00] • end • end

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

More Related