Wednesday, December 23, 2009

Specialized Shiv Concept Tandem

Specialized just revealed a super-cool prototype (it's been called a concept bike, but this seems very functional, nothing concept about it): a tandem version of the Shiv.

Wow! Photos stolen from BikeRadar:


Interesting phasing on those cranks. One of the cool aspects of this bike is the shaft drive:


Super-aero, clearly. But at what cost?

Any drivetrain has losses. Losses are generally considered to be proportional to transmitted power, although it's been experimentally shown that for a bicycle transmission efficiency is higher at higher chain tension than at lower chain tension. This is fairly trivial: aspects of drivetrain loss are not necessarily proportional to transmitted power, but rather proportional to chain motion. In any case, a fixed gear drivetrain, such as on the timing chain on a tandem, is quite efficent. For example, 98-99% is typically claimed.

An alternate for the timing chain on a tandem is the Gates belt drive. This also claims to be as efficient. Here's a friend's super-sweet custom Calfee with a belt:


So what about shaft drives? I looked up some references on shaft drive efficiency. Granted, historical numbers may not reflect the state of the art system used by Specialized! And of course efficiency may depend on drivetrain load with a shaft, as it does with a chain.

Here's the efficiency coefficients:So is it worth the increased power loss, assuming these numbers are valid? Suppose you lose 3% of captain power to drivetrain loss. The CdA of the captain may be comparable to that of a single bike: let's say 0.25 meters2. That's super-aero. If 90% of power is from wind resistance, then to offset a 3% loss in drivetrain efficiency from the captain, CdA needs to be decreased by 3% / 90% = 3.3%. This requires a reduction in CdA of 82.5 cm2. If Cd = 0.8 for drivetrain components, this requires a reduction in cross sectional area of 103 cm2. a 54 tooth chainring has a diameter of 27 inches / π = 21.8 cm. The width of a chain is around 8 mm This makes for an effective cross-sectional area of 17.5 cm2.

So it seems it's not even close. But of course my numbers are pulled out of the blue: I'm not counting the wind resistance from the length dimension of the chain, for example, and the timing chain is quite long. So maybe it's a wash.

Additionally, there's the weight factor. Shaft drives are supposedly heavier. But then again I don't know Specialized's design...

I'd love to see some real numbers. If the drivetrain efficiency loss could be kept to 1% or less, things become a lot more interesting.

Tuesday, December 22, 2009

Filters 2.0: frequency response

Now I'll go through the frequency response of my "new favorite" filters. These are all trigonometric functions, so no need for integration by parts, as long as I use a few trigonometric identities. I was even able to skip most of the expanding trigometric functions in terms of their complex exponential equivalents. I'll spare the details and cut to the chase.

Here's the filters again:


In each case assume an input function:

f(t) = f0 sin ωt,

and where the output function is f*(t). In each case I'll explicitly include the time shift to make the filter causal, so I'll represent the output function delayed as f*(t + τ). This is the reason I've changed my definition of τ here: it now represents the half-width of the filter function; a more direct representation of the delay.

cos2(π/2 Δt/τ):

I analyzed this before, but with a slightly different form. The result:
f*(t + τ) = 2π f0 sin(ωt) sin(ωτ) / [ωτ (1 ‒ ω²τ²/π²)].

‒3π/2 cos(π/2 Δt/τ) sin(π Δt/τ):

Skipping a bunch of steps in which it's highly likely I made at least one mistake....

f*(t + τ) = f0 cos ωt (6 ωt / [(1 ‒ 4 ω²τ² / π²)(9 ‒ 4 ω²τ² / π²)]) cos ωτ.

And finally...

2π/3√3 cos(π/2 Δt/τ) cos(3π/2 Δt/τ):

Okay... hoping against hope I did proper bookkeeping here:
f*(t + τ) = f0 sin ωt ((4/√3) ωτ / [(1 ‒ ω²τ² / π²)(4 ‒ ω²τ² / π²)]) sin ωτ.

Let's plot these puppies. I may have a bug in the magnitude, but the shape of the curves should be correct:


So the filters do basically what I wanted. All three attenuate high frequencies proportional to the cube of the frequency. At low frequencies is where the differ. The cosine square filter passes low frequencies. The cosine times sine filter lightly attenuates low frequencies. The cosine-cosine filter strongly cuts off low frequencies: a bit too much, honestly, for most of my applications.

One thing which is curious in that plot is why the red curve is shifted to higher frequencies. Well, it's obvious from the convolution shape that a frequency relatively aligned with the convolution function is going to have the maximal transmission amplitude. This frequency is clearly highest in the cos-cos filter. So if the focus is for a given delay (τ) to get the best suppression of high frequencies, the cos-sin filter is the better choice.

Anyway, enough of that. Hopefully that's all I need to say on filters. Unless I think of something else.

Monday, December 21, 2009

filters 2.0

I've gone on quite long enough about filters. But I think I'm finally getting it right. So it's my blog, after all, and the whole point is I can write about what I want. So I'm going to stick with filters a bit longer... I'm trying to figure this stuff out for myself.

As I noted last time, after thinking about it, I realized I could do all the filtering I needed with strictly trigonometric functions, and trigonometric functions have attractive mathematical features (particularly, their exceptional smoothness, and their tendency to average to zero). It's just a matter of selecting the function. The goal is to smooth the data (reduce high frequency components) while optionally also reducing low frequency components.

The criteria are:
  1. The area of the absolute value of the function should be one.
  2. The function needs to transition to zero smoothly, which is to say with a continuous slope, at the edges. This helps to reduce high frequency components.
  3. If the function is to attenuate low frequency components, its average value should be zero, else the function should be strictly positive.
  4. The function, after being made causal, should have a centroid at time -τ. This is to keep a constraint of constant delay compared with exponential smoothing.
  5. If the function is antisymmetric, it should have a positive slope at its center with respect to real time, negative with respect to a Δt which goes into the past. This is a bit arbitrary, but tends to make the function respond positively to positive transitions in the data.


Let me clarify the last point: the process is to define a function which is zero for some t > t0. Then to shift it by ‒t0 such that for all positive (future) times the function is zero. This allows for a causal filter. We want the represent "recent" values of the data so that it responds to changes in the data in "real time" - this is why we want a causal filter. So we want the mean time of the contribution to the result to be τ. The exponential function which fulfills this requirement is exp(-Δt/τ).

So here's the functions I'll pick. In each case the function is non-zero from -τ to τ. Then it can be shifted by -τ to make it causal. This constraint is a bit different than what I've used to this point, the difference by scaling the Δt axis and then scaling the f-axis to keep the area the same.


The first one is one I considered before, with different scaled by π/2, except here I won't do any goofy differentiation. The second is very similar to the "Δt/τ cos² Δt/τ" filter I used before, but this time using only trigonometric functions, no multiplying by Δt/τ. The third is new. It's designed to be particularly good at filtering low frequencies, since it will convert not just a constant value but also a straight line to zero after convolution due to its symmetry.

I'll look at the frequency responses next time.

Sunday, December 20, 2009

Filters 1.0: frequency response

Okay, so why all this interest in the rather boring subject of convolution functions for filtering? Well, a few things.

The most recent reason is having fun playing with MetriGear Vector data. Sure, I could have fun playing with PowerTap data (and I actually have a Powertap, while I don't have a Metrigear Vector). But Saris is all hush-hush with its numbers, while MetriGear is much more open: they've for example published data on their excellent blog, and when the pedals go to market, they promise to provide a much higher rate of data reporting than one gets from existing meters, typically one sample per second (or the Powertap famous sample per 1.26 seconds). Additionally the Vector will provide a lot more information.

Of particular interest to me at the moment is how to process accelerometer data. Accelerometer data tends to be noisy, both from errors in measuring the actual acceleration, and in accelerations other than those of the pedals turning in circles. So to get around this you want to filter the signals.

I filter data all the time, sometimes for work, but also for looking at data from my PowerTap. For example, normalized power and related training stress algorithms use data smoothing, which is a form of low-pass filtering. The normalized power algorithm uses a "square" filter which I don't like much, while the related "X-Power" (and algorithms I've developed myself) use exponential filtering which I substantially prefer. At other times I use Gaussian filters, which are non-causal. But I've recently started playing with the trigonometric functions I've described here.

The most informative plot of a filter is probably the frequency response. When I convolve a smoothing function with data, the spectral distribution of the result is the product of the spectral distribution of the convolution function and the spectral distribution of the data. So the spectral distribution, the Fourier Transform, of the convolution function is the "frequency response" of the filter. In discrete transforms, where the "x-axis" is a number instead of a real quantity like time or distance, a "z-transform" is also used, but I'll stick with the "real" domain of Fourier transforms.

I've been playing around with some filters so far, describing how they deal with input signals which are a perfect sine or cosine function. This is in essence the frequency response. So how do they compare?

Here's a plot of the filters I've described so far, each designed to be a band-pass filter, removing both low and high frequencies:



It can be clearly seen the last filter I described, the one not involving differentiation, is the best at removing high frequencies. Very pleasing. But not so pleasing is the analytic form of this filter. I like trigonometric and exponential functions. They're analytically attractive. They're easy to integrate. They are relatively easy to manipulate. With that "Δt/τ cos²Δt/τ" filter there was some ugly integration by parts I punted on, but even then had to simplify the indefinite integral from Wolfram. But it was pretty good.

Next time I'll look at a few more filters involving only exponential functions, and get dispense with that differentiation step completely.

Wednesday, December 16, 2009

A one-step band-pass

So far, I've been doing band pass filtering by a low pass followed by differentiation. This involves first a convolution to realize the smoothing, then a difference function for the differentiation. But now that I think about it, it's better to avoid the difference function and accomplish the full band pass filtering with a single convolution.

Okay, you can stop laughing now. I know this is all super-basic-DSP-stuff. I'm afraid I never actually took a class in DSP. So laugh if you want. I can take it.

Anyway, the low-pass filter used last time was the following:

f*(t) = (2 / πτ) ∫ d Δt · cos²(Δt / τ) f(t ‒ Δt),

where here the limits of integration are again from ‒π/2 τ to +π/2 τ.

This can be turned into a band pass filter by simply multiplying the convolution function by Δt / τ:

f*(t) = (K / τ) ∫ d Δt · (‒Δt / τ) cos²(Δt / τ) f(t ‒ Δt).

A plot, after applying the delay by π/2 τ:



I suppose we should calculate K. The integral of the absolute value of the convolution function should be one. This is the first time I've use "absolute value of the integral" rather than just integral. It was a non-issue before since the convolution function was strictly non-negative. So I need to calculate twice the integral from 0 to π/2 of θ cos²(θ) dθ. This calls out for integration by parts, but honestly, I'm getting tired of integrating, so will seek professional assistance. The result is (π² / 4 - 1) / 2. The magic of the internet.... I could have done it myself. Honest. K is the reciprical of this: 8 / (π² - 4).

So then:

f*(t) = (8 / (π² - 4) τ) ∫ d Δt · (‒Δt / τ) cos²(Δt / τ) f(t ‒ Δt),

Again, the model for the function:

f(t) = f0 cos ωt,

I'll skip complex representations and the subsequent, again, integration by parts, which is guaranteed to yield an algebra error, and instead rely on my friend Stephen. Stephen doesn't do definite integrals for free, unfortunately, so I need to handle the limits myself. First, I'll simplify the input:

cos ω(t - Δt) = cos(ωt) cos(ω Δt) + sin(ωt) sin(ω Δt).

Then I recognize that by symmetry the first part yields zero in the integral. For the purposes of the code, I use a change in variables: w ≡ ωτ, x ≡ Δt / τ. Here's the result:



The integal is evaluated at the end points ‒π/2 to +π/2 for x:

1/2 [‒2 sin((π/2)ωτ) / ω²τ² + 2 (π/2) cos((π/2)ωτ) / ωτ ‒ sin((π/2)(ωτ ‒ 2)) / (ωτ ‒ 2)² ‒ sin((π/2)(ωτ + 2)) / (ωτ + 2)² + (π/2) cos((π/2)(ωτ ‒ 2)) / (ωτ ‒ 2) + (π/2) cos((π/2)(ωτ + 2))/ (ωτ + 2)].

This can be further simplified:

sin((π/2)(ωτ ± 2)) = ‒sin((π/2) ωτ),
cos((π/2)(ωτ ± 2)) = ‒cos((π/2) ωτ),

yielding:

1/2 [‒2 sin((π/2)ωτ) / ω²τ² + 2 (π/2) cos((π/2)ωτ) / ωτ + sin((π/2) ωτ) / (ωτ ‒ 2)² + sin((π/2)ωτ) / (ωτ + 2)² ‒ (π/2) cos((π/2)ωτ)/ (ωτ ‒ 2) ‒ (π/2) cos((π/2)ωτ) / (ωτ + 2)].

Then we can use

1/(ωτ ‒ 2)² + 1/(ωτ + 2)² = [(ωτ ‒ 2)² + (ωτ + 2)²] / (ω²τ² ‒ 4)² = 2 (ω²τ² + 4) / (ω²τ² ‒ 4)²

and

1/(ωτ ‒ 2) + 1/(ωτ + 2) = [(ωτ ‒ 2) + (ωτ + 2)] / (ω²τ² ‒ 4) = 2 ωτ / (ω²τ² ‒ 4)

Then the integral becomes:

sin((π/2)ωτ) [‒1 / ω²τ² + (ω²τ² + 4) / (ω²τ² ‒ 4)²] +
(π/2) cos((π/2)ωτ) [1 / ωτ ‒ ωτ / (ω²τ² ‒ 4)] =

sin((π/2)ωτ) [‒(ω²τ² ‒ 4)² + ω²τ² ω²τ² + 4)] / [ω²τ²(ω²τ² ‒ 4)²] +
(π/2) cos((π/2)ωτ) [(ω²τ² ‒ 4) ‒ ω²τ²] / [ωτ (ω²τ² ‒ 4)] =

