Beamforming mit einem DSP

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 24 11 2024  21:41:35      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte

Gehe zu Seite ( 1 | 2 Nächste Seite )      


Autor
Beamforming mit einem DSP

    







BID = 627910

Micropower

Gelegenheitsposter



Beiträge: 50
Wohnort: Marburg
 

  


Hallo,

Ich möchte aus akustischen Signalen nur eine Schmalband aus einer Richtung herausfiltern. Zum Beispiel nur eine Schmalband um die 3000 Hz und nur von vorne. Seitliche Signale (auch seitliche 3000 Hz) sollen stark unterdrückt werden.

Eine einfache Lösung mit einem unidirektionalen Mikrofon und einem Filter war nicht ausreichend. Ich brache eine höhere Güte.

Die einzige Lösung, die ich kenne, ist Beamforming. Also mehrere Mikrofone mit der halben Wellenlänge Abstand. Am Beispiel vom 3000 Hz ca. 6 cm Abstand. Die Signale sollen mit einem Bandpass gefiltert und dann zusammenaddiert.

Meine Frage ist eigentlich eine theoretische Frage und lautet: Kann ich auch gleich (vor dem filtern) alle Signale zusammenaddieren und dann die 3000 Hz aus der Summe filtern, oder muss ich wirklich die Signale einzeln filtern und erst danach kann ich sie Zusammenaddieren?

Hardwaremäßig werde ich nur einen kleinen Tiefpass bauen. Bandpassfiltern werde ich mit dem DSP und das ist sehr rechenintensiv. Es macht einen Unterschied, ob ich alle Signale einzeln filtern muss oder nur die Summe einmal filtern kann.

Danke Euch

BID = 627917

Jornbyte

Moderator



Beiträge: 7178

 

  

Hast du dich schon mit FFT ( Fast Fourier Transform ) beschäftigt?

_________________
mfg Jornbyte

Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.

BID = 628004

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Die einzige Lösung, die ich kenne, ist Beamforming. Also mehrere Mikrofone mit der halben Wellenlänge Abstand. Am Beispiel vom 3000 Hz ca. 6 cm Abstand.
Der Abstand muss nicht lambda/2 sein, der DSP kann ja Signale mit beliebigen Verzögerungen korrellieren.
Man braucht aber recht viele Mikrofone, um eine gute Richtwirkung zu erzielen und Nebenzipfel im Richtdiagramm zu unterdrücken.
Wenn man ein lineares Mikrofonarray verwendet, hat man ausserdem senkrecht zu dieser Linie überhaupt keine Richtwirkung.

Parabolspiegel gehen auch ganz gut und du brauchst nur ein Mikrofon.
Das gewünschte Frequenzband kannst du dann leicht analog oder mit DSP herausfiltern.
Ein Nebeneffekt ist die enorme Verbesserung des SNR, weil ja nun die ganze Fläche des Spiegels empfängt und nicht nur die paar mm2 von einer Handvoll Mikrofone.

Schüsseln für den Satellitenempfang stellen recht genaue und billige Parabolspiegel dar, was mit der verwendeten Wellenlänge von <3cm zu tun hat.
Wegen des Schneefalls in unseren Breiten handelt es sich aber um Offset-Parabole. Das bedeutet, dass das Mikrofon dort angebracht werden müsste, wo normalerweise der LNB sitzt und der Spiegel dann unter einem Winkel von etwa 30° nach oben schielt.
Für terrestrische Einsätze sollte man deshalb vielleicht noch ein Visier anbringen.

[ Diese Nachricht wurde geändert von: perl am 19 Aug 2009  2:16 ]

BID = 628008

Micropower

Gelegenheitsposter



Beiträge: 50
Wohnort: Marburg

Danke für Eure Antworten.

@ Jornbyte
Nein, mit FFT habe ich mich nicht beschäftigt.

Ich bin auch kein wirklicher Fachmann. Meinen ersten FIR-Filter mit dem unidirektionalen Mikrofon habe ich aber erfolgreich vollbracht. Auch die restliche Software auf dem dsPIC funktioniert einwandfrei. Nur die seitlichen Signale müssen "radikaler" unterdrückt werden.

@ Perl
Eigentlich neige ich zu einer handlichen Lösung. Eine kleine Kiste mit Löchern für kleine Mikrofone ist mir sehr viel lieber als ein "rundliches" Parabolmikrofon.

Auch wie Du schon erwähnt hast: Man kann mit einem linearen Mikrofonarray die seitlichen Schmalbandsignale fast vollständig unterdrücken.

