WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

A-Bewertungsfilter

 

Atmos_kk
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 93
Anmeldedatum: 23.05.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2011, 09:18     Titel: A-Bewertungsfilter
  Antworten mit Zitat      
Moin zusammen,

ich verzweifle langsam.
Ich habe eine Akkustikmessung in dB und muss das nun mit dem richtigen Filter in dB(A) umrechnen. Direkt soll das nicht möglichsein, kann ich auch so hinnehmen aber irgendwie muss man es ja hinbekommen.
Ich denke mal, dass es mithilfe der Frequenzen irgendwie funktioniert allerdings finde ich den richtigen Filter dafür nicht.
Hat jemand ein Schlagwort für mich oder eine kleine Anleitung?

Greetz
Private Nachricht senden Benutzer-Profile anzeigen


Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 20.07.2011, 09:55     Titel:
  Antworten mit Zitat      
Google-Suche: dba bewertungsfilter

http://www.sengpielaudio.com/BerechnungDerBewertungsfilter.pdf
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Atmos_kk
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 93
Anmeldedatum: 23.05.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2011, 10:21     Titel:
  Antworten mit Zitat      
Alles klar das hab ich auch schon mal gelesen. Aber wie benutze ich das jetz? Muss ich einfach die Gleichung mit in meine Berechnung einfügen und einfach alle Frequenzen da durchjagen und anschließend mit meinen dB muliplizieren?
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 20.07.2011, 10:37     Titel:
  Antworten mit Zitat      
Habe das noch nie gemacht, aber ich denke, dass man so vorgehen muss.

Du hast neben den dB Werten deiner Messung auch einen Frequenzvektor

Code:

 f = 0:df:10000 % z.B. bis 10 kHz, df = fa/N

% Gewichtsfunktion in Abhänigkeit der Frequenz
Ra = (12200^2 *f(:)^4) / (....)

% Amplitudenwerte dB mit Gewichtsfunktion -> dB(A)
ampl_dba = ampl_db * Ra
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Atmos_kk
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 93
Anmeldedatum: 23.05.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2011, 10:47     Titel:
  Antworten mit Zitat      
Ja so sah auch meine Vermutung aus!
Werde dann mal loslegen und wenn es hinhaut werde ich das mal posten. Vielleicht gibts ja noch mehr Anfänger wie mich die sich darüber stundenlang den Kopf zerbrechen.

Danke an alle!
Private Nachricht senden Benutzer-Profile anzeigen
 
Atmos_kk
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 93
Anmeldedatum: 23.05.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2011, 07:38     Titel:
  Antworten mit Zitat      
Moin zusammen,

ich hab da nochmal eine kleine Frage. Gehört eher zur Signalverarbeitung aber da wir hier eh schon über A-Bewertung sprechen mach ich das mal hier.

Wann bzw. wo führe ich die Filterung überhaupt durch? Sagen wir mal ich hab den Schalldruck über die Zeit gegeben dann ermittle ich daraus erstmal meinen Schalldruckpegel über die Zeit! Da ich für die a-Bewertung die Frequenzen benötige mach ich eine FFT und errechne mir meine Faktoren. Benutze ich diese nun in der FFT und führe eine ifft durch um auf dB(A) zu bekommen oder gehe ich direkt zurück zu meinem Schalldruckpegel und wende die Faktoren darauf an?

Wenn ich nichts falsch gemacht habe kommt in beiden Fällen leider nicht das Selbe heraus!

Greetz
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 21.07.2011, 08:54     Titel:
  Antworten mit Zitat      
Die Bewertungsfunktion ist über der Frequenz gegeben und muss deshalb auch im Frequenzraum angewendet werden. Wie sollte man das auch im Ortsraum machen...

Oder verstehe ich dich falsch?
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Atmos_kk
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 93
Anmeldedatum: 23.05.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2011, 09:06     Titel:
  Antworten mit Zitat      
Da bin ich mir auch nicht ganz sicher wie wir uns verstehen Wink
Wahrscheinlich hab ich mich doff ausgedrückt!

Also hier mal eine kurze Einteilung meines Ablaufes:

1. Einlesen der Daten
2. Aufteilen der Daten in Zeit- und Beschleunigungsvektoren
3. FFT der Beschleunigungen ( die benötige ich ja für die Formel der A-Bewertung)
4. Berechnen des Vektors Ra ( Formel für A-Bewertung )

und nun mein Problem:

Jetzt kann ich ja ohne Probleme diesen Faktor Ra
1. Anwenden im Zeitbereich auf die Beschleunigungen
2. Anwenden im Frequenzbereich auf meine Ausschläge ( oder was die y-Achse auch immer anzeigt) und anschließen müsste man da noch eine ifft machen um in den Zeitbereich zu gelangen ( Beschleunigung über Zeit!)

Nur die Ergebnisse sind nicht identisch also hab ich daraus gefolgert, dass eins von beiden falsch sein muss! Aber was und warum bekomme ich nicht raus!