sin((π/2)ωτ) (‒ω⁴τ⁴ + 8 ω²τ² ‒ 16 + ω⁴τ⁴ + 4 ω²τ²) / [ω²τ² (ω²τ² ‒ 4)²] ‒
2π cos((π/2)ωτ) ) / [ωτ (ω²τ² ‒ 4)] =

4 sin((π/2)ωτ) (3 ω²τ² ‒ 4) / [ω²τ² (ω²τ² ‒ 4)²] ‒
2 π cos((π/2)ωτ) ) / [ωτ(ω²τ² ‒ 4)] .

So then, putting this into the full expression:

f*(t) = (8 / (π² - 4)) [4 sin((π/2)ωτ) (3 ω²τ² ‒ 4) / [ω²τ² (ω²τ² ‒ 4)²] ‒ 2 π cos((π/2)ωτ) / [ωτ(ω²τ² ‒ 4)]] sin(ωt).

I admit I had to stare long and hard at this to convince myself it goes to zero as ωτ→0. But a Taylor series expansion of the tricky part, sin((π/2) ωτ) / ω²τ² + (π/2) cos((π/2) ωτ) / ωτ, is indeed proportional to ωτ for small values of ωτ, despite the apparent poles at zero due to the denominators.

So what about at high ωτ? The sine part is proportional to 1/(ωτ)⁴. The cosine part is proportional to 1/(ωτ)³. Therefore at high ωτ the cosine part will dominate, and the function will fall off proportional to (ωτ)³.

Wow -- that was a lot of work considering I "cheated" by using Mathematica for the integral. Maybe I would have been better off biting the bullet and doing the integral directly. Maybe, but I doubt it. But the end result is exciting: this filter is even more effective at suppressing high-frequency "noise" than the cosine squared filter was when that was combined with differentiation. That only fell off proportional to (ωτ)². And the icing is that no differentiation step is required.

I like this filter.

Band Pass Filtering: SCORE SQUARED!

In the last post, I showed how a truncated cosine wave did a better job than an exponential function at smoothing data. The goal was to produce a band pass filter, which filtered fluctations occuring at both high and low frequencies, leaving only those in a desired band. Differentiation was used for the high-pass part. But the differentiation canceled out the low-pass effect of the exponential smoothing. The truncated cosine smoothing was strong enough to retain its low-pass character even after the differentiation step.

Here I consider another form of smoothing: a cosine squared. The exponential weighting function jumps discontinuously to zero. The truncated cosine has a continuous value to zero but a discontinuous slope when it is clamped at zero. The cosine squared, on the other hand, has a continuous slope as well when it is held at zero.

The three filter shapes are shown in the following plot. They are shown with the time shift I mentioned last time so to be causal. Only past-time data are used.


So the exponential and cosine filters have already been analyzed here. Time to look at the cosine squared filter. Similarly to what we did with the cosine filter:

f*(t) = (2 / πτ) ∫ d Δt · cos²(Δt / τ) f(t ‒ Δt),

where here the limits of integration are again from ‒π/2 τ to +π/2 τ. Note the coefficient is designed to cancel the integral of cos²: that has an average value of 1/2 over the range of πτ (the area of the convolution function should be one). And once again I will assert a time delay of π/2 τ is needed to make the filter causal.

The complex representation in this case becomes:

