## 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.

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 finishersMt_Hamilton                     9    901Montebello                      7    625Soda_Springs                    3    317OLH                             4    282Mount_Diablo_(S)                4    278Hwy_84/WOLH                     3    238Bohlman_-_On_Orbit              5    234Kings_Mountain                  4    198Mount_Diablo_(N)                2    191Page_Mill                       3    150Sierra_Road                     2    130Montevina                       2    129Tunitas_Creek_Road              1    109Tunitas_Creek-Star_Hill-Swett   1    109Quimby_Road                     3    104Highway_9                       2    99West_Alpine                     1    93Hwy_84_-_Haskins_Hill           1    83Alba_Road                       1    83Metcalf_Rd                      1    82Bohlman-Norton-Kittridge...     1    78Bear_Gulch                      1    72Quimby_Road_(Murillo_start)     1    70Welch_Creek                     1    67Hicks_-_Loma_Almaden_(extended) 1    53Jamison_Creek_Rd                1    51E_Alpine_-_Joaquin              1    49Lomas_Cantadas                  1    43Alpine_Fire_Road                1    30E._Dunne_Ave                    1    21Fairfax-Bolinas_-_Ridgecrest    1    11Willow_Springs_ITT              1    0Bohlman                         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.

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.

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`