8 ms·
Repost as a semi-useful thread below didn't meet humor standards and people who aren't logged into HN should see it, too. If you need an FIR filter, click here
by tacos 10y ago
Repost as a semi-useful thread below didn't meet humor standards and people who aren't logged into HN should see it, too.
If you need an FIR filter, click here and push the button. Generates the code too.
http://t-filter.engineerjs.com/ http://t-filter.engineerjs.com/
Also if you don't know what you're talking about, kindly refrain from wandering into it in the middle of an article that might otherwise be useful. "An Intro To Beamforming" is a hell of a lot stronger if it doesn't have several flaming errors about basic DSP processing in the middle of it. Those sorts of errors may cause experts discovering you for the first time to avoid your project, not devote time to fixing it.
- amluto 10y agoSad that the thread got flagged into oblivion. > There is a fair amount of academic work describing methods to perform filtering on a sample to provide a fractional delay. One common way is to apply an FIR filter. However, to keep things simple, the method I chose was the Thiran approximation — the literature suggests that it performs the task reasonably well, and has the advantage of not having to spend a whole lot of CPU cycles first transforming to the frequency domain (which an FIR filter requires). I'm not a real DSP expert by any stretch of the imagination, but applying an FIR filter does not require transforming to the frequency domain. To the contrary: a basic FIR filter just means that the ith output sample is a[0]x[i] + a[1]x[i-1] + a[2]x[i-2] + ... + a[N-1]x[i-N+1] where x is the input, a is the filter coefficients, and N+1 is the (finite) length of the filter. (If the input is all zeros except that x[0]=1, then the input is an impulse and a is the output, i.e. the impulse response. Hence the name: Finite Impulse Response.) Some very long FIR filters are more efficient to apply by Fourier transforming the input, but that's almost certainly not the case here. It's worth noting that FIR filters vectorize very nicely. (My FIR description isn't quite 100% accurate. I described only the discrete-time causal case. If you drop the causality requirement (which is fine but can be awkward in real-time processing) then you add negative indices to a. If you switch to continuous time, you end up with a convolution instead of a sum of products.)
- arunarunarun 10y agoThanks for the explanation. I've corrected the post to not assert that the FFT is necessary.
- reitanqild 10y ago> Sad that the thread got flagged into oblivion. I sometimes feel the PC threshold is a bit high in some threads. In this case however even I felt the snark level was painful. As a productive engineer I often put out internal tools or POCs that would be possible to snark at in this way. I do however expect that people improve them or explain the better way instead of posting dismissive comments on what this guy has done on top of his open source contributions. That said: I'm happy to see it reposted although I would prefer if he removed the defence for his previous post as it did add confusion to the new post as well.
- dang 10y agoI see a lot of rudeness on Hacker News, but your comments in this thread went past careless rudeness. You were a genuine asshole. It doesn't matter how mistaken the other person was, or how far short of your technical glory they fall, you can't treat others like that here. Had this been a first offense, I would have posted something like: "If you know more than other people, the thing to do is provide correct information. Then we all learn." And I'd have pointed out that going on about "several flaming errors about basic[s]", without specifying what those errors actually are, is just a putdown that adds no real information. But you've done this many times before, we've given you many warnings already, and you've ignored them. That indicates that you don't want to use this site as intended, so I've banned your account.
- tacos 10y agoThe "several flaming errors" were previously mentioned here and as comments on his website (not by me). To detail them again could also be construed as piling on. You are reading this thread outside the timeline in which it occurred and taking the most negative possible connotation of my actions. Even in this thread people can't quite decide where my remarks lie on the spectrum. (I assure you this is not some game I'm playing to test the waters.) Likewise in a previous thread your banhammer was overruled by the community. I personally think you're overreacting (calling me a "genuine asshole" ... really, dang?) but I don't wish to cause you any additional stress by being an unintentional canary in this coal mine. I will however deduct a few points for waiting for the thread to die, zeroing out an upvoted comment containing useful information, then banning my account at 1am on a holiday weekend. I know you abhor off-topic meta discussion but, as a fellow moderator who handles forums far larger and friendlier than this one, that's pretty weak. Good luck, you have my word that I won't reappear under a different name.
- dang 10y agoI didn't call you an asshole; I said you had been one in this thread, which was a carefully circumscribed statement. I doubt very much that you are an asshole or even had a negative intention. But what you did is worse than most misbehavior on HN, because it cuts into what should be the heart of this place: substantive, respectful discussion about others' work. Worse, you'd done it repeatedly already, and been asked repeatedly to stop. That's why I chose a negative interpretation in this case. As for your procedural complaints, holiday weekends (what are those?) had nothing to do with it, 1am enters the picture because it wasn't until 1am that I had time to deal with yesterday's user flags, and there was no 'waiting for the thread to die'. It takes a long time to write comments like the one explaining why we were banning you. Had I wanted to shove this under the rug, I'd not have bothered. If you'd like to change your ways and treat others respectfully in comments here from now on, I'm more than happy to unban you. Other users have gone from posting assholish comments on a regular basis (I may even have been one myself) to becoming good citizens of this community. If you want to do that too, you're welcome here. But this requires sincerely accepting the model of how HN is supposed to work and doing your best to abide by it. When we give people repeated warnings and they ignore them, it's hard not to conclude that they have no intention of doing so.