Hacker News new | ask | show | jobs
by hellabites 3611 days ago
This can be rather difficult for general data where an explicit equation isn't obvious (even though it'll work quite often as pointed out by johncolanduoni below).

[I think it's neat that] for sufficiently smooth and periodic data, a Fourier transform will do exactly this (decompose a function into its even and odd parts)!

1 comments

I'm confused. If you have a table of data where one of the columns varies from -A to A, what is the difficulty in calculating the odd and even parts by just adding (resp. subtracting) the values at x and -x and dividing by two? Even if you don't have a precisely symmetric span of x values you can use simple interpolation as long as your data points are reasonably dense.

Fourier analysis seems to be overkill in this case, unless I'm missing something.

Your algorithm had a bit of a typo--you want to subtract (resp. add) to calculate the odd and even parts of a function.

If you don't have a nearly symmetric span of x values, you may need to do extrapolation to obtain one, which may be difficult.

I brought up Fourier analysis not as a means to replace the decomposition described in the blog, but to connect it. I think it's neat that Fourier transformations can be viewed as a parity decomposition.

if your data are over [a,b], where a < 0 and b > 0, you can do the decomposition mentioned in the article over [-c,c], where c = min(|a|,|b|), so you don't need to extrapolate.