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
Einspruch. Um Nyquist kümmert sich die Soundkarte, die Bandbreite noch künstlich einzuschränken ist nicht nötig.
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 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.
>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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.