AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi aus Lautstärke in dB wahrgenommene Lautsärke berechnen
Thema durchsuchen
Ansicht
Themen-Optionen

aus Lautstärke in dB wahrgenommene Lautsärke berechnen

Ein Thema von iaby · begonnen am 5. Jul 2004 · letzter Beitrag vom 7. Jul 2004
Antwort Antwort
iaby

Registriert seit: 30. Nov 2002
Ort: BW
258 Beiträge
 
#1

aus Lautstärke in dB wahrgenommene Lautsärke berechnen

  Alt 5. Jul 2004, 23:23
hallo zusammen,

wie man sieht ist mir die formulierung des titel nicht leicht gefallen
hoffe mal es trifft meine frage:

ich habe eine lausträrke in dB die von -10000 bis 0 reicht. 0 ist maximal LS.
wenn ich nun aber die lautstärke linear setze, also 50% LS ist -5000 dann haut das
nicht hin
dB ist ja auch logarithmisch, gelle?

wie kann ich nun irgendwie die wahrgenommene LS berechen.
ich habs schon mit einer logarithmischen funktion probiert, allerdings war die
kurve (würde man sie darstellen), im bereich 50%-100% zu flach, das heißt es änderte
sich nicht viel an der LS!

hat jemand einen vorschlag, wie ich nun die LS setzen kann (in dB), sodass die
wahrgenommene linear steigt:
also praktisch so:
Delphi-Quellcode:
procedure SetVolume(volume: integer);
begin
volume:= Calculate_dB_from_Volume(volume);
//set new volume
end;
gruss,
iaby
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#2

Re: aus Lautstärke in dB wahrgenommene Lautsärke berechnen

  Alt 6. Jul 2004, 00:24
Auch wenn mir nicht ganz klar ist, was du mit wahrgenommener Lautstärke meinst (die ist nämlich von Frequenz und Distanz von der Schallquelle abhängig und wird in Sone gemessen, das ist nicht so einfach), aber wenn du deinen Prozentwert aus einem dB-Wert berechnen willst, kann ich dir als (Wannabee-)Tontechniker sagen, dass sich letzterer (wenn er Signalpegel und nicht Schallleistung bezeichnet) so berechnet:

[U: Signalpegel (in dB); P: gemessener Pegel; N: Nominalpegel]
U = 20 dB * log(P / N)
Der Nominalpegel wäre hier 100, also
U = 20 dB * log(P / 100)
U / (20 dB) = log(P / 100)
10^(U / (20 dB)) = P / 100
100 * 10^(U / (20 dB)) = P.
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#3

Re: aus Lautstärke in dB wahrgenommene Lautsärke berechnen

  Alt 6. Jul 2004, 02:25
Also, wenn man nach der DirectX SDK geht steht -10000 für -100 dB (-5000 also für -50 dB), wie genau das in Zusammenhang mit der wargenommenen Lautsärke setzt, weis ich leider auch nicht.

Nur mal so als Einwurf, vielleicht kann ja der
Zitat:
(Wannabee-)Tontechniker
damit was anfangen
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#4

Re: aus Lautstärke in dB wahrgenommene Lautsärke berechnen

  Alt 6. Jul 2004, 11:46
Gut, in diesem Fall wird U eben in Millibel gemessen.

Delphi-Quellcode:
uses
  Math;

// ...

function calculate_mB_from_volume(volume: Extended): Integer;
begin
  Result := Round(2000 * Log10(volume / 100));
end;

function calculate_volume_from_mB(mB: Integer): Extended;
begin
  Result := 100 * Power(10, mB / 2000);
end;
Pass mit der Lautstärke 0% auf, denn log(0) ist bekanntlich undefiniert.
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
iaby

Registriert seit: 30. Nov 2002
Ort: BW
258 Beiträge
 
#5

Re: aus Lautstärke in dB wahrgenommene Lautsärke berechnen

  Alt 7. Jul 2004, 19:10
hmmm, hab mich da wohl doch geirrt.
denn auch deine funktion lieferte keine lineare lautsärke.

habe aber rausgefunden, dass es ab etwa -4000 bis 0 linear verläuft.
also einfach für lautstärke 0 auf -10000 gesetzt, den rest (5-100) nach
einer linearen funktion berechnet.
jetzt bin ich mit dem ergebnis zufrieden!

danke euch!

gruss,
iaby
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz