Hallo!
Ich bin dabei, mit Simulink, ein (Audio)Signal auf dem Lautsprecher zu
schicken und mit dem Mikrofon zu empfangen. Das Signal ist die
sogenannten Maximum Length Sequence (MLS).
Leider empfange ich nicht das Signal, das ich geschickt habe (vom
Verlauf her).
dafür habe ich einfach Das Mikrofon an den Lautsprecher direct (mit
einem Kabel) angeschlossen.
Wie kann ich mein geschiktes Signal wieder am Mikrofon kriegen?
Im Anhang ist meine Schaltung zu sehen.
Danke im Voraus
Merlin
Verstehe ich es richtig, dass die verwendeten Audiodevices echte Devices
sind, also ein Ein- und Ausgang einer Soundkarte?
Und die Frage ist, wie man die Raumverzerrungen zwischen Lautsprecher
und Mikrofon kompensiert?
Ist das soweit richtig?
Peter
Peter Diener schrieb:
> Verstehe ich es richtig, dass die verwendeten Audiodevices echte Devices> sind, also ein Ein- und Ausgang einer Soundkarte?> Und die Frage ist, wie man die Raumverzerrungen zwischen Lautsprecher> und Mikrofon kompensiert?>> Ist das soweit richtig?>> Peter
Hallo, Peter!
Sorry für die verspätete Meldung, problem mit Internet zu Hause.
Die Divise sind echt. Ich habe den Ein- uns Ausgang der Soundkarte mit
einem Kabel direct verbunden. Ich habe nur ein Modell mit Simulink
gemacht um zu schauen was sich ausgibt. Das Signal (seq) kommt vom
Matlab-Workspace. Man kann auch dafür ein Sinus-Generator in Simuling
nehmen.
Mein hauptproblem liegt dabei, das gesendetes Signal auf dem Mikrofon zu
haben (wäre auch mit Amplitudenverlust). Bisher klappt es nicht. Sogar
der Verlauf am Mikrofon ist nicht das gleiche wie am Lautsprecher.
Merlin
Das ist ganz klar. Soundkarten werden über einen Treiber im
Betriebssystem angesprochen. Dieser Treiber ist, wie alles in Windows,
eventbasiert. Das heißt, er wird von Nachrichten getriggert. Damit diese
nicht andauernd kommen, sondern nur relativ selten, wird das Audiosignal
in sogenannte Sekundärpuffer gepackt, wobei ein Puffer normalerweise
etwa 512 bis 2048 Samples groß ist. Bei jedem getriggerten Event wird so
ein Puffer übergeben. Dadurch, dass das Signal im Voraus (beim
Abspielen) und im Nachhinein (beim Aufnehmen) zu Puffern gruppiert wird,
ergibt sich eine Verzögerungszeit, die sogenannte Latenzzeit. Das
Signal, das du sendest, wird also grundsätzlich erst nach der Latenzzeit
des Outputs + der Latenzzeit des Inputs in Matlab wieder ankommen. Bei
üblichen Treibern bewegt sich diese Latenz durchaus im Bereich einiger
Hundert Millisekunden.
Dass die Amplitude nicht gleich ist, das ist auch normal, die Eingänge
von Soundkarten haben in der Regel einen anderen Normpegel als die
Ausgänge. (Außer es handelt sich um normiertes Studioequipment - Motu
und teurer...)
Du schreibst auch, dass du das Kabel an den Mikrofoneingang anschließt.
Das kann auch nicht funktionieren. Der Mikrofoneingang einer Soundkarte
hat eine andere Steckerbelegung als der Line Out. Beim Mikrofoneingang
gibt es nur einen Audiokanal und der dritte Pin ist die Phantomspeisung,
die das Mikrofon als Versorgungsspannung braucht.
Wenn du eine direkte Verbindung mit einem Kabel herstellen willst, dann
muss das Line Out mit Line In verbinden.
Viele Grüße,
Peter
Das was du da simulierst hatte ich in real so schonmal aufgebaut. Die
MLS sind Rechtecksignale und auf Grund der Charakteristik der
Soundkarte, Verstärker, Mikrofon und dessen Verstärker wirst du niemals
ein 1 zu 1 Signal bekommen. Das ist ja bei MLS auch garnicht nötig. Die
empfangenen Signale werden zb. zeitsynchron zum ausgesendeten Signal mit
einer FFT, FHT oder synchron per Lockin-Amplifier + Integrator wieder
"dekodiert". Der Peak in der zeitlichen Abtastung stellt dann die
Laufzeit des Signales selber dar. Denoch empfehle ich dir eine Art
Umkodierung um die MLS in ihrer nötigen Bandbreite dem Übertragungsystem
anzupassen. Ich zb. habe eine 2-BPSK dazu benutzt, faktisch nichts
anderes wie Manchasterkodierung um gleichspannungsfrei zu werden.
Bei meinen Experimenten habe ich über die 2 Stereokanäle zwei
unterschiedliche MLS mit gleicher Länge synchron ausgesendet, 2-BPSK
kodiert. Mit einem Mikrofon dann empfangen, 2-BPSK dekodiert und mit
zwei FHTs (Fast Hadamard Transformation) passend zu den zwei MLS wieder
"dekodiert", genauer gesagt korreliert. Diese Korrelation ist es die aus
dem gestörten, verzerrtem empfangenen Signal noch unterhalb der
Rauschgrenze die beiden MLS Nutzsignale wieder sichtbar macht. Da ich
das Aussenden und Empfangen zeitsynchron und in Echtzeit gemacht habe
(48kHz Samplingfrequenz und Delays der Soundkarte sind feste Offsets)
konnte ich die räumliche Position des Mikrofones vor den beiden
Lautsprechern auf unter 1 cm genau bestimmen (Abstand 250cm bis 10cm vor
den Lautsprechern).
Du kannst zu jeder MLS die nötige Transpositionsmatizen für die FHT
berechnen. Die FHT arbeitet so ähnlich wie eine FFT nur mit dem
Unterschied das sie nur mit Additionen auskommt und als Resulat ihren
errechneten Peak im Zeitkontinuum hat, dh. der Peak definiert den
zeitlichen Begin der höchsten Übereinstimmung mit dem ausgesendeten MLS
Signal, ergo: Laufzeit wenn beides (Senden/Empfangen) zeitsynchron
gemacht wird. Letzendlich kann man damit Boxensysteme räumlich ausmessen
und die Laufzeiten zum Höhrer je nach Position korregieren. Als MLS
benutzte ich welche mit 127,255,1023,2047 Bits Länge. Das für mich
damals Schwierigste an der ganzen Sache war die FHT und die Berechnung
ihrer Transpositionsmatizen.
Gruß Hagen
Achso nochwas: mache nicht den Fehler deine MLS zb. direkt als
Soundsamples auszugeben. Beachte also das Nyquist Theorem. Deine
Soundkarte kann nur mit zb. 48kHz Samplerate deine Sounds ausgeben wie
auch empfangen. Ergo sollte deine MLS mit weniger als 48kHz/2 Chiprate
ausgesendet werden. Ich benutzte wie gesagt 2-PSK (BPSK) und kam so auf
12kHz Grenzfrequenz, bzw. Chiprate.
Diese 12kHz dividiert durch MLS-Länge ergibt die maximale
Wiederholungsrate pro Sekunde für deine MLS, und bei meinen
Positionsbestimmungen des Mikrofones sozusagen das Abtastinterval.
12kHz/2047 ~ 6Hz, also 6 Positionsbestimmungen pro Sekunde.
Gruß Hagen
Hi Andreas,
Hm, wenn ich aber das MLS Signal mit >= 48kHz zur Soundkarte gebe dann
ist dieses > Nyquist und kann garnicht mehr korrekt durch die Soundkarte
ohne Informationsverluste umgewandelt werden. Das meinte ich eigentlich.
Bei meinen Tests war es real so das wenn ich die MLS mit 24kHz bei 48kHz
Soundkarte rausgab es wesentlich schlechter empfangen wurde als wenn ich
es auf 24kHz BPSK kodiert habe (ergibt dann 12kHz).
Um also diese "Fehlerquelle" von vornhinein auszuschließen habe ich das
so gemacht und hatte wesentlich besserere Resultate als ohne diese
Umkodierung. Ich muß aber noch bemerken das ich das empfangene Signal
mit 48kHz gesampelt habe und dann ein 4fach Oversampling durchführte,
also defakto 4 FHTs um exakter auf die Phasenlage des Signales eingehen
zu können. Dies ist notwendig um die Positionsbestimmung in der
Auflösung zu erhöhen.
Gruß Hagen
Der OP hat leider keine Angabe gemacht was sein Ziel mit der Simulation
ist.
Möchte man die Übertragungseigenschaften des Signalweges messen dann
würde man ein Rauschen draufgeben und per FFT auswerten. In diesem
Moment wäre eine Bandbreitenreduzierung der MLS über eine Umkodierung
wenig sinnvoll. Selbst eine MLS wäre dafür nicht zwingend notwendig.
Ich gehe also davon aus das er die MLS bewusst gewählt hat um entweder
Datenströme möglichst störsicher übertragen zu können oder eine
Laufzeitmessung durchzuführen. Für eine Datenübertragung würde man
breitbandigere Medien benutzen um die Datenrate zu erhöhen. Ein
Experminent mit der Soundkarte in diese Richtung ist also eher
unwahrscheinlich. Verbleibt die Laufzeitmessung und dies ist der Grund
warum ich mich angesprochen fühlte. Nun, bei dieser denke ich ist es
schon sinnvoll die Bandbreite der MLS an das Übertragungsystem
anzupassen. Die Reduzierung der Bandbreite kompensiert man im Empfänger
dann per Oversampling und hat damit quasi die Auswertung der Phasenlage
per Korrelation.
Exakt auf diese Annahmen hin sind meine Postings zu verstehen.
Gruß Hagen
> Hm, wenn ich aber das MLS Signal mit >= 48kHz zur Soundkarte gebe dann> ist dieses > Nyquist und kann garnicht mehr korrekt durch die Soundkarte> ohne Informationsverluste umgewandelt werden. Das meinte ich eigentlich.
Versteh ich jetzt nicht, >= 48 kHz? Wenn du die MLS direkt Sample für
Sample an die Soundkarte gibst sind es 24 kHz. Davon geht sicherlich ein
mehr oder weniger großer Teil im oberen (und unteren) Frequenzbereich
kaputt, aber es bleibt immer noch mehr Bandbreite übrig als wenn du
vorher schon eine Begrenzung vornimmst. Wobei du sagst dass du die 12
kHz-Sequenz noch mit BPSK hochmodulierst, was ich mir jetzt nicht so
ganz vorstellen kann.
> Bei meinen Tests war es real so das wenn ich die MLS mit 24kHz bei 48kHz> Soundkarte rausgab es wesentlich schlechter empfangen wurde als wenn ich> es auf 24kHz BPSK kodiert habe
Vermutlich hast du für den Vergleich beider Fälle eine Sequenz mit der
selben Sampleanzahl verwendet - das ist unfair ;) für den 24 kHz-Fall,
der in der selben Zeit ja eine doppelt so lange Sequenz senden könnte.
So hast du für beide Fälle das gleiche Zeit-Bandbreite-Produkt, bei 24
kHz aber abzüglich der Bandbreite die durch den nichtidealen Analogteil
verloren geht.
Falls du das berücksichtigt hast kann ich mir nur vorstellen dass die
Auswertung mit der FHT schuld ist (verglichen mit Korrelation/DFT),
halte ich aber für unwahrscheinlich dass das einen Faktor >2 ausmacht.
>Vermutlich hast du für den Vergleich beider Fälle eine Sequenz mit der>selben Sampleanzahl verwendet - das ist unfair ;) für den 24 kHz-Fall,
Die MLS wird um Faktor 2 gespreizt per BPSK und das mit 24kHz als Wave
gesendet. Ergibt 12kHz Chipfrequenz für die MLS.
Auf Empfägerseite wird mit 48kHz gesamplet und die BPSK einfach
rausgerechnet indem man den +-90 Grad Phasenanteil subrahiert von
einander. Das ergäbe dann bei einer zb. 511 Bit MLS also 4 * 511 Bits
Input der durch 4 FHTs ausgewertet wird. Ergo: 4 fach Overampling für 4
Phasenlagen = 1/4 Zeitauflösung der Peaks der FHT des Signales auf 12kHz
Chipfrequenz bezogen.
Die 4 FHTs bekommen jede für sich 1/4'tel des Timeslots bei 48kHz und
rechnen quasi auf 4 verschieden Phasenlagen die Korrelation aus. Somit
kann ich mit 90 Grad Auflösung, oder eben 4mal genauer die Laufzeit
errechnen. Und ich habe die vorherige Bandbreitenreduzierung der MLS
wieder kompensiert. Es geht ja nicht um Datenübertragung bei der dieses
Verfahren wenig sinnvoll wäre sondern um Laufzeitmessungen. Die
Umkodierung sollte meiner Meinung nach das Spektrum der MLS um Faktor 2
reduzieren und somit weniger Energie durch die Eigenschaften der
Soundkarte verloren gehen. Und exakt das konnte ich auch bei meinen
Experimenten sehen.
Ich muß erwähnen das ich Hobbybastler bin und eventuell par
Begrifflichkeiten durcheinander bringe, denke aber das ich es richtig
gemacht habe.
Gruß Hagen
>Versteh ich jetzt nicht, >= 48 kHz? Wenn du die MLS direkt Sample für>Sample an die Soundkarte gibst sind es 24 kHz.
Und das meinte ich mit "Nyquist". Es könnte ja sein das der OP zb. die
MLS mit 128kHz über die Soundkarte ausgegben hat, dann würde man sich
bei fehlendem Wissen schon wundern warum das nicht mehr so aussieht wie
erwartet, oder ?
Gruß Hagen
>Vermutlich hast du für den Vergleich beider Fälle eine Sequenz mit der>selben Sampleanzahl verwendet - das ist unfair ;)
Natürlich nicht ;) Ds einmal 24kHz direkt MLS WAVE und das andere mal
eben BPSK-MLS WAVE mit 12kHZ Chipfrequenz = 24Khz BPSK-kodierte MLS.
Scheint wohl in meinen Positings nicht ganz so klar rübergekommen zu
sein.
Die BPSK-kodierte MLS hat wesentlich bessere Ergebnisse erzielt und für
mich ist das auch logisch da ich eben die nötige Bandbreite um die MLS
sauber rüberzubekommen um Faktor 2 reduziert habe und damit besser auf
den Übertragungskanal Soundkarte abgestimmt war. Durch das spätere
Oversampling aber wieder kompensieren konnte und somit defakto sogar
exakter als mit direkter MLS war. Die Auswertung auf Empfängerseite war
bei direkter MLS Kodierung ähnlich aufgebaut nur um Faktor 2 schneller.
Also beide arbeiten mit 48kHz Input Samples vom Mikrofon.
Gruß Hagen
>So hast du für beide Fälle das gleiche Zeit-Bandbreite-Produkt, bei 24>kHz aber abzüglich der Bandbreite die durch den nichtidealen Analogteil>verloren geht.
Korrekt. Du vergisst aber das Oversampling auf Empfängerseite. Die 24kHz
Direkt-MLS ist also geringer in ihrer Auflösung dafür aber 2 mal
schneller. Die 12kHz-BPSK-MLS benötigt doppelte Zeit ist aber auch
entsprechend exakter. Sie benötigt 2 mal weniger Bandbreite im Medium
und hat somit einen besseren SNR, wenn ich das richtig verstehe. Bei der
12kHz MLS benötigt man 2 mal mehr Rechenpower da man 4 FHTs für 4
Phasenlagen berechnen muß. Würde man mit höherer Samplingfrequenz das
Mikrofon auslesen können dann könnte man das noch weiter ausbauen mit
dem Oversampling. Ich denke aber das dies nicht nötig ist. Die 4 Peaks
der 4 FHTs kann man nämlich approximieren und den Scheitelpunkt virtuell
errechnen und somit virtuell die Auflösung noch weiter steigern. Aber
das habe ich nicht weiter verfolgt damals.
Gruß Hagen
Hm, vielleicht wirds so genauer:
Einmal benutzt man die MLS direkt, das andere mal moduliert man per BPSK
und MLS eine Trägerfrequenz von 24kHz. Dieses Signal entspräche exakt
einer Manchasterkodierung der MLS.
Gruß Hagen
Hagen Re schrieb:
>>Vermutlich hast du für den Vergleich beider Fälle eine Sequenz mit der>>selben Sampleanzahl verwendet - das ist unfair ;)>> Natürlich nicht ;) Ds einmal 24kHz direkt MLS WAVE und das andere mal> eben BPSK-MLS WAVE mit 12kHZ Chipfrequenz = 24Khz BPSK-kodierte MLS.
Mir ging es um die Länge der MLS in Samples. Wenn die in beiden Fällen
x Samples ist, obwohl man mit 24 kHz in der selben Zeit 2*x senden
könnte, dann wird die 24 kHz-Version im Vergleich benachteiligt.
> Die BPSK-kodierte MLS hat wesentlich bessere Ergebnisse erzielt und für> mich ist das auch logisch da ich eben die nötige Bandbreite um die MLS> sauber rüberzubekommen um Faktor 2 reduziert habe
Und die Zeit um den Faktor 2 verlängert ;)
Hättest du gleich eine MLS mit der doppelten Länge genommen und full
speed rausgeschickt, wäre zwar von prozentual mehr Nutzsignal-Bandbreite
verloren gegangen, absolut wäre aber mehr angekommen. Bei
Datenübertragung will man das nicht, da soll alles "sauber" ankommen,
notfalls langsamer. Aber bei der Positionsbestimmung will man nur
möglichst viel.
Ich will gar nicht so sehr ins Detail gehen: du hast eine Bandbreite von
24 kHz zur Verfügung, abzüglich ein paar zerquetsche kHz am Anfang und
am Ende, die beste Entfernungsauflösung bekommst du wenn du du die 24
kHz vollständig ausnutzt, sprich, ein weißes Rauschen (=eine MLS mit der
Samplerate) reingibst.
Hm, aber auch das habe ich überprüft. Eine 511Bit-BPSK-MLS im Vergleich
zu 1023Bit-Direkt-MLS. Erstere hat weitaus besser abgeschnitten. Die
Übertragungsbandbreite der Soundkarte/Lautschrecher/Mikrofon schafft es
nicht die direkte MLS mit voll Power umzusetzen. Obwohl ich also mit der
511Bit-BPSK-MLS im Vergleich zur 1023Bit-Direkt-MLS aus Sicht der MLS
weniger Information habe passe ich die Bandbreite der 511Bit-BPSK-MLS
dem Medium besser an und kann das in der FHT per Oversampling in
Relation zur erzielten Auflöung wieder kompensieren. Also auch im
Vergleich 511Bit-BPSK-MLS zu 1023Bit-Direkt-MLS schnitt Erstere besser
ab. Deswegen schrieb ich ja oben das ich mit verschiedenen MLS Längen
exerimentiert habe. Ich gebe dir insofern Recht, aber die
Bandbreitenlimitierung der Soundkarten/Lautsprecher/Mikrofone muß
berücksichtigt werden und wird, bzw. hat in meinem Falle, mehr Einfluß
gezeigt als die Vergrößerung der MLS Länge. Mathematisch betrachtet
stimmt deine Aussage aber sehr wohl wenn man nur die MLS ansich
berücksichtigt. Wenn ich nur 50% der direkten MLS als Power rüberbekomme
über das Medium dann wird eine längere MLS ebenso 50% Verluste haben.
Eine in der Bandbreite begrenzte MLS durch Umkodierung wird dageben
immer besser abschneiden und besser angepasst an das Medium
/Übertragungskanal sein.
Zusätzlich muß ich bemerken das ich ja Stereo auf zwei Kanälen
gleichzeitig MLSs ausgesendet habe die nur mit einem Mikrofon empfangen
werden. Das dürfte aber eigentlich keinen Unterschied gemacht haben
meiner Meinung nach, beide MLS waren definitiv orthogonal zueinander.
Übrigens, sehr bemerkbar waren die Unterschiede in der maximalen
Reichweite der der unterschiedlichen MLS Kodierungen. Die BPSK-MLS
erzeilten wesentlich höhere Reichweiten bei gleichgebliebenem
Outputpower und Vorverstärkung des Mikrofones.
Ich bin also davon überzeugt das es nur an der BPSK Kodierung liegen
konnte und damit der Anpassung der nötigen Bandbreite für die MLS an die
zur Verfügung stehende Bandbreite des Übertragungskanales.
Am Anfang habe ich nämlich bei meinen Experiementen auch nur mit
direkten MLS gearbeitet und erst später bin ich durch ein PDF das MLS im
Zusammenhang mit schmalbandigen Ultraschallwandler beschreit, auf die
BPSK Kodierung gestoßen.
Es kann aber durchaus sein das eines der Bauteile im Übertragungskanal
das Problem darstellte, zB. das Mikrofon könnte zu schlecht gewesen
sein.
Grundsätzlich betrachtet ist mir das aber eigentlich wurscht ;=) Ich
habe mit meinen obigen Aussagen nur einen Hinweis abgegeben das man
unter Umständen mit einer Umkodierung besser fährt als mit der direkten
Nutzung der MLS. Das und nur das ist worauf ich hinweisen möchte.
Gruß Hagen
Hagen Re schrieb:
> Hm, aber auch das habe ich überprüft. Eine 511Bit-BPSK-MLS im Vergleich> zu 1023Bit-Direkt-MLS. Erstere hat weitaus besser abgeschnitten.
Das muss an deiner Auswertung liegen. Bei einer Korrelation/DFT kann das
nicht sein. (Ich gehe mal davon aus dass du mit besser eine bessere
Entfernungsauflösung meinst.)
> Eine in der Bandbreite begrenzte MLS durch Umkodierung wird dageben> immer besser abschneiden und besser angepasst an das Medium> /Übertragungskanal sein.
Die Umcodierung bringt dir nichts, alles worauf es bei der
Entfernungsauflösung ankommt ist die spektrale Verteilung des Signals.
Überlege es dir so: eine perfekte Auflösung entspricht einem
Delta-Impuls als Korrelationsfunktion. Fourier-transformiert ist das ein
konstantes (=weißes) Leistungsdichtespektrum. Ein (in der Bandbreite des
DA-Wandlers) weißes Leistungsdichtespektrum bekommst du mit einer MLS.
Jedes Signal mit einer anderen spektralen Verteilung, z.B. eine
Manchester-codierte langsamere MLS, wird eine unschärfere AKF zur Folge
haben.
> Am Anfang habe ich nämlich bei meinen Experiementen auch nur mit> direkten MLS gearbeitet und erst später bin ich durch ein PDF das MLS im> Zusammenhang mit schmalbandigen Ultraschallwandler beschreit, auf die> BPSK Kodierung gestoßen.
Das Stichwort ist hier schmalbandig. Da musst du das Signal irgendwie
in den Frequenzbereich bringen den der Kanal übertragen kann. Man könnte
zwar auch die MLS direkt mit x MHz ausgeben und sich den Wandler selber
die übertragbaren Frequenzen heraussuchen lassen, würde auch
funktionieren, ist aber unnötig aufwendig, deshalb der Weg über niedrige
Samplerate und Modulation. Wobei man hier aber auch die zur Verfügung
stehende Bandbreite voll ausnutzen, d.h. ein möglichst weißes Signal im
Nutzband anstreben wird. Selbe Geschichte bei GPS. Die Soundkarte
dagegen ist sehr breitbandig und geht praktisch von "0" bis 24 kHz, da
wird unten nicht so viel abgeschnitten dass sich eine Modulation lohnen
würde um den Aufwand zu reduzieren.
Es kann sein dass man wegen Nichtlinearitäten der Lautsprecher bei hohen
Leistungen oder ähnlichen "Dreckeffekten" eine andere spektrale
Verteilung wählen möchte als ein weißes Rauschen. Dann ist es aber
zielführender das Rauschen direkt mit einem Filter zu formen.
Hi Andreas,
Letztes zuerst, welchen Filter würdest du empfehlen ?
Die Umkodierung der MLS, oder anderst ausgedrückt eine BPSK Kodierung
von 24kHz per MLS ist doch eine Bandbreitenreduzierung um Faktor 2,
innerhalb des Bandes dann Rauschen um die schmalere Bandbreite der
Soundkarte/Lautsprecher/Mikrofon besser ausnutzen zu können. Für die
Laufzeitmessung möchte ich doch später nur exakt per Korrelation den
Peak und damit die Laufzeit ermitteln, welche Bandbreite das eigentliche
Signal hat, also ob breitbanding oder schmalbandig sagt erstmal nichts
über die Genauigkeit der Laufzeitmessung aus. Der Unterschied liegt doch
nur in der nötigen Messdauer. Betrachtet man diese Zeit als Faktor für
die Effizienz dann ist es tatsächlich so das eine längere MLS unkodiert
im Vergleich zu einer kurzen MLS umkodiert in selber Zeit besser
abschneiden sollte. Aber auch nur wenn die Bandbreite der MLS nicht zu
stark durch die zur Verfügung stehende Bandbreite des Übertragungskanals
eingeschränkt wird.
>Das muss an deiner Auswertung liegen. Bei einer Korrelation/DFT kann das>nicht sein. (Ich gehe mal davon aus dass du mit besser eine bessere>Entfernungsauflösung meinst.)
Ja. Der berechnete Maximalpeak in Bezug auf eine feste Entfernung war
bei den BPSK MLS größer als bei vergleichbaren direkten MLS. Das lässt
mich ja vermuten das einzigst die Bandbreitenanpassung an das Medium die
Ursache dafür sein kann.
Der einzige Unterschied bei der Auswertung ist das ich zwei Samples, in
Relation zur Samplefrequenz des Empfängers zu ausgesendetem modulierten
Signal, von einander subtrahiert habe. Also zb. jedes 2. oder 4. Sample
wird vom 2./4. vorherigen Sample subtrahiert, also die -90 und +90 Grad
Phase des Signales. Ich entferne also quasi synchron die BPSK Kodierung
und errechne den DC Wert für die FHT, Im Grunde so ähnlich wie bei einer
synchronen I/Q Demodulation. Bei dirketer Auswertung gibt es keine
solche Dekodierung, ist ja auch keine Kodierung vorhanden sondern
schicke die Samples direkt in die FHT.
Die FHT, ihre Implementierung, deren Permutationsmatrizen kann ich mit
Sicherheit als Fehlerquelle ausschließen. Diese sind absolut korrekt und
habe ich auch mit normalen KKF/AKF gegen getestet. Meiner Meinung nach
habe ich alles in den Auswertungen korrekt umgesetzt und berechnet.
Die Interpretation der so gewonnenen Daten könnte ich mir als
Fehlerquelle vorstellen, aber das ist ja dann eine Frage meines
Wissenstandes und nicht der im realen Experiment ermittelten Verhaltens
der verschiedenen Verfahren.
Ich gebe dir ja auch Recht in deinen Aussagen in Bezug auf die AKF
Eigenschaften und das was theoretisch mit MLS möglich sein sollte. Ich
meine eben nur das in praktischen Anwendungen man bei MLS eben auch
darauf achten muß das die nötige Bandbreite für die Übertragung der MLS
im Übertragungskanal auch vorhanden sein muß. Nun, nenne mir einen
realen Übertragungskanal der einen Diracstoß ohne Verluste übertragen
kann ?
Selbst die Luft als Übertragungsmedium des Schalls hat nicht die nötige
Bandbreite um einen Dirac verlustfrei übertragen zu können. Oder habe
ich hier einen Denkfehler ?
Letzendlich ist es es doch so: Ich sende akustisch ein irgendwie
kodiertes Signal aus. Auf Empfängerseite, der zeitlich synchron
arbeitet, suche ich nun per Korrelation dieses kodierte Signal, suche
den Peak und kann die Laufzeit ausrechnen. In welcher Form dieses Signal
kodiert ist ist primär nur relevant für die Frage wie ich die
Korrelation durchführen muß. Sekundär entscheidet die Wahl der Kodierung
darüber wie gut die Korrelation das Signal aus einem Signalgemisch
herausfilter kann, wie wenig störanfällig dieses Signal herausgefiltert
werden kann, welche Übrtraungsbandbreite es benötigt. Und in diesem
Moment entscheidet man sich für die MLS und meiner Meinung nach uU. für
eine Umkodierung.
>Die Soundkarte dagegen ist sehr breitbandig und geht praktisch von "0" bis> 24 kHz, da wird unten nicht so viel abgeschnitten dass sich eine> Modulation lohnen würde um den Aufwand zu reduzieren.
Das würde ich mal bestreiten wollen ;)
Zudem reduziert sich ja der Aufwand bei der Umkodierng eben nicht,
sondern verdoppelt oder verfierfachte sich sogar bei meinen Versuchen.
Mich würde aber interessieren welche Filter du meinst die die direkte
MLS auf ein schmalbandigeres System anpassen können ohne die Energie des
MLS Spektrums zu verringern. Die einzigen "Filter" die ich kenne für
eine solche Aufgabe sind Umkodierungen zb. FSK oder PSK.
Gruß Hagen
>Das Stichwort ist hier schmalbandig. Da musst du das Signal irgendwie>in den Frequenzbereich bringen den der Kanal übertragen kann. Man könnte>zwar auch die MLS direkt mit x MHz ausgeben und sich den Wandler selber>die übertragbaren Frequenzen heraussuchen lassen, würde auch>funktionieren,
In diesem Moment würde aber einiges an Power des MLS Spektrums verloren
gehen und somit die Effizienz des Gesamtsystems stark reduziert werden
im Vergleich zu einer vorherigen Umkodierung zb. per BPSK um die nötige
Bandbreite zu reduzieren. Wenn du dieser Aufassung bist dann stimmen wir
doch beide überein, oder ?
Gruß Hagen
Hagen Re schrieb:
> Achso nochwas: mache nicht den Fehler deine MLS zb. direkt als> Soundsamples auszugeben. Beachte also das Nyquist Theorem. Deine> Soundkarte kann nur mit zb. 48kHz Samplerate deine Sounds ausgeben wie> auch empfangen. Ergo sollte deine MLS mit weniger als 48kHz/2 Chiprate> ausgesendet werden. Ich benutzte wie gesagt 2-PSK (BPSK) und kam so auf> 12kHz Grenzfrequenz, bzw. Chiprate.> Diese 12kHz dividiert durch MLS-Länge ergibt die maximale> Wiederholungsrate pro Sekunde für deine MLS, und bei meinen> Positionsbestimmungen des Mikrofones sozusagen das Abtastinterval.> 12kHz/2047 ~ 6Hz, also 6 Positionsbestimmungen pro Sekunde.>> Gruß Hagen
Hallo an Alle!
Ich bedanke mich schon für alle Ihre Antwort und Erklärung. Damit
verstehe ich noch besser was mich erwartet.
Hagen, du hast hier einen Knackpunkt angesprochen; nämlich dass ich
meine MLS nicht direct als wave abspielen soll. Das ist ein Fehler, den
ich noch nicht behoben habe. Wie kann ich meine MLS-Signal im Wave-Datei
umwandeln? Auf dieser Punkt bin ich Neuling. Kann du mir bitte die
Schritte geben? (auch ein links wo ich es finden kann). Ich habe bisher
die Sequence direkt als Wave-Datei gespeichert und habe versucht die mit
Windows Media Player abzuspielen, was nicht funktioniert hat.
Danke noch mal
Merlin Erick schrieb:
> Hagen Re schrieb:>> Achso nochwas: mache nicht den Fehler deine MLS zb. direkt als>> Soundsamples auszugeben. Beachte also das Nyquist Theorem. Deine>> Soundkarte kann nur mit zb. 48kHz Samplerate deine Sounds ausgeben wie>> auch empfangen. Ergo sollte deine MLS mit weniger als 48kHz/2 Chiprate>> ausgesendet werden. Ich benutzte wie gesagt 2-PSK (BPSK) und kam so auf>> 12kHz Grenzfrequenz, bzw. Chiprate.>> Diese 12kHz dividiert durch MLS-Länge ergibt die maximale>> Wiederholungsrate pro Sekunde für deine MLS, und bei meinen>> Positionsbestimmungen des Mikrofones sozusagen das Abtastinterval.>> 12kHz/2047 ~ 6Hz, also 6 Positionsbestimmungen pro Sekunde.>>>> Gruß Hagen>>> Hallo an Alle!> Ich bedanke mich schon für alle Ihre Antwort und Erklärung. Damit> verstehe ich noch besser was mich erwartet.>> Hagen, du hast hier einen Knackpunkt angesprochen; nämlich dass ich> meine MLS nicht direct als wave abspielen soll. Das ist ein Fehler, den> ich noch nicht behoben habe. Wie kann ich meine MLS-Signal im Wave-Datei> umwandeln? Auf dieser Punkt bin ich Neuling. Kann du mir bitte die> Schritte geben? (auch ein links wo ich es finden kann). Ich habe bisher> die Sequence direkt als Wave-Datei gespeichert und habe versucht die mit> Windows Media Player abzuspielen, was nicht funktioniert hat.>> Danke noch mal
Hallo nochmal!
Ich habe mit der Matlab-Funktion wavewrite(y, fs, filename) die Sequenze
gespeichert und mit Window Media Player abgespielt.
Ich versuche jetzt einfach weiterzumachen.
Danke nochmal für eure Hilfe
Merlin
Hagen Re schrieb:
> um die nötige Bandbreite zu reduzieren
Wofür nötig? Du willst die MLS nicht mit möglichst wenig Fehlern oder in
möglichst wenig Bandbreite übertragen, im Gegenteil, du möchtest ein
Signal übertragen das 1. möglichst viel Bandbreite belegt, und 2. das
sich am Empfänger reproduzieren und mit dem Empfangssignal korrelieren
lässt. Diese Anforderungen erfüllt eine mit voller Samplerate gewandelte
MLS am besten. Durch die Manchester-Codierung kannst du das Spektrum
formen und u.U. Rechenzeit sparen, aber als Methode zur Verbesserung der
Genauigkeit ist sie nicht geeignet und vor allem nicht erforderlich um
Nyquist einzuhalten.
Merlin Erick schrieb:
> Ich habe mit der Matlab-Funktion wavewrite(y, fs, filename) die Sequenze> gespeichert und mit Window Media Player abgespielt.
So geht's. Beachte noch dass du dein y vorher auf der Bereich -1 bis +1
normierst um die Leistung (Lautstärke) voll auszunutzen. Du kannst auch
das audioplayer-Objekt in Matlab benutzen um das Signal direkt
abzuspielen.
>Wofür nötig? Du willst die MLS nicht mit möglichst wenig Fehlern oder in>möglichst wenig Bandbreite übertragen, im Gegenteil, du möchtest ein>Signal übertragen das 1. möglichst viel Bandbreite belegt, und 2. das>sich am Empfänger reproduzieren und mit dem Empfangssignal korrelieren>lässt. Diese Anforderungen erfüllt eine mit voller Samplerate gewandelte>MLS am besten.
Gut ist deine Meinung. Ich habe einige Dokumente durchgearbeitet die
sich mit der Thematk Entfernungsmessung über Laufzeitmessung per MLS und
Korrelation befassen. Meistens per Ultraschall aber auch im
Akustikbereich. In allen wird eine Umkodierung verwendet und auch
empfohlen. Zusätzlich habe ich es real experimentiert und demzufolge
bleibe ich bei meiner Aussage: Die Bandbreite des MLS Spektrums sollte
nach Möglichkeit kleiner oder gleich der verfügbaren Bandbreite des
Übertragungskanales sein. Da eine MLS meistens wesentlich breitbandiger
als der Übertragungskanal ist sollte man über eine Umkodierung des
Signales nachdenken oder zumindest in Erwägung ziehen.
Ansonsten würde ich mich schon sehr wundern das in diesen Dokumenten
davon die Rede ist wenn es so wie du sagtest auch ohne besser gehen
sollte.
Gruß Hagen
Zeig doch mal eines von diesen Dokumenten. Gründe für die Codierung kann
es wie gesagt schon geben (Bandpassverhalten des Kanals, evtl.
Decodierungsaufwand), aber es ist nichts was grundsätzlich erforderlich
oder sinnvoll ist.
"Due to the limited bandwidth and the centre-frequency of theultrasonic transducers, the pseudorandom sequence spectrum has to be
shifted."
Es ging also darum das Signal erst mal in den Ultraschallbereich zu
bringen.
Leider schweigt sich der Artikel darüber aus wieso genau diese
Modulation gewählt wurde und keine andere.
>Leider schweigt sich der Artikel darüber aus wieso genau diese>Modulation gewählt wurde und keine andere.
Ich denke um die Demodulation besser umsetzen zu können. Ich hätte eine
andere Modulation genommen.
>Es ging also darum das Signal erst mal in den Ultraschallbereich zu>bringen.
Und in seiner Bandbreite anzupassen. Die US Wandler sind ja relativ
schmallbandig und deshalb haben sie ja schon die Elektrostatischen US
Wandler benutzt die nicht so schmalbandig sind wie Piezowandler.
Ich bin eben der Meinung das bei meinem Aufbau die
Soundkarte/Lautsprecher/Mikrofon nicht volle Power im Bereich 0-24Khz
übertragen konnten. Leider hatte ich danmals nicht das Equipment das
auszumessen.
Leider finde ich das andere, wesentlich interessantere Paper nicht mehr.
In dem ging es exakt um dieses Thema und das im akustischen Bereich mit
normalen Lautsprechern und Mikrofonen. Auch dort wurde umkodiert, eg.
ein Signal per BPSK MLS moduliert. Angedeutet wurden auch Resultate von
Experimeten mit 16-PSK.
Im Attachment bischen was zur FHT.
Gruß Hagen
und nochwas zur FHT, wobei deren Methode die Permutationsmatrizen
auszurechnen viel zu kompliziert ist. In meinen Sourcen benutze ich eine
viel einfachere und logischere Variante. Zu jedem MLS Polynom gibt es
ein inverses Polynom. Mit beiden in einem LFSR kann man direkt diese
Perumtationen errechnen. Allerdings finde ich über meine Variante
keinerlei Papiere im WEB, kann also nicht sagen wie der Algo. heist und
ob er schon bekannt ist.
Gruß Hagen
Hallo?
Hier sehen Sie das modell, das ich gemacht habe.
Damit möchte ich die Impulsantwort meines entworfenen Filter bestimmen.
Ich sende meine MLS auf das DSK-Bord(worauf mein Filter ist) und kriege
das (gefilterte?) Signal auf dem mikrofon.
Mit der Kreuzkorrelation müsste ich eigentlich meine die Impulsantwort
des filter haben, oder? Was ich auf dem Scope bekomme sieht nicht so
aus.
Wie kriege die Charakteristik meines Filters
zurück(Systemidentifikation)?
was mache ich falsch?
Merlin
Hi Merlin,
leider kenne ich Simulink nicht und kann dir bei dessen Benutzung nicht
weiter helfen. Wenn ich dein Schemata richtig interpretiere solltest du
erstmal den Lautsprecher und das Mikrofon rausnehmen und auf direktem
Weg simulieren. Was siehtst du dann am XCORR Oszi ? Danach ein
Verzögerungsglied statt der Soundkarte rein, was siehst du dann ? Dann
mit einem Filter, zb. Tie/Hoch/Bandpass weitergemacht. So entwickelst du
nach und nach ein Gefühl für die zu erwartende Antwort.
Gruß Hagen
Hallo!
Ich hänge immernoch auf meine Simulation. Ich möchte jetz erst nur über
Simulink simulieren, und dann mit dem Bord in echtzeit messen. Es geht
mir darum die Übertragungsfunktion eines unbekannten Systems durch
Anregung mit einem MLS zu ermitteln.
Da ich nicht weiter mit Simulink gekommen bin, habe ich erst mit
Matlab-Code (reine programmierung) das Sytem wiedergefunden. Ich gebe
das Code im Anhang.
Sowie ich das Code geschrieben habe, mochte ich mit Simulink simulieren.
Und da lauft meine Kreuzkorrelation nicht wie erwartet.
Was mache ich falsch? Warum bekomme ich nicht nach der Korrelation (Code
und simulation) das gleiche Ergebnis?
Danke