3 ms·
Does it still work to FST -> filter -> FST if you use an odd filter (or any filter that shifts the phase)? You are encoding the real part in the even part of th
by version_five 5y ago
Does it still work to FST -> filter -> FST if you use an odd filter (or any filter that shifts the phase)? You are encoding the real part in the even part of the spectrum and the imaginary part in the odd, so I think it will go wrong with any kind of phase shift in the filter (equivalently, that would introduce an imaginary part in the time domain signal, which your solution doesn't allow).
So you need to add the condition of a symmetrical filter transfer function. Otherwise, it does seem like a useful shortcut. I have never seen it presented before, but that may be because of the caveats it would have.
- sillysaurusx 5y agoAhh, you're right. Thank you for spotting that. I was excited that the Hamming window seemed to work for filtering, but I never tried e.g. taking the FST of an impulse filter, multiplying by the FST of an image, then running the result through FST again. There do seem to be some behavior differences for even vs odd numbered filters. And the "identity" filter is very strange: >>> fst2(fst2(tensor([[5**0.5,0,0,0,0]])) * fst2(tensor([[0,1,2,3,4]]))) [[0,1,2,3,4]] Interestingly, there do seem to be equivalents for shifting around the components, e.g. >>> fst2(fst2(tensor([[0, 0, 1, 0]])) * fst2(tensor([[0,1,0,0]]))) [[0,0,0,0.5]] But, you're right, the relation is much less clear than I originally thought. I'll spend more time on this to try to work out what the exact equivalencies are.