*** tpb has joined #yosys | 00:00 | |
*** pie__ has joined #yosys | 00:09 | |
*** pie_ has quit IRC | 00:10 | |
emeb | ZipCPU: your Harris link is borken: http://zipcpu.com/dsp/2018/03/30/ieeexplore.ieee.org/document/679201 | 00:44 |
---|---|---|
*** digshadow has quit IRC | 01:13 | |
*** jkiv has joined #yosys | 01:13 | |
ZipCPU | emeb: Is it? Thanks! Let me go double check on it ... | 01:21 |
ZipCPU | Sure is ... | 01:22 |
*** jkiv has quit IRC | 01:22 | |
*** jkiv has joined #yosys | 01:23 | |
emeb | ZipCPU: Nice article though - I've been doing FPGA & ASIC DSP for many years and have used variations of those polynomial interpolators in a lot of places. | 01:24 |
ZipCPU | Out of curiosity, have you ever seen this approach before? | 01:24 |
emeb | The ones I did were similar = a set of CSD-based FIR filters to compute the coefficient terms, then a chain of multiply/add functions to compute the polynomial. | 01:26 |
emeb | I usually did 4th-order interpolators based on a paper published back in the 90's by some Finnish guys. | 01:26 |
ZipCPU | yeah, the 3rd and 4th order filters do get a quite rapid increase in performance--but there is (of course) a cost associated with them | 01:27 |
emeb | Here's an open paper from Jussi Vesma who did the one I used - http://www.cs.tut.fi/kurssit/TLT-5806/Interpol.pdf | 01:27 |
* ZipCPU looks it up, and is surprised to find a full paper with no login required | 01:28 | |
emeb | I know, right? | 01:28 |
jkiv | > Interpol.pdf | 01:28 |
jkiv | evening, all | 01:30 |
ZipCPU | Interpol via Wikipedia ... The International Criminal Police Organization | 01:30 |
jkiv | (well, depending on where you are.) | 01:30 |
emeb | When I first started working with those we were building ASIC-based video modems, so we had a lot of gates to throw around. Now of course you can buy FPGAs with equivalent performance for a few dollars. | 01:30 |
ZipCPU | Somehow I don't think that's what Interpol is referencing here. :D | 01:30 |
* ZipCPU goes back to browsing the article ... it has a fascinating introduction | 01:31 | |
emeb | Lately I've done interpolators running at audio rates on DSP microcontrollers, but those are based on sinc (bandlimited) interpolation as described by J.O. Smith -> https://ccrma.stanford.edu/~jos/resample/ | 01:34 |
tpb | Title: Digital Audio Resampling Home Page (at ccrma.stanford.edu) | 01:34 |
ZipCPU | I've looked at sinc interpolation. Never really liked it much. Just don't trust it at the interval edges. | 01:35 |
emeb | hmm | 01:35 |
emeb | It has much better frequency response than polynomial interpolation. | 01:35 |
emeb | better for audio | 01:35 |
ZipCPU | Piecewise polynomials, on the other hand ... don't nearly require as much memory, can be done with less computation, ... | 01:36 |
emeb | but sinc interpolation is not appropriate for hardware implementation | 01:36 |
ZipCPU | Yes. I see your point there. The filter I presented today can be a component of an ideal audio filter, but won't be that on its own. | 01:36 |
emeb | Right - you can put a nice "cleanup" FIR filter after it to get rid of the unwanted portion of the spectrum | 01:38 |
ZipCPU | "Interpolation is generally considered as a time domain polynomial fitting problem which is not very practical for DSP applications. This is because the time-domain characteristics of the signal are not known usually. What is known is the frequency band of the signal." ... nice | 01:39 |
ZipCPU | emed: Actually, in another design of mine, I have "cleanup" filters both before and after the polynomial filter for just that purpose. | 01:39 |
emeb | Makes sense. | 01:40 |
ZipCPU | Those cleanup filters are typically a combination of a CIC filter and something else, so its a cascaded rough filter with a further cleanup filter. | 01:40 |
emeb | When I do RF / SDR stuff I usually don't use any of these techniques though - Mainly I use CIC filters. | 01:40 |
ZipCPU | You know, that's the one thing I haven't really discussed how to build on the blog: a good CIC filter. | 01:40 |
emeb | They can't get you arbitrary resampling ratios, but usually you can work around that. | 01:40 |
emeb | CICs are worth a mention. | 01:41 |
emeb | At first they seem like magic until you look at all the little tricks that go into them. | 01:41 |
ZipCPU | I don't know ... I used a series of block averages as an anti-aliasing filter when doing a 1024/1023 resampler ... | 01:41 |
ZipCPU | "At first they seem like magic until you look at all the little tricks that go into them" <---- heheh! Good. See Clark's third law too. | 01:42 |
emeb | Yeah - they are sufficiently advanced. | 01:42 |
emeb | But the basic trick is just the old rectangular window implemented with a sum, delay and difference. Replace the delay with a rate change and whammo... | 01:43 |
ZipCPU | It is amazing how simple they become. | 01:43 |
emeb | Yeah - I have a 2-channel 256x decimation CIC that fits into a Lattice LP4k with room to spare. | 01:44 |
emeb | https://github.com/emeb/iceRadio | 01:45 |
tpb | Title: GitHub - emeb/iceRadio: C and Verilog sources for STM32F303 + iCE5LP4K Software Defined Radio (at github.com) | 01:45 |
ZipCPU | I should hope room to spare! The goal is usually to do more than just filtering within an FPGA application ... | 01:45 |
ZipCPU | Oh, you're the guy doing the iceRadio work? | 01:45 |
emeb | That's me. | 01:45 |
ZipCPU | Welcome to the channel/discussion/forum! It's a pleasure meeting you. | 01:46 |
* jkiv stars | 01:46 | |
emeb | Thanks! Good to be here. | 01:46 |
* ZipCPU browses ebrombaugh.studionebula.com/radio/iceRadio/index.html | 01:47 | |
ZipCPU | emeb: Is the circuit board for iceRadio of your own design? | 01:48 |
emeb | ZipCPU: Yes | 01:48 |
ZipCPU | Cool. | 01:48 |
emeb | OK - nice chatting. Gotta run | 01:52 |
ZipCPU | Sure! It's getting late here, and ... I'm still reading that article. (Good article) | 01:53 |
*** xrexeon has quit IRC | 02:01 | |
ZipCPU | emeb: When you get back, just wanted to share that that was an awesome article. Thanks! | 02:10 |
emeb | ZipCPU: the interpolator one? Yeah - worth saving. | 02:36 |
awygle | oo, iceradio | 02:38 |
jkiv | any tips for reducing LUT use? lol | 02:38 |
jkiv | initial version of my project was < 7860 req for 8k. after "optimizing" I find myself at 8000+ | 02:39 |
jkiv | haha | 02:39 |
*** gaussalpha has quit IRC | 02:39 | |
emeb | perhaps you optimized for something other than utilization? | 02:43 |
emeb | :) | 02:43 |
*** digshadow has joined #yosys | 02:49 | |
*** emeb has quit IRC | 02:54 | |
*** m_w has quit IRC | 03:09 | |
*** emeb_mac has joined #yosys | 03:24 | |
*** proteusguy has quit IRC | 04:01 | |
*** cemerick_ has quit IRC | 04:11 | |
*** gaussalpha has joined #yosys | 04:17 | |
*** jkiv has quit IRC | 04:47 | |
*** digshadow has quit IRC | 05:20 | |
*** dys has joined #yosys | 05:36 | |
*** AlexDaniel has quit IRC | 05:52 | |
*** dys has quit IRC | 06:18 | |
*** digshadow has joined #yosys | 06:21 | |
*** emeb_mac has quit IRC | 07:00 | |
*** xerpi has joined #yosys | 07:04 | |
*** dmin7 has joined #yosys | 08:38 | |
*** xrexeon has joined #yosys | 09:14 | |
*** indy has quit IRC | 09:18 | |
*** indy has joined #yosys | 09:26 | |
*** mjo_uk_ has quit IRC | 09:33 | |
*** mjo-uk has joined #yosys | 09:37 | |
*** xerpi has quit IRC | 09:37 | |
*** leviathan has joined #yosys | 09:47 | |
*** leviathan has quit IRC | 09:49 | |
*** leviathanch has joined #yosys | 09:49 | |
*** GuzTech has joined #yosys | 10:39 | |
*** eduardo_ has joined #yosys | 11:08 | |
*** eduardo__ has quit IRC | 11:12 | |
*** cemerick has joined #yosys | 11:20 | |
*** cemerick_ has joined #yosys | 11:22 | |
*** cemerick has quit IRC | 11:25 | |
*** cemerick_ has quit IRC | 11:46 | |
*** dmin7 has quit IRC | 12:51 | |
*** xerpi has joined #yosys | 13:43 | |
*** AlexDaniel has joined #yosys | 14:02 | |
*** proteusguy has joined #yosys | 14:31 | |
*** dmin7 has joined #yosys | 14:42 | |
*** xrexeon has quit IRC | 15:06 | |
*** promach_ has joined #yosys | 15:08 | |
*** xerpi has quit IRC | 15:47 | |
*** emeb has joined #yosys | 16:10 | |
*** cemerick_ has joined #yosys | 18:15 | |
*** jkiv has joined #yosys | 18:18 | |
*** cemerick has joined #yosys | 19:06 | |
*** cemerick_ has quit IRC | 19:09 | |
*** jkiv has quit IRC | 19:15 | |
*** gaussbeta has joined #yosys | 19:23 | |
*** gaussalpha has quit IRC | 19:23 | |
*** cemerick_ has joined #yosys | 19:33 | |
*** cemerick has quit IRC | 19:37 | |
*** cemerick_ has quit IRC | 19:38 | |
*** cemerick has joined #yosys | 19:38 | |
*** cemerick_ has joined #yosys | 19:42 | |
*** cemerick has quit IRC | 19:46 | |
*** gaussbeta has quit IRC | 19:51 | |
*** cemerick_ has quit IRC | 20:00 | |
*** cemerick_ has joined #yosys | 20:14 | |
*** indy has quit IRC | 20:39 | |
*** indy has joined #yosys | 20:42 | |
*** cemerick has joined #yosys | 20:44 | |
*** cemerick_ has quit IRC | 20:46 | |
*** mjo-uk has quit IRC | 20:49 | |
*** cemerick has quit IRC | 20:51 | |
*** gaussalpha has joined #yosys | 20:56 | |
*** gaussalpha has quit IRC | 21:17 | |
*** gaussalpha has joined #yosys | 21:18 | |
*** jkiv has joined #yosys | 21:27 | |
*** dmin7 has quit IRC | 21:33 | |
*** jkiv has quit IRC | 21:35 | |
*** promach_ has quit IRC | 21:49 | |
*** cemerick has joined #yosys | 21:55 | |
*** leviathanch has quit IRC | 22:28 | |
*** GuzTech has quit IRC | 22:56 | |
*** cemerick has quit IRC | 23:14 |
Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!