Jump to content

Decibel-LED mit SoundIntensity vs SoundPressure


Recommended Posts

Hallo,

 

vorweg - ich habe nur wenig Ahnung von Tontechnik.

ich habe SoundIntensity und SoundPressure Bricklets im Einsatz, um LEDs nach Dezibel aufleuchten zu lassen.

 

* Beim SoundIntensity Bricklet schaut es genial aus. LED flackert sehr fein. Die Dezibel Anzeige tanzt auch schön auf und ab

* Beim SoundPressure Bricklet schaut es nicht so schön aus. Die Dezibel bleiben auf einem Level und die LEDs flackern/tanzen nicht so schön.

 

Kann jemand helfen wie ich die LEDs auch beim SoundPressure tanzen lassen kann? Ich weis das ich spectrumChunkData, spectrumChunkOffset und spectrumLength bekomme. weis aber nicht wie ich das verwerten kann - habe nichts in Wikipedia darüber gefunden :(...

Link zu diesem Kommentar
Share on other sites

Hast du beim Sound Pressure Level Bricklet mal die verschiedenen Gewichtungen durchprobiert?

 

Du solltest getSpectrum() Aufrufen, nicht getSpectrumLowLevel(). Das Spektrum ist zu groß um ein einem Packet übertragen zu werden. Die getSpectrumLowLevel() gibt das Spektrum in Stücken (Chunks) aus. Die getSpectrum() nutzt intern die getSpectrumLowLevel() Funktion und setzt das vollständige Spektrum aus Chunks zusammen.

 

Wie die Dokumentation für die getSpectrum() Funktion beschreibt gibt dieses das Frequenzspektrum in form eines FFT aus. Daraus kannst du dir verschiedenste Darstellung ableiten.

Link zu diesem Kommentar
Share on other sites

Hi Photron,

 

ich habe nun viel versucht zu lesen und zu verstehen. Ich verstehe dennoch nicht wie ich die LEDs wieder flackern lassen kann wie beim Sound Intensity Bricklet. Sobald ich die Werte von getSpectrum() in dB umrechne flackern die LEDs nicht mehr. Klar kann ich einfach ohne dB Umrechnung die LEDs super flackern lassen, aber dann verstehe ich diese random FFT zahlen nicht.

 

Für das BrickletSoundPressureLevel:

Welche config (fftSize : weighting) benötige ich?

Welchen Wert von BrickletSoundPressureLevel.getSpectrum() benötige ich, um den Wert von BrickletSoundIntensity.getIntensity() nachzustellen?

Link zu diesem Kommentar
Share on other sites

Das Sound Intensity Bricklet und das Sound Pressure Level Bricklet sind da nicht so einfach zu vergleichen. Das alte Bricklet hat die Bestimmung der Intensity analog in Hardware gemacht. Das neue Bricklet macht die SPL Bestimmung digital in Software.

 

Mit den verschiedenen Weighting wird versucht das menschliche Hörvermögen nachzubilden. Außer db(Z), dabei wird keine Gewichtung vorgenommen und die Daten vom Mikrofon unverändert verwendet.

 

Ich habe gerade kein Sound Pressure Level Bricklet zur Hand, da die gerade ausverkauft sind. Daher mal ins Blaue: db(A) mit 256er FFT und dann über die Spektrumwerte einen Mittelwert bilden, dabei den ersten Wert im Spektrum ignorieren, da dies das DC Offset ist.

 

Alternativ, schau dir das Spektrum in Brick Viewer an und nimmt dann den Teil des Spektrums der sich am meisten bewegt. Den fasst du dann über Maximum oder Mittelwert zusammen.

 

Ich denke du musst da einfach mal verschiedenes ausprobieren.

Link zu diesem Kommentar
Share on other sites

  • 4 weeks later...

Hi, ich habe nun verschiedene Varianten probiert. Leider klappt es nicht wirklich. Es geht nur wenn absolut stille in der Umgebung herrscht. Für mich hat es den Anschein, als würde das Sound Pressure nicht ganz mitbekommen welcher Ton wie weit weg ist. Ich kann die LEDs nach Musik tanzen lassen, jedoch wenn draußen auf der Straße Leute sprechen oder eine Auto vorbei kommt, dann bekommt es das SoundPressure Bricklet mit und überlagert die sehr viel Lautere Musik. Auch bei geschlossenen Fenster. Vor allem Menschliche Sprache überlagert alles. Ich habe drei verschiedene Boxen ausprobiert. leider immer das selbe Ergebnis. Egal welche Frequenz, die nicht Lautsprechertöne überragen alles.

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...