[ot][spam][random][crazy][random][crazy]
Undescribed Horrific Abuse, One Victim & Survivor of Many
gmkarl at gmail.com
Thu Nov 10 14:13:53 PST 2022
so what is that like; what am i actually doing, and why doesn't it work?
i basically am producing fft output that is much larger than the input.
i'm probably multiplying by too few indices, and effectively producing
a rectangular matrix that is not symmetrical and doesn't produce the
back-migration needed to invert successfully.
1704
if i were to form the entire square matrix, how would i then multiply
it by the data?
this is a matrix for a 5-long vector:
>>> mat = np.exp(np.outer(np.array([0,1,2,3,4]), 2j * np.pi * np.fft.fftfreq(5)))
>>> np.angle(mat)*180 // np.pi
array([[ 0., 0., 0., -0., -0.],
[ 0., 72., 144., -144., -72.],
[ 0., 144., -73., 72., -144.],
[ 0., -145., 71., -72., 144.],
[ 0., -73., -145., 144., 72.]])
interestingly, the angles actually change if i provide the frequencies
in a different order, but they stay balanced with negative signs
around diagonal lines
>>> v * mat
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: operands could not be broadcast together with shapes (3,) (5,5)
well, that's a minor issue.
so, if i want to successfully reconstruct things here, i'll need each
angular behavior to be countered by an opposing angular behavior.
i'd like to include all the frequency data!
blrgh 1710
- i have 5 frequencies i want to think about
- there are only 3 inputs
- usually, each input is multiplied by each frequency. that's okay.
- the output is composed of what? each item summed, for each frequency, right?
i played around a little and it actually works fine if a rectangular
matrix is used
but a different region of the matrix is selected for the input and the output
and, notably, the denominator is the number of total frequencies, not
the number of values.
>>> v
array([0.0335134 , 0.56891046, 0.869467 ])
>>> ((v * mat[:,:3]).sum(axis=1) * mat[:3,:].conj()).real.sum(axis=1) / 5
array([0.0335134 , 0.56891046, 0.869467 ])
so, that denominator situation is probably the issue in my code. i can
also check the frequency products.
More information about the cypherpunks
mailing list