Tim Wescott (@Tim Wescott)

Tim Wescott is the owner of Wescott Design Services. He specializes in pragmatic methods to apply control theory to embedded systems projects. Mr. Wescott teaches and consults in the area of control systems, with occasional digressions into communications systems. He is the author of Applied Control Theory for Embedded Systems, plus numerous magazine and on-line articles.

New Video: Parametric Oscillations

January 4, 2017

I just posted this last night.  It's kinda off-topic from the mission of the channel, but I realized that it had been months since I'd posted a video, and having an excuse to build on helped keep me on track.

Fibonacci trick

I'm working on a video, tying the Fibonacci sequence into the general subject of difference equations.

Here's a fun trick: take any two consecutive numbers in the Fibonacci sequence, say 34 and 55.  Now negate one and use them as the seed for the Fibonacci sequence, larger magnitude first, i.e.

$-55, 34, \cdots$

Carry it out, and you'll eventually get the Fibonacci sequence, or it's negative:

$-55, 34, -21, 13, -8, 5, -3, 2, -1, 1, 0, 1, 1 \cdots$

This is NOT a general property of difference...

Data Types for Control & DSP

There's a lot of information out there on what data types to use for digital signal processing, but there's also a lot of confusion, so the topic bears repeating.

I recently posted an entry on PID control. In that article I glossed over the data types used by showing "double" in all of my example code.  Numerically, this should work for most control problems, but it can be an extravagant use of processor resources.  There ought to be a better way to determine what precision you need...

PID Without a PhD

I both consult and teach in the area of digital control. Through both of these efforts, I have found that while there certainly are control problems that require all the expertise I can bring to bear, there are a great number of control problems that can be solved with the most basic knowledge of simple controllers, without resort to any formal control theory at all.

This article will tell you how to implement a simple controller in software and how to tune it without getting into heavy...

Finding the Best Optimum

November 4, 2013

When I was in school learning electrical engineering I owned a large mental pot, full of simmering resentment against the curriculum as it was being taught.

It really started in my junior year, when we took Semiconductor Devices, or more accurately "how to build circuits using transistors". I had been seduced by the pure mathematics of sophomore EE courses, where all the circuit elements (resistors, capacitors, coils and -- oh the joy -- dependent sources) are ideally modeled, and the labs...

Of Forests and Trees and DSP

When Stephane invited me to write a blog for dsprelated.com I immediately came up with a flood of ideas for highly detailed, technical, narrowly focused articles related to the intersection of DSP and control systems.

Then the USENET groups that I frequent received a spate of posts from people that were either asking about how to implement highly detailed, narrowly focused algorithms in ways that were either fundamental misapplications or were flawed because they were having problems...

Re: mitigating phase shift

What are you using for a phase detector?  If you detect phase by multiplying by a sine wave, then you can filter noise after the multiplication.

Re: Whatever happened to "Wavelets"?

The popular technical press may have billed them as replacing the Fourier Transform, but I don't think the originators pretended that to be so.Otherwise -- what...

Re: Help with polynomial zeros

I'm enjoying this because it's making me think of something I haven't considered before.As a polynomial's order increases, the locations of the roots become ever...

Re: ARM IIR Filter - Why No DAC Output?

It looks like it ought to work -- but I don't have mileage with the CMSIS calls -- the work I've done on the Cortex cores hasn't included DSP.If it works the way...

Re: ARM IIR Filter - Why No DAC Output?

"This on an STM32L4 running at 80MHz"Do you mean you have an 80MHz processor clock rate, or you're sampling at 80MHz.If you're not sampling at 80MHz -- what is...

Re: Digital IIR Parallel Implementation

Oh man -- I've been trying to figure out how to do this for years.  And this is so obvious, and extensible to just about any first or second-order system.I would...

Re: DTFT optimization question

Oh my god!  I just realized that a Goertzel is pretty darned close to a super-regenerative receiver, only with the poles on the stability boundary instead of outside...

Re: DTFT optimization question

I have absolutely nothing against the Goertzel itself.  I do think that people tend to over-apply it; if you're thinking of using it you should do so in the context...

Re: DTFT optimization question

"Goertzel isn't an IIR filter. It is a recursive method of evaluating a polynomial in W_N."An IIR filter is a recursive method of evaluating a polynomial in W_N. ...

Re: DTFT optimization question

You say you need four sets of 70 coefficients, but you don't say what those are -- do you mean four sets of DTFT results at 70 different frequencies?

Re: DTFT optimization question

Bear in mind that the Goertzel algorithm may only require N multiplies and 2N adds per frequency, but -- being an IIR filter -- it will, in general, require a wider...

Re: s_to_z (Pupalaikis)

1:p1 = 3180e-6; // 50.05p2 = 75e-6; // 2.122kz1 = 318e-6; // 500.5z2 = 0.0; // not always zeroPlaying fast and loose with notation:p1 = 1/(3180e-6 sec) = 314 radian/secp2...

Re: s_to_z (Pupalaikis)

First, you turn the time constants into frequencies.Second, you prewarp those frequencies (and hence pole and zero locations).Third, you make numerator and denominator...

Re: DSSS Spreading using single Walsh code vs. Multiple codes (as in CDMA)

I did a really quick look at the ZigBee protocol, and it appears that you are misinterpreting what you're seeing.  Based on the diagram in the section "2450 Phy...

Re: Goertzel filter with decay?

I'll try not to rant about the Goertzel.  It's a perfectly good algorithm, except that it is really a special case of a resonator with infinite Q.You want a nice...

Re: Overlap-Save Size for M-1 Points

Groger, you do not say what you consider "Nyquist rate" to be in this context.  Given that it could be just about anything from 10Hz to light, I think you need...

Use this form to contact Tim Wescott

Before you can contact a member of the *Related Sites:

• You must be logged in (register here)
• You must confirm you email address