Forum: Mikrocontroller und Digitale Elektronik Lichtorgel mit Bandpassfilter


von Yoogi (Gast)


Lesenswert?

Hallo allerseits,

Ich glaube, ich stehe gerade ein bisschen auf dem Schlauch...

Ich möchte mit einem AVR ein 6-Kanal-Lichtorgel realisieren (~40Hz - 
16kHz, zerlegt in 6 Intervalle).

Meine Idee ist dabei, eine Audioquelle auf den ADC zu legen.
Dann will ich meine 6 Frequenzbereiche durch je einen Bandpass (IIR, 
digital) berechnen lassen. Also ADC-Werte durch Bandpass1, Bandpass2, 
... usw schicken.

Und wie weiter? Bekomme ich dann schon die Werte, die ich haben will? 
Bin nach 4 Stunden studieren der Materie irgendwie durcheinander.

von karadur (Gast)


Lesenswert?

Hallo


wenn du deine 6 Amplituden hast, lege jeweils einen Schwellwert fest. In 
abhängigkeit davon jeweils ein Port steuern der die Endstufe steuert.

von Yoogi (Gast)


Lesenswert?

Sehe ich das richtig, dass ich bei einer maximalen Frequenz (16kHz), die 
ich noch wahrnehmen möchte, doppelt so schnell abtasten muss (Nyquist)?

Das heißt ich muss mindestens im 32kHz Takt einen ADC-Messwert 
aufnehmen?

von Karl H. (kbuchegg)


Lesenswert?

Yoogi schrieb:
> Sehe ich das richtig, dass ich bei einer maximalen Frequenz (16kHz), die
> ich noch wahrnehmen möchte, doppelt so schnell abtasten muss (Nyquist)?
>
> Das heißt ich muss mindestens im 32kHz Takt einen ADC-Messwert
> aufnehmen?

Das siehst du richtig.
Leg aber noch ein wenig drauf. Wenn du an die Grenze kommst, enstehen 
sonst Schwebungseffekte.

von Yoogi (Gast)


Lesenswert?

Nochmal ich.

Die Idee mit dem digitalen Filter habe ich verworfen. Dauert einfach zu 
lange (~ 500 Ticks pro Filteriteration * 6 Frequenzbänder). Da ist ein 
AVR mit 20MHz einfach zu langsam.

Nun bin ich aber bei meinen Recherchen auf aktive analoge Filter mit 
OpAmps gestoßen. Das scheint ganz gut zu funktionieren.

Nun stellen sich aber neue Fragen:

1) Ich habe den nicht-invertierenden Verstärker 
Operationsverstärker-Grundschaltungen für Audiosignale aufgebaut, 
allerdings mit LM358. Das Signal wird gut in den positiven Bereich 
verschoben, aber die Verstärkung passt irgendwie nicht. Hatte es mit 
Poti aufgebaut, die Verstärkung war damit von 1-66 einstellbar. Aber 
irgendwie gibts beim Signal keinen Unterschied zwischen den 
Verstärkungen. Liegts am LM358?

2) Gleich bezogen auf 1: Auf welche Werte muss man bei der Auswahl eines 
OpAmp achten für meine Anwendung? Es gibt die Dinger ja wie Sand am 
Meer. Vielleicht hat jemand einen Link mit einer guten Erklärung für 
mich.

3) Wie würdet ihr die Frequenzen aufteilen? Ich würde diese 
Frequenzbänder benutzen:

Tiefpass: 130 Hz
Bandpass: 130 Hz - 600 Hz
Bandpass: 600 Hz - 2000 Hz
Bandpass: 2000 Hz - 6000 Hz
Bandpass: 6000 Hz - 10000 Hz
Hochpass: 10000 Hz


MfG,
Yoogi

von Bernhard R. (barnyhh)


Lesenswert?

Früher (so ca. 1970) hat man für Lichtorgeln drei Bereiche (Höhen, 
Mitte, Bässe) gewählt, denn R-G-B benötigt für jede Farbe auch nur 3 
Grundfarben.

Zur Verstärkung:
Je nach Frequenzbereich bekommst Du unterschiedliche Eingangsamplituden 
und benötigst dementsprechend unterschiedliche Verstärkung je Kanal:
- Bässe wenig
- Mitten mehr
- Höhen viel.

