Nissarna läser användarvillkoren och bestämmer sig för att godkänna dom. Merlin i datorn skriver:
Bra val...
Modemet är aktiverat...
Lycka till...
Nu ska jag ta mig en tupplur...
Härligt! Nu behöver ni bara koppla upp er mot Sydpolen och kalibrera Den Stora Stygg-Eller-Snäll Datorns (DSSESD) sensorer! De kör uppstartsprogrammet och DSSESD spottar ur sig:
Startar upp...
Startar stygghetssensorn...
Kollar kaliberering...
Kalibrering: DÅLIG
Initialiserar kalibrering...
Kopplar upp...
Modem startar...
OK
Ansluter till Sydpolen...
Nissarna sitter nu och håller tummarna för att det ska gå vägen... 10 sekunder passerar... 20 sekunder... 30 sekunder... En minut har nu gått utan att något nytt skrivits ut.
ANSLUTEN
Startar kalibreringsprocessen...
Polkagrisarna riktas...
OK
Tomtegröt städas bort...
OK
Höstnougaten tas bort ur Aladdinasken...
OK
Utför testmätning...
OK
Jämför med Sydpolen...
ERROR: STÄMMER EJ ÖVERRENS
MANUELL HANTERING KRÄVS
Åh nej! Ni som var så nära! Datorn spottar nu ur sig mätvärdena för Nord- respektive Sydpolen. De måste gås igenom och korrigeras:
0.999 -0.500
0.822 -0.995
0.383 -0.327
-0.177 0.724
-0.681 0.928
-0.969 0.048
-0.949 -0.889
-0.628 -0.786
-0.108 0.236
0.447 0.982
0.860 0.580
0.998 -0.342
0.351 -0.796
-0.706 -0.997
-0.938 -0.881
-0.073 -0.486
0.877 0.063
0.801 0.593
-0.211 0.934
-0.977 0.979
-0.601 0.713
0.478 0.220
0.995 -0.866
-0.245 0.690
-0.925 -0.458
0.508 0.189
0.780 0.095
-0.730 -0.372
-0.572 0.618
0.893 -0.815
0.318 0.945
-0.984 -0.999
-0.038 0.972
0.990 -0.643
-0.754 -0.667
-0.003 0.833
0.758 0.430
-0.989 -0.955
0.538 -0.158
0.285 1.000
-0.911 -0.127
0.908 -0.964
-0.279 0.401
-0.543 0.850
0.985 -0.766
-0.994 0.016
0.922 0.745
-0.776 -0.992
0.567 0.554
-0.312 0.266
0.032 -0.903
0.251 0.916
-0.514 -0.297
0.735 -0.527
-0.896 0.987
DSSESD har många olika sensorer och samma uppsättning sensorer finns på Sydpolen. Alla sensorer har mätt under samma tidsperiod med en mätfrekvens på 11 Hz. De är representerade som block med mätserierna från Nord- och Sydpolen bredvid varandra.
T.ex:
1.0 2.0
3.0 4.0
5.0 6.0
1.3 2.3
3.3 4.3
5.3 6.3
Det här är två sensorer med mätvärden från vardera plats.
Sensor 1 har mätserie [1.0, 3.0, 5.0] från Nordpolen och [2.0, 4.0, 6.0] från Sydpolen.
Och sensor 2 har mätserie [1.3, 3.3, 5.3] från Nordpolen och [2.3, 4.3, 6.3] från Sydpolen.
Men det verkar som att sensorerna har förväxlats! Vid närmare inspektion verkar mätserierna som står bredvid inte stämma överrens. Dom har olika frekvenser! Det måste ha skett någon form av förväxling mellan dom. Så ni måste verifiera hur illa det är.
För varje sensor, räknas ut differensen i frekvens mellan de två mätserierna och avrunda till närmaste heltal. Vad är summan av differensernas absolutbelopp?
Det är Fouriertransformen som gäller här. Här har några användbara variabler:
signal: list[float] # Calculate FFT fft = np.fft.rfft(signal) # Calculate the frequencies at each index in the FFT frequencies = np.fft.fftfreq(len(signal), time_between_samples) frequencies = frequencies[frequencies >= 0] # filter out negative frequencies # Calculate magnitude of each frequency magnitudes = np.abs(fft) # Calculate phase shift of each frequency phase_shifts = np.angle(fft)