Hi Bruce,

I've had a go at fixing (19), which is now (21), with some more explanation:
  https://github.com/drowe67/codec2/pull/50/files

Cheers,
David

On Fri, 2024-04-19 at 18:38 +0800, david wrote:
> Hi Bruce,
> 
> Thanks for reading codec2.pdf, and your kind comments.  
> 
> Actually I think you've found an error. For that section I was
> working
> back from the source code, sine.c, est_voicing_mbe()
> function.  Looking
> at the source, the "offset" variable has a negative sign before the
> "mr" term you suggested in your analysis. 
> 
> Note the source uses different variable names to codec2.pdf, we
> haven't gotten around to aligning the source code with the document
> nomenclature yet.
> I'm travelling at the moment, but will take a closer look when I
> return
> home in a week or so.
> 
> Thanks,
> David
> 
> On Thu, 2024-04-18 at 11:19 -0400, Bruce MacKinnon wrote:
> > Hi:
> > 
> > What you all are working on is very interesting.  Keep up the great
> > work!
> > 
> > I greatly appreciate the creation of the detailed description of
> > codec2 (https://github.com/drowe67/codec2/blob/main/doc/codec2.pdf)
> > .
> >  With that document, the code becomes easier to follow.  But I have
> > a
> > question about the math.  I’m not that sharp on DSP stuff, so this
> > may be an obvious question to you all. If this is the wrong place
> > to
> > ask, feel free to redirect me.
> > 
> > Page 14, equation 18 makes sense to me - you’re trying to
> > characterize the relationship between Sw() and W() within each band
> > of Sw().  And the W*(k - ROUND(mr)) also makes sense, since you
> > need
> > to remove the “repeating” concept from W() - a spectral copy of W()
> > is present across the bands of Sw() in the voiced case.  It’s like
> > a
> > modulo w0.
> > 
> > And the fact that the W* becomes W in equation 19 also makes sense
> > -
> > real/even in the time domain gives you real in the frequency
> > domain.
> > 
> > But I can’t figure out how (k - ROUND(mr)) becomes (k + ROUND(mr))
> > in
> > equation 19.  Certainly W(k - ROUND(mr)) and W(-k + ROUND(mr)) are
> > the same (even function in frequency domain), but how does W(k -
> > ROUND(mr)) equal W(k + ROUND(mr))?
> > 
> > I’m probably missing some property of the FFT that makes this true.
> > 
> > Thanks in advance,
> > 
> > Bruce KC1FSZ
> > 
> > 
> > 
> > 
> > _______________________________________________
> > Freetel-codec2 mailing list
> > Freetel-codec2@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/freetel-codec2
> 
> 
> _______________________________________________
> Freetel-codec2 mailing list
> Freetel-codec2@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/freetel-codec2



_______________________________________________
Freetel-codec2 mailing list
Freetel-codec2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freetel-codec2

Reply via email to