[ot][spam][random][crazy][random][crazy]
Undescribed Horrific Abuse, One Victim & Survivor of Many
gmkarl at gmail.com
Sun Nov 13 05:42:06 PST 2022
it's hard to look at all the parts of the test code before the matrix approach
maybe i can pull out juts the test data
there was a lot of references to graphics too
...0827 i'm working in a new file
0833 i'm kind of funny. things are funny.
notes debugging new file
seeding random to 0, set size to 16 for debuggin
(Pdb) list
11
12 waveform_N = 16 #256 #16
13 recording_N = 16 #256
14 waveform = np.random.random(waveform_N)
15 max_period = np.random.random() * waveform_N // recording_N ** 0.5 * 2
16 -> sample_idcs = np.arange(recording_N) / recording_N * max_period
17 recording = sample_sinusoids_funny(waveform, sample_idcs, max_period)
18
19 waveform_freq_2_recording_time =
fourier.create_freq2time(max_period, recording_N, waveform_N,
recording_N)
20 waveform_freq_reconstructed =
np.linalg.solve(waveform_freq_2_recording_time, recording)
21 waveform_reconstructed = np.fft.ifft(waveform_freq_reconstructed)
(Pdb) p waveform
array([0.5488135 , 0.71518937, 0.60276338, 0.54488318, 0.4236548 ,
0.64589411, 0.43758721, 0.891773 , 0.96366276, 0.38344152,
0.79172504, 0.52889492, 0.56804456, 0.92559664, 0.07103606,
0.0871293 ])
(Pdb) p max_period
0.0
The theory is that max_period is the length that each instance of
"waveform" takes up within "recording". "waveform" is a repeating
signal to extract the spectrum of.
max_period should not be 0. that is a definite glitch.
i changed its fudge
(Pdb) list
11
12 waveform_N = 16 #256 #16
13 recording_N = 16 #256
14 waveform = np.random.random(waveform_N)
15 max_period = 1 + np.random.random() * (waveform_N - 1) /
(recording_N - 1) ** 0.5 * 2
16 -> sample_idcs = np.arange(recording_N) / recording_N * max_period
17 recording = sample_sinusoids_funny(waveform, sample_idcs, max_period)
18
19 waveform_freq_2_recording_time =
fourier.create_freq2time(max_period, recording_N, waveform_N,
recording_N)
20 waveform_freq_reconstructed =
np.linalg.solve(waveform_freq_2_recording_time, recording)
21 waveform_reconstructed = np.fft.ifft(waveform_freq_reconstructed)
(Pdb) p waveform
array([0.5488135 , 0.71518937, 0.60276338, 0.54488318, 0.4236548 ,
0.64589411, 0.43758721, 0.891773 , 0.96366276, 0.38344152,
0.79172504, 0.52889492, 0.56804456, 0.92559664, 0.07103606,
0.0871293 ])
(Pdb) p max_period
1.1566110331467683
looks like I am calculating sample_idcs wrongly (0837)
(Pdb) n
> /shared/src/scratch/test2_upsamplish.py(17)<module>()
-> recording = sample_sinusoids_funny(waveform, sample_idcs, max_period)
(Pdb) p sample_idcs
array([0. , 0.07228819, 0.14457638, 0.21686457, 0.28915276,
0.36144095, 0.43372914, 0.50601733, 0.57830552, 0.65059371,
0.7228819 , 0.79517009, 0.86745827, 0.93974646, 1.01203465,
1.08432284])
sample_idcs should be the points at which to evaluate waveform, to
simulate it being sampled into recording. the numbers should increase
more rapidly than y=x, but they are increasing less, so i must have an
inverted ratio for it.
16 sample_idcs = np.arange(recording_N) / recording_N * max_period
oops !
uhhh
it goes to recording_N . it will end up going higher than that when done right.
each max_period in recording_N, we want it to hit waveform_N .
i'm trying this:
sample_idcs = np.arange(recording_N) / max_period * waveform_N
More information about the cypherpunks
mailing list