Die Idee mit aktiven Bandpässen (per Operationsverstärker) klingt recht 
brauchbar. Für die Höhen sollte allerdings das Bandbreite- 
Verstärkungsprodukt des eingesetzten Operationsverstärkers ausreichend 
hoch sein.

Bernhard

von Yoogi (Gast)


Lesenswert?

Bernhard R. schrieb:
> Früher (so ca. 1970) hat man für Lichtorgeln drei Bereiche (Höhen,
> Mitte, Bässe) gewählt, denn R-G-B benötigt für jede Farbe auch nur 3
> Grundfarben.
>

Ich möchte damit einen 6x6x6 LED-Cube befeuern. Daher 6 Kanäle.

> Zur Verstärkung:
> Je nach Frequenzbereich bekommst Du unterschiedliche Eingangsamplituden
> und benötigst dementsprechend unterschiedliche Verstärkung je Kanal:
> - Bässe wenig
> - Mitten mehr
> - Höhen viel.

Also sollte der Aufbau so sein:
Eingangssignal -> OP -> Tiefpass/Bandpass/Hochpass -> OP -> ADC µC

>
> Die Idee mit aktiven Bandpässen (per Operationsverstärker) klingt recht
> brauchbar. Für die Höhen sollte allerdings das Bandbreite-
> Verstärkungsprodukt des eingesetzten Operationsverstärkers ausreichend
> hoch sein.

Welcher Wert ist das denn? Die Slewrate? Und welche Werte eignen sich 
da? Ist es für die Höhen wichtig, weil die Frequenzen da höher sind, 
also der OP "schneller" arbeiten muss?

Danke für die Antwort

von Bernhard R. (barnyhh)


Lesenswert?

In erster Näherung ist das Verstärkungs-Bandbreite Produkt gleich der 
Frequenz, bei der die Leerlauf-Verstärkung des Opamp zu 1 wird.

Dicke Faustformel:
Bei 20 kHz sollte die Leerlauf-Verstärkung des Opamp mindestens 10 mal 
so hoch sein wie die Verstärkung des Höhen-Kanals.

Wichtig ist ebenfalls, daß die Aussteuerbarkeit des Opamp bei 20 kHz 
groß genug ist (s. Output Voltage Swing).

Bernhard

von Yoogi (Gast)


Lesenswert?

Ok, so richtig verstanden habe ich das noch nicht. Aber scheinbar ist 
der TL071/TL072/TL074 eine recht gute Wahl.

Was für Kondensatoren nimmt man eigentlich für die Filter? Bipolare 
(Elkos) oder unipolare (Keramikkondensator)?

von Karl H. (kbuchegg)


Lesenswert?

Yoogi schrieb:
> Nochmal ich.
>
> Die Idee mit dem digitalen Filter habe ich verworfen. Dauert einfach zu
> lange (~ 500 Ticks pro Filteriteration * 6 Frequenzbänder). Da ist ein
> AVR mit 20MHz einfach zu langsam.


??
Der Elm-Chan schafft es eine komplette FFT in Echtzeit auf einem Mega8 
laufen zu lassen UND nebenbei noch ein GLCD anzusteuern

Guckst du
http://elm-chan.org/works/akilcd/report_e.html

von hans (Gast)


Lesenswert?

Von ROHM gibt es den fertigen Filter für dein Vorhaben:

http://www.rohm.com/products/databook/audio/pdf/ba3830f-e.pdf

hans

