Signal and Sensation

The Glass That Keeps Ringing

How long a glass rings and how narrowly it listens are the same number. Measure it both ways and they agree, unless you sweep past it too fast, and then one of them is 64% wrong.

Open fullscreen →

What it is

A wine glass that rings at 700 Hz, and two ways of asking how good a resonator it is.

Ping it and time the decay. Or sweep a tone past it and see how narrow the band is that gets through. Both give you Q, they’re the same property of the same object, and the page does both at once and puts the numbers side by side.

For an ordinary glass the ring says 800 and a three second sweep says 292.

How it works

Q gets defined twice in most textbooks and the two definitions rarely get put next to each other. One is about time, Q = pi f tau, where tau is how long the amplitude takes to fall to a third of where it started. The other is about frequency, Q = f / bandwidth, where the bandwidth is how wide the band is that comes through 3 dB down or better.

The glass here is a two pole resonator with its poles just inside the unit circle, and it is the same object in both experiments. Striking it’s an impulse. Sweeping it’s a sine whose frequency ramps. Nothing about the glass changes between them.

The ring measurement fits a straight line to the decay in dB, skipping the first 5 dB where the strike itself is still present and stopping at 45 dB down where the tail is running out. The sweep measurement finds the peak of the response and the two points either side where it is 3 dB down.

The page measures at 8 kHz rather than at the sound card’s rate, because a slow sweep is millions of samples and it has to happen between two frames. Both methods recover the same number at both rates, which is a test rather than an assumption.

On an ordinary glass the ring gives 800 and a slow sweep gives 790, against a built value of 800. That’s the day working.

What surprised me

The fast sweep isn’t noisy, it’s wrong, and it’s wrong by a specific amount that has a clean law behind it.

My first attempt at “how slow does a sweep have to be” was a derivation. The resonance needs about its own ring time to respond, and in that time the sweep must not have moved far compared to the width of the band. That gives pi times the square of the bandwidth, in hertz per second, and I wrote it into the code as the limit.

The tests failed at four times slower than that limit, by 16%. So I stopped deriving and measured it.

What came back is better than what I was trying to prove. The error depends on the sweep rate divided by the square of the bandwidth and on nothing else at all. A glass with Q 40 and a glass with Q 800 give the same wrong answer to three decimal places at the same value of that ratio, and their bandwidths differ by a factor of twenty.

sweep rate over bandwidth squared measured Q as a fraction of the truth
3.14 0.560
0.785 0.840
0.196 0.983
0.049 0.998

So my derived limit was real, it was just the point where the measurement has already gone 44% wrong rather than the point where it’s fine. Getting within 2% needs about sixteen times slower than that.

The other half of it’s that the error only ever goes one way. A sweep that’s too fast always reports a wider band and a lower Q, it can never make a glass look sharper than it is. That is worth knowing, because it means a Q measured by sweeping is a lower bound rather than an estimate.

The practical version is uncomfortable. A crystal glass at 700 Hz with a Q of 3000 has a band 0.233 Hz wide, and sweeping honestly across 40 Hz of it takes 61 minutes. Nobody does that. The three second sweep on the page reads 591 against a true 3000, which is 80% low, and it still looks like a perfectly reasonable resonance curve. It’s smooth, it has a peak in the right place, and there is nothing on the screen to tell you it’s wrong.

What I would do next

Measure a real glass, with a microphone. The ring is easy and the fit is the same code. The interesting part would be that a real glass has two modes very close together, which beat against each other, and a decay fit that assumes one exponential will read the beat as noise and quietly widen the error bars.

I would also like to do the swept version properly with a chirp and deconvolution rather than a slow sine, which is how it’s actually done when you have to measure a room. That should recover the true Q in seconds rather than an hour, and the comparison against the honest slow sweep is a measurement I haven’t made.