Buchempfehlung - Schreiben von DSP-Code in C

12

Ich suche ein gutes Buch, das einfach zeigt, wie Sie einen Code in C schreiben, um alle wichtigen DSP-Methoden auszuführen.

  1. FFT.
  2. Tiefpass- und Hochpassfilter.
  3. Autokorrelation.
  4. Rauschverarbeitung.

Und alle Grundlagen von DSP, von der Theorie bis zum realen Code in C.

Ich habe zum Beispiel 1000 Samples, jetzt möchte ich die FFT davon berechnen, Rauschen entfernen und dann wieder auf die Zeitachse bringen.

Gibt es etwas Gutes, das all dies abdeckt?

Kippelig
quelle
1
Gute Frage! Ich habe ein Tag in "Referenzanfrage" geändert, weil es das zu sein scheint, wonach Sie fragen.
Peter K.
2
Ist DFFT ein Tippfehler?
Gilles
Ja, es gibt keine DFFT nur FFT
Brethlosze

Antworten:

13

Ich kann Ihnen zwei Bücher über DSP für C empfehlen.

Embree PM - C - Sprachalgorithmen für die digitale Signalverarbeitung

Es ist alt und man kann es leicht aus zweiter Hand für einen anständigen Preis bekommen. Es deckt so ziemlich alle 4 Themen ab, die Sie beschrieben haben.

Der andere, den ich empfehle, ist:

Malepati H. - Digitale Medienverarbeitung: DSP-Algorithmen mit C

Es werden weit mehr Themen behandelt (einschließlich Fehlerkorrekturalgorithmen und Bild- / Videoverarbeitungsalgorithmen). Das Schöne daran ist, dass Testsignale bereitgestellt werden, um Ihre Implementierung zu testen.


Ich habe gerade daran erinnert, dass auf meinem Schreibtisch ein weiteres Buch mit einem C-Code für DSP liegt.

Presse WH - Numerische Rezepte: Die Kunst des wissenschaftlichen Rechnens

Es gibt zwei Kapitel über die Fourier-Transformation und ihre Anwendungen.


Ein letzter Vorschlag - wenn Sie können, verwenden Sie bitte eine vorhandene C-Bibliothek, anstatt Ihre eigenen Werkzeuge zu schreiben. Es macht keinen Sinn, das Rad neu zu erfinden.

jojek
quelle
4
Wie jede andere Fähigkeit lernt man das Erfinden am besten, wenn man von einfachsten Beispielen ausgeht und genug übt. Es ist also immer von Vorteil, das Rad zu erfinden, nicht weil es einen Mehrwert als Errungenschaft darstellt, sondern weil es dem Erfinder ermöglicht, die notwendige Einsicht in die Natur von Erfindungen aufzubauen.
Fat32
3
Dem stimme ich voll und ganz zu. In 99% der Projekte, die ich durchgeführt habe, war jedoch keine Zeit, das Rad neu zu erfinden. Auf der anderen Seite erfinde ich, wenn ich meine eigenen Sachen zu Hause mache, in 99% der Fälle das Rad neu, um die aktuellen Werkzeuge zu erlernen und zu verbessern.
Jojek
Meiner Meinung nach ist die Verwendung vorhandener Bibliotheken eine Art Chaos. Es ist nicht so, dass Sie alle in einem Framework haben, Sie müssen sich auf jeden einzelnen von ihnen verlassen, und mit DSP haben Sie immer verschiedene Arten von Eingaben, und die Dinge sind viel mehr kompliziert dann eben eine blackbox die dies und das macht.
Curnelious
@Curnelious Obwohl Sie bis zu einem gewissen Grad Recht haben (und für einige Bibliotheken), kann ich nicht zustimmen, dass alle vorhandenen Bibliotheken ein Durcheinander sind. Und wir müssen zugeben, dass wir sie alle benutzen. Es geht eher um die Philosophie als um die Realität.
Fat32
Ein großer Vorteil der Verwendung bekannter Bibliotheken besteht darin, dass der Benutzer mehr oder weniger sicher sein kann, dass der Code tatsächlich überprüft wird. Sehr oft kann es Randfälle geben, an die die Leute nicht denken, die in bestimmten Situationen problematisch sein können. Momentan fallen mir keine DSP-Beispiele ein, aber ein sehr anschauliches Beispiel für eine allgemeine Art von Problem ist der Versuch, die Anzahl der Minuten von einem bestimmten Datum in der Vergangenheit bis jetzt zu berechnen. Anfangs kann es so einfach aussehen, als würde man nur die Anzahl der Tage ermitteln, aber wenn die Uhrzeit und der Kalender geändert werden, wird es sehr kompliziert.
AndrejaKo
7

Ich würde eine Einführung in die Signalverarbeitung von SJ Orfanidis empfehlen . Es ist ein großartiges Buch mit einer guten Mischung aus Theorie und Praxis und enthält auch Codebeispiele in C und Matlab. Sobald Sie es durchgearbeitet haben, wissen Sie genug, um alleine weiterzumachen.

Matt L.
quelle
0

Embree PM - C - Sprachalgorithmen für die digitale Signalverarbeitung

war nützlich in meiner MSC-Arbeit beim Erstellen von Filtern ... obwohl Sie die Header mit Matlab-Codierer erstellen können .... Ich hatte nur Probleme mit der Implementierung seiner FFT, die mit komplexen Zahlen stattdessen bestand, wenn trig, was im wirklichen Leben einfacher zu implementieren ist .

Chika Worka - Doktorandin
quelle
-1

Sie können sich den Quellcode von openSAL- und Octave-Quellen der Matlab-Signalverarbeitungsfunktionen ansehen (nicht C, aber nützlich). Das habe ich getan.

VK69UK
quelle
Dies ist eine riskante Prozedur .... Matlab-Code enthält so viele verschachtelte Funktionen und es ist sehr wahrscheinlich, dass das Reverse-Engineering des Codes abgeschlossen wird .... Ich habe dies in der Vergangenheit versucht und nein, ich denke nicht, dass ein Anfänger dies tun sollte
Brethlosze