Autor |
Wie funktioniert ein Spectrum Analyzer |
|
|
|
|
BID = 104099
colaturka Neu hier
Beiträge: 30
|
|
Hi, ich wollte mir einen Spectrum Analyzer bauen, ich hab schon eine LED Matrix von 8 x 18. Aber ich weiß gar ned wie ein Spectrum Analyzer eigentlich funktioniert...
So stelle ich mir das vor:
Audio-Ausgang des PCs oder Radios mit dem Microcontroller verbinden (Atmel 80bla bla )
Der Mircontroller berechnet dann welche LEDs zu leuchten haben und welche nicht...
Aber wie kann ich die Berechnung machen??
Muss ich da irgendwie die Signale "dekodieren" oder so
wie geht das einfach ?? |
|
BID = 104107
Jornbyte Moderator
Beiträge: 7178
|
|
BID = 104113
colaturka Neu hier
Beiträge: 30
|
aha und was ist ....was macht es ....
|
BID = 104122
BlackLight Inventar
Beiträge: 5321
|
Fourier Transformation:
Transformiert eine Zeit-Funktion in den Frequenzraum(in eine Frequenz-Funktion,
bzw. ordnet einer Funktion eine andere Funktion zu,
bzw. ordnet einem "Signal" seine Frequenzen zu.
Sieh ein Klavierstück als "Signal", die FT davon sind die Noten.
Da man für die FT die Funktion/Signal sehr genau und komplett wissen muss und es nicht gerade schnell geht, die FT zu bilden,
hat man sich eine nummerische Näherung überlegt, die nur ein paar Funktionswerte braucht (2^n) und relativ schnell sowas wie eine FT davon liefert.
Die FFT ist diese nummerische Näherung.
Wenn es dich interesiert, schau dir Fourier-Reihen, Fourier Transformation und FFT in einem Script, Physik-, Mathe- oder Nummerikbuch an.
Man sollte aber schon mindestens mal einen Leistungskurs Mathematik o.ä. besucht haben.
|
BID = 104131
colaturka Neu hier
Beiträge: 30
|
lol das hört sich echt interessant an, aber erstens gibt es bei uns kein LK oder GK mehr, zweitens brauch ich noch eine andere hardware dazu, oder kann der atmel auch verschiedene signal erkennen mit hilfe von FFT?
Wenn ja, dann ist das echt geil , man lernt dabei mathe hihi, kannst du mir dann dann mals sagen wie ich das ins programm einbringen muss....
|
BID = 104162
Henne02 Stammposter
Beiträge: 493 Wohnort: Aachen
|
MCUs haben keine FFT implementiert!!
Das bedeutet, du musst selbst eine solche fast fourier transformation in assembler bewerkstelligen.
Ich halte es für wahrscheinlich, dass du fertigen C-Code als Vorbild findest. Den musst du nur verstehen (viel Spass...), dessen Effizienz hochschrauben und dann wie gesagt in Assembler ausführen.
Bessere Ergebnisse erziehlst du mit DSPs. Diese Prozessoren sind speziell für Signaltransformationen entwickelt, aber teuer und übel zu verbasteln...
Du hast Dich da an ein Hardcore-Thema rangewagt
WinAmp liefert einen FFT-Output. Den kann man einfach über eine DLL anzapfen und dann die Daten über Drucker- oder RS232-Port rausschieben. Mit derart aufbereiteten Daten kommt Dein AVR besser klar...
Ansonsten kann ich Dir nur viel Glück wünschen
Hendrik
|
BID = 104166
Henne02 Stammposter
Beiträge: 493 Wohnort: Aachen
|
Zur Mathe für FFT:
Ich studiere Masch'bau an der RWTH und komme hier in Mathe über die Runden...
Ich habe eine Einführung in DSP-Algorithmen in die Finger bekommen. Die Entwicklung von moving avarage filtern verstehe ich noch beim Überfliegen. FFT in Pseudoassembler geht aber hart an meine Grenzen...
Grüße, Hendrik
|
BID = 104186
Jornbyte Moderator
Beiträge: 7178
|
Zitat :
| WinAmp liefert einen FFT-Output. Den kann man einfach über eine DLL anzapfen und dann die Daten über Drucker- oder RS232-Port rausschieben. |
Ist das dein Ernst? Bei jeden Lied den Atmel neu proggen?
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 104221
Henne02 Stammposter
Beiträge: 493 Wohnort: Aachen
|
NEIN!!!! Blos nicht!!
Man schiebt mit einer eigenen vis.dll die FFT-Level der gewünschten Frequenzen über den Druckerport oder den seriellen Port in den AVR und dieser übernimmt nur noch das Demultiplexen auf die LEDs.
Die mcu wird einmal geprogt, dient danach aber als Interface zu einem PC
Grüße, hendrik
- das hört sich doch besser an, oder -
|
BID = 104254
colaturka Neu hier
Beiträge: 30
|
aha....ok wenn ich jetzt FFT mit Asm mache, blickt "er" auch dann durch welche Signalstärke ankommt.
Also ein µC versteht ja auch nur High oder Low, ich kapier dann nicht soo wie "er" dann zwischen einem "schwachen" High oder "starken" High unterscheiden kann....
|
BID = 104255
colaturka Neu hier
Beiträge: 30
|
mit DSP lieber ned ....schon Assembler, ich will ASM jetzt mal einigermaßen beherschen.....
|
BID = 104295
MinceR Stammposter
Beiträge: 277
|
neneneeeee, das was henne02 meint ist eine art tool was du mit winamp verbindest. dein winamp macht dann alles automatisch. somit kannste aber nur das von deinem pc gerade abgespielte musik anzeigen lassen.
ist also eine visualisierung statt auf dem monitor auf einem zusätlichen LCD.
der µC empfängt dann bereits vom pc daten in die richtung 100hz viel /200hz wenig/ usw usw. der wandelt die daten dann nur so um das das LCD die daten auch rafft.
meines wissens gibts auch tools die das ohne µC schaffen. also wo der PC direkt daten auswirft der dein LCD rafft.
ist aber alles wie gesagt eine einfache visualisierung. kannst dir je nachdem welches zusatztools du für winamp nutzt genausogut den namen der MP3 sowie bitraten oder sonstige informationen der gerade abgespielten mp3 anzeigen lassen.
wenn du einen spectrum analyser selber entwickeln und bauen willst der einen analogen eingang hat und alles verträgt sag ich nur: " viel spass" ohne den wirstes schnell dir ausm kopf schlagen.
ach ein µC mit analog zu digital konverter (ADC) kann auch "spannungen messen" einfach gesagt.
falls du nur wie oben gemeint ne visualisierung haben willst http://www.jalcds.de
falls du ne etwas besseres haben willst mitdem man schon etwas arbeiten kann solltest mal nach "winscope" gucken. ein ein oszilloscop proggi das den eingang der soundkarte nutzt. hat auch einen spectrum analyser drin.. brauchst nur einen spannungsteiler damit du dir die soundkarte nicht schiesst. sieht zwar scheisse aus aber man kann ein wenig damit messen...
|
BID = 104324
Henne02 Stammposter
Beiträge: 493 Wohnort: Aachen
|
Aber wenn das ganze auf LEDs demultiplexen willst, ist doch wieder Zeit für eine mcu (oder 30shift register...)
Grüße, Hendrik
ansonsten: wenigstens MinceR versteht mich...
|
BID = 104398
colaturka Neu hier
Beiträge: 30
|
joooo genau das blinkenleds hab ich schon gebaut, hab sogar eigene software dafür geproggt in delphi hihi hat alles geklappt, nur jetzt will ich das teil mit µC machen, denn ich möchte ASM können.
Und außerdem will ich das ans bsp autoradio anschließen.
Sooo nun muss ich halt wissen ob man sowas mit dem µC machen kann, so ich das mitbekommen habe geht das auch.
Nur ich möchte halt wissen wie das soo funktioniert, vom prinzip her!!
|
BID = 104463
tixiv Schreibmaschine
Beiträge: 1492 Wohnort: Gelsenkirchen
|
Du wirst um das Signal in den UC zu bekommen einen AD Wandler brauchen. Manche typen haben bereits einen eingebaut, ansosnten kann man aber auch einen externen anschliessen. Dann liesst Du eine kurze Zeit lang ein Stück von dem Audio Signal ein, und speicherst es zwischen (da wirst Du allerdings Probleme bekommen, da dafür das interne Ram vom Prozessor wohl nicht reichen wird). Dann lässt Du dadrauf den FFT los, der Dir dann die Pegel der einzelnen Frequenzen errechnet.
Du wirst wohl noch ein externes RAM brauchen.
|