Compressive Sensing durch MATLAB-Codes

13

Ich bin neu im Thema der komprimierten Abtastung. Ich habe ein paar Artikel von R. Baranuik, Y. Eldar, Terence Tao usw. darüber gelesen. Alle diese Artikel enthalten im Wesentlichen die mathematischen Details dahinter, dh Sparsity, RIP, L1-Normminimierung usw. Jedoch kann jeder die MATLAB-Codes bereitstellen das erreichen Drucksensoren?

Vielen Dank im Voraus für jede Hilfe.

USC
quelle
1
Code-Anfragen sind hier nicht aktuell.
Pichenettes

Antworten:

18
  • Der größte Teil des Codes ist Matlab-Code
  • Jeder Ordner im Paket besteht aus einem CS-Wiederherstellungsalgorithmus, der auf einem bestimmten Signalmodell basiert, und einem Skript, das diesen Wiederherstellungsalgorithmus testet. Die Namen der Skripte enden normalerweise mit '_example.m'
  • Manopt . Möglicherweise, was Sie verwenden, um die in anderen Toolboxen enthaltenen Algorithmen tatsächlich zu erstellen.

Die Optimierung von Verteilern ist ein leistungsfähiges Paradigma, um nichtlineare Optimierungsprobleme anzugehen.

Diese Toolbox implementiert mehrere Algorithmen, um die spärliche Erweiterung in redundanten Wörterbüchern zu berechnen und inverse Probleme mit der spärlichen Regularisierung (und auch der TV-Regularisierung) zu lösen.

Aber all das und mehr ist in dieser Liste von Toolboxen enthalten .

Ich habe festgestellt, dass der schwierige Teil darin besteht, Pseudocode zu finden - hier wird der Algorithmus tatsächlich beschrieben. Hier sind einige Beispiele für Algorithmen, die den Pseudocode enthalten:

Scott
quelle
7

Ich nehme an, ich beantworte die Fragen hier nicht zum Thema, aber für L1-Optimierungsansätze finde ich YALL1 ( http://yall1.blogs.rice.edu/ ) und SPGL1 ( http://www.cs.ubc.ca/). ~ mpf / spgl1 / ) sehr nützliche und effiziente Pakete. TFOCS ( http://cvxr.com/tfocs/ ) ist wahrscheinlich etwas schwieriger zu verwenden, sollte aber recht flexibel sein. Es gibt auch CVX ( http://cvxr.com/cvx/ ), mit dem es sehr einfach ist, konvexe Optimierungsprobleme direkt in den Code einzugeben , aber es ist erheblich langsamer, um die Probleme zu lösen, die für die komprimierte Erfassung spezifisch sind, da es sich um ein Problem handelt sehr allgemeiner Löser.

Es gibt auch einige Rekonstruktionsalgorithmen in Sparselab ( http://sparselab.stanford.edu/ ).

Eine größere Liste mit wenigen Rekonstruktionscodes finden Sie hier: https://sites.google.com/site/igorcarron2/cs#reconstruction

Thomas Arildsen
quelle
6

Beachten Sie, dass L1 nicht der einzige Ansatz für die Druckmessung ist. Bei unseren Nachforschungen haben wir mit dem Approximate Message Passing (AMP) bessere Erfolge erzielt. Ich definiere "Erfolg" als geringeren Fehler, bessere Phasenübergänge (Fähigkeit, sich mit weniger Beobachtungen zu erholen) und geringere Komplexität (sowohl Speicher als auch CPU).

Der Approximate Message Passing-Algorithmus erstellt ein Bayes'sches Framework zum Schätzen der unbekannten Vektoren in einem linearen Großsystem, bei dem die Ein- und Ausgänge des linearen Systems durch probablistische Modelle bestimmt werden (z. B. "dieser Vektor wurde mit Rauschen gemessen", "dieser Vektor hat einige") Nullen "). Der ursprüngliche AMP-Ansatz von Donoho wurde von Rangan in Generalized Approximate Message Passing mit verfügbarem Matlab-Code verfeinert. Die Ein- und Ausgänge können nahezu beliebige Wahrscheinlichkeitsdichtefunktionen sein. In unserer Forschung haben wir festgestellt, dass GAMP in der Regel schneller, genauer und robuster ist (Lesen: bessere Phasenübergangskurven) als die konvexen L1-Ansätze und gierigen Ansätze (z. B. Orthogonal Matching Pursuit).

Mein Berater und ich haben gerade einen Artikel über die Verwendung von GAMP für Analysis CS geschrieben, in dem man eine Fülle von Nullen erwartet, nicht in dem unbekannten Vektor x, sondern in einer linearen Funktion dieses Unbekannten, Wx.

Mark Borgerding
quelle