von Yoogi (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> ??
> Der Elm-Chan schafft es eine komplette FFT in Echtzeit auf einem Mega8
> laufen zu lassen UND nebenbei noch ein GLCD anzusteuern
>
> Guckst du
> http://elm-chan.org/works/akilcd/report_e.html

Ja in Assembler. Ich hab halt die C-Codes von WinFilter probiert, da ich 
mit Assembler auf Kriegsfuß stehe. Und wenn ich den Code schon "klaue", 
dann will ich ihn wenigstens so weit verstehen, dass ich selbst 
Anpassungen vornehmen kann.


Den Rohm-Baustein gibts leider bei den großen Versendern nicht. Außerdem 
hat er ein bastlerfeindliches SO18-Gehäuse :-(. Schade, den hätte ich 
gern genommen.


Kann mir bitte noch jemand auf meine vorherige Frage antworten:
> Was für Kondensatoren nimmt man eigentlich für die Filter? Bipolare
> (Elkos) oder unipolare (Keramikkondensator)?

von mhh (Gast)


Lesenswert?

Yoogi schrieb:
> Bipolare (Elkos) oder unipolare (Keramikkondensator)?

Folie (Wickel)

von Wissender (Gast)


Lesenswert?

>Bei 20 kHz sollte die Leerlauf-Verstärkung des Opamp mindestens 10 mal
>so hoch sein wie die Verstärkung des Höhen-Kanals.

Also bei einer solchen Anwendung wäre es Overkill, Frequenzen von 20 kHz 
auszuwerten. Ich denke, bis 10kHz wäre völlig ausreichend. Darüber ist 
amplitudentechnisch so wenig los, dass es für die Anwendung "Lichtorgel" 
keine Rolle spielt.

von Karl H. (kbuchegg)


Lesenswert?

Yoogi schrieb:
> Karl heinz Buchegger schrieb:
>> ??
>> Der Elm-Chan schafft es eine komplette FFT in Echtzeit auf einem Mega8
>> laufen zu lassen UND nebenbei noch ein GLCD anzusteuern
>>
>> Guckst du
>> http://elm-chan.org/works/akilcd/report_e.html
>
> Ja in Assembler.

Hauptsächlich wahrscheinlich deshalb, weil er Fixpunkt Arithmetik 
betreibt. Das ist in Assembler genausowenig ein Beinbruch, wie es auch 
in C ist. Wenn du natürlich mit float um dich schmeißt, ..

von Yoogi (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Hauptsächlich wahrscheinlich deshalb, weil er Fixpunkt Arithmetik
> betreibt. Das ist in Assembler genausowenig ein Beinbruch, wie es auch
> in C ist. Wenn du natürlich mit float um dich schmeißt, ..

Nein, mit 8bit Ganzzahlen:
1
#define NCoef 1
2
#define DCgain 16
3
    
4
__int8 ACoef[NCoef+1] = {
5
          92,
6
          92
7
};
8
9
__int8 BCoef[NCoef+1] = {
10
        128,
11
       -116
12
};
13
14
__int8 iir(__int8 NewSample) {
15
16
17
    static __int16 y[NCoef+1]; //output samples
18
    //Warning!!!!!! This variable should be signed (input sample width + Coefs width + 1 )-bit width to avoid saturation.
19
20
    static __int8 x[NCoef+1]; //input samples
21
    int n;
22
23
    //shift the old samples
24
    for(n=NCoef; n>0; n--) {
25
       x[n] = x[n-1];
26
       y[n] = y[n-1];
27
    }
28
29
    //Calculate the new output
30
    x[0] = NewSample;
31
    y[0] = ACoef[0] * x[0];
32
    for(n=1; n<=NCoef; n++)
33
        y[0] += ACoef[n] * x[n] - BCoef[n] * y[n];
34
35
    y[0] /= BCoef[0];
36
    
37
    return y[0] / DCgain;
38
}

von Yoogi (Gast)


Lesenswert?

Das ganze bei 20MHz mit 20kHz Abtastrate, da hab ich nur 666 Takte pro 
Zyklus zur Verfügung.
Und in der Zeit 6 mal diesen Filter berechnen plus Visualisierung ist 
einfach zu viel.

Korrigiert mich, wenn ich da einen Denkfehler habe...

von Yoogi (Gast)


Lesenswert?

30 kHz Abtastrate meine ich...

von Karl H. (kbuchegg)


Lesenswert?

Yoogi schrieb:

>     //shift the old samples
>     for(n=NCoef; n>0; n--) {
>        x[n] = x[n-1];
>        y[n] = y[n-1];
>     }

Das kriegst du schon mal weg, indem du einen umlaufenden Startindex 
benutzt. Dieselbe Technik, die man auch bei einem Ringbuffer benutzt.

>     //Calculate the new output
>     x[0] = NewSample;
>     y[0] = ACoef[0] * x[0];
>     for(n=1; n<=NCoef; n++)
>         y[0] += ACoef[n] * x[n] - BCoef[n] * y[n];

Da müsste man sich überlegen, ob man nicht den 1 Messwert, der 
rausfällt, aus y[0] rausrechnen und dafür den neuen Messwert in y[0] 
reinrechnen könnte. Dann spart man sich für die restlichen 499 Werte das 
sinnlose erneute Berechnen der Formel.

Edit:
Seh grade: nCoef ist ja 1. Das vereinfacht die Sache enorm.
Das kannst du doch händisch optimieren
(Oder willst du die Anzahl der Filterkoeffizienten noch hochtreiben?)

von Yoogi (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> (Oder willst du die Anzahl der Filterkoeffizienten noch hochtreiben?)

^^ Ich hoffe, das ist nicht notwendig. Na gut, dann werde ich mal 
versuchen das zu optimieren. Aber ich denke, dass es trotzdem zu eng 
wird.
Ich muss ja noch zwischendurch den 6x6x6 Cube treiben. Obwohl dass bei 
100Hz Ausgabe eigentlich nicht so schlimm stören sollte.

von Karl H. (kbuchegg)


Lesenswert?

Wenn nCoeff 1 bleibt, dann bleibt übrig
1
__int8 iir(__int8 NewSample) {
2
3
4
    static __int16 y[NCoef+1]; //output samples
5
    //Warning!!!!!! This variable should be signed (input sample width + Coefs width + 1 )-bit width to avoid saturation.
6
7
    static __int8 x0;
8
    static __int8 x1;
9
    int n;
10
11
    x1 = x0;
12
    y[1] = y[0];
13
14
    //Calculate the new output
15
    x0 = NewSample;
16
    y[0]  = ACoef[0] * NewSample;
17
    y[0] += ACoef[1] * x1 - BCoef[1] * y[1];
18
19
    y[0] /= BCoef[0];
20
    
21
    return y[0] / DCgain;
22
}

Das Array y wird man sicherlich auch noch durch 2 getrennte Variablen 
los.

Was ist mit DCgain? Muss diese Division sein? Wozu verwendest du das 
Ergebnis der Funktion?

von Yoogi (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Was ist mit DCgain? Muss diese Division sein? Wozu verwendest du das
> Ergebnis der Funktion?

Wie gesagt, dass ist generierter Code aus WinFilter. Da DCGain immer 
etwas aus 2^x ist, kann man es schnell shiften.

Ich hoffe, dass meine Interpretation des Wertes richtig ist: Er gibt mir 
die "Stärke" des Signals bei der Frequenz für die der Filter ausgelegt 
ist. Wie gesagt, ich möchte 1 Tiefpass, 4 Bandpässe und 1 Hochpass nach 
obiger Funktion auslegen. Der jeweilige Rückgabewert ist dann 
hoffentlich das "Spektrum" des Signals in 6 Frequenzbändern.

von chris (Gast)


Lesenswert?

Es geht in C mit Festkommaarithmethik. Ausserdem ist es nicht notwendig 
mit 32Khz abzutasten, weil für die Lichtorgel die wirklich hohen 
Frequenzen nicht interessieren. Sinnvoller ist es, die Eingangsfrequenz 
mit einem LowpassFilter auf z.B. 3Khz zu begrenzen, dann reicht eine 
Abtastfrequenz zwischen 10 und 20KHz locker aus.
http://www.hobby-roboter.de/forum/viewtopic.php?f=4&t=51&start=0

von Karl H. (kbuchegg)


Lesenswert?

Yoogi schrieb:
> Karl heinz Buchegger schrieb:
>> Was ist mit DCgain? Muss diese Division sein? Wozu verwendest du das
>> Ergebnis der Funktion?
>
> Wie gesagt, dass ist generierter Code aus WinFilter. Da DCGain immer
> etwas aus 2^x ist, kann man es schnell shiften.

Schon. Die Frage bleibt trotzdem: Was machst du mit dem Wert. WEnn du 
den Wert sowieso nur mit einem Schwellwert vergleichst, kannst du die 
Division auch raus nehmen und stattdessen (mit dem Taschenrechner) den 
Schwellwert mal DCGain nehmen. Läuft im Endeffekt aufs gleiche raus, ist 
aber schneller. Eine Operation gar nicht machen müssen ist immer noch 
schneller als die schnellste Variante der Operation.

von Yoogi (Gast)


Lesenswert?

chris schrieb:
> Es geht in C mit Festkommaarithmethik.

In dem von mir geposteten Code sind keine Gleitkommawerte. Alles nur 
ganzzahlig...

Der Link von dir ist ja ganz interessant, aber eine Gleichung oder 
Koeffizienten für den Filter sind nicht dabei.

von Yoogi (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Schon. Die Frage bleibt trotzdem: Was machst du mit dem Wert. WEnn du
> den Wert sowieso nur mit einem Schwellwert vergleichst, kannst du die
> Division auch raus nehmen und stattdessen (mit dem Taschenrechner) den
> Schwellwert mal DCGain nehmen. Läuft im Endeffekt aufs gleiche raus, ist
> aber schneller. Eine Operation gar nicht machen müssen ist immer noch
> schneller als die schnellste Variante der Operation

Stimmt. Ich vergleiche den Wert mit 6 Schwellwerten. Denke da lohnt sich 
dein Weg trotzdem.

Hab aber eben gesehen, dass nur bei dem von mir geposteten Code NCoef = 
1 ist. Das war ein Tiefpass. Bei Bandpässen liegt dass dann schonmal bei 
5 - 11. Je nach Ordnung des Filters. Ich weiß nicht, ob ich das so weit 
optimieren kann, ohne dass ich Zeitprobleme bekomme.

chris schrieb:
> Ausserdem ist es nicht notwendig
> mit 32Khz abzutasten, weil für die Lichtorgel die wirklich hohen
> Frequenzen nicht interessieren. Sinnvoller ist es, die Eingangsfrequenz
> mit einem LowpassFilter auf z.B. 3Khz zu begrenzen, dann reicht eine
> Abtastfrequenz zwischen 10 und 20KHz locker aus.

Das war eine meiner vorhergehenden Fragen: In welchen Frequenzbereichen 
macht das Sinn? Meine Idee war diese Aufteilung

Yoogi schrieb:
> Tiefpass: 130 Hz
> Bandpass: 130 Hz - 600 Hz
> Bandpass: 600 Hz - 2000 Hz
> Bandpass: 2000 Hz - 6000 Hz
> Bandpass: 6000 Hz - 10000 Hz
> Hochpass: 10000 Hz

Ich lass mich da aber auch gerne eines besseren belehren.

von mhh (Gast)


Lesenswert?

Yoogi schrieb:
>> Bandpass: 2000 Hz - 6000 Hz
>> Bandpass: 6000 Hz - 10000 Hz
>> Hochpass: 10000 Hz

Bandpass: 2000 Hz - 5000 Hz
Bandpass: 5000 Hz - 8000 Hz
Hochpass: >8000 Hz

von Yoogi (Gast)


Lesenswert?

Wieder ich,

Ich habe schwere Probleme mein Audiosignal sauber auf meinen ADC zu 
bekommen. Wie bereits geschrieben, habe ich die Schaltung von
Operationsverstärker-Grundschaltungen für Audiosignale aufgebaut, 
diesmal mit NE5532.

Das Audiosignal ziehe ich aus meinem Line-Out meiner Soundkarte am PC.

Leider schwanken die meine ADC-Werte beträchtlich. Manchmal um 30 (bei 
5V Ref). Wenn ich das das Audiosignal abklemme, "läuft" der Wert öfter 
um den Betrag 200-300 (also z.B. von 100 auf 350). So richtig konnte ich 
es noch nicht reproduzieren.

Daher habe ich ein paar Fragen, weil ich nicht weiter weiß:

1) Kann ich mit meinem Aufbau erwarten, dass bei ausgeschalteter Musik 
ein gleichmäßiges ADC Signal am µC anliegt? Oder gibt es immer 
Störungen, Wellen oder wer weiß was, was das Signal stört?

2) Wenn ich mit einem Tongenerator ein gleichmäßiges Sinussignal fester 
Frequenz auf meine Soundkarte gebe, kann ich dann am ADC einen 
konstanten "Ausschlag" erwarten? Oder zumindest eine Schwingung um einen 
konstanten Betrag?

3) Wenn ich das Audiosignalkabel physikalisch abtrenne, welches Signal 
kann ich dann am ADC erwarten?

Danke für eure Hilfe. Es ist echt deprimierend, wenn man das nicht 
richtig messen kann.

von LordZiu (Gast)


Lesenswert?

Hat niemand bisher Erfahrungen mit sowas sammeln können?

von Karl H. (kbuchegg)


Lesenswert?

Yoogi schrieb:

> Das Audiosignal ziehe ich aus meinem Line-Out meiner Soundkarte am PC.
>
> Leider schwanken die meine ADC-Werte beträchtlich. Manchmal um 30 (bei
> 5V Ref). Wenn ich das das Audiosignal abklemme, "läuft" der Wert öfter
> um den Betrag 200-300 (also z.B. von 100 auf 350). So richtig konnte ich
> es noch nicht reproduzieren.

Ehe du da ein AudioSignal drauf gibst, solltest du erst mal soweit 
kommen, dass dein ADC Wert bei konstant anliegender Eingangsspannung 
(die du zb mit einem Poti erzeugst) auch einen konstanten Output 
liefert.
Ansonsten ist alles weitere erst mal sinnlos.

> 1) Kann ich mit meinem Aufbau erwarten, dass bei ausgeschalteter Musik
> ein gleichmäßiges ADC Signal am µC anliegt? Oder gibt es immer
> Störungen, Wellen oder wer weiß was, was das Signal stört?

Kleine Störungen gibt es. Wenn dein ADC Wert um 2 oder 3 Einheiten 
schwankt, dann wirst du dich in diesem Bereich bewegen.

> 2) Wenn ich mit einem Tongenerator ein gleichmäßiges Sinussignal fester
> Frequenz auf meine Soundkarte gebe, kann ich dann am ADC einen
> konstanten "Ausschlag" erwarten?

Nein. In einer Welle ändert sich der Spannungswert ja laufend. Und klar 
schlägt sich das auch im ADC Wert nieder.

> Danke für eure Hilfe. Es ist echt deprimierend, wenn man das nicht
> richtig messen kann.

Bei allem nötigen Respekt. Aber das hat mit 'nicht messen können' nicht 
viel zu tun.

von Yoogi (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Yoogi schrieb:
>
>> Das Audiosignal ziehe ich aus meinem Line-Out meiner Soundkarte am PC.
>>
>> Leider schwanken die meine ADC-Werte beträchtlich. Manchmal um 30 (bei
>> 5V Ref). Wenn ich das das Audiosignal abklemme, "läuft" der Wert öfter
>> um den Betrag 200-300 (also z.B. von 100 auf 350). So richtig konnte ich
>> es noch nicht reproduzieren.
>
> Ehe du da ein AudioSignal drauf gibst, solltest du erst mal soweit
> kommen, dass dein ADC Wert bei konstant anliegender Eingangsspannung
> (die du zb mit einem Poti erzeugst) auch einen konstanten Output
> liefert.
> Ansonsten ist alles weitere erst mal sinnlos.

Das funktioniert, hatte ich nur nicht erwähnt. Also der ADC ist korrekt 
initialisiert und funktioniert soweit auch, wenn ich eine konstante 
Gleichspannung draufgebe.

>> 1) Kann ich mit meinem Aufbau erwarten, dass bei ausgeschalteter Musik
>> ein gleichmäßiges ADC Signal am µC anliegt? Oder gibt es immer
>> Störungen, Wellen oder wer weiß was, was das Signal stört?
>
> Kleine Störungen gibt es. Wenn dein ADC Wert um 2 oder 3 Einheiten
> schwankt, dann wirst du dich in diesem Bereich bewegen.

Okay, das dachte ich mir nämlich auch.


>> Danke für eure Hilfe. Es ist echt deprimierend, wenn man das nicht
>> richtig messen kann.
>
> Bei allem nötigen Respekt. Aber das hat mit 'nicht messen können' nicht
> viel zu tun.

Doch schon. Wenn ich ein Oszi hätte, würde ich ein Gefühl für das Signal 
bekommen: Wieviel Volt kommen bei welcher Lautstärke aus der Soundkarte. 
Wie sieht das Signal hinter meinem OpAmp aus usw. Ich glaube das ist 
sehr wichtig, dass man weiß, in welchen Größenordnungen sich sowas 
abspielt.

von Karl H. (kbuchegg)


Lesenswert?

Yoogi schrieb:

> Doch schon. Wenn ich ein Oszi hätte, würde ich ein Gefühl für das Signal
> bekommen: Wieviel Volt kommen bei welcher Lautstärke aus der Soundkarte.
> Wie sieht das Signal hinter meinem OpAmp aus usw. Ich glaube das ist
> sehr wichtig, dass man weiß, in welchen Größenordnungen sich sowas
> abspielt.

Stell dein Multimeter auf Wechselspannung und häng es drann. Ganz genau 
wird es nicht stimmen, ist ja schliesslich keine reine Sinusschwingung, 
aber größenordnungsmässig bist du dabei.

von stepp64 (Gast)


Lesenswert?

Hallo,

vieleicht hilft dir ja meine Schaltung ein wenig weiter. Diese ist 
allerdings auch mit Hilfe verschiedener Forenuser entstanden. 
Funktioniert als LO eigentlich ganz gut. Allerdings habe ich da nie 
etwas dran gemessen (da kein Oszi vorhanden). Berechnet habe ich 
lediglich die Kondensatoren für die Filter. Beschrieben ist das alles 
auf meiner Webseite 
http://stepp64.dyndns.org/sven/elektronik/dmx877/index.php

Viel Spaß
Sven

von Yoogi (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Stell dein Multimeter auf Wechselspannung und häng es drann. Ganz genau
> wird es nicht stimmen, ist ja schliesslich keine reine Sinusschwingung,
> aber größenordnungsmässig bist du dabei.

Super Idee, danke. Das ich da nicht selbst drauf gekommen bin ...

von Yoogi (Gast)


Lesenswert?

stepp64 schrieb:
> vieleicht hilft dir ja meine Schaltung ein wenig weiter. Diese ist
> allerdings auch mit Hilfe verschiedener Forenuser entstanden.
> Funktioniert als LO eigentlich ganz gut. Allerdings habe ich da nie
> etwas dran gemessen (da kein Oszi vorhanden). Berechnet habe ich
> lediglich die Kondensatoren für die Filter. Beschrieben ist das alles
> auf meiner Webseite
> http://stepp64.dyndns.org/sven/elektronik/dmx877/index.php

Danke danke, so eine Schaltung suche ich seit Wochen. Kannst du mir noch 
sagen, ob die Auswahl der OpAmps wichtig ist? Kann ich das auch mit 
TL07x oder LM358 aufbauen?

Grüße

von nicht_eingeloggt (Gast)


Lesenswert?

6-Kanal-Lichtorgel basierend auf Elm Chan's FFT-Routinen.
Beitrag "[C] AVR-Lichtorgel per FFT MEGA8 32 644"

von stepp64 (Gast)


Lesenswert?

Leider kenne ich mich mit Op-Amps auch nicht so richtig aus. Aber 
irgendwie gab es bei diesen Typen etwas besonderes. Kann sein, dass 
diese keine negativen Spannungen am Ausgang liefern (was dem µC nicht 
gut bekommt). Da bin ich mir aber nicht mehr sicher.

Auf alle Fälle läuft das Gerät seit einigen Jahren auf Partys und dann 
auch mal 10 Stunden am Stück. Rein optisch sieht es auch ganz gut aus. 
Kannst ja mal probehalber einen Kanal so aufbauen und schauen ob es in 
deine Schaltung passt. So hab ich damals auch am Anfang rumprobiert. 
Meine "Messungen" liefen auf einen Kopfhörer hinaus, den ich an die 
Ausgänge gehalten hatte um die Filterwirkung zu testen :-)

von Yoogi (Gast)


Lesenswert?

@stepp64

Danke, das werde ich mal ausprobieren. Die meisten Kondensatoren sind 
Keramikkondensatoren, sehe ich das richtig?

@nicht_eingeloggt

Kenne ich, nur leider finde ich nirgendwo eine Bezugsquelle für den 
verwendeten max293.

von stepp64 (Gast)


Angehängte Dateien:

Lesenswert?

Ja, sind alles Kerkos. Ich hänge mal noch die Stückliste mit drann.

Schönen Abend noch
Sven

von Karl H. (kbuchegg)


Lesenswert?

Yoogi schrieb:

> Kenne ich, nur leider finde ich nirgendwo eine Bezugsquelle für den
> verwendeten max293.

Nur der Vollständigkeit halber. Welcher MAX293?
Dort kommt gar keiner vor.

von Yoogi (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Nur der Vollständigkeit halber. Welcher MAX293?
> Dort kommt gar keiner vor.

Ja, hast recht. Immer wenn ich das von der Elm Chan's FFT höre, denke 
ich an seinen Originalaufbau. Und der war mit MAX293.
Aber jetzt hab ich gesehen, dass bei der 6-Kanal-Lichtorgel ne andere 
Schaltung benutzt wird...

Danke für den Hinweis

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.