Greetz
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 21.07.2011, 09:15     Titel:
  Antworten mit Zitat      
Benötigst du denn wieder ein Zeitsignal?

Die Filterung durch Multiplikation mit der Gewichtsfunktion findet auf jeden Fall im Frequenzbereich statt. Das Ergebnis wird dann mittels ifft wieder in den Zeitbereich transformiert.

Code:

H = fft(Zeitsignal);
Zeitsignal_dBa = ifft(H*Ra);
 


Um die Filterung im Zeitbereich durchzuführen, musst du die Gewichtsfunktion erst in den Zeitbereich transformieren und dann eine Faltung von Signal und Filter durchführen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Atmos_kk
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 93
Anmeldedatum: 23.05.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2011, 09:28     Titel:
  Antworten mit Zitat      
Das hört sich auf jeden Fall plausibel an. Allerdings habe ich dann direkt das nächste Problem:

Bei der A-Bewertung im Frequenzbereich fallen meine niedrigen Frequenzen vollkommen weg, was wenn man sich die Kurven ansieht völlig klar scheint. Also was soll man dann machen. Die ifft muss dann in dem Fall doch falsche Ergebnisse liefern, oder hab ich da mal wieder einen Denkfahler?
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 21.07.2011, 09:29     Titel:
  Antworten mit Zitat      
Allerdings fällt mir jetzt noch ein, dass man so eigentlich den Faltungsatz verletzt. Das Faltungstheorem von Signal(n) und Ra(m), wobei in diesem Fall m=n ist, ergibt ein Ergebnisvektor der Länge n+m-1. So wäre es unter Benutzung der Matlabfunktion conv().

Im Frequenzbereich muss man dann eigentlich folgendes machen:

Code:

N = Länge des Zeisignals
H = fft(Zeitsignal,2*N-1); % hängt N-1 Nullen vor der Transformation an
Ra = [Ra; zeros(N-1,1)]; % ebenfalls mit N-1 Nullen erweitern
Zeitsignal_dBa = ifft(H*Ra); % Zeitsignal hat dann 2*N-1 Werte
 


Jetzt sollten conv() und FFT Faltung identisch sein. Für conv() benötige ich aber die Gewichtsfunktion Ra im Zeitbereich, also ifft(Ra).
Private Nachricht senden Benutzer-Profile anzeigen
 
Atmos_kk
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 93
Anmeldedatum: 23.05.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2011, 09:33     Titel:
  Antworten mit Zitat      
Also das übersteigt meine Kenntnisse der Signalverarbeitung sowie die mit Matlab.

Ist es also garnicht möglich den A-Bewertungsfilter einfach so zu benutzen?
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 21.07.2011, 09:41     Titel:
  Antworten mit Zitat      
Das die niedrigen Frequenzen wegfallen, ist für mich eigentlich logisch. Im niederfrequenten Bereich hört man nichts...erst ab ca. 20 Hz...15-20kHz.

Nochmal zur Faltung...anderseits bin ich mir jetzt doch unschlüssig wegen der Erweiterung von Ra mit Nullen im Frequenzbereich. Normalerweise führt man die Faltung per FFT durch, da sie bei langen Signalen schneller ist als die Faltung im Zeitbereich. Da erweitert man aber die Impulsantwort des Filters (liegt im Zeitbereich vor) erst mit Nullen und transformiert dann in den Freq.-bereich. Da du das Filter ja aber schon im Frequenzbereich hast, könnte das erweitern mit Nullen auch falsch sein. Dann darf man das Zeisignal aber auch nicht erweitern, da H und Ra für die Multip. gleich lang sein müssen. Probier einfach mal beide Varianten.

Edit: Um deine Frage letzte Frage zu beantworten...doch! Einfach im im Frequenzbereich multiplizieren.

Zuletzt bearbeitet von DSP am 21.07.2011, 09:49, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 21.07.2011, 09:46     Titel:
  Antworten mit Zitat      
Sorry...habe noch einen Punkt vergessen.

Code:

Zeitsignal_dBa = ifft(H .* Ra); % elementweise multiplizieren
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Atmos_kk
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 93
Anmeldedatum: 23.05.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2011, 09:47     Titel:
  Antworten mit Zitat      
Ich sag mal so, meine Frequenzen fallen bis ungefähr 500 Hz nahezu vollständig weg und es bleibt nichts mehr übrig. Wie soll ich denn dann wieder zurück in den Zeitbereich kommen ohne Fehler zu erhalten? Das verstehe ich nicht ganz.
Oder muss ich vor der Filterung mein Signal halbieren ( hab ja eh die Spiegelung ) und dann den Filter drüber jagen?
Naja, probieren geht über studieren würde ich sagen aber das ganze ist irgendwie ein Rätsel für mich!

Greetz
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2, 3, 4  Weiter

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.