bking
1
Hi,
I’m trying to return the difference between to signal.
The difference is L1
I tried this but the problem is with pow
Thanks for helping
float splitTimeLfo, oldSplitTimeLfo;
void setup() {
int i = 12;
println(log(i));
println(log10(i));
// float differenceSignal= splitTimeLfo + log10( 1 - 10 * pow (-(splitTimeLfo-oldSplitTimeLfo)/10));
print ( differenceSignal);
}
// Calculates the base-10 logarithm of a number
float log10 (float x) {
return (log(x) / log(10));
}
mnse
2
Hi @bking,
What is the problem with pow ?
Just use 1-pow(10,…)
https://processing.org/reference/pow_.html
Cheers
— mnse
bking
3
I tried this but not good
float splitTimeLfo = 5;
float oldSplitTimeLfo = 15;
void setup() {
int i = 12;
println(log(i));
println(log10(i));
// float differenceSignal= splitTimeLfo + log10( 1 - 10 * pow (-(splitTimeLfo-oldSplitTimeLfo)/10));
float differenceSignal= splitTimeLfo + log10( 1 - 10 -1-pow(10,-(splitTimeLfo-oldSplitTimeLfo)/10));
print ( differenceSignal);
}
// Calculates the base-10 logarithm of a number
float log10 (float x) {
return (log(x) / log(10));
}
mnse
4
Try to use floating point notation for your numbers.
Means not 10, but 10.0 etc …
Cheers
— mnse
bking
5
i have infinity as result
float splitTimeLfo = 5;
float oldSplitTimeLfo = 15;
void setup() {
int i = 12;
println(log(i));
println(log10(i));
// float differenceSignal= splitTimeLfo + log10( 1 - 10 * pow (-(splitTimeLfo-oldSplitTimeLfo)/10));
float differenceSignal= splitTimeLfo + log10( 1.0 - 10.0 -pow(1-10.0,-(splitTimeLfo-oldSplitTimeLfo)/10.0));
print ( differenceSignal);
}
// Calculates the base-10 logarithm of a number
float log10 (float x) {
return (log(x) / log(10));
}
bking
6
I think it is ok now !
float splitTimeLfo = 5;
float oldSplitTimeLfo = 15;
void setup() {
int i = 12;
println(log(i));
println(log10(i));
// float differenceSignal= splitTimeLfo + log10( 1 - 10 * pow (-(splitTimeLfo-oldSplitTimeLfo)/10));
float differenceSignal= splitTimeLfo + log10( 1.0 - 10.0 *pow(1-10.0,-(splitTimeLfo-oldSplitTimeLfo)/10.0));
print ( differenceSignal);
}
// Calculates the base-10 logarithm of a number
float log10 (float x) {
return (log(x) / log(10));
}
Thank u very much!
bking
7
it works but not always.
Maybe the difference between two signals have to respect a rule?
float splitTimeLfo = 6;
float oldSplitTimeLfo = 5;
void setup() {
int i = 12;
// println(log(i));
// println(log10(i));
// float differenceSignal= splitTimeLfo + log10( 1 - 10 * pow (-(splitTimeLfo-oldSplitTimeLfo)/10));
float differenceSignal= splitTimeLfo + log10( 1.0 - 10.0 *pow(1-10.0,-(splitTimeLfo-oldSplitTimeLfo)/10.0));
print (" differenceSignal " + differenceSignal);
}
// Calculates the base-10 logarithm of a number
float log10 (float x) {
return (log(x) / log(10));
}
quark
8
The problem is that the log_{10} of a number \le0 is undefined. This means that the following must be true for a meaningful result
1 - 10^\left({-(L-L_2)\over10}\right) > 0
Rearrange the formula and we get
10^\left({-(L-L_2)\over10}\right) < 1
Now take the log_{10} of both sides are we get
\left({-(L-L_2)\over10}\right) < 0
multilply both sides by 10 and simplify the LHS we get
-L + L_2 < 0
Again after rearrangement
L > L_2
So (L > L_2) must be true for a meaningful result.
1 Like