Jay Kickliter wrote: > I'm actively developing that code at the moment, and haven't implemented > that yet. I still haven't decided how to do it. I could make it the user's > responsibility to ensure that the input is of a length that wouldn't have > any leftovers, but I'd like to handle it. I'm writing this code for my > needs, where I sometimes need to processes hundreds of GB of IQ data. I'd > prefer to just read a bit of file/stream, process it, and repeat without > thinking about input length. > > If you see anything else that doesn't make sense, please let me know. I've > spent months reading books and blog posts on multirate filtering, and it > only recently made sense to me. I never intended to handle interpolation, > decimation, and rational resampling in separate functions. I'd like to > combine them to make the code more manageable. I think resample() can > handle all of them, but I may need to change a few things. Next on the todo > list is arbitrary sample rate conversion (if I can ever read that chapter > of Fred Harris book without giving up). > > If you do a lot of DSP work and need speed, I also have IPPDSP.jl > <https://github.com/JayKickliter/IPPDSP.jl>. > > On Monday, August 4, 2014 3:40:07 PM UTC-6, Neal Becker wrote: >> >> Very interesting code. One question: >> >> It appears the variables "xleftover" (and similar) are never used? >> >>
My c++ code has separate classes for fir, decimation, and interpolation and I like the design. Only pay for what you need. I never use matlab, but AFAIK the filter design used there a major waste of cpu cycles, not taking advantage of efficient interpolation, decimation, or rational rate conversion. In the case of decimation, I do maintain state (leftover) between invocations of the filter. Sometimes I have needed this. I wrote python wrappers for IPP but abandoned it. I found IPP was causing memory corruption on my platform.
