Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Trasformare una scala logaritmica in una lineare

1,014 views
Skip to first unread message

Luca Carlon

unread,
May 20, 2010, 9:42:37 AM5/20/10
to
Ciao a tutti! Ci sto diventando un po' matto. Avrei bisogno di una
funzione che mi mappasse l'intervallo [0, 1] nell'intervallo [-10000,
0] in modo logaritmico. Sostanzialmente dovrei regolare un volume che
è espresso con una scala da -10000 a 0 logaritmica, usando però una
scala lineare da 0 a 1. Quindi diciamo che impostando 0.5, avrei
bisogno di quel valore che nella scala logaritmica mi dà il volume "a
metà". Qualcuno mi saprebbe un po' dare qualche idea? Grazie!

Luca

superpollo

unread,
May 20, 2010, 10:34:37 AM5/20/10
to
Luca Carlon ha scritto:

> Ciao a tutti! Ci sto diventando un po' matto. Avrei bisogno di una
> funzione che mi mappasse l'intervallo [0, 1] nell'intervallo [-10000,
> 0] in modo logaritmico. Sostanzialmente dovrei regolare un volume che
> � espresso con una scala da -10000 a 0 logaritmica, usando per� una

> scala lineare da 0 a 1. Quindi diciamo che impostando 0.5, avrei
> bisogno di quel valore che nella scala logaritmica mi d� il volume "a
> met�". Qualcuno mi saprebbe un po' dare qualche idea? Grazie!
>
> Luca

f(x) = ln(x+(1-x)/e^(10000))

bye

Stefano

unread,
May 20, 2010, 10:45:04 AM5/20/10
to

f(x):=ln( x*(1-e^-10000) + e^-10000 )

va bene?

Luca Carlon

unread,
May 20, 2010, 11:43:22 AM5/20/10
to

Facendo i conti con le proprietà delle potenze mi pare corretto in
effetti, però mi crea problemi suppongo l'e^-10000. Il risultato non
sta in nessun tipo di dato :-) C'è modo matematicamente per rigirare
la cosa in modo diverso, anche in modo approssimato, in modo che la
possa utilizzare al calcolatore?
Altra cosa... Ma come lo avete calcolato? :-)
Grazie!

Bruno Campanini

unread,
May 20, 2010, 12:29:40 PM5/20/10
to
"Luca Carlon" <carlo...@gmail.com> wrote in message
news:c9e1d462-009f-4908...@s41g2000vba.googlegroups.com...

> Ciao a tutti! Ci sto diventando un po' matto. Avrei bisogno di una
> funzione che mi mappasse l'intervallo [0, 1] nell'intervallo [-10000,
> 0] in modo logaritmico. Sostanzialmente dovrei regolare un volume che
> � espresso con una scala da -10000 a 0 logaritmica, usando per� una

> scala lineare da 0 a 1. Quindi diciamo che impostando 0.5, avrei
> bisogno di quel valore che nella scala logaritmica mi d� il volume "a
> met�". Qualcuno mi saprebbe un po' dare qualche idea? Grazie!

Se si tratta - come credo - del volume di un amplificatore o di
un attenuatore audio, la scala logaritmica � di norma basata su
logaritmi in base 10.
L'orecchio umano percepisce una potenza acustica doppia
quando la potenza effettiva dell'amplificatore viene
moltiplicata per 10.
La variazione di potenza viene espressa in decibel:
db = 10 Log[10, P1 / P2]

Pertanto:
10 000 Log[10, (9x+1)/10]

x = 0 -10000
x = 0.25 -4881.17
x= 0.5 -2596.37
x = 0.75 -1106.98
x = 1 0

Bruno

Stefano Busnelli

unread,
May 20, 2010, 2:51:48 PM5/20/10
to
Luca Carlon wrote:

> On 20 Mag, 16:45, Stefano <s.busne...@tin.it> wrote:
>> f(x):=ln( x*(1-e^-10000) + e^-10000 )
>>
>> va bene?
>