cos²(Δt / τ) = [2 + exp(2 i Δt / τ) + exp(‒2 i Δt / τ)] / 4

The model for the function remains:

f(t) = f0 cos ωt,

for which I will again use the complex representation:

f(t) = f0 Re{ exp iωt },

where Re{} denotes the real part of the complex number. .

Following the approach used last time:

f*(t) = (2 / πτ) ∫ d Δt · cos²(Δt / τ) f(t ‒ Δt),

  = (f0 / πτ) Re { ∫ d Δt · [2 + exp(i 2Δt / τ) + exp(‒i 2Δt / τ)] exp iωt / 2 },

f*(t) = (f0 / πτ) Re { ∫ d Δt · [2 exp iω(t ‒ Δt) + exp(i 2Δt / τ + iω (t ‒ Δt) ) + exp(‒i Δt / 2τ + iω(t ‒ Δt))] / 2}.

Back to bookkeeping for the integration:

f*(t) = (f0 / π) Re { [‒2 exp iω(t ‒ Δt) / ωτ + exp(i 2Δt / τ + iω (t ‒ Δt)) / (2 ‒ ωτ) ‒ exp(‒i 2Δt / τ + iω (t ‒ Δt)) / (2 + ωτ) ] / 2i }.

Consolidate the denominator:

f*(t) = (f0 / π) Re { [ ([‒2 (4 ‒ ω²τ²) exp iω(t ‒ Δt) + ωτ (2 + ωτ) exp(i 2Δt / τ + iω (t ‒ Δt)) ‒ ωτ (2 ‒ ωτ) exp(‒i 2Δt / τ + iω (t ‒ Δt)) ] / [2i ωτ (4 - ω²τ²)] },

This is a bit more complex than the truncated cosine was! Still, it's not too hard to unwrap into its trigonometric components:

f*(t) = (f0 / π) Re { ((4 ‒ ω²τ²) i + 2ωτ sin(2Δt / τ) ‒ iω²τ² cos(2Δt / τ)) exp(iω (t ‒ Δt)) / ωτ(4 ‒ ω²τ²) }.

Now clean up this mess by converting it to a definite integral. Integration limits are Δt = ‒π/2 τ and +π/2 τ:

f*(t) = (f0 / π) Re {(4 ‒ ω²τ²) i + 2ω sin(π) ‒ iω²τ² cos(π)) exp(iω (t ‒ π/2 τ)) ‒ ((4 ‒ ω²τ²) i + 2ω sin(‒π) ‒ iω²τ² cos(‒π)) exp(iω (t + π/2 τ)) } / ωτ (4 ‒ ω²τ²),

The sine terms go to 0, the cosines to ‒1, and pull out the common exp iωt, then cancel iω²τ² terms:

f*(t) = (f0 / π) Re {[4i exp(‒π/2 iωτ) ‒ 4i exp(π/2 iωτ)] exp iωt} / ωτ (4 ‒ ω²τ²),

That's starting to look more civil! Here it is, the final result for the low-pass filter:

f*(t) = (f0 / π) 8 sin(π/2 ωτ) cos ωt / ωτ (4 ‒ ω²τ²).

Okay.... so the big check here is whether it does the right thing for small ωτ. At small values of ωτ the sin function is proportional to its argument, then I can clean out ωτ's and 4π's from the numerator and denominator:

f*(t) ≈ f0 cos ωt,

Nice! It passed that test. For |ωτ| « 1, it gives me back the original function.

Then there's the funny business near |ωτ| = 2. Here the argument of the sin is near π, so for ωτ = 2 + ε for small ε, we have:

sin(π/2 ωτ) = sin(π + (π/2) ε) ≈ ‒(π/2) ε.

The denominator ωτ (4 ‒ ω²τ²) then becomes (2 + ε) ( 4 - 4 + 4 ε + ε² ) which is to first order 8 ε. So for ωτ = 2 + ε for small ε,

f*(t) ≈ (f0 / π) 8 (‒ π/2) ε cos ωt / 8ε = f0 cos ωt / 2.

So no problem at all: the function has simply fallen to half its maximum amplitude at this frequency.

At large frequency (|ωτ| » 1) it's easy to see the function falls off proportional to ω³τ³. This is really exciting: with the exponential, it fell off at high frequency proportional to ωτ, with the truncated cosine it fell off proportional to ω²τ², while with this function it falls off proportional to ω³τ³. This means even after differentiation the function will still fall off proportional to ω²τ², which is very nice low-pass filtering. We just need to make sure we don't set the cut-off frequency too low such that we lose signals of interest.

Now if we want a band-pass filter, we differentiate and multiply by τ:

τ ∂/∂t f*(t) = ‒(f0 / π) 8 sin(π/2 ωτ) sin ωt / (4 ‒ ω²τ²).

It's easy to see this falls off at large ωτ due to the ω²τ² in the denominator. It also falls off at small ωτ due to the sin ωt in the numerator. So we're good.

Tuesday, December 15, 2009

Band Pass Filtering: SCORE!

In the last post, I showed how a simple-minded effort at band-pass filtering failed miserably. Basically the attempt was to apply a simple low-pass exponential weighted rolling average as a low-pass filter, then follow up with differentiation, which cuts out the low-frequency stuff.

The problem was the differentiation basically undid the low-pass filtering of the exponential averaging. What was left was a high pass filter, not a band pass.

Of course I could look this stuff up on Wikipedia or even (gasp!) an actual book (remember those?). But I that would hardly be redemption. Better to dive in and convince myself I still remember something from that expensive college education..

So to retain both high and low-pass characteristics after differentiation what's needed is a better low-pass: it needs to cut off high frequencies faster than the 1/ω behavior of the exponential smoothing.

I previously proposed a truncated sine wave Let's try that (or a truncated cosine wave: same deal). Instead of convolving with an exponential decay, then, we'll convolve with the positive half of a cosine function, with weighting calculated so the integral of the convolution function equals one (so it gives back the original function if that function is sufficiently slowly varying):

f*(t) = (1 / 2τ) ∫ d Δt · cos(Δt / τ) f(t ‒ Δt),

where here the limits of integration are from ‒π/2 τ to +π/2 τ.

Okay, one caveat. This filter is using results of f from future time (Δt < 0). But causality can be trivially restored by inserting a delay of π/2 τ. I'll do the analyis pre-delay to keep the math simpler.

I can then pull the previous trick of representing the cos function in terms of its equivalent complex function:

cos(Δt / τ) = [exp(i Δt / τ) + exp(‒i Δt / τ)] / 2

Then I model for a function (in the last post I used since, but the difference is only in the phase):

f(t) = f0 cos ωt,

for which I will use the complex representation:

f(t) = f0 Re{ exp iωt },

where Re{} denotes the real part of the complex number. .

Okay, simple enough:

f*(t) = (1 / 2τ) ∫ d Δt · cos(Δt / τ) f(t ‒ Δt),

  = (f0 / 2τ) Re { ∫ d Δt · [exp(i Δt / τ) + exp(‒i Δt / τ)] exp iωt / 2},

where I recognized the "Re" can be taken outside the integral (the integral of the real part equals the real part of the integral). Consolate the exponentials for integration:

f*(t) = (f0 / 2)) Re { ∫ d Δt · [exp(i Δt / τ + iω (t ‒ Δt) ) + exp(‒i Δt / 2τ + iω(t ‒ Δt))] / 2}.

It's only a bookkeeping challenge to integrate this... (warning: I'm quite poor at bookkeeping):

f*(t) = (f0 / 2) Re { [ exp(i Δt / τ + iω (t ‒ Δt)) / (1 ‒ ωτ) ‒ exp(‒i Δt / τ + iω (t ‒ Δt)) / (1 + ωτ) ] / 2i}.

Consolidate the denominator:

f*(t) = (f0 / 2) Re { [ (1 + ωτ) exp(i Δt / τ + iω (t ‒ Δt)) ‒ (1 ‒ ωτ) exp(‒i Δt / τ + iω (t ‒ Δt)) ] / 2i(1 ‒ ω²τ²)},

which can be brought back to the trigometric form:

f*(t) = (f0 / 2) Re { (sin(Δt / τ) ‒ iωτ cos(Δt / τ)) exp(iω (t ‒ Δt)) / (1 ‒ ω²τ²)}.

Now we need to remember to evaluate this at the limits Δt = ‒π/2 τ and +π/2 τ (we want a definite integral, not the indefinite one):

f*(t) = (f0 / 2) Re { (sin(π/2) ‒ iωτ cos(π/2)) exp(iω (t ‒ π/2 τ)) ‒ (sin(‒π/2) ‒ iωτ cos(‒π/2)) exp(iω (t + π/2 τ)) } / (1 ‒ ω²τ²),

