Forum: PC-Programmierung FFT von Audio


von Markus (Gast)


Angehängte Dateien:

Lesenswert?

Hi
ich versuche gerade mit der lib fftw3 eine Fourier analyse 
durchzuführen, aber ich komme nicht so weiter.
Als Medienplayer benutze ich mpd, der einen FIFO Datei erstellt, die ich 
dann mit dem Programm auslesen will. Das Programm macht die FFT Analyse 
und sendet dann das Ergebnis über eine Serielle Schnittstelle weiter an 
einen Mikrocontroller.

Jetzt habe ich das Programm zusammengebastelt, aber es lässt sich nicht 
kompilieren.
Ich hab mich hauptsächlich an der Implementierung ncmpcpp orientiert
http://repo.or.cz/w/ncmpcpp.git/blob/HEAD:/src/visualizer.cpp
1
g++ -lfftw3 main.c
2
main.c: In function ‘void serialwrite(char, int)’:
3
main.c:36: error: invalid conversion from ‘const char*’ to ‘wchar_t’
4
main.c:36: error:   initializing argument 1 of ‘wint_t fputwc(wchar_t, __FILE*)’
5
main.c: In function ‘int main()’:
6
main.c:88: error: no matching function for call to ‘min(size_t, const int&)’
7
make: *** [all] Fehler 1

Könnt ihr mir helfen, wie ich diese Fehler behebe?

von Mark B. (markbrandis)


Lesenswert?

Du mischst hier fröhlich C und C++. Vielleicht solltest Du Dich für eine 
der beiden Sprachen entscheiden und das auch konsequent durchziehen :-)

Für std::min fehlt ein #include <algorithm>

von Karl H. (kbuchegg)


Lesenswert?

Markus schrieb:

> main.c: In function ‘void serialwrite(char, int)’:
> main.c:36: error: invalid conversion from ‘const char*’ to ‘wchar_t’
> main.c:36: error:   initializing argument 1 of ‘wint_t fputwc(wchar_t,
> __FILE*)’

Gemeint ist die Funktion fputwc

Das c am Ende des Funktionsnamens steht für 'Character'.
Du hast keinen Character. Du hast einen String.

von Simon K. (simon) Benutzerseite


Lesenswert?

Vor allem hast du aber ein char und verlangt wird ein wchar_t. Letzteres 
ist für Unicode vorgesehen.

von Markus (Gast)


Lesenswert?

Ok ich werde mir mal die Sachen genauer Anschauen.

Ich weiß dass der Code ziemlich schrecklich aussieht, hab mir auch schon 
ein C++ Buch bestellt, damit ich die Grundlagen erstmal richtig lerne.

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
Noch kein Account? Hier anmelden.