> Facendo i conti con le proprietᅵ delle potenze mi pare corretto in
> effetti, perᅵ mi crea problemi suppongo l'e^-10000. Il risultato non
> sta in nessun tipo di dato :-) C'ᅵ modo matematicamente per rigirare


> la cosa in modo diverso, anche in modo approssimato, in modo che la
> possa utilizzare al calcolatore?

Io ho testato la funzione con maxima e non si fa fregare da un e^-10000, ma
magari se usi logaritmi di base diversa riesci a farglielo digerire al pc.

> Altra cosa... Ma come lo avete calcolato? :-)

Che la funzione che cerchiamo sia un logaritmo mi sembra evidente, quindi ci
serviva una
f(x) = ln( qualcosa(x) )

Poi ho pensato a quando x=0 ed ho fatto:
f(x) = ln( x + e^-10000 ) perchᅵ mi serviva una roba che quando x=0 il
logaritmo naturale mi deve restituire -10000 e non -inf

Poi ho sistemato il valore per x=1
Quando x=1 quello che ho dentro ln ᅵ 1 + e^-10000
A me serve avere 1 all'interno del logaritmo, perchᅵ voglio che mi
restituisca 0 quindi, ho moltiplicato la x per (1 - e^-10000) in modo tale
che quando x=1 viene
1*(1 - e^-10000) + e^-10000 =
1 - e^-10000 + e^-10000 =
1

Riassumendo,
quando x=0 annulla la parte con *(1-e^-10000) e rimane
f(x)=ln(e^-10000)
quando x=1 i due e^-10000 di annullano e rimane f(x)=ln(1)

--
"Socratis" <socr...@alice.it> alle 22.25 del 24/09/2009 ha scritto su
it.scienza.matematica:
Ho la fondata certezza che 1/0*1/0 debba essere = +2 ( molt. come somma ).

Gab

unread,
May 21, 2010, 4:57:32 AM5/21/10
to

"Bruno Campanini" <B...@gmail.com> ha scritto nel messaggio
news:4bf56377$0$18650$4faf...@reader3.news.tin.it...

Ma non puoi sostituire un potenziometro logaritmico con uno lineare. Allora
cosa fai? utilizzi un commutatore a 10 posizioni (o pi�)? per poter seguire
i tuoi calcoli?
La cosa la capisco solo su basi teorico/sperimentali, non pratiche.


Stefano

unread,
May 21, 2010, 5:04:56 AM5/21/10
to
On 21 Mag, 10:57, "Gab" <lunar32NOS...@alice.it> wrote:
> Ma non puoi sostituire un potenziometro logaritmico con uno lineare. Allora
> cosa fai? utilizzi un commutatore a 10 posizioni (o più)? per poter seguire

> i tuoi calcoli?
> La cosa la capisco solo su basi teorico/sperimentali, non pratiche.

Non riesco a capire che dovete fare.
I potenziometri (le manopole del volume) che si usano negli
amplificatori sono logaritmiche.

Elio Fabri

unread,
May 22, 2010, 3:15:24 PM5/22/10
to
Bruno Campanini ha scritto:

> L'orecchio umano percepisce una potenza acustica doppia
> quando la potenza effettiva dell'amplificatore viene
> moltiplicata per 10.
Falso.
Ammesso che la legge logaritmica rappresenti adeguatamente i fatti
fisiologici, essa dice che la sensazione acustica subisce uguali
incrementi quando la potenza "effettiva" si moltiplica per uno stesso
fattore, che questo sia 10 oppure 3 o 27.

> La variazione di potenza viene espressa in decibel:
> db = 10 Log[10, P1 / P2]

Appunto...
(A parte il modo orrendo di scrivere: sarebbe come scrivere la legge
di Ohm cosi': volt = R*I.)

--
Elio Fabri

0 new messages