which becomes:

f*(t) = (f0 / 2) Re { exp(iω (t ‒ π/2 τ) + exp(iω (t + π/2 τ)) } / (1 ‒ ω²τ²).

This can e cleaned up a but to to get my final result:

f*(t) = f0 cos(π/2 ωτ) cos(ωt) / (1 ‒ ω²τ²).

For ωτ « 1, this approaches:

f*(t) ≈ f0 cos ωt,

which is huge relief because it what we wanted: for slowly varying functions the smoothing should just yield the original function.

On the other hand, for ωτ » 1, this becomes

f*(t) = ‒f0 cos(π/2 ωτ) cos(ωt) / ω²τ²,

which falls off proportionally to ω²τ². Recall the exponential filter only fell off proportional to ωτ. This is more great news: it means after we differentiate the net result will fall off at high frequency proportional to ωτ, so we have a band pass filter, which is what we wanted. The exponential filter failed to attenuate high frequencies after differentiation.

There is the funny business near ωτ: both the denominator and the numerator go to zero. To see what happens, we can use a polynomial expansion of cosine:

cos (π/2 + ε) ≈ ε,

where ε ≡ (π/2) (ωτ ‒ 1), or equivalently ωτ ≡ 2ε/π + 1. The denominator term (1 ‒ ω²τ²) then becomes 1 ‒ (2ε/π + 1)² ≈ 4ε/π. So the ratio cos((π/2) ωτ) } / (1 ‒ ω²τ²) approaches π/4. So no singularity there after all, despite initial appearances.

Okay, for the record, I suppose it would be good to apply the differentiation explicitly, then multiply by τ to keep the units the same:

τ ∂/∂t f*(t) = ‒f0 cos(π/2 ωτ) sin(ωt) ωτ / (1 ‒ ω²τ²),

which, as promised, falls off both for small and large ωτ.

So what to conclude? Convolution with a truncated cosine wave does a better job of low-pass filtering than an exponentially-weighted rolling average. thats sort of obvious by inspection: there's no hard edges on the truncated cosine wave. But there is a hard corner, so in the future I'll consider an alternative.

Monday, December 14, 2009

Band-pass filtering: FAIL!

Last time on the subject of the MetriGear Vector, I posted some comments on filtering noisy data. Honestly, I hope my college professors weren't reading that one.... I might find myself back in school having had my undergraduatee EE degree revoked. 6.003 redux.

What I'd proposed was exponential smoothing followed by differentiation. Exponential smoothing is a convolution with an exponential function. The result is, where f*(t) is the smoothed function, and f(t) is the original function:

f*(t) = (1 / τ) ∫ d Δt · exp(‒Δt / τ) f(t ‒ Δt),

where the integral is from 0 to ∞.

In this case, where we're dealing with pedaling motion, pedaling at constant cadence yields a sinusoidal motion. For example:

f(t) = f0 sin ωt,

where ω is the angular velocity. For those of us who were never very good at memorizing integration tables, it's easier to express the sin function in terms of its equivalent in complex exponentials, where i is the unit imaginary number:

f(t) = f0 [ exp iωt ‒ exp ‒iωt ] / 2i .

Okay, so I can plug this in:

f*(t) = (1 / τ) f0 ∫ d Δt · exp(‒Δt / τ) [ exp iω(t ‒ Δt) ‒ exp ‒iω(t ‒ Δt) ] / 2i .

I can then consolodate the exponentials:

f*(t) = (1 / τ) f0 ∫ d Δt · [ exp(iω(t ‒ Δt) ‒ Δt / τ) ‒ exp(‒iω(t ‒ Δt) ‒ Δt / τ)] / 2i .

Exponentials even I can integrate, recalling the limits of integration are 0 and infinity, only the former explicitly contributing (fingers crossed I got the signs correct):

f*(t) = f0 [exp(iωt) / (1 ‒ iωτ) ‒ exp(‒iωt) / (1 + iωτ)] / 2i.

Clear the complex denominator:

f*(t) = f0 [exp(iωt) (1 + iωτ) ‒ exp(‒iωt) (1 ‒ iωτ)] / 2i (1 + ω²τ²),

which if you squint hard is clearly:

f*(t) = f0 [sin(ωt) + ωτ cos(ωt)] / (1 + ω²τ²).

This is another oscillating function, out of phase with the original function. If ωτ « 1, then f*(t) ≈ f(t), as expected. On the other hand, if ωτ » 1, then f*(t) ≈ cos(ωt) / ωt.

Thus the exponential smoothing function acts like a low-pass filter: for ωt large the amplitude of the result is inversely proportional to the frequency. All good.

The rub is when we differentiate it. To keep the units the same I'll multiply the derivative by τ.

τ (∂ / ∂ t) f*(t) = f0 [cos(ωt) ‒ ωτ sin(ωt)] ωτ / (1 + ω²τ²)

Now you see at high frequencies this result goes to cos(ωt): independent of frequency. So this net operation of exponential smoothing followed by differentiation isn't a band-pass filter at all. Rather it is just a high-pass filter. For frequencies ωτ « 1, the output magnitude is proportional to ωτ, but for ωτ » 1, the output is the same magnitude as the input.

This is why the exponential smoothing followed by differentiation did such a poor job of eliminating high-frequency noise. I proposed in that previous post that another smoothing function might do better. Enough for now.

One final note: all of this could have been quickly concluded had I remembered my LaPlace transforms. But LaPlace transforms are a bit on the abstract side. Better to boldly dive in and do the integrals. The conclusion was the same.

Saturday, December 12, 2009

Low-Key Score History: Ron Brunner and Gary Gellin

Two more score histories....

Ron Brunner was tracking a trajectory of incredible exponential score improvement through 2008. With this sort of thing, improvement invariably saturates. But Ron showed no respect for saturation: in 2009 he increased his rate of improvement even above his prevailing trend. Amazing.



Then there's Gary Gellin. Gary has ridden a few Low-Keys, and indeed is an excellent climber, although he's not shown his best at the fall Low-Keys while on his bike. But where Gary's really made an impression is in running. He ran his first Low-Key back in 1995, and his results on foot have continued to increase ever since. It's always fun getting rider reactions when they're passed by Gary running by. Gary typically selects the steepest climb or two to make his showing. The steeper the better for a runner versus a rider.



Gary is the primary inspiration for my dabbling in trail running last winter (and hopefully this winter as well, if I can solve a bit of a knee issue which has been limiting me). Trail running is a blast, and I'd never realized what an incredibly rich trail running community there is in the Bay area. Check it out if you're looking for something fun to do without wheels.

Thursday, December 10, 2009

Low-Key Score History: Tracy Colwell and Tim Clark

Two of the most successful male riders in Low-Key history have been Tracy Colwell and Tim Clark.

Tracy won the series in 1996 through 1997, then again in 2006. Tracy's participation became less regular starting in 1998, and Tim stepped up to take the overall in 2007-2008. This year the overall men's leader was Justin Lucke, in 1998 it was Eric Albrecht, while in 1995 it was me.

