| *** 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!