www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Simulation mit Audiosignale


Autor: Merlin Erick (Firma: none) (new_user)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Merlin Erick (Firma: none) (new_user)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einspruch. Um Nyquist kümmert sich die Soundkarte, die Bandbreite noch 
künstlich einzuschränken ist nicht nötig.

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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

Autor: Merlin Erick (Firma: none) (new_user)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Merlin Erick (Firma: none) (new_user)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hagen Re (hagen)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
zb. dieses Attachment.

Gruß Hagen

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Due to the limited bandwidth and the centre-frequency of the
ultrasonic 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.

Autor: Hagen Re (hagen)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
>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

Autor: Hagen Re (hagen)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Merlin Erick (Firma: none) (new_user)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Merlin Erick (Firma: none) (new_user)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Merlin Erick (Firma: none) (new_user)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier das andere schema

Autor: Merlin Erick (Firma: none) (new_user)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Und ´hier das matlab code

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.