Here's Tracy's "scores", calculated as I described using the present convention (the official score in the '90's was % of the fastest rider's speed):



Tracy was strong in 1996, but stepped it up to a different level in 1997, a year when he set several course records which hold to today. Since then, increasing parenting duties have reduced his training a bit, but he's still an impressive climber. He was the first non-motorized rider to the top of Hamilton last Thanksgiving, for example.

Tim wasn't as active in the '90's, but did fairly well in 1997-1998. In Low-Key version 2, however, he was clearly stronger. He won the series in 2007, as I noted, but his scores were even higher in 2008. Tim, like Tracy used to do, would typically move to the front early and set a blistering pace which would drop people one by one. This year he wasn't able to train as much, perhaps because of his time commitment to MetriGear, and dropped off a bit, although was clearly getting stronger as the series progressed:


It's a rare day I can keep up with Tim on a climb, and I've never (to my recollection) kept pace with Tracy on a competitive climb. It's a really great part of Low-Keys to be able to ride with guys like these two, at least for the brief time I can typically stay with them.

Wednesday, December 9, 2009

My Low-Key Score History

With the completion of the Low-Key Hillclimb score archives, it's fun to look at some score histories.

Most of the riders in Low-Key version 2 (starting 2006) were new: it had been 8 years since the previous Low-Key series, and that's a long time in the cycling world. But for riders who've done the series in both decades of its existence (next year it enters its third), it's interesting to see how their performances compare.

A few riders come to mind. For example, me.

Okay, so I admit I was nervous in doing this exercise. A decade's passing is often unkind to a cyclist's results. Nobody likes to be reminded that they're getting older. Okay, just plain getting old. So let's see what the numbers say.

First, the method. These are calculated using the scheme used to calculate rider scores presently: first I take the median time among non-tandem riders in the same "division" (divisions typically comprise "men" and "women"), then I take the ratio of the median time to a rider's time and multiply by 100. Simple.

Okay (gulp). Here's my results:


1995 was a good year. I'd done a hard 3-week bike tour in France that summer, "Le Tour des Cols" run by Ed McLaughlin, president of Chico Velo, with his French connection Pierre Maisoneuve. Wow -- what fun that was! A real eye opener that made me realize I could do a lot more than I'd thought.

I didn't have that in 1996: that was just a miserable year of grad school. So I'd clearly lost a bit. The worst of it was the final climb, Mount Hamilton Road, where I completely fell apart. Indeed, at the time I figured I was over-the-hill. But in retrospect it was clear that riding haute categorie climbs in July had left me feeling invincible when I got back to California. Oh, yeah: and ripping myself apart because of my difficulty in finishing my research program didn't help, either. That was a very hard time. Indeed, I broke down with a case of chronic fatigue not long after. No surprise.

In 1997-1998, I was in Austin, TX, working at Motorola. Not much climbing there... but lots of miles. Miles which served me quite well when I returned to California late in 2000. But no Low-Keys in 2000. Or 2001, 2002, 2003, 2004, or 2005. It wasn't until 2006 that Kevin Winterfield talked some sense into me and we started it again.

2006 I'd done another very nice tour: the SuperTour Sierra for two weeks in July. Heat + altitude + distance in abundance. That was another fantastic tour: I'll forever be grateful to Jeff Orum and Perry Stout for putting that together. SuperTour is a wonderful thing, organized in 2010 by Gary Gellin and Holly Harris.

In the Low-Keys that year, I did far better than I'd expected. I'd not been competing since the 2002-2003. So I was pleased I was placing where I was.

2007: a bit better still. Again a bad day, this time on Diablo. I clearly have had an issue with the longest climbs in the series. No SuperTour that year, but oh, what a wonderful Tour Cara and I had in Italy! We spent a week in Rome, Florance, Lucca, and Pisa, with some nice riding but also some wonderful sight-seeing, before joining Andy Hampsten's Cingale Tours for his Tuscany-Elba tour. Hardly the same training load as Super Tour or the Tour des Cols, but I returned with solid fitness anyway. Enormous fun.

2008 I improved again, and improved through the series. No bike tour that year, but I'd taken up running again, and that had caused me to lose a little weight which had been with me since around 2001-2002. A few % of weight = a few % more points, and that's what I saw. For fun, I ran Metcalf, the shortest climb in that series. It was fun, but as you can see, I'm no Gary Gellin.

2009 I fell off a bit. I've been sick a lot this year, and discovered late this summer I had stomach ulcers, likely since my ibuprofen course following a crash at the Berkeley Hills RR in May. So I wasn't surprised I lost a bit: in fact, I was absolutely shocked I did as well as I did. It seemed like the only days I felt good on a bike were at Low-Keys. I had a good time. It was good the series was there, as there hasn't been much else positive to say in my athletic pursuits since the Woodside Half-Marathon trail run in February. It's been a challenging year.

Of course my body isn't the only thing which is lighter: my bike is a lot lighter, as well. The bike I rode in the '90's is a Trek 1500, over 20 lb. The bike I rode this year is a Fuji SL/1, which was down to 11.08 lb by the time I rode Mt Hamilton at the end of the series. Of course its all relative, and the average bike in 2009 is a lot lighter than the average in 1995. But 10 lb is a big drop. The average hasn't fallen that much. So I think the harsh reality is I am a bit slower than I was then, by a few %, anyway. But I'm not riding as much, either.

Okay, enough. Next time I'll look at some other prominent Low-Keyers.

Tuesday, December 8, 2009

Low-Key all-time bests: Soda Springs & W84-WOLH

Last time I showed the most-popular Low-Key climbs as determined by number of finishers were Hamilton, Montebello, then Soda Springs a surprising third. Soda was used in three of our very popular years: 1997, 1998, and 2009. We had some issues this year with a local resident who thought we represented a lot of traffic, which we were. But I hope we can work things out with him and return there in the future.

Another popular climb I haven't posted results here for yet is the combination of Highway 84 and west Old La Honda Road. This is a route rarely if ever timed by solo riders: it's somewhat artificial. But it gives people a chance to show off their flatland time trialing before the serious climbing begins in La Honda. And west Old La Honda is one of the prettiest climbs anywhere, without a doubt. It was used in 1996, 1997, and 2006.

On Soda, Tracy Colwell's 2007 time is the best, one second faster than Chris Phipps' result from this year. On the women's side, it's another dominant Low-Key record for Laura Stern, an accomplished cross-country skier and holder of one of the best women's time in the Terrible Two double century. Both of these times are from the '90's; indeed most of the top results are from that decade.

For WOLH, Tracy might well have had that record as well, but he flatted in 1996. Tim Clark has the best time, from 2007. Kristen Neubauer has a solid hold on the record from 1996.

In both 1996 and 2007 we recorded split times as riders passed through La Honda. This provides a fun comparison of flat time trialing versus climbing speed for each rider. The correlation is actually quite strong. People with more power/mass on the climbs also tend to have more power/cross-sectional-area on the flats.

Soda Springs
Men
rank year(wk) name                       time  %median
1 1997(5) Tracy Colwell 30:03 138.602
2 2009(4) Christopher Phipps 30:04 128.875
3 1997(5) Craig Schommer 31:28 132.362
4 1997(5) Eric Albrecht 31:38 131.665
5 2009(4) Eric Balfus 31:44 122.121
6 1998(3) Eric Albrecht 31:51 125.955
7 2009(4) Dan Connelly 32:06 120.707
8 2009(4) Ciaran Byrne 32:12 120.37
9 2009(4) Ammon Skidmore 32:14 120.19
10 2009(4) Mark Edwards 32:15 120.165
11 2009(4) Clark Foy 32:17 120.053
12 2009(4) Tim Clark 32:23 119.664
13 2009(4) Dominic Pezzoni 32:30 119.204
14 1997(5) Michael Matthews 32:39 127.565
15 2009(4) Geoff Drake 32:44 118.397
16 1998(3) Curt Ferguson 32:48 122.307
17 1998(3) Tim Clark 32:50 122.183
18 2009(4) Tom Gardin 32:59 117.482
19 2009(4) Laurent Pfertzel 33:20 116.272
20 1998(3) John St. Denis 33:24 120.11

Women
rank year(wk) name                       time  %median
1 1998(3) Laura Stern 37:25 124.454
2 1998(3) Cornelia Fletcher 38:40 120.431
3 2009(4) Janet Martinez 39:47 119.084
4 1998(3) Janet Ekstrom 40:47 114.181
5 1997(5) Julie Colwell 40:53 123.604
6 1998(3) Colleen Farrell 42:15 110.217
7 2009(4) Mary Ellen Allen 42:53 110.46
8 2009(4) Lisa Gordon 42:59 110.203
9 2009(4) Leah Toeniskoetter 43:00 110.151
10 1997(5) Cornezia Fletcher 43:14 116.885
11 1998(3) Phyllis Olrich 43:32 106.968
12 2009(4) Christy Cowley 43:33 108.773
13 1997(5) Caroline Stronck 43:35 115.946
14 1997(5) Janet Ekstrom 43:39 115.769
15 2009(4) Lucia Mokres 43:46 108.243
16 2009(4) Lyresa Pleskovitch 43:49 108.128
17 1998(3) Meg Geherd 44:48 103.943
18 2009(4) Laura Schuster 45:47 103.472
19 2009(4) Cathy Foy 45:50 103.344
20 1997(5) Andrea Ivan 46:02 109.776

Mixed Tandem
rank year(wk) name                       time  %median
1 1998(3) John Serafin 43:09 104.674
1 1998(3) Lisa Antonino 43:09 104.674
3 1998(3) Mike Jensen 44:12 102.187
3 1998(3) Liz Borra 44:12 102.187
5 1997(5) Liz Borra 45:07 92.3162
5 1997(5) Mike Jensen 45:07 92.3162
7 1998(3) Tom Lawrence 46:08 97.9046
7 1998(3) Sarah Beaver 46:08 97.9046
9 1998(3) Dick and Roxanne Robinson 50:35 89.2916

Tricycle
rank year(wk) name                       time  %median
1 1998(3) Joe Lansing 56:08 100


Hwy 84/WOLH
Men
rank year(wk) name                      time   %median
1 2007(5) Tim Clark 43:24 120.161
2 1996(5) Mike Podgorski 44:33 117.247
3 1996(5) Glenn Chadwick 45:04 115.902
4 1997(4) Michael Podgorski 45:13 124.806
5 1996(5) Chris Crawford 45:17 115.348
6 2007(5) Mark Edwards 45:30 114.615
7 2007(5) Rupert Brauch 45:35 114.406
8 1997(4) Michael Denardi 45:36 123.757
9 2007(5) Peter Mehlitz 45:44 114.031
10 2007(5) Geoff Drake 45:47 113.906
11 1997(4) Tracy Colwell 46:07 122.371
12 1997(4) Eric Albrecht 46:31 121.319
13 1996(5) Daniel Connelly 46:51 111.491
14 1996(5) Tracy Colwell 46:59 111.174
15 2007(5) Brian Edwards 47:06 110.722
16 2007(5) Bill Lloyd 47:08 110.644
17 1996(5) Lorin Hawley 47:09 110.781
18 1996(5) Ted Jaworkski 47:32 109.888
19 1997(4) Kevin Fox 47:33 118.682
20 1996(5) Richard Long 47:42 109.504

Women
rank year(wk) name                      time   %median
1 1996(5) Kristen Neubauer 50:54 117.42
2 2007(5) Janet Martinez 52:13 123.428
3 1996(5) Lisa Antonino 53:33 111.609
4 1996(5) Liz Benishin 54:05 110.508
5 1996(5) Charlotte Jacobson 55:11 108.306
6 1997(4) Julie Colwell 56:12 119.024
7 2007(5) Margie Biddick 58:36 109.983
8 1997(4) Lisa Antonino 58:39 114.052
9 1996(5) Julie Colwell 58:53 101.5
10 1997(4) Cornezia Fletcher 59:17 112.834
11 1996(5) Phyllis Olrich 59:46 100
12 1996(5) Lisa Curran 59:48 99.9443
13 1996(5) Cheryl Herms 60:27 98.8696
14 1996(5) Pat Baenen 61:02 97.9246
15 1997(4) Mary Caragio 61:46 108.297
16 1997(4) Mickey Weinberg 62:22 107.255
17 1996(5) Julia Jung-Ames 63:07 94.6924
18 2007(5) Kelly Kasik 63:39 101.257
19 2007(5) Carole Sykes 63:56 100.808
20 1997(4) Phyllis Olrich 64:40 103.441

Mixed Tandem
rank year(wk) name                      time   %median
1 1997(4) Liz Borra 55:45 101.226
1 1997(4) Mike Jensen 55:45 101.226

Monday, December 7, 2009

Low-Key Hillclimbs: most climbed

A little analysis I found surprising about the Low-Key Hillclimbs: which are the most-climbed climbs?

Well first and second are obvious: Hamilton and Montebello. Each has been very popular, perhaps Montebello with slightly more turn-out, but Hamilton was used twice in 1998 compared with no Montebello that year, so I'd guess Hamilton's been climbed (or more accurately, finished) more times.

Then, what's next?

Hmmm.... One of the Diablos? OLH? Kings? Page Mill?

Well, for one thing I was wrong about Hamilton: average turn-out is actually higher there, so the comparison with Montebello isn't even close. But I was most surprised with the climb ranking third. Cool: really great climb.
climb                        used finishers
Mt_Hamilton 9 901
Montebello 7 625
Soda_Springs 3 317
OLH 4 282
Mount_Diablo_(S) 4 278
Hwy_84/WOLH 3 238
Bohlman_-_On_Orbit 5 234
Kings_Mountain 4 198
Mount_Diablo_(N) 2 191
Page_Mill 3 150
Sierra_Road 2 130
Montevina 2 129
Tunitas_Creek_Road 1 109
Tunitas_Creek-Star_Hill-Swett 1 109
Quimby_Road 3 104
Highway_9 2 99
West_Alpine 1 93
Hwy_84_-_Haskins_Hill 1 83
Alba_Road 1 83
Metcalf_Rd 1 82
Bohlman-Norton-Kittridge... 1 78
Bear_Gulch 1 72
Quimby_Road_(Murillo_start) 1 70
Welch_Creek 1 67
Hicks_-_Loma_Almaden_(extended) 1 53
Jamison_Creek_Rd 1 51
E_Alpine_-_Joaquin 1 49
Lomas_Cantadas 1 43
Alpine_Fire_Road 1 30
E._Dunne_Ave 1 21
Fairfax-Bolinas_-_Ridgecrest 1 11
Willow_Springs_ITT 1 0
Bohlman 1 0

Some details: "used" includes canceled weeks. And week X from 1996, OLH, is included.

Rich Hill photo

Saturday, December 5, 2009

Low-Key: OLH & Kings

The two "classic" time tests of the Peninsula are OLH and Kings Mountain Road.

Okay, so first, what's this "OLH" business? I think we all know what OLH is. I prefer to call it OLH since the local residents discovered The Google.

I'm an OLH guy myself. Given the choice, if there's only one climb I can do, that'd be it. It's perfect in almost every way. Perfect grade. Shade. Shielded from the wind. Perfect distance. Perfect road surface. Perfect density of turns. Excellent proximity to population and decent proximity to the train (which is far from ideal, but I digress). It is the model climb. Well, okay, not perfect car traffic. That would be zero, and typically you encounter on average maybe one car when climbing OLH, which takes a bit less than 20 minutes, depending on how I'm feeling.

Deviations from OLH are generally deviations from the optimal. Nothing wrong with deviations: variation is a good thing.

Kings just doesn't do it for me. It doesn't have that feeling of being "in the zone" that OLH does. Still awesome, though. We're so spoiled here.

Anyway, we don't get to do these climbs as much as I'd like. Local residents frankly have too much income, and with that too much sense of ownership for what is not theirs. Too much entitlement. These are public roads, as much as any highway is a public road. Complaining about bikes on OLH or Kings is like complaining about cars on El Camino. Not all residents feel this way, obviously. But all it takes is one to harass riders, riders who have as much right to be there as he does, and it makes life less pleasant for everyone.

But no Bay area hillclimb series would be worth its name if it didn't visit each of these climbs at least every few years. So for what it's worth, here's the Low-Key records on OLH and Kings.

OLH by Josh Hadley

One year, 1996, OLH was a separate climb, not part of the series proper, and called "week X". I include these results here, primarily because that was Tracy's PR up the hill. I remember telling Tracy at the start that he should dump the pump and toolbag. Every gram counts, after all, and it only takes around 80 to cost yourself a second. Tracy crossed the line in 16-even. Too bad; for some reason 15:59 seems so much faster.

Another highlight on OLH was the year before, when Gary Gellin ran OLH and finished in a very respectable 24 minutes and change. It wasn't to be the last time Gary was going to show up and show that two wheels are over-rated. Gary's run five climbs altogether, the most recent Alba Road this year.

For me, my result up Kings in 1995 was perhaps my best Low-Key ever. I felt so strong that day. I'd done a bike tour in France that summer, climbing many of the famous Tour cols, and that left me with a really nice dose of fitness. Someday I've got to return to France. I've not been back since. But as good as I felt, Tracy absolutely demolished Kings two years later. Sub-20: wow!

So good memories from these two hills. Look for Kings to return in the 2010 schedule!


Kings Mountain
Men
rank year(wk) name                   time   %median
1 1996(4) Tracy Colwell 19:51 137.028
2 2007(2) Tim Clark 21:15 127.49
3 1995(2) Dan Connelly 21:35 127.181
4 2007(2) Mark Edwards 21:46 124.464
5 1996(4) Glenn Chadwick 21:53 124.296
6 2007(2) Clark Foy 21:55 123.612
7 2007(2) Eric Balfus 22:04 122.772
8 1996(4) Chris Crawford 22:09 122.799
9 1996(4) Thomas Lund 22:12 122.523
10 1995(2) Tom Hertenstein 22:13 123.556
11 1995(2) Jamie Willin 22:20 122.91
12 2007(2) Dan Connelly 22:22 121.125
13 1996(4) Ruedi Brunner 22:23 121.519
14 2007(2) Rupert Brauch 22:28 120.586
15 1996(4) Michael Denardi 22:30 120.889
16 1995(2) Geo Kitta 22:33 121.729
17 2007(2) Ken Gallardo 22:48 118.823
18 2007(2) Greg McQuaid 22:53 118.39
19 2007(2) Tom Gardin 22:54 118.304
20 2007(2) Justin Lucke 23:04 117.449

Women
rank year(wk) name                   time   %median
1 1996(4) Laura Stern 26:10 117.07
2 1996(4) Kristen Neubauer 26:52 114.02
3 2007(2) Anny Henry 27:09 135.083
4 1996(4) Liz Benishin 27:20 112.073
5 1996(4) Lisa Antonino 28:11 108.693
6 1995(2) Linda Elgart 28:17 116.588
7 2007(2) Margie Biddick 29:23 124.816
8 1996(4) Charlotte Jacobson 30:20 100.989
9 1996(4) Julie Colwell 30:56 99.0302
10 1995(2) Cheryl Herms 31:05 106.086
11 1996(4) Phyllis Olrich 32:15 94.9871
12 2007(2) Mary Ellen Allen 32:42 112.156
13 2007(2) Kelly Kasik 34:14 107.132
14 1995(2) Crystal Thorpe 34:52 94.5746
15 1995(2) Barbara Titel 36:02 91.5125
16 2007(2) Christie Craig 36:15 101.172
17 1996(4) Pat Baenen 36:18 84.3893
18 1996(4) Roxanne Robinson 36:40 83.5455
19 1996(4) Kana Saibuya 36:54 83.0172
20 2007(2) Nuria Bertran 37:06 98.8544

Mixed Tandem
rank year(wk) name                   time   %median
1 2007(2) Ileana Parker 30:17 89.4606
1 2007(2) Bob Parker 30:17 89.4606

OLH
Men
rank year(wk) name                   time   %median
1 2009(2) Christopher Phipps 15:35 135.08
2 2009(2) Justin Lucke 15:57 131.975
3 2009(2) Brian Lucido 15:58 131.837
4 1996(X) Tracy Colwell 16:00 131.042
5 2006(2) Scott Frake 16:33 123.313
6 2009(2) Ciaran Byrne 16:43 125.922
7 2009(2) Ammon Skidmore 16:51 124.926
8 2009(2) Eric Balfus 16:53 124.679
9 2006(2) Ryan Sherlock 16:59 120.167
10 2006(2) Andrey Revyakin 17:01 119.931
11 2009(2) Jon Ornstil 17:04 123.34
12 2009(2) Ken Spencer 17:05 123.22
13 2009(2) Krishna Dole 17:09 122.741
14 2006(2) Brian Edwards 17:13 118.538
15 2009(2) Mark Edwards 17:16 121.911
16 2009(2) Clark Foy 17:17 121.794
17 2006(2) Menso de Jong 17:18 117.967
18 2006(2) Kieran Sherlock 17:19 117.854
19 1995(4) Dan Connelly 17:22 129.655
20 2006(2) Jens Heycke 17:23 117.402

Women
rank year(wk) name                   time   %median
1 2009(2) Janet Martinez 21:24 126.324
2 2009(2) Mei Xi 21:53 123.534
3 2009(2) Mary Ellen Allen 22:14 121.589
4 1995(4) Liz Benishin 22:34 116.765
5 2006(2) Ingrid Erkman 23:12 116.739
6 1996(X) Julie Colwell 24:07 105.39
7 2009(2) Daniela Becker 24:33 110.115
8 1996(X) Phyllis Olrich 24:45 102.694
9 2009(2) Lisa Hern 24:54 108.568
10 1996(X) Cheryl Herms 25:07 101.194
11 1996(X) Pat Baenen 25:25 100
12 1996(X) Jane Taylor 25:28 99.8037
13 2009(2) Laura Egley 25:58 104.108
14 2009(2) Andrea Ivan 26:18 102.788
15 1995(4) Marcia Hutchinson 26:21 100
16 2006(2) Cheryl Hennessy 26:38 101.69
17 2009(2) Carol Sykes 27:02 100
18 2006(2) Stephanie Gruszunski 27:32 98.3656
19 1996(X) Julia Jung-Ames 28:25 89.4428
20 2009(2) Kelly Kasik 29:00 93.2184

Mixed Tandem
rank year(wk) name                   time   %median
1 1996(X) Mark Trail 22:00 95.303
1 1996(X) Lisa Trail 22:00 95.303

Unicycle
rank year(wk) name                   time   %median
1 2009(2) Steve Nash 27:09 77.5322
2 2006(2) Steve Nash 27:52 73.2356

Runner
rank year(wk) name                   time   %median
1 1995(4) Gary Gellin 24:29 91.9673

Women's Tandem
rank year(wk) name                   time   %median
1 2009(2) Meredith Nader 47:53 56.4567
1 2009(2) Amy Nader 47:53 56.4567

Friday, December 4, 2009

Low-Key: Bohlman-On Orbit best times

I first discovered the particular joys of Bohlman-On Orbit-Bohlman in 1995 when I rode Bill Bushnell's spectacular "Mr Bill's Nightmare", then part of the Sequoia Century. I don't think there's more than a handful of harder climbs at its distance in the US.

There's three major ways up the hill:
  • Stay on Bohlman: this is clearly the easiest route. Don't take it for granted, however, as it's still brutally steep.
  • Take the On-Orbit "shortcut": a substantially increased dose of pain. On Orbit is truly brutal. 13.2% over 2 km, 14.2% over 1 km, 15.9% over 500 m, 21.8% over 200 m, 24% peak. Which of these numbers speaks more to the pain? I don't know: I think all, actually. 21.8% over 200 meters is a much different experience as part of a longer climb than it would be, for example, as a few steep blocks in San Francisco, although that would also be tough. I rode Filbert Street, which is 32% over 68 meters. I think the two segments may be comparable. Fresh legs are huge.
  • Bohlman-Norton-Kittridge-Quickert-On Orbit-Bohlman: a lot less complicated than it sounds: basically one left turn onto Norton, then keep going up. I've never climbed this route all the way, only previewing the bottom. I missed this year's Low-Key since I was in Colorado at a cousin's wedding. Difficulty-wise, it seems roughly comparable to Bohlman-On Orbit-Bohlman.
Bohlman-Norton-Kittridge-Quickert-On Orbit-Bohlman

Every year I've been directly involved with the climbs we've selected On Orbit. In 1998 when I was in Austin the plan was to stay on Bohlman for variety, but the climb was rained out that year. I view that as On Orbit not at all pleased about being snubbed. It was also canceled in 2006 due to rain the night before.

I've got nice memories of the first time we did this climb in the first year of the series. Tyler Heerwagen, the stronger rider, was burdened in his 39-23. Every time the road would steepen, he'd pull away, only to slump over to scrape what little recovery he could salvage from the reduced grade sections. I, on the other hand had a 39-28, and was able to hold back a bit on the steep sections, then spin up to recatch him on the flatter segments. Finally he succumbed to his repeated intervals, and I was able to spin away.

Since, I've climbed it in a 39-25, and wouldn't want to try a 23. A preferred weapon of choice is a 34-26. That's similar to a 39-29. But really using an MTB-double would be even faster.

Anyway, here's the Low-Key records from the two routes we've used up this one:

Bohlman - On Orbit
Men
rank year(wk) name                 time  %median
1 1997(8) Tracy Colwell 24:56 143.316
2 1997(8) Eric Albrecht 25:58 137.612
3 1996(6) Tracy Colwell 26:13 138.525
4 1997(8) Miguel F. Aznar 26:42 133.833
5 2007(3) Tim Clark 26:51 132.837
6 1997(8) Michael Podgorski 27:24 130.414
7 1995(9) Dan Connelly 27:27 122.713
8 2007(3) Thomas Novikoff 28:04 127.078
9 1997(8) Kevin Fox 28:10 126.864
10 1997(8) Matt Dubbersly 28:16 126.415
11 2007(3) Michael Grundmann 28:26 125.44
12 2007(3) Eric Balfus 28:44 124.13
13 1997(8) Troy Soares 28:49 124.002
14 2007(3) Carl A. Nielson 28:57 123.201
15 1996(6) Daniel Connelly 29:06 124.8
16 1997(8) Dickie Brock 29:09 122.584
17 2007(3) Ammon Skidmore 29:10 122.286
18 2007(3) Greg McQuaid 29:12 122.146
19 1996(6) Jim Johnston 29:14 124.23
19 2007(3) Rupert Brauch 29:14 122.007

Women
rank year(wk) name                 time  %median
1 1995(9) Brenda Heerwagen 33:18 106.747
2 2007(3) Anny Henry 35:03 122.777
3 1996(6) Kristen Neubauer 35:31 115.486
3 1996(6) Holly Harris 35:31 115.486
5 1995(9) Liz Benishin 35:32 100
6 1997(8) Julie Colwell 35:44 127.425
7 1996(6) Liz Benishin 36:36 112.067
8 1997(8) Cornezia Fletcher 36:53 123.452
9 2007(3) Irene Franklin 37:24 115.062
10 1997(8) Mary Caragio 37:28 121.53
11 1997(8) Caroline Stronck 37:51 120.299
12 2007(3) Margie Biddick 39:03 110.201
13 1996(6) Cheryl Herms 41:01 100
14 1996(6) Phyllis Olrich 41:59 97.6975
15 1997(8) Phyllis Olrich 42:26 107.306
16 2007(3) Alison Chaiken 43:02 100
17 1996(6) Pat Baenen 43:32 94.219
18 1997(8) Sherri Mulroe 43:47 103.997
19 1997(8) Joy Shaffer 44:01 103.446
20 1996(6) Julie Colwell 44:40 91.8284

Mixed Tandem
rank year(wk) name                 time  %median
1 1997(8) Liz Borra 41:55 85.2485
1 1997(8) Mike Jensen 41:55 85.2485

Runner
rank year(wk) name                 time  %median
1 1996(6) Gary Gellin 34:53 104.109

Bohlman-Norton-Kittridge-Quickert-On Orbit-Bohlman
Men
rank year(wk) name                 time  %median
1 2009(6) Scott Frake 26:54 129.244
2 2009(6) Carl Nielson 28:05 123.798
3 2009(6) Tim Clark 28:36 121.562
4 2009(6) Tom Gardin 28:42 121.138
5 2009(6) Laurent Pfertzel 29:15 118.86
6 2009(6) Rune Dahl 29:16 118.793
7 2009(6) Rich Hill 29:25 118.187
8 2009(6) Bill Davis 29:36 117.455
9 2009(6) Jacob Berkman 29:37 117.389
10 2009(6) Bruce Gardner 30:08 115.376
11 2009(6) Brian Edwards 30:09 115.312
12 2009(6) Andy Brisnehan 30:19 114.678
13 2009(6) Ron Brunner 30:50 112.757
14 2009(6) John Walker 30:51 112.696
15 2009(6) Christian Paquet 31:15 111.253
15 2009(6) Mike Schuster 31:15 111.253
17 2009(6) Nathan Cauffman 31:33 110.195
18 2009(6) Jeff Farnsworth 31:51 109.158
19 2009(6) Scott Martin 32:03 108.476
19 2009(6) Evan Paull 32:03 108.476

Women
rank year(wk) name                 time  %median
1 2009(6) Christy Cowley 37:06 121.249
2 2009(6) Laura Hipp 39:30 113.882
3 2009(6) Karis McFarlane 44:59 100
4 2009(6) Laura Egley 45:01 99.926
5 2009(6) Lisa Emmerich 50:47 88.5789

Thursday, December 3, 2009

Low-Key: Diablo records

Results are shown here from the north side (starting at or near the gate) and the south side (starting near Athenian School). The north side has more climbing. We climbed the south side in 1995, 1996, 1997, and 2007. The north side was part of the Low-Key schedule in 2006 and 2009. This may be it for Low-Key at Diablo, since we didn't get positive feedback from the Chief Ranger this year, since I was told some car drivers may have been inconvenienced by the riders, the former clearly the priority of the State Park system.

Seriously, Diablo would be a much nicer, more tranquil, cleaner place if cars were banned. Call me radical.

Mount Diablo (N)
Men
rank year(wk) name                      time   %median
1 2009(7) Justin Lucke 51:12 132.031
2 2009(7) Kevin Metcalf 51:21 131.646
3 2006(3) Petro Hizalev 51:37 132.015
4 2006(3) Menso de Jong 52:00 131.042
5 2009(7) Ammon Skidmore 52:27 128.885
6 2009(7) Carl Nielson 52:44 128.192
7 2006(3) Patrick Gordis 53:13 128.046
8 2006(3) Rick Martyn 53:31 127.328
9 2009(7) Ken Gallardo 53:32 126.276
10 2009(7) Greg McQuaid 54:07 124.915
11 2009(7) Tom Roberts 55:08 122.612
12 2009(7) Chris Ott 55:11 122.501
13 2009(7) James Porter 55:17 122.279
14 2006(3) Matthew Catgo 55:26 122.925
15 2009(7) Andy Brisnehan 55:30 121.802
16 2006(3) Brian Edwards 55:49 122.081
16 2009(7) Clark Foy 55:49 121.111
18 2006(3) Greg McQuaid 55:59 121.718
19 2006(3) David Kelly 56:06 121.465
20 2009(7) Tim Clark 56:51 118.909

Women
rank year(wk) name                      time   %median
1 2006(3) Kate Ladan 62:57 142.759
2 2009(7) Janet Martinez 68:07 133.863
3 2009(7) Leah Toeniskoetter 68:36 132.92
4 2009(7) Michele Heaton 70:44 128.911
5 2009(7) Mary Ellen Allen 71:41 127.203
6 2009(7) Laura Schuster 72:13 126.264
7 2006(3) Jennifer Barlan 74:51 120.062
8 2009(7) Laura Egley 77:55 117.027
9 2009(7) Lori Fabris 82:45 110.191
10 2009(7) Karis McFarlane 84:09 108.358
11 2006(3) Stephanie Gruszunski 86:22 104.052
12 2006(3) Katie Antypas 88:33 101.487
13 2006(3) Kelly Kasik 89:52 100
14 2009(7) Kelly Kasik 91:11 100
15 2006(3) Marie Borselle 95:25 94.1834
16 2009(7) Ingrid McCarty 96:55 94.0843
17 2006(3) Colleen Cocoran 99:23 90.4243
18 2009(7) Andrea Ivan 100:32 90.6996
19 2009(7) Holly Roberts 101:44 89.6298
20 2009(7) Lisa Emmerich 103:49 87.8311

Mixed Tandem
rank year(wk) name                      time   %median
1 2009(7) Janet Wagner 61:17 110.307
1 2009(7) Brian Lucido 61:17 110.307

Unicycle
rank year(wk) name                      time   %median
1 2006(3) Beau Hoover 107:11 63.5749
2 2006(3) Nathan Hoover 108:55 62.5631

Mount Diablo (S)
Men
rank year(wk) name                      time   %median
1 1997(3) Michael Denardi 48:04 140.967
1 1997(3) Tracy Colwell 48:04 140.967
3 1997(3) Eric Albrecht 50:02 135.426
4 1996(3) Tracy Colwell 50:38 128.144
5 2007(4) Tim Clark 50:51 127.663
6 2007(4) Clark Foy 51:11 126.832
7 2007(4) Carl A. Nielson 52:17 124.163
8 1997(3) Kevin Fox 53:24 126.888
9 2007(4) Mark Edwards 53:31 121.302
10 1996(3) Chris Crawford 53:41 120.863
11 1996(3) Mike Podgorski 53:55 120.34
12 2007(4) Justin Lucke 54:14 119.699
13 2007(4) Geoff Drake 54:47 118.497
14 2007(4) Brian Edwards 55:07 117.78
15 2007(4) Greg McQuaid 55:15 117.496
16 2007(4) Rupert Brauch 55:33 116.862
17 1996(3) Brian Hsu 55:38 116.627
18 1997(3) Todd Studenicka 55:48 121.431
19 1997(3) Philip Duffy 55:51 121.322
20 1995(5) Phil Duffy 56:01 117.584

Women
rank year(wk) name                      time   %median
1 2007(4) Anny Henry 65:00 130.641
2 2007(4) Janet Martinez 65:08 130.374
3 1996(3) Liz Benishin 65:19 119.903
4 2007(4) Lucia Mokres 65:30 129.644
5 1997(3) Holly Harris 66:54 127.703
6 1997(3) Julie Colwell 67:29 126.599
7 1995(5) Liz Benishin 69:32 107.85
8 1997(3) Caroline Stronck 69:36 122.749
9 1997(3) Cornezia Fletcher 70:20 121.469
10 1996(3) Donamarie Forbes 71:10 110.047
11 1997(3) Janet Ekstrom 71:29 119.515
12 2007(4) Margie Biddick 71:31 118.737
13 1996(3) Cheryl Herms 75:01 104.399
14 1997(3) Andrea Ivan 75:56 112.511
15 2007(4) Mary Ellen Allen 77:08 110.091
16 1996(3) Julie Colwell 77:52 100.578
17 1996(3) Kim Chamness 78:19 100
18 1997(3) Sherri Mulroe 79:21 107.666
19 1995(5) Marcia Hutchinson 80:27 93.2152
20 1997(3) Sarah Beaver 83:41 102.091

Mixed Tandem
rank year(wk) name                      time   %median
1 2007(4) Ileana Parker 74:09 87.5478
1 2007(4) Bob Parker 74:09 87.5478

Runner
rank year(wk) name                      time   %median
1 1997(3) Gary Gellin 58:49 115.203