section 29 bug
DOCX · 104.1 KB
Open DOCX file
Informal scratch notes by Phil dated 5.8.13, kept in the unused-material folder of his Spectral Theory book. He checks equations in Sections 29 and 30 for a low pass filter built from a sinc impulse response, sorting out the clock rate Δt = T1/4, the 4x oversampling and a missing factor of 1/4 in his code. Also covers box-pulse transforms, figure labeling and edits to related files. The equations are partly garbled in extraction.
AI-written summary; may contain errors. This description is approximate.
Extracted text (machine-read; may contain errors)
Bug in Section 29 PhL 5.8.13
I ended up rewriting pieces of Section 20 today, below are some scribblings done during that process. I am not sure what the "bug" was here, but something was definitely confused and I think it is all cleared up now.
In Section 29 I create a low pass filter which does this
o(tn) = !Syntax Error, I ∆t b(tn - tm) i(tm) where tn = n ∆t . (21.4)
where Δt is the clock rate for the filter which could be anything. Then at Example I write down this set of parameters,
T1 = 1
ω1 = 2π/T1 = 2π
ωc = ω1/2 = π
Δt = T1/4 = 1/4 (29.6)
I am intending that T1 be the usual 1x clock rate, and Δt correspond to the 4x clock rate. So I guess this is all OK. The plot of Fig 29.2 shows that the points are on the sinc curve, that is the main point, and index n is multiplies of 1/4 time units.
Then (29.4) correctly uses (29.5) with Δt = 1/4, and then the hardware is correct and it also says we are clocking at 4x.
Where does (29.9) come from? It is from (29.2) where I set t = mΔt, and so Δt = 1/4 is my intent, and we have the 21 taps as shown, so I think (29.9) is OK.
Where does my quoted (29.3) come from? Very confused. Resume right here after food buy!
a(tn) = !Syntax Error, I∆t b(tn - tm) c(tm) tn = n ∆t (22.6)
a(tn) = !Syntax Error, I∆t c(tn - tm) b(tm) tn = n ∆t (22.6)sym
I am trying to apply this to my 4x digital filter which has the bm as coefficients. Then c would be the input to that filter and a would be the output, so I might write the above equation as
yout(tn) = !Syntax Error, I∆t yz(tn - tm) b(tm) tn = n ∆t (22.6)sym
This is what my code says, but the code uses Δt = 1 and somehow gets the right answer. I think my yz is scaled properly (I have examined some samples). And my bm are for the 4x filter, so they seem to be right. So why, if I use ∆t = 1/4, does yout come out being 4x too small?
Start Over.
Go back to (30.1,2,3). These apply to Fig 30.1 where box width is T1.
What would these three equations be if they were applied to sequence yz(n) of Fig 30.8 with the 4x clock rate? Here is what I think they would be:
x(t) = !Syntax Error, I (yz)n x'pulse(t - tn) tn = n T1/4 (30.1)
X(ω) = (4/T1) X'pulse(ω) Y'(ω) , (30.2)
Y'(ω) ≡ (T1/4)!Syntax Error, I (yz)n e-iωnT/4 . (30.3)
where x'pulse(t) is the box of width T1/4 left aligned at t = 0 and then X'pulse(ω) is this from (9.2) with A=1,
X(ω) = e-iωT/2 (Aτ) sinc(ωτ/2) τ = width of box (9.2)
X'(ω) = e-iωT/8 (1 * T1/4 ) sinc(ωT1/8) . (9.2)'
where τ = T1/4.
Start Over Again. I am trying to get labels on the pictures so they make some kind of sense. Here is one approach.
In all designs, the output is called y(t). In all but the first, tn = nT1/4. I then have these figures:
first design output = Fig 30.1
second design output = Fig 30.6
third design output = Fig 30.8
With these drawings, how do I view the digital filter? Normally for a filter I might say (29.3)
on = !Syntax Error, I ∆t bn-m im = !Syntax Error, I ∆t in-m bm (29.3)
where I am using my specific bm and Δt = T1/4. I don't want to burden my reader with details of the digital filter delay (see Fig 29.3), and delays in general. I just want to make the main points.
Let's start reading again at the start of Section 30 and try to make it fly.
Start Yet Again.
I have edited spectral doc and oversample.mws to make various corrections. I am now happy with sections (a), (b), and (c), and no qualitative conclusions have been altered.
But now I have to deal with the digital filter in subsection (d). It is now 4:30 PM, this is where I will resume. This is going to be a lost day in my effort to get this thing out the door, but there were errors and there are still some left. Buffy needs an oven fix tomorrow. // continuing now...
I am down to ok to here in section (d). I make reference to (29.5) which is this:
on = !Syntax Error, I ∆t in-m bm . (29.5)
where Δt = T1/4 since everything is at 4x rate, filter and its input. I think this becomes
(yout)n = !Syntax Error, I (1/4) (yz)n-m bm (29.5)
but I omit the (1/4) in my code.