BID = 628042

hajos118

Schreibmaschine



Beiträge: 2453
Wohnort: Untermaiselstein

Na so ein Parabolspiegel macht eigentlich mechanisch das, was Du elektronisch / programmtechnisch mit dem DSP veranstaltest - es verstärkt (durch Reflektion) die Signale, die Du betrachten möchtest und läßt den Rest (ausserhalb der Empfangsrichtung) unbetrachtet.
Damit dürfte eine Lösung mit Parabolspiegel (evtl. kann's ja auch ein halber Gummiball sein) die beste Lösung sein um eine Richtwirkung zu erzielen.


_________________
Interpunktion und Orthographie dieses Beitrags sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.
Wer einen Fehler findet, darf ihn behalten!

BID = 628047

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Eigentlich neige ich zu einer handlichen Lösung. Eine kleine Kiste mit Löchern für kleine Mikrofone ...
Nun ja, du wolltest ein wirksameres Richtmikrofon, und ich habe die einen Weg gezeigt, wie man es auf einfache Weise erhält.
Es gibt nun einmal fundamentale Zusammenhänge zwischen Wellenlänge, Apertur und Strahldivergenz. Du findest sie z.B. in Lehrbüchern der Optik oder der Antennentechnik.
Gegen solche physikalischen Zusammenhänge helfen auch Zauberworte wie DSP und Beamforming nichts; gewisse Mindestabmessugen sind eben nötig, um eine hohe Richtwirkung zu erzielen.

Synthetische Strahlformung macht man hauptsächlich, wenn man den Strahl sehr schnell schwenken muss, oder wenn man mehrere Ziele gleichzeitig verfolgen will.
Dafür brauchte man aber eine grosse Anzahl von Mikrofonen und ich denke, dass ein dsPic mit dieser Aufgabe hoffnungslos überfordert wäre. Dann greif lieber gleich zu einem TigerSharc-Entwicklungsboard. Die hohen Kosten, insbesondere für die Entwicklungssoftware, dürften dich aber veranlassen, dich zunächst einmal gründlich in die Theorie einzuarbeiten.

Falls dir die Richtwirkung einer solchen Konstruktion ausreicht http://de.wikipedia.org/wiki/Interferenzrohr_(Akustik) , kannst du dich ja mal mit Entwicklungsingenieuren der Firma Sennheiser in Verbindung setzen.


BID = 628137

Micropower

Gelegenheitsposter



Beiträge: 50
Wohnort: Marburg


Zitat :
Dafür brauchte man aber eine grosse Anzahl von Mikrofonen und ich denke, dass ein dsPic mit dieser Aufgabe hoffnungslos überfordert wäre. Dann greif lieber gleich zu einem TigerSharc-Entwicklungsboard.


Genau deshalb habe ich meine Frage gestellt:


Zitat :
Kann ich auch gleich (vor dem filtern) alle Signale zusammenaddieren und dann die 3000 Hz aus der Summe filtern, oder muss ich wirklich die Signale einzeln filtern und erst danach kann ich sie Zusammenaddieren?


Muss ich die Signale einzeln Bandpassfiltern bevor ich sie zusammenaddiere, dann schafft es ein dsPIC nicht. Mit einem dsPIC allein geht’s einfach nicht!

Kann ich aber gleich zusammenaddieren und dann die Summe einmal Bandpassfiltern, dann schafft es ein dsPIC locker.

Was ist mit FFT?

.

BID = 628164

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Kann ich aber gleich zusammenaddieren und dann die Summe einmal Bandpassfiltern, dann schafft es ein dsPIC locker.
Mit einer einfachen Addition wird es im Allgemeinen nicht getan sein.
Da es sich (hoffentlich) um ein lineares System handelt, kannst du prinzipiell aber filtern wann immer du es willst.
Es ist auch durchaus sinnvoll und wegen Aliasing evtl. sogar notwendig mit analogen Filtern unerwünschte Frequenzen vor der Digitalisierung loszuwerden.

Trotzdem bezweifle ich stark, dass ein dsPic für anspruchsvollere Korrelationsaufgaben dieser Art ausreicht. Dein Signal hat ja vermutlich eine gewisse Bandbreite ...
Glaube auch bitte nicht, dass du mit einer 6kHz Abtastrate hinkommst.


BID = 628234

Micropower

Gelegenheitsposter



Beiträge: 50
Wohnort: Marburg

@ Perl
Ich habe auch Bauchschmerzen gehabt und sie sind jetzt etwas großer geworden. Aber Bauchschmerzen bei der Planung sind besser als die Enttäuschung bei der Inbetriebnahme.

Seit lange "schiele" ich auf die Produkte vom Analog Devices. Ich habe mich aber bisher ausschließlich nur mit Microchip Produkte und Assemblerprogramierung beschäftigt. Weitere Erfahrungen habe ich überhaupt nicht. Ich habe mir das durch Selbststudium angeeignet. Microchip bietet auf ihre Webseite kostenlose verständliche Dokumente. Wer Englisch versteht, kann sich alles mit Selbststudium aneignen. Die Programmiergeräte sind Preiswert und leicht zu bekommen.

Wie Bastlerfreundlich sind aber die Teile vom Analog Devices?

Oder soll ich diese Nebenfrage als ein neues Thema erstellen?


BID = 628258

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Wie Bastlerfreundlich sind aber die Teile vom Analog Devices?
Relativ wenig, die Dokumentation ist aber sehr gut.
DIL-Gehäuse und Taktfrequenzen von einigen hundert MHz passen einfach nicht zusammen und Multilayerplatinen sind praktisch unvermeidlich. Deshalb nimmt man besser ein fertiges Entwicklungsboard.
Da kann man dann immer noch genug Peripherie dranstricken.

Wenn man solch ein Board als Kit (EZ-Kit-Lite) von ADI kauft, gehört i.d.R. auch eine abgespeckte Version des einzeln recht teuren Entwicklungssystems VisualDSP++ dazu.
Bei unbekanntem Volumen des Projekts empfehle ich nicht die billigeren Festkomma-Prozessoren 21xx oder Blackfin zu nehmen, sondern den Gleitkommaprozessor SHARC.
Das erspart insbesondere ungeübten Programmierern einiges Kopfzerbrechen.
Wenn alles funktioniert, kann man sich immer noch überlegen, ob man das System auf einen 5$ Prozessor portieren kann.

Es gibt auch ein von ADI-gesponsertes Forum, Link gibts auf den ADI Webseiten.
Dort tummeln sich u.a. Programmierer, die Linux auf solch ein Entwicklungsboard portiert haben.

Andere sehr bekannte DSP-Hersteller, die afaik noch länger in der Branche sind, sind Texas Instruments und Freescale, ehemals Motorola.

Man findet auf den Seiten der Hersteller auch regelmäßig Benchmarks, mit denen sie zeigen, dass nun gerade ihr neues Produkt der Konkurrenz eine Nasenlänge voraus ist.

Ich plädiere aber immer noch für die Lösung mit Parabolspiegel.
Das ist sehr billig und die Planungsgrundlagen gehen nur wenig über Gymnasialwissen hinaus. Ausserdem braucht man sich da nicht um Linearitätsfragen, Aliasing, Quantisierungsfehler und andere Artefakte der Digitaltechnik zu kümmern.
Nebenher erreicht man, wie schon gesagt, eine grosse Empfindlichkeitssteigerung. Diese, nicht so sehr die Vergrösserung, ist übrigens auch der Hauptzweck der optischen (Spiegel-) Teleskope.

Verätst du uns, was du mit der Anordnung bezweckst?




BID = 628298

Micropower

Gelegenheitsposter



Beiträge: 50
Wohnort: Marburg


Zitat :
Verätst du uns, was du mit der Anordnung bezweckst?


Wenn ich jetzt die Details erzähle werden einige von Euch mich vielleicht für verrückt erklären und sagen, wie kann ein Anfänger so einen anspruchsvollen Projekt wagen. Aber wenn Perl es wissen will, dann verrate ich das schon.

Es handelt sich um ein privates Projekt. Ich möchte auf eine kleine Nebenstraße (sehr schwach befahren) ermitteln, ob ein Fahrzeug gerade vorbei fährt und in welche Richtung.

Die Anordnung brauche ich also zweimal (Signal x und Signal y), dann berechne ich die Cross-Correlation, also <xy> / sqrt(<x^2><y^2>). Die Cross-Correlation muss ich mehrmals (mindestens zweimal) berechnen, immer mit einer kleinen Verschiebung der Signale x und y.

Zurzeit habe ich zwei unidirektionale Mikrofone und eine sehr große Bandbreite von 2000 Hz bis 4000 Hz und ich sample mit 25,8 kHz pro Kanal und berechne die Cross-Correlation dreimal (etwas nach Links, geradeaus und etwas nach Rechts). Dann werte ich die drei Ergebnisse aus und ziehe daraus einen Befund. Fertig!

Na ja, es funktioniert "mehr schlecht als recht", ich muss sehr viele Dinge verbessern.

Ein dsPIC ist für so einen Projekt schon geeignet, wenn man mit ASM30 programmiert und den Code gut optimiert. Das ist aber nicht immer leicht. Es war z.B. für mich ziemlich schwer eine Quadratwurzelberechnung mit ASM30 zu schreiben, es hat sich aber rentiert und mein Code ist bedeutend schneller als sqrt-Befehl in C30 geworden. Offensichtlich enthalten die C-Befehle sehr viel Overhead. Mit C30 wäre so ein Projekt auf einem dsPIC vielleicht nicht machbar.

BID = 628307

Racingsascha

Schreibmaschine



Beiträge: 2247
Wohnort: Gundelsheim
ICQ Status  

Frage zwischendurch: warum keine Lichtschranke?

_________________
Fnord ist die Quelle aller Nullbits in deinem Computer.
Fnord ist die Angst, die Erleichterung, und ist die Angst.
Fnord schläft nie.

BID = 628308

Micropower

Gelegenheitsposter



Beiträge: 50
Wohnort: Marburg


Zitat :
Frage zwischendurch: warum keine Lichtschranke?


Kann ich nicht. Das ganze soll auch etwas dezent bleiben. Eine kleine handliche Kiste ohne Verkabelung und ohne "rundliche" auffällige Parabolmikrofone. Fertig!



BID = 628313

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Ich möchte auf eine kleine Nebenstraße (sehr schwach befahren) ermitteln, ob ein Fahrzeug gerade vorbei fährt und in welche Richtung.
Dafür brauchst du doch eigentlich keine Richtwirkung, oder fahren auch hinter deinem Kästchen Fahrzeuge vorbei?

Ausser der Lichtschranke, die du ja nicht magst, sollte das gut mit dem Dopplereffekt gehen.
Entweder mit Radar, da kann es aber bei erlaubten Leistungen zu Reichweitenproblemen kommen, oder du stellst eben zwei Mikrofone in einiger Entfernung voneinander auf, und vergleichst den Verlauf des Frequenzgemischs. Dafür sollte ein dsPic in der Tat ausreichen.

Fahräder wirst du so aber wohl nicht erfassen, weil sie zu leise sind. Dafür wäre eine Webcam mit Mustererkennung das Mittel der Wahl. Du darfst da allerdings keinen Monitor oder gar einen Videorecorder dranhängen, weil das juristischen Ärger geben kann.

Vielleicht klappt das sogar schon mit einer umgebautem optischen Maus, denn die macht ja eigentlich auch nichts anderes, als Bilder zu vergleichen und deren Verschiebung zu berechnen.

BID = 628388

Micropower

Gelegenheitsposter



Beiträge: 50
Wohnort: Marburg


Zitat :
Dafür brauchst du doch eigentlich keine Richtwirkung, oder fahren auch hinter deinem Kästchen Fahrzeuge vorbei?


Jede fremde Soundquelle verfälscht das Cross-Correlation-Ergebnis, insbesondere seitliche Soundquellen sind sehr bedrohlich. Das interessante an einem linearen Mikrofonarray, ist das die seitlichen Soundquellen fast vollständig unterdrückt werden. Ich glaube nicht, dass sehr viele Mikrofone nötig wären, um das Performance signifikant zu verbessern.

Ich habe aber noch eine Frage zur Frequenzauswahl:

Der Abstand zwischen zwei Mikrofone ist Lambda/2, z.B. bei einer Frequenz um die 3 kHz ca. 6 cm und bei 6 kHz ca. 3 cm. Also, je höher die Frequenz, umso kleiner wird die Dose, und ich lege einen großen Wert auf eine kleine Dose. Was meint Ihr, wieweit kann ich gehen? Wären Frequenzen um die 6 kHz oder höher noch brauchbar?

Leider habe ich zurzeit keine Möglichkeit höhere Frequenzen zu Testen. Meine analogen Verstärker machen nur bis 4 kHz mit. Die höchste Frequenz, die ich zurzeit testen kann ist um die 3 kHz und die hat gut funktioniert, ich möchte aber sehr gerne höher gehen.




      Nächste Seite
Gehe zu Seite ( 1 | 2 Nächste Seite )
Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 20 Beiträge im Durchschnitt pro Tag       heute wurden bisher 26 Beiträge verfasst
© x sparkkelsputz        Besucher : 182392274   Heute : 7013    Gestern : 6874    Online : 845        24.11.2024    21:41
10 Besucher in den letzten 60 Sekunden        alle 6.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0420639514923