2 ms·
This article is actually good at that. Don't look too much at the Greek letters, look at the tables and code instead. A DCT is just a bunch of multiplications,
by GuB-42 3y ago
This article is actually good at that.
Don't look too much at the Greek letters, look at the tables and code instead. A DCT is just a bunch of multiplications, additions and a lookup table. The approach to derive the Walsh-Hadamard transform is actually very computer sciencey. It is made using a recursive algorithm, it then takes advantage of the fact that a+b==b+a to reorder the rows. There is even a trick that uses a bitwise AND.
As a programmer I find it much easier to start from here: tables, loops, and simple operations like multiplication and addition. And when I finally understand how a computer does the thing, maybe go back to the maths to see if I can get more insight.
In the end, the only appropriate answer is "get good at maths". The question is how to achieve that. And if you have a programmer mindset like I do (and I guess like many people here) and struggle with maths, I recommend trying the bottom up approach. Write the code, have it actually show visuals and play sounds, play with the parameters and see what changes and what doesn't change.
The other part is overcoming the language barrier, I am still struggling with that. Mathematicians use barbaric name like eigenvectors for "stuff that won't change", they call "integration" an addition in a loop and write it with a weird sigma thing, or a weird "S" thing when there are a lot of iterations over very small numbers. But in the end, it is not that different from reading Perl :)