[READ-ONLY] Mirror of https://github.com/jmrplens/PyOctaveBand. [Python3] Octave-Band and Fractional Octave-Band filter. For signal in time domain. jmrplens.github.io/PyOctaveBand/
acoustics audio filter frequency frequency-analysis frequency-domain octave python3 signal time-domain
0

Configure Feed

Select the types of activity you want to include in your feed.

Time synchronous averaging of periodic waveforms in noise (McFadden 1987)

Add time synchronous averaging with the comb-filter model, exact-recovery and sqrt(N) noise-reduction behaviour, an EN/ES guide and conformance rows. Generalise MISO coherence to any number of correlated inputs and correct the scipy minimum-version wording.

authored by

José M. Requena Plens and committed by
GitHub
(Jul 21, 2026, 7:56 PM +0200) f4c97c16 c6819c30

+12244 -43
+2566
.github/images/synchronous_average.svg
··· 1 + <?xml version="1.0" encoding="utf-8" standalone="no"?> 2 + <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 3 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4 + <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="784.734687pt" height="323.916562pt" viewBox="0 0 784.734687 323.916562" xmlns="http://www.w3.org/2000/svg" version="1.1"> 5 + <metadata> 6 + <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 7 + <cc:Work> 8 + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> 9 + <dc:format>image/svg+xml</dc:format> 10 + <dc:creator> 11 + <cc:Agent> 12 + <dc:title>Matplotlib v3.11.1, https://matplotlib.org/</dc:title> 13 + </cc:Agent> 14 + </dc:creator> 15 + </cc:Work> 16 + </rdf:RDF> 17 + </metadata> 18 + <defs> 19 + <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> 20 + </defs> 21 + <g id="figure_1"> 22 + <g id="patch_1"> 23 + <path d="M 0 323.916562 24 + L 784.734687 323.916562 25 + L 784.734687 0 26 + L 0 0 27 + z 28 + " style="fill: #ffffff"/> 29 + </g> 30 + <g id="axes_1"> 31 + <g id="patch_2"> 32 + <path d="M 42.942969 285.715781 33 + L 379.220625 285.715781 34 + L 379.220625 26.318125 35 + L 42.942969 26.318125 36 + z 37 + " style="fill: #ffffff"/> 38 + </g> 39 + <g id="matplotlib.axis_1"> 40 + <g id="xtick_1"> 41 + <g id="line2d_1"> 42 + <path d="M 42.942969 285.715781 43 + L 42.942969 26.318125 44 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 45 + </g> 46 + <g id="line2d_2"> 47 + <defs> 48 + <path id="m3d27035b55" d="M 0 0 49 + L 0 3.5 50 + " style="stroke: #000000; stroke-width: 0.8"/> 51 + </defs> 52 + <g> 53 + <use xlink:href="#m3d27035b55" x="42.942969" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 54 + </g> 55 + </g> 56 + <g id="text_1"> 57 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="42.942969" y="300.313437" transform="rotate(-0 42.942969 300.313437)">0</text> 58 + </g> 59 + </g> 60 + <g id="xtick_2"> 61 + <g id="line2d_3"> 62 + <path d="M 96.747394 285.715781 63 + L 96.747394 26.318125 64 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 65 + </g> 66 + <g id="line2d_4"> 67 + <g> 68 + <use xlink:href="#m3d27035b55" x="96.747394" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 69 + </g> 70 + </g> 71 + <g id="text_2"> 72 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="96.747394" y="300.313437" transform="rotate(-0 96.747394 300.313437)">5</text> 73 + </g> 74 + </g> 75 + <g id="xtick_3"> 76 + <g id="line2d_5"> 77 + <path d="M 150.551819 285.715781 78 + L 150.551819 26.318125 79 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 80 + </g> 81 + <g id="line2d_6"> 82 + <g> 83 + <use xlink:href="#m3d27035b55" x="150.551819" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 84 + </g> 85 + </g> 86 + <g id="text_3"> 87 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="150.551819" y="300.313437" transform="rotate(-0 150.551819 300.313437)">10</text> 88 + </g> 89 + </g> 90 + <g id="xtick_4"> 91 + <g id="line2d_7"> 92 + <path d="M 204.356244 285.715781 93 + L 204.356244 26.318125 94 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 95 + </g> 96 + <g id="line2d_8"> 97 + <g> 98 + <use xlink:href="#m3d27035b55" x="204.356244" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 99 + </g> 100 + </g> 101 + <g id="text_4"> 102 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="204.356244" y="300.313437" transform="rotate(-0 204.356244 300.313437)">15</text> 103 + </g> 104 + </g> 105 + <g id="xtick_5"> 106 + <g id="line2d_9"> 107 + <path d="M 258.160669 285.715781 108 + L 258.160669 26.318125 109 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 110 + </g> 111 + <g id="line2d_10"> 112 + <g> 113 + <use xlink:href="#m3d27035b55" x="258.160669" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 114 + </g> 115 + </g> 116 + <g id="text_5"> 117 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="258.160669" y="300.313437" transform="rotate(-0 258.160669 300.313437)">20</text> 118 + </g> 119 + </g> 120 + <g id="xtick_6"> 121 + <g id="line2d_11"> 122 + <path d="M 311.965094 285.715781 123 + L 311.965094 26.318125 124 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 125 + </g> 126 + <g id="line2d_12"> 127 + <g> 128 + <use xlink:href="#m3d27035b55" x="311.965094" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 129 + </g> 130 + </g> 131 + <g id="text_6"> 132 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="311.965094" y="300.313437" transform="rotate(-0 311.965094 300.313437)">25</text> 133 + </g> 134 + </g> 135 + <g id="xtick_7"> 136 + <g id="line2d_13"> 137 + <path d="M 365.769519 285.715781 138 + L 365.769519 26.318125 139 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 140 + </g> 141 + <g id="line2d_14"> 142 + <g> 143 + <use xlink:href="#m3d27035b55" x="365.769519" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 144 + </g> 145 + </g> 146 + <g id="text_7"> 147 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="365.769519" y="300.313437" transform="rotate(-0 365.769519 300.313437)">30</text> 148 + </g> 149 + </g> 150 + <g id="text_8"> 151 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="211.081797" y="314.314219" transform="rotate(-0 211.081797 314.314219)">Time [ms]</text> 152 + </g> 153 + </g> 154 + <g id="matplotlib.axis_2"> 155 + <g id="ytick_1"> 156 + <g id="line2d_15"> 157 + <path d="M 42.942969 251.157791 158 + L 379.220625 251.157791 159 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 160 + </g> 161 + <g id="line2d_16"> 162 + <defs> 163 + <path id="mef640d9f3a" d="M 0 0 164 + L -3.5 0 165 + " style="stroke: #000000; stroke-width: 0.8"/> 166 + </defs> 167 + <g> 168 + <use xlink:href="#mef640d9f3a" x="42.942969" y="251.157791" style="stroke: #000000; stroke-width: 0.8"/> 169 + </g> 170 + </g> 171 + <g id="text_9"> 172 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="35.942969" y="254.95662" transform="rotate(-0 35.942969 254.95662)">−3</text> 173 + </g> 174 + </g> 175 + <g id="ytick_2"> 176 + <g id="line2d_17"> 177 + <path d="M 42.942969 215.553622 178 + L 379.220625 215.553622 179 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 180 + </g> 181 + <g id="line2d_18"> 182 + <g> 183 + <use xlink:href="#mef640d9f3a" x="42.942969" y="215.553622" style="stroke: #000000; stroke-width: 0.8"/> 184 + </g> 185 + </g> 186 + <g id="text_10"> 187 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="35.942969" y="219.352451" transform="rotate(-0 35.942969 219.352451)">−2</text> 188 + </g> 189 + </g> 190 + <g id="ytick_3"> 191 + <g id="line2d_19"> 192 + <path d="M 42.942969 179.949453 193 + L 379.220625 179.949453 194 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 195 + </g> 196 + <g id="line2d_20"> 197 + <g> 198 + <use xlink:href="#mef640d9f3a" x="42.942969" y="179.949453" style="stroke: #000000; stroke-width: 0.8"/> 199 + </g> 200 + </g> 201 + <g id="text_11"> 202 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="35.942969" y="183.748282" transform="rotate(-0 35.942969 183.748282)">−1</text> 203 + </g> 204 + </g> 205 + <g id="ytick_4"> 206 + <g id="line2d_21"> 207 + <path d="M 42.942969 144.345285 208 + L 379.220625 144.345285 209 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 210 + </g> 211 + <g id="line2d_22"> 212 + <g> 213 + <use xlink:href="#mef640d9f3a" x="42.942969" y="144.345285" style="stroke: #000000; stroke-width: 0.8"/> 214 + </g> 215 + </g> 216 + <g id="text_12"> 217 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="35.942969" y="148.144113" transform="rotate(-0 35.942969 148.144113)">0</text> 218 + </g> 219 + </g> 220 + <g id="ytick_5"> 221 + <g id="line2d_23"> 222 + <path d="M 42.942969 108.741116 223 + L 379.220625 108.741116 224 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 225 + </g> 226 + <g id="line2d_24"> 227 + <g> 228 + <use xlink:href="#mef640d9f3a" x="42.942969" y="108.741116" style="stroke: #000000; stroke-width: 0.8"/> 229 + </g> 230 + </g> 231 + <g id="text_13"> 232 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="35.942969" y="112.539944" transform="rotate(-0 35.942969 112.539944)">1</text> 233 + </g> 234 + </g> 235 + <g id="ytick_6"> 236 + <g id="line2d_25"> 237 + <path d="M 42.942969 73.136947 238 + L 379.220625 73.136947 239 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 240 + </g> 241 + <g id="line2d_26"> 242 + <g> 243 + <use xlink:href="#mef640d9f3a" x="42.942969" y="73.136947" style="stroke: #000000; stroke-width: 0.8"/> 244 + </g> 245 + </g> 246 + <g id="text_14"> 247 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="35.942969" y="76.935775" transform="rotate(-0 35.942969 76.935775)">2</text> 248 + </g> 249 + </g> 250 + <g id="ytick_7"> 251 + <g id="line2d_27"> 252 + <path d="M 42.942969 37.532778 253 + L 379.220625 37.532778 254 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 255 + </g> 256 + <g id="line2d_28"> 257 + <g> 258 + <use xlink:href="#mef640d9f3a" x="42.942969" y="37.532778" style="stroke: #000000; stroke-width: 0.8"/> 259 + </g> 260 + </g> 261 + <g id="text_15"> 262 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="35.942969" y="41.331606" transform="rotate(-0 35.942969 41.331606)">3</text> 263 + </g> 264 + </g> 265 + <g id="text_16"> 266 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="14.798438" y="156.016953" transform="rotate(-90 14.798438 156.016953)">Amplitude</text> 267 + </g> 268 + </g> 269 + <g id="line2d_29"> 270 + <path d="M 42.942969 102.241685 271 + L 44.256553 60.357999 272 + L 45.570138 64.998338 273 + L 46.883723 120.619228 274 + L 48.197307 113.93945 275 + L 49.510892 121.270787 276 + L 50.824476 86.157267 277 + L 52.138061 106.005501 278 + L 53.451646 80.186207 279 + L 54.76523 162.844945 280 + L 56.078815 53.639859 281 + L 57.392399 106.609076 282 + L 58.705984 81.726645 283 + L 60.019568 107.835701 284 + L 61.333153 115.718897 285 + L 62.646738 89.102212 286 + L 63.960322 78.004772 287 + L 65.273907 111.431682 288 + L 66.587491 110.667603 289 + L 67.901076 84.922564 290 + L 69.214661 135.864611 291 + L 70.528245 157.897949 292 + L 71.84183 98.599297 293 + L 73.155414 134.514747 294 + L 74.468999 176.507959 295 + L 75.782584 143.434728 296 + L 77.096168 134.783574 297 + L 78.409753 160.500652 298 + L 79.723337 172.703759 299 + L 81.036922 126.585872 300 + L 82.350507 101.852861 301 + L 83.664091 140.704541 302 + L 84.977676 159.721377 303 + L 86.29126 126.318796 304 + L 87.604845 118.237598 305 + L 88.91843 153.107497 306 + L 90.232014 128.334534 307 + L 91.545599 114.415612 308 + L 92.859183 156.083933 309 + L 94.172768 176.946276 310 + L 95.486353 141.072524 311 + L 96.799937 145.182824 312 + L 98.113522 118.604299 313 + L 99.427106 195.018945 314 + L 100.740691 175.11349 315 + L 102.054276 180.440334 316 + L 103.36786 208.449523 317 + L 104.681445 148.161179 318 + L 105.995029 134.22072 319 + L 107.308614 173.325723 320 + L 108.622198 103.941501 321 + L 109.935783 120.248279 322 + L 111.249368 124.642824 323 + L 112.562952 129.947536 324 + L 113.876537 110.309677 325 + L 115.190121 181.418206 326 + L 116.503706 117.358685 327 + L 117.817291 115.87488 328 + L 119.130875 189.85099 329 + L 120.44446 120.731147 330 + L 121.758044 138.405747 331 + L 123.071629 104.248119 332 + L 124.385214 142.255538 333 + L 125.698798 128.089078 334 + L 127.012383 116.090306 335 + L 128.325967 154.826115 336 + L 129.639552 107.79884 337 + L 130.953137 130.612419 338 + L 132.266721 112.140356 339 + L 133.580306 145.393899 340 + L 134.89389 95.13492 341 + L 136.207475 111.80743 342 + L 137.52106 138.323629 343 + L 138.834644 114.123647 344 + L 140.148229 95.877704 345 + L 141.461813 80.814658 346 + L 142.775398 190.253828 347 + L 144.088983 113.81874 348 + L 145.402567 129.202651 349 + L 146.716152 149.064596 350 + L 148.029736 180.178773 351 + L 149.343321 109.767269 352 + L 150.656906 192.001444 353 + L 151.97049 135.271614 354 + L 153.284075 113.339004 355 + L 154.597659 207.396408 356 + L 155.911244 167.211797 357 + L 157.224828 200.449242 358 + L 158.538413 151.778746 359 + L 159.851998 111.998889 360 + L 161.165582 96.391919 361 + L 162.479167 218.336753 362 + L 165.106336 139.863273 363 + L 166.419921 112.184726 364 + L 169.04709 186.966318 365 + L 170.360674 153.92246 366 + L 171.674259 164.265134 367 + L 172.987844 170.637735 368 + L 174.301428 188.082321 369 + L 175.615013 152.874171 370 + L 176.928597 156.165001 371 + L 178.242182 169.878872 372 + L 179.555767 175.069263 373 + L 180.869351 210.281119 374 + L 182.182936 186.208463 375 + L 183.49652 133.76706 376 + L 184.810105 180.169413 377 + L 186.12369 222.011156 378 + L 187.437274 135.5109 379 + L 188.750859 163.415084 380 + L 190.064443 115.349781 381 + L 191.378028 183.077044 382 + L 192.691613 202.251875 383 + L 194.005197 236.203744 384 + L 195.318782 150.123143 385 + L 196.632366 112.710323 386 + L 197.945951 223.259846 387 + L 199.259536 219.844758 388 + L 200.57312 182.105875 389 + L 201.886705 229.426389 390 + L 203.200289 213.075475 391 + L 204.513874 216.869644 392 + L 205.827458 200.539967 393 + L 207.141043 172.369775 394 + L 208.454628 206.967781 395 + L 209.768212 178.328329 396 + L 211.081797 220.745288 397 + L 212.395381 196.186233 398 + L 213.708966 273.924979 399 + L 215.022551 250.602183 400 + L 216.336135 177.227168 401 + L 217.64972 219.554378 402 + L 218.963304 179.986555 403 + L 220.276889 178.753874 404 + L 221.590474 151.214366 405 + L 222.904058 164.721377 406 + L 224.217643 155.252315 407 + L 225.531227 188.295549 408 + L 226.844812 203.984405 409 + L 228.158397 201.99892 410 + L 229.471981 191.210939 411 + L 230.785566 208.77144 412 + L 232.09915 187.347885 413 + L 233.412735 170.140935 414 + L 234.72632 156.643025 415 + L 236.039904 173.194762 416 + L 237.353489 221.720712 417 + L 238.667073 160.744209 418 + L 239.980658 149.63694 419 + L 241.294243 120.851039 420 + L 242.607827 135.936092 421 + L 243.921412 174.099533 422 + L 245.234996 176.057772 423 + L 246.548581 88.355454 424 + L 247.862166 128.234166 425 + L 249.17575 93.927932 426 + L 250.489335 84.59156 427 + L 251.802919 179.039583 428 + L 253.116504 141.02902 429 + L 254.430089 139.195157 430 + L 255.743673 136.4927 431 + L 257.057258 137.607838 432 + L 258.370842 148.993136 433 + L 259.684427 150.370828 434 + L 260.998011 204.329876 435 + L 262.311596 161.946649 436 + L 263.625181 180.74415 437 + L 264.938765 152.913837 438 + L 266.25235 171.801862 439 + L 267.565934 136.89606 440 + L 268.879519 130.116565 441 + L 270.193104 145.889615 442 + L 271.506688 144.977983 443 + L 272.820273 151.297929 444 + L 274.133857 167.636544 445 + L 275.447442 157.55441 446 + L 276.761027 167.012236 447 + L 278.074611 137.615323 448 + L 279.388196 148.344824 449 + L 280.70178 129.014215 450 + L 282.015365 188.814758 451 + L 283.32895 116.884023 452 + L 284.642534 168.524076 453 + L 285.956119 166.649178 454 + L 287.269703 148.663413 455 + L 288.583288 159.656623 456 + L 289.896873 131.838849 457 + L 291.210457 159.124974 458 + L 292.524042 174.785678 459 + L 293.837626 167.680722 460 + L 295.151211 99.004814 461 + L 297.77838 179.234906 462 + L 299.091965 142.467488 463 + L 300.405549 193.367184 464 + L 301.719134 87.597849 465 + L 303.032719 194.616546 466 + L 304.346303 131.899426 467 + L 305.659888 131.132186 468 + L 306.973472 196.117929 469 + L 308.287057 141.513681 470 + L 309.600641 120.491057 471 + L 310.914226 138.54208 472 + L 312.227811 146.145096 473 + L 313.541395 125.011263 474 + L 314.85498 150.826701 475 + L 316.168564 145.638514 476 + L 317.482149 160.594881 477 + L 318.795734 136.263051 478 + L 320.109318 186.107073 479 + L 321.422903 130.057144 480 + L 322.736487 170.471972 481 + L 324.050072 187.847258 482 + L 326.677241 95.403655 483 + L 327.990826 116.555344 484 + L 329.30441 161.271485 485 + L 330.617995 119.809089 486 + L 331.93158 153.699013 487 + L 333.245164 140.069308 488 + L 334.558749 130.024877 489 + L 335.872333 203.561053 490 + L 337.185918 120.0503 491 + L 338.499503 155.642374 492 + L 339.813087 141.643485 493 + L 341.126672 163.128582 494 + L 342.440256 161.245476 495 + L 343.753841 139.843132 496 + L 345.067426 80.429386 497 + L 346.38101 50.867188 498 + L 347.694595 102.385984 499 + L 349.008179 64.471084 500 + L 350.321764 105.795855 501 + L 351.635349 156.734709 502 + L 352.948933 89.483295 503 + L 354.262518 78.928073 504 + L 355.576102 106.027181 505 + L 356.889687 82.146614 506 + L 358.203271 73.241824 507 + L 359.516856 119.081696 508 + L 360.830441 138.884088 509 + L 362.144025 99.204565 510 + L 363.45761 99.478113 511 + L 364.771194 104.750503 512 + L 366.084779 62.829468 513 + L 367.398364 40.209448 514 + L 368.711948 109.642109 515 + L 370.025533 75.061221 516 + L 371.339117 68.374373 517 + L 372.652702 76.662692 518 + L 373.966287 66.945901 519 + L 375.279871 113.715109 520 + L 376.593456 78.450276 521 + L 377.90704 38.108928 522 + L 377.90704 38.108928 523 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke: #e0e0e0; stroke-linecap: square"/> 524 + </g> 525 + <g id="line2d_30"> 526 + <path d="M 42.942969 103.578389 527 + L 44.256553 103.102484 528 + L 45.570138 103.527138 529 + L 46.883723 99.520969 530 + L 48.197307 108.184621 531 + L 49.510892 109.920275 532 + L 50.824476 103.653599 533 + L 52.138061 113.60295 534 + L 53.451646 104.292634 535 + L 54.76523 107.746921 536 + L 56.078815 99.849718 537 + L 57.392399 101.720718 538 + L 58.705984 99.976361 539 + L 60.019568 106.604734 540 + L 61.333153 107.707133 541 + L 62.646738 103.308386 542 + L 63.960322 95.347067 543 + L 65.273907 118.600667 544 + L 66.587491 101.872342 545 + L 67.901076 112.999397 546 + L 69.214661 107.730157 547 + L 70.528245 118.752074 548 + L 71.84183 111.95346 549 + L 73.155414 125.29871 550 + L 74.468999 115.071755 551 + L 75.782584 118.998396 552 + L 77.096168 121.717822 553 + L 78.409753 116.766741 554 + L 79.723337 122.311113 555 + L 81.036922 135.598022 556 + L 82.350507 133.120812 557 + L 83.664091 142.499824 558 + L 84.977676 134.236339 559 + L 86.29126 136.979415 560 + L 87.604845 139.146988 561 + L 88.91843 133.352826 562 + L 90.232014 148.324969 563 + L 91.545599 154.472605 564 + L 92.859183 146.548944 565 + L 94.172768 154.387014 566 + L 95.486353 152.041437 567 + L 96.799937 155.067264 568 + L 98.113522 149.118242 569 + L 99.427106 155.674539 570 + L 100.740691 154.587839 571 + L 102.054276 155.350701 572 + L 103.36786 152.001979 573 + L 104.681445 149.763563 574 + L 105.995029 145.955293 575 + L 107.308614 142.525645 576 + L 108.622198 151.276165 577 + L 109.935783 148.547731 578 + L 111.249368 147.988044 579 + L 112.562952 146.027328 580 + L 113.876537 137.469308 581 + L 115.190121 139.874574 582 + L 116.503706 127.483204 583 + L 117.817291 135.215593 584 + L 119.130875 132.211283 585 + L 120.44446 125.536379 586 + L 121.758044 129.92815 587 + L 123.071629 136.49275 588 + L 124.385214 129.251305 589 + L 125.698798 134.405791 590 + L 127.012383 125.428754 591 + L 128.325967 118.36563 592 + L 129.639552 125.33305 593 + L 130.953137 126.385396 594 + L 132.266721 123.206893 595 + L 133.580306 119.482423 596 + L 134.89389 129.084471 597 + L 136.207475 132.080492 598 + L 137.52106 127.501319 599 + L 138.834644 129.391936 600 + L 140.148229 127.792451 601 + L 141.461813 139.05983 602 + L 142.775398 135.115735 603 + L 144.088983 138.596773 604 + L 145.402567 134.67988 605 + L 146.716152 138.937908 606 + L 148.029736 142.251444 607 + L 149.343321 147.428695 608 + L 150.656906 145.100657 609 + L 151.97049 153.628199 610 + L 153.284075 154.690881 611 + L 154.597659 153.264416 612 + L 155.911244 160.641299 613 + L 157.224828 166.17286 614 + L 158.538413 156.797193 615 + L 159.851998 162.159048 616 + L 161.165582 158.305216 617 + L 162.479167 159.840102 618 + L 163.792751 157.576957 619 + L 165.106336 152.974522 620 + L 166.419921 153.340352 621 + L 167.733505 163.540219 622 + L 169.04709 158.560556 623 + L 170.360674 174.783294 624 + L 171.674259 158.882701 625 + L 172.987844 155.669824 626 + L 174.301428 161.825904 627 + L 175.615013 166.841116 628 + L 176.928597 169.760865 629 + L 178.242182 166.880769 630 + L 179.555767 168.220202 631 + L 180.869351 170.440597 632 + L 182.182936 174.336553 633 + L 183.49652 171.933437 634 + L 184.810105 171.719138 635 + L 186.12369 180.109191 636 + L 187.437274 182.255164 637 + L 188.750859 185.25555 638 + L 190.064443 181.992021 639 + L 192.691613 185.638065 640 + L 194.005197 188.628982 641 + L 195.318782 186.204772 642 + L 196.632366 193.975947 643 + L 197.945951 195.9224 644 + L 199.259536 197.487421 645 + L 200.57312 194.988152 646 + L 201.886705 199.049808 647 + L 203.200289 200.292448 648 + L 204.513874 211.383566 649 + L 205.827458 208.830733 650 + L 207.141043 214.176417 651 + L 208.454628 211.778071 652 + L 209.768212 207.964028 653 + L 211.081797 205.277076 654 + L 212.395381 204.287604 655 + L 213.708966 205.026652 656 + L 215.022551 194.709647 657 + L 216.336135 197.590602 658 + L 217.64972 198.92907 659 + L 218.963304 199.250677 660 + L 220.276889 195.555419 661 + L 221.590474 194.305445 662 + L 222.904058 187.50986 663 + L 224.217643 186.683142 664 + L 225.531227 187.29554 665 + L 226.844812 179.8798 666 + L 228.158397 175.386574 667 + L 229.471981 180.697335 668 + L 232.09915 173.070915 669 + L 233.412735 167.595199 670 + L 234.72632 158.843877 671 + L 236.039904 166.47292 672 + L 237.353489 145.768917 673 + L 238.667073 160.669424 674 + L 239.980658 157.168802 675 + L 241.294243 155.383537 676 + L 242.607827 140.570272 677 + L 243.921412 161.702826 678 + L 245.234996 148.699633 679 + L 246.548581 149.781486 680 + L 247.862166 147.596626 681 + L 249.17575 155.562529 682 + L 250.489335 154.567067 683 + L 251.802919 154.339139 684 + L 253.116504 163.722053 685 + L 254.430089 156.557493 686 + L 255.743673 156.739359 687 + L 257.057258 150.842224 688 + L 258.370842 157.271847 689 + L 259.684427 158.613101 690 + L 260.998011 152.951039 691 + L 262.311596 148.37939 692 + L 263.625181 153.983899 693 + L 264.938765 148.349942 694 + L 266.25235 158.869939 695 + L 267.565934 163.760481 696 + L 268.879519 154.850394 697 + L 270.193104 151.144285 698 + L 271.506688 157.59479 699 + L 272.820273 147.846131 700 + L 274.133857 158.797748 701 + L 276.761027 154.140179 702 + L 278.074611 152.233683 703 + L 279.388196 142.805156 704 + L 280.70178 145.568449 705 + L 282.015365 144.81157 706 + L 283.32895 143.590612 707 + L 284.642534 141.538489 708 + L 285.956119 139.725245 709 + L 287.269703 139.369037 710 + L 288.583288 140.491472 711 + L 289.896873 141.330486 712 + L 291.210457 134.527006 713 + L 292.524042 140.641642 714 + L 293.837626 136.563679 715 + L 295.151211 144.580416 716 + L 296.464796 142.871357 717 + L 297.77838 135.970902 718 + L 299.091965 132.469969 719 + L 300.405549 142.106927 720 + L 301.719134 144.190786 721 + L 303.032719 150.336589 722 + L 304.346303 142.752623 723 + L 305.659888 150.74109 724 + L 306.973472 149.153116 725 + L 308.287057 157.21077 726 + L 309.600641 160.019487 727 + L 310.914226 152.447705 728 + L 313.541395 147.133536 729 + L 314.85498 155.046891 730 + L 316.168564 152.009222 731 + L 317.482149 161.273196 732 + L 320.109318 148.529845 733 + L 321.422903 161.187833 734 + L 322.736487 157.915811 735 + L 324.050072 157.57569 736 + L 325.363657 154.710019 737 + L 326.677241 153.239275 738 + L 327.990826 142.917523 739 + L 329.30441 138.435954 740 + L 330.617995 142.129741 741 + L 331.93158 137.738834 742 + L 333.245164 130.293146 743 + L 334.558749 136.893354 744 + L 335.872333 131.732697 745 + L 337.185918 128.81307 746 + L 338.499503 126.676245 747 + L 339.813087 112.260368 748 + L 341.126672 121.217805 749 + L 342.440256 118.674265 750 + L 343.753841 103.03985 751 + L 345.067426 104.664132 752 + L 346.38101 97.901047 753 + L 347.694595 101.127131 754 + L 349.008179 99.713754 755 + L 350.321764 101.989376 756 + L 351.635349 95.494911 757 + L 352.948933 93.158098 758 + L 354.262518 93.328909 759 + L 355.576102 96.393428 760 + L 356.889687 83.222249 761 + L 358.203271 105.692054 762 + L 359.516856 99.991432 763 + L 360.830441 97.534912 764 + L 362.144025 94.02019 765 + L 363.45761 97.334917 766 + L 364.771194 101.776531 767 + L 366.084779 85.702933 768 + L 367.398364 96.931105 769 + L 368.711948 106.560465 770 + L 370.025533 96.419352 771 + L 371.339117 93.789893 772 + L 372.652702 104.111298 773 + L 373.966287 107.216782 774 + L 375.279871 95.398936 775 + L 376.593456 98.11464 776 + L 377.90704 104.576416 777 + L 377.90704 104.576416 778 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke: #1f77b4; stroke-width: 1.8; stroke-linecap: square"/> 779 + </g> 780 + <g id="line2d_31"> 781 + <path d="M 42.942969 103.025561 782 + L 44.256553 103.475087 783 + L 45.570138 103.80319 784 + L 48.197307 104.115316 785 + L 50.824476 104.044062 786 + L 54.76523 103.540257 787 + L 57.392399 103.221285 788 + L 60.019568 103.166175 789 + L 61.333153 103.303809 790 + L 62.646738 103.584088 791 + L 63.960322 104.028507 792 + L 65.273907 104.655531 793 + L 66.587491 105.480077 794 + L 67.901076 106.513075 795 + L 69.214661 107.761106 796 + L 70.528245 109.226148 797 + L 71.84183 110.905413 798 + L 74.468999 114.871422 799 + L 77.096168 119.542162 800 + L 79.723337 124.731988 801 + L 87.604845 140.835288 802 + L 90.232014 145.421054 803 + L 91.545599 147.413003 804 + L 92.859183 149.166414 805 + L 94.172768 150.657551 806 + L 95.486353 151.867058 807 + L 96.799937 152.780387 808 + L 98.113522 153.388116 809 + L 99.427106 153.686175 810 + L 100.740691 153.67596 811 + L 102.054276 153.364335 812 + L 103.36786 152.763527 813 + L 104.681445 151.890909 814 + L 105.995029 150.76868 815 + L 107.308614 149.423448 816 + L 109.935783 146.189325 817 + L 112.562952 142.46843 818 + L 117.817291 134.817182 819 + L 120.44446 131.505865 820 + L 121.758044 130.100123 821 + L 123.071629 128.898889 822 + L 124.385214 127.925437 823 + L 125.698798 127.198422 824 + L 127.012383 126.731576 825 + L 128.325967 126.533514 826 + L 129.639552 126.607643 827 + L 130.953137 126.952179 828 + L 132.266721 127.560278 829 + L 133.580306 128.420268 830 + L 134.89389 129.515982 831 + L 136.207475 130.827183 832 + L 138.834644 133.997858 833 + L 141.461813 137.709925 834 + L 150.656906 151.398187 835 + L 153.284075 154.607637 836 + L 155.911244 157.242408 837 + L 157.224828 158.32969 838 + L 158.538413 159.2648 839 + L 159.851998 160.054197 840 + L 162.479167 161.242382 841 + L 165.106336 162.023733 842 + L 172.987844 163.822913 843 + L 174.301428 164.317976 844 + L 175.615013 164.933672 845 + L 176.928597 165.6894 846 + L 178.242182 166.601198 847 + L 179.555767 167.681275 848 + L 180.869351 168.937625 849 + L 182.182936 170.373736 850 + L 184.810105 173.775589 851 + L 187.437274 177.81985 852 + L 190.064443 182.366005 853 + L 197.945951 196.734173 854 + L 200.57312 200.83778 855 + L 201.886705 202.60018 856 + L 203.200289 204.12675 857 + L 204.513874 205.389037 858 + L 205.827458 206.362296 859 + L 207.141043 207.026027 860 + L 208.454628 207.364424 861 + L 209.768212 207.366734 862 + L 211.081797 207.02751 863 + L 212.395381 206.346767 864 + L 213.708966 205.330018 865 + L 215.022551 203.988207 866 + L 216.336135 202.337523 867 + L 217.64972 200.399123 868 + L 218.963304 198.198735 869 + L 221.590474 193.134845 870 + L 224.217643 187.423064 871 + L 232.09915 169.556492 872 + L 234.72632 164.370448 873 + L 237.353489 159.977436 874 + L 238.667073 158.127652 875 + L 239.980658 156.52552 876 + L 241.294243 155.17698 877 + L 242.607827 154.082769 878 + L 243.921412 153.238523 879 + L 245.234996 152.63497 880 + L 246.548581 152.25823 881 + L 247.862166 152.090211 882 + L 249.17575 152.109089 883 + L 250.489335 152.289862 884 + L 253.116504 153.024953 885 + L 257.057258 154.606036 886 + L 259.684427 155.623745 887 + L 262.311596 156.356247 888 + L 263.625181 156.559889 889 + L 264.938765 156.632476 890 + L 266.25235 156.562088 891 + L 267.565934 156.341164 892 + L 268.879519 155.966636 893 + L 270.193104 155.439971 894 + L 271.506688 154.767086 895 + L 274.133857 153.027459 896 + L 276.761027 150.875061 897 + L 284.642534 143.858327 898 + L 287.269703 142.049718 899 + L 288.583288 141.356135 900 + L 289.896873 140.828175 901 + L 291.210457 140.480207 902 + L 292.524042 140.322492 903 + L 293.837626 140.360863 904 + L 295.151211 140.596492 905 + L 296.464796 141.02577 906 + L 297.77838 141.640287 907 + L 299.091965 142.426918 908 + L 301.719134 144.441732 909 + L 304.346303 146.880866 910 + L 309.600641 152.028852 911 + L 312.227811 154.172857 912 + L 313.541395 155.013713 913 + L 314.85498 155.657271 914 + L 316.168564 156.074554 915 + L 317.482149 156.24008 916 + L 318.795734 156.132427 917 + L 320.109318 155.734707 918 + L 321.422903 155.034959 919 + L 322.736487 154.026437 920 + L 324.050072 152.707796 921 + L 325.363657 151.083173 922 + L 326.677241 149.162147 923 + L 327.990826 146.9596 924 + L 329.30441 144.495464 925 + L 331.93158 138.885177 926 + L 334.558749 132.575967 927 + L 343.753841 109.410718 928 + L 346.38101 103.766142 929 + L 347.694595 101.272916 930 + L 349.008179 99.03065 931 + L 350.321764 97.057198 932 + L 351.635349 95.365408 933 + L 352.948933 93.962953 934 + L 354.262518 92.852282 935 + L 355.576102 92.030675 936 + L 356.889687 91.490402 937 + L 358.203271 91.218995 938 + L 359.516856 91.199608 939 + L 360.830441 91.411473 940 + L 362.144025 91.83043 941 + L 363.45761 92.429524 942 + L 366.084779 94.050288 943 + L 368.711948 96.027864 944 + L 373.966287 100.090544 945 + L 376.593456 101.768784 946 + L 377.90704 102.45512 947 + L 377.90704 102.45512 948 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 4.44,1.92; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.2"/> 949 + </g> 950 + <g id="patch_3"> 951 + <path d="M 42.942969 285.715781 952 + L 42.942969 26.318125 953 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 954 + </g> 955 + <g id="patch_4"> 956 + <path d="M 379.220625 285.715781 957 + L 379.220625 26.318125 958 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 959 + </g> 960 + <g id="patch_5"> 961 + <path d="M 42.942969 285.715781 962 + L 379.220625 285.715781 963 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 964 + </g> 965 + <g id="patch_6"> 966 + <path d="M 42.942969 26.318125 967 + L 379.220625 26.318125 968 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 969 + </g> 970 + <g id="text_17"> 971 + <text style="font-size: 8.5px; font-family: sans-serif" transform="translate(49.668522 261.862377)">averaging N periods lowers the asynchronous</text> 972 + <!-- noise by $\sqrt{N}$ in amplitude --> 973 + <g transform="translate(49.668522 275.041029)"> 974 + <text> 975 + <tspan x="0" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">n</tspan> 976 + <tspan x="5.387207" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">o</tspan> 977 + <tspan x="10.587646" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">i</tspan> 978 + <tspan x="12.949219" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">s</tspan> 979 + <tspan x="17.377686" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">e</tspan> 980 + <tspan x="22.607178" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif"> </tspan> 981 + <tspan x="25.309082" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">b</tspan> 982 + <tspan x="30.70459" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">y</tspan> 983 + <tspan x="35.734863" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif"> </tspan> 984 + <tspan x="51.99057" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif"> </tspan> 985 + <tspan x="54.692474" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">i</tspan> 986 + <tspan x="57.054047" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">n</tspan> 987 + <tspan x="62.441254" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif"> </tspan> 988 + <tspan x="65.143158" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">a</tspan> 989 + <tspan x="70.351898" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">m</tspan> 990 + <tspan x="78.631927" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">p</tspan> 991 + <tspan x="84.027435" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">l</tspan> 992 + <tspan x="86.389008" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">i</tspan> 993 + <tspan x="88.75058" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">t</tspan> 994 + <tspan x="92.083344" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">u</tspan> 995 + <tspan x="97.470551" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">d</tspan> 996 + <tspan x="102.866058" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">e</tspan> 997 + <tspan x="38.436768" y="-2.0525" style="font-size: 4.800299px; font-family: sans-serif">√</tspan> 998 + <tspan x="44.569672" y="-0.265625" style="font-style: oblique; font-size: 8.5px; font-family: sans-serif">N</tspan> 999 + </text> 1000 + <rect x="43.507172" y="-10.46875" width="8.483398" height="0.53125"/> 1001 + </g> 1002 + </g> 1003 + <g id="text_18"> 1004 + <text style="font-weight: 700; font-size: 12px; font-family: sans-serif; text-anchor: middle" x="211.081797" y="16.318125" transform="rotate(-0 211.081797 16.318125)">Periodic Waveform Extracted from Noise</text> 1005 + </g> 1006 + <g id="legend_1"> 1007 + <g id="patch_7"> 1008 + <path d="M 242.220625 68.72 1009 + L 373.620625 68.72 1010 + Q 375.220625 68.72 375.220625 67.12 1011 + L 375.220625 31.918125 1012 + Q 375.220625 30.318125 373.620625 30.318125 1013 + L 242.220625 30.318125 1014 + Q 240.620625 30.318125 240.620625 31.918125 1015 + L 240.620625 67.12 1016 + Q 240.620625 68.72 242.220625 68.72 1017 + z 1018 + " style="fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 1019 + </g> 1020 + <g id="line2d_32"> 1021 + <path d="M 243.820625 36.796875 1022 + L 251.820625 36.796875 1023 + L 259.820625 36.796875 1024 + " style="fill: none; stroke: #e0e0e0; stroke-linecap: square"/> 1025 + </g> 1026 + <g id="text_19"> 1027 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start" x="266.220625" y="39.596875" transform="rotate(-0 266.220625 39.596875)">One noisy period</text> 1028 + </g> 1029 + <g id="line2d_33"> 1030 + <path d="M 243.820625 48.7975 1031 + L 251.820625 48.7975 1032 + L 259.820625 48.7975 1033 + " style="fill: none; stroke: #1f77b4; stroke-width: 1.8; stroke-linecap: square"/> 1034 + </g> 1035 + <g id="text_20"> 1036 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start" x="266.220625" y="51.5975" transform="rotate(-0 266.220625 51.5975)">Average of N = 40 periods</text> 1037 + </g> 1038 + <g id="line2d_34"> 1039 + <path d="M 243.820625 60.798125 1040 + L 251.820625 60.798125 1041 + L 259.820625 60.798125 1042 + " style="fill: none; stroke-dasharray: 4.44,1.92; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.2"/> 1043 + </g> 1044 + <g id="text_21"> 1045 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start" x="266.220625" y="63.598125" transform="rotate(-0 266.220625 63.598125)">True periodic waveform</text> 1046 + </g> 1047 + </g> 1048 + </g> 1049 + <g id="axes_2"> 1050 + <g id="patch_8"> 1051 + <path d="M 426.942969 285.715781 1052 + L 763.220625 285.715781 1053 + L 763.220625 26.318125 1054 + L 426.942969 26.318125 1055 + z 1056 + " style="fill: #ffffff"/> 1057 + </g> 1058 + <g id="matplotlib.axis_3"> 1059 + <g id="xtick_8"> 1060 + <g id="line2d_35"> 1061 + <path d="M 426.942969 285.715781 1062 + L 426.942969 26.318125 1063 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1064 + </g> 1065 + <g id="line2d_36"> 1066 + <g> 1067 + <use xlink:href="#m3d27035b55" x="426.942969" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 1068 + </g> 1069 + </g> 1070 + <g id="text_22"> 1071 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="426.942969" y="300.313437" transform="rotate(-0 426.942969 300.313437)">31.00</text> 1072 + </g> 1073 + </g> 1074 + <g id="xtick_9"> 1075 + <g id="line2d_37"> 1076 + <path d="M 468.977676 285.715781 1077 + L 468.977676 26.318125 1078 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1079 + </g> 1080 + <g id="line2d_38"> 1081 + <g> 1082 + <use xlink:href="#m3d27035b55" x="468.977676" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 1083 + </g> 1084 + </g> 1085 + <g id="text_23"> 1086 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="468.977676" y="300.313437" transform="rotate(-0 468.977676 300.313437)">31.25</text> 1087 + </g> 1088 + </g> 1089 + <g id="xtick_10"> 1090 + <g id="line2d_39"> 1091 + <path d="M 511.012383 285.715781 1092 + L 511.012383 26.318125 1093 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1094 + </g> 1095 + <g id="line2d_40"> 1096 + <g> 1097 + <use xlink:href="#m3d27035b55" x="511.012383" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 1098 + </g> 1099 + </g> 1100 + <g id="text_24"> 1101 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="511.012383" y="300.313437" transform="rotate(-0 511.012383 300.313437)">31.50</text> 1102 + </g> 1103 + </g> 1104 + <g id="xtick_11"> 1105 + <g id="line2d_41"> 1106 + <path d="M 553.04709 285.715781 1107 + L 553.04709 26.318125 1108 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1109 + </g> 1110 + <g id="line2d_42"> 1111 + <g> 1112 + <use xlink:href="#m3d27035b55" x="553.04709" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 1113 + </g> 1114 + </g> 1115 + <g id="text_25"> 1116 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="553.04709" y="300.313437" transform="rotate(-0 553.04709 300.313437)">31.75</text> 1117 + </g> 1118 + </g> 1119 + <g id="xtick_12"> 1120 + <g id="line2d_43"> 1121 + <path d="M 595.081797 285.715781 1122 + L 595.081797 26.318125 1123 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1124 + </g> 1125 + <g id="line2d_44"> 1126 + <g> 1127 + <use xlink:href="#m3d27035b55" x="595.081797" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 1128 + </g> 1129 + </g> 1130 + <g id="text_26"> 1131 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="595.081797" y="300.313437" transform="rotate(-0 595.081797 300.313437)">32.00</text> 1132 + </g> 1133 + </g> 1134 + <g id="xtick_13"> 1135 + <g id="line2d_45"> 1136 + <path d="M 637.116504 285.715781 1137 + L 637.116504 26.318125 1138 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1139 + </g> 1140 + <g id="line2d_46"> 1141 + <g> 1142 + <use xlink:href="#m3d27035b55" x="637.116504" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 1143 + </g> 1144 + </g> 1145 + <g id="text_27"> 1146 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="637.116504" y="300.313437" transform="rotate(-0 637.116504 300.313437)">32.25</text> 1147 + </g> 1148 + </g> 1149 + <g id="xtick_14"> 1150 + <g id="line2d_47"> 1151 + <path d="M 679.151211 285.715781 1152 + L 679.151211 26.318125 1153 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1154 + </g> 1155 + <g id="line2d_48"> 1156 + <g> 1157 + <use xlink:href="#m3d27035b55" x="679.151211" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 1158 + </g> 1159 + </g> 1160 + <g id="text_28"> 1161 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="679.151211" y="300.313437" transform="rotate(-0 679.151211 300.313437)">32.50</text> 1162 + </g> 1163 + </g> 1164 + <g id="xtick_15"> 1165 + <g id="line2d_49"> 1166 + <path d="M 721.185918 285.715781 1167 + L 721.185918 26.318125 1168 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1169 + </g> 1170 + <g id="line2d_50"> 1171 + <g> 1172 + <use xlink:href="#m3d27035b55" x="721.185918" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 1173 + </g> 1174 + </g> 1175 + <g id="text_29"> 1176 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="721.185918" y="300.313437" transform="rotate(-0 721.185918 300.313437)">32.75</text> 1177 + </g> 1178 + </g> 1179 + <g id="xtick_16"> 1180 + <g id="line2d_51"> 1181 + <path d="M 763.220625 285.715781 1182 + L 763.220625 26.318125 1183 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1184 + </g> 1185 + <g id="line2d_52"> 1186 + <g> 1187 + <use xlink:href="#m3d27035b55" x="763.220625" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 1188 + </g> 1189 + </g> 1190 + <g id="text_30"> 1191 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="763.220625" y="300.313437" transform="rotate(-0 763.220625 300.313437)">33.00</text> 1192 + </g> 1193 + </g> 1194 + <g id="text_31"> 1195 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="595.081797" y="314.314219" transform="rotate(-0 595.081797 314.314219)">Frequency [orders]</text> 1196 + </g> 1197 + </g> 1198 + <g id="matplotlib.axis_4"> 1199 + <g id="ytick_8"> 1200 + <g id="line2d_53"> 1201 + <path d="M 426.942969 285.715781 1202 + L 763.220625 285.715781 1203 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1204 + </g> 1205 + <g id="line2d_54"> 1206 + <g> 1207 + <use xlink:href="#mef640d9f3a" x="426.942969" y="285.715781" style="stroke: #000000; stroke-width: 0.8"/> 1208 + </g> 1209 + </g> 1210 + <g id="text_32"> 1211 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="419.942969" y="289.514609" transform="rotate(-0 419.942969 289.514609)">0.0</text> 1212 + </g> 1213 + </g> 1214 + <g id="ytick_9"> 1215 + <g id="line2d_55"> 1216 + <path d="M 426.942969 236.306704 1217 + L 763.220625 236.306704 1218 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1219 + </g> 1220 + <g id="line2d_56"> 1221 + <g> 1222 + <use xlink:href="#mef640d9f3a" x="426.942969" y="236.306704" style="stroke: #000000; stroke-width: 0.8"/> 1223 + </g> 1224 + </g> 1225 + <g id="text_33"> 1226 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="419.942969" y="240.105532" transform="rotate(-0 419.942969 240.105532)">0.2</text> 1227 + </g> 1228 + </g> 1229 + <g id="ytick_10"> 1230 + <g id="line2d_57"> 1231 + <path d="M 426.942969 186.897626 1232 + L 763.220625 186.897626 1233 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1234 + </g> 1235 + <g id="line2d_58"> 1236 + <g> 1237 + <use xlink:href="#mef640d9f3a" x="426.942969" y="186.897626" style="stroke: #000000; stroke-width: 0.8"/> 1238 + </g> 1239 + </g> 1240 + <g id="text_34"> 1241 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="419.942969" y="190.696455" transform="rotate(-0 419.942969 190.696455)">0.4</text> 1242 + </g> 1243 + </g> 1244 + <g id="ytick_11"> 1245 + <g id="line2d_59"> 1246 + <path d="M 426.942969 137.488549 1247 + L 763.220625 137.488549 1248 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1249 + </g> 1250 + <g id="line2d_60"> 1251 + <g> 1252 + <use xlink:href="#mef640d9f3a" x="426.942969" y="137.488549" style="stroke: #000000; stroke-width: 0.8"/> 1253 + </g> 1254 + </g> 1255 + <g id="text_35"> 1256 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="419.942969" y="141.287377" transform="rotate(-0 419.942969 141.287377)">0.6</text> 1257 + </g> 1258 + </g> 1259 + <g id="ytick_12"> 1260 + <g id="line2d_61"> 1261 + <path d="M 426.942969 88.079472 1262 + L 763.220625 88.079472 1263 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1264 + </g> 1265 + <g id="line2d_62"> 1266 + <g> 1267 + <use xlink:href="#mef640d9f3a" x="426.942969" y="88.079472" style="stroke: #000000; stroke-width: 0.8"/> 1268 + </g> 1269 + </g> 1270 + <g id="text_36"> 1271 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="419.942969" y="91.8783" transform="rotate(-0 419.942969 91.8783)">0.8</text> 1272 + </g> 1273 + </g> 1274 + <g id="ytick_13"> 1275 + <g id="line2d_63"> 1276 + <path d="M 426.942969 38.670394 1277 + L 763.220625 38.670394 1278 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1279 + </g> 1280 + <g id="line2d_64"> 1281 + <g> 1282 + <use xlink:href="#mef640d9f3a" x="426.942969" y="38.670394" style="stroke: #000000; stroke-width: 0.8"/> 1283 + </g> 1284 + </g> 1285 + <g id="text_37"> 1286 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="419.942969" y="42.469222" transform="rotate(-0 419.942969 42.469222)">1.0</text> 1287 + </g> 1288 + </g> 1289 + <g id="text_38"> 1290 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="397.6375" y="156.016953" transform="rotate(-90 397.6375 156.016953)">Comb filter magnitude</text> 1291 + </g> 1292 + </g> 1293 + <g id="line2d_65"> 1294 + <path d="M 426.942969 38.670394 1295 + L 427.027059 38.774363 1296 + L 427.19524 39.605171 1297 + L 427.447511 42.396788 1298 + L 427.783873 48.938248 1299 + L 428.288416 64.443498 1300 + L 428.877049 90.12166 1301 + L 429.717953 137.333979 1302 + L 432.156576 283.782874 1303 + L 432.240666 283.690754 1304 + L 432.99748 254.230164 1305 + L 433.586113 239.684696 1306 + L 434.006565 233.926862 1307 + L 434.342927 232.007061 1308 + L 434.511108 231.896728 1309 + L 434.679289 232.322634 1310 + L 434.93156 233.907668 1311 + L 435.267922 237.624264 1312 + L 435.772465 246.058067 1313 + L 436.529279 263.011285 1314 + L 437.454273 285.653621 1315 + L 438.379268 266.543497 1316 + L 438.967901 258.431247 1317 + L 439.388353 255.029242 1318 + L 439.724715 253.808936 1319 + L 439.892896 253.694789 1320 + L 440.061077 253.902642 1321 + L 440.313348 254.795467 1322 + L 440.64971 256.997338 1323 + L 441.154253 262.171944 1324 + L 441.911066 272.918059 1325 + L 442.66788 285.108511 1326 + L 442.751971 284.986683 1327 + L 443.676966 271.949667 1328 + L 444.265599 266.22107 1329 + L 444.686051 263.749854 1330 + L 445.022413 262.822292 1331 + L 445.190594 262.711642 1332 + L 445.358774 262.833082 1333 + L 445.611046 263.438349 1334 + L 445.947407 264.991367 1335 + L 446.45195 268.727299 1336 + L 447.124674 275.670503 1337 + L 447.965578 285.652403 1338 + L 448.974663 274.718361 1339 + L 449.563296 270.3144 1340 + L 449.983748 268.40909 1341 + L 450.32011 267.698954 1342 + L 450.572381 267.649187 1343 + L 450.824653 268.006212 1344 + L 451.161015 269.086309 1345 + L 451.581467 271.318063 1346 + L 452.1701 275.774663 1347 + L 453.179185 285.367998 1348 + L 453.263275 285.240619 1349 + L 454.272361 276.37882 1350 + L 454.860994 272.811409 1351 + L 455.281446 271.28111 1352 + L 455.617808 270.728714 1353 + L 455.870079 270.714351 1354 + L 456.12235 271.03788 1355 + L 456.458712 271.972289 1356 + L 456.879164 273.876526 1357 + L 457.467797 277.658365 1358 + L 458.476883 285.650296 1359 + L 458.560973 284.953965 1360 + L 459.570058 277.466538 1361 + L 460.158691 274.471811 1362 + L 460.579143 273.206743 1363 + L 460.915505 272.772491 1364 + L 461.167776 272.791122 1365 + L 461.420048 273.100879 1366 + L 461.75641 273.947549 1367 + L 462.176862 275.640784 1368 + L 462.765495 278.973062 1369 + L 463.69049 285.476613 1370 + L 463.77458 285.343426 1371 + L 464.867756 278.217237 1372 + L 465.456389 275.636687 1373 + L 465.876841 274.568553 1374 + L 466.213203 274.226047 1375 + L 466.465474 274.274131 1376 + L 466.717745 274.579946 1377 + L 467.054107 275.371374 1378 + L 467.55865 277.298454 1379 + L 468.231373 280.93696 1380 + L 468.988187 285.647178 1381 + L 470.081363 279.156519 1382 + L 470.669996 276.738718 1383 + L 471.090448 275.697707 1384 + L 471.42681 275.324101 1385 + L 471.679081 275.319835 1386 + L 471.931352 275.550445 1387 + L 472.267714 276.210157 1388 + L 472.688166 277.554868 1389 + L 473.276799 280.235787 1390 + L 474.201794 285.535253 1391 + L 474.285885 285.394422 1392 + L 475.37906 279.498726 1393 + L 475.967693 277.332783 1394 + L 476.388146 276.421763 1395 + L 476.724507 276.117309 1396 + L 476.976779 276.143432 1397 + L 477.22905 276.385778 1398 + L 477.565412 277.032557 1399 + L 478.069954 278.63164 1400 + L 478.742678 281.684137 1401 + L 479.499492 285.642852 1402 + L 480.676758 279.738568 1403 + L 481.265391 277.771302 1404 + L 481.685843 276.96555 1405 + L 482.022205 276.719268 1406 + L 482.274476 276.772795 1407 + L 482.610838 277.157343 1408 + L 483.03129 278.113537 1409 + L 483.535833 279.869261 1410 + L 484.292647 283.388195 1411 + L 484.713099 285.571332 1412 + L 484.797189 285.420296 1413 + L 485.890365 280.223057 1414 + L 486.478998 278.294285 1415 + L 486.89945 277.473983 1416 + L 487.235812 277.192302 1417 + L 487.488083 277.206744 1418 + L 487.824445 277.52468 1419 + L 488.244897 278.379061 1420 + L 488.74944 279.995365 1421 + L 489.506254 283.299111 1422 + L 490.010796 285.637017 1423 + L 491.188062 280.296574 1424 + L 491.776695 278.500228 1425 + L 492.197148 277.756805 1426 + L 492.533509 277.522961 1427 + L 492.785781 277.564369 1428 + L 493.122142 277.90567 1429 + L 493.542595 278.76857 1430 + L 494.047137 280.365522 1431 + L 494.803951 283.587118 1432 + L 495.224403 285.59535 1433 + L 495.308494 285.430734 1434 + L 496.401669 280.61902 1435 + L 496.990302 278.818957 1436 + L 497.410755 278.046735 1437 + L 497.747116 277.776085 1438 + L 497.999388 277.783102 1439 + L 498.335749 278.071356 1440 + L 498.756202 278.860058 1441 + L 499.260744 280.363601 1442 + L 500.017558 283.455703 1443 + L 500.522101 285.629217 1444 + L 501.699367 280.577342 1445 + L 502.288 278.864577 1446 + L 502.708452 278.149658 1447 + L 503.044814 277.9196 1448 + L 503.297085 277.953185 1449 + L 503.633447 278.270895 1450 + L 504.053899 279.085789 1451 + L 504.558442 280.604092 1452 + L 505.315256 283.684196 1453 + L 505.735708 285.612178 1454 + L 505.903889 285.040353 1455 + L 506.997064 280.490819 1456 + L 507.585698 278.846963 1457 + L 508.00615 278.181166 1458 + L 508.342511 277.988516 1459 + L 508.594783 278.048318 1460 + L 508.931145 278.39772 1461 + L 509.351597 279.245762 1462 + L 509.94023 281.097936 1463 + L 510.781134 284.651743 1464 + L 511.033405 285.618745 1465 + L 512.210672 280.644515 1466 + L 512.799305 278.94578 1467 + L 513.219757 278.231158 1468 + L 513.556119 277.9965 1469 + L 513.80839 278.024423 1470 + L 514.144752 278.332499 1471 + L 514.565204 279.133617 1472 + L 515.069746 280.63577 1473 + L 515.82656 283.699252 1474 + L 516.247012 285.624373 1475 + L 516.415193 285.027843 1476 + L 517.508369 280.457891 1477 + L 518.097002 278.794918 1478 + L 518.517454 278.115731 1479 + L 518.853816 277.914244 1480 + L 519.106087 277.969254 1481 + L 519.442449 278.315541 1482 + L 519.862901 279.166159 1483 + L 520.367444 280.727067 1484 + L 521.124258 283.868435 1485 + L 521.54471 285.604468 1486 + L 522.721976 280.512607 1487 + L 523.310609 278.760912 1488 + L 523.731061 278.018184 1489 + L 524.067423 277.769384 1490 + L 524.319694 277.79249 1491 + L 524.656056 278.10272 1492 + L 525.076508 278.92125 1493 + L 525.581051 280.46623 1494 + L 526.337865 283.634367 1495 + L 526.758317 285.633399 1496 + L 527.010588 284.583525 1497 + L 528.019674 280.212091 1498 + L 528.608307 278.461362 1499 + L 529.028759 277.739985 1500 + L 529.365121 277.52041 1501 + L 529.617392 277.572088 1502 + L 529.953754 277.928445 1503 + L 530.374206 278.815527 1504 + L 530.878748 280.454101 1505 + L 531.635562 283.770456 1506 + L 532.056015 285.584467 1507 + L 533.317371 279.839146 1508 + L 533.906004 278.072 1509 + L 534.326456 277.366042 1510 + L 534.662818 277.175278 1511 + L 534.915089 277.257828 1512 + L 535.251451 277.666822 1513 + L 535.671903 278.635853 1514 + L 536.260536 280.736809 1515 + L 537.101441 284.763516 1516 + L 537.269622 285.640147 1517 + L 537.521893 284.472279 1518 + L 538.615069 279.37558 1519 + L 539.203702 277.572349 1520 + L 539.624154 276.87564 1521 + L 539.960516 276.714004 1522 + L 540.212787 276.830816 1523 + L 540.549149 277.301131 1524 + L 540.969601 278.36931 1525 + L 541.558234 280.641713 1526 + L 542.399138 284.944825 1527 + L 542.567319 285.555258 1528 + L 543.828676 279.134589 1529 + L 544.417309 277.138221 1530 + L 544.837761 276.330608 1531 + L 545.174123 276.103096 1532 + L 545.426394 276.186182 1533 + L 545.762756 276.634594 1534 + L 546.183208 277.714762 1535 + L 546.687751 279.687935 1536 + L 547.444565 283.662536 1537 + L 547.780926 285.645182 1538 + L 548.117288 283.780328 1539 + L 549.126373 278.418223 1540 + L 549.715006 276.319673 1541 + L 550.135458 275.49594 1542 + L 550.47182 275.292363 1543 + L 550.724092 275.415122 1544 + L 551.060453 275.944638 1545 + L 551.480905 277.168372 1546 + L 552.069539 279.798683 1547 + L 552.910443 284.827022 1548 + L 553.078624 285.509822 1549 + L 554.33998 277.900672 1550 + L 554.928613 275.499596 1551 + L 555.349066 274.511413 1552 + L 555.685427 274.217499 1553 + L 555.937699 274.300067 1554 + L 556.18997 274.64385 1555 + L 556.526332 275.499015 1556 + L 557.030874 277.568314 1557 + L 557.703598 281.514848 1558 + L 558.292231 285.648874 1559 + L 558.712683 282.725417 1560 + L 559.721768 276.270657 1561 + L 560.310401 273.815735 1562 + L 560.730853 272.910124 1563 + L 560.983125 272.745002 1564 + L 561.235396 272.873903 1565 + L 561.487667 273.297689 1566 + L 561.824029 274.310493 1567 + L 562.328572 276.71671 1568 + L 563.001295 281.261731 1569 + L 563.589928 285.431699 1570 + L 564.935375 275.096583 1571 + L 565.524008 272.12751 1572 + L 565.944461 270.960933 1573 + L 566.196732 270.69305 1574 + L 566.364913 270.702547 1575 + L 566.617184 271.002669 1576 + L 566.953546 271.932443 1577 + L 567.373998 273.907286 1578 + L 567.962631 277.995613 1579 + L 568.803535 285.651467 1580 + L 568.887626 284.954905 1581 + L 570.233073 272.754021 1582 + L 570.821706 269.267373 1583 + L 571.242158 267.919028 1584 + L 571.494429 267.628928 1585 + L 571.66261 267.661996 1586 + L 571.914882 268.056579 1587 + L 572.251243 269.223526 1588 + L 572.671696 271.669409 1589 + L 573.260329 276.711507 1590 + L 574.101233 285.271324 1591 + L 575.53077 269.104437 1592 + L 576.119403 264.753082 1593 + L 576.539856 263.073393 1594 + L 576.792127 262.720412 1595 + L 576.960308 262.772665 1596 + L 577.212579 263.291431 1597 + L 577.548941 264.806381 1598 + L 577.969393 267.98022 1599 + L 578.558026 274.553475 1600 + L 579.31484 285.653117 1601 + L 579.39893 284.435473 1602 + L 580.912558 261.666504 1603 + L 581.501191 256.043139 1604 + L 581.921644 254.003801 1605 + L 582.173915 253.692807 1606 + L 582.342096 253.888698 1607 + L 582.594367 254.803622 1608 + L 582.930729 257.193419 1609 + L 583.351181 262.021676 1610 + L 583.939814 271.907449 1611 + L 584.612538 284.779769 1612 + L 586.546618 240.766289 1613 + L 587.05116 234.276236 1614 + L 587.387522 232.167293 1615 + L 587.555703 231.873064 1616 + L 587.639793 231.927864 1617 + L 587.807974 232.45597 1618 + L 588.060245 234.331872 1619 + L 588.396607 238.936384 1620 + L 588.817059 248.165511 1621 + L 589.321602 264.308379 1622 + L 589.826145 285.653921 1623 + L 590.582959 245.578207 1624 + L 592.180677 145.130527 1625 + L 593.273852 84.010624 1626 + L 593.946576 57.190298 1627 + L 594.451119 44.478031 1628 + L 594.78748 39.942207 1629 + L 595.039752 38.696389 1630 + L 595.123842 38.696389 1631 + L 595.292023 39.31977 1632 + L 595.544294 41.803872 1633 + L 595.880656 47.94854 1634 + L 596.301108 59.960209 1635 + L 596.889741 84.010624 1636 + L 597.730646 129.678426 1637 + L 600.337449 285.653921 1638 + L 601.094263 255.557625 1639 + L 601.682896 240.471736 1640 + L 602.103348 234.331872 1641 + L 602.43971 232.121258 1642 + L 602.607891 231.873064 1643 + L 602.776072 232.167293 1644 + L 603.028343 233.568109 1645 + L 603.364705 237.067492 1646 + L 603.869248 245.245151 1647 + L 604.626061 261.987747 1648 + L 605.551056 284.779769 1649 + L 605.635147 284.663339 1650 + L 606.476051 267.260664 1651 + L 607.064684 258.884561 1652 + L 607.485136 255.275802 1653 + L 607.821498 253.888698 1654 + L 607.989679 253.692807 1655 + L 608.15786 253.820994 1656 + L 608.410131 254.599712 1657 + L 608.746493 256.662797 1658 + L 609.251035 261.666504 1659 + L 609.923759 270.959633 1660 + L 610.848754 285.653117 1661 + L 611.857839 271.461137 1662 + L 612.446472 265.910055 1663 + L 612.866924 263.582335 1664 + L 613.203286 262.772665 1665 + L 613.371467 262.720412 1666 + L 613.539648 262.899137 1667 + L 613.791919 263.58709 1668 + L 614.128281 265.2417 1669 + L 614.632823 269.104437 1670 + L 615.389637 277.136716 1671 + L 616.062361 285.271324 1672 + L 616.146451 285.146529 1673 + L 617.155537 274.343796 1674 + L 617.74417 270.074637 1675 + L 618.164622 268.280147 1676 + L 618.500983 267.661996 1677 + L 618.669164 267.628928 1678 + L 618.837345 267.777644 1679 + L 619.089617 268.332627 1680 + L 619.425978 269.658703 1681 + L 619.930521 272.754021 1682 + L 620.687335 279.211948 1683 + L 621.360058 285.651467 1684 + L 622.453234 276.075013 1685 + L 623.041867 272.617868 1686 + L 623.462319 271.178846 1687 + L 623.798681 270.702547 1688 + L 624.050952 270.745054 1689 + L 624.303224 271.123882 1690 + L 624.639585 272.12751 1691 + L 625.144128 274.589174 1692 + L 625.816851 279.242372 1693 + L 626.573665 285.431699 1694 + L 626.657756 285.301591 1695 + L 627.666841 277.728256 1696 + L 628.255474 274.640591 1697 + L 628.675926 273.297689 1698 + L 629.012288 272.798077 1699 + L 629.264559 272.767606 1700 + L 629.516831 273.029407 1701 + L 629.853192 273.815735 1702 + L 630.273645 275.442542 1703 + L 630.862278 278.705369 1704 + L 631.871363 285.648874 1705 + L 631.955453 285.038796 1706 + L 632.964539 278.444007 1707 + L 633.553172 275.780974 1708 + L 633.973624 274.64385 1709 + L 634.309986 274.243442 1710 + L 634.562257 274.248045 1711 + L 634.814528 274.511413 1712 + L 635.15089 275.249472 1713 + L 635.571342 276.741161 1714 + L 636.159975 279.698018 1715 + L 637.08497 285.509822 1716 + L 637.16906 285.37309 1717 + L 638.262236 278.951204 1718 + L 638.850869 276.607127 1719 + L 639.271321 275.628205 1720 + L 639.607683 275.306931 1721 + L 639.859954 275.342088 1722 + L 640.112226 275.611287 1723 + L 640.448587 276.319673 1724 + L 640.95313 278.058982 1725 + L 641.625854 281.362692 1726 + L 642.382668 285.645182 1727 + L 643.475843 279.687935 1728 + L 644.064476 277.454768 1729 + L 644.484928 276.486812 1730 + L 644.82129 276.134197 1731 + L 645.073561 276.123945 1732 + L 645.325833 276.330608 1733 + L 645.662195 276.932257 1734 + L 646.082647 278.167313 1735 + L 646.67128 280.641411 1736 + L 647.596275 285.555258 1737 + L 647.680365 285.40969 1738 + L 648.773541 279.911736 1739 + L 649.362174 277.88093 1740 + L 649.782626 277.021646 1741 + L 650.118988 276.73022 1742 + L 650.371259 276.749725 1743 + L 650.62353 276.971954 1744 + L 650.959892 277.572349 1745 + L 651.464435 279.065587 1746 + L 652.137158 281.928194 1747 + L 652.893972 285.640147 1748 + L 654.071238 280.058868 1749 + L 654.659871 278.189878 1750 + L 655.080323 277.42015 1751 + L 655.416685 277.181233 1752 + L 655.668956 277.227966 1753 + L 656.005318 277.587867 1754 + L 656.42577 278.490616 1755 + L 656.930313 280.155085 1756 + L 657.687127 283.502525 1757 + L 658.107579 285.584467 1758 + L 658.19167 285.427124 1759 + L 659.284845 280.454101 1760 + L 659.873478 278.600796 1761 + L 660.293931 277.809006 1762 + L 660.630292 277.534166 1763 + L 660.882564 277.544563 1764 + L 661.218925 277.845492 1765 + L 661.639378 278.661747 1766 + L 662.14392 280.212091 1767 + L 662.900734 283.391077 1768 + L 663.405277 285.633399 1769 + L 664.582543 280.46623 1770 + L 665.171176 278.721059 1771 + L 665.591628 277.995613 1772 + L 665.92799 277.764697 1773 + L 666.180261 277.801821 1774 + L 666.516623 278.129334 1775 + L 666.937075 278.963494 1776 + L 667.441618 280.512607 1777 + L 668.198432 283.646665 1778 + L 668.618884 285.604468 1779 + L 668.787065 285.036778 1780 + L 669.88024 280.430902 1781 + L 670.468873 278.772668 1782 + L 670.889326 278.103898 1783 + L 671.225687 277.912888 1784 + L 671.477959 277.975973 1785 + L 671.81432 278.332039 1786 + L 672.234773 279.19116 1787 + L 672.823406 281.06151 1788 + L 673.66431 284.640098 1789 + L 673.916581 285.624373 1790 + L 675.093847 280.63577 1791 + L 675.68248 278.938246 1792 + L 676.102933 278.226888 1793 + L 676.439294 277.995613 1794 + L 676.691566 278.026189 1795 + L 677.027927 278.337533 1796 + L 677.44838 279.141602 1797 + L 677.952922 280.644515 1798 + L 678.709736 283.701481 1799 + L 679.130188 285.618745 1800 + L 679.298369 285.037383 1801 + L 680.391545 280.499642 1802 + L 680.980178 278.854242 1803 + L 681.40063 278.185038 1804 + L 681.736992 277.98896 1805 + L 681.989263 278.046119 1806 + L 682.325625 278.392321 1807 + L 682.746077 279.237583 1808 + L 683.33471 281.089599 1809 + L 684.175615 284.653081 1810 + L 684.427886 285.612178 1811 + L 685.605152 280.604092 1812 + L 686.193785 278.887604 1813 + L 686.614237 278.162706 1814 + L 686.950599 277.92231 1815 + L 687.20287 277.947791 1816 + L 687.539232 278.255511 1817 + L 687.959684 279.061383 1818 + L 688.464227 280.577342 1819 + L 689.221041 283.677286 1820 + L 689.641493 285.629217 1821 + L 689.809674 285.011382 1822 + L 690.902849 280.363601 1823 + L 691.491483 278.666122 1824 + L 691.911935 277.969852 1825 + L 692.248296 277.760679 1826 + L 692.500568 277.813905 1827 + L 692.83693 278.163536 1828 + L 693.257382 279.027878 1829 + L 693.761924 280.61902 1830 + L 694.518738 283.829999 1831 + L 694.93919 285.59535 1832 + L 696.116457 280.365522 1833 + L 696.70509 278.559322 1834 + L 697.125542 277.790251 1835 + L 697.461904 277.529905 1836 + L 697.714175 277.550544 1837 + L 698.050537 277.86623 1838 + L 698.470989 278.705917 1839 + L 698.975531 280.296574 1840 + L 699.732345 283.568131 1841 + L 700.152797 285.637017 1842 + L 700.405069 284.535912 1843 + L 701.498244 279.686531 1844 + L 702.086878 277.979074 1845 + L 702.50733 277.323593 1846 + L 702.843691 277.175559 1847 + L 703.095963 277.290411 1848 + L 703.432325 277.741426 1849 + L 703.852777 278.75893 1850 + L 704.44141 280.914771 1851 + L 705.450495 285.571332 1852 + L 706.711852 279.536419 1853 + L 707.300485 277.670755 1854 + L 707.720937 276.921043 1855 + L 708.057299 276.714425 1856 + L 708.30957 276.797166 1857 + L 708.645932 277.223069 1858 + L 709.066384 278.239875 1859 + L 709.570926 280.088743 1860 + L 710.32774 283.797936 1861 + L 710.664102 285.642852 1862 + L 711.000464 283.925294 1863 + L 712.009549 278.962827 1864 + L 712.598182 277.032557 1865 + L 713.018634 276.281303 1866 + L 713.354996 276.10176 1867 + L 713.607267 276.221262 1868 + L 713.943629 276.717248 1869 + L 714.364081 277.85262 1870 + L 714.952714 280.279341 1871 + L 715.793619 284.894636 1872 + L 715.9618 285.535253 1873 + L 717.223156 278.604441 1874 + L 717.811789 276.434964 1875 + L 718.232241 275.550445 1876 + L 718.568603 275.294955 1877 + L 718.820874 275.378204 1878 + L 719.073146 275.697707 1879 + L 719.409507 276.481475 1880 + L 719.91405 278.363192 1881 + L 720.586774 281.929887 1882 + L 721.175407 285.647178 1883 + L 721.595859 283.045914 1884 + L 722.604944 277.298454 1885 + L 723.193577 275.133976 1886 + L 723.614029 274.347786 1887 + L 723.866301 274.213084 1888 + L 724.118572 274.339287 1889 + L 724.454934 274.912353 1890 + L 724.875386 276.252723 1891 + L 725.379928 278.675788 1892 + L 726.136742 283.534516 1893 + L 726.473104 285.476613 1894 + L 727.734461 276.950204 1895 + L 728.323094 274.232527 1896 + L 728.743546 273.100879 1897 + L 729.079908 272.752224 1898 + L 729.332179 272.831883 1899 + L 729.58445 273.206743 1900 + L 729.920812 274.15672 1901 + L 730.341264 276.02284 1902 + L 730.929897 279.709219 1903 + L 731.686711 285.650296 1904 + L 731.770802 285.081487 1905 + L 733.032158 275.359462 1906 + L 733.620791 272.290904 1907 + L 734.041243 271.03788 1908 + L 734.293515 270.714351 1909 + L 734.545786 270.728714 1910 + L 734.798057 271.086022 1911 + L 735.134419 272.090316 1912 + L 735.554871 274.151297 1913 + L 736.143504 278.33723 1914 + L 736.984409 285.367998 1915 + L 738.329856 273.063717 1916 + L 738.918489 269.458221 1917 + L 739.338941 268.006212 1918 + L 739.591212 267.649187 1919 + L 739.759393 267.63654 1920 + L 740.011664 267.962016 1921 + L 740.348026 269.038208 1922 + L 740.768478 271.378013 1923 + L 741.357111 276.297561 1924 + L 742.198016 285.652403 1925 + L 742.282106 284.761836 1926 + L 743.711644 268.727299 1927 + L 744.300277 264.527045 1928 + L 744.720729 262.979278 1929 + L 744.973 262.711642 1930 + L 745.141181 262.822292 1931 + L 745.393452 263.429518 1932 + L 745.729814 265.061023 1933 + L 746.150266 268.371784 1934 + L 746.738899 275.104571 1935 + L 747.495713 285.108511 1936 + L 749.093432 261.173353 1937 + L 749.682065 255.758604 1938 + L 750.018426 254.124286 1939 + L 750.270698 253.694789 1940 + L 750.438879 253.808936 1941 + L 750.69115 254.598939 1942 + L 751.027512 256.821882 1943 + L 751.447964 261.45002 1944 + L 752.036597 271.09378 1945 + L 752.70932 285.653621 1946 + L 752.793411 283.774243 1947 + L 754.6434 241.462163 1948 + L 755.147943 234.6733 1949 + L 755.484305 232.322634 1950 + L 755.652486 231.896728 1951 + L 755.736576 231.883318 1952 + L 755.904757 232.270787 1953 + L 756.157028 233.926862 1954 + L 756.49339 238.226726 1955 + L 756.913842 247.068028 1956 + L 757.418385 262.757523 1957 + L 758.007018 283.782874 1958 + L 758.847922 238.127868 1959 + L 761.791088 67.644785 1960 + L 762.379721 48.938248 1961 + L 762.800173 41.261761 1962 + L 763.052444 39.086112 1963 + L 763.220625 38.670394 1964 + L 763.220625 38.670394 1965 + " clip-path="url(#p422532d28b)" style="fill: none; stroke: #2ca02c; stroke-width: 1.2; stroke-linecap: square"/> 1966 + </g> 1967 + <g id="line2d_66"> 1968 + <path d="M 426.942969 38.670394 1969 + L 427.11115 38.832587 1970 + L 427.363421 39.683051 1971 + L 427.699783 41.942396 1972 + L 428.120235 46.543248 1973 + L 428.624777 54.577245 1974 + L 429.297501 69.264842 1975 + L 430.138405 93.219381 1976 + L 431.231581 131.477165 1977 + L 435.352012 285.653765 1978 + L 436.277007 261.543735 1979 + L 437.033821 246.928011 1980 + L 437.706545 238.030881 1981 + L 438.211087 233.89143 1982 + L 438.631539 232.053835 1983 + L 438.883811 231.627899 1984 + L 439.051992 231.615527 1985 + L 439.220173 231.813701 1986 + L 439.472444 232.491767 1987 + L 439.808806 234.069812 1988 + L 440.313348 237.754138 1989 + L 440.986072 244.758397 1990 + L 441.911066 257.240511 1991 + L 443.761056 285.652992 1992 + L 443.845147 284.403779 1993 + L 444.938322 269.718307 1994 + L 445.779227 261.141034 1995 + L 446.45195 256.426864 1996 + L 446.956493 254.252096 1997 + L 447.376945 253.348051 1998 + L 447.629216 253.198219 1999 + L 447.881487 253.336572 2000 + L 448.133759 253.755387 2001 + L 448.470121 254.732781 2002 + L 448.974663 257.035968 2003 + L 449.563296 260.844598 2004 + L 450.404201 267.929792 2005 + L 451.833738 282.327393 2006 + L 452.1701 285.651672 2007 + L 453.431456 273.85169 2008 + L 454.272361 267.798734 2009 + L 454.945084 264.40422 2010 + L 455.449627 262.807086 2011 + L 455.870079 262.123205 2012 + L 456.12235 261.99658 2013 + L 456.374622 262.080401 2014 + L 456.710983 262.512449 2015 + L 457.131436 263.54665 2016 + L 457.635978 265.460349 2017 + L 458.308702 269.006371 2018 + L 459.233696 275.2855 2019 + L 460.579143 285.649759 2020 + L 461.92459 275.871204 2021 + L 462.765495 271.157722 2022 + L 463.438218 268.509398 2023 + L 463.942761 267.269074 2024 + L 464.363213 266.748924 2025 + L 464.699575 266.672425 2026 + L 465.035937 266.89458 2027 + L 465.372298 267.407611 2028 + L 465.876841 268.694944 2029 + L 466.465474 270.910264 2030 + L 467.222288 274.693708 2031 + L 468.399554 281.930034 2032 + L 468.988187 285.647178 2033 + L 470.417725 276.993959 2034 + L 471.258629 273.090989 2035 + L 471.931352 270.911865 2036 + L 472.435895 269.907827 2037 + L 472.856347 269.506666 2038 + L 473.192709 269.47462 2039 + L 473.529071 269.697177 2040 + L 473.949523 270.323669 2041 + L 474.454065 271.558424 2042 + L 475.126789 273.937077 2043 + L 475.967693 277.849845 2044 + L 477.397231 285.643826 2045 + L 477.481321 285.16487 2046 + L 478.910859 277.636247 2047 + L 479.751763 274.260315 2048 + L 480.424486 272.396229 2049 + L 480.929029 271.557936 2050 + L 481.349481 271.246575 2051 + L 481.685843 271.254525 2052 + L 482.022205 271.489154 2053 + L 482.442657 272.092699 2054 + L 482.9472 273.247331 2055 + L 483.619923 275.43942 2056 + L 484.460827 279.015526 2057 + L 485.806274 285.639556 2058 + L 487.319902 278.326056 2059 + L 488.160807 275.210173 2060 + L 488.83353 273.472599 2061 + L 489.338073 272.6794 2062 + L 489.758525 272.373411 2063 + L 490.094887 272.365383 2064 + L 490.431248 272.56698 2065 + L 490.851701 273.107028 2066 + L 491.356243 274.156557 2067 + L 492.028967 276.168657 2068 + L 492.869871 279.476767 2069 + L 494.215318 285.634164 2070 + L 495.813036 278.414741 2071 + L 496.653941 275.54256 2072 + L 497.326664 273.965336 2073 + L 497.831207 273.267798 2074 + L 498.251659 273.023947 2075 + L 498.588021 273.0537 2076 + L 498.924383 273.282362 2077 + L 499.344835 273.841283 2078 + L 499.849377 274.892156 2079 + L 500.522101 276.872321 2080 + L 501.363005 280.093491 2081 + L 502.624362 285.627363 2082 + L 504.22208 278.642346 2083 + L 505.062984 275.839625 2084 + L 505.735708 274.28813 2085 + L 506.240251 273.593206 2086 + L 506.660703 273.341571 2087 + L 506.997064 273.359273 2088 + L 507.333426 273.571349 2089 + L 507.753878 274.104174 2090 + L 508.258421 275.117709 2091 + L 508.931145 277.042007 2092 + L 509.772049 280.191817 2093 + L 511.033405 285.618743 2094 + L 512.715214 278.37174 2095 + L 513.556119 275.6528 2096 + L 514.228842 274.173396 2097 + L 514.733385 273.5343 2098 + L 515.153837 273.329765 2099 + L 515.490199 273.385237 2100 + L 515.910651 273.727352 2101 + L 516.415193 274.5265 2102 + L 517.003826 275.958541 2103 + L 517.76064 278.482928 2104 + L 518.769726 282.715182 2105 + L 519.442449 285.607702 2106 + L 521.124258 278.234524 2107 + L 521.965162 275.444187 2108 + L 522.637886 273.913395 2109 + L 523.142428 273.243015 2110 + L 523.56288 273.019108 2111 + L 523.899242 273.064387 2112 + L 524.319694 273.401325 2113 + L 524.740147 274.042838 2114 + L 525.32878 275.423714 2115 + L 526.001503 277.614935 2116 + L 526.926498 281.453287 2117 + L 527.851493 285.593325 2118 + L 529.617392 277.564119 2119 + L 530.458296 274.714592 2120 + L 531.13102 273.178153 2121 + L 531.635562 272.53043 2122 + L 532.056015 272.343705 2123 + L 532.392376 272.430769 2124 + L 532.812829 272.834732 2125 + L 533.317371 273.741145 2126 + L 533.906004 275.342723 2127 + L 534.662818 278.149097 2128 + L 535.671903 282.844369 2129 + L 536.260536 285.574165 2130 + L 538.026436 276.951142 2131 + L 538.86734 273.857262 2132 + L 539.540063 272.171438 2133 + L 540.044606 271.44758 2134 + L 540.465058 271.224801 2135 + L 540.80142 271.302531 2136 + L 541.137782 271.608616 2137 + L 541.558234 272.307444 2138 + L 542.062777 273.59075 2139 + L 542.7355 275.988486 2140 + L 543.576404 279.888068 2141 + L 544.66958 285.547792 2142 + L 546.51957 275.588041 2143 + L 547.360474 272.217465 2144 + L 548.033198 270.406952 2145 + L 548.53774 269.655607 2146 + L 548.874102 269.464618 2147 + L 549.210464 269.52873 2148 + L 549.546825 269.849709 2149 + L 549.967278 270.608416 2150 + L 550.47182 272.024677 2151 + L 551.144544 274.700829 2152 + L 551.985448 279.095861 2153 + L 553.078624 285.509814 2154 + L 555.012704 273.552736 2155 + L 555.853608 269.71292 2156 + L 556.442241 267.87076 2157 + L 556.946784 266.94301 2158 + L 557.283146 266.683979 2159 + L 557.619507 266.722873 2160 + L 557.955869 267.063535 2161 + L 558.376321 267.912105 2162 + L 558.880864 269.533394 2163 + L 559.469497 272.201123 2164 + L 560.226311 276.691608 2165 + L 561.319487 284.663275 2166 + L 561.487667 285.451412 2167 + L 563.505838 270.311873 2168 + L 564.346742 265.650549 2169 + L 564.935375 263.419433 2170 + L 565.439918 262.30821 2171 + L 565.77628 262.012391 2172 + L 566.028551 262.033407 2173 + L 566.280822 262.266194 2174 + L 566.617184 262.908009 2175 + L 567.037636 264.239255 2176 + L 567.542179 266.589015 2177 + L 568.214902 270.90213 2178 + L 569.055807 277.882648 2179 + L 569.896711 285.351947 2180 + L 572.167153 263.134317 2181 + L 572.923967 257.756923 2182 + L 573.5126 254.887399 2183 + L 573.933052 253.6665 2184 + L 574.269414 253.231804 2185 + L 574.521685 253.236714 2186 + L 574.773956 253.532847 2187 + L 575.110318 254.387904 2188 + L 575.53077 256.200384 2189 + L 576.035313 259.451038 2190 + L 576.708036 265.51563 2191 + L 577.548941 275.525291 2192 + L 578.305755 285.149324 2193 + L 581.24892 242.343451 2194 + L 581.921644 236.038271 2195 + L 582.426186 232.995868 2196 + L 582.762548 231.895412 2197 + L 583.014819 231.598645 2198 + L 583.183 231.664584 2199 + L 583.435271 232.173409 2200 + L 583.771633 233.642725 2201 + L 584.192085 236.79432 2202 + L 584.696628 242.557328 2203 + L 585.285261 252.039527 2204 + L 586.042075 268.501581 2205 + L 586.714798 284.531645 2206 + L 587.723884 251.280994 2207 + L 589.237512 193.019361 2208 + L 591.507953 105.696734 2209 + L 592.517039 74.711831 2210 + L 593.357943 55.36591 2211 + L 593.946576 45.995888 2212 + L 594.451119 40.94538 2213 + L 594.78748 39.166907 2214 + L 595.039752 38.680533 2215 + L 595.207933 38.761635 2216 + L 595.376113 39.166907 2217 + L 595.628385 40.380336 2218 + L 595.964746 43.117561 2219 + L 596.469289 49.565154 2220 + L 597.057922 60.468091 2221 + L 597.814736 79.340633 2222 + L 598.739731 108.590957 2223 + L 600.085178 159.260944 2224 + L 602.860162 265.865113 2225 + L 603.448795 284.531645 2226 + L 603.532886 284.419926 2227 + L 604.457881 260.606685 2228 + L 605.214694 246.258128 2229 + L 605.887418 237.603634 2230 + L 606.391961 233.642725 2231 + L 606.812413 231.948272 2232 + L 607.064684 231.60474 2233 + L 607.232865 231.64557 2234 + L 607.485136 232.096715 2235 + L 607.821498 233.390979 2236 + L 608.24195 236.038271 2237 + L 608.830583 241.431863 2238 + L 609.587397 250.672767 2239 + L 610.764663 268.175142 2240 + L 611.857839 285.149324 2241 + L 611.941929 285.026795 2242 + L 613.119196 269.225539 2243 + L 613.9601 260.787679 2244 + L 614.632823 256.200384 2245 + L 615.137366 254.124563 2246 + L 615.473728 253.401461 2247 + L 615.725999 253.203001 2248 + L 615.97827 253.293802 2249 + L 616.230542 253.6665 2250 + L 616.566903 254.585235 2251 + L 617.071446 256.808006 2252 + L 617.660079 260.536912 2253 + L 618.500983 267.539635 2254 + L 619.930521 281.892391 2255 + L 620.266883 285.351947 2256 + L 620.350973 285.225062 2257 + L 621.61233 273.507318 2258 + L 622.453234 267.546355 2259 + L 623.125958 264.239255 2260 + L 623.6305 262.712065 2261 + L 624.050952 262.087371 2262 + L 624.303224 261.996021 2263 + L 624.555495 262.114579 2264 + L 624.891857 262.591611 2265 + L 625.312309 263.679003 2266 + L 625.816851 265.650549 2267 + L 626.489575 269.260719 2268 + L 627.41457 275.598544 2269 + L 628.675926 285.451412 2270 + L 628.760017 285.320097 2271 + L 630.105464 275.603608 2272 + L 630.946368 270.960814 2273 + L 631.619092 268.380873 2274 + L 632.123634 267.195864 2275 + L 632.544086 266.722873 2276 + L 632.880448 266.683979 2277 + L 633.21681 266.94301 2278 + L 633.637262 267.672652 2279 + L 634.141805 269.108285 2280 + L 634.814528 271.866338 2281 + L 635.655433 276.386789 2282 + L 637.08497 285.509814 2283 + L 637.16906 285.373056 2284 + L 638.598598 276.772118 2285 + L 639.439502 272.928351 2286 + L 640.112226 270.806893 2287 + L 640.616768 269.849709 2288 + L 641.037221 269.488622 2289 + L 641.373582 269.488606 2290 + L 641.709944 269.742633 2291 + L 642.130396 270.406952 2292 + L 642.634939 271.683718 2293 + L 643.307662 274.110395 2294 + L 644.148567 278.066598 2295 + L 645.494014 285.547792 2296 + L 645.578104 285.404173 2297 + L 647.007642 277.8309 2298 + L 647.848546 274.403253 2299 + L 648.521269 272.488385 2300 + L 649.025812 271.608616 2301 + L 649.446264 271.261652 2302 + L 649.782626 271.241062 2303 + L 650.118988 271.44758 2304 + L 650.53944 272.017242 2305 + L 651.043982 273.134117 2306 + L 651.716706 275.282848 2307 + L 652.55761 278.819473 2308 + L 653.903057 285.574165 2309 + L 653.987148 285.421907 2310 + L 655.500776 278.149097 2311 + L 656.34168 275.080304 2312 + L 657.014403 273.389205 2313 + L 657.518946 272.634093 2314 + L 657.939398 272.360879 2315 + L 658.27576 272.379174 2316 + L 658.612122 272.606743 2317 + L 659.032574 273.178153 2318 + L 659.537117 274.262711 2319 + L 660.20984 276.315151 2320 + L 661.050744 279.660146 2321 + L 662.312101 285.593325 2322 + L 662.396191 285.430215 2323 + L 663.909819 278.580478 2324 + L 664.750724 275.663963 2325 + L 665.423447 274.042838 2326 + L 665.92799 273.309238 2327 + L 666.348442 273.0343 2328 + L 666.684804 273.039052 2329 + L 667.021165 273.243015 2330 + L 667.441618 273.772071 2331 + L 667.94616 274.789533 2332 + L 668.618884 276.731143 2333 + L 669.459788 279.916968 2334 + L 670.721145 285.607702 2335 + L 670.805235 285.430937 2336 + L 672.402953 278.482928 2337 + L 673.243858 275.723161 2338 + L 673.916581 274.2143 2339 + L 674.421124 273.554459 2340 + L 674.841576 273.333108 2341 + L 675.177938 273.375195 2342 + L 675.59839 273.700372 2343 + L 676.102933 274.478458 2344 + L 676.691566 275.884312 2345 + L 677.44838 278.37174 2346 + L 678.457465 282.548986 2347 + L 679.130188 285.618743 2348 + L 679.298369 285.03685 2349 + L 680.811997 278.52899 2350 + L 681.652901 275.767336 2351 + L 682.325625 274.245454 2352 + L 682.830168 273.571349 2353 + L 683.25062 273.336554 2354 + L 683.586981 273.367638 2355 + L 684.007434 273.679663 2356 + L 684.427886 274.28813 2357 + L 685.016519 275.609178 2358 + L 685.689242 277.713785 2359 + L 686.614237 281.406705 2360 + L 687.539232 285.627363 2361 + L 687.623322 285.411182 2362 + L 689.305131 278.075475 2363 + L 690.146036 275.328683 2364 + L 690.818759 273.841283 2365 + L 691.323302 273.206724 2366 + L 691.743754 273.01382 2367 + L 692.080116 273.084115 2368 + L 692.500568 273.451952 2369 + L 693.00511 274.29271 2370 + L 693.593743 275.787894 2371 + L 694.350557 278.414741 2372 + L 695.359643 282.812734 2373 + L 695.948276 285.634164 2374 + L 696.200547 284.572845 2375 + L 697.714175 277.729276 2376 + L 698.555079 274.834233 2377 + L 699.227803 273.252321 2378 + L 699.732345 272.56698 2379 + L 700.152797 272.347644 2380 + L 700.489159 272.408358 2381 + L 700.825521 272.6794 2382 + L 701.245973 273.308903 2383 + L 701.750516 274.47219 2384 + L 702.423239 276.651048 2385 + L 703.264144 280.195865 2386 + L 704.357319 285.639556 2387 + L 704.44141 285.356184 2388 + L 706.207309 276.774568 2389 + L 707.048213 273.729535 2390 + L 707.720937 272.092699 2391 + L 708.225479 271.409481 2392 + L 708.561841 271.231152 2393 + L 708.898203 271.280304 2394 + L 709.234565 271.557936 2395 + L 709.655017 272.222048 2396 + L 710.159559 273.466069 2397 + L 710.832283 275.817744 2398 + L 711.673187 279.674019 2399 + L 712.766363 285.643826 2400 + L 712.850453 285.307615 2401 + L 714.616353 275.783413 2402 + L 715.457257 272.358862 2403 + L 716.12998 270.493893 2404 + L 716.634523 269.697177 2405 + L 716.970885 269.47462 2406 + L 717.307247 269.506666 2407 + L 717.643608 269.795576 2408 + L 718.064061 270.514948 2409 + L 718.568603 271.886386 2410 + L 719.241327 274.509434 2411 + L 720.082231 278.853593 2412 + L 721.175407 285.647178 2413 + L 721.259497 285.234863 2414 + L 723.109487 273.775927 2415 + L 723.950391 269.873349 2416 + L 724.539024 267.976146 2417 + L 725.043567 266.995969 2418 + L 725.379928 266.700193 2419 + L 725.71629 266.701543 2420 + L 726.052652 267.004431 2421 + L 726.473104 267.806345 2422 + L 726.977647 269.373974 2423 + L 727.56628 271.984736 2424 + L 728.323094 276.415264 2425 + L 729.416269 284.33627 2426 + L 729.58445 285.649759 2427 + L 730.088993 281.791652 2428 + L 731.602621 270.582744 2429 + L 732.443525 265.845224 2430 + L 733.032158 263.54665 2431 + L 733.536701 262.370717 2432 + L 733.873063 262.029286 2433 + L 734.125334 262.01526 2434 + L 734.377605 262.212612 2435 + L 734.713967 262.807086 2436 + L 735.134419 264.08002 2437 + L 735.638962 266.36294 2438 + L 736.311685 270.596197 2439 + L 737.15259 277.499217 2440 + L 737.993494 285.651672 2441 + L 738.582127 279.713094 2442 + L 740.179845 264.18322 2443 + L 741.02075 258.009333 2444 + L 741.609383 255.049024 2445 + L 742.029835 253.755387 2446 + L 742.366197 253.258866 2447 + L 742.618468 253.215824 2448 + L 742.870739 253.463054 2449 + L 743.207101 254.252096 2450 + L 743.627553 255.982085 2451 + L 744.132096 259.136304 2452 + L 744.804819 265.082117 2453 + L 745.645724 274.969884 2454 + L 746.402538 285.652992 2455 + L 747.243442 272.797144 2456 + L 748.925251 247.890569 2457 + L 749.766155 238.508291 2458 + L 750.354788 234.069812 2459 + L 750.77524 232.216095 2460 + L 751.111602 231.615527 2461 + L 751.279783 231.627899 2462 + L 751.447964 231.856644 2463 + L 751.700235 232.616918 2464 + L 752.036597 234.432822 2465 + L 752.457049 238.030881 2466 + L 752.961592 244.339415 2467 + L 753.550225 254.454837 2468 + L 754.307039 271.692817 2469 + L 754.811581 285.653765 2470 + L 755.568395 261.590195 2471 + L 756.913842 211.466618 2472 + L 759.941098 95.910641 2473 + L 760.866093 69.264842 2474 + L 761.622907 53.053861 2475 + L 762.21154 44.469321 2476 + L 762.716082 40.127833 2477 + L 763.052444 38.832587 2478 + L 763.220625 38.670394 2479 + L 763.220625 38.670394 2480 + " clip-path="url(#p422532d28b)" style="fill: none; stroke: #1f77b4; stroke-width: 1.4; stroke-linecap: square"/> 2481 + </g> 2482 + <g id="line2d_67"> 2483 + <path d="M 603.488738 285.715781 2484 + L 603.488738 26.318125 2485 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 1.3,2.145; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.3"/> 2486 + </g> 2487 + <g id="patch_9"> 2488 + <path d="M 426.942969 285.715781 2489 + L 426.942969 26.318125 2490 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2491 + </g> 2492 + <g id="patch_10"> 2493 + <path d="M 763.220625 285.715781 2494 + L 763.220625 26.318125 2495 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2496 + </g> 2497 + <g id="patch_11"> 2498 + <path d="M 426.942969 285.715781 2499 + L 763.220625 285.715781 2500 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2501 + </g> 2502 + <g id="patch_12"> 2503 + <path d="M 426.942969 26.318125 2504 + L 763.220625 26.318125 2505 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2506 + </g> 2507 + <g id="text_39"> 2508 + <text style="font-size: 8.5px; font-family: sans-serif" transform="translate(433.668522 150.356572)">N = 20 puts a node on 32.05 orders and removes</text> 2509 + <text style="font-size: 8.5px; font-family: sans-serif" transform="translate(433.668522 160.558896)">it; the power-of-two N = 32 lets it through</text> 2510 + </g> 2511 + <g id="text_40"> 2512 + <text style="font-weight: 700; font-size: 12px; font-family: sans-serif; text-anchor: middle" x="595.081797" y="16.318125" transform="rotate(-0 595.081797 16.318125)">Rejecting a Tone by Choosing N (McFadden 1987)</text> 2513 + </g> 2514 + <g id="legend_2"> 2515 + <g id="patch_13"> 2516 + <path d="M 637.363125 68.72 2517 + L 757.620625 68.72 2518 + Q 759.220625 68.72 759.220625 67.12 2519 + L 759.220625 31.918125 2520 + Q 759.220625 30.318125 757.620625 30.318125 2521 + L 637.363125 30.318125 2522 + Q 635.763125 30.318125 635.763125 31.918125 2523 + L 635.763125 67.12 2524 + Q 635.763125 68.72 637.363125 68.72 2525 + z 2526 + " style="fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 2527 + </g> 2528 + <g id="line2d_68"> 2529 + <path d="M 638.963125 36.796875 2530 + L 646.963125 36.796875 2531 + L 654.963125 36.796875 2532 + " style="fill: none; stroke: #2ca02c; stroke-width: 1.2; stroke-linecap: square"/> 2533 + </g> 2534 + <g id="text_41"> 2535 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start" x="661.363125" y="39.596875" transform="rotate(-0 661.363125 39.596875)">N = 32 (power of two)</text> 2536 + </g> 2537 + <g id="line2d_69"> 2538 + <path d="M 638.963125 48.7975 2539 + L 646.963125 48.7975 2540 + L 654.963125 48.7975 2541 + " style="fill: none; stroke: #1f77b4; stroke-width: 1.4; stroke-linecap: square"/> 2542 + </g> 2543 + <g id="text_42"> 2544 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start" x="661.363125" y="51.5975" transform="rotate(-0 661.363125 51.5975)">N = 20 (node on 32.05)</text> 2545 + </g> 2546 + <g id="line2d_70"> 2547 + <path d="M 638.963125 60.798125 2548 + L 646.963125 60.798125 2549 + L 654.963125 60.798125 2550 + " style="fill: none; stroke-dasharray: 1.3,2.145; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.3"/> 2551 + </g> 2552 + <g id="text_43"> 2553 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start" x="661.363125" y="63.598125" transform="rotate(-0 661.363125 63.598125)">Interfering tone (32.05)</text> 2554 + </g> 2555 + </g> 2556 + </g> 2557 + </g> 2558 + <defs> 2559 + <clipPath id="pcc14f2df3a"> 2560 + <rect x="42.942969" y="26.318125" width="336.277656" height="259.397656"/> 2561 + </clipPath> 2562 + <clipPath id="p422532d28b"> 2563 + <rect x="426.942969" y="26.318125" width="336.277656" height="259.397656"/> 2564 + </clipPath> 2565 + </defs> 2566 + </svg>
+2566
.github/images/synchronous_average_dark.svg
··· 1 + <?xml version="1.0" encoding="utf-8" standalone="no"?> 2 + <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 3 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4 + <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="784.734687pt" height="323.916562pt" viewBox="0 0 784.734687 323.916562" xmlns="http://www.w3.org/2000/svg" version="1.1"> 5 + <metadata> 6 + <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 7 + <cc:Work> 8 + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> 9 + <dc:format>image/svg+xml</dc:format> 10 + <dc:creator> 11 + <cc:Agent> 12 + <dc:title>Matplotlib v3.11.1, https://matplotlib.org/</dc:title> 13 + </cc:Agent> 14 + </dc:creator> 15 + </cc:Work> 16 + </rdf:RDF> 17 + </metadata> 18 + <defs> 19 + <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> 20 + </defs> 21 + <g id="figure_1"> 22 + <g id="patch_1"> 23 + <path d="M 0 323.916562 24 + L 784.734687 323.916562 25 + L 784.734687 0 26 + L 0 0 27 + z 28 + "/> 29 + </g> 30 + <g id="axes_1"> 31 + <g id="patch_2"> 32 + <path d="M 42.942969 285.715781 33 + L 379.220625 285.715781 34 + L 379.220625 26.318125 35 + L 42.942969 26.318125 36 + z 37 + "/> 38 + </g> 39 + <g id="matplotlib.axis_1"> 40 + <g id="xtick_1"> 41 + <g id="line2d_1"> 42 + <path d="M 42.942969 285.715781 43 + L 42.942969 26.318125 44 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 45 + </g> 46 + <g id="line2d_2"> 47 + <defs> 48 + <path id="m8d14ee1197" d="M 0 0 49 + L 0 3.5 50 + " style="stroke: #ffffff; stroke-width: 0.8"/> 51 + </defs> 52 + <g> 53 + <use xlink:href="#m8d14ee1197" x="42.942969" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 54 + </g> 55 + </g> 56 + <g id="text_1"> 57 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="42.942969" y="300.313437" transform="rotate(-0 42.942969 300.313437)">0</text> 58 + </g> 59 + </g> 60 + <g id="xtick_2"> 61 + <g id="line2d_3"> 62 + <path d="M 96.747394 285.715781 63 + L 96.747394 26.318125 64 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 65 + </g> 66 + <g id="line2d_4"> 67 + <g> 68 + <use xlink:href="#m8d14ee1197" x="96.747394" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 69 + </g> 70 + </g> 71 + <g id="text_2"> 72 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="96.747394" y="300.313437" transform="rotate(-0 96.747394 300.313437)">5</text> 73 + </g> 74 + </g> 75 + <g id="xtick_3"> 76 + <g id="line2d_5"> 77 + <path d="M 150.551819 285.715781 78 + L 150.551819 26.318125 79 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 80 + </g> 81 + <g id="line2d_6"> 82 + <g> 83 + <use xlink:href="#m8d14ee1197" x="150.551819" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 84 + </g> 85 + </g> 86 + <g id="text_3"> 87 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="150.551819" y="300.313437" transform="rotate(-0 150.551819 300.313437)">10</text> 88 + </g> 89 + </g> 90 + <g id="xtick_4"> 91 + <g id="line2d_7"> 92 + <path d="M 204.356244 285.715781 93 + L 204.356244 26.318125 94 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 95 + </g> 96 + <g id="line2d_8"> 97 + <g> 98 + <use xlink:href="#m8d14ee1197" x="204.356244" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 99 + </g> 100 + </g> 101 + <g id="text_4"> 102 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="204.356244" y="300.313437" transform="rotate(-0 204.356244 300.313437)">15</text> 103 + </g> 104 + </g> 105 + <g id="xtick_5"> 106 + <g id="line2d_9"> 107 + <path d="M 258.160669 285.715781 108 + L 258.160669 26.318125 109 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 110 + </g> 111 + <g id="line2d_10"> 112 + <g> 113 + <use xlink:href="#m8d14ee1197" x="258.160669" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 114 + </g> 115 + </g> 116 + <g id="text_5"> 117 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="258.160669" y="300.313437" transform="rotate(-0 258.160669 300.313437)">20</text> 118 + </g> 119 + </g> 120 + <g id="xtick_6"> 121 + <g id="line2d_11"> 122 + <path d="M 311.965094 285.715781 123 + L 311.965094 26.318125 124 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 125 + </g> 126 + <g id="line2d_12"> 127 + <g> 128 + <use xlink:href="#m8d14ee1197" x="311.965094" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 129 + </g> 130 + </g> 131 + <g id="text_6"> 132 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="311.965094" y="300.313437" transform="rotate(-0 311.965094 300.313437)">25</text> 133 + </g> 134 + </g> 135 + <g id="xtick_7"> 136 + <g id="line2d_13"> 137 + <path d="M 365.769519 285.715781 138 + L 365.769519 26.318125 139 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 140 + </g> 141 + <g id="line2d_14"> 142 + <g> 143 + <use xlink:href="#m8d14ee1197" x="365.769519" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 144 + </g> 145 + </g> 146 + <g id="text_7"> 147 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="365.769519" y="300.313437" transform="rotate(-0 365.769519 300.313437)">30</text> 148 + </g> 149 + </g> 150 + <g id="text_8"> 151 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="211.081797" y="314.314219" transform="rotate(-0 211.081797 314.314219)">Time [ms]</text> 152 + </g> 153 + </g> 154 + <g id="matplotlib.axis_2"> 155 + <g id="ytick_1"> 156 + <g id="line2d_15"> 157 + <path d="M 42.942969 251.157791 158 + L 379.220625 251.157791 159 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 160 + </g> 161 + <g id="line2d_16"> 162 + <defs> 163 + <path id="m5e07181663" d="M 0 0 164 + L -3.5 0 165 + " style="stroke: #ffffff; stroke-width: 0.8"/> 166 + </defs> 167 + <g> 168 + <use xlink:href="#m5e07181663" x="42.942969" y="251.157791" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 169 + </g> 170 + </g> 171 + <g id="text_9"> 172 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="35.942969" y="254.95662" transform="rotate(-0 35.942969 254.95662)">−3</text> 173 + </g> 174 + </g> 175 + <g id="ytick_2"> 176 + <g id="line2d_17"> 177 + <path d="M 42.942969 215.553622 178 + L 379.220625 215.553622 179 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 180 + </g> 181 + <g id="line2d_18"> 182 + <g> 183 + <use xlink:href="#m5e07181663" x="42.942969" y="215.553622" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 184 + </g> 185 + </g> 186 + <g id="text_10"> 187 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="35.942969" y="219.352451" transform="rotate(-0 35.942969 219.352451)">−2</text> 188 + </g> 189 + </g> 190 + <g id="ytick_3"> 191 + <g id="line2d_19"> 192 + <path d="M 42.942969 179.949453 193 + L 379.220625 179.949453 194 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 195 + </g> 196 + <g id="line2d_20"> 197 + <g> 198 + <use xlink:href="#m5e07181663" x="42.942969" y="179.949453" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 199 + </g> 200 + </g> 201 + <g id="text_11"> 202 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="35.942969" y="183.748282" transform="rotate(-0 35.942969 183.748282)">−1</text> 203 + </g> 204 + </g> 205 + <g id="ytick_4"> 206 + <g id="line2d_21"> 207 + <path d="M 42.942969 144.345285 208 + L 379.220625 144.345285 209 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 210 + </g> 211 + <g id="line2d_22"> 212 + <g> 213 + <use xlink:href="#m5e07181663" x="42.942969" y="144.345285" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 214 + </g> 215 + </g> 216 + <g id="text_12"> 217 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="35.942969" y="148.144113" transform="rotate(-0 35.942969 148.144113)">0</text> 218 + </g> 219 + </g> 220 + <g id="ytick_5"> 221 + <g id="line2d_23"> 222 + <path d="M 42.942969 108.741116 223 + L 379.220625 108.741116 224 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 225 + </g> 226 + <g id="line2d_24"> 227 + <g> 228 + <use xlink:href="#m5e07181663" x="42.942969" y="108.741116" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 229 + </g> 230 + </g> 231 + <g id="text_13"> 232 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="35.942969" y="112.539944" transform="rotate(-0 35.942969 112.539944)">1</text> 233 + </g> 234 + </g> 235 + <g id="ytick_6"> 236 + <g id="line2d_25"> 237 + <path d="M 42.942969 73.136947 238 + L 379.220625 73.136947 239 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 240 + </g> 241 + <g id="line2d_26"> 242 + <g> 243 + <use xlink:href="#m5e07181663" x="42.942969" y="73.136947" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 244 + </g> 245 + </g> 246 + <g id="text_14"> 247 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="35.942969" y="76.935775" transform="rotate(-0 35.942969 76.935775)">2</text> 248 + </g> 249 + </g> 250 + <g id="ytick_7"> 251 + <g id="line2d_27"> 252 + <path d="M 42.942969 37.532778 253 + L 379.220625 37.532778 254 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 255 + </g> 256 + <g id="line2d_28"> 257 + <g> 258 + <use xlink:href="#m5e07181663" x="42.942969" y="37.532778" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 259 + </g> 260 + </g> 261 + <g id="text_15"> 262 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="35.942969" y="41.331606" transform="rotate(-0 35.942969 41.331606)">3</text> 263 + </g> 264 + </g> 265 + <g id="text_16"> 266 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="14.798438" y="156.016953" transform="rotate(-90 14.798438 156.016953)">Amplitude</text> 267 + </g> 268 + </g> 269 + <g id="line2d_29"> 270 + <path d="M 42.942969 102.241685 271 + L 44.256553 60.357999 272 + L 45.570138 64.998338 273 + L 46.883723 120.619228 274 + L 48.197307 113.93945 275 + L 49.510892 121.270787 276 + L 50.824476 86.157267 277 + L 52.138061 106.005501 278 + L 53.451646 80.186207 279 + L 54.76523 162.844945 280 + L 56.078815 53.639859 281 + L 57.392399 106.609076 282 + L 58.705984 81.726645 283 + L 60.019568 107.835701 284 + L 61.333153 115.718897 285 + L 62.646738 89.102212 286 + L 63.960322 78.004772 287 + L 65.273907 111.431682 288 + L 66.587491 110.667603 289 + L 67.901076 84.922564 290 + L 69.214661 135.864611 291 + L 70.528245 157.897949 292 + L 71.84183 98.599297 293 + L 73.155414 134.514747 294 + L 74.468999 176.507959 295 + L 75.782584 143.434728 296 + L 77.096168 134.783574 297 + L 78.409753 160.500652 298 + L 79.723337 172.703759 299 + L 81.036922 126.585872 300 + L 82.350507 101.852861 301 + L 83.664091 140.704541 302 + L 84.977676 159.721377 303 + L 86.29126 126.318796 304 + L 87.604845 118.237598 305 + L 88.91843 153.107497 306 + L 90.232014 128.334534 307 + L 91.545599 114.415612 308 + L 92.859183 156.083933 309 + L 94.172768 176.946276 310 + L 95.486353 141.072524 311 + L 96.799937 145.182824 312 + L 98.113522 118.604299 313 + L 99.427106 195.018945 314 + L 100.740691 175.11349 315 + L 102.054276 180.440334 316 + L 103.36786 208.449523 317 + L 104.681445 148.161179 318 + L 105.995029 134.22072 319 + L 107.308614 173.325723 320 + L 108.622198 103.941501 321 + L 109.935783 120.248279 322 + L 111.249368 124.642824 323 + L 112.562952 129.947536 324 + L 113.876537 110.309677 325 + L 115.190121 181.418206 326 + L 116.503706 117.358685 327 + L 117.817291 115.87488 328 + L 119.130875 189.85099 329 + L 120.44446 120.731147 330 + L 121.758044 138.405747 331 + L 123.071629 104.248119 332 + L 124.385214 142.255538 333 + L 125.698798 128.089078 334 + L 127.012383 116.090306 335 + L 128.325967 154.826115 336 + L 129.639552 107.79884 337 + L 130.953137 130.612419 338 + L 132.266721 112.140356 339 + L 133.580306 145.393899 340 + L 134.89389 95.13492 341 + L 136.207475 111.80743 342 + L 137.52106 138.323629 343 + L 138.834644 114.123647 344 + L 140.148229 95.877704 345 + L 141.461813 80.814658 346 + L 142.775398 190.253828 347 + L 144.088983 113.81874 348 + L 145.402567 129.202651 349 + L 146.716152 149.064596 350 + L 148.029736 180.178773 351 + L 149.343321 109.767269 352 + L 150.656906 192.001444 353 + L 151.97049 135.271614 354 + L 153.284075 113.339004 355 + L 154.597659 207.396408 356 + L 155.911244 167.211797 357 + L 157.224828 200.449242 358 + L 158.538413 151.778746 359 + L 159.851998 111.998889 360 + L 161.165582 96.391919 361 + L 162.479167 218.336753 362 + L 165.106336 139.863273 363 + L 166.419921 112.184726 364 + L 169.04709 186.966318 365 + L 170.360674 153.92246 366 + L 171.674259 164.265134 367 + L 172.987844 170.637735 368 + L 174.301428 188.082321 369 + L 175.615013 152.874171 370 + L 176.928597 156.165001 371 + L 178.242182 169.878872 372 + L 179.555767 175.069263 373 + L 180.869351 210.281119 374 + L 182.182936 186.208463 375 + L 183.49652 133.76706 376 + L 184.810105 180.169413 377 + L 186.12369 222.011156 378 + L 187.437274 135.5109 379 + L 188.750859 163.415084 380 + L 190.064443 115.349781 381 + L 191.378028 183.077044 382 + L 192.691613 202.251875 383 + L 194.005197 236.203744 384 + L 195.318782 150.123143 385 + L 196.632366 112.710323 386 + L 197.945951 223.259846 387 + L 199.259536 219.844758 388 + L 200.57312 182.105875 389 + L 201.886705 229.426389 390 + L 203.200289 213.075475 391 + L 204.513874 216.869644 392 + L 205.827458 200.539967 393 + L 207.141043 172.369775 394 + L 208.454628 206.967781 395 + L 209.768212 178.328329 396 + L 211.081797 220.745288 397 + L 212.395381 196.186233 398 + L 213.708966 273.924979 399 + L 215.022551 250.602183 400 + L 216.336135 177.227168 401 + L 217.64972 219.554378 402 + L 218.963304 179.986555 403 + L 220.276889 178.753874 404 + L 221.590474 151.214366 405 + L 222.904058 164.721377 406 + L 224.217643 155.252315 407 + L 225.531227 188.295549 408 + L 226.844812 203.984405 409 + L 228.158397 201.99892 410 + L 229.471981 191.210939 411 + L 230.785566 208.77144 412 + L 232.09915 187.347885 413 + L 233.412735 170.140935 414 + L 234.72632 156.643025 415 + L 236.039904 173.194762 416 + L 237.353489 221.720712 417 + L 238.667073 160.744209 418 + L 239.980658 149.63694 419 + L 241.294243 120.851039 420 + L 242.607827 135.936092 421 + L 243.921412 174.099533 422 + L 245.234996 176.057772 423 + L 246.548581 88.355454 424 + L 247.862166 128.234166 425 + L 249.17575 93.927932 426 + L 250.489335 84.59156 427 + L 251.802919 179.039583 428 + L 253.116504 141.02902 429 + L 254.430089 139.195157 430 + L 255.743673 136.4927 431 + L 257.057258 137.607838 432 + L 258.370842 148.993136 433 + L 259.684427 150.370828 434 + L 260.998011 204.329876 435 + L 262.311596 161.946649 436 + L 263.625181 180.74415 437 + L 264.938765 152.913837 438 + L 266.25235 171.801862 439 + L 267.565934 136.89606 440 + L 268.879519 130.116565 441 + L 270.193104 145.889615 442 + L 271.506688 144.977983 443 + L 272.820273 151.297929 444 + L 274.133857 167.636544 445 + L 275.447442 157.55441 446 + L 276.761027 167.012236 447 + L 278.074611 137.615323 448 + L 279.388196 148.344824 449 + L 280.70178 129.014215 450 + L 282.015365 188.814758 451 + L 283.32895 116.884023 452 + L 284.642534 168.524076 453 + L 285.956119 166.649178 454 + L 287.269703 148.663413 455 + L 288.583288 159.656623 456 + L 289.896873 131.838849 457 + L 291.210457 159.124974 458 + L 292.524042 174.785678 459 + L 293.837626 167.680722 460 + L 295.151211 99.004814 461 + L 297.77838 179.234906 462 + L 299.091965 142.467488 463 + L 300.405549 193.367184 464 + L 301.719134 87.597849 465 + L 303.032719 194.616546 466 + L 304.346303 131.899426 467 + L 305.659888 131.132186 468 + L 306.973472 196.117929 469 + L 308.287057 141.513681 470 + L 309.600641 120.491057 471 + L 310.914226 138.54208 472 + L 312.227811 146.145096 473 + L 313.541395 125.011263 474 + L 314.85498 150.826701 475 + L 316.168564 145.638514 476 + L 317.482149 160.594881 477 + L 318.795734 136.263051 478 + L 320.109318 186.107073 479 + L 321.422903 130.057144 480 + L 322.736487 170.471972 481 + L 324.050072 187.847258 482 + L 326.677241 95.403655 483 + L 327.990826 116.555344 484 + L 329.30441 161.271485 485 + L 330.617995 119.809089 486 + L 331.93158 153.699013 487 + L 333.245164 140.069308 488 + L 334.558749 130.024877 489 + L 335.872333 203.561053 490 + L 337.185918 120.0503 491 + L 338.499503 155.642374 492 + L 339.813087 141.643485 493 + L 341.126672 163.128582 494 + L 342.440256 161.245476 495 + L 343.753841 139.843132 496 + L 345.067426 80.429386 497 + L 346.38101 50.867188 498 + L 347.694595 102.385984 499 + L 349.008179 64.471084 500 + L 350.321764 105.795855 501 + L 351.635349 156.734709 502 + L 352.948933 89.483295 503 + L 354.262518 78.928073 504 + L 355.576102 106.027181 505 + L 356.889687 82.146614 506 + L 358.203271 73.241824 507 + L 359.516856 119.081696 508 + L 360.830441 138.884088 509 + L 362.144025 99.204565 510 + L 363.45761 99.478113 511 + L 364.771194 104.750503 512 + L 366.084779 62.829468 513 + L 367.398364 40.209448 514 + L 368.711948 109.642109 515 + L 370.025533 75.061221 516 + L 371.339117 68.374373 517 + L 372.652702 76.662692 518 + L 373.966287 66.945901 519 + L 375.279871 113.715109 520 + L 376.593456 78.450276 521 + L 377.90704 38.108928 522 + L 377.90704 38.108928 523 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke: #555555; stroke-linecap: square"/> 524 + </g> 525 + <g id="line2d_30"> 526 + <path d="M 42.942969 103.578389 527 + L 44.256553 103.102484 528 + L 45.570138 103.527138 529 + L 46.883723 99.520969 530 + L 48.197307 108.184621 531 + L 49.510892 109.920275 532 + L 50.824476 103.653599 533 + L 52.138061 113.60295 534 + L 53.451646 104.292634 535 + L 54.76523 107.746921 536 + L 56.078815 99.849718 537 + L 57.392399 101.720718 538 + L 58.705984 99.976361 539 + L 60.019568 106.604734 540 + L 61.333153 107.707133 541 + L 62.646738 103.308386 542 + L 63.960322 95.347067 543 + L 65.273907 118.600667 544 + L 66.587491 101.872342 545 + L 67.901076 112.999397 546 + L 69.214661 107.730157 547 + L 70.528245 118.752074 548 + L 71.84183 111.95346 549 + L 73.155414 125.29871 550 + L 74.468999 115.071755 551 + L 75.782584 118.998396 552 + L 77.096168 121.717822 553 + L 78.409753 116.766741 554 + L 79.723337 122.311113 555 + L 81.036922 135.598022 556 + L 82.350507 133.120812 557 + L 83.664091 142.499824 558 + L 84.977676 134.236339 559 + L 86.29126 136.979415 560 + L 87.604845 139.146988 561 + L 88.91843 133.352826 562 + L 90.232014 148.324969 563 + L 91.545599 154.472605 564 + L 92.859183 146.548944 565 + L 94.172768 154.387014 566 + L 95.486353 152.041437 567 + L 96.799937 155.067264 568 + L 98.113522 149.118242 569 + L 99.427106 155.674539 570 + L 100.740691 154.587839 571 + L 102.054276 155.350701 572 + L 103.36786 152.001979 573 + L 104.681445 149.763563 574 + L 105.995029 145.955293 575 + L 107.308614 142.525645 576 + L 108.622198 151.276165 577 + L 109.935783 148.547731 578 + L 111.249368 147.988044 579 + L 112.562952 146.027328 580 + L 113.876537 137.469308 581 + L 115.190121 139.874574 582 + L 116.503706 127.483204 583 + L 117.817291 135.215593 584 + L 119.130875 132.211283 585 + L 120.44446 125.536379 586 + L 121.758044 129.92815 587 + L 123.071629 136.49275 588 + L 124.385214 129.251305 589 + L 125.698798 134.405791 590 + L 127.012383 125.428754 591 + L 128.325967 118.36563 592 + L 129.639552 125.33305 593 + L 130.953137 126.385396 594 + L 132.266721 123.206893 595 + L 133.580306 119.482423 596 + L 134.89389 129.084471 597 + L 136.207475 132.080492 598 + L 137.52106 127.501319 599 + L 138.834644 129.391936 600 + L 140.148229 127.792451 601 + L 141.461813 139.05983 602 + L 142.775398 135.115735 603 + L 144.088983 138.596773 604 + L 145.402567 134.67988 605 + L 146.716152 138.937908 606 + L 148.029736 142.251444 607 + L 149.343321 147.428695 608 + L 150.656906 145.100657 609 + L 151.97049 153.628199 610 + L 153.284075 154.690881 611 + L 154.597659 153.264416 612 + L 155.911244 160.641299 613 + L 157.224828 166.17286 614 + L 158.538413 156.797193 615 + L 159.851998 162.159048 616 + L 161.165582 158.305216 617 + L 162.479167 159.840102 618 + L 163.792751 157.576957 619 + L 165.106336 152.974522 620 + L 166.419921 153.340352 621 + L 167.733505 163.540219 622 + L 169.04709 158.560556 623 + L 170.360674 174.783294 624 + L 171.674259 158.882701 625 + L 172.987844 155.669824 626 + L 174.301428 161.825904 627 + L 175.615013 166.841116 628 + L 176.928597 169.760865 629 + L 178.242182 166.880769 630 + L 179.555767 168.220202 631 + L 180.869351 170.440597 632 + L 182.182936 174.336553 633 + L 183.49652 171.933437 634 + L 184.810105 171.719138 635 + L 186.12369 180.109191 636 + L 187.437274 182.255164 637 + L 188.750859 185.25555 638 + L 190.064443 181.992021 639 + L 192.691613 185.638065 640 + L 194.005197 188.628982 641 + L 195.318782 186.204772 642 + L 196.632366 193.975947 643 + L 197.945951 195.9224 644 + L 199.259536 197.487421 645 + L 200.57312 194.988152 646 + L 201.886705 199.049808 647 + L 203.200289 200.292448 648 + L 204.513874 211.383566 649 + L 205.827458 208.830733 650 + L 207.141043 214.176417 651 + L 208.454628 211.778071 652 + L 209.768212 207.964028 653 + L 211.081797 205.277076 654 + L 212.395381 204.287604 655 + L 213.708966 205.026652 656 + L 215.022551 194.709647 657 + L 216.336135 197.590602 658 + L 217.64972 198.92907 659 + L 218.963304 199.250677 660 + L 220.276889 195.555419 661 + L 221.590474 194.305445 662 + L 222.904058 187.50986 663 + L 224.217643 186.683142 664 + L 225.531227 187.29554 665 + L 226.844812 179.8798 666 + L 228.158397 175.386574 667 + L 229.471981 180.697335 668 + L 232.09915 173.070915 669 + L 233.412735 167.595199 670 + L 234.72632 158.843877 671 + L 236.039904 166.47292 672 + L 237.353489 145.768917 673 + L 238.667073 160.669424 674 + L 239.980658 157.168802 675 + L 241.294243 155.383537 676 + L 242.607827 140.570272 677 + L 243.921412 161.702826 678 + L 245.234996 148.699633 679 + L 246.548581 149.781486 680 + L 247.862166 147.596626 681 + L 249.17575 155.562529 682 + L 250.489335 154.567067 683 + L 251.802919 154.339139 684 + L 253.116504 163.722053 685 + L 254.430089 156.557493 686 + L 255.743673 156.739359 687 + L 257.057258 150.842224 688 + L 258.370842 157.271847 689 + L 259.684427 158.613101 690 + L 260.998011 152.951039 691 + L 262.311596 148.37939 692 + L 263.625181 153.983899 693 + L 264.938765 148.349942 694 + L 266.25235 158.869939 695 + L 267.565934 163.760481 696 + L 268.879519 154.850394 697 + L 270.193104 151.144285 698 + L 271.506688 157.59479 699 + L 272.820273 147.846131 700 + L 274.133857 158.797748 701 + L 276.761027 154.140179 702 + L 278.074611 152.233683 703 + L 279.388196 142.805156 704 + L 280.70178 145.568449 705 + L 282.015365 144.81157 706 + L 283.32895 143.590612 707 + L 284.642534 141.538489 708 + L 285.956119 139.725245 709 + L 287.269703 139.369037 710 + L 288.583288 140.491472 711 + L 289.896873 141.330486 712 + L 291.210457 134.527006 713 + L 292.524042 140.641642 714 + L 293.837626 136.563679 715 + L 295.151211 144.580416 716 + L 296.464796 142.871357 717 + L 297.77838 135.970902 718 + L 299.091965 132.469969 719 + L 300.405549 142.106927 720 + L 301.719134 144.190786 721 + L 303.032719 150.336589 722 + L 304.346303 142.752623 723 + L 305.659888 150.74109 724 + L 306.973472 149.153116 725 + L 308.287057 157.21077 726 + L 309.600641 160.019487 727 + L 310.914226 152.447705 728 + L 313.541395 147.133536 729 + L 314.85498 155.046891 730 + L 316.168564 152.009222 731 + L 317.482149 161.273196 732 + L 320.109318 148.529845 733 + L 321.422903 161.187833 734 + L 322.736487 157.915811 735 + L 324.050072 157.57569 736 + L 325.363657 154.710019 737 + L 326.677241 153.239275 738 + L 327.990826 142.917523 739 + L 329.30441 138.435954 740 + L 330.617995 142.129741 741 + L 331.93158 137.738834 742 + L 333.245164 130.293146 743 + L 334.558749 136.893354 744 + L 335.872333 131.732697 745 + L 337.185918 128.81307 746 + L 338.499503 126.676245 747 + L 339.813087 112.260368 748 + L 341.126672 121.217805 749 + L 342.440256 118.674265 750 + L 343.753841 103.03985 751 + L 345.067426 104.664132 752 + L 346.38101 97.901047 753 + L 347.694595 101.127131 754 + L 349.008179 99.713754 755 + L 350.321764 101.989376 756 + L 351.635349 95.494911 757 + L 352.948933 93.158098 758 + L 354.262518 93.328909 759 + L 355.576102 96.393428 760 + L 356.889687 83.222249 761 + L 358.203271 105.692054 762 + L 359.516856 99.991432 763 + L 360.830441 97.534912 764 + L 362.144025 94.02019 765 + L 363.45761 97.334917 766 + L 364.771194 101.776531 767 + L 366.084779 85.702933 768 + L 367.398364 96.931105 769 + L 368.711948 106.560465 770 + L 370.025533 96.419352 771 + L 371.339117 93.789893 772 + L 372.652702 104.111298 773 + L 373.966287 107.216782 774 + L 375.279871 95.398936 775 + L 376.593456 98.11464 776 + L 377.90704 104.576416 777 + L 377.90704 104.576416 778 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke: #1f77b4; stroke-width: 1.8; stroke-linecap: square"/> 779 + </g> 780 + <g id="line2d_31"> 781 + <path d="M 42.942969 103.025561 782 + L 44.256553 103.475087 783 + L 45.570138 103.80319 784 + L 48.197307 104.115316 785 + L 50.824476 104.044062 786 + L 54.76523 103.540257 787 + L 57.392399 103.221285 788 + L 60.019568 103.166175 789 + L 61.333153 103.303809 790 + L 62.646738 103.584088 791 + L 63.960322 104.028507 792 + L 65.273907 104.655531 793 + L 66.587491 105.480077 794 + L 67.901076 106.513075 795 + L 69.214661 107.761106 796 + L 70.528245 109.226148 797 + L 71.84183 110.905413 798 + L 74.468999 114.871422 799 + L 77.096168 119.542162 800 + L 79.723337 124.731988 801 + L 87.604845 140.835288 802 + L 90.232014 145.421054 803 + L 91.545599 147.413003 804 + L 92.859183 149.166414 805 + L 94.172768 150.657551 806 + L 95.486353 151.867058 807 + L 96.799937 152.780387 808 + L 98.113522 153.388116 809 + L 99.427106 153.686175 810 + L 100.740691 153.67596 811 + L 102.054276 153.364335 812 + L 103.36786 152.763527 813 + L 104.681445 151.890909 814 + L 105.995029 150.76868 815 + L 107.308614 149.423448 816 + L 109.935783 146.189325 817 + L 112.562952 142.46843 818 + L 117.817291 134.817182 819 + L 120.44446 131.505865 820 + L 121.758044 130.100123 821 + L 123.071629 128.898889 822 + L 124.385214 127.925437 823 + L 125.698798 127.198422 824 + L 127.012383 126.731576 825 + L 128.325967 126.533514 826 + L 129.639552 126.607643 827 + L 130.953137 126.952179 828 + L 132.266721 127.560278 829 + L 133.580306 128.420268 830 + L 134.89389 129.515982 831 + L 136.207475 130.827183 832 + L 138.834644 133.997858 833 + L 141.461813 137.709925 834 + L 150.656906 151.398187 835 + L 153.284075 154.607637 836 + L 155.911244 157.242408 837 + L 157.224828 158.32969 838 + L 158.538413 159.2648 839 + L 159.851998 160.054197 840 + L 162.479167 161.242382 841 + L 165.106336 162.023733 842 + L 172.987844 163.822913 843 + L 174.301428 164.317976 844 + L 175.615013 164.933672 845 + L 176.928597 165.6894 846 + L 178.242182 166.601198 847 + L 179.555767 167.681275 848 + L 180.869351 168.937625 849 + L 182.182936 170.373736 850 + L 184.810105 173.775589 851 + L 187.437274 177.81985 852 + L 190.064443 182.366005 853 + L 197.945951 196.734173 854 + L 200.57312 200.83778 855 + L 201.886705 202.60018 856 + L 203.200289 204.12675 857 + L 204.513874 205.389037 858 + L 205.827458 206.362296 859 + L 207.141043 207.026027 860 + L 208.454628 207.364424 861 + L 209.768212 207.366734 862 + L 211.081797 207.02751 863 + L 212.395381 206.346767 864 + L 213.708966 205.330018 865 + L 215.022551 203.988207 866 + L 216.336135 202.337523 867 + L 217.64972 200.399123 868 + L 218.963304 198.198735 869 + L 221.590474 193.134845 870 + L 224.217643 187.423064 871 + L 232.09915 169.556492 872 + L 234.72632 164.370448 873 + L 237.353489 159.977436 874 + L 238.667073 158.127652 875 + L 239.980658 156.52552 876 + L 241.294243 155.17698 877 + L 242.607827 154.082769 878 + L 243.921412 153.238523 879 + L 245.234996 152.63497 880 + L 246.548581 152.25823 881 + L 247.862166 152.090211 882 + L 249.17575 152.109089 883 + L 250.489335 152.289862 884 + L 253.116504 153.024953 885 + L 257.057258 154.606036 886 + L 259.684427 155.623745 887 + L 262.311596 156.356247 888 + L 263.625181 156.559889 889 + L 264.938765 156.632476 890 + L 266.25235 156.562088 891 + L 267.565934 156.341164 892 + L 268.879519 155.966636 893 + L 270.193104 155.439971 894 + L 271.506688 154.767086 895 + L 274.133857 153.027459 896 + L 276.761027 150.875061 897 + L 284.642534 143.858327 898 + L 287.269703 142.049718 899 + L 288.583288 141.356135 900 + L 289.896873 140.828175 901 + L 291.210457 140.480207 902 + L 292.524042 140.322492 903 + L 293.837626 140.360863 904 + L 295.151211 140.596492 905 + L 296.464796 141.02577 906 + L 297.77838 141.640287 907 + L 299.091965 142.426918 908 + L 301.719134 144.441732 909 + L 304.346303 146.880866 910 + L 309.600641 152.028852 911 + L 312.227811 154.172857 912 + L 313.541395 155.013713 913 + L 314.85498 155.657271 914 + L 316.168564 156.074554 915 + L 317.482149 156.24008 916 + L 318.795734 156.132427 917 + L 320.109318 155.734707 918 + L 321.422903 155.034959 919 + L 322.736487 154.026437 920 + L 324.050072 152.707796 921 + L 325.363657 151.083173 922 + L 326.677241 149.162147 923 + L 327.990826 146.9596 924 + L 329.30441 144.495464 925 + L 331.93158 138.885177 926 + L 334.558749 132.575967 927 + L 343.753841 109.410718 928 + L 346.38101 103.766142 929 + L 347.694595 101.272916 930 + L 349.008179 99.03065 931 + L 350.321764 97.057198 932 + L 351.635349 95.365408 933 + L 352.948933 93.962953 934 + L 354.262518 92.852282 935 + L 355.576102 92.030675 936 + L 356.889687 91.490402 937 + L 358.203271 91.218995 938 + L 359.516856 91.199608 939 + L 360.830441 91.411473 940 + L 362.144025 91.83043 941 + L 363.45761 92.429524 942 + L 366.084779 94.050288 943 + L 368.711948 96.027864 944 + L 373.966287 100.090544 945 + L 376.593456 101.768784 946 + L 377.90704 102.45512 947 + L 377.90704 102.45512 948 + " clip-path="url(#pcc14f2df3a)" style="fill: none; stroke-dasharray: 4.44,1.92; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.2"/> 949 + </g> 950 + <g id="patch_3"> 951 + <path d="M 42.942969 285.715781 952 + L 42.942969 26.318125 953 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 954 + </g> 955 + <g id="patch_4"> 956 + <path d="M 379.220625 285.715781 957 + L 379.220625 26.318125 958 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 959 + </g> 960 + <g id="patch_5"> 961 + <path d="M 42.942969 285.715781 962 + L 379.220625 285.715781 963 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 964 + </g> 965 + <g id="patch_6"> 966 + <path d="M 42.942969 26.318125 967 + L 379.220625 26.318125 968 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 969 + </g> 970 + <g id="text_17"> 971 + <text style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff" transform="translate(49.668522 261.862377)">averaging N periods lowers the asynchronous</text> 972 + <!-- noise by $\sqrt{N}$ in amplitude --> 973 + <g style="fill: #ffffff" transform="translate(49.668522 275.041029)"> 974 + <text> 975 + <tspan x="0" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">n</tspan> 976 + <tspan x="5.387207" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">o</tspan> 977 + <tspan x="10.587646" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">i</tspan> 978 + <tspan x="12.949219" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">s</tspan> 979 + <tspan x="17.377686" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">e</tspan> 980 + <tspan x="22.607178" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff"> </tspan> 981 + <tspan x="25.309082" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">b</tspan> 982 + <tspan x="30.70459" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">y</tspan> 983 + <tspan x="35.734863" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff"> </tspan> 984 + <tspan x="51.99057" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff"> </tspan> 985 + <tspan x="54.692474" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">i</tspan> 986 + <tspan x="57.054047" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">n</tspan> 987 + <tspan x="62.441254" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff"> </tspan> 988 + <tspan x="65.143158" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">a</tspan> 989 + <tspan x="70.351898" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">m</tspan> 990 + <tspan x="78.631927" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">p</tspan> 991 + <tspan x="84.027435" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">l</tspan> 992 + <tspan x="86.389008" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">i</tspan> 993 + <tspan x="88.75058" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">t</tspan> 994 + <tspan x="92.083344" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">u</tspan> 995 + <tspan x="97.470551" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">d</tspan> 996 + <tspan x="102.866058" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">e</tspan> 997 + <tspan x="38.436768" y="-2.0525" style="font-size: 4.800299px; font-family: sans-serif; fill: #ffffff">√</tspan> 998 + <tspan x="44.569672" y="-0.265625" style="font-style: oblique; font-size: 8.5px; font-family: sans-serif; fill: #ffffff">N</tspan> 999 + </text> 1000 + <rect x="43.507172" y="-10.46875" width="8.483398" height="0.53125"/> 1001 + </g> 1002 + </g> 1003 + <g id="text_18"> 1004 + <text style="font-weight: 700; font-size: 12px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="211.081797" y="16.318125" transform="rotate(-0 211.081797 16.318125)">Periodic Waveform Extracted from Noise</text> 1005 + </g> 1006 + <g id="legend_1"> 1007 + <g id="patch_7"> 1008 + <path d="M 242.220625 68.72 1009 + L 373.620625 68.72 1010 + Q 375.220625 68.72 375.220625 67.12 1011 + L 375.220625 31.918125 1012 + Q 375.220625 30.318125 373.620625 30.318125 1013 + L 242.220625 30.318125 1014 + Q 240.620625 30.318125 240.620625 31.918125 1015 + L 240.620625 67.12 1016 + Q 240.620625 68.72 242.220625 68.72 1017 + z 1018 + " style="opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 1019 + </g> 1020 + <g id="line2d_32"> 1021 + <path d="M 243.820625 36.796875 1022 + L 251.820625 36.796875 1023 + L 259.820625 36.796875 1024 + " style="fill: none; stroke: #555555; stroke-linecap: square"/> 1025 + </g> 1026 + <g id="text_19"> 1027 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start; fill: #ffffff" x="266.220625" y="39.596875" transform="rotate(-0 266.220625 39.596875)">One noisy period</text> 1028 + </g> 1029 + <g id="line2d_33"> 1030 + <path d="M 243.820625 48.7975 1031 + L 251.820625 48.7975 1032 + L 259.820625 48.7975 1033 + " style="fill: none; stroke: #1f77b4; stroke-width: 1.8; stroke-linecap: square"/> 1034 + </g> 1035 + <g id="text_20"> 1036 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start; fill: #ffffff" x="266.220625" y="51.5975" transform="rotate(-0 266.220625 51.5975)">Average of N = 40 periods</text> 1037 + </g> 1038 + <g id="line2d_34"> 1039 + <path d="M 243.820625 60.798125 1040 + L 251.820625 60.798125 1041 + L 259.820625 60.798125 1042 + " style="fill: none; stroke-dasharray: 4.44,1.92; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.2"/> 1043 + </g> 1044 + <g id="text_21"> 1045 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start; fill: #ffffff" x="266.220625" y="63.598125" transform="rotate(-0 266.220625 63.598125)">True periodic waveform</text> 1046 + </g> 1047 + </g> 1048 + </g> 1049 + <g id="axes_2"> 1050 + <g id="patch_8"> 1051 + <path d="M 426.942969 285.715781 1052 + L 763.220625 285.715781 1053 + L 763.220625 26.318125 1054 + L 426.942969 26.318125 1055 + z 1056 + "/> 1057 + </g> 1058 + <g id="matplotlib.axis_3"> 1059 + <g id="xtick_8"> 1060 + <g id="line2d_35"> 1061 + <path d="M 426.942969 285.715781 1062 + L 426.942969 26.318125 1063 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1064 + </g> 1065 + <g id="line2d_36"> 1066 + <g> 1067 + <use xlink:href="#m8d14ee1197" x="426.942969" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1068 + </g> 1069 + </g> 1070 + <g id="text_22"> 1071 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="426.942969" y="300.313437" transform="rotate(-0 426.942969 300.313437)">31.00</text> 1072 + </g> 1073 + </g> 1074 + <g id="xtick_9"> 1075 + <g id="line2d_37"> 1076 + <path d="M 468.977676 285.715781 1077 + L 468.977676 26.318125 1078 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1079 + </g> 1080 + <g id="line2d_38"> 1081 + <g> 1082 + <use xlink:href="#m8d14ee1197" x="468.977676" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1083 + </g> 1084 + </g> 1085 + <g id="text_23"> 1086 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="468.977676" y="300.313437" transform="rotate(-0 468.977676 300.313437)">31.25</text> 1087 + </g> 1088 + </g> 1089 + <g id="xtick_10"> 1090 + <g id="line2d_39"> 1091 + <path d="M 511.012383 285.715781 1092 + L 511.012383 26.318125 1093 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1094 + </g> 1095 + <g id="line2d_40"> 1096 + <g> 1097 + <use xlink:href="#m8d14ee1197" x="511.012383" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1098 + </g> 1099 + </g> 1100 + <g id="text_24"> 1101 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="511.012383" y="300.313437" transform="rotate(-0 511.012383 300.313437)">31.50</text> 1102 + </g> 1103 + </g> 1104 + <g id="xtick_11"> 1105 + <g id="line2d_41"> 1106 + <path d="M 553.04709 285.715781 1107 + L 553.04709 26.318125 1108 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1109 + </g> 1110 + <g id="line2d_42"> 1111 + <g> 1112 + <use xlink:href="#m8d14ee1197" x="553.04709" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1113 + </g> 1114 + </g> 1115 + <g id="text_25"> 1116 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="553.04709" y="300.313437" transform="rotate(-0 553.04709 300.313437)">31.75</text> 1117 + </g> 1118 + </g> 1119 + <g id="xtick_12"> 1120 + <g id="line2d_43"> 1121 + <path d="M 595.081797 285.715781 1122 + L 595.081797 26.318125 1123 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1124 + </g> 1125 + <g id="line2d_44"> 1126 + <g> 1127 + <use xlink:href="#m8d14ee1197" x="595.081797" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1128 + </g> 1129 + </g> 1130 + <g id="text_26"> 1131 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="595.081797" y="300.313437" transform="rotate(-0 595.081797 300.313437)">32.00</text> 1132 + </g> 1133 + </g> 1134 + <g id="xtick_13"> 1135 + <g id="line2d_45"> 1136 + <path d="M 637.116504 285.715781 1137 + L 637.116504 26.318125 1138 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1139 + </g> 1140 + <g id="line2d_46"> 1141 + <g> 1142 + <use xlink:href="#m8d14ee1197" x="637.116504" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1143 + </g> 1144 + </g> 1145 + <g id="text_27"> 1146 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="637.116504" y="300.313437" transform="rotate(-0 637.116504 300.313437)">32.25</text> 1147 + </g> 1148 + </g> 1149 + <g id="xtick_14"> 1150 + <g id="line2d_47"> 1151 + <path d="M 679.151211 285.715781 1152 + L 679.151211 26.318125 1153 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1154 + </g> 1155 + <g id="line2d_48"> 1156 + <g> 1157 + <use xlink:href="#m8d14ee1197" x="679.151211" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1158 + </g> 1159 + </g> 1160 + <g id="text_28"> 1161 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="679.151211" y="300.313437" transform="rotate(-0 679.151211 300.313437)">32.50</text> 1162 + </g> 1163 + </g> 1164 + <g id="xtick_15"> 1165 + <g id="line2d_49"> 1166 + <path d="M 721.185918 285.715781 1167 + L 721.185918 26.318125 1168 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1169 + </g> 1170 + <g id="line2d_50"> 1171 + <g> 1172 + <use xlink:href="#m8d14ee1197" x="721.185918" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1173 + </g> 1174 + </g> 1175 + <g id="text_29"> 1176 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="721.185918" y="300.313437" transform="rotate(-0 721.185918 300.313437)">32.75</text> 1177 + </g> 1178 + </g> 1179 + <g id="xtick_16"> 1180 + <g id="line2d_51"> 1181 + <path d="M 763.220625 285.715781 1182 + L 763.220625 26.318125 1183 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1184 + </g> 1185 + <g id="line2d_52"> 1186 + <g> 1187 + <use xlink:href="#m8d14ee1197" x="763.220625" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1188 + </g> 1189 + </g> 1190 + <g id="text_30"> 1191 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="763.220625" y="300.313437" transform="rotate(-0 763.220625 300.313437)">33.00</text> 1192 + </g> 1193 + </g> 1194 + <g id="text_31"> 1195 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="595.081797" y="314.314219" transform="rotate(-0 595.081797 314.314219)">Frequency [orders]</text> 1196 + </g> 1197 + </g> 1198 + <g id="matplotlib.axis_4"> 1199 + <g id="ytick_8"> 1200 + <g id="line2d_53"> 1201 + <path d="M 426.942969 285.715781 1202 + L 763.220625 285.715781 1203 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1204 + </g> 1205 + <g id="line2d_54"> 1206 + <g> 1207 + <use xlink:href="#m5e07181663" x="426.942969" y="285.715781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1208 + </g> 1209 + </g> 1210 + <g id="text_32"> 1211 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="419.942969" y="289.514609" transform="rotate(-0 419.942969 289.514609)">0.0</text> 1212 + </g> 1213 + </g> 1214 + <g id="ytick_9"> 1215 + <g id="line2d_55"> 1216 + <path d="M 426.942969 236.306704 1217 + L 763.220625 236.306704 1218 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1219 + </g> 1220 + <g id="line2d_56"> 1221 + <g> 1222 + <use xlink:href="#m5e07181663" x="426.942969" y="236.306704" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1223 + </g> 1224 + </g> 1225 + <g id="text_33"> 1226 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="419.942969" y="240.105532" transform="rotate(-0 419.942969 240.105532)">0.2</text> 1227 + </g> 1228 + </g> 1229 + <g id="ytick_10"> 1230 + <g id="line2d_57"> 1231 + <path d="M 426.942969 186.897626 1232 + L 763.220625 186.897626 1233 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1234 + </g> 1235 + <g id="line2d_58"> 1236 + <g> 1237 + <use xlink:href="#m5e07181663" x="426.942969" y="186.897626" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1238 + </g> 1239 + </g> 1240 + <g id="text_34"> 1241 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="419.942969" y="190.696455" transform="rotate(-0 419.942969 190.696455)">0.4</text> 1242 + </g> 1243 + </g> 1244 + <g id="ytick_11"> 1245 + <g id="line2d_59"> 1246 + <path d="M 426.942969 137.488549 1247 + L 763.220625 137.488549 1248 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1249 + </g> 1250 + <g id="line2d_60"> 1251 + <g> 1252 + <use xlink:href="#m5e07181663" x="426.942969" y="137.488549" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1253 + </g> 1254 + </g> 1255 + <g id="text_35"> 1256 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="419.942969" y="141.287377" transform="rotate(-0 419.942969 141.287377)">0.6</text> 1257 + </g> 1258 + </g> 1259 + <g id="ytick_12"> 1260 + <g id="line2d_61"> 1261 + <path d="M 426.942969 88.079472 1262 + L 763.220625 88.079472 1263 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1264 + </g> 1265 + <g id="line2d_62"> 1266 + <g> 1267 + <use xlink:href="#m5e07181663" x="426.942969" y="88.079472" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1268 + </g> 1269 + </g> 1270 + <g id="text_36"> 1271 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="419.942969" y="91.8783" transform="rotate(-0 419.942969 91.8783)">0.8</text> 1272 + </g> 1273 + </g> 1274 + <g id="ytick_13"> 1275 + <g id="line2d_63"> 1276 + <path d="M 426.942969 38.670394 1277 + L 763.220625 38.670394 1278 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1279 + </g> 1280 + <g id="line2d_64"> 1281 + <g> 1282 + <use xlink:href="#m5e07181663" x="426.942969" y="38.670394" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1283 + </g> 1284 + </g> 1285 + <g id="text_37"> 1286 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="419.942969" y="42.469222" transform="rotate(-0 419.942969 42.469222)">1.0</text> 1287 + </g> 1288 + </g> 1289 + <g id="text_38"> 1290 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="397.6375" y="156.016953" transform="rotate(-90 397.6375 156.016953)">Comb filter magnitude</text> 1291 + </g> 1292 + </g> 1293 + <g id="line2d_65"> 1294 + <path d="M 426.942969 38.670394 1295 + L 427.027059 38.774363 1296 + L 427.19524 39.605171 1297 + L 427.447511 42.396788 1298 + L 427.783873 48.938248 1299 + L 428.288416 64.443498 1300 + L 428.877049 90.12166 1301 + L 429.717953 137.333979 1302 + L 432.156576 283.782874 1303 + L 432.240666 283.690754 1304 + L 432.99748 254.230164 1305 + L 433.586113 239.684696 1306 + L 434.006565 233.926862 1307 + L 434.342927 232.007061 1308 + L 434.511108 231.896728 1309 + L 434.679289 232.322634 1310 + L 434.93156 233.907668 1311 + L 435.267922 237.624264 1312 + L 435.772465 246.058067 1313 + L 436.529279 263.011285 1314 + L 437.454273 285.653621 1315 + L 438.379268 266.543497 1316 + L 438.967901 258.431247 1317 + L 439.388353 255.029242 1318 + L 439.724715 253.808936 1319 + L 439.892896 253.694789 1320 + L 440.061077 253.902642 1321 + L 440.313348 254.795467 1322 + L 440.64971 256.997338 1323 + L 441.154253 262.171944 1324 + L 441.911066 272.918059 1325 + L 442.66788 285.108511 1326 + L 442.751971 284.986683 1327 + L 443.676966 271.949667 1328 + L 444.265599 266.22107 1329 + L 444.686051 263.749854 1330 + L 445.022413 262.822292 1331 + L 445.190594 262.711642 1332 + L 445.358774 262.833082 1333 + L 445.611046 263.438349 1334 + L 445.947407 264.991367 1335 + L 446.45195 268.727299 1336 + L 447.124674 275.670503 1337 + L 447.965578 285.652403 1338 + L 448.974663 274.718361 1339 + L 449.563296 270.3144 1340 + L 449.983748 268.40909 1341 + L 450.32011 267.698954 1342 + L 450.572381 267.649187 1343 + L 450.824653 268.006212 1344 + L 451.161015 269.086309 1345 + L 451.581467 271.318063 1346 + L 452.1701 275.774663 1347 + L 453.179185 285.367998 1348 + L 453.263275 285.240619 1349 + L 454.272361 276.37882 1350 + L 454.860994 272.811409 1351 + L 455.281446 271.28111 1352 + L 455.617808 270.728714 1353 + L 455.870079 270.714351 1354 + L 456.12235 271.03788 1355 + L 456.458712 271.972289 1356 + L 456.879164 273.876526 1357 + L 457.467797 277.658365 1358 + L 458.476883 285.650296 1359 + L 458.560973 284.953965 1360 + L 459.570058 277.466538 1361 + L 460.158691 274.471811 1362 + L 460.579143 273.206743 1363 + L 460.915505 272.772491 1364 + L 461.167776 272.791122 1365 + L 461.420048 273.100879 1366 + L 461.75641 273.947549 1367 + L 462.176862 275.640784 1368 + L 462.765495 278.973062 1369 + L 463.69049 285.476613 1370 + L 463.77458 285.343426 1371 + L 464.867756 278.217237 1372 + L 465.456389 275.636687 1373 + L 465.876841 274.568553 1374 + L 466.213203 274.226047 1375 + L 466.465474 274.274131 1376 + L 466.717745 274.579946 1377 + L 467.054107 275.371374 1378 + L 467.55865 277.298454 1379 + L 468.231373 280.93696 1380 + L 468.988187 285.647178 1381 + L 470.081363 279.156519 1382 + L 470.669996 276.738718 1383 + L 471.090448 275.697707 1384 + L 471.42681 275.324101 1385 + L 471.679081 275.319835 1386 + L 471.931352 275.550445 1387 + L 472.267714 276.210157 1388 + L 472.688166 277.554868 1389 + L 473.276799 280.235787 1390 + L 474.201794 285.535253 1391 + L 474.285885 285.394422 1392 + L 475.37906 279.498726 1393 + L 475.967693 277.332783 1394 + L 476.388146 276.421763 1395 + L 476.724507 276.117309 1396 + L 476.976779 276.143432 1397 + L 477.22905 276.385778 1398 + L 477.565412 277.032557 1399 + L 478.069954 278.63164 1400 + L 478.742678 281.684137 1401 + L 479.499492 285.642852 1402 + L 480.676758 279.738568 1403 + L 481.265391 277.771302 1404 + L 481.685843 276.96555 1405 + L 482.022205 276.719268 1406 + L 482.274476 276.772795 1407 + L 482.610838 277.157343 1408 + L 483.03129 278.113537 1409 + L 483.535833 279.869261 1410 + L 484.292647 283.388195 1411 + L 484.713099 285.571332 1412 + L 484.797189 285.420296 1413 + L 485.890365 280.223057 1414 + L 486.478998 278.294285 1415 + L 486.89945 277.473983 1416 + L 487.235812 277.192302 1417 + L 487.488083 277.206744 1418 + L 487.824445 277.52468 1419 + L 488.244897 278.379061 1420 + L 488.74944 279.995365 1421 + L 489.506254 283.299111 1422 + L 490.010796 285.637017 1423 + L 491.188062 280.296574 1424 + L 491.776695 278.500228 1425 + L 492.197148 277.756805 1426 + L 492.533509 277.522961 1427 + L 492.785781 277.564369 1428 + L 493.122142 277.90567 1429 + L 493.542595 278.76857 1430 + L 494.047137 280.365522 1431 + L 494.803951 283.587118 1432 + L 495.224403 285.59535 1433 + L 495.308494 285.430734 1434 + L 496.401669 280.61902 1435 + L 496.990302 278.818957 1436 + L 497.410755 278.046735 1437 + L 497.747116 277.776085 1438 + L 497.999388 277.783102 1439 + L 498.335749 278.071356 1440 + L 498.756202 278.860058 1441 + L 499.260744 280.363601 1442 + L 500.017558 283.455703 1443 + L 500.522101 285.629217 1444 + L 501.699367 280.577342 1445 + L 502.288 278.864577 1446 + L 502.708452 278.149658 1447 + L 503.044814 277.9196 1448 + L 503.297085 277.953185 1449 + L 503.633447 278.270895 1450 + L 504.053899 279.085789 1451 + L 504.558442 280.604092 1452 + L 505.315256 283.684196 1453 + L 505.735708 285.612178 1454 + L 505.903889 285.040353 1455 + L 506.997064 280.490819 1456 + L 507.585698 278.846963 1457 + L 508.00615 278.181166 1458 + L 508.342511 277.988516 1459 + L 508.594783 278.048318 1460 + L 508.931145 278.39772 1461 + L 509.351597 279.245762 1462 + L 509.94023 281.097936 1463 + L 510.781134 284.651743 1464 + L 511.033405 285.618745 1465 + L 512.210672 280.644515 1466 + L 512.799305 278.94578 1467 + L 513.219757 278.231158 1468 + L 513.556119 277.9965 1469 + L 513.80839 278.024423 1470 + L 514.144752 278.332499 1471 + L 514.565204 279.133617 1472 + L 515.069746 280.63577 1473 + L 515.82656 283.699252 1474 + L 516.247012 285.624373 1475 + L 516.415193 285.027843 1476 + L 517.508369 280.457891 1477 + L 518.097002 278.794918 1478 + L 518.517454 278.115731 1479 + L 518.853816 277.914244 1480 + L 519.106087 277.969254 1481 + L 519.442449 278.315541 1482 + L 519.862901 279.166159 1483 + L 520.367444 280.727067 1484 + L 521.124258 283.868435 1485 + L 521.54471 285.604468 1486 + L 522.721976 280.512607 1487 + L 523.310609 278.760912 1488 + L 523.731061 278.018184 1489 + L 524.067423 277.769384 1490 + L 524.319694 277.79249 1491 + L 524.656056 278.10272 1492 + L 525.076508 278.92125 1493 + L 525.581051 280.46623 1494 + L 526.337865 283.634367 1495 + L 526.758317 285.633399 1496 + L 527.010588 284.583525 1497 + L 528.019674 280.212091 1498 + L 528.608307 278.461362 1499 + L 529.028759 277.739985 1500 + L 529.365121 277.52041 1501 + L 529.617392 277.572088 1502 + L 529.953754 277.928445 1503 + L 530.374206 278.815527 1504 + L 530.878748 280.454101 1505 + L 531.635562 283.770456 1506 + L 532.056015 285.584467 1507 + L 533.317371 279.839146 1508 + L 533.906004 278.072 1509 + L 534.326456 277.366042 1510 + L 534.662818 277.175278 1511 + L 534.915089 277.257828 1512 + L 535.251451 277.666822 1513 + L 535.671903 278.635853 1514 + L 536.260536 280.736809 1515 + L 537.101441 284.763516 1516 + L 537.269622 285.640147 1517 + L 537.521893 284.472279 1518 + L 538.615069 279.37558 1519 + L 539.203702 277.572349 1520 + L 539.624154 276.87564 1521 + L 539.960516 276.714004 1522 + L 540.212787 276.830816 1523 + L 540.549149 277.301131 1524 + L 540.969601 278.36931 1525 + L 541.558234 280.641713 1526 + L 542.399138 284.944825 1527 + L 542.567319 285.555258 1528 + L 543.828676 279.134589 1529 + L 544.417309 277.138221 1530 + L 544.837761 276.330608 1531 + L 545.174123 276.103096 1532 + L 545.426394 276.186182 1533 + L 545.762756 276.634594 1534 + L 546.183208 277.714762 1535 + L 546.687751 279.687935 1536 + L 547.444565 283.662536 1537 + L 547.780926 285.645182 1538 + L 548.117288 283.780328 1539 + L 549.126373 278.418223 1540 + L 549.715006 276.319673 1541 + L 550.135458 275.49594 1542 + L 550.47182 275.292363 1543 + L 550.724092 275.415122 1544 + L 551.060453 275.944638 1545 + L 551.480905 277.168372 1546 + L 552.069539 279.798683 1547 + L 552.910443 284.827022 1548 + L 553.078624 285.509822 1549 + L 554.33998 277.900672 1550 + L 554.928613 275.499596 1551 + L 555.349066 274.511413 1552 + L 555.685427 274.217499 1553 + L 555.937699 274.300067 1554 + L 556.18997 274.64385 1555 + L 556.526332 275.499015 1556 + L 557.030874 277.568314 1557 + L 557.703598 281.514848 1558 + L 558.292231 285.648874 1559 + L 558.712683 282.725417 1560 + L 559.721768 276.270657 1561 + L 560.310401 273.815735 1562 + L 560.730853 272.910124 1563 + L 560.983125 272.745002 1564 + L 561.235396 272.873903 1565 + L 561.487667 273.297689 1566 + L 561.824029 274.310493 1567 + L 562.328572 276.71671 1568 + L 563.001295 281.261731 1569 + L 563.589928 285.431699 1570 + L 564.935375 275.096583 1571 + L 565.524008 272.12751 1572 + L 565.944461 270.960933 1573 + L 566.196732 270.69305 1574 + L 566.364913 270.702547 1575 + L 566.617184 271.002669 1576 + L 566.953546 271.932443 1577 + L 567.373998 273.907286 1578 + L 567.962631 277.995613 1579 + L 568.803535 285.651467 1580 + L 568.887626 284.954905 1581 + L 570.233073 272.754021 1582 + L 570.821706 269.267373 1583 + L 571.242158 267.919028 1584 + L 571.494429 267.628928 1585 + L 571.66261 267.661996 1586 + L 571.914882 268.056579 1587 + L 572.251243 269.223526 1588 + L 572.671696 271.669409 1589 + L 573.260329 276.711507 1590 + L 574.101233 285.271324 1591 + L 575.53077 269.104437 1592 + L 576.119403 264.753082 1593 + L 576.539856 263.073393 1594 + L 576.792127 262.720412 1595 + L 576.960308 262.772665 1596 + L 577.212579 263.291431 1597 + L 577.548941 264.806381 1598 + L 577.969393 267.98022 1599 + L 578.558026 274.553475 1600 + L 579.31484 285.653117 1601 + L 579.39893 284.435473 1602 + L 580.912558 261.666504 1603 + L 581.501191 256.043139 1604 + L 581.921644 254.003801 1605 + L 582.173915 253.692807 1606 + L 582.342096 253.888698 1607 + L 582.594367 254.803622 1608 + L 582.930729 257.193419 1609 + L 583.351181 262.021676 1610 + L 583.939814 271.907449 1611 + L 584.612538 284.779769 1612 + L 586.546618 240.766289 1613 + L 587.05116 234.276236 1614 + L 587.387522 232.167293 1615 + L 587.555703 231.873064 1616 + L 587.639793 231.927864 1617 + L 587.807974 232.45597 1618 + L 588.060245 234.331872 1619 + L 588.396607 238.936384 1620 + L 588.817059 248.165511 1621 + L 589.321602 264.308379 1622 + L 589.826145 285.653921 1623 + L 590.582959 245.578207 1624 + L 592.180677 145.130527 1625 + L 593.273852 84.010624 1626 + L 593.946576 57.190298 1627 + L 594.451119 44.478031 1628 + L 594.78748 39.942207 1629 + L 595.039752 38.696389 1630 + L 595.123842 38.696389 1631 + L 595.292023 39.31977 1632 + L 595.544294 41.803872 1633 + L 595.880656 47.94854 1634 + L 596.301108 59.960209 1635 + L 596.889741 84.010624 1636 + L 597.730646 129.678426 1637 + L 600.337449 285.653921 1638 + L 601.094263 255.557625 1639 + L 601.682896 240.471736 1640 + L 602.103348 234.331872 1641 + L 602.43971 232.121258 1642 + L 602.607891 231.873064 1643 + L 602.776072 232.167293 1644 + L 603.028343 233.568109 1645 + L 603.364705 237.067492 1646 + L 603.869248 245.245151 1647 + L 604.626061 261.987747 1648 + L 605.551056 284.779769 1649 + L 605.635147 284.663339 1650 + L 606.476051 267.260664 1651 + L 607.064684 258.884561 1652 + L 607.485136 255.275802 1653 + L 607.821498 253.888698 1654 + L 607.989679 253.692807 1655 + L 608.15786 253.820994 1656 + L 608.410131 254.599712 1657 + L 608.746493 256.662797 1658 + L 609.251035 261.666504 1659 + L 609.923759 270.959633 1660 + L 610.848754 285.653117 1661 + L 611.857839 271.461137 1662 + L 612.446472 265.910055 1663 + L 612.866924 263.582335 1664 + L 613.203286 262.772665 1665 + L 613.371467 262.720412 1666 + L 613.539648 262.899137 1667 + L 613.791919 263.58709 1668 + L 614.128281 265.2417 1669 + L 614.632823 269.104437 1670 + L 615.389637 277.136716 1671 + L 616.062361 285.271324 1672 + L 616.146451 285.146529 1673 + L 617.155537 274.343796 1674 + L 617.74417 270.074637 1675 + L 618.164622 268.280147 1676 + L 618.500983 267.661996 1677 + L 618.669164 267.628928 1678 + L 618.837345 267.777644 1679 + L 619.089617 268.332627 1680 + L 619.425978 269.658703 1681 + L 619.930521 272.754021 1682 + L 620.687335 279.211948 1683 + L 621.360058 285.651467 1684 + L 622.453234 276.075013 1685 + L 623.041867 272.617868 1686 + L 623.462319 271.178846 1687 + L 623.798681 270.702547 1688 + L 624.050952 270.745054 1689 + L 624.303224 271.123882 1690 + L 624.639585 272.12751 1691 + L 625.144128 274.589174 1692 + L 625.816851 279.242372 1693 + L 626.573665 285.431699 1694 + L 626.657756 285.301591 1695 + L 627.666841 277.728256 1696 + L 628.255474 274.640591 1697 + L 628.675926 273.297689 1698 + L 629.012288 272.798077 1699 + L 629.264559 272.767606 1700 + L 629.516831 273.029407 1701 + L 629.853192 273.815735 1702 + L 630.273645 275.442542 1703 + L 630.862278 278.705369 1704 + L 631.871363 285.648874 1705 + L 631.955453 285.038796 1706 + L 632.964539 278.444007 1707 + L 633.553172 275.780974 1708 + L 633.973624 274.64385 1709 + L 634.309986 274.243442 1710 + L 634.562257 274.248045 1711 + L 634.814528 274.511413 1712 + L 635.15089 275.249472 1713 + L 635.571342 276.741161 1714 + L 636.159975 279.698018 1715 + L 637.08497 285.509822 1716 + L 637.16906 285.37309 1717 + L 638.262236 278.951204 1718 + L 638.850869 276.607127 1719 + L 639.271321 275.628205 1720 + L 639.607683 275.306931 1721 + L 639.859954 275.342088 1722 + L 640.112226 275.611287 1723 + L 640.448587 276.319673 1724 + L 640.95313 278.058982 1725 + L 641.625854 281.362692 1726 + L 642.382668 285.645182 1727 + L 643.475843 279.687935 1728 + L 644.064476 277.454768 1729 + L 644.484928 276.486812 1730 + L 644.82129 276.134197 1731 + L 645.073561 276.123945 1732 + L 645.325833 276.330608 1733 + L 645.662195 276.932257 1734 + L 646.082647 278.167313 1735 + L 646.67128 280.641411 1736 + L 647.596275 285.555258 1737 + L 647.680365 285.40969 1738 + L 648.773541 279.911736 1739 + L 649.362174 277.88093 1740 + L 649.782626 277.021646 1741 + L 650.118988 276.73022 1742 + L 650.371259 276.749725 1743 + L 650.62353 276.971954 1744 + L 650.959892 277.572349 1745 + L 651.464435 279.065587 1746 + L 652.137158 281.928194 1747 + L 652.893972 285.640147 1748 + L 654.071238 280.058868 1749 + L 654.659871 278.189878 1750 + L 655.080323 277.42015 1751 + L 655.416685 277.181233 1752 + L 655.668956 277.227966 1753 + L 656.005318 277.587867 1754 + L 656.42577 278.490616 1755 + L 656.930313 280.155085 1756 + L 657.687127 283.502525 1757 + L 658.107579 285.584467 1758 + L 658.19167 285.427124 1759 + L 659.284845 280.454101 1760 + L 659.873478 278.600796 1761 + L 660.293931 277.809006 1762 + L 660.630292 277.534166 1763 + L 660.882564 277.544563 1764 + L 661.218925 277.845492 1765 + L 661.639378 278.661747 1766 + L 662.14392 280.212091 1767 + L 662.900734 283.391077 1768 + L 663.405277 285.633399 1769 + L 664.582543 280.46623 1770 + L 665.171176 278.721059 1771 + L 665.591628 277.995613 1772 + L 665.92799 277.764697 1773 + L 666.180261 277.801821 1774 + L 666.516623 278.129334 1775 + L 666.937075 278.963494 1776 + L 667.441618 280.512607 1777 + L 668.198432 283.646665 1778 + L 668.618884 285.604468 1779 + L 668.787065 285.036778 1780 + L 669.88024 280.430902 1781 + L 670.468873 278.772668 1782 + L 670.889326 278.103898 1783 + L 671.225687 277.912888 1784 + L 671.477959 277.975973 1785 + L 671.81432 278.332039 1786 + L 672.234773 279.19116 1787 + L 672.823406 281.06151 1788 + L 673.66431 284.640098 1789 + L 673.916581 285.624373 1790 + L 675.093847 280.63577 1791 + L 675.68248 278.938246 1792 + L 676.102933 278.226888 1793 + L 676.439294 277.995613 1794 + L 676.691566 278.026189 1795 + L 677.027927 278.337533 1796 + L 677.44838 279.141602 1797 + L 677.952922 280.644515 1798 + L 678.709736 283.701481 1799 + L 679.130188 285.618745 1800 + L 679.298369 285.037383 1801 + L 680.391545 280.499642 1802 + L 680.980178 278.854242 1803 + L 681.40063 278.185038 1804 + L 681.736992 277.98896 1805 + L 681.989263 278.046119 1806 + L 682.325625 278.392321 1807 + L 682.746077 279.237583 1808 + L 683.33471 281.089599 1809 + L 684.175615 284.653081 1810 + L 684.427886 285.612178 1811 + L 685.605152 280.604092 1812 + L 686.193785 278.887604 1813 + L 686.614237 278.162706 1814 + L 686.950599 277.92231 1815 + L 687.20287 277.947791 1816 + L 687.539232 278.255511 1817 + L 687.959684 279.061383 1818 + L 688.464227 280.577342 1819 + L 689.221041 283.677286 1820 + L 689.641493 285.629217 1821 + L 689.809674 285.011382 1822 + L 690.902849 280.363601 1823 + L 691.491483 278.666122 1824 + L 691.911935 277.969852 1825 + L 692.248296 277.760679 1826 + L 692.500568 277.813905 1827 + L 692.83693 278.163536 1828 + L 693.257382 279.027878 1829 + L 693.761924 280.61902 1830 + L 694.518738 283.829999 1831 + L 694.93919 285.59535 1832 + L 696.116457 280.365522 1833 + L 696.70509 278.559322 1834 + L 697.125542 277.790251 1835 + L 697.461904 277.529905 1836 + L 697.714175 277.550544 1837 + L 698.050537 277.86623 1838 + L 698.470989 278.705917 1839 + L 698.975531 280.296574 1840 + L 699.732345 283.568131 1841 + L 700.152797 285.637017 1842 + L 700.405069 284.535912 1843 + L 701.498244 279.686531 1844 + L 702.086878 277.979074 1845 + L 702.50733 277.323593 1846 + L 702.843691 277.175559 1847 + L 703.095963 277.290411 1848 + L 703.432325 277.741426 1849 + L 703.852777 278.75893 1850 + L 704.44141 280.914771 1851 + L 705.450495 285.571332 1852 + L 706.711852 279.536419 1853 + L 707.300485 277.670755 1854 + L 707.720937 276.921043 1855 + L 708.057299 276.714425 1856 + L 708.30957 276.797166 1857 + L 708.645932 277.223069 1858 + L 709.066384 278.239875 1859 + L 709.570926 280.088743 1860 + L 710.32774 283.797936 1861 + L 710.664102 285.642852 1862 + L 711.000464 283.925294 1863 + L 712.009549 278.962827 1864 + L 712.598182 277.032557 1865 + L 713.018634 276.281303 1866 + L 713.354996 276.10176 1867 + L 713.607267 276.221262 1868 + L 713.943629 276.717248 1869 + L 714.364081 277.85262 1870 + L 714.952714 280.279341 1871 + L 715.793619 284.894636 1872 + L 715.9618 285.535253 1873 + L 717.223156 278.604441 1874 + L 717.811789 276.434964 1875 + L 718.232241 275.550445 1876 + L 718.568603 275.294955 1877 + L 718.820874 275.378204 1878 + L 719.073146 275.697707 1879 + L 719.409507 276.481475 1880 + L 719.91405 278.363192 1881 + L 720.586774 281.929887 1882 + L 721.175407 285.647178 1883 + L 721.595859 283.045914 1884 + L 722.604944 277.298454 1885 + L 723.193577 275.133976 1886 + L 723.614029 274.347786 1887 + L 723.866301 274.213084 1888 + L 724.118572 274.339287 1889 + L 724.454934 274.912353 1890 + L 724.875386 276.252723 1891 + L 725.379928 278.675788 1892 + L 726.136742 283.534516 1893 + L 726.473104 285.476613 1894 + L 727.734461 276.950204 1895 + L 728.323094 274.232527 1896 + L 728.743546 273.100879 1897 + L 729.079908 272.752224 1898 + L 729.332179 272.831883 1899 + L 729.58445 273.206743 1900 + L 729.920812 274.15672 1901 + L 730.341264 276.02284 1902 + L 730.929897 279.709219 1903 + L 731.686711 285.650296 1904 + L 731.770802 285.081487 1905 + L 733.032158 275.359462 1906 + L 733.620791 272.290904 1907 + L 734.041243 271.03788 1908 + L 734.293515 270.714351 1909 + L 734.545786 270.728714 1910 + L 734.798057 271.086022 1911 + L 735.134419 272.090316 1912 + L 735.554871 274.151297 1913 + L 736.143504 278.33723 1914 + L 736.984409 285.367998 1915 + L 738.329856 273.063717 1916 + L 738.918489 269.458221 1917 + L 739.338941 268.006212 1918 + L 739.591212 267.649187 1919 + L 739.759393 267.63654 1920 + L 740.011664 267.962016 1921 + L 740.348026 269.038208 1922 + L 740.768478 271.378013 1923 + L 741.357111 276.297561 1924 + L 742.198016 285.652403 1925 + L 742.282106 284.761836 1926 + L 743.711644 268.727299 1927 + L 744.300277 264.527045 1928 + L 744.720729 262.979278 1929 + L 744.973 262.711642 1930 + L 745.141181 262.822292 1931 + L 745.393452 263.429518 1932 + L 745.729814 265.061023 1933 + L 746.150266 268.371784 1934 + L 746.738899 275.104571 1935 + L 747.495713 285.108511 1936 + L 749.093432 261.173353 1937 + L 749.682065 255.758604 1938 + L 750.018426 254.124286 1939 + L 750.270698 253.694789 1940 + L 750.438879 253.808936 1941 + L 750.69115 254.598939 1942 + L 751.027512 256.821882 1943 + L 751.447964 261.45002 1944 + L 752.036597 271.09378 1945 + L 752.70932 285.653621 1946 + L 752.793411 283.774243 1947 + L 754.6434 241.462163 1948 + L 755.147943 234.6733 1949 + L 755.484305 232.322634 1950 + L 755.652486 231.896728 1951 + L 755.736576 231.883318 1952 + L 755.904757 232.270787 1953 + L 756.157028 233.926862 1954 + L 756.49339 238.226726 1955 + L 756.913842 247.068028 1956 + L 757.418385 262.757523 1957 + L 758.007018 283.782874 1958 + L 758.847922 238.127868 1959 + L 761.791088 67.644785 1960 + L 762.379721 48.938248 1961 + L 762.800173 41.261761 1962 + L 763.052444 39.086112 1963 + L 763.220625 38.670394 1964 + L 763.220625 38.670394 1965 + " clip-path="url(#p422532d28b)" style="fill: none; stroke: #2ca02c; stroke-width: 1.2; stroke-linecap: square"/> 1966 + </g> 1967 + <g id="line2d_66"> 1968 + <path d="M 426.942969 38.670394 1969 + L 427.11115 38.832587 1970 + L 427.363421 39.683051 1971 + L 427.699783 41.942396 1972 + L 428.120235 46.543248 1973 + L 428.624777 54.577245 1974 + L 429.297501 69.264842 1975 + L 430.138405 93.219381 1976 + L 431.231581 131.477165 1977 + L 435.352012 285.653765 1978 + L 436.277007 261.543735 1979 + L 437.033821 246.928011 1980 + L 437.706545 238.030881 1981 + L 438.211087 233.89143 1982 + L 438.631539 232.053835 1983 + L 438.883811 231.627899 1984 + L 439.051992 231.615527 1985 + L 439.220173 231.813701 1986 + L 439.472444 232.491767 1987 + L 439.808806 234.069812 1988 + L 440.313348 237.754138 1989 + L 440.986072 244.758397 1990 + L 441.911066 257.240511 1991 + L 443.761056 285.652992 1992 + L 443.845147 284.403779 1993 + L 444.938322 269.718307 1994 + L 445.779227 261.141034 1995 + L 446.45195 256.426864 1996 + L 446.956493 254.252096 1997 + L 447.376945 253.348051 1998 + L 447.629216 253.198219 1999 + L 447.881487 253.336572 2000 + L 448.133759 253.755387 2001 + L 448.470121 254.732781 2002 + L 448.974663 257.035968 2003 + L 449.563296 260.844598 2004 + L 450.404201 267.929792 2005 + L 451.833738 282.327393 2006 + L 452.1701 285.651672 2007 + L 453.431456 273.85169 2008 + L 454.272361 267.798734 2009 + L 454.945084 264.40422 2010 + L 455.449627 262.807086 2011 + L 455.870079 262.123205 2012 + L 456.12235 261.99658 2013 + L 456.374622 262.080401 2014 + L 456.710983 262.512449 2015 + L 457.131436 263.54665 2016 + L 457.635978 265.460349 2017 + L 458.308702 269.006371 2018 + L 459.233696 275.2855 2019 + L 460.579143 285.649759 2020 + L 461.92459 275.871204 2021 + L 462.765495 271.157722 2022 + L 463.438218 268.509398 2023 + L 463.942761 267.269074 2024 + L 464.363213 266.748924 2025 + L 464.699575 266.672425 2026 + L 465.035937 266.89458 2027 + L 465.372298 267.407611 2028 + L 465.876841 268.694944 2029 + L 466.465474 270.910264 2030 + L 467.222288 274.693708 2031 + L 468.399554 281.930034 2032 + L 468.988187 285.647178 2033 + L 470.417725 276.993959 2034 + L 471.258629 273.090989 2035 + L 471.931352 270.911865 2036 + L 472.435895 269.907827 2037 + L 472.856347 269.506666 2038 + L 473.192709 269.47462 2039 + L 473.529071 269.697177 2040 + L 473.949523 270.323669 2041 + L 474.454065 271.558424 2042 + L 475.126789 273.937077 2043 + L 475.967693 277.849845 2044 + L 477.397231 285.643826 2045 + L 477.481321 285.16487 2046 + L 478.910859 277.636247 2047 + L 479.751763 274.260315 2048 + L 480.424486 272.396229 2049 + L 480.929029 271.557936 2050 + L 481.349481 271.246575 2051 + L 481.685843 271.254525 2052 + L 482.022205 271.489154 2053 + L 482.442657 272.092699 2054 + L 482.9472 273.247331 2055 + L 483.619923 275.43942 2056 + L 484.460827 279.015526 2057 + L 485.806274 285.639556 2058 + L 487.319902 278.326056 2059 + L 488.160807 275.210173 2060 + L 488.83353 273.472599 2061 + L 489.338073 272.6794 2062 + L 489.758525 272.373411 2063 + L 490.094887 272.365383 2064 + L 490.431248 272.56698 2065 + L 490.851701 273.107028 2066 + L 491.356243 274.156557 2067 + L 492.028967 276.168657 2068 + L 492.869871 279.476767 2069 + L 494.215318 285.634164 2070 + L 495.813036 278.414741 2071 + L 496.653941 275.54256 2072 + L 497.326664 273.965336 2073 + L 497.831207 273.267798 2074 + L 498.251659 273.023947 2075 + L 498.588021 273.0537 2076 + L 498.924383 273.282362 2077 + L 499.344835 273.841283 2078 + L 499.849377 274.892156 2079 + L 500.522101 276.872321 2080 + L 501.363005 280.093491 2081 + L 502.624362 285.627363 2082 + L 504.22208 278.642346 2083 + L 505.062984 275.839625 2084 + L 505.735708 274.28813 2085 + L 506.240251 273.593206 2086 + L 506.660703 273.341571 2087 + L 506.997064 273.359273 2088 + L 507.333426 273.571349 2089 + L 507.753878 274.104174 2090 + L 508.258421 275.117709 2091 + L 508.931145 277.042007 2092 + L 509.772049 280.191817 2093 + L 511.033405 285.618743 2094 + L 512.715214 278.37174 2095 + L 513.556119 275.6528 2096 + L 514.228842 274.173396 2097 + L 514.733385 273.5343 2098 + L 515.153837 273.329765 2099 + L 515.490199 273.385237 2100 + L 515.910651 273.727352 2101 + L 516.415193 274.5265 2102 + L 517.003826 275.958541 2103 + L 517.76064 278.482928 2104 + L 518.769726 282.715182 2105 + L 519.442449 285.607702 2106 + L 521.124258 278.234524 2107 + L 521.965162 275.444187 2108 + L 522.637886 273.913395 2109 + L 523.142428 273.243015 2110 + L 523.56288 273.019108 2111 + L 523.899242 273.064387 2112 + L 524.319694 273.401325 2113 + L 524.740147 274.042838 2114 + L 525.32878 275.423714 2115 + L 526.001503 277.614935 2116 + L 526.926498 281.453287 2117 + L 527.851493 285.593325 2118 + L 529.617392 277.564119 2119 + L 530.458296 274.714592 2120 + L 531.13102 273.178153 2121 + L 531.635562 272.53043 2122 + L 532.056015 272.343705 2123 + L 532.392376 272.430769 2124 + L 532.812829 272.834732 2125 + L 533.317371 273.741145 2126 + L 533.906004 275.342723 2127 + L 534.662818 278.149097 2128 + L 535.671903 282.844369 2129 + L 536.260536 285.574165 2130 + L 538.026436 276.951142 2131 + L 538.86734 273.857262 2132 + L 539.540063 272.171438 2133 + L 540.044606 271.44758 2134 + L 540.465058 271.224801 2135 + L 540.80142 271.302531 2136 + L 541.137782 271.608616 2137 + L 541.558234 272.307444 2138 + L 542.062777 273.59075 2139 + L 542.7355 275.988486 2140 + L 543.576404 279.888068 2141 + L 544.66958 285.547792 2142 + L 546.51957 275.588041 2143 + L 547.360474 272.217465 2144 + L 548.033198 270.406952 2145 + L 548.53774 269.655607 2146 + L 548.874102 269.464618 2147 + L 549.210464 269.52873 2148 + L 549.546825 269.849709 2149 + L 549.967278 270.608416 2150 + L 550.47182 272.024677 2151 + L 551.144544 274.700829 2152 + L 551.985448 279.095861 2153 + L 553.078624 285.509814 2154 + L 555.012704 273.552736 2155 + L 555.853608 269.71292 2156 + L 556.442241 267.87076 2157 + L 556.946784 266.94301 2158 + L 557.283146 266.683979 2159 + L 557.619507 266.722873 2160 + L 557.955869 267.063535 2161 + L 558.376321 267.912105 2162 + L 558.880864 269.533394 2163 + L 559.469497 272.201123 2164 + L 560.226311 276.691608 2165 + L 561.319487 284.663275 2166 + L 561.487667 285.451412 2167 + L 563.505838 270.311873 2168 + L 564.346742 265.650549 2169 + L 564.935375 263.419433 2170 + L 565.439918 262.30821 2171 + L 565.77628 262.012391 2172 + L 566.028551 262.033407 2173 + L 566.280822 262.266194 2174 + L 566.617184 262.908009 2175 + L 567.037636 264.239255 2176 + L 567.542179 266.589015 2177 + L 568.214902 270.90213 2178 + L 569.055807 277.882648 2179 + L 569.896711 285.351947 2180 + L 572.167153 263.134317 2181 + L 572.923967 257.756923 2182 + L 573.5126 254.887399 2183 + L 573.933052 253.6665 2184 + L 574.269414 253.231804 2185 + L 574.521685 253.236714 2186 + L 574.773956 253.532847 2187 + L 575.110318 254.387904 2188 + L 575.53077 256.200384 2189 + L 576.035313 259.451038 2190 + L 576.708036 265.51563 2191 + L 577.548941 275.525291 2192 + L 578.305755 285.149324 2193 + L 581.24892 242.343451 2194 + L 581.921644 236.038271 2195 + L 582.426186 232.995868 2196 + L 582.762548 231.895412 2197 + L 583.014819 231.598645 2198 + L 583.183 231.664584 2199 + L 583.435271 232.173409 2200 + L 583.771633 233.642725 2201 + L 584.192085 236.79432 2202 + L 584.696628 242.557328 2203 + L 585.285261 252.039527 2204 + L 586.042075 268.501581 2205 + L 586.714798 284.531645 2206 + L 587.723884 251.280994 2207 + L 589.237512 193.019361 2208 + L 591.507953 105.696734 2209 + L 592.517039 74.711831 2210 + L 593.357943 55.36591 2211 + L 593.946576 45.995888 2212 + L 594.451119 40.94538 2213 + L 594.78748 39.166907 2214 + L 595.039752 38.680533 2215 + L 595.207933 38.761635 2216 + L 595.376113 39.166907 2217 + L 595.628385 40.380336 2218 + L 595.964746 43.117561 2219 + L 596.469289 49.565154 2220 + L 597.057922 60.468091 2221 + L 597.814736 79.340633 2222 + L 598.739731 108.590957 2223 + L 600.085178 159.260944 2224 + L 602.860162 265.865113 2225 + L 603.448795 284.531645 2226 + L 603.532886 284.419926 2227 + L 604.457881 260.606685 2228 + L 605.214694 246.258128 2229 + L 605.887418 237.603634 2230 + L 606.391961 233.642725 2231 + L 606.812413 231.948272 2232 + L 607.064684 231.60474 2233 + L 607.232865 231.64557 2234 + L 607.485136 232.096715 2235 + L 607.821498 233.390979 2236 + L 608.24195 236.038271 2237 + L 608.830583 241.431863 2238 + L 609.587397 250.672767 2239 + L 610.764663 268.175142 2240 + L 611.857839 285.149324 2241 + L 611.941929 285.026795 2242 + L 613.119196 269.225539 2243 + L 613.9601 260.787679 2244 + L 614.632823 256.200384 2245 + L 615.137366 254.124563 2246 + L 615.473728 253.401461 2247 + L 615.725999 253.203001 2248 + L 615.97827 253.293802 2249 + L 616.230542 253.6665 2250 + L 616.566903 254.585235 2251 + L 617.071446 256.808006 2252 + L 617.660079 260.536912 2253 + L 618.500983 267.539635 2254 + L 619.930521 281.892391 2255 + L 620.266883 285.351947 2256 + L 620.350973 285.225062 2257 + L 621.61233 273.507318 2258 + L 622.453234 267.546355 2259 + L 623.125958 264.239255 2260 + L 623.6305 262.712065 2261 + L 624.050952 262.087371 2262 + L 624.303224 261.996021 2263 + L 624.555495 262.114579 2264 + L 624.891857 262.591611 2265 + L 625.312309 263.679003 2266 + L 625.816851 265.650549 2267 + L 626.489575 269.260719 2268 + L 627.41457 275.598544 2269 + L 628.675926 285.451412 2270 + L 628.760017 285.320097 2271 + L 630.105464 275.603608 2272 + L 630.946368 270.960814 2273 + L 631.619092 268.380873 2274 + L 632.123634 267.195864 2275 + L 632.544086 266.722873 2276 + L 632.880448 266.683979 2277 + L 633.21681 266.94301 2278 + L 633.637262 267.672652 2279 + L 634.141805 269.108285 2280 + L 634.814528 271.866338 2281 + L 635.655433 276.386789 2282 + L 637.08497 285.509814 2283 + L 637.16906 285.373056 2284 + L 638.598598 276.772118 2285 + L 639.439502 272.928351 2286 + L 640.112226 270.806893 2287 + L 640.616768 269.849709 2288 + L 641.037221 269.488622 2289 + L 641.373582 269.488606 2290 + L 641.709944 269.742633 2291 + L 642.130396 270.406952 2292 + L 642.634939 271.683718 2293 + L 643.307662 274.110395 2294 + L 644.148567 278.066598 2295 + L 645.494014 285.547792 2296 + L 645.578104 285.404173 2297 + L 647.007642 277.8309 2298 + L 647.848546 274.403253 2299 + L 648.521269 272.488385 2300 + L 649.025812 271.608616 2301 + L 649.446264 271.261652 2302 + L 649.782626 271.241062 2303 + L 650.118988 271.44758 2304 + L 650.53944 272.017242 2305 + L 651.043982 273.134117 2306 + L 651.716706 275.282848 2307 + L 652.55761 278.819473 2308 + L 653.903057 285.574165 2309 + L 653.987148 285.421907 2310 + L 655.500776 278.149097 2311 + L 656.34168 275.080304 2312 + L 657.014403 273.389205 2313 + L 657.518946 272.634093 2314 + L 657.939398 272.360879 2315 + L 658.27576 272.379174 2316 + L 658.612122 272.606743 2317 + L 659.032574 273.178153 2318 + L 659.537117 274.262711 2319 + L 660.20984 276.315151 2320 + L 661.050744 279.660146 2321 + L 662.312101 285.593325 2322 + L 662.396191 285.430215 2323 + L 663.909819 278.580478 2324 + L 664.750724 275.663963 2325 + L 665.423447 274.042838 2326 + L 665.92799 273.309238 2327 + L 666.348442 273.0343 2328 + L 666.684804 273.039052 2329 + L 667.021165 273.243015 2330 + L 667.441618 273.772071 2331 + L 667.94616 274.789533 2332 + L 668.618884 276.731143 2333 + L 669.459788 279.916968 2334 + L 670.721145 285.607702 2335 + L 670.805235 285.430937 2336 + L 672.402953 278.482928 2337 + L 673.243858 275.723161 2338 + L 673.916581 274.2143 2339 + L 674.421124 273.554459 2340 + L 674.841576 273.333108 2341 + L 675.177938 273.375195 2342 + L 675.59839 273.700372 2343 + L 676.102933 274.478458 2344 + L 676.691566 275.884312 2345 + L 677.44838 278.37174 2346 + L 678.457465 282.548986 2347 + L 679.130188 285.618743 2348 + L 679.298369 285.03685 2349 + L 680.811997 278.52899 2350 + L 681.652901 275.767336 2351 + L 682.325625 274.245454 2352 + L 682.830168 273.571349 2353 + L 683.25062 273.336554 2354 + L 683.586981 273.367638 2355 + L 684.007434 273.679663 2356 + L 684.427886 274.28813 2357 + L 685.016519 275.609178 2358 + L 685.689242 277.713785 2359 + L 686.614237 281.406705 2360 + L 687.539232 285.627363 2361 + L 687.623322 285.411182 2362 + L 689.305131 278.075475 2363 + L 690.146036 275.328683 2364 + L 690.818759 273.841283 2365 + L 691.323302 273.206724 2366 + L 691.743754 273.01382 2367 + L 692.080116 273.084115 2368 + L 692.500568 273.451952 2369 + L 693.00511 274.29271 2370 + L 693.593743 275.787894 2371 + L 694.350557 278.414741 2372 + L 695.359643 282.812734 2373 + L 695.948276 285.634164 2374 + L 696.200547 284.572845 2375 + L 697.714175 277.729276 2376 + L 698.555079 274.834233 2377 + L 699.227803 273.252321 2378 + L 699.732345 272.56698 2379 + L 700.152797 272.347644 2380 + L 700.489159 272.408358 2381 + L 700.825521 272.6794 2382 + L 701.245973 273.308903 2383 + L 701.750516 274.47219 2384 + L 702.423239 276.651048 2385 + L 703.264144 280.195865 2386 + L 704.357319 285.639556 2387 + L 704.44141 285.356184 2388 + L 706.207309 276.774568 2389 + L 707.048213 273.729535 2390 + L 707.720937 272.092699 2391 + L 708.225479 271.409481 2392 + L 708.561841 271.231152 2393 + L 708.898203 271.280304 2394 + L 709.234565 271.557936 2395 + L 709.655017 272.222048 2396 + L 710.159559 273.466069 2397 + L 710.832283 275.817744 2398 + L 711.673187 279.674019 2399 + L 712.766363 285.643826 2400 + L 712.850453 285.307615 2401 + L 714.616353 275.783413 2402 + L 715.457257 272.358862 2403 + L 716.12998 270.493893 2404 + L 716.634523 269.697177 2405 + L 716.970885 269.47462 2406 + L 717.307247 269.506666 2407 + L 717.643608 269.795576 2408 + L 718.064061 270.514948 2409 + L 718.568603 271.886386 2410 + L 719.241327 274.509434 2411 + L 720.082231 278.853593 2412 + L 721.175407 285.647178 2413 + L 721.259497 285.234863 2414 + L 723.109487 273.775927 2415 + L 723.950391 269.873349 2416 + L 724.539024 267.976146 2417 + L 725.043567 266.995969 2418 + L 725.379928 266.700193 2419 + L 725.71629 266.701543 2420 + L 726.052652 267.004431 2421 + L 726.473104 267.806345 2422 + L 726.977647 269.373974 2423 + L 727.56628 271.984736 2424 + L 728.323094 276.415264 2425 + L 729.416269 284.33627 2426 + L 729.58445 285.649759 2427 + L 730.088993 281.791652 2428 + L 731.602621 270.582744 2429 + L 732.443525 265.845224 2430 + L 733.032158 263.54665 2431 + L 733.536701 262.370717 2432 + L 733.873063 262.029286 2433 + L 734.125334 262.01526 2434 + L 734.377605 262.212612 2435 + L 734.713967 262.807086 2436 + L 735.134419 264.08002 2437 + L 735.638962 266.36294 2438 + L 736.311685 270.596197 2439 + L 737.15259 277.499217 2440 + L 737.993494 285.651672 2441 + L 738.582127 279.713094 2442 + L 740.179845 264.18322 2443 + L 741.02075 258.009333 2444 + L 741.609383 255.049024 2445 + L 742.029835 253.755387 2446 + L 742.366197 253.258866 2447 + L 742.618468 253.215824 2448 + L 742.870739 253.463054 2449 + L 743.207101 254.252096 2450 + L 743.627553 255.982085 2451 + L 744.132096 259.136304 2452 + L 744.804819 265.082117 2453 + L 745.645724 274.969884 2454 + L 746.402538 285.652992 2455 + L 747.243442 272.797144 2456 + L 748.925251 247.890569 2457 + L 749.766155 238.508291 2458 + L 750.354788 234.069812 2459 + L 750.77524 232.216095 2460 + L 751.111602 231.615527 2461 + L 751.279783 231.627899 2462 + L 751.447964 231.856644 2463 + L 751.700235 232.616918 2464 + L 752.036597 234.432822 2465 + L 752.457049 238.030881 2466 + L 752.961592 244.339415 2467 + L 753.550225 254.454837 2468 + L 754.307039 271.692817 2469 + L 754.811581 285.653765 2470 + L 755.568395 261.590195 2471 + L 756.913842 211.466618 2472 + L 759.941098 95.910641 2473 + L 760.866093 69.264842 2474 + L 761.622907 53.053861 2475 + L 762.21154 44.469321 2476 + L 762.716082 40.127833 2477 + L 763.052444 38.832587 2478 + L 763.220625 38.670394 2479 + L 763.220625 38.670394 2480 + " clip-path="url(#p422532d28b)" style="fill: none; stroke: #1f77b4; stroke-width: 1.4; stroke-linecap: square"/> 2481 + </g> 2482 + <g id="line2d_67"> 2483 + <path d="M 603.488738 285.715781 2484 + L 603.488738 26.318125 2485 + " clip-path="url(#p422532d28b)" style="fill: none; stroke-dasharray: 1.3,2.145; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.3"/> 2486 + </g> 2487 + <g id="patch_9"> 2488 + <path d="M 426.942969 285.715781 2489 + L 426.942969 26.318125 2490 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2491 + </g> 2492 + <g id="patch_10"> 2493 + <path d="M 763.220625 285.715781 2494 + L 763.220625 26.318125 2495 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2496 + </g> 2497 + <g id="patch_11"> 2498 + <path d="M 426.942969 285.715781 2499 + L 763.220625 285.715781 2500 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2501 + </g> 2502 + <g id="patch_12"> 2503 + <path d="M 426.942969 26.318125 2504 + L 763.220625 26.318125 2505 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2506 + </g> 2507 + <g id="text_39"> 2508 + <text style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff" transform="translate(433.668522 150.356572)">N = 20 puts a node on 32.05 orders and removes</text> 2509 + <text style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff" transform="translate(433.668522 160.558896)">it; the power-of-two N = 32 lets it through</text> 2510 + </g> 2511 + <g id="text_40"> 2512 + <text style="font-weight: 700; font-size: 12px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="595.081797" y="16.318125" transform="rotate(-0 595.081797 16.318125)">Rejecting a Tone by Choosing N (McFadden 1987)</text> 2513 + </g> 2514 + <g id="legend_2"> 2515 + <g id="patch_13"> 2516 + <path d="M 637.363125 68.72 2517 + L 757.620625 68.72 2518 + Q 759.220625 68.72 759.220625 67.12 2519 + L 759.220625 31.918125 2520 + Q 759.220625 30.318125 757.620625 30.318125 2521 + L 637.363125 30.318125 2522 + Q 635.763125 30.318125 635.763125 31.918125 2523 + L 635.763125 67.12 2524 + Q 635.763125 68.72 637.363125 68.72 2525 + z 2526 + " style="opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 2527 + </g> 2528 + <g id="line2d_68"> 2529 + <path d="M 638.963125 36.796875 2530 + L 646.963125 36.796875 2531 + L 654.963125 36.796875 2532 + " style="fill: none; stroke: #2ca02c; stroke-width: 1.2; stroke-linecap: square"/> 2533 + </g> 2534 + <g id="text_41"> 2535 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start; fill: #ffffff" x="661.363125" y="39.596875" transform="rotate(-0 661.363125 39.596875)">N = 32 (power of two)</text> 2536 + </g> 2537 + <g id="line2d_69"> 2538 + <path d="M 638.963125 48.7975 2539 + L 646.963125 48.7975 2540 + L 654.963125 48.7975 2541 + " style="fill: none; stroke: #1f77b4; stroke-width: 1.4; stroke-linecap: square"/> 2542 + </g> 2543 + <g id="text_42"> 2544 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start; fill: #ffffff" x="661.363125" y="51.5975" transform="rotate(-0 661.363125 51.5975)">N = 20 (node on 32.05)</text> 2545 + </g> 2546 + <g id="line2d_70"> 2547 + <path d="M 638.963125 60.798125 2548 + L 646.963125 60.798125 2549 + L 654.963125 60.798125 2550 + " style="fill: none; stroke-dasharray: 1.3,2.145; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.3"/> 2551 + </g> 2552 + <g id="text_43"> 2553 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start; fill: #ffffff" x="661.363125" y="63.598125" transform="rotate(-0 661.363125 63.598125)">Interfering tone (32.05)</text> 2554 + </g> 2555 + </g> 2556 + </g> 2557 + </g> 2558 + <defs> 2559 + <clipPath id="pcc14f2df3a"> 2560 + <rect x="42.942969" y="26.318125" width="336.277656" height="259.397656"/> 2561 + </clipPath> 2562 + <clipPath id="p422532d28b"> 2563 + <rect x="426.942969" y="26.318125" width="336.277656" height="259.397656"/> 2564 + </clipPath> 2565 + </defs> 2566 + </svg>
+2559
.github/images/synchronous_average_es.svg
··· 1 + <?xml version="1.0" encoding="utf-8" standalone="no"?> 2 + <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 3 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4 + <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="772.01125pt" height="324.796562pt" viewBox="0 0 772.01125 324.796562" xmlns="http://www.w3.org/2000/svg" version="1.1"> 5 + <metadata> 6 + <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 7 + <cc:Work> 8 + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> 9 + <dc:format>image/svg+xml</dc:format> 10 + <dc:creator> 11 + <cc:Agent> 12 + <dc:title>Matplotlib v3.11.1, https://matplotlib.org/</dc:title> 13 + </cc:Agent> 14 + </dc:creator> 15 + </cc:Work> 16 + </rdf:RDF> 17 + </metadata> 18 + <defs> 19 + <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> 20 + </defs> 21 + <g id="figure_1"> 22 + <g id="patch_1"> 23 + <path d="M 0 324.796562 24 + L 772.01125 324.796562 25 + L 772.01125 0 26 + L 0 0 27 + z 28 + " style="fill: #ffffff"/> 29 + </g> 30 + <g id="axes_1"> 31 + <g id="patch_2"> 32 + <path d="M 38.171094 286.195781 33 + L 374.44875 286.195781 34 + L 374.44875 26.798125 35 + L 38.171094 26.798125 36 + z 37 + " style="fill: #ffffff"/> 38 + </g> 39 + <g id="matplotlib.axis_1"> 40 + <g id="xtick_1"> 41 + <g id="line2d_1"> 42 + <path d="M 38.171094 286.195781 43 + L 38.171094 26.798125 44 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 45 + </g> 46 + <g id="line2d_2"> 47 + <defs> 48 + <path id="m3d27035b55" d="M 0 0 49 + L 0 3.5 50 + " style="stroke: #000000; stroke-width: 0.8"/> 51 + </defs> 52 + <g> 53 + <use xlink:href="#m3d27035b55" x="38.171094" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 54 + </g> 55 + </g> 56 + <g id="text_1"> 57 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="38.171094" y="300.793437" transform="rotate(-0 38.171094 300.793437)">0</text> 58 + </g> 59 + </g> 60 + <g id="xtick_2"> 61 + <g id="line2d_3"> 62 + <path d="M 91.975519 286.195781 63 + L 91.975519 26.798125 64 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 65 + </g> 66 + <g id="line2d_4"> 67 + <g> 68 + <use xlink:href="#m3d27035b55" x="91.975519" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 69 + </g> 70 + </g> 71 + <g id="text_2"> 72 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="91.975519" y="300.793437" transform="rotate(-0 91.975519 300.793437)">5</text> 73 + </g> 74 + </g> 75 + <g id="xtick_3"> 76 + <g id="line2d_5"> 77 + <path d="M 145.779944 286.195781 78 + L 145.779944 26.798125 79 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 80 + </g> 81 + <g id="line2d_6"> 82 + <g> 83 + <use xlink:href="#m3d27035b55" x="145.779944" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 84 + </g> 85 + </g> 86 + <g id="text_3"> 87 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="145.779944" y="300.793437" transform="rotate(-0 145.779944 300.793437)">10</text> 88 + </g> 89 + </g> 90 + <g id="xtick_4"> 91 + <g id="line2d_7"> 92 + <path d="M 199.584369 286.195781 93 + L 199.584369 26.798125 94 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 95 + </g> 96 + <g id="line2d_8"> 97 + <g> 98 + <use xlink:href="#m3d27035b55" x="199.584369" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 99 + </g> 100 + </g> 101 + <g id="text_4"> 102 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="199.584369" y="300.793437" transform="rotate(-0 199.584369 300.793437)">15</text> 103 + </g> 104 + </g> 105 + <g id="xtick_5"> 106 + <g id="line2d_9"> 107 + <path d="M 253.388794 286.195781 108 + L 253.388794 26.798125 109 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 110 + </g> 111 + <g id="line2d_10"> 112 + <g> 113 + <use xlink:href="#m3d27035b55" x="253.388794" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 114 + </g> 115 + </g> 116 + <g id="text_5"> 117 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="253.388794" y="300.793437" transform="rotate(-0 253.388794 300.793437)">20</text> 118 + </g> 119 + </g> 120 + <g id="xtick_6"> 121 + <g id="line2d_11"> 122 + <path d="M 307.193219 286.195781 123 + L 307.193219 26.798125 124 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 125 + </g> 126 + <g id="line2d_12"> 127 + <g> 128 + <use xlink:href="#m3d27035b55" x="307.193219" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 129 + </g> 130 + </g> 131 + <g id="text_6"> 132 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="307.193219" y="300.793437" transform="rotate(-0 307.193219 300.793437)">25</text> 133 + </g> 134 + </g> 135 + <g id="xtick_7"> 136 + <g id="line2d_13"> 137 + <path d="M 360.997644 286.195781 138 + L 360.997644 26.798125 139 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 140 + </g> 141 + <g id="line2d_14"> 142 + <g> 143 + <use xlink:href="#m3d27035b55" x="360.997644" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 144 + </g> 145 + </g> 146 + <g id="text_7"> 147 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="360.997644" y="300.793437" transform="rotate(-0 360.997644 300.793437)">30</text> 148 + </g> 149 + </g> 150 + <g id="text_8"> 151 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="206.309922" y="314.794219" transform="rotate(-0 206.309922 314.794219)">Tiempo [ms]</text> 152 + </g> 153 + </g> 154 + <g id="matplotlib.axis_2"> 155 + <g id="ytick_1"> 156 + <g id="line2d_15"> 157 + <path d="M 38.171094 251.637791 158 + L 374.44875 251.637791 159 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 160 + </g> 161 + <g id="line2d_16"> 162 + <defs> 163 + <path id="mef640d9f3a" d="M 0 0 164 + L -3.5 0 165 + " style="stroke: #000000; stroke-width: 0.8"/> 166 + </defs> 167 + <g> 168 + <use xlink:href="#mef640d9f3a" x="38.171094" y="251.637791" style="stroke: #000000; stroke-width: 0.8"/> 169 + </g> 170 + </g> 171 + <g id="text_9"> 172 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="31.171094" y="255.43662" transform="rotate(-0 31.171094 255.43662)">-3</text> 173 + </g> 174 + </g> 175 + <g id="ytick_2"> 176 + <g id="line2d_17"> 177 + <path d="M 38.171094 216.033622 178 + L 374.44875 216.033622 179 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 180 + </g> 181 + <g id="line2d_18"> 182 + <g> 183 + <use xlink:href="#mef640d9f3a" x="38.171094" y="216.033622" style="stroke: #000000; stroke-width: 0.8"/> 184 + </g> 185 + </g> 186 + <g id="text_10"> 187 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="31.171094" y="219.832451" transform="rotate(-0 31.171094 219.832451)">-2</text> 188 + </g> 189 + </g> 190 + <g id="ytick_3"> 191 + <g id="line2d_19"> 192 + <path d="M 38.171094 180.429453 193 + L 374.44875 180.429453 194 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 195 + </g> 196 + <g id="line2d_20"> 197 + <g> 198 + <use xlink:href="#mef640d9f3a" x="38.171094" y="180.429453" style="stroke: #000000; stroke-width: 0.8"/> 199 + </g> 200 + </g> 201 + <g id="text_11"> 202 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="31.171094" y="184.228282" transform="rotate(-0 31.171094 184.228282)">-1</text> 203 + </g> 204 + </g> 205 + <g id="ytick_4"> 206 + <g id="line2d_21"> 207 + <path d="M 38.171094 144.825285 208 + L 374.44875 144.825285 209 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 210 + </g> 211 + <g id="line2d_22"> 212 + <g> 213 + <use xlink:href="#mef640d9f3a" x="38.171094" y="144.825285" style="stroke: #000000; stroke-width: 0.8"/> 214 + </g> 215 + </g> 216 + <g id="text_12"> 217 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="31.171094" y="148.624113" transform="rotate(-0 31.171094 148.624113)">0</text> 218 + </g> 219 + </g> 220 + <g id="ytick_5"> 221 + <g id="line2d_23"> 222 + <path d="M 38.171094 109.221116 223 + L 374.44875 109.221116 224 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 225 + </g> 226 + <g id="line2d_24"> 227 + <g> 228 + <use xlink:href="#mef640d9f3a" x="38.171094" y="109.221116" style="stroke: #000000; stroke-width: 0.8"/> 229 + </g> 230 + </g> 231 + <g id="text_13"> 232 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="31.171094" y="113.019944" transform="rotate(-0 31.171094 113.019944)">1</text> 233 + </g> 234 + </g> 235 + <g id="ytick_6"> 236 + <g id="line2d_25"> 237 + <path d="M 38.171094 73.616947 238 + L 374.44875 73.616947 239 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 240 + </g> 241 + <g id="line2d_26"> 242 + <g> 243 + <use xlink:href="#mef640d9f3a" x="38.171094" y="73.616947" style="stroke: #000000; stroke-width: 0.8"/> 244 + </g> 245 + </g> 246 + <g id="text_14"> 247 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="31.171094" y="77.415775" transform="rotate(-0 31.171094 77.415775)">2</text> 248 + </g> 249 + </g> 250 + <g id="ytick_7"> 251 + <g id="line2d_27"> 252 + <path d="M 38.171094 38.012778 253 + L 374.44875 38.012778 254 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 255 + </g> 256 + <g id="line2d_28"> 257 + <g> 258 + <use xlink:href="#mef640d9f3a" x="38.171094" y="38.012778" style="stroke: #000000; stroke-width: 0.8"/> 259 + </g> 260 + </g> 261 + <g id="text_15"> 262 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="31.171094" y="41.811606" transform="rotate(-0 31.171094 41.811606)">3</text> 263 + </g> 264 + </g> 265 + <g id="text_16"> 266 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="14.798438" y="156.496953" transform="rotate(-90 14.798438 156.496953)">Amplitud</text> 267 + </g> 268 + </g> 269 + <g id="line2d_29"> 270 + <path d="M 38.171094 102.721685 271 + L 39.484678 60.837999 272 + L 40.798263 65.478338 273 + L 42.111848 121.099228 274 + L 43.425432 114.41945 275 + L 44.739017 121.750787 276 + L 46.052601 86.637267 277 + L 47.366186 106.485501 278 + L 48.679771 80.666207 279 + L 49.993355 163.324945 280 + L 51.30694 54.119859 281 + L 52.620524 107.089076 282 + L 53.934109 82.206645 283 + L 55.247693 108.315701 284 + L 56.561278 116.198897 285 + L 57.874863 89.582212 286 + L 59.188447 78.484772 287 + L 60.502032 111.911682 288 + L 61.815616 111.147603 289 + L 63.129201 85.402564 290 + L 64.442786 136.344611 291 + L 65.75637 158.377949 292 + L 67.069955 99.079297 293 + L 68.383539 134.994747 294 + L 69.697124 176.987959 295 + L 71.010709 143.914728 296 + L 72.324293 135.263574 297 + L 73.637878 160.980652 298 + L 74.951462 173.183759 299 + L 76.265047 127.065872 300 + L 77.578632 102.332861 301 + L 78.892216 141.184541 302 + L 80.205801 160.201377 303 + L 81.519385 126.798796 304 + L 82.83297 118.717598 305 + L 84.146555 153.587497 306 + L 85.460139 128.814534 307 + L 86.773724 114.895612 308 + L 88.087308 156.563933 309 + L 89.400893 177.426276 310 + L 90.714478 141.552524 311 + L 92.028062 145.662824 312 + L 93.341647 119.084299 313 + L 94.655231 195.498945 314 + L 95.968816 175.59349 315 + L 97.282401 180.920334 316 + L 98.595985 208.929523 317 + L 99.90957 148.641179 318 + L 101.223154 134.70072 319 + L 102.536739 173.805723 320 + L 103.850323 104.421501 321 + L 105.163908 120.728279 322 + L 106.477493 125.122824 323 + L 107.791077 130.427536 324 + L 109.104662 110.789677 325 + L 110.418246 181.898206 326 + L 111.731831 117.838685 327 + L 113.045416 116.35488 328 + L 114.359 190.33099 329 + L 115.672585 121.211147 330 + L 116.986169 138.885747 331 + L 118.299754 104.728119 332 + L 119.613339 142.735538 333 + L 120.926923 128.569078 334 + L 122.240508 116.570306 335 + L 123.554092 155.306115 336 + L 124.867677 108.27884 337 + L 126.181262 131.092419 338 + L 127.494846 112.620356 339 + L 128.808431 145.873899 340 + L 130.122015 95.61492 341 + L 131.4356 112.28743 342 + L 132.749185 138.803629 343 + L 134.062769 114.603647 344 + L 135.376354 96.357704 345 + L 136.689938 81.294658 346 + L 138.003523 190.733828 347 + L 139.317108 114.29874 348 + L 140.630692 129.682651 349 + L 141.944277 149.544596 350 + L 143.257861 180.658773 351 + L 144.571446 110.247269 352 + L 145.885031 192.481444 353 + L 147.198615 135.751614 354 + L 148.5122 113.819004 355 + L 149.825784 207.876408 356 + L 151.139369 167.691797 357 + L 152.452953 200.929242 358 + L 153.766538 152.258746 359 + L 155.080123 112.478889 360 + L 156.393707 96.871919 361 + L 157.707292 218.816753 362 + L 160.334461 140.343273 363 + L 161.648046 112.664726 364 + L 164.275215 187.446318 365 + L 165.588799 154.40246 366 + L 166.902384 164.745134 367 + L 168.215969 171.117735 368 + L 169.529553 188.562321 369 + L 170.843138 153.354171 370 + L 172.156722 156.645001 371 + L 173.470307 170.358872 372 + L 174.783892 175.549263 373 + L 176.097476 210.761119 374 + L 177.411061 186.688463 375 + L 178.724645 134.24706 376 + L 180.03823 180.649413 377 + L 181.351815 222.491156 378 + L 182.665399 135.9909 379 + L 183.978984 163.895084 380 + L 185.292568 115.829781 381 + L 186.606153 183.557044 382 + L 187.919738 202.731875 383 + L 189.233322 236.683744 384 + L 190.546907 150.603143 385 + L 191.860491 113.190323 386 + L 193.174076 223.739846 387 + L 194.487661 220.324758 388 + L 195.801245 182.585875 389 + L 197.11483 229.906389 390 + L 198.428414 213.555475 391 + L 199.741999 217.349644 392 + L 201.055583 201.019967 393 + L 202.369168 172.849775 394 + L 203.682753 207.447781 395 + L 204.996337 178.808329 396 + L 206.309922 221.225288 397 + L 207.623506 196.666233 398 + L 208.937091 274.404979 399 + L 210.250676 251.082183 400 + L 211.56426 177.707168 401 + L 212.877845 220.034378 402 + L 214.191429 180.466555 403 + L 215.505014 179.233874 404 + L 216.818599 151.694366 405 + L 218.132183 165.201377 406 + L 219.445768 155.732315 407 + L 220.759352 188.775549 408 + L 222.072937 204.464405 409 + L 223.386522 202.47892 410 + L 224.700106 191.690939 411 + L 226.013691 209.25144 412 + L 227.327275 187.827885 413 + L 228.64086 170.620935 414 + L 229.954445 157.123025 415 + L 231.268029 173.674762 416 + L 232.581614 222.200712 417 + L 233.895198 161.224209 418 + L 235.208783 150.11694 419 + L 236.522368 121.331039 420 + L 237.835952 136.416092 421 + L 239.149537 174.579533 422 + L 240.463121 176.537772 423 + L 241.776706 88.835454 424 + L 243.090291 128.714166 425 + L 244.403875 94.407932 426 + L 245.71746 85.07156 427 + L 247.031044 179.519583 428 + L 248.344629 141.50902 429 + L 249.658214 139.675157 430 + L 250.971798 136.9727 431 + L 252.285383 138.087838 432 + L 253.598967 149.473136 433 + L 254.912552 150.850828 434 + L 256.226136 204.809876 435 + L 257.539721 162.426649 436 + L 258.853306 181.22415 437 + L 260.16689 153.393837 438 + L 261.480475 172.281862 439 + L 262.794059 137.37606 440 + L 264.107644 130.596565 441 + L 265.421229 146.369615 442 + L 266.734813 145.457983 443 + L 268.048398 151.777929 444 + L 269.361982 168.116544 445 + L 270.675567 158.03441 446 + L 271.989152 167.492236 447 + L 273.302736 138.095323 448 + L 274.616321 148.824824 449 + L 275.929905 129.494215 450 + L 277.24349 189.294758 451 + L 278.557075 117.364023 452 + L 279.870659 169.004076 453 + L 281.184244 167.129178 454 + L 282.497828 149.143413 455 + L 283.811413 160.136623 456 + L 285.124998 132.318849 457 + L 286.438582 159.604974 458 + L 287.752167 175.265678 459 + L 289.065751 168.160722 460 + L 290.379336 99.484814 461 + L 293.006505 179.714906 462 + L 294.32009 142.947488 463 + L 295.633674 193.847184 464 + L 296.947259 88.077849 465 + L 298.260844 195.096546 466 + L 299.574428 132.379426 467 + L 300.888013 131.612186 468 + L 302.201597 196.597929 469 + L 303.515182 141.993681 470 + L 304.828766 120.971057 471 + L 306.142351 139.02208 472 + L 307.455936 146.625096 473 + L 308.76952 125.491263 474 + L 310.083105 151.306701 475 + L 311.396689 146.118514 476 + L 312.710274 161.074881 477 + L 314.023859 136.743051 478 + L 315.337443 186.587073 479 + L 316.651028 130.537144 480 + L 317.964612 170.951972 481 + L 319.278197 188.327258 482 + L 321.905366 95.883655 483 + L 323.218951 117.035344 484 + L 324.532535 161.751485 485 + L 325.84612 120.289089 486 + L 327.159705 154.179013 487 + L 328.473289 140.549308 488 + L 329.786874 130.504877 489 + L 331.100458 204.041053 490 + L 332.414043 120.5303 491 + L 333.727628 156.122374 492 + L 335.041212 142.123485 493 + L 336.354797 163.608582 494 + L 337.668381 161.725476 495 + L 338.981966 140.323132 496 + L 340.295551 80.909386 497 + L 341.609135 51.347188 498 + L 342.92272 102.865984 499 + L 344.236304 64.951084 500 + L 345.549889 106.275855 501 + L 346.863474 157.214709 502 + L 348.177058 89.963295 503 + L 349.490643 79.408073 504 + L 350.804227 106.507181 505 + L 352.117812 82.626614 506 + L 353.431396 73.721824 507 + L 354.744981 119.561696 508 + L 356.058566 139.364088 509 + L 357.37215 99.684565 510 + L 358.685735 99.958113 511 + L 359.999319 105.230503 512 + L 361.312904 63.309468 513 + L 362.626489 40.689448 514 + L 363.940073 110.122109 515 + L 365.253658 75.541221 516 + L 366.567242 68.854373 517 + L 367.880827 77.142692 518 + L 369.194412 67.425901 519 + L 370.507996 114.195109 520 + L 371.821581 78.930276 521 + L 373.135165 38.588928 522 + L 373.135165 38.588928 523 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke: #e0e0e0; stroke-linecap: square"/> 524 + </g> 525 + <g id="line2d_30"> 526 + <path d="M 38.171094 104.058389 527 + L 39.484678 103.582484 528 + L 40.798263 104.007138 529 + L 42.111848 100.000969 530 + L 43.425432 108.664621 531 + L 44.739017 110.400275 532 + L 46.052601 104.133599 533 + L 47.366186 114.08295 534 + L 48.679771 104.772634 535 + L 49.993355 108.226921 536 + L 51.30694 100.329718 537 + L 52.620524 102.200718 538 + L 53.934109 100.456361 539 + L 55.247693 107.084734 540 + L 56.561278 108.187133 541 + L 57.874863 103.788386 542 + L 59.188447 95.827067 543 + L 60.502032 119.080667 544 + L 61.815616 102.352342 545 + L 63.129201 113.479397 546 + L 64.442786 108.210157 547 + L 65.75637 119.232074 548 + L 67.069955 112.43346 549 + L 68.383539 125.77871 550 + L 69.697124 115.551755 551 + L 71.010709 119.478396 552 + L 72.324293 122.197822 553 + L 73.637878 117.246741 554 + L 74.951462 122.791113 555 + L 76.265047 136.078022 556 + L 77.578632 133.600812 557 + L 78.892216 142.979824 558 + L 80.205801 134.716339 559 + L 81.519385 137.459415 560 + L 82.83297 139.626988 561 + L 84.146555 133.832826 562 + L 85.460139 148.804969 563 + L 86.773724 154.952605 564 + L 88.087308 147.028944 565 + L 89.400893 154.867014 566 + L 90.714478 152.521437 567 + L 92.028062 155.547264 568 + L 93.341647 149.598242 569 + L 94.655231 156.154539 570 + L 95.968816 155.067839 571 + L 97.282401 155.830701 572 + L 98.595985 152.481979 573 + L 99.90957 150.243563 574 + L 101.223154 146.435293 575 + L 102.536739 143.005645 576 + L 103.850323 151.756165 577 + L 105.163908 149.027731 578 + L 106.477493 148.468044 579 + L 107.791077 146.507328 580 + L 109.104662 137.949308 581 + L 110.418246 140.354574 582 + L 111.731831 127.963204 583 + L 113.045416 135.695593 584 + L 114.359 132.691283 585 + L 115.672585 126.016379 586 + L 116.986169 130.40815 587 + L 118.299754 136.97275 588 + L 119.613339 129.731305 589 + L 120.926923 134.885791 590 + L 122.240508 125.908754 591 + L 123.554092 118.84563 592 + L 124.867677 125.81305 593 + L 126.181262 126.865396 594 + L 127.494846 123.686893 595 + L 128.808431 119.962423 596 + L 130.122015 129.564471 597 + L 131.4356 132.560492 598 + L 132.749185 127.981319 599 + L 134.062769 129.871936 600 + L 135.376354 128.272451 601 + L 136.689938 139.53983 602 + L 138.003523 135.595735 603 + L 139.317108 139.076773 604 + L 140.630692 135.15988 605 + L 141.944277 139.417908 606 + L 143.257861 142.731444 607 + L 144.571446 147.908695 608 + L 145.885031 145.580657 609 + L 147.198615 154.108199 610 + L 148.5122 155.170881 611 + L 149.825784 153.744416 612 + L 151.139369 161.121299 613 + L 152.452953 166.65286 614 + L 153.766538 157.277193 615 + L 155.080123 162.639048 616 + L 156.393707 158.785216 617 + L 157.707292 160.320102 618 + L 159.020876 158.056957 619 + L 160.334461 153.454522 620 + L 161.648046 153.820352 621 + L 162.96163 164.020219 622 + L 164.275215 159.040556 623 + L 165.588799 175.263294 624 + L 166.902384 159.362701 625 + L 168.215969 156.149824 626 + L 169.529553 162.305904 627 + L 170.843138 167.321116 628 + L 172.156722 170.240865 629 + L 173.470307 167.360769 630 + L 174.783892 168.700202 631 + L 176.097476 170.920597 632 + L 177.411061 174.816553 633 + L 178.724645 172.413437 634 + L 180.03823 172.199138 635 + L 181.351815 180.589191 636 + L 182.665399 182.735164 637 + L 183.978984 185.73555 638 + L 185.292568 182.472021 639 + L 187.919738 186.118065 640 + L 189.233322 189.108982 641 + L 190.546907 186.684772 642 + L 191.860491 194.455947 643 + L 193.174076 196.4024 644 + L 194.487661 197.967421 645 + L 195.801245 195.468152 646 + L 197.11483 199.529808 647 + L 198.428414 200.772448 648 + L 199.741999 211.863566 649 + L 201.055583 209.310733 650 + L 202.369168 214.656417 651 + L 203.682753 212.258071 652 + L 204.996337 208.444028 653 + L 206.309922 205.757076 654 + L 207.623506 204.767604 655 + L 208.937091 205.506652 656 + L 210.250676 195.189647 657 + L 211.56426 198.070602 658 + L 212.877845 199.40907 659 + L 214.191429 199.730677 660 + L 215.505014 196.035419 661 + L 216.818599 194.785445 662 + L 218.132183 187.98986 663 + L 219.445768 187.163142 664 + L 220.759352 187.77554 665 + L 222.072937 180.3598 666 + L 223.386522 175.866574 667 + L 224.700106 181.177335 668 + L 227.327275 173.550915 669 + L 228.64086 168.075199 670 + L 229.954445 159.323877 671 + L 231.268029 166.95292 672 + L 232.581614 146.248917 673 + L 233.895198 161.149424 674 + L 235.208783 157.648802 675 + L 236.522368 155.863537 676 + L 237.835952 141.050272 677 + L 239.149537 162.182826 678 + L 240.463121 149.179633 679 + L 241.776706 150.261486 680 + L 243.090291 148.076626 681 + L 244.403875 156.042529 682 + L 245.71746 155.047067 683 + L 247.031044 154.819139 684 + L 248.344629 164.202053 685 + L 249.658214 157.037493 686 + L 250.971798 157.219359 687 + L 252.285383 151.322224 688 + L 253.598967 157.751847 689 + L 254.912552 159.093101 690 + L 256.226136 153.431039 691 + L 257.539721 148.85939 692 + L 258.853306 154.463899 693 + L 260.16689 148.829942 694 + L 261.480475 159.349939 695 + L 262.794059 164.240481 696 + L 264.107644 155.330394 697 + L 265.421229 151.624285 698 + L 266.734813 158.07479 699 + L 268.048398 148.326131 700 + L 269.361982 159.277748 701 + L 271.989152 154.620179 702 + L 273.302736 152.713683 703 + L 274.616321 143.285156 704 + L 275.929905 146.048449 705 + L 277.24349 145.29157 706 + L 278.557075 144.070612 707 + L 279.870659 142.018489 708 + L 281.184244 140.205245 709 + L 282.497828 139.849037 710 + L 283.811413 140.971472 711 + L 285.124998 141.810486 712 + L 286.438582 135.007006 713 + L 287.752167 141.121642 714 + L 289.065751 137.043679 715 + L 290.379336 145.060416 716 + L 291.692921 143.351357 717 + L 293.006505 136.450902 718 + L 294.32009 132.949969 719 + L 295.633674 142.586927 720 + L 296.947259 144.670786 721 + L 298.260844 150.816589 722 + L 299.574428 143.232623 723 + L 300.888013 151.22109 724 + L 302.201597 149.633116 725 + L 303.515182 157.69077 726 + L 304.828766 160.499487 727 + L 306.142351 152.927705 728 + L 308.76952 147.613536 729 + L 310.083105 155.526891 730 + L 311.396689 152.489222 731 + L 312.710274 161.753196 732 + L 315.337443 149.009845 733 + L 316.651028 161.667833 734 + L 317.964612 158.395811 735 + L 319.278197 158.05569 736 + L 320.591782 155.190019 737 + L 321.905366 153.719275 738 + L 323.218951 143.397523 739 + L 324.532535 138.915954 740 + L 325.84612 142.609741 741 + L 327.159705 138.218834 742 + L 328.473289 130.773146 743 + L 329.786874 137.373354 744 + L 331.100458 132.212697 745 + L 332.414043 129.29307 746 + L 333.727628 127.156245 747 + L 335.041212 112.740368 748 + L 336.354797 121.697805 749 + L 337.668381 119.154265 750 + L 338.981966 103.51985 751 + L 340.295551 105.144132 752 + L 341.609135 98.381047 753 + L 342.92272 101.607131 754 + L 344.236304 100.193754 755 + L 345.549889 102.469376 756 + L 346.863474 95.974911 757 + L 348.177058 93.638098 758 + L 349.490643 93.808909 759 + L 350.804227 96.873428 760 + L 352.117812 83.702249 761 + L 353.431396 106.172054 762 + L 354.744981 100.471432 763 + L 356.058566 98.014912 764 + L 357.37215 94.50019 765 + L 358.685735 97.814917 766 + L 359.999319 102.256531 767 + L 361.312904 86.182933 768 + L 362.626489 97.411105 769 + L 363.940073 107.040465 770 + L 365.253658 96.899352 771 + L 366.567242 94.269893 772 + L 367.880827 104.591298 773 + L 369.194412 107.696782 774 + L 370.507996 95.878936 775 + L 371.821581 98.59464 776 + L 373.135165 105.056416 777 + L 373.135165 105.056416 778 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke: #1f77b4; stroke-width: 1.8; stroke-linecap: square"/> 779 + </g> 780 + <g id="line2d_31"> 781 + <path d="M 38.171094 103.505561 782 + L 39.484678 103.955087 783 + L 40.798263 104.28319 784 + L 43.425432 104.595316 785 + L 46.052601 104.524062 786 + L 49.993355 104.020257 787 + L 52.620524 103.701285 788 + L 55.247693 103.646175 789 + L 56.561278 103.783809 790 + L 57.874863 104.064088 791 + L 59.188447 104.508507 792 + L 60.502032 105.135531 793 + L 61.815616 105.960077 794 + L 63.129201 106.993075 795 + L 64.442786 108.241106 796 + L 65.75637 109.706148 797 + L 67.069955 111.385413 798 + L 69.697124 115.351422 799 + L 72.324293 120.022162 800 + L 74.951462 125.211988 801 + L 82.83297 141.315288 802 + L 85.460139 145.901054 803 + L 86.773724 147.893003 804 + L 88.087308 149.646414 805 + L 89.400893 151.137551 806 + L 90.714478 152.347058 807 + L 92.028062 153.260387 808 + L 93.341647 153.868116 809 + L 94.655231 154.166175 810 + L 95.968816 154.15596 811 + L 97.282401 153.844335 812 + L 98.595985 153.243527 813 + L 99.90957 152.370909 814 + L 101.223154 151.24868 815 + L 102.536739 149.903448 816 + L 105.163908 146.669325 817 + L 107.791077 142.94843 818 + L 113.045416 135.297182 819 + L 115.672585 131.985865 820 + L 116.986169 130.580123 821 + L 118.299754 129.378889 822 + L 119.613339 128.405437 823 + L 120.926923 127.678422 824 + L 122.240508 127.211576 825 + L 123.554092 127.013514 826 + L 124.867677 127.087643 827 + L 126.181262 127.432179 828 + L 127.494846 128.040278 829 + L 128.808431 128.900268 830 + L 130.122015 129.995982 831 + L 131.4356 131.307183 832 + L 134.062769 134.477858 833 + L 136.689938 138.189925 834 + L 145.885031 151.878187 835 + L 148.5122 155.087637 836 + L 151.139369 157.722408 837 + L 152.452953 158.80969 838 + L 153.766538 159.7448 839 + L 155.080123 160.534197 840 + L 157.707292 161.722382 841 + L 160.334461 162.503733 842 + L 168.215969 164.302913 843 + L 169.529553 164.797976 844 + L 170.843138 165.413672 845 + L 172.156722 166.1694 846 + L 173.470307 167.081198 847 + L 174.783892 168.161275 848 + L 176.097476 169.417625 849 + L 177.411061 170.853736 850 + L 180.03823 174.255589 851 + L 182.665399 178.29985 852 + L 185.292568 182.846005 853 + L 193.174076 197.214173 854 + L 195.801245 201.31778 855 + L 197.11483 203.08018 856 + L 198.428414 204.60675 857 + L 199.741999 205.869037 858 + L 201.055583 206.842296 859 + L 202.369168 207.506027 860 + L 203.682753 207.844424 861 + L 204.996337 207.846734 862 + L 206.309922 207.50751 863 + L 207.623506 206.826767 864 + L 208.937091 205.810018 865 + L 210.250676 204.468207 866 + L 211.56426 202.817523 867 + L 212.877845 200.879123 868 + L 214.191429 198.678735 869 + L 216.818599 193.614845 870 + L 219.445768 187.903064 871 + L 227.327275 170.036492 872 + L 229.954445 164.850448 873 + L 232.581614 160.457436 874 + L 233.895198 158.607652 875 + L 235.208783 157.00552 876 + L 236.522368 155.65698 877 + L 237.835952 154.562769 878 + L 239.149537 153.718523 879 + L 240.463121 153.11497 880 + L 241.776706 152.73823 881 + L 243.090291 152.570211 882 + L 244.403875 152.589089 883 + L 245.71746 152.769862 884 + L 248.344629 153.504953 885 + L 252.285383 155.086036 886 + L 254.912552 156.103745 887 + L 257.539721 156.836247 888 + L 258.853306 157.039889 889 + L 260.16689 157.112476 890 + L 261.480475 157.042088 891 + L 262.794059 156.821164 892 + L 264.107644 156.446636 893 + L 265.421229 155.919971 894 + L 266.734813 155.247086 895 + L 269.361982 153.507459 896 + L 271.989152 151.355061 897 + L 279.870659 144.338327 898 + L 282.497828 142.529718 899 + L 283.811413 141.836135 900 + L 285.124998 141.308175 901 + L 286.438582 140.960207 902 + L 287.752167 140.802492 903 + L 289.065751 140.840863 904 + L 290.379336 141.076492 905 + L 291.692921 141.50577 906 + L 293.006505 142.120287 907 + L 294.32009 142.906918 908 + L 296.947259 144.921732 909 + L 299.574428 147.360866 910 + L 304.828766 152.508852 911 + L 307.455936 154.652857 912 + L 308.76952 155.493713 913 + L 310.083105 156.137271 914 + L 311.396689 156.554554 915 + L 312.710274 156.72008 916 + L 314.023859 156.612427 917 + L 315.337443 156.214707 918 + L 316.651028 155.514959 919 + L 317.964612 154.506437 920 + L 319.278197 153.187796 921 + L 320.591782 151.563173 922 + L 321.905366 149.642147 923 + L 323.218951 147.4396 924 + L 324.532535 144.975464 925 + L 327.159705 139.365177 926 + L 329.786874 133.055967 927 + L 338.981966 109.890718 928 + L 341.609135 104.246142 929 + L 342.92272 101.752916 930 + L 344.236304 99.51065 931 + L 345.549889 97.537198 932 + L 346.863474 95.845408 933 + L 348.177058 94.442953 934 + L 349.490643 93.332282 935 + L 350.804227 92.510675 936 + L 352.117812 91.970402 937 + L 353.431396 91.698995 938 + L 354.744981 91.679608 939 + L 356.058566 91.891473 940 + L 357.37215 92.31043 941 + L 358.685735 92.909524 942 + L 361.312904 94.530288 943 + L 363.940073 96.507864 944 + L 369.194412 100.570544 945 + L 371.821581 102.248784 946 + L 373.135165 102.93512 947 + L 373.135165 102.93512 948 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 4.44,1.92; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.2"/> 949 + </g> 950 + <g id="patch_3"> 951 + <path d="M 38.171094 286.195781 952 + L 38.171094 26.798125 953 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 954 + </g> 955 + <g id="patch_4"> 956 + <path d="M 374.44875 286.195781 957 + L 374.44875 26.798125 958 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 959 + </g> 960 + <g id="patch_5"> 961 + <path d="M 38.171094 286.195781 962 + L 374.44875 286.195781 963 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 964 + </g> 965 + <g id="patch_6"> 966 + <path d="M 38.171094 26.798125 967 + L 374.44875 26.798125 968 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 969 + </g> 970 + <g id="text_17"> 971 + <text style="font-size: 8.5px; font-family: sans-serif" transform="translate(44.896647 262.342377)">promediar N períodos reduce el ruido asíncrono</text> 972 + <!-- en $\sqrt{N}$ en amplitud --> 973 + <g transform="translate(44.896647 275.521029)"> 974 + <text> 975 + <tspan x="0" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">e</tspan> 976 + <tspan x="5.229492" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">n</tspan> 977 + <tspan x="10.616699" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif"> </tspan> 978 + <tspan x="26.872406" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif"> </tspan> 979 + <tspan x="29.57431" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">e</tspan> 980 + <tspan x="34.803802" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">n</tspan> 981 + <tspan x="40.19101" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif"> </tspan> 982 + <tspan x="42.892914" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">a</tspan> 983 + <tspan x="48.101654" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">m</tspan> 984 + <tspan x="56.381683" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">p</tspan> 985 + <tspan x="61.777191" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">l</tspan> 986 + <tspan x="64.138763" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">i</tspan> 987 + <tspan x="66.500336" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">t</tspan> 988 + <tspan x="69.833099" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">u</tspan> 989 + <tspan x="75.220306" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif">d</tspan> 990 + <tspan x="13.318604" y="-2.0525" style="font-size: 4.800299px; font-family: sans-serif">√</tspan> 991 + <tspan x="19.451508" y="-0.265625" style="font-style: oblique; font-size: 8.5px; font-family: sans-serif">N</tspan> 992 + </text> 993 + <rect x="18.389008" y="-10.46875" width="8.483398" height="0.53125"/> 994 + </g> 995 + </g> 996 + <g id="text_18"> 997 + <text style="font-weight: 700; font-size: 12px; font-family: sans-serif; text-anchor: middle" x="206.309922" y="16.798125" transform="rotate(-0 206.309922 16.798125)">Forma de onda periódica extraída del ruido</text> 998 + </g> 999 + <g id="legend_1"> 1000 + <g id="patch_7"> 1001 + <path d="M 200.08625 70.16 1002 + L 368.84875 70.16 1003 + Q 370.44875 70.16 370.44875 68.56 1004 + L 370.44875 32.398125 1005 + Q 370.44875 30.798125 368.84875 30.798125 1006 + L 200.08625 30.798125 1007 + Q 198.48625 30.798125 198.48625 32.398125 1008 + L 198.48625 68.56 1009 + Q 198.48625 70.16 200.08625 70.16 1010 + z 1011 + " style="fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 1012 + </g> 1013 + <g id="line2d_32"> 1014 + <path d="M 201.68625 37.596875 1015 + L 209.68625 37.596875 1016 + L 217.68625 37.596875 1017 + " style="fill: none; stroke: #e0e0e0; stroke-linecap: square"/> 1018 + </g> 1019 + <g id="text_19"> 1020 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start" x="224.08625" y="40.396875" transform="rotate(-0 224.08625 40.396875)">Un período ruidoso</text> 1021 + </g> 1022 + <g id="line2d_33"> 1023 + <path d="M 201.68625 49.9175 1024 + L 209.68625 49.9175 1025 + L 217.68625 49.9175 1026 + " style="fill: none; stroke: #1f77b4; stroke-width: 1.8; stroke-linecap: square"/> 1027 + </g> 1028 + <g id="text_20"> 1029 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start" x="224.08625" y="52.7175" transform="rotate(-0 224.08625 52.7175)">Promedio de N = 40 períodos</text> 1030 + </g> 1031 + <g id="line2d_34"> 1032 + <path d="M 201.68625 62.238125 1033 + L 209.68625 62.238125 1034 + L 217.68625 62.238125 1035 + " style="fill: none; stroke-dasharray: 4.44,1.92; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.2"/> 1036 + </g> 1037 + <g id="text_21"> 1038 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start" x="224.08625" y="65.038125" transform="rotate(-0 224.08625 65.038125)">Forma de onda periódica verdadera</text> 1039 + </g> 1040 + </g> 1041 + </g> 1042 + <g id="axes_2"> 1043 + <g id="patch_8"> 1044 + <path d="M 422.171094 286.195781 1045 + L 758.44875 286.195781 1046 + L 758.44875 26.798125 1047 + L 422.171094 26.798125 1048 + z 1049 + " style="fill: #ffffff"/> 1050 + </g> 1051 + <g id="matplotlib.axis_3"> 1052 + <g id="xtick_8"> 1053 + <g id="line2d_35"> 1054 + <path d="M 422.171094 286.195781 1055 + L 422.171094 26.798125 1056 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1057 + </g> 1058 + <g id="line2d_36"> 1059 + <g> 1060 + <use xlink:href="#m3d27035b55" x="422.171094" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 1061 + </g> 1062 + </g> 1063 + <g id="text_22"> 1064 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="422.171094" y="300.793437" transform="rotate(-0 422.171094 300.793437)">31</text> 1065 + </g> 1066 + </g> 1067 + <g id="xtick_9"> 1068 + <g id="line2d_37"> 1069 + <path d="M 464.205801 286.195781 1070 + L 464.205801 26.798125 1071 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1072 + </g> 1073 + <g id="line2d_38"> 1074 + <g> 1075 + <use xlink:href="#m3d27035b55" x="464.205801" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 1076 + </g> 1077 + </g> 1078 + <g id="text_23"> 1079 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="464.205801" y="300.793437" transform="rotate(-0 464.205801 300.793437)">31,25</text> 1080 + </g> 1081 + </g> 1082 + <g id="xtick_10"> 1083 + <g id="line2d_39"> 1084 + <path d="M 506.240508 286.195781 1085 + L 506.240508 26.798125 1086 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1087 + </g> 1088 + <g id="line2d_40"> 1089 + <g> 1090 + <use xlink:href="#m3d27035b55" x="506.240508" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 1091 + </g> 1092 + </g> 1093 + <g id="text_24"> 1094 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="506.240508" y="300.793437" transform="rotate(-0 506.240508 300.793437)">31,5</text> 1095 + </g> 1096 + </g> 1097 + <g id="xtick_11"> 1098 + <g id="line2d_41"> 1099 + <path d="M 548.275215 286.195781 1100 + L 548.275215 26.798125 1101 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1102 + </g> 1103 + <g id="line2d_42"> 1104 + <g> 1105 + <use xlink:href="#m3d27035b55" x="548.275215" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 1106 + </g> 1107 + </g> 1108 + <g id="text_25"> 1109 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="548.275215" y="300.793437" transform="rotate(-0 548.275215 300.793437)">31,75</text> 1110 + </g> 1111 + </g> 1112 + <g id="xtick_12"> 1113 + <g id="line2d_43"> 1114 + <path d="M 590.309922 286.195781 1115 + L 590.309922 26.798125 1116 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1117 + </g> 1118 + <g id="line2d_44"> 1119 + <g> 1120 + <use xlink:href="#m3d27035b55" x="590.309922" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 1121 + </g> 1122 + </g> 1123 + <g id="text_26"> 1124 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="590.309922" y="300.793437" transform="rotate(-0 590.309922 300.793437)">32</text> 1125 + </g> 1126 + </g> 1127 + <g id="xtick_13"> 1128 + <g id="line2d_45"> 1129 + <path d="M 632.344629 286.195781 1130 + L 632.344629 26.798125 1131 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1132 + </g> 1133 + <g id="line2d_46"> 1134 + <g> 1135 + <use xlink:href="#m3d27035b55" x="632.344629" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 1136 + </g> 1137 + </g> 1138 + <g id="text_27"> 1139 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="632.344629" y="300.793437" transform="rotate(-0 632.344629 300.793437)">32,25</text> 1140 + </g> 1141 + </g> 1142 + <g id="xtick_14"> 1143 + <g id="line2d_47"> 1144 + <path d="M 674.379336 286.195781 1145 + L 674.379336 26.798125 1146 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1147 + </g> 1148 + <g id="line2d_48"> 1149 + <g> 1150 + <use xlink:href="#m3d27035b55" x="674.379336" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 1151 + </g> 1152 + </g> 1153 + <g id="text_28"> 1154 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="674.379336" y="300.793437" transform="rotate(-0 674.379336 300.793437)">32,5</text> 1155 + </g> 1156 + </g> 1157 + <g id="xtick_15"> 1158 + <g id="line2d_49"> 1159 + <path d="M 716.414043 286.195781 1160 + L 716.414043 26.798125 1161 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1162 + </g> 1163 + <g id="line2d_50"> 1164 + <g> 1165 + <use xlink:href="#m3d27035b55" x="716.414043" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 1166 + </g> 1167 + </g> 1168 + <g id="text_29"> 1169 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="716.414043" y="300.793437" transform="rotate(-0 716.414043 300.793437)">32,75</text> 1170 + </g> 1171 + </g> 1172 + <g id="xtick_16"> 1173 + <g id="line2d_51"> 1174 + <path d="M 758.44875 286.195781 1175 + L 758.44875 26.798125 1176 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1177 + </g> 1178 + <g id="line2d_52"> 1179 + <g> 1180 + <use xlink:href="#m3d27035b55" x="758.44875" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 1181 + </g> 1182 + </g> 1183 + <g id="text_30"> 1184 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="758.44875" y="300.793437" transform="rotate(-0 758.44875 300.793437)">33</text> 1185 + </g> 1186 + </g> 1187 + <g id="text_31"> 1188 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="590.309922" y="315.194219" transform="rotate(-0 590.309922 315.194219)">Frecuencia [órdenes]</text> 1189 + </g> 1190 + </g> 1191 + <g id="matplotlib.axis_4"> 1192 + <g id="ytick_8"> 1193 + <g id="line2d_53"> 1194 + <path d="M 422.171094 286.195781 1195 + L 758.44875 286.195781 1196 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1197 + </g> 1198 + <g id="line2d_54"> 1199 + <g> 1200 + <use xlink:href="#mef640d9f3a" x="422.171094" y="286.195781" style="stroke: #000000; stroke-width: 0.8"/> 1201 + </g> 1202 + </g> 1203 + <g id="text_32"> 1204 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="415.171094" y="289.994609" transform="rotate(-0 415.171094 289.994609)">0</text> 1205 + </g> 1206 + </g> 1207 + <g id="ytick_9"> 1208 + <g id="line2d_55"> 1209 + <path d="M 422.171094 236.786704 1210 + L 758.44875 236.786704 1211 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1212 + </g> 1213 + <g id="line2d_56"> 1214 + <g> 1215 + <use xlink:href="#mef640d9f3a" x="422.171094" y="236.786704" style="stroke: #000000; stroke-width: 0.8"/> 1216 + </g> 1217 + </g> 1218 + <g id="text_33"> 1219 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="415.171094" y="240.585532" transform="rotate(-0 415.171094 240.585532)">0,2</text> 1220 + </g> 1221 + </g> 1222 + <g id="ytick_10"> 1223 + <g id="line2d_57"> 1224 + <path d="M 422.171094 187.377626 1225 + L 758.44875 187.377626 1226 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1227 + </g> 1228 + <g id="line2d_58"> 1229 + <g> 1230 + <use xlink:href="#mef640d9f3a" x="422.171094" y="187.377626" style="stroke: #000000; stroke-width: 0.8"/> 1231 + </g> 1232 + </g> 1233 + <g id="text_34"> 1234 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="415.171094" y="191.176455" transform="rotate(-0 415.171094 191.176455)">0,4</text> 1235 + </g> 1236 + </g> 1237 + <g id="ytick_11"> 1238 + <g id="line2d_59"> 1239 + <path d="M 422.171094 137.968549 1240 + L 758.44875 137.968549 1241 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1242 + </g> 1243 + <g id="line2d_60"> 1244 + <g> 1245 + <use xlink:href="#mef640d9f3a" x="422.171094" y="137.968549" style="stroke: #000000; stroke-width: 0.8"/> 1246 + </g> 1247 + </g> 1248 + <g id="text_35"> 1249 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="415.171094" y="141.767377" transform="rotate(-0 415.171094 141.767377)">0,6</text> 1250 + </g> 1251 + </g> 1252 + <g id="ytick_12"> 1253 + <g id="line2d_61"> 1254 + <path d="M 422.171094 88.559472 1255 + L 758.44875 88.559472 1256 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1257 + </g> 1258 + <g id="line2d_62"> 1259 + <g> 1260 + <use xlink:href="#mef640d9f3a" x="422.171094" y="88.559472" style="stroke: #000000; stroke-width: 0.8"/> 1261 + </g> 1262 + </g> 1263 + <g id="text_36"> 1264 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="415.171094" y="92.3583" transform="rotate(-0 415.171094 92.3583)">0,8</text> 1265 + </g> 1266 + </g> 1267 + <g id="ytick_13"> 1268 + <g id="line2d_63"> 1269 + <path d="M 422.171094 39.150394 1270 + L 758.44875 39.150394 1271 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 1272 + </g> 1273 + <g id="line2d_64"> 1274 + <g> 1275 + <use xlink:href="#mef640d9f3a" x="422.171094" y="39.150394" style="stroke: #000000; stroke-width: 0.8"/> 1276 + </g> 1277 + </g> 1278 + <g id="text_37"> 1279 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end" x="415.171094" y="42.949222" transform="rotate(-0 415.171094 42.949222)">1</text> 1280 + </g> 1281 + </g> 1282 + <g id="text_38"> 1283 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="392.865625" y="156.496953" transform="rotate(-90 392.865625 156.496953)">Magnitud del filtro peine</text> 1284 + </g> 1285 + </g> 1286 + <g id="line2d_65"> 1287 + <path d="M 422.171094 39.150394 1288 + L 422.255184 39.254363 1289 + L 422.423365 40.085171 1290 + L 422.675636 42.876788 1291 + L 423.011998 49.418248 1292 + L 423.516541 64.923498 1293 + L 424.105174 90.60166 1294 + L 424.946078 137.813979 1295 + L 427.384701 284.262874 1296 + L 427.468791 284.170754 1297 + L 428.225605 254.710164 1298 + L 428.814238 240.164696 1299 + L 429.23469 234.406862 1300 + L 429.571052 232.487061 1301 + L 429.739233 232.376728 1302 + L 429.907414 232.802634 1303 + L 430.159685 234.387668 1304 + L 430.496047 238.104264 1305 + L 431.00059 246.538067 1306 + L 431.757404 263.491285 1307 + L 432.682398 286.133621 1308 + L 433.607393 267.023497 1309 + L 434.196026 258.911247 1310 + L 434.616478 255.509242 1311 + L 434.95284 254.288936 1312 + L 435.121021 254.174789 1313 + L 435.289202 254.382642 1314 + L 435.541473 255.275467 1315 + L 435.877835 257.477338 1316 + L 436.382378 262.651944 1317 + L 437.139191 273.398059 1318 + L 437.896005 285.588511 1319 + L 437.980096 285.466683 1320 + L 438.905091 272.429667 1321 + L 439.493724 266.70107 1322 + L 439.914176 264.229854 1323 + L 440.250538 263.302292 1324 + L 440.418719 263.191642 1325 + L 440.586899 263.313082 1326 + L 440.839171 263.918349 1327 + L 441.175532 265.471367 1328 + L 441.680075 269.207299 1329 + L 442.352799 276.150503 1330 + L 443.193703 286.132403 1331 + L 444.202788 275.198361 1332 + L 444.791421 270.7944 1333 + L 445.211873 268.88909 1334 + L 445.548235 268.178954 1335 + L 445.800506 268.129187 1336 + L 446.052778 268.486212 1337 + L 446.38914 269.566309 1338 + L 446.809592 271.798063 1339 + L 447.398225 276.254663 1340 + L 448.40731 285.847998 1341 + L 448.4914 285.720619 1342 + L 449.500486 276.85882 1343 + L 450.089119 273.291409 1344 + L 450.509571 271.76111 1345 + L 450.845933 271.208714 1346 + L 451.098204 271.194351 1347 + L 451.350475 271.51788 1348 + L 451.686837 272.452289 1349 + L 452.107289 274.356526 1350 + L 452.695922 278.138365 1351 + L 453.705008 286.130296 1352 + L 453.789098 285.433965 1353 + L 454.798183 277.946538 1354 + L 455.386816 274.951811 1355 + L 455.807268 273.686743 1356 + L 456.14363 273.252491 1357 + L 456.395901 273.271122 1358 + L 456.648173 273.580879 1359 + L 456.984535 274.427549 1360 + L 457.404987 276.120784 1361 + L 457.99362 279.453062 1362 + L 458.918615 285.956613 1363 + L 459.002705 285.823426 1364 + L 460.095881 278.697237 1365 + L 460.684514 276.116687 1366 + L 461.104966 275.048553 1367 + L 461.441328 274.706047 1368 + L 461.693599 274.754131 1369 + L 461.94587 275.059946 1370 + L 462.282232 275.851374 1371 + L 462.786775 277.778454 1372 + L 463.459498 281.41696 1373 + L 464.216312 286.127178 1374 + L 465.309488 279.636519 1375 + L 465.898121 277.218718 1376 + L 466.318573 276.177707 1377 + L 466.654935 275.804101 1378 + L 466.907206 275.799835 1379 + L 467.159477 276.030445 1380 + L 467.495839 276.690157 1381 + L 467.916291 278.034868 1382 + L 468.504924 280.715787 1383 + L 469.429919 286.015253 1384 + L 469.51401 285.874422 1385 + L 470.607185 279.978726 1386 + L 471.195818 277.812783 1387 + L 471.616271 276.901763 1388 + L 471.952632 276.597309 1389 + L 472.204904 276.623432 1390 + L 472.457175 276.865778 1391 + L 472.793537 277.512557 1392 + L 473.298079 279.11164 1393 + L 473.970803 282.164137 1394 + L 474.727617 286.122852 1395 + L 475.904883 280.218568 1396 + L 476.493516 278.251302 1397 + L 476.913968 277.44555 1398 + L 477.25033 277.199268 1399 + L 477.502601 277.252795 1400 + L 477.838963 277.637343 1401 + L 478.259415 278.593537 1402 + L 478.763958 280.349261 1403 + L 479.520772 283.868195 1404 + L 479.941224 286.051332 1405 + L 480.025314 285.900296 1406 + L 481.11849 280.703057 1407 + L 481.707123 278.774285 1408 + L 482.127575 277.953983 1409 + L 482.463937 277.672302 1410 + L 482.716208 277.686744 1411 + L 483.05257 278.00468 1412 + L 483.473022 278.859061 1413 + L 483.977565 280.475365 1414 + L 484.734379 283.779111 1415 + L 485.238921 286.117017 1416 + L 486.416187 280.776574 1417 + L 487.00482 278.980228 1418 + L 487.425273 278.236805 1419 + L 487.761634 278.002961 1420 + L 488.013906 278.044369 1421 + L 488.350267 278.38567 1422 + L 488.77072 279.24857 1423 + L 489.275262 280.845522 1424 + L 490.032076 284.067118 1425 + L 490.452528 286.07535 1426 + L 490.536619 285.910734 1427 + L 491.629794 281.09902 1428 + L 492.218427 279.298957 1429 + L 492.63888 278.526735 1430 + L 492.975241 278.256085 1431 + L 493.227513 278.263102 1432 + L 493.563874 278.551356 1433 + L 493.984327 279.340058 1434 + L 494.488869 280.843601 1435 + L 495.245683 283.935703 1436 + L 495.750226 286.109217 1437 + L 496.927492 281.057342 1438 + L 497.516125 279.344577 1439 + L 497.936577 278.629658 1440 + L 498.272939 278.3996 1441 + L 498.52521 278.433185 1442 + L 498.861572 278.750895 1443 + L 499.282024 279.565789 1444 + L 499.786567 281.084092 1445 + L 500.543381 284.164196 1446 + L 500.963833 286.092178 1447 + L 501.132014 285.520353 1448 + L 502.225189 280.970819 1449 + L 502.813823 279.326963 1450 + L 503.234275 278.661166 1451 + L 503.570636 278.468516 1452 + L 503.822908 278.528318 1453 + L 504.15927 278.87772 1454 + L 504.579722 279.725762 1455 + L 505.168355 281.577936 1456 + L 506.009259 285.131743 1457 + L 506.26153 286.098745 1458 + L 507.438797 281.124515 1459 + L 508.02743 279.42578 1460 + L 508.447882 278.711158 1461 + L 508.784244 278.4765 1462 + L 509.036515 278.504423 1463 + L 509.372877 278.812499 1464 + L 509.793329 279.613617 1465 + L 510.297871 281.11577 1466 + L 511.054685 284.179252 1467 + L 511.475137 286.104373 1468 + L 511.643318 285.507843 1469 + L 512.736494 280.937891 1470 + L 513.325127 279.274918 1471 + L 513.745579 278.595731 1472 + L 514.081941 278.394244 1473 + L 514.334212 278.449254 1474 + L 514.670574 278.795541 1475 + L 515.091026 279.646159 1476 + L 515.595569 281.207067 1477 + L 516.352383 284.348435 1478 + L 516.772835 286.084468 1479 + L 517.950101 280.992607 1480 + L 518.538734 279.240912 1481 + L 518.959186 278.498184 1482 + L 519.295548 278.249384 1483 + L 519.547819 278.27249 1484 + L 519.884181 278.58272 1485 + L 520.304633 279.40125 1486 + L 520.809176 280.94623 1487 + L 521.56599 284.114367 1488 + L 521.986442 286.113399 1489 + L 522.238713 285.063525 1490 + L 523.247799 280.692091 1491 + L 523.836432 278.941362 1492 + L 524.256884 278.219985 1493 + L 524.593246 278.00041 1494 + L 524.845517 278.052088 1495 + L 525.181879 278.408445 1496 + L 525.602331 279.295527 1497 + L 526.106873 280.934101 1498 + L 526.863687 284.250456 1499 + L 527.28414 286.064467 1500 + L 528.545496 280.319146 1501 + L 529.134129 278.552 1502 + L 529.554581 277.846042 1503 + L 529.890943 277.655278 1504 + L 530.143214 277.737828 1505 + L 530.479576 278.146822 1506 + L 530.900028 279.115853 1507 + L 531.488661 281.216809 1508 + L 532.329566 285.243516 1509 + L 532.497747 286.120147 1510 + L 532.750018 284.952279 1511 + L 533.843194 279.85558 1512 + L 534.431827 278.052349 1513 + L 534.852279 277.35564 1514 + L 535.188641 277.194004 1515 + L 535.440912 277.310816 1516 + L 535.777274 277.781131 1517 + L 536.197726 278.84931 1518 + L 536.786359 281.121713 1519 + L 537.627263 285.424825 1520 + L 537.795444 286.035258 1521 + L 539.056801 279.614589 1522 + L 539.645434 277.618221 1523 + L 540.065886 276.810608 1524 + L 540.402248 276.583096 1525 + L 540.654519 276.666182 1526 + L 540.990881 277.114594 1527 + L 541.411333 278.194762 1528 + L 541.915876 280.167935 1529 + L 542.67269 284.142536 1530 + L 543.009051 286.125182 1531 + L 543.345413 284.260328 1532 + L 544.354498 278.898223 1533 + L 544.943131 276.799673 1534 + L 545.363583 275.97594 1535 + L 545.699945 275.772363 1536 + L 545.952217 275.895122 1537 + L 546.288578 276.424638 1538 + L 546.70903 277.648372 1539 + L 547.297664 280.278683 1540 + L 548.138568 285.307022 1541 + L 548.306749 285.989822 1542 + L 549.568105 278.380672 1543 + L 550.156738 275.979596 1544 + L 550.577191 274.991413 1545 + L 550.913552 274.697499 1546 + L 551.165824 274.780067 1547 + L 551.418095 275.12385 1548 + L 551.754457 275.979015 1549 + L 552.258999 278.048314 1550 + L 552.931723 281.994848 1551 + L 553.520356 286.128874 1552 + L 553.940808 283.205417 1553 + L 554.949893 276.750657 1554 + L 555.538526 274.295735 1555 + L 555.958978 273.390124 1556 + L 556.21125 273.225002 1557 + L 556.463521 273.353903 1558 + L 556.715792 273.777689 1559 + L 557.052154 274.790493 1560 + L 557.556697 277.19671 1561 + L 558.22942 281.741731 1562 + L 558.818053 285.911699 1563 + L 560.1635 275.576583 1564 + L 560.752133 272.60751 1565 + L 561.172586 271.440933 1566 + L 561.424857 271.17305 1567 + L 561.593038 271.182547 1568 + L 561.845309 271.482669 1569 + L 562.181671 272.412443 1570 + L 562.602123 274.387286 1571 + L 563.190756 278.475613 1572 + L 564.03166 286.131467 1573 + L 564.115751 285.434905 1574 + L 565.461198 273.234021 1575 + L 566.049831 269.747373 1576 + L 566.470283 268.399028 1577 + L 566.722554 268.108928 1578 + L 566.890735 268.141996 1579 + L 567.143007 268.536579 1580 + L 567.479368 269.703526 1581 + L 567.899821 272.149409 1582 + L 568.488454 277.191507 1583 + L 569.329358 285.751324 1584 + L 570.758895 269.584437 1585 + L 571.347528 265.233082 1586 + L 571.767981 263.553393 1587 + L 572.020252 263.200412 1588 + L 572.188433 263.252665 1589 + L 572.440704 263.771431 1590 + L 572.777066 265.286381 1591 + L 573.197518 268.46022 1592 + L 573.786151 275.033475 1593 + L 574.542965 286.133117 1594 + L 574.627055 284.915473 1595 + L 576.140683 262.146504 1596 + L 576.729316 256.523139 1597 + L 577.149769 254.483801 1598 + L 577.40204 254.172807 1599 + L 577.570221 254.368698 1600 + L 577.822492 255.283622 1601 + L 578.158854 257.673419 1602 + L 578.579306 262.501676 1603 + L 579.167939 272.387449 1604 + L 579.840663 285.259769 1605 + L 581.774743 241.246289 1606 + L 582.279285 234.756236 1607 + L 582.615647 232.647293 1608 + L 582.783828 232.353064 1609 + L 582.867918 232.407864 1610 + L 583.036099 232.93597 1611 + L 583.28837 234.811872 1612 + L 583.624732 239.416384 1613 + L 584.045184 248.645511 1614 + L 584.549727 264.788379 1615 + L 585.05427 286.133921 1616 + L 585.811084 246.058207 1617 + L 587.408802 145.610527 1618 + L 588.501977 84.490624 1619 + L 589.174701 57.670298 1620 + L 589.679244 44.958031 1621 + L 590.015605 40.422207 1622 + L 590.267877 39.176389 1623 + L 590.351967 39.176389 1624 + L 590.520148 39.79977 1625 + L 590.772419 42.283872 1626 + L 591.108781 48.42854 1627 + L 591.529233 60.440209 1628 + L 592.117866 84.490624 1629 + L 592.958771 130.158426 1630 + L 595.565574 286.133921 1631 + L 596.322388 256.037625 1632 + L 596.911021 240.951736 1633 + L 597.331473 234.811872 1634 + L 597.667835 232.601258 1635 + L 597.836016 232.353064 1636 + L 598.004197 232.647293 1637 + L 598.256468 234.048109 1638 + L 598.59283 237.547492 1639 + L 599.097373 245.725151 1640 + L 599.854186 262.467747 1641 + L 600.779181 285.259769 1642 + L 600.863272 285.143339 1643 + L 601.704176 267.740664 1644 + L 602.292809 259.364561 1645 + L 602.713261 255.755802 1646 + L 603.049623 254.368698 1647 + L 603.217804 254.172807 1648 + L 603.385985 254.300994 1649 + L 603.638256 255.079712 1650 + L 603.974618 257.142797 1651 + L 604.47916 262.146504 1652 + L 605.151884 271.439633 1653 + L 606.076879 286.133117 1654 + L 607.085964 271.941137 1655 + L 607.674597 266.390055 1656 + L 608.095049 264.062335 1657 + L 608.431411 263.252665 1658 + L 608.599592 263.200412 1659 + L 608.767773 263.379137 1660 + L 609.020044 264.06709 1661 + L 609.356406 265.7217 1662 + L 609.860948 269.584437 1663 + L 610.617762 277.616716 1664 + L 611.290486 285.751324 1665 + L 611.374576 285.626529 1666 + L 612.383662 274.823796 1667 + L 612.972295 270.554637 1668 + L 613.392747 268.760147 1669 + L 613.729108 268.141996 1670 + L 613.897289 268.108928 1671 + L 614.06547 268.257644 1672 + L 614.317742 268.812627 1673 + L 614.654103 270.138703 1674 + L 615.158646 273.234021 1675 + L 615.91546 279.691948 1676 + L 616.588183 286.131467 1677 + L 617.681359 276.555013 1678 + L 618.269992 273.097868 1679 + L 618.690444 271.658846 1680 + L 619.026806 271.182547 1681 + L 619.279077 271.225054 1682 + L 619.531349 271.603882 1683 + L 619.86771 272.60751 1684 + L 620.372253 275.069174 1685 + L 621.044976 279.722372 1686 + L 621.80179 285.911699 1687 + L 621.885881 285.781591 1688 + L 622.894966 278.208256 1689 + L 623.483599 275.120591 1690 + L 623.904051 273.777689 1691 + L 624.240413 273.278077 1692 + L 624.492684 273.247606 1693 + L 624.744956 273.509407 1694 + L 625.081317 274.295735 1695 + L 625.50177 275.922542 1696 + L 626.090403 279.185369 1697 + L 627.099488 286.128874 1698 + L 627.183578 285.518796 1699 + L 628.192664 278.924007 1700 + L 628.781297 276.260974 1701 + L 629.201749 275.12385 1702 + L 629.538111 274.723442 1703 + L 629.790382 274.728045 1704 + L 630.042653 274.991413 1705 + L 630.379015 275.729472 1706 + L 630.799467 277.221161 1707 + L 631.3881 280.178018 1708 + L 632.313095 285.989822 1709 + L 632.397185 285.85309 1710 + L 633.490361 279.431204 1711 + L 634.078994 277.087127 1712 + L 634.499446 276.108205 1713 + L 634.835808 275.786931 1714 + L 635.088079 275.822088 1715 + L 635.340351 276.091287 1716 + L 635.676712 276.799673 1717 + L 636.181255 278.538982 1718 + L 636.853979 281.842692 1719 + L 637.610793 286.125182 1720 + L 638.703968 280.167935 1721 + L 639.292601 277.934768 1722 + L 639.713053 276.966812 1723 + L 640.049415 276.614197 1724 + L 640.301686 276.603945 1725 + L 640.553958 276.810608 1726 + L 640.89032 277.412257 1727 + L 641.310772 278.647313 1728 + L 641.899405 281.121411 1729 + L 642.8244 286.035258 1730 + L 642.90849 285.88969 1731 + L 644.001666 280.391736 1732 + L 644.590299 278.36093 1733 + L 645.010751 277.501646 1734 + L 645.347113 277.21022 1735 + L 645.599384 277.229725 1736 + L 645.851655 277.451954 1737 + L 646.188017 278.052349 1738 + L 646.69256 279.545587 1739 + L 647.365283 282.408194 1740 + L 648.122097 286.120147 1741 + L 649.299363 280.538868 1742 + L 649.887996 278.669878 1743 + L 650.308448 277.90015 1744 + L 650.64481 277.661233 1745 + L 650.897081 277.707966 1746 + L 651.233443 278.067867 1747 + L 651.653895 278.970616 1748 + L 652.158438 280.635085 1749 + L 652.915252 283.982525 1750 + L 653.335704 286.064467 1751 + L 653.419795 285.907124 1752 + L 654.51297 280.934101 1753 + L 655.101603 279.080796 1754 + L 655.522056 278.289006 1755 + L 655.858417 278.014166 1756 + L 656.110689 278.024563 1757 + L 656.44705 278.325492 1758 + L 656.867503 279.141747 1759 + L 657.372045 280.692091 1760 + L 658.128859 283.871077 1761 + L 658.633402 286.113399 1762 + L 659.810668 280.94623 1763 + L 660.399301 279.201059 1764 + L 660.819753 278.475613 1765 + L 661.156115 278.244697 1766 + L 661.408386 278.281821 1767 + L 661.744748 278.609334 1768 + L 662.1652 279.443494 1769 + L 662.669743 280.992607 1770 + L 663.426557 284.126665 1771 + L 663.847009 286.084468 1772 + L 664.01519 285.516778 1773 + L 665.108365 280.910902 1774 + L 665.696998 279.252668 1775 + L 666.117451 278.583898 1776 + L 666.453812 278.392888 1777 + L 666.706084 278.455973 1778 + L 667.042445 278.812039 1779 + L 667.462898 279.67116 1780 + L 668.051531 281.54151 1781 + L 668.892435 285.120098 1782 + L 669.144706 286.104373 1783 + L 670.321972 281.11577 1784 + L 670.910605 279.418246 1785 + L 671.331058 278.706888 1786 + L 671.667419 278.475613 1787 + L 671.919691 278.506189 1788 + L 672.256052 278.817533 1789 + L 672.676505 279.621602 1790 + L 673.181047 281.124515 1791 + L 673.937861 284.181481 1792 + L 674.358313 286.098745 1793 + L 674.526494 285.517383 1794 + L 675.61967 280.979642 1795 + L 676.208303 279.334242 1796 + L 676.628755 278.665038 1797 + L 676.965117 278.46896 1798 + L 677.217388 278.526119 1799 + L 677.55375 278.872321 1800 + L 677.974202 279.717583 1801 + L 678.562835 281.569599 1802 + L 679.40374 285.133081 1803 + L 679.656011 286.092178 1804 + L 680.833277 281.084092 1805 + L 681.42191 279.367604 1806 + L 681.842362 278.642706 1807 + L 682.178724 278.40231 1808 + L 682.430995 278.427791 1809 + L 682.767357 278.735511 1810 + L 683.187809 279.541383 1811 + L 683.692352 281.057342 1812 + L 684.449166 284.157286 1813 + L 684.869618 286.109217 1814 + L 685.037799 285.491382 1815 + L 686.130974 280.843601 1816 + L 686.719608 279.146122 1817 + L 687.14006 278.449852 1818 + L 687.476421 278.240679 1819 + L 687.728693 278.293905 1820 + L 688.065055 278.643536 1821 + L 688.485507 279.507878 1822 + L 688.990049 281.09902 1823 + L 689.746863 284.309999 1824 + L 690.167315 286.07535 1825 + L 691.344582 280.845522 1826 + L 691.933215 279.039322 1827 + L 692.353667 278.270251 1828 + L 692.690029 278.009905 1829 + L 692.9423 278.030544 1830 + L 693.278662 278.34623 1831 + L 693.699114 279.185917 1832 + L 694.203656 280.776574 1833 + L 694.96047 284.048131 1834 + L 695.380922 286.117017 1835 + L 695.633194 285.015912 1836 + L 696.726369 280.166531 1837 + L 697.315003 278.459074 1838 + L 697.735455 277.803593 1839 + L 698.071816 277.655559 1840 + L 698.324088 277.770411 1841 + L 698.66045 278.221426 1842 + L 699.080902 279.23893 1843 + L 699.669535 281.394771 1844 + L 700.67862 286.051332 1845 + L 701.939977 280.016419 1846 + L 702.52861 278.150755 1847 + L 702.949062 277.401043 1848 + L 703.285424 277.194425 1849 + L 703.537695 277.277166 1850 + L 703.874057 277.703069 1851 + L 704.294509 278.719875 1852 + L 704.799051 280.568743 1853 + L 705.555865 284.277936 1854 + L 705.892227 286.122852 1855 + L 706.228589 284.405294 1856 + L 707.237674 279.442827 1857 + L 707.826307 277.512557 1858 + L 708.246759 276.761303 1859 + L 708.583121 276.58176 1860 + L 708.835392 276.701262 1861 + L 709.171754 277.197248 1862 + L 709.592206 278.33262 1863 + L 710.180839 280.759341 1864 + L 711.021744 285.374636 1865 + L 711.189925 286.015253 1866 + L 712.451281 279.084441 1867 + L 713.039914 276.914964 1868 + L 713.460366 276.030445 1869 + L 713.796728 275.774955 1870 + L 714.048999 275.858204 1871 + L 714.301271 276.177707 1872 + L 714.637632 276.961475 1873 + L 715.142175 278.843192 1874 + L 715.814899 282.409887 1875 + L 716.403532 286.127178 1876 + L 716.823984 283.525914 1877 + L 717.833069 277.778454 1878 + L 718.421702 275.613976 1879 + L 718.842154 274.827786 1880 + L 719.094426 274.693084 1881 + L 719.346697 274.819287 1882 + L 719.683059 275.392353 1883 + L 720.103511 276.732723 1884 + L 720.608053 279.155788 1885 + L 721.364867 284.014516 1886 + L 721.701229 285.956613 1887 + L 722.962586 277.430204 1888 + L 723.551219 274.712527 1889 + L 723.971671 273.580879 1890 + L 724.308033 273.232224 1891 + L 724.560304 273.311883 1892 + L 724.812575 273.686743 1893 + L 725.148937 274.63672 1894 + L 725.569389 276.50284 1895 + L 726.158022 280.189219 1896 + L 726.914836 286.130296 1897 + L 726.998927 285.561487 1898 + L 728.260283 275.839462 1899 + L 728.848916 272.770904 1900 + L 729.269368 271.51788 1901 + L 729.52164 271.194351 1902 + L 729.773911 271.208714 1903 + L 730.026182 271.566022 1904 + L 730.362544 272.570316 1905 + L 730.782996 274.631297 1906 + L 731.371629 278.81723 1907 + L 732.212534 285.847998 1908 + L 733.557981 273.543717 1909 + L 734.146614 269.938221 1910 + L 734.567066 268.486212 1911 + L 734.819337 268.129187 1912 + L 734.987518 268.11654 1913 + L 735.239789 268.442016 1914 + L 735.576151 269.518208 1915 + L 735.996603 271.858013 1916 + L 736.585236 276.777561 1917 + L 737.426141 286.132403 1918 + L 737.510231 285.241836 1919 + L 738.939769 269.207299 1920 + L 739.528402 265.007045 1921 + L 739.948854 263.459278 1922 + L 740.201125 263.191642 1923 + L 740.369306 263.302292 1924 + L 740.621577 263.909518 1925 + L 740.957939 265.541023 1926 + L 741.378391 268.851784 1927 + L 741.967024 275.584571 1928 + L 742.723838 285.588511 1929 + L 744.321557 261.653353 1930 + L 744.91019 256.238604 1931 + L 745.246551 254.604286 1932 + L 745.498823 254.174789 1933 + L 745.667004 254.288936 1934 + L 745.919275 255.078939 1935 + L 746.255637 257.301882 1936 + L 746.676089 261.93002 1937 + L 747.264722 271.57378 1938 + L 747.937445 286.133621 1939 + L 748.021536 284.254243 1940 + L 749.871525 241.942163 1941 + L 750.376068 235.1533 1942 + L 750.71243 232.802634 1943 + L 750.880611 232.376728 1944 + L 750.964701 232.363318 1945 + L 751.132882 232.750787 1946 + L 751.385153 234.406862 1947 + L 751.721515 238.706726 1948 + L 752.141967 247.548028 1949 + L 752.64651 263.237523 1950 + L 753.235143 284.262874 1951 + L 754.076047 238.607868 1952 + L 757.019213 68.124785 1953 + L 757.607846 49.418248 1954 + L 758.028298 41.741761 1955 + L 758.280569 39.566112 1956 + L 758.44875 39.150394 1957 + L 758.44875 39.150394 1958 + " clip-path="url(#p7743f044be)" style="fill: none; stroke: #2ca02c; stroke-width: 1.2; stroke-linecap: square"/> 1959 + </g> 1960 + <g id="line2d_66"> 1961 + <path d="M 422.171094 39.150394 1962 + L 422.339275 39.312587 1963 + L 422.591546 40.163051 1964 + L 422.927908 42.422396 1965 + L 423.34836 47.023248 1966 + L 423.852902 55.057245 1967 + L 424.525626 69.744842 1968 + L 425.36653 93.699381 1969 + L 426.459706 131.957165 1970 + L 430.580137 286.133765 1971 + L 431.505132 262.023735 1972 + L 432.261946 247.408011 1973 + L 432.93467 238.510881 1974 + L 433.439212 234.37143 1975 + L 433.859664 232.533835 1976 + L 434.111936 232.107899 1977 + L 434.280117 232.095527 1978 + L 434.448298 232.293701 1979 + L 434.700569 232.971767 1980 + L 435.036931 234.549812 1981 + L 435.541473 238.234138 1982 + L 436.214197 245.238397 1983 + L 437.139191 257.720511 1984 + L 438.989181 286.132992 1985 + L 439.073272 284.883779 1986 + L 440.166447 270.198307 1987 + L 441.007352 261.621034 1988 + L 441.680075 256.906864 1989 + L 442.184618 254.732096 1990 + L 442.60507 253.828051 1991 + L 442.857341 253.678219 1992 + L 443.109612 253.816572 1993 + L 443.361884 254.235387 1994 + L 443.698246 255.212781 1995 + L 444.202788 257.515968 1996 + L 444.791421 261.324598 1997 + L 445.632326 268.409792 1998 + L 447.061863 282.807393 1999 + L 447.398225 286.131672 2000 + L 448.659581 274.33169 2001 + L 449.500486 268.278734 2002 + L 450.173209 264.88422 2003 + L 450.677752 263.287086 2004 + L 451.098204 262.603205 2005 + L 451.350475 262.47658 2006 + L 451.602747 262.560401 2007 + L 451.939108 262.992449 2008 + L 452.359561 264.02665 2009 + L 452.864103 265.940349 2010 + L 453.536827 269.486371 2011 + L 454.461821 275.7655 2012 + L 455.807268 286.129759 2013 + L 457.152715 276.351204 2014 + L 457.99362 271.637722 2015 + L 458.666343 268.989398 2016 + L 459.170886 267.749074 2017 + L 459.591338 267.228924 2018 + L 459.9277 267.152425 2019 + L 460.264062 267.37458 2020 + L 460.600423 267.887611 2021 + L 461.104966 269.174944 2022 + L 461.693599 271.390264 2023 + L 462.450413 275.173708 2024 + L 463.627679 282.410034 2025 + L 464.216312 286.127178 2026 + L 465.64585 277.473959 2027 + L 466.486754 273.570989 2028 + L 467.159477 271.391865 2029 + L 467.66402 270.387827 2030 + L 468.084472 269.986666 2031 + L 468.420834 269.95462 2032 + L 468.757196 270.177177 2033 + L 469.177648 270.803669 2034 + L 469.68219 272.038424 2035 + L 470.354914 274.417077 2036 + L 471.195818 278.329845 2037 + L 472.625356 286.123826 2038 + L 472.709446 285.64487 2039 + L 474.138984 278.116247 2040 + L 474.979888 274.740315 2041 + L 475.652611 272.876229 2042 + L 476.157154 272.037936 2043 + L 476.577606 271.726575 2044 + L 476.913968 271.734525 2045 + L 477.25033 271.969154 2046 + L 477.670782 272.572699 2047 + L 478.175325 273.727331 2048 + L 478.848048 275.91942 2049 + L 479.688952 279.495526 2050 + L 481.034399 286.119556 2051 + L 482.548027 278.806056 2052 + L 483.388932 275.690173 2053 + L 484.061655 273.952599 2054 + L 484.566198 273.1594 2055 + L 484.98665 272.853411 2056 + L 485.323012 272.845383 2057 + L 485.659373 273.04698 2058 + L 486.079826 273.587028 2059 + L 486.584368 274.636557 2060 + L 487.257092 276.648657 2061 + L 488.097996 279.956767 2062 + L 489.443443 286.114164 2063 + L 491.041161 278.894741 2064 + L 491.882066 276.02256 2065 + L 492.554789 274.445336 2066 + L 493.059332 273.747798 2067 + L 493.479784 273.503947 2068 + L 493.816146 273.5337 2069 + L 494.152508 273.762362 2070 + L 494.57296 274.321283 2071 + L 495.077502 275.372156 2072 + L 495.750226 277.352321 2073 + L 496.59113 280.573491 2074 + L 497.852487 286.107363 2075 + L 499.450205 279.122346 2076 + L 500.291109 276.319625 2077 + L 500.963833 274.76813 2078 + L 501.468376 274.073206 2079 + L 501.888828 273.821571 2080 + L 502.225189 273.839273 2081 + L 502.561551 274.051349 2082 + L 502.982003 274.584174 2083 + L 503.486546 275.597709 2084 + L 504.15927 277.522007 2085 + L 505.000174 280.671817 2086 + L 506.26153 286.098743 2087 + L 507.943339 278.85174 2088 + L 508.784244 276.1328 2089 + L 509.456967 274.653396 2090 + L 509.96151 274.0143 2091 + L 510.381962 273.809765 2092 + L 510.718324 273.865237 2093 + L 511.138776 274.207352 2094 + L 511.643318 275.0065 2095 + L 512.231951 276.438541 2096 + L 512.988765 278.962928 2097 + L 513.997851 283.195182 2098 + L 514.670574 286.087702 2099 + L 516.352383 278.714524 2100 + L 517.193287 275.924187 2101 + L 517.866011 274.393395 2102 + L 518.370553 273.723015 2103 + L 518.791005 273.499108 2104 + L 519.127367 273.544387 2105 + L 519.547819 273.881325 2106 + L 519.968272 274.522838 2107 + L 520.556905 275.903714 2108 + L 521.229628 278.094935 2109 + L 522.154623 281.933287 2110 + L 523.079618 286.073325 2111 + L 524.845517 278.044119 2112 + L 525.686421 275.194592 2113 + L 526.359145 273.658153 2114 + L 526.863687 273.01043 2115 + L 527.28414 272.823705 2116 + L 527.620501 272.910769 2117 + L 528.040954 273.314732 2118 + L 528.545496 274.221145 2119 + L 529.134129 275.822723 2120 + L 529.890943 278.629097 2121 + L 530.900028 283.324369 2122 + L 531.488661 286.054165 2123 + L 533.254561 277.431142 2124 + L 534.095465 274.337262 2125 + L 534.768188 272.651438 2126 + L 535.272731 271.92758 2127 + L 535.693183 271.704801 2128 + L 536.029545 271.782531 2129 + L 536.365907 272.088616 2130 + L 536.786359 272.787444 2131 + L 537.290902 274.07075 2132 + L 537.963625 276.468486 2133 + L 538.804529 280.368068 2134 + L 539.897705 286.027792 2135 + L 541.747695 276.068041 2136 + L 542.588599 272.697465 2137 + L 543.261323 270.886952 2138 + L 543.765865 270.135607 2139 + L 544.102227 269.944618 2140 + L 544.438589 270.00873 2141 + L 544.77495 270.329709 2142 + L 545.195403 271.088416 2143 + L 545.699945 272.504677 2144 + L 546.372669 275.180829 2145 + L 547.213573 279.575861 2146 + L 548.306749 285.989814 2147 + L 550.240829 274.032736 2148 + L 551.081733 270.19292 2149 + L 551.670366 268.35076 2150 + L 552.174909 267.42301 2151 + L 552.511271 267.163979 2152 + L 552.847632 267.202873 2153 + L 553.183994 267.543535 2154 + L 553.604446 268.392105 2155 + L 554.108989 270.013394 2156 + L 554.697622 272.681123 2157 + L 555.454436 277.171608 2158 + L 556.547612 285.143275 2159 + L 556.715792 285.931412 2160 + L 558.733963 270.791873 2161 + L 559.574867 266.130549 2162 + L 560.1635 263.899433 2163 + L 560.668043 262.78821 2164 + L 561.004405 262.492391 2165 + L 561.256676 262.513407 2166 + L 561.508947 262.746194 2167 + L 561.845309 263.388009 2168 + L 562.265761 264.719255 2169 + L 562.770304 267.069015 2170 + L 563.443027 271.38213 2171 + L 564.283932 278.362648 2172 + L 565.124836 285.831947 2173 + L 567.395278 263.614317 2174 + L 568.152092 258.236923 2175 + L 568.740725 255.367399 2176 + L 569.161177 254.1465 2177 + L 569.497539 253.711804 2178 + L 569.74981 253.716714 2179 + L 570.002081 254.012847 2180 + L 570.338443 254.867904 2181 + L 570.758895 256.680384 2182 + L 571.263438 259.931038 2183 + L 571.936161 265.99563 2184 + L 572.777066 276.005291 2185 + L 573.53388 285.629324 2186 + L 576.477045 242.823451 2187 + L 577.149769 236.518271 2188 + L 577.654311 233.475868 2189 + L 577.990673 232.375412 2190 + L 578.242944 232.078645 2191 + L 578.411125 232.144584 2192 + L 578.663396 232.653409 2193 + L 578.999758 234.122725 2194 + L 579.42021 237.27432 2195 + L 579.924753 243.037328 2196 + L 580.513386 252.519527 2197 + L 581.2702 268.981581 2198 + L 581.942923 285.011645 2199 + L 582.952009 251.760994 2200 + L 584.465637 193.499361 2201 + L 586.736078 106.176734 2202 + L 587.745164 75.191831 2203 + L 588.586068 55.84591 2204 + L 589.174701 46.475888 2205 + L 589.679244 41.42538 2206 + L 590.015605 39.646907 2207 + L 590.267877 39.160533 2208 + L 590.436058 39.241635 2209 + L 590.604238 39.646907 2210 + L 590.85651 40.860336 2211 + L 591.192871 43.597561 2212 + L 591.697414 50.045154 2213 + L 592.286047 60.948091 2214 + L 593.042861 79.820633 2215 + L 593.967856 109.070957 2216 + L 595.313303 159.740944 2217 + L 598.088287 266.345113 2218 + L 598.67692 285.011645 2219 + L 598.761011 284.899926 2220 + L 599.686006 261.086685 2221 + L 600.442819 246.738128 2222 + L 601.115543 238.083634 2223 + L 601.620086 234.122725 2224 + L 602.040538 232.428272 2225 + L 602.292809 232.08474 2226 + L 602.46099 232.12557 2227 + L 602.713261 232.576715 2228 + L 603.049623 233.870979 2229 + L 603.470075 236.518271 2230 + L 604.058708 241.911863 2231 + L 604.815522 251.152767 2232 + L 605.992788 268.655142 2233 + L 607.085964 285.629324 2234 + L 607.170054 285.506795 2235 + L 608.347321 269.705539 2236 + L 609.188225 261.267679 2237 + L 609.860948 256.680384 2238 + L 610.365491 254.604563 2239 + L 610.701853 253.881461 2240 + L 610.954124 253.683001 2241 + L 611.206395 253.773802 2242 + L 611.458667 254.1465 2243 + L 611.795028 255.065235 2244 + L 612.299571 257.288006 2245 + L 612.888204 261.016912 2246 + L 613.729108 268.019635 2247 + L 615.158646 282.372391 2248 + L 615.495008 285.831947 2249 + L 615.579098 285.705062 2250 + L 616.840455 273.987318 2251 + L 617.681359 268.026355 2252 + L 618.354083 264.719255 2253 + L 618.858625 263.192065 2254 + L 619.279077 262.567371 2255 + L 619.531349 262.476021 2256 + L 619.78362 262.594579 2257 + L 620.119982 263.071611 2258 + L 620.540434 264.159003 2259 + L 621.044976 266.130549 2260 + L 621.7177 269.740719 2261 + L 622.642695 276.078544 2262 + L 623.904051 285.931412 2263 + L 623.988142 285.800097 2264 + L 625.333589 276.083608 2265 + L 626.174493 271.440814 2266 + L 626.847217 268.860873 2267 + L 627.351759 267.675864 2268 + L 627.772211 267.202873 2269 + L 628.108573 267.163979 2270 + L 628.444935 267.42301 2271 + L 628.865387 268.152652 2272 + L 629.36993 269.588285 2273 + L 630.042653 272.346338 2274 + L 630.883558 276.866789 2275 + L 632.313095 285.989814 2276 + L 632.397185 285.853056 2277 + L 633.826723 277.252118 2278 + L 634.667627 273.408351 2279 + L 635.340351 271.286893 2280 + L 635.844893 270.329709 2281 + L 636.265346 269.968622 2282 + L 636.601707 269.968606 2283 + L 636.938069 270.222633 2284 + L 637.358521 270.886952 2285 + L 637.863064 272.163718 2286 + L 638.535787 274.590395 2287 + L 639.376692 278.546598 2288 + L 640.722139 286.027792 2289 + L 640.806229 285.884173 2290 + L 642.235767 278.3109 2291 + L 643.076671 274.883253 2292 + L 643.749394 272.968385 2293 + L 644.253937 272.088616 2294 + L 644.674389 271.741652 2295 + L 645.010751 271.721062 2296 + L 645.347113 271.92758 2297 + L 645.767565 272.497242 2298 + L 646.272107 273.614117 2299 + L 646.944831 275.762848 2300 + L 647.785735 279.299473 2301 + L 649.131182 286.054165 2302 + L 649.215273 285.901907 2303 + L 650.728901 278.629097 2304 + L 651.569805 275.560304 2305 + L 652.242528 273.869205 2306 + L 652.747071 273.114093 2307 + L 653.167523 272.840879 2308 + L 653.503885 272.859174 2309 + L 653.840247 273.086743 2310 + L 654.260699 273.658153 2311 + L 654.765242 274.742711 2312 + L 655.437965 276.795151 2313 + L 656.278869 280.140146 2314 + L 657.540226 286.073325 2315 + L 657.624316 285.910215 2316 + L 659.137944 279.060478 2317 + L 659.978849 276.143963 2318 + L 660.651572 274.522838 2319 + L 661.156115 273.789238 2320 + L 661.576567 273.5143 2321 + L 661.912929 273.519052 2322 + L 662.24929 273.723015 2323 + L 662.669743 274.252071 2324 + L 663.174285 275.269533 2325 + L 663.847009 277.211143 2326 + L 664.687913 280.396968 2327 + L 665.94927 286.087702 2328 + L 666.03336 285.910937 2329 + L 667.631078 278.962928 2330 + L 668.471983 276.203161 2331 + L 669.144706 274.6943 2332 + L 669.649249 274.034459 2333 + L 670.069701 273.813108 2334 + L 670.406063 273.855195 2335 + L 670.826515 274.180372 2336 + L 671.331058 274.958458 2337 + L 671.919691 276.364312 2338 + L 672.676505 278.85174 2339 + L 673.68559 283.028986 2340 + L 674.358313 286.098743 2341 + L 674.526494 285.51685 2342 + L 676.040122 279.00899 2343 + L 676.881026 276.247336 2344 + L 677.55375 274.725454 2345 + L 678.058293 274.051349 2346 + L 678.478745 273.816554 2347 + L 678.815106 273.847638 2348 + L 679.235559 274.159663 2349 + L 679.656011 274.76813 2350 + L 680.244644 276.089178 2351 + L 680.917367 278.193785 2352 + L 681.842362 281.886705 2353 + L 682.767357 286.107363 2354 + L 682.851447 285.891182 2355 + L 684.533256 278.555475 2356 + L 685.374161 275.808683 2357 + L 686.046884 274.321283 2358 + L 686.551427 273.686724 2359 + L 686.971879 273.49382 2360 + L 687.308241 273.564115 2361 + L 687.728693 273.931952 2362 + L 688.233235 274.77271 2363 + L 688.821868 276.267894 2364 + L 689.578682 278.894741 2365 + L 690.587768 283.292734 2366 + L 691.176401 286.114164 2367 + L 691.428672 285.052845 2368 + L 692.9423 278.209276 2369 + L 693.783204 275.314233 2370 + L 694.455928 273.732321 2371 + L 694.96047 273.04698 2372 + L 695.380922 272.827644 2373 + L 695.717284 272.888358 2374 + L 696.053646 273.1594 2375 + L 696.474098 273.788903 2376 + L 696.978641 274.95219 2377 + L 697.651364 277.131048 2378 + L 698.492269 280.675865 2379 + L 699.585444 286.119556 2380 + L 699.669535 285.836184 2381 + L 701.435434 277.254568 2382 + L 702.276338 274.209535 2383 + L 702.949062 272.572699 2384 + L 703.453604 271.889481 2385 + L 703.789966 271.711152 2386 + L 704.126328 271.760304 2387 + L 704.46269 272.037936 2388 + L 704.883142 272.702048 2389 + L 705.387684 273.946069 2390 + L 706.060408 276.297744 2391 + L 706.901312 280.154019 2392 + L 707.994488 286.123826 2393 + L 708.078578 285.787615 2394 + L 709.844478 276.263413 2395 + L 710.685382 272.838862 2396 + L 711.358105 270.973893 2397 + L 711.862648 270.177177 2398 + L 712.19901 269.95462 2399 + L 712.535372 269.986666 2400 + L 712.871733 270.275576 2401 + L 713.292186 270.994948 2402 + L 713.796728 272.366386 2403 + L 714.469452 274.989434 2404 + L 715.310356 279.333593 2405 + L 716.403532 286.127178 2406 + L 716.487622 285.714863 2407 + L 718.337612 274.255927 2408 + L 719.178516 270.353349 2409 + L 719.767149 268.456146 2410 + L 720.271692 267.475969 2411 + L 720.608053 267.180193 2412 + L 720.944415 267.181543 2413 + L 721.280777 267.484431 2414 + L 721.701229 268.286345 2415 + L 722.205772 269.853974 2416 + L 722.794405 272.464736 2417 + L 723.551219 276.895264 2418 + L 724.644394 284.81627 2419 + L 724.812575 286.129759 2420 + L 725.317118 282.271652 2421 + L 726.830746 271.062744 2422 + L 727.67165 266.325224 2423 + L 728.260283 264.02665 2424 + L 728.764826 262.850717 2425 + L 729.101188 262.509286 2426 + L 729.353459 262.49526 2427 + L 729.60573 262.692612 2428 + L 729.942092 263.287086 2429 + L 730.362544 264.56002 2430 + L 730.867087 266.84294 2431 + L 731.53981 271.076197 2432 + L 732.380715 277.979217 2433 + L 733.221619 286.131672 2434 + L 733.810252 280.193094 2435 + L 735.40797 264.66322 2436 + L 736.248875 258.489333 2437 + L 736.837508 255.529024 2438 + L 737.25796 254.235387 2439 + L 737.594322 253.738866 2440 + L 737.846593 253.695824 2441 + L 738.098864 253.943054 2442 + L 738.435226 254.732096 2443 + L 738.855678 256.462085 2444 + L 739.360221 259.616304 2445 + L 740.032944 265.562117 2446 + L 740.873849 275.449884 2447 + L 741.630663 286.132992 2448 + L 742.471567 273.277144 2449 + L 744.153376 248.370569 2450 + L 744.99428 238.988291 2451 + L 745.582913 234.549812 2452 + L 746.003365 232.696095 2453 + L 746.339727 232.095527 2454 + L 746.507908 232.107899 2455 + L 746.676089 232.336644 2456 + L 746.92836 233.096918 2457 + L 747.264722 234.912822 2458 + L 747.685174 238.510881 2459 + L 748.189717 244.819415 2460 + L 748.77835 254.934837 2461 + L 749.535164 272.172817 2462 + L 750.039706 286.133765 2463 + L 750.79652 262.070195 2464 + L 752.141967 211.946618 2465 + L 755.169223 96.390641 2466 + L 756.094218 69.744842 2467 + L 756.851032 53.533861 2468 + L 757.439665 44.949321 2469 + L 757.944207 40.607833 2470 + L 758.280569 39.312587 2471 + L 758.44875 39.150394 2472 + L 758.44875 39.150394 2473 + " clip-path="url(#p7743f044be)" style="fill: none; stroke: #1f77b4; stroke-width: 1.4; stroke-linecap: square"/> 2474 + </g> 2475 + <g id="line2d_67"> 2476 + <path d="M 598.716863 286.195781 2477 + L 598.716863 26.798125 2478 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 1.3,2.145; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.3"/> 2479 + </g> 2480 + <g id="patch_9"> 2481 + <path d="M 422.171094 286.195781 2482 + L 422.171094 26.798125 2483 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2484 + </g> 2485 + <g id="patch_10"> 2486 + <path d="M 758.44875 286.195781 2487 + L 758.44875 26.798125 2488 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2489 + </g> 2490 + <g id="patch_11"> 2491 + <path d="M 422.171094 286.195781 2492 + L 758.44875 286.195781 2493 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2494 + </g> 2495 + <g id="patch_12"> 2496 + <path d="M 422.171094 26.798125 2497 + L 758.44875 26.798125 2498 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2499 + </g> 2500 + <g id="text_39"> 2501 + <text style="font-size: 8.5px; font-family: sans-serif" transform="translate(428.896647 151.176572)">N = 20 sitúa un nodo en 32,05 órdenes y lo</text> 2502 + <text style="font-size: 8.5px; font-family: sans-serif" transform="translate(428.896647 161.378896)">elimina; la potencia de dos N = 32 lo deja pasar</text> 2503 + </g> 2504 + <g id="text_40"> 2505 + <text style="font-weight: 700; font-size: 12px; font-family: sans-serif; text-anchor: middle" x="590.309922" y="16.798125" transform="rotate(-0 590.309922 16.798125)">Rechazo de un tono eligiendo N (McFadden 1987)</text> 2506 + </g> 2507 + <g id="legend_2"> 2508 + <g id="patch_13"> 2509 + <path d="M 626.65625 69.2 2510 + L 752.84875 69.2 2511 + Q 754.44875 69.2 754.44875 67.6 2512 + L 754.44875 32.398125 2513 + Q 754.44875 30.798125 752.84875 30.798125 2514 + L 626.65625 30.798125 2515 + Q 625.05625 30.798125 625.05625 32.398125 2516 + L 625.05625 67.6 2517 + Q 625.05625 69.2 626.65625 69.2 2518 + z 2519 + " style="fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 2520 + </g> 2521 + <g id="line2d_68"> 2522 + <path d="M 628.25625 37.276875 2523 + L 636.25625 37.276875 2524 + L 644.25625 37.276875 2525 + " style="fill: none; stroke: #2ca02c; stroke-width: 1.2; stroke-linecap: square"/> 2526 + </g> 2527 + <g id="text_41"> 2528 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start" x="650.65625" y="40.076875" transform="rotate(-0 650.65625 40.076875)">N = 32 (potencia de dos)</text> 2529 + </g> 2530 + <g id="line2d_69"> 2531 + <path d="M 628.25625 49.2775 2532 + L 636.25625 49.2775 2533 + L 644.25625 49.2775 2534 + " style="fill: none; stroke: #1f77b4; stroke-width: 1.4; stroke-linecap: square"/> 2535 + </g> 2536 + <g id="text_42"> 2537 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start" x="650.65625" y="52.0775" transform="rotate(-0 650.65625 52.0775)">N = 20 (nodo en 32,05)</text> 2538 + </g> 2539 + <g id="line2d_70"> 2540 + <path d="M 628.25625 61.278125 2541 + L 636.25625 61.278125 2542 + L 644.25625 61.278125 2543 + " style="fill: none; stroke-dasharray: 1.3,2.145; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.3"/> 2544 + </g> 2545 + <g id="text_43"> 2546 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start" x="650.65625" y="64.078125" transform="rotate(-0 650.65625 64.078125)">Tono interferente (32,05)</text> 2547 + </g> 2548 + </g> 2549 + </g> 2550 + </g> 2551 + <defs> 2552 + <clipPath id="pc7a2e077d3"> 2553 + <rect x="38.171094" y="26.798125" width="336.277656" height="259.397656"/> 2554 + </clipPath> 2555 + <clipPath id="p7743f044be"> 2556 + <rect x="422.171094" y="26.798125" width="336.277656" height="259.397656"/> 2557 + </clipPath> 2558 + </defs> 2559 + </svg>
+2559
.github/images/synchronous_average_es_dark.svg
··· 1 + <?xml version="1.0" encoding="utf-8" standalone="no"?> 2 + <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 3 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4 + <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="772.01125pt" height="324.796562pt" viewBox="0 0 772.01125 324.796562" xmlns="http://www.w3.org/2000/svg" version="1.1"> 5 + <metadata> 6 + <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 7 + <cc:Work> 8 + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> 9 + <dc:format>image/svg+xml</dc:format> 10 + <dc:creator> 11 + <cc:Agent> 12 + <dc:title>Matplotlib v3.11.1, https://matplotlib.org/</dc:title> 13 + </cc:Agent> 14 + </dc:creator> 15 + </cc:Work> 16 + </rdf:RDF> 17 + </metadata> 18 + <defs> 19 + <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> 20 + </defs> 21 + <g id="figure_1"> 22 + <g id="patch_1"> 23 + <path d="M 0 324.796562 24 + L 772.01125 324.796562 25 + L 772.01125 0 26 + L 0 0 27 + z 28 + "/> 29 + </g> 30 + <g id="axes_1"> 31 + <g id="patch_2"> 32 + <path d="M 38.171094 286.195781 33 + L 374.44875 286.195781 34 + L 374.44875 26.798125 35 + L 38.171094 26.798125 36 + z 37 + "/> 38 + </g> 39 + <g id="matplotlib.axis_1"> 40 + <g id="xtick_1"> 41 + <g id="line2d_1"> 42 + <path d="M 38.171094 286.195781 43 + L 38.171094 26.798125 44 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 45 + </g> 46 + <g id="line2d_2"> 47 + <defs> 48 + <path id="m8d14ee1197" d="M 0 0 49 + L 0 3.5 50 + " style="stroke: #ffffff; stroke-width: 0.8"/> 51 + </defs> 52 + <g> 53 + <use xlink:href="#m8d14ee1197" x="38.171094" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 54 + </g> 55 + </g> 56 + <g id="text_1"> 57 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="38.171094" y="300.793437" transform="rotate(-0 38.171094 300.793437)">0</text> 58 + </g> 59 + </g> 60 + <g id="xtick_2"> 61 + <g id="line2d_3"> 62 + <path d="M 91.975519 286.195781 63 + L 91.975519 26.798125 64 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 65 + </g> 66 + <g id="line2d_4"> 67 + <g> 68 + <use xlink:href="#m8d14ee1197" x="91.975519" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 69 + </g> 70 + </g> 71 + <g id="text_2"> 72 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="91.975519" y="300.793437" transform="rotate(-0 91.975519 300.793437)">5</text> 73 + </g> 74 + </g> 75 + <g id="xtick_3"> 76 + <g id="line2d_5"> 77 + <path d="M 145.779944 286.195781 78 + L 145.779944 26.798125 79 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 80 + </g> 81 + <g id="line2d_6"> 82 + <g> 83 + <use xlink:href="#m8d14ee1197" x="145.779944" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 84 + </g> 85 + </g> 86 + <g id="text_3"> 87 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="145.779944" y="300.793437" transform="rotate(-0 145.779944 300.793437)">10</text> 88 + </g> 89 + </g> 90 + <g id="xtick_4"> 91 + <g id="line2d_7"> 92 + <path d="M 199.584369 286.195781 93 + L 199.584369 26.798125 94 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 95 + </g> 96 + <g id="line2d_8"> 97 + <g> 98 + <use xlink:href="#m8d14ee1197" x="199.584369" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 99 + </g> 100 + </g> 101 + <g id="text_4"> 102 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="199.584369" y="300.793437" transform="rotate(-0 199.584369 300.793437)">15</text> 103 + </g> 104 + </g> 105 + <g id="xtick_5"> 106 + <g id="line2d_9"> 107 + <path d="M 253.388794 286.195781 108 + L 253.388794 26.798125 109 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 110 + </g> 111 + <g id="line2d_10"> 112 + <g> 113 + <use xlink:href="#m8d14ee1197" x="253.388794" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 114 + </g> 115 + </g> 116 + <g id="text_5"> 117 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="253.388794" y="300.793437" transform="rotate(-0 253.388794 300.793437)">20</text> 118 + </g> 119 + </g> 120 + <g id="xtick_6"> 121 + <g id="line2d_11"> 122 + <path d="M 307.193219 286.195781 123 + L 307.193219 26.798125 124 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 125 + </g> 126 + <g id="line2d_12"> 127 + <g> 128 + <use xlink:href="#m8d14ee1197" x="307.193219" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 129 + </g> 130 + </g> 131 + <g id="text_6"> 132 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="307.193219" y="300.793437" transform="rotate(-0 307.193219 300.793437)">25</text> 133 + </g> 134 + </g> 135 + <g id="xtick_7"> 136 + <g id="line2d_13"> 137 + <path d="M 360.997644 286.195781 138 + L 360.997644 26.798125 139 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 140 + </g> 141 + <g id="line2d_14"> 142 + <g> 143 + <use xlink:href="#m8d14ee1197" x="360.997644" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 144 + </g> 145 + </g> 146 + <g id="text_7"> 147 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="360.997644" y="300.793437" transform="rotate(-0 360.997644 300.793437)">30</text> 148 + </g> 149 + </g> 150 + <g id="text_8"> 151 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="206.309922" y="314.794219" transform="rotate(-0 206.309922 314.794219)">Tiempo [ms]</text> 152 + </g> 153 + </g> 154 + <g id="matplotlib.axis_2"> 155 + <g id="ytick_1"> 156 + <g id="line2d_15"> 157 + <path d="M 38.171094 251.637791 158 + L 374.44875 251.637791 159 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 160 + </g> 161 + <g id="line2d_16"> 162 + <defs> 163 + <path id="m5e07181663" d="M 0 0 164 + L -3.5 0 165 + " style="stroke: #ffffff; stroke-width: 0.8"/> 166 + </defs> 167 + <g> 168 + <use xlink:href="#m5e07181663" x="38.171094" y="251.637791" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 169 + </g> 170 + </g> 171 + <g id="text_9"> 172 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="31.171094" y="255.43662" transform="rotate(-0 31.171094 255.43662)">-3</text> 173 + </g> 174 + </g> 175 + <g id="ytick_2"> 176 + <g id="line2d_17"> 177 + <path d="M 38.171094 216.033622 178 + L 374.44875 216.033622 179 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 180 + </g> 181 + <g id="line2d_18"> 182 + <g> 183 + <use xlink:href="#m5e07181663" x="38.171094" y="216.033622" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 184 + </g> 185 + </g> 186 + <g id="text_10"> 187 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="31.171094" y="219.832451" transform="rotate(-0 31.171094 219.832451)">-2</text> 188 + </g> 189 + </g> 190 + <g id="ytick_3"> 191 + <g id="line2d_19"> 192 + <path d="M 38.171094 180.429453 193 + L 374.44875 180.429453 194 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 195 + </g> 196 + <g id="line2d_20"> 197 + <g> 198 + <use xlink:href="#m5e07181663" x="38.171094" y="180.429453" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 199 + </g> 200 + </g> 201 + <g id="text_11"> 202 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="31.171094" y="184.228282" transform="rotate(-0 31.171094 184.228282)">-1</text> 203 + </g> 204 + </g> 205 + <g id="ytick_4"> 206 + <g id="line2d_21"> 207 + <path d="M 38.171094 144.825285 208 + L 374.44875 144.825285 209 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 210 + </g> 211 + <g id="line2d_22"> 212 + <g> 213 + <use xlink:href="#m5e07181663" x="38.171094" y="144.825285" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 214 + </g> 215 + </g> 216 + <g id="text_12"> 217 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="31.171094" y="148.624113" transform="rotate(-0 31.171094 148.624113)">0</text> 218 + </g> 219 + </g> 220 + <g id="ytick_5"> 221 + <g id="line2d_23"> 222 + <path d="M 38.171094 109.221116 223 + L 374.44875 109.221116 224 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 225 + </g> 226 + <g id="line2d_24"> 227 + <g> 228 + <use xlink:href="#m5e07181663" x="38.171094" y="109.221116" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 229 + </g> 230 + </g> 231 + <g id="text_13"> 232 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="31.171094" y="113.019944" transform="rotate(-0 31.171094 113.019944)">1</text> 233 + </g> 234 + </g> 235 + <g id="ytick_6"> 236 + <g id="line2d_25"> 237 + <path d="M 38.171094 73.616947 238 + L 374.44875 73.616947 239 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 240 + </g> 241 + <g id="line2d_26"> 242 + <g> 243 + <use xlink:href="#m5e07181663" x="38.171094" y="73.616947" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 244 + </g> 245 + </g> 246 + <g id="text_14"> 247 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="31.171094" y="77.415775" transform="rotate(-0 31.171094 77.415775)">2</text> 248 + </g> 249 + </g> 250 + <g id="ytick_7"> 251 + <g id="line2d_27"> 252 + <path d="M 38.171094 38.012778 253 + L 374.44875 38.012778 254 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 255 + </g> 256 + <g id="line2d_28"> 257 + <g> 258 + <use xlink:href="#m5e07181663" x="38.171094" y="38.012778" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 259 + </g> 260 + </g> 261 + <g id="text_15"> 262 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="31.171094" y="41.811606" transform="rotate(-0 31.171094 41.811606)">3</text> 263 + </g> 264 + </g> 265 + <g id="text_16"> 266 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="14.798438" y="156.496953" transform="rotate(-90 14.798438 156.496953)">Amplitud</text> 267 + </g> 268 + </g> 269 + <g id="line2d_29"> 270 + <path d="M 38.171094 102.721685 271 + L 39.484678 60.837999 272 + L 40.798263 65.478338 273 + L 42.111848 121.099228 274 + L 43.425432 114.41945 275 + L 44.739017 121.750787 276 + L 46.052601 86.637267 277 + L 47.366186 106.485501 278 + L 48.679771 80.666207 279 + L 49.993355 163.324945 280 + L 51.30694 54.119859 281 + L 52.620524 107.089076 282 + L 53.934109 82.206645 283 + L 55.247693 108.315701 284 + L 56.561278 116.198897 285 + L 57.874863 89.582212 286 + L 59.188447 78.484772 287 + L 60.502032 111.911682 288 + L 61.815616 111.147603 289 + L 63.129201 85.402564 290 + L 64.442786 136.344611 291 + L 65.75637 158.377949 292 + L 67.069955 99.079297 293 + L 68.383539 134.994747 294 + L 69.697124 176.987959 295 + L 71.010709 143.914728 296 + L 72.324293 135.263574 297 + L 73.637878 160.980652 298 + L 74.951462 173.183759 299 + L 76.265047 127.065872 300 + L 77.578632 102.332861 301 + L 78.892216 141.184541 302 + L 80.205801 160.201377 303 + L 81.519385 126.798796 304 + L 82.83297 118.717598 305 + L 84.146555 153.587497 306 + L 85.460139 128.814534 307 + L 86.773724 114.895612 308 + L 88.087308 156.563933 309 + L 89.400893 177.426276 310 + L 90.714478 141.552524 311 + L 92.028062 145.662824 312 + L 93.341647 119.084299 313 + L 94.655231 195.498945 314 + L 95.968816 175.59349 315 + L 97.282401 180.920334 316 + L 98.595985 208.929523 317 + L 99.90957 148.641179 318 + L 101.223154 134.70072 319 + L 102.536739 173.805723 320 + L 103.850323 104.421501 321 + L 105.163908 120.728279 322 + L 106.477493 125.122824 323 + L 107.791077 130.427536 324 + L 109.104662 110.789677 325 + L 110.418246 181.898206 326 + L 111.731831 117.838685 327 + L 113.045416 116.35488 328 + L 114.359 190.33099 329 + L 115.672585 121.211147 330 + L 116.986169 138.885747 331 + L 118.299754 104.728119 332 + L 119.613339 142.735538 333 + L 120.926923 128.569078 334 + L 122.240508 116.570306 335 + L 123.554092 155.306115 336 + L 124.867677 108.27884 337 + L 126.181262 131.092419 338 + L 127.494846 112.620356 339 + L 128.808431 145.873899 340 + L 130.122015 95.61492 341 + L 131.4356 112.28743 342 + L 132.749185 138.803629 343 + L 134.062769 114.603647 344 + L 135.376354 96.357704 345 + L 136.689938 81.294658 346 + L 138.003523 190.733828 347 + L 139.317108 114.29874 348 + L 140.630692 129.682651 349 + L 141.944277 149.544596 350 + L 143.257861 180.658773 351 + L 144.571446 110.247269 352 + L 145.885031 192.481444 353 + L 147.198615 135.751614 354 + L 148.5122 113.819004 355 + L 149.825784 207.876408 356 + L 151.139369 167.691797 357 + L 152.452953 200.929242 358 + L 153.766538 152.258746 359 + L 155.080123 112.478889 360 + L 156.393707 96.871919 361 + L 157.707292 218.816753 362 + L 160.334461 140.343273 363 + L 161.648046 112.664726 364 + L 164.275215 187.446318 365 + L 165.588799 154.40246 366 + L 166.902384 164.745134 367 + L 168.215969 171.117735 368 + L 169.529553 188.562321 369 + L 170.843138 153.354171 370 + L 172.156722 156.645001 371 + L 173.470307 170.358872 372 + L 174.783892 175.549263 373 + L 176.097476 210.761119 374 + L 177.411061 186.688463 375 + L 178.724645 134.24706 376 + L 180.03823 180.649413 377 + L 181.351815 222.491156 378 + L 182.665399 135.9909 379 + L 183.978984 163.895084 380 + L 185.292568 115.829781 381 + L 186.606153 183.557044 382 + L 187.919738 202.731875 383 + L 189.233322 236.683744 384 + L 190.546907 150.603143 385 + L 191.860491 113.190323 386 + L 193.174076 223.739846 387 + L 194.487661 220.324758 388 + L 195.801245 182.585875 389 + L 197.11483 229.906389 390 + L 198.428414 213.555475 391 + L 199.741999 217.349644 392 + L 201.055583 201.019967 393 + L 202.369168 172.849775 394 + L 203.682753 207.447781 395 + L 204.996337 178.808329 396 + L 206.309922 221.225288 397 + L 207.623506 196.666233 398 + L 208.937091 274.404979 399 + L 210.250676 251.082183 400 + L 211.56426 177.707168 401 + L 212.877845 220.034378 402 + L 214.191429 180.466555 403 + L 215.505014 179.233874 404 + L 216.818599 151.694366 405 + L 218.132183 165.201377 406 + L 219.445768 155.732315 407 + L 220.759352 188.775549 408 + L 222.072937 204.464405 409 + L 223.386522 202.47892 410 + L 224.700106 191.690939 411 + L 226.013691 209.25144 412 + L 227.327275 187.827885 413 + L 228.64086 170.620935 414 + L 229.954445 157.123025 415 + L 231.268029 173.674762 416 + L 232.581614 222.200712 417 + L 233.895198 161.224209 418 + L 235.208783 150.11694 419 + L 236.522368 121.331039 420 + L 237.835952 136.416092 421 + L 239.149537 174.579533 422 + L 240.463121 176.537772 423 + L 241.776706 88.835454 424 + L 243.090291 128.714166 425 + L 244.403875 94.407932 426 + L 245.71746 85.07156 427 + L 247.031044 179.519583 428 + L 248.344629 141.50902 429 + L 249.658214 139.675157 430 + L 250.971798 136.9727 431 + L 252.285383 138.087838 432 + L 253.598967 149.473136 433 + L 254.912552 150.850828 434 + L 256.226136 204.809876 435 + L 257.539721 162.426649 436 + L 258.853306 181.22415 437 + L 260.16689 153.393837 438 + L 261.480475 172.281862 439 + L 262.794059 137.37606 440 + L 264.107644 130.596565 441 + L 265.421229 146.369615 442 + L 266.734813 145.457983 443 + L 268.048398 151.777929 444 + L 269.361982 168.116544 445 + L 270.675567 158.03441 446 + L 271.989152 167.492236 447 + L 273.302736 138.095323 448 + L 274.616321 148.824824 449 + L 275.929905 129.494215 450 + L 277.24349 189.294758 451 + L 278.557075 117.364023 452 + L 279.870659 169.004076 453 + L 281.184244 167.129178 454 + L 282.497828 149.143413 455 + L 283.811413 160.136623 456 + L 285.124998 132.318849 457 + L 286.438582 159.604974 458 + L 287.752167 175.265678 459 + L 289.065751 168.160722 460 + L 290.379336 99.484814 461 + L 293.006505 179.714906 462 + L 294.32009 142.947488 463 + L 295.633674 193.847184 464 + L 296.947259 88.077849 465 + L 298.260844 195.096546 466 + L 299.574428 132.379426 467 + L 300.888013 131.612186 468 + L 302.201597 196.597929 469 + L 303.515182 141.993681 470 + L 304.828766 120.971057 471 + L 306.142351 139.02208 472 + L 307.455936 146.625096 473 + L 308.76952 125.491263 474 + L 310.083105 151.306701 475 + L 311.396689 146.118514 476 + L 312.710274 161.074881 477 + L 314.023859 136.743051 478 + L 315.337443 186.587073 479 + L 316.651028 130.537144 480 + L 317.964612 170.951972 481 + L 319.278197 188.327258 482 + L 321.905366 95.883655 483 + L 323.218951 117.035344 484 + L 324.532535 161.751485 485 + L 325.84612 120.289089 486 + L 327.159705 154.179013 487 + L 328.473289 140.549308 488 + L 329.786874 130.504877 489 + L 331.100458 204.041053 490 + L 332.414043 120.5303 491 + L 333.727628 156.122374 492 + L 335.041212 142.123485 493 + L 336.354797 163.608582 494 + L 337.668381 161.725476 495 + L 338.981966 140.323132 496 + L 340.295551 80.909386 497 + L 341.609135 51.347188 498 + L 342.92272 102.865984 499 + L 344.236304 64.951084 500 + L 345.549889 106.275855 501 + L 346.863474 157.214709 502 + L 348.177058 89.963295 503 + L 349.490643 79.408073 504 + L 350.804227 106.507181 505 + L 352.117812 82.626614 506 + L 353.431396 73.721824 507 + L 354.744981 119.561696 508 + L 356.058566 139.364088 509 + L 357.37215 99.684565 510 + L 358.685735 99.958113 511 + L 359.999319 105.230503 512 + L 361.312904 63.309468 513 + L 362.626489 40.689448 514 + L 363.940073 110.122109 515 + L 365.253658 75.541221 516 + L 366.567242 68.854373 517 + L 367.880827 77.142692 518 + L 369.194412 67.425901 519 + L 370.507996 114.195109 520 + L 371.821581 78.930276 521 + L 373.135165 38.588928 522 + L 373.135165 38.588928 523 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke: #555555; stroke-linecap: square"/> 524 + </g> 525 + <g id="line2d_30"> 526 + <path d="M 38.171094 104.058389 527 + L 39.484678 103.582484 528 + L 40.798263 104.007138 529 + L 42.111848 100.000969 530 + L 43.425432 108.664621 531 + L 44.739017 110.400275 532 + L 46.052601 104.133599 533 + L 47.366186 114.08295 534 + L 48.679771 104.772634 535 + L 49.993355 108.226921 536 + L 51.30694 100.329718 537 + L 52.620524 102.200718 538 + L 53.934109 100.456361 539 + L 55.247693 107.084734 540 + L 56.561278 108.187133 541 + L 57.874863 103.788386 542 + L 59.188447 95.827067 543 + L 60.502032 119.080667 544 + L 61.815616 102.352342 545 + L 63.129201 113.479397 546 + L 64.442786 108.210157 547 + L 65.75637 119.232074 548 + L 67.069955 112.43346 549 + L 68.383539 125.77871 550 + L 69.697124 115.551755 551 + L 71.010709 119.478396 552 + L 72.324293 122.197822 553 + L 73.637878 117.246741 554 + L 74.951462 122.791113 555 + L 76.265047 136.078022 556 + L 77.578632 133.600812 557 + L 78.892216 142.979824 558 + L 80.205801 134.716339 559 + L 81.519385 137.459415 560 + L 82.83297 139.626988 561 + L 84.146555 133.832826 562 + L 85.460139 148.804969 563 + L 86.773724 154.952605 564 + L 88.087308 147.028944 565 + L 89.400893 154.867014 566 + L 90.714478 152.521437 567 + L 92.028062 155.547264 568 + L 93.341647 149.598242 569 + L 94.655231 156.154539 570 + L 95.968816 155.067839 571 + L 97.282401 155.830701 572 + L 98.595985 152.481979 573 + L 99.90957 150.243563 574 + L 101.223154 146.435293 575 + L 102.536739 143.005645 576 + L 103.850323 151.756165 577 + L 105.163908 149.027731 578 + L 106.477493 148.468044 579 + L 107.791077 146.507328 580 + L 109.104662 137.949308 581 + L 110.418246 140.354574 582 + L 111.731831 127.963204 583 + L 113.045416 135.695593 584 + L 114.359 132.691283 585 + L 115.672585 126.016379 586 + L 116.986169 130.40815 587 + L 118.299754 136.97275 588 + L 119.613339 129.731305 589 + L 120.926923 134.885791 590 + L 122.240508 125.908754 591 + L 123.554092 118.84563 592 + L 124.867677 125.81305 593 + L 126.181262 126.865396 594 + L 127.494846 123.686893 595 + L 128.808431 119.962423 596 + L 130.122015 129.564471 597 + L 131.4356 132.560492 598 + L 132.749185 127.981319 599 + L 134.062769 129.871936 600 + L 135.376354 128.272451 601 + L 136.689938 139.53983 602 + L 138.003523 135.595735 603 + L 139.317108 139.076773 604 + L 140.630692 135.15988 605 + L 141.944277 139.417908 606 + L 143.257861 142.731444 607 + L 144.571446 147.908695 608 + L 145.885031 145.580657 609 + L 147.198615 154.108199 610 + L 148.5122 155.170881 611 + L 149.825784 153.744416 612 + L 151.139369 161.121299 613 + L 152.452953 166.65286 614 + L 153.766538 157.277193 615 + L 155.080123 162.639048 616 + L 156.393707 158.785216 617 + L 157.707292 160.320102 618 + L 159.020876 158.056957 619 + L 160.334461 153.454522 620 + L 161.648046 153.820352 621 + L 162.96163 164.020219 622 + L 164.275215 159.040556 623 + L 165.588799 175.263294 624 + L 166.902384 159.362701 625 + L 168.215969 156.149824 626 + L 169.529553 162.305904 627 + L 170.843138 167.321116 628 + L 172.156722 170.240865 629 + L 173.470307 167.360769 630 + L 174.783892 168.700202 631 + L 176.097476 170.920597 632 + L 177.411061 174.816553 633 + L 178.724645 172.413437 634 + L 180.03823 172.199138 635 + L 181.351815 180.589191 636 + L 182.665399 182.735164 637 + L 183.978984 185.73555 638 + L 185.292568 182.472021 639 + L 187.919738 186.118065 640 + L 189.233322 189.108982 641 + L 190.546907 186.684772 642 + L 191.860491 194.455947 643 + L 193.174076 196.4024 644 + L 194.487661 197.967421 645 + L 195.801245 195.468152 646 + L 197.11483 199.529808 647 + L 198.428414 200.772448 648 + L 199.741999 211.863566 649 + L 201.055583 209.310733 650 + L 202.369168 214.656417 651 + L 203.682753 212.258071 652 + L 204.996337 208.444028 653 + L 206.309922 205.757076 654 + L 207.623506 204.767604 655 + L 208.937091 205.506652 656 + L 210.250676 195.189647 657 + L 211.56426 198.070602 658 + L 212.877845 199.40907 659 + L 214.191429 199.730677 660 + L 215.505014 196.035419 661 + L 216.818599 194.785445 662 + L 218.132183 187.98986 663 + L 219.445768 187.163142 664 + L 220.759352 187.77554 665 + L 222.072937 180.3598 666 + L 223.386522 175.866574 667 + L 224.700106 181.177335 668 + L 227.327275 173.550915 669 + L 228.64086 168.075199 670 + L 229.954445 159.323877 671 + L 231.268029 166.95292 672 + L 232.581614 146.248917 673 + L 233.895198 161.149424 674 + L 235.208783 157.648802 675 + L 236.522368 155.863537 676 + L 237.835952 141.050272 677 + L 239.149537 162.182826 678 + L 240.463121 149.179633 679 + L 241.776706 150.261486 680 + L 243.090291 148.076626 681 + L 244.403875 156.042529 682 + L 245.71746 155.047067 683 + L 247.031044 154.819139 684 + L 248.344629 164.202053 685 + L 249.658214 157.037493 686 + L 250.971798 157.219359 687 + L 252.285383 151.322224 688 + L 253.598967 157.751847 689 + L 254.912552 159.093101 690 + L 256.226136 153.431039 691 + L 257.539721 148.85939 692 + L 258.853306 154.463899 693 + L 260.16689 148.829942 694 + L 261.480475 159.349939 695 + L 262.794059 164.240481 696 + L 264.107644 155.330394 697 + L 265.421229 151.624285 698 + L 266.734813 158.07479 699 + L 268.048398 148.326131 700 + L 269.361982 159.277748 701 + L 271.989152 154.620179 702 + L 273.302736 152.713683 703 + L 274.616321 143.285156 704 + L 275.929905 146.048449 705 + L 277.24349 145.29157 706 + L 278.557075 144.070612 707 + L 279.870659 142.018489 708 + L 281.184244 140.205245 709 + L 282.497828 139.849037 710 + L 283.811413 140.971472 711 + L 285.124998 141.810486 712 + L 286.438582 135.007006 713 + L 287.752167 141.121642 714 + L 289.065751 137.043679 715 + L 290.379336 145.060416 716 + L 291.692921 143.351357 717 + L 293.006505 136.450902 718 + L 294.32009 132.949969 719 + L 295.633674 142.586927 720 + L 296.947259 144.670786 721 + L 298.260844 150.816589 722 + L 299.574428 143.232623 723 + L 300.888013 151.22109 724 + L 302.201597 149.633116 725 + L 303.515182 157.69077 726 + L 304.828766 160.499487 727 + L 306.142351 152.927705 728 + L 308.76952 147.613536 729 + L 310.083105 155.526891 730 + L 311.396689 152.489222 731 + L 312.710274 161.753196 732 + L 315.337443 149.009845 733 + L 316.651028 161.667833 734 + L 317.964612 158.395811 735 + L 319.278197 158.05569 736 + L 320.591782 155.190019 737 + L 321.905366 153.719275 738 + L 323.218951 143.397523 739 + L 324.532535 138.915954 740 + L 325.84612 142.609741 741 + L 327.159705 138.218834 742 + L 328.473289 130.773146 743 + L 329.786874 137.373354 744 + L 331.100458 132.212697 745 + L 332.414043 129.29307 746 + L 333.727628 127.156245 747 + L 335.041212 112.740368 748 + L 336.354797 121.697805 749 + L 337.668381 119.154265 750 + L 338.981966 103.51985 751 + L 340.295551 105.144132 752 + L 341.609135 98.381047 753 + L 342.92272 101.607131 754 + L 344.236304 100.193754 755 + L 345.549889 102.469376 756 + L 346.863474 95.974911 757 + L 348.177058 93.638098 758 + L 349.490643 93.808909 759 + L 350.804227 96.873428 760 + L 352.117812 83.702249 761 + L 353.431396 106.172054 762 + L 354.744981 100.471432 763 + L 356.058566 98.014912 764 + L 357.37215 94.50019 765 + L 358.685735 97.814917 766 + L 359.999319 102.256531 767 + L 361.312904 86.182933 768 + L 362.626489 97.411105 769 + L 363.940073 107.040465 770 + L 365.253658 96.899352 771 + L 366.567242 94.269893 772 + L 367.880827 104.591298 773 + L 369.194412 107.696782 774 + L 370.507996 95.878936 775 + L 371.821581 98.59464 776 + L 373.135165 105.056416 777 + L 373.135165 105.056416 778 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke: #1f77b4; stroke-width: 1.8; stroke-linecap: square"/> 779 + </g> 780 + <g id="line2d_31"> 781 + <path d="M 38.171094 103.505561 782 + L 39.484678 103.955087 783 + L 40.798263 104.28319 784 + L 43.425432 104.595316 785 + L 46.052601 104.524062 786 + L 49.993355 104.020257 787 + L 52.620524 103.701285 788 + L 55.247693 103.646175 789 + L 56.561278 103.783809 790 + L 57.874863 104.064088 791 + L 59.188447 104.508507 792 + L 60.502032 105.135531 793 + L 61.815616 105.960077 794 + L 63.129201 106.993075 795 + L 64.442786 108.241106 796 + L 65.75637 109.706148 797 + L 67.069955 111.385413 798 + L 69.697124 115.351422 799 + L 72.324293 120.022162 800 + L 74.951462 125.211988 801 + L 82.83297 141.315288 802 + L 85.460139 145.901054 803 + L 86.773724 147.893003 804 + L 88.087308 149.646414 805 + L 89.400893 151.137551 806 + L 90.714478 152.347058 807 + L 92.028062 153.260387 808 + L 93.341647 153.868116 809 + L 94.655231 154.166175 810 + L 95.968816 154.15596 811 + L 97.282401 153.844335 812 + L 98.595985 153.243527 813 + L 99.90957 152.370909 814 + L 101.223154 151.24868 815 + L 102.536739 149.903448 816 + L 105.163908 146.669325 817 + L 107.791077 142.94843 818 + L 113.045416 135.297182 819 + L 115.672585 131.985865 820 + L 116.986169 130.580123 821 + L 118.299754 129.378889 822 + L 119.613339 128.405437 823 + L 120.926923 127.678422 824 + L 122.240508 127.211576 825 + L 123.554092 127.013514 826 + L 124.867677 127.087643 827 + L 126.181262 127.432179 828 + L 127.494846 128.040278 829 + L 128.808431 128.900268 830 + L 130.122015 129.995982 831 + L 131.4356 131.307183 832 + L 134.062769 134.477858 833 + L 136.689938 138.189925 834 + L 145.885031 151.878187 835 + L 148.5122 155.087637 836 + L 151.139369 157.722408 837 + L 152.452953 158.80969 838 + L 153.766538 159.7448 839 + L 155.080123 160.534197 840 + L 157.707292 161.722382 841 + L 160.334461 162.503733 842 + L 168.215969 164.302913 843 + L 169.529553 164.797976 844 + L 170.843138 165.413672 845 + L 172.156722 166.1694 846 + L 173.470307 167.081198 847 + L 174.783892 168.161275 848 + L 176.097476 169.417625 849 + L 177.411061 170.853736 850 + L 180.03823 174.255589 851 + L 182.665399 178.29985 852 + L 185.292568 182.846005 853 + L 193.174076 197.214173 854 + L 195.801245 201.31778 855 + L 197.11483 203.08018 856 + L 198.428414 204.60675 857 + L 199.741999 205.869037 858 + L 201.055583 206.842296 859 + L 202.369168 207.506027 860 + L 203.682753 207.844424 861 + L 204.996337 207.846734 862 + L 206.309922 207.50751 863 + L 207.623506 206.826767 864 + L 208.937091 205.810018 865 + L 210.250676 204.468207 866 + L 211.56426 202.817523 867 + L 212.877845 200.879123 868 + L 214.191429 198.678735 869 + L 216.818599 193.614845 870 + L 219.445768 187.903064 871 + L 227.327275 170.036492 872 + L 229.954445 164.850448 873 + L 232.581614 160.457436 874 + L 233.895198 158.607652 875 + L 235.208783 157.00552 876 + L 236.522368 155.65698 877 + L 237.835952 154.562769 878 + L 239.149537 153.718523 879 + L 240.463121 153.11497 880 + L 241.776706 152.73823 881 + L 243.090291 152.570211 882 + L 244.403875 152.589089 883 + L 245.71746 152.769862 884 + L 248.344629 153.504953 885 + L 252.285383 155.086036 886 + L 254.912552 156.103745 887 + L 257.539721 156.836247 888 + L 258.853306 157.039889 889 + L 260.16689 157.112476 890 + L 261.480475 157.042088 891 + L 262.794059 156.821164 892 + L 264.107644 156.446636 893 + L 265.421229 155.919971 894 + L 266.734813 155.247086 895 + L 269.361982 153.507459 896 + L 271.989152 151.355061 897 + L 279.870659 144.338327 898 + L 282.497828 142.529718 899 + L 283.811413 141.836135 900 + L 285.124998 141.308175 901 + L 286.438582 140.960207 902 + L 287.752167 140.802492 903 + L 289.065751 140.840863 904 + L 290.379336 141.076492 905 + L 291.692921 141.50577 906 + L 293.006505 142.120287 907 + L 294.32009 142.906918 908 + L 296.947259 144.921732 909 + L 299.574428 147.360866 910 + L 304.828766 152.508852 911 + L 307.455936 154.652857 912 + L 308.76952 155.493713 913 + L 310.083105 156.137271 914 + L 311.396689 156.554554 915 + L 312.710274 156.72008 916 + L 314.023859 156.612427 917 + L 315.337443 156.214707 918 + L 316.651028 155.514959 919 + L 317.964612 154.506437 920 + L 319.278197 153.187796 921 + L 320.591782 151.563173 922 + L 321.905366 149.642147 923 + L 323.218951 147.4396 924 + L 324.532535 144.975464 925 + L 327.159705 139.365177 926 + L 329.786874 133.055967 927 + L 338.981966 109.890718 928 + L 341.609135 104.246142 929 + L 342.92272 101.752916 930 + L 344.236304 99.51065 931 + L 345.549889 97.537198 932 + L 346.863474 95.845408 933 + L 348.177058 94.442953 934 + L 349.490643 93.332282 935 + L 350.804227 92.510675 936 + L 352.117812 91.970402 937 + L 353.431396 91.698995 938 + L 354.744981 91.679608 939 + L 356.058566 91.891473 940 + L 357.37215 92.31043 941 + L 358.685735 92.909524 942 + L 361.312904 94.530288 943 + L 363.940073 96.507864 944 + L 369.194412 100.570544 945 + L 371.821581 102.248784 946 + L 373.135165 102.93512 947 + L 373.135165 102.93512 948 + " clip-path="url(#pc7a2e077d3)" style="fill: none; stroke-dasharray: 4.44,1.92; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.2"/> 949 + </g> 950 + <g id="patch_3"> 951 + <path d="M 38.171094 286.195781 952 + L 38.171094 26.798125 953 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 954 + </g> 955 + <g id="patch_4"> 956 + <path d="M 374.44875 286.195781 957 + L 374.44875 26.798125 958 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 959 + </g> 960 + <g id="patch_5"> 961 + <path d="M 38.171094 286.195781 962 + L 374.44875 286.195781 963 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 964 + </g> 965 + <g id="patch_6"> 966 + <path d="M 38.171094 26.798125 967 + L 374.44875 26.798125 968 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 969 + </g> 970 + <g id="text_17"> 971 + <text style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff" transform="translate(44.896647 262.342377)">promediar N períodos reduce el ruido asíncrono</text> 972 + <!-- en $\sqrt{N}$ en amplitud --> 973 + <g style="fill: #ffffff" transform="translate(44.896647 275.521029)"> 974 + <text> 975 + <tspan x="0" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">e</tspan> 976 + <tspan x="5.229492" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">n</tspan> 977 + <tspan x="10.616699" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff"> </tspan> 978 + <tspan x="26.872406" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff"> </tspan> 979 + <tspan x="29.57431" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">e</tspan> 980 + <tspan x="34.803802" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">n</tspan> 981 + <tspan x="40.19101" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff"> </tspan> 982 + <tspan x="42.892914" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">a</tspan> 983 + <tspan x="48.101654" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">m</tspan> 984 + <tspan x="56.381683" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">p</tspan> 985 + <tspan x="61.777191" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">l</tspan> 986 + <tspan x="64.138763" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">i</tspan> 987 + <tspan x="66.500336" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">t</tspan> 988 + <tspan x="69.833099" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">u</tspan> 989 + <tspan x="75.220306" y="-0.630625" style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff">d</tspan> 990 + <tspan x="13.318604" y="-2.0525" style="font-size: 4.800299px; font-family: sans-serif; fill: #ffffff">√</tspan> 991 + <tspan x="19.451508" y="-0.265625" style="font-style: oblique; font-size: 8.5px; font-family: sans-serif; fill: #ffffff">N</tspan> 992 + </text> 993 + <rect x="18.389008" y="-10.46875" width="8.483398" height="0.53125"/> 994 + </g> 995 + </g> 996 + <g id="text_18"> 997 + <text style="font-weight: 700; font-size: 12px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="206.309922" y="16.798125" transform="rotate(-0 206.309922 16.798125)">Forma de onda periódica extraída del ruido</text> 998 + </g> 999 + <g id="legend_1"> 1000 + <g id="patch_7"> 1001 + <path d="M 200.08625 70.16 1002 + L 368.84875 70.16 1003 + Q 370.44875 70.16 370.44875 68.56 1004 + L 370.44875 32.398125 1005 + Q 370.44875 30.798125 368.84875 30.798125 1006 + L 200.08625 30.798125 1007 + Q 198.48625 30.798125 198.48625 32.398125 1008 + L 198.48625 68.56 1009 + Q 198.48625 70.16 200.08625 70.16 1010 + z 1011 + " style="opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 1012 + </g> 1013 + <g id="line2d_32"> 1014 + <path d="M 201.68625 37.596875 1015 + L 209.68625 37.596875 1016 + L 217.68625 37.596875 1017 + " style="fill: none; stroke: #555555; stroke-linecap: square"/> 1018 + </g> 1019 + <g id="text_19"> 1020 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start; fill: #ffffff" x="224.08625" y="40.396875" transform="rotate(-0 224.08625 40.396875)">Un período ruidoso</text> 1021 + </g> 1022 + <g id="line2d_33"> 1023 + <path d="M 201.68625 49.9175 1024 + L 209.68625 49.9175 1025 + L 217.68625 49.9175 1026 + " style="fill: none; stroke: #1f77b4; stroke-width: 1.8; stroke-linecap: square"/> 1027 + </g> 1028 + <g id="text_20"> 1029 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start; fill: #ffffff" x="224.08625" y="52.7175" transform="rotate(-0 224.08625 52.7175)">Promedio de N = 40 períodos</text> 1030 + </g> 1031 + <g id="line2d_34"> 1032 + <path d="M 201.68625 62.238125 1033 + L 209.68625 62.238125 1034 + L 217.68625 62.238125 1035 + " style="fill: none; stroke-dasharray: 4.44,1.92; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.2"/> 1036 + </g> 1037 + <g id="text_21"> 1038 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start; fill: #ffffff" x="224.08625" y="65.038125" transform="rotate(-0 224.08625 65.038125)">Forma de onda periódica verdadera</text> 1039 + </g> 1040 + </g> 1041 + </g> 1042 + <g id="axes_2"> 1043 + <g id="patch_8"> 1044 + <path d="M 422.171094 286.195781 1045 + L 758.44875 286.195781 1046 + L 758.44875 26.798125 1047 + L 422.171094 26.798125 1048 + z 1049 + "/> 1050 + </g> 1051 + <g id="matplotlib.axis_3"> 1052 + <g id="xtick_8"> 1053 + <g id="line2d_35"> 1054 + <path d="M 422.171094 286.195781 1055 + L 422.171094 26.798125 1056 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1057 + </g> 1058 + <g id="line2d_36"> 1059 + <g> 1060 + <use xlink:href="#m8d14ee1197" x="422.171094" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1061 + </g> 1062 + </g> 1063 + <g id="text_22"> 1064 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="422.171094" y="300.793437" transform="rotate(-0 422.171094 300.793437)">31</text> 1065 + </g> 1066 + </g> 1067 + <g id="xtick_9"> 1068 + <g id="line2d_37"> 1069 + <path d="M 464.205801 286.195781 1070 + L 464.205801 26.798125 1071 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1072 + </g> 1073 + <g id="line2d_38"> 1074 + <g> 1075 + <use xlink:href="#m8d14ee1197" x="464.205801" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1076 + </g> 1077 + </g> 1078 + <g id="text_23"> 1079 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="464.205801" y="300.793437" transform="rotate(-0 464.205801 300.793437)">31,25</text> 1080 + </g> 1081 + </g> 1082 + <g id="xtick_10"> 1083 + <g id="line2d_39"> 1084 + <path d="M 506.240508 286.195781 1085 + L 506.240508 26.798125 1086 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1087 + </g> 1088 + <g id="line2d_40"> 1089 + <g> 1090 + <use xlink:href="#m8d14ee1197" x="506.240508" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1091 + </g> 1092 + </g> 1093 + <g id="text_24"> 1094 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="506.240508" y="300.793437" transform="rotate(-0 506.240508 300.793437)">31,5</text> 1095 + </g> 1096 + </g> 1097 + <g id="xtick_11"> 1098 + <g id="line2d_41"> 1099 + <path d="M 548.275215 286.195781 1100 + L 548.275215 26.798125 1101 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1102 + </g> 1103 + <g id="line2d_42"> 1104 + <g> 1105 + <use xlink:href="#m8d14ee1197" x="548.275215" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1106 + </g> 1107 + </g> 1108 + <g id="text_25"> 1109 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="548.275215" y="300.793437" transform="rotate(-0 548.275215 300.793437)">31,75</text> 1110 + </g> 1111 + </g> 1112 + <g id="xtick_12"> 1113 + <g id="line2d_43"> 1114 + <path d="M 590.309922 286.195781 1115 + L 590.309922 26.798125 1116 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1117 + </g> 1118 + <g id="line2d_44"> 1119 + <g> 1120 + <use xlink:href="#m8d14ee1197" x="590.309922" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1121 + </g> 1122 + </g> 1123 + <g id="text_26"> 1124 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="590.309922" y="300.793437" transform="rotate(-0 590.309922 300.793437)">32</text> 1125 + </g> 1126 + </g> 1127 + <g id="xtick_13"> 1128 + <g id="line2d_45"> 1129 + <path d="M 632.344629 286.195781 1130 + L 632.344629 26.798125 1131 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1132 + </g> 1133 + <g id="line2d_46"> 1134 + <g> 1135 + <use xlink:href="#m8d14ee1197" x="632.344629" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1136 + </g> 1137 + </g> 1138 + <g id="text_27"> 1139 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="632.344629" y="300.793437" transform="rotate(-0 632.344629 300.793437)">32,25</text> 1140 + </g> 1141 + </g> 1142 + <g id="xtick_14"> 1143 + <g id="line2d_47"> 1144 + <path d="M 674.379336 286.195781 1145 + L 674.379336 26.798125 1146 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1147 + </g> 1148 + <g id="line2d_48"> 1149 + <g> 1150 + <use xlink:href="#m8d14ee1197" x="674.379336" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1151 + </g> 1152 + </g> 1153 + <g id="text_28"> 1154 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="674.379336" y="300.793437" transform="rotate(-0 674.379336 300.793437)">32,5</text> 1155 + </g> 1156 + </g> 1157 + <g id="xtick_15"> 1158 + <g id="line2d_49"> 1159 + <path d="M 716.414043 286.195781 1160 + L 716.414043 26.798125 1161 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1162 + </g> 1163 + <g id="line2d_50"> 1164 + <g> 1165 + <use xlink:href="#m8d14ee1197" x="716.414043" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1166 + </g> 1167 + </g> 1168 + <g id="text_29"> 1169 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="716.414043" y="300.793437" transform="rotate(-0 716.414043 300.793437)">32,75</text> 1170 + </g> 1171 + </g> 1172 + <g id="xtick_16"> 1173 + <g id="line2d_51"> 1174 + <path d="M 758.44875 286.195781 1175 + L 758.44875 26.798125 1176 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1177 + </g> 1178 + <g id="line2d_52"> 1179 + <g> 1180 + <use xlink:href="#m8d14ee1197" x="758.44875" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1181 + </g> 1182 + </g> 1183 + <g id="text_30"> 1184 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="758.44875" y="300.793437" transform="rotate(-0 758.44875 300.793437)">33</text> 1185 + </g> 1186 + </g> 1187 + <g id="text_31"> 1188 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="590.309922" y="315.194219" transform="rotate(-0 590.309922 315.194219)">Frecuencia [órdenes]</text> 1189 + </g> 1190 + </g> 1191 + <g id="matplotlib.axis_4"> 1192 + <g id="ytick_8"> 1193 + <g id="line2d_53"> 1194 + <path d="M 422.171094 286.195781 1195 + L 758.44875 286.195781 1196 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1197 + </g> 1198 + <g id="line2d_54"> 1199 + <g> 1200 + <use xlink:href="#m5e07181663" x="422.171094" y="286.195781" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1201 + </g> 1202 + </g> 1203 + <g id="text_32"> 1204 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="415.171094" y="289.994609" transform="rotate(-0 415.171094 289.994609)">0</text> 1205 + </g> 1206 + </g> 1207 + <g id="ytick_9"> 1208 + <g id="line2d_55"> 1209 + <path d="M 422.171094 236.786704 1210 + L 758.44875 236.786704 1211 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1212 + </g> 1213 + <g id="line2d_56"> 1214 + <g> 1215 + <use xlink:href="#m5e07181663" x="422.171094" y="236.786704" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1216 + </g> 1217 + </g> 1218 + <g id="text_33"> 1219 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="415.171094" y="240.585532" transform="rotate(-0 415.171094 240.585532)">0,2</text> 1220 + </g> 1221 + </g> 1222 + <g id="ytick_10"> 1223 + <g id="line2d_57"> 1224 + <path d="M 422.171094 187.377626 1225 + L 758.44875 187.377626 1226 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1227 + </g> 1228 + <g id="line2d_58"> 1229 + <g> 1230 + <use xlink:href="#m5e07181663" x="422.171094" y="187.377626" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1231 + </g> 1232 + </g> 1233 + <g id="text_34"> 1234 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="415.171094" y="191.176455" transform="rotate(-0 415.171094 191.176455)">0,4</text> 1235 + </g> 1236 + </g> 1237 + <g id="ytick_11"> 1238 + <g id="line2d_59"> 1239 + <path d="M 422.171094 137.968549 1240 + L 758.44875 137.968549 1241 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1242 + </g> 1243 + <g id="line2d_60"> 1244 + <g> 1245 + <use xlink:href="#m5e07181663" x="422.171094" y="137.968549" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1246 + </g> 1247 + </g> 1248 + <g id="text_35"> 1249 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="415.171094" y="141.767377" transform="rotate(-0 415.171094 141.767377)">0,6</text> 1250 + </g> 1251 + </g> 1252 + <g id="ytick_12"> 1253 + <g id="line2d_61"> 1254 + <path d="M 422.171094 88.559472 1255 + L 758.44875 88.559472 1256 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1257 + </g> 1258 + <g id="line2d_62"> 1259 + <g> 1260 + <use xlink:href="#m5e07181663" x="422.171094" y="88.559472" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1261 + </g> 1262 + </g> 1263 + <g id="text_36"> 1264 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="415.171094" y="92.3583" transform="rotate(-0 415.171094 92.3583)">0,8</text> 1265 + </g> 1266 + </g> 1267 + <g id="ytick_13"> 1268 + <g id="line2d_63"> 1269 + <path d="M 422.171094 39.150394 1270 + L 758.44875 39.150394 1271 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 1272 + </g> 1273 + <g id="line2d_64"> 1274 + <g> 1275 + <use xlink:href="#m5e07181663" x="422.171094" y="39.150394" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 1276 + </g> 1277 + </g> 1278 + <g id="text_37"> 1279 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: end; fill: #ffffff" x="415.171094" y="42.949222" transform="rotate(-0 415.171094 42.949222)">1</text> 1280 + </g> 1281 + </g> 1282 + <g id="text_38"> 1283 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="392.865625" y="156.496953" transform="rotate(-90 392.865625 156.496953)">Magnitud del filtro peine</text> 1284 + </g> 1285 + </g> 1286 + <g id="line2d_65"> 1287 + <path d="M 422.171094 39.150394 1288 + L 422.255184 39.254363 1289 + L 422.423365 40.085171 1290 + L 422.675636 42.876788 1291 + L 423.011998 49.418248 1292 + L 423.516541 64.923498 1293 + L 424.105174 90.60166 1294 + L 424.946078 137.813979 1295 + L 427.384701 284.262874 1296 + L 427.468791 284.170754 1297 + L 428.225605 254.710164 1298 + L 428.814238 240.164696 1299 + L 429.23469 234.406862 1300 + L 429.571052 232.487061 1301 + L 429.739233 232.376728 1302 + L 429.907414 232.802634 1303 + L 430.159685 234.387668 1304 + L 430.496047 238.104264 1305 + L 431.00059 246.538067 1306 + L 431.757404 263.491285 1307 + L 432.682398 286.133621 1308 + L 433.607393 267.023497 1309 + L 434.196026 258.911247 1310 + L 434.616478 255.509242 1311 + L 434.95284 254.288936 1312 + L 435.121021 254.174789 1313 + L 435.289202 254.382642 1314 + L 435.541473 255.275467 1315 + L 435.877835 257.477338 1316 + L 436.382378 262.651944 1317 + L 437.139191 273.398059 1318 + L 437.896005 285.588511 1319 + L 437.980096 285.466683 1320 + L 438.905091 272.429667 1321 + L 439.493724 266.70107 1322 + L 439.914176 264.229854 1323 + L 440.250538 263.302292 1324 + L 440.418719 263.191642 1325 + L 440.586899 263.313082 1326 + L 440.839171 263.918349 1327 + L 441.175532 265.471367 1328 + L 441.680075 269.207299 1329 + L 442.352799 276.150503 1330 + L 443.193703 286.132403 1331 + L 444.202788 275.198361 1332 + L 444.791421 270.7944 1333 + L 445.211873 268.88909 1334 + L 445.548235 268.178954 1335 + L 445.800506 268.129187 1336 + L 446.052778 268.486212 1337 + L 446.38914 269.566309 1338 + L 446.809592 271.798063 1339 + L 447.398225 276.254663 1340 + L 448.40731 285.847998 1341 + L 448.4914 285.720619 1342 + L 449.500486 276.85882 1343 + L 450.089119 273.291409 1344 + L 450.509571 271.76111 1345 + L 450.845933 271.208714 1346 + L 451.098204 271.194351 1347 + L 451.350475 271.51788 1348 + L 451.686837 272.452289 1349 + L 452.107289 274.356526 1350 + L 452.695922 278.138365 1351 + L 453.705008 286.130296 1352 + L 453.789098 285.433965 1353 + L 454.798183 277.946538 1354 + L 455.386816 274.951811 1355 + L 455.807268 273.686743 1356 + L 456.14363 273.252491 1357 + L 456.395901 273.271122 1358 + L 456.648173 273.580879 1359 + L 456.984535 274.427549 1360 + L 457.404987 276.120784 1361 + L 457.99362 279.453062 1362 + L 458.918615 285.956613 1363 + L 459.002705 285.823426 1364 + L 460.095881 278.697237 1365 + L 460.684514 276.116687 1366 + L 461.104966 275.048553 1367 + L 461.441328 274.706047 1368 + L 461.693599 274.754131 1369 + L 461.94587 275.059946 1370 + L 462.282232 275.851374 1371 + L 462.786775 277.778454 1372 + L 463.459498 281.41696 1373 + L 464.216312 286.127178 1374 + L 465.309488 279.636519 1375 + L 465.898121 277.218718 1376 + L 466.318573 276.177707 1377 + L 466.654935 275.804101 1378 + L 466.907206 275.799835 1379 + L 467.159477 276.030445 1380 + L 467.495839 276.690157 1381 + L 467.916291 278.034868 1382 + L 468.504924 280.715787 1383 + L 469.429919 286.015253 1384 + L 469.51401 285.874422 1385 + L 470.607185 279.978726 1386 + L 471.195818 277.812783 1387 + L 471.616271 276.901763 1388 + L 471.952632 276.597309 1389 + L 472.204904 276.623432 1390 + L 472.457175 276.865778 1391 + L 472.793537 277.512557 1392 + L 473.298079 279.11164 1393 + L 473.970803 282.164137 1394 + L 474.727617 286.122852 1395 + L 475.904883 280.218568 1396 + L 476.493516 278.251302 1397 + L 476.913968 277.44555 1398 + L 477.25033 277.199268 1399 + L 477.502601 277.252795 1400 + L 477.838963 277.637343 1401 + L 478.259415 278.593537 1402 + L 478.763958 280.349261 1403 + L 479.520772 283.868195 1404 + L 479.941224 286.051332 1405 + L 480.025314 285.900296 1406 + L 481.11849 280.703057 1407 + L 481.707123 278.774285 1408 + L 482.127575 277.953983 1409 + L 482.463937 277.672302 1410 + L 482.716208 277.686744 1411 + L 483.05257 278.00468 1412 + L 483.473022 278.859061 1413 + L 483.977565 280.475365 1414 + L 484.734379 283.779111 1415 + L 485.238921 286.117017 1416 + L 486.416187 280.776574 1417 + L 487.00482 278.980228 1418 + L 487.425273 278.236805 1419 + L 487.761634 278.002961 1420 + L 488.013906 278.044369 1421 + L 488.350267 278.38567 1422 + L 488.77072 279.24857 1423 + L 489.275262 280.845522 1424 + L 490.032076 284.067118 1425 + L 490.452528 286.07535 1426 + L 490.536619 285.910734 1427 + L 491.629794 281.09902 1428 + L 492.218427 279.298957 1429 + L 492.63888 278.526735 1430 + L 492.975241 278.256085 1431 + L 493.227513 278.263102 1432 + L 493.563874 278.551356 1433 + L 493.984327 279.340058 1434 + L 494.488869 280.843601 1435 + L 495.245683 283.935703 1436 + L 495.750226 286.109217 1437 + L 496.927492 281.057342 1438 + L 497.516125 279.344577 1439 + L 497.936577 278.629658 1440 + L 498.272939 278.3996 1441 + L 498.52521 278.433185 1442 + L 498.861572 278.750895 1443 + L 499.282024 279.565789 1444 + L 499.786567 281.084092 1445 + L 500.543381 284.164196 1446 + L 500.963833 286.092178 1447 + L 501.132014 285.520353 1448 + L 502.225189 280.970819 1449 + L 502.813823 279.326963 1450 + L 503.234275 278.661166 1451 + L 503.570636 278.468516 1452 + L 503.822908 278.528318 1453 + L 504.15927 278.87772 1454 + L 504.579722 279.725762 1455 + L 505.168355 281.577936 1456 + L 506.009259 285.131743 1457 + L 506.26153 286.098745 1458 + L 507.438797 281.124515 1459 + L 508.02743 279.42578 1460 + L 508.447882 278.711158 1461 + L 508.784244 278.4765 1462 + L 509.036515 278.504423 1463 + L 509.372877 278.812499 1464 + L 509.793329 279.613617 1465 + L 510.297871 281.11577 1466 + L 511.054685 284.179252 1467 + L 511.475137 286.104373 1468 + L 511.643318 285.507843 1469 + L 512.736494 280.937891 1470 + L 513.325127 279.274918 1471 + L 513.745579 278.595731 1472 + L 514.081941 278.394244 1473 + L 514.334212 278.449254 1474 + L 514.670574 278.795541 1475 + L 515.091026 279.646159 1476 + L 515.595569 281.207067 1477 + L 516.352383 284.348435 1478 + L 516.772835 286.084468 1479 + L 517.950101 280.992607 1480 + L 518.538734 279.240912 1481 + L 518.959186 278.498184 1482 + L 519.295548 278.249384 1483 + L 519.547819 278.27249 1484 + L 519.884181 278.58272 1485 + L 520.304633 279.40125 1486 + L 520.809176 280.94623 1487 + L 521.56599 284.114367 1488 + L 521.986442 286.113399 1489 + L 522.238713 285.063525 1490 + L 523.247799 280.692091 1491 + L 523.836432 278.941362 1492 + L 524.256884 278.219985 1493 + L 524.593246 278.00041 1494 + L 524.845517 278.052088 1495 + L 525.181879 278.408445 1496 + L 525.602331 279.295527 1497 + L 526.106873 280.934101 1498 + L 526.863687 284.250456 1499 + L 527.28414 286.064467 1500 + L 528.545496 280.319146 1501 + L 529.134129 278.552 1502 + L 529.554581 277.846042 1503 + L 529.890943 277.655278 1504 + L 530.143214 277.737828 1505 + L 530.479576 278.146822 1506 + L 530.900028 279.115853 1507 + L 531.488661 281.216809 1508 + L 532.329566 285.243516 1509 + L 532.497747 286.120147 1510 + L 532.750018 284.952279 1511 + L 533.843194 279.85558 1512 + L 534.431827 278.052349 1513 + L 534.852279 277.35564 1514 + L 535.188641 277.194004 1515 + L 535.440912 277.310816 1516 + L 535.777274 277.781131 1517 + L 536.197726 278.84931 1518 + L 536.786359 281.121713 1519 + L 537.627263 285.424825 1520 + L 537.795444 286.035258 1521 + L 539.056801 279.614589 1522 + L 539.645434 277.618221 1523 + L 540.065886 276.810608 1524 + L 540.402248 276.583096 1525 + L 540.654519 276.666182 1526 + L 540.990881 277.114594 1527 + L 541.411333 278.194762 1528 + L 541.915876 280.167935 1529 + L 542.67269 284.142536 1530 + L 543.009051 286.125182 1531 + L 543.345413 284.260328 1532 + L 544.354498 278.898223 1533 + L 544.943131 276.799673 1534 + L 545.363583 275.97594 1535 + L 545.699945 275.772363 1536 + L 545.952217 275.895122 1537 + L 546.288578 276.424638 1538 + L 546.70903 277.648372 1539 + L 547.297664 280.278683 1540 + L 548.138568 285.307022 1541 + L 548.306749 285.989822 1542 + L 549.568105 278.380672 1543 + L 550.156738 275.979596 1544 + L 550.577191 274.991413 1545 + L 550.913552 274.697499 1546 + L 551.165824 274.780067 1547 + L 551.418095 275.12385 1548 + L 551.754457 275.979015 1549 + L 552.258999 278.048314 1550 + L 552.931723 281.994848 1551 + L 553.520356 286.128874 1552 + L 553.940808 283.205417 1553 + L 554.949893 276.750657 1554 + L 555.538526 274.295735 1555 + L 555.958978 273.390124 1556 + L 556.21125 273.225002 1557 + L 556.463521 273.353903 1558 + L 556.715792 273.777689 1559 + L 557.052154 274.790493 1560 + L 557.556697 277.19671 1561 + L 558.22942 281.741731 1562 + L 558.818053 285.911699 1563 + L 560.1635 275.576583 1564 + L 560.752133 272.60751 1565 + L 561.172586 271.440933 1566 + L 561.424857 271.17305 1567 + L 561.593038 271.182547 1568 + L 561.845309 271.482669 1569 + L 562.181671 272.412443 1570 + L 562.602123 274.387286 1571 + L 563.190756 278.475613 1572 + L 564.03166 286.131467 1573 + L 564.115751 285.434905 1574 + L 565.461198 273.234021 1575 + L 566.049831 269.747373 1576 + L 566.470283 268.399028 1577 + L 566.722554 268.108928 1578 + L 566.890735 268.141996 1579 + L 567.143007 268.536579 1580 + L 567.479368 269.703526 1581 + L 567.899821 272.149409 1582 + L 568.488454 277.191507 1583 + L 569.329358 285.751324 1584 + L 570.758895 269.584437 1585 + L 571.347528 265.233082 1586 + L 571.767981 263.553393 1587 + L 572.020252 263.200412 1588 + L 572.188433 263.252665 1589 + L 572.440704 263.771431 1590 + L 572.777066 265.286381 1591 + L 573.197518 268.46022 1592 + L 573.786151 275.033475 1593 + L 574.542965 286.133117 1594 + L 574.627055 284.915473 1595 + L 576.140683 262.146504 1596 + L 576.729316 256.523139 1597 + L 577.149769 254.483801 1598 + L 577.40204 254.172807 1599 + L 577.570221 254.368698 1600 + L 577.822492 255.283622 1601 + L 578.158854 257.673419 1602 + L 578.579306 262.501676 1603 + L 579.167939 272.387449 1604 + L 579.840663 285.259769 1605 + L 581.774743 241.246289 1606 + L 582.279285 234.756236 1607 + L 582.615647 232.647293 1608 + L 582.783828 232.353064 1609 + L 582.867918 232.407864 1610 + L 583.036099 232.93597 1611 + L 583.28837 234.811872 1612 + L 583.624732 239.416384 1613 + L 584.045184 248.645511 1614 + L 584.549727 264.788379 1615 + L 585.05427 286.133921 1616 + L 585.811084 246.058207 1617 + L 587.408802 145.610527 1618 + L 588.501977 84.490624 1619 + L 589.174701 57.670298 1620 + L 589.679244 44.958031 1621 + L 590.015605 40.422207 1622 + L 590.267877 39.176389 1623 + L 590.351967 39.176389 1624 + L 590.520148 39.79977 1625 + L 590.772419 42.283872 1626 + L 591.108781 48.42854 1627 + L 591.529233 60.440209 1628 + L 592.117866 84.490624 1629 + L 592.958771 130.158426 1630 + L 595.565574 286.133921 1631 + L 596.322388 256.037625 1632 + L 596.911021 240.951736 1633 + L 597.331473 234.811872 1634 + L 597.667835 232.601258 1635 + L 597.836016 232.353064 1636 + L 598.004197 232.647293 1637 + L 598.256468 234.048109 1638 + L 598.59283 237.547492 1639 + L 599.097373 245.725151 1640 + L 599.854186 262.467747 1641 + L 600.779181 285.259769 1642 + L 600.863272 285.143339 1643 + L 601.704176 267.740664 1644 + L 602.292809 259.364561 1645 + L 602.713261 255.755802 1646 + L 603.049623 254.368698 1647 + L 603.217804 254.172807 1648 + L 603.385985 254.300994 1649 + L 603.638256 255.079712 1650 + L 603.974618 257.142797 1651 + L 604.47916 262.146504 1652 + L 605.151884 271.439633 1653 + L 606.076879 286.133117 1654 + L 607.085964 271.941137 1655 + L 607.674597 266.390055 1656 + L 608.095049 264.062335 1657 + L 608.431411 263.252665 1658 + L 608.599592 263.200412 1659 + L 608.767773 263.379137 1660 + L 609.020044 264.06709 1661 + L 609.356406 265.7217 1662 + L 609.860948 269.584437 1663 + L 610.617762 277.616716 1664 + L 611.290486 285.751324 1665 + L 611.374576 285.626529 1666 + L 612.383662 274.823796 1667 + L 612.972295 270.554637 1668 + L 613.392747 268.760147 1669 + L 613.729108 268.141996 1670 + L 613.897289 268.108928 1671 + L 614.06547 268.257644 1672 + L 614.317742 268.812627 1673 + L 614.654103 270.138703 1674 + L 615.158646 273.234021 1675 + L 615.91546 279.691948 1676 + L 616.588183 286.131467 1677 + L 617.681359 276.555013 1678 + L 618.269992 273.097868 1679 + L 618.690444 271.658846 1680 + L 619.026806 271.182547 1681 + L 619.279077 271.225054 1682 + L 619.531349 271.603882 1683 + L 619.86771 272.60751 1684 + L 620.372253 275.069174 1685 + L 621.044976 279.722372 1686 + L 621.80179 285.911699 1687 + L 621.885881 285.781591 1688 + L 622.894966 278.208256 1689 + L 623.483599 275.120591 1690 + L 623.904051 273.777689 1691 + L 624.240413 273.278077 1692 + L 624.492684 273.247606 1693 + L 624.744956 273.509407 1694 + L 625.081317 274.295735 1695 + L 625.50177 275.922542 1696 + L 626.090403 279.185369 1697 + L 627.099488 286.128874 1698 + L 627.183578 285.518796 1699 + L 628.192664 278.924007 1700 + L 628.781297 276.260974 1701 + L 629.201749 275.12385 1702 + L 629.538111 274.723442 1703 + L 629.790382 274.728045 1704 + L 630.042653 274.991413 1705 + L 630.379015 275.729472 1706 + L 630.799467 277.221161 1707 + L 631.3881 280.178018 1708 + L 632.313095 285.989822 1709 + L 632.397185 285.85309 1710 + L 633.490361 279.431204 1711 + L 634.078994 277.087127 1712 + L 634.499446 276.108205 1713 + L 634.835808 275.786931 1714 + L 635.088079 275.822088 1715 + L 635.340351 276.091287 1716 + L 635.676712 276.799673 1717 + L 636.181255 278.538982 1718 + L 636.853979 281.842692 1719 + L 637.610793 286.125182 1720 + L 638.703968 280.167935 1721 + L 639.292601 277.934768 1722 + L 639.713053 276.966812 1723 + L 640.049415 276.614197 1724 + L 640.301686 276.603945 1725 + L 640.553958 276.810608 1726 + L 640.89032 277.412257 1727 + L 641.310772 278.647313 1728 + L 641.899405 281.121411 1729 + L 642.8244 286.035258 1730 + L 642.90849 285.88969 1731 + L 644.001666 280.391736 1732 + L 644.590299 278.36093 1733 + L 645.010751 277.501646 1734 + L 645.347113 277.21022 1735 + L 645.599384 277.229725 1736 + L 645.851655 277.451954 1737 + L 646.188017 278.052349 1738 + L 646.69256 279.545587 1739 + L 647.365283 282.408194 1740 + L 648.122097 286.120147 1741 + L 649.299363 280.538868 1742 + L 649.887996 278.669878 1743 + L 650.308448 277.90015 1744 + L 650.64481 277.661233 1745 + L 650.897081 277.707966 1746 + L 651.233443 278.067867 1747 + L 651.653895 278.970616 1748 + L 652.158438 280.635085 1749 + L 652.915252 283.982525 1750 + L 653.335704 286.064467 1751 + L 653.419795 285.907124 1752 + L 654.51297 280.934101 1753 + L 655.101603 279.080796 1754 + L 655.522056 278.289006 1755 + L 655.858417 278.014166 1756 + L 656.110689 278.024563 1757 + L 656.44705 278.325492 1758 + L 656.867503 279.141747 1759 + L 657.372045 280.692091 1760 + L 658.128859 283.871077 1761 + L 658.633402 286.113399 1762 + L 659.810668 280.94623 1763 + L 660.399301 279.201059 1764 + L 660.819753 278.475613 1765 + L 661.156115 278.244697 1766 + L 661.408386 278.281821 1767 + L 661.744748 278.609334 1768 + L 662.1652 279.443494 1769 + L 662.669743 280.992607 1770 + L 663.426557 284.126665 1771 + L 663.847009 286.084468 1772 + L 664.01519 285.516778 1773 + L 665.108365 280.910902 1774 + L 665.696998 279.252668 1775 + L 666.117451 278.583898 1776 + L 666.453812 278.392888 1777 + L 666.706084 278.455973 1778 + L 667.042445 278.812039 1779 + L 667.462898 279.67116 1780 + L 668.051531 281.54151 1781 + L 668.892435 285.120098 1782 + L 669.144706 286.104373 1783 + L 670.321972 281.11577 1784 + L 670.910605 279.418246 1785 + L 671.331058 278.706888 1786 + L 671.667419 278.475613 1787 + L 671.919691 278.506189 1788 + L 672.256052 278.817533 1789 + L 672.676505 279.621602 1790 + L 673.181047 281.124515 1791 + L 673.937861 284.181481 1792 + L 674.358313 286.098745 1793 + L 674.526494 285.517383 1794 + L 675.61967 280.979642 1795 + L 676.208303 279.334242 1796 + L 676.628755 278.665038 1797 + L 676.965117 278.46896 1798 + L 677.217388 278.526119 1799 + L 677.55375 278.872321 1800 + L 677.974202 279.717583 1801 + L 678.562835 281.569599 1802 + L 679.40374 285.133081 1803 + L 679.656011 286.092178 1804 + L 680.833277 281.084092 1805 + L 681.42191 279.367604 1806 + L 681.842362 278.642706 1807 + L 682.178724 278.40231 1808 + L 682.430995 278.427791 1809 + L 682.767357 278.735511 1810 + L 683.187809 279.541383 1811 + L 683.692352 281.057342 1812 + L 684.449166 284.157286 1813 + L 684.869618 286.109217 1814 + L 685.037799 285.491382 1815 + L 686.130974 280.843601 1816 + L 686.719608 279.146122 1817 + L 687.14006 278.449852 1818 + L 687.476421 278.240679 1819 + L 687.728693 278.293905 1820 + L 688.065055 278.643536 1821 + L 688.485507 279.507878 1822 + L 688.990049 281.09902 1823 + L 689.746863 284.309999 1824 + L 690.167315 286.07535 1825 + L 691.344582 280.845522 1826 + L 691.933215 279.039322 1827 + L 692.353667 278.270251 1828 + L 692.690029 278.009905 1829 + L 692.9423 278.030544 1830 + L 693.278662 278.34623 1831 + L 693.699114 279.185917 1832 + L 694.203656 280.776574 1833 + L 694.96047 284.048131 1834 + L 695.380922 286.117017 1835 + L 695.633194 285.015912 1836 + L 696.726369 280.166531 1837 + L 697.315003 278.459074 1838 + L 697.735455 277.803593 1839 + L 698.071816 277.655559 1840 + L 698.324088 277.770411 1841 + L 698.66045 278.221426 1842 + L 699.080902 279.23893 1843 + L 699.669535 281.394771 1844 + L 700.67862 286.051332 1845 + L 701.939977 280.016419 1846 + L 702.52861 278.150755 1847 + L 702.949062 277.401043 1848 + L 703.285424 277.194425 1849 + L 703.537695 277.277166 1850 + L 703.874057 277.703069 1851 + L 704.294509 278.719875 1852 + L 704.799051 280.568743 1853 + L 705.555865 284.277936 1854 + L 705.892227 286.122852 1855 + L 706.228589 284.405294 1856 + L 707.237674 279.442827 1857 + L 707.826307 277.512557 1858 + L 708.246759 276.761303 1859 + L 708.583121 276.58176 1860 + L 708.835392 276.701262 1861 + L 709.171754 277.197248 1862 + L 709.592206 278.33262 1863 + L 710.180839 280.759341 1864 + L 711.021744 285.374636 1865 + L 711.189925 286.015253 1866 + L 712.451281 279.084441 1867 + L 713.039914 276.914964 1868 + L 713.460366 276.030445 1869 + L 713.796728 275.774955 1870 + L 714.048999 275.858204 1871 + L 714.301271 276.177707 1872 + L 714.637632 276.961475 1873 + L 715.142175 278.843192 1874 + L 715.814899 282.409887 1875 + L 716.403532 286.127178 1876 + L 716.823984 283.525914 1877 + L 717.833069 277.778454 1878 + L 718.421702 275.613976 1879 + L 718.842154 274.827786 1880 + L 719.094426 274.693084 1881 + L 719.346697 274.819287 1882 + L 719.683059 275.392353 1883 + L 720.103511 276.732723 1884 + L 720.608053 279.155788 1885 + L 721.364867 284.014516 1886 + L 721.701229 285.956613 1887 + L 722.962586 277.430204 1888 + L 723.551219 274.712527 1889 + L 723.971671 273.580879 1890 + L 724.308033 273.232224 1891 + L 724.560304 273.311883 1892 + L 724.812575 273.686743 1893 + L 725.148937 274.63672 1894 + L 725.569389 276.50284 1895 + L 726.158022 280.189219 1896 + L 726.914836 286.130296 1897 + L 726.998927 285.561487 1898 + L 728.260283 275.839462 1899 + L 728.848916 272.770904 1900 + L 729.269368 271.51788 1901 + L 729.52164 271.194351 1902 + L 729.773911 271.208714 1903 + L 730.026182 271.566022 1904 + L 730.362544 272.570316 1905 + L 730.782996 274.631297 1906 + L 731.371629 278.81723 1907 + L 732.212534 285.847998 1908 + L 733.557981 273.543717 1909 + L 734.146614 269.938221 1910 + L 734.567066 268.486212 1911 + L 734.819337 268.129187 1912 + L 734.987518 268.11654 1913 + L 735.239789 268.442016 1914 + L 735.576151 269.518208 1915 + L 735.996603 271.858013 1916 + L 736.585236 276.777561 1917 + L 737.426141 286.132403 1918 + L 737.510231 285.241836 1919 + L 738.939769 269.207299 1920 + L 739.528402 265.007045 1921 + L 739.948854 263.459278 1922 + L 740.201125 263.191642 1923 + L 740.369306 263.302292 1924 + L 740.621577 263.909518 1925 + L 740.957939 265.541023 1926 + L 741.378391 268.851784 1927 + L 741.967024 275.584571 1928 + L 742.723838 285.588511 1929 + L 744.321557 261.653353 1930 + L 744.91019 256.238604 1931 + L 745.246551 254.604286 1932 + L 745.498823 254.174789 1933 + L 745.667004 254.288936 1934 + L 745.919275 255.078939 1935 + L 746.255637 257.301882 1936 + L 746.676089 261.93002 1937 + L 747.264722 271.57378 1938 + L 747.937445 286.133621 1939 + L 748.021536 284.254243 1940 + L 749.871525 241.942163 1941 + L 750.376068 235.1533 1942 + L 750.71243 232.802634 1943 + L 750.880611 232.376728 1944 + L 750.964701 232.363318 1945 + L 751.132882 232.750787 1946 + L 751.385153 234.406862 1947 + L 751.721515 238.706726 1948 + L 752.141967 247.548028 1949 + L 752.64651 263.237523 1950 + L 753.235143 284.262874 1951 + L 754.076047 238.607868 1952 + L 757.019213 68.124785 1953 + L 757.607846 49.418248 1954 + L 758.028298 41.741761 1955 + L 758.280569 39.566112 1956 + L 758.44875 39.150394 1957 + L 758.44875 39.150394 1958 + " clip-path="url(#p7743f044be)" style="fill: none; stroke: #2ca02c; stroke-width: 1.2; stroke-linecap: square"/> 1959 + </g> 1960 + <g id="line2d_66"> 1961 + <path d="M 422.171094 39.150394 1962 + L 422.339275 39.312587 1963 + L 422.591546 40.163051 1964 + L 422.927908 42.422396 1965 + L 423.34836 47.023248 1966 + L 423.852902 55.057245 1967 + L 424.525626 69.744842 1968 + L 425.36653 93.699381 1969 + L 426.459706 131.957165 1970 + L 430.580137 286.133765 1971 + L 431.505132 262.023735 1972 + L 432.261946 247.408011 1973 + L 432.93467 238.510881 1974 + L 433.439212 234.37143 1975 + L 433.859664 232.533835 1976 + L 434.111936 232.107899 1977 + L 434.280117 232.095527 1978 + L 434.448298 232.293701 1979 + L 434.700569 232.971767 1980 + L 435.036931 234.549812 1981 + L 435.541473 238.234138 1982 + L 436.214197 245.238397 1983 + L 437.139191 257.720511 1984 + L 438.989181 286.132992 1985 + L 439.073272 284.883779 1986 + L 440.166447 270.198307 1987 + L 441.007352 261.621034 1988 + L 441.680075 256.906864 1989 + L 442.184618 254.732096 1990 + L 442.60507 253.828051 1991 + L 442.857341 253.678219 1992 + L 443.109612 253.816572 1993 + L 443.361884 254.235387 1994 + L 443.698246 255.212781 1995 + L 444.202788 257.515968 1996 + L 444.791421 261.324598 1997 + L 445.632326 268.409792 1998 + L 447.061863 282.807393 1999 + L 447.398225 286.131672 2000 + L 448.659581 274.33169 2001 + L 449.500486 268.278734 2002 + L 450.173209 264.88422 2003 + L 450.677752 263.287086 2004 + L 451.098204 262.603205 2005 + L 451.350475 262.47658 2006 + L 451.602747 262.560401 2007 + L 451.939108 262.992449 2008 + L 452.359561 264.02665 2009 + L 452.864103 265.940349 2010 + L 453.536827 269.486371 2011 + L 454.461821 275.7655 2012 + L 455.807268 286.129759 2013 + L 457.152715 276.351204 2014 + L 457.99362 271.637722 2015 + L 458.666343 268.989398 2016 + L 459.170886 267.749074 2017 + L 459.591338 267.228924 2018 + L 459.9277 267.152425 2019 + L 460.264062 267.37458 2020 + L 460.600423 267.887611 2021 + L 461.104966 269.174944 2022 + L 461.693599 271.390264 2023 + L 462.450413 275.173708 2024 + L 463.627679 282.410034 2025 + L 464.216312 286.127178 2026 + L 465.64585 277.473959 2027 + L 466.486754 273.570989 2028 + L 467.159477 271.391865 2029 + L 467.66402 270.387827 2030 + L 468.084472 269.986666 2031 + L 468.420834 269.95462 2032 + L 468.757196 270.177177 2033 + L 469.177648 270.803669 2034 + L 469.68219 272.038424 2035 + L 470.354914 274.417077 2036 + L 471.195818 278.329845 2037 + L 472.625356 286.123826 2038 + L 472.709446 285.64487 2039 + L 474.138984 278.116247 2040 + L 474.979888 274.740315 2041 + L 475.652611 272.876229 2042 + L 476.157154 272.037936 2043 + L 476.577606 271.726575 2044 + L 476.913968 271.734525 2045 + L 477.25033 271.969154 2046 + L 477.670782 272.572699 2047 + L 478.175325 273.727331 2048 + L 478.848048 275.91942 2049 + L 479.688952 279.495526 2050 + L 481.034399 286.119556 2051 + L 482.548027 278.806056 2052 + L 483.388932 275.690173 2053 + L 484.061655 273.952599 2054 + L 484.566198 273.1594 2055 + L 484.98665 272.853411 2056 + L 485.323012 272.845383 2057 + L 485.659373 273.04698 2058 + L 486.079826 273.587028 2059 + L 486.584368 274.636557 2060 + L 487.257092 276.648657 2061 + L 488.097996 279.956767 2062 + L 489.443443 286.114164 2063 + L 491.041161 278.894741 2064 + L 491.882066 276.02256 2065 + L 492.554789 274.445336 2066 + L 493.059332 273.747798 2067 + L 493.479784 273.503947 2068 + L 493.816146 273.5337 2069 + L 494.152508 273.762362 2070 + L 494.57296 274.321283 2071 + L 495.077502 275.372156 2072 + L 495.750226 277.352321 2073 + L 496.59113 280.573491 2074 + L 497.852487 286.107363 2075 + L 499.450205 279.122346 2076 + L 500.291109 276.319625 2077 + L 500.963833 274.76813 2078 + L 501.468376 274.073206 2079 + L 501.888828 273.821571 2080 + L 502.225189 273.839273 2081 + L 502.561551 274.051349 2082 + L 502.982003 274.584174 2083 + L 503.486546 275.597709 2084 + L 504.15927 277.522007 2085 + L 505.000174 280.671817 2086 + L 506.26153 286.098743 2087 + L 507.943339 278.85174 2088 + L 508.784244 276.1328 2089 + L 509.456967 274.653396 2090 + L 509.96151 274.0143 2091 + L 510.381962 273.809765 2092 + L 510.718324 273.865237 2093 + L 511.138776 274.207352 2094 + L 511.643318 275.0065 2095 + L 512.231951 276.438541 2096 + L 512.988765 278.962928 2097 + L 513.997851 283.195182 2098 + L 514.670574 286.087702 2099 + L 516.352383 278.714524 2100 + L 517.193287 275.924187 2101 + L 517.866011 274.393395 2102 + L 518.370553 273.723015 2103 + L 518.791005 273.499108 2104 + L 519.127367 273.544387 2105 + L 519.547819 273.881325 2106 + L 519.968272 274.522838 2107 + L 520.556905 275.903714 2108 + L 521.229628 278.094935 2109 + L 522.154623 281.933287 2110 + L 523.079618 286.073325 2111 + L 524.845517 278.044119 2112 + L 525.686421 275.194592 2113 + L 526.359145 273.658153 2114 + L 526.863687 273.01043 2115 + L 527.28414 272.823705 2116 + L 527.620501 272.910769 2117 + L 528.040954 273.314732 2118 + L 528.545496 274.221145 2119 + L 529.134129 275.822723 2120 + L 529.890943 278.629097 2121 + L 530.900028 283.324369 2122 + L 531.488661 286.054165 2123 + L 533.254561 277.431142 2124 + L 534.095465 274.337262 2125 + L 534.768188 272.651438 2126 + L 535.272731 271.92758 2127 + L 535.693183 271.704801 2128 + L 536.029545 271.782531 2129 + L 536.365907 272.088616 2130 + L 536.786359 272.787444 2131 + L 537.290902 274.07075 2132 + L 537.963625 276.468486 2133 + L 538.804529 280.368068 2134 + L 539.897705 286.027792 2135 + L 541.747695 276.068041 2136 + L 542.588599 272.697465 2137 + L 543.261323 270.886952 2138 + L 543.765865 270.135607 2139 + L 544.102227 269.944618 2140 + L 544.438589 270.00873 2141 + L 544.77495 270.329709 2142 + L 545.195403 271.088416 2143 + L 545.699945 272.504677 2144 + L 546.372669 275.180829 2145 + L 547.213573 279.575861 2146 + L 548.306749 285.989814 2147 + L 550.240829 274.032736 2148 + L 551.081733 270.19292 2149 + L 551.670366 268.35076 2150 + L 552.174909 267.42301 2151 + L 552.511271 267.163979 2152 + L 552.847632 267.202873 2153 + L 553.183994 267.543535 2154 + L 553.604446 268.392105 2155 + L 554.108989 270.013394 2156 + L 554.697622 272.681123 2157 + L 555.454436 277.171608 2158 + L 556.547612 285.143275 2159 + L 556.715792 285.931412 2160 + L 558.733963 270.791873 2161 + L 559.574867 266.130549 2162 + L 560.1635 263.899433 2163 + L 560.668043 262.78821 2164 + L 561.004405 262.492391 2165 + L 561.256676 262.513407 2166 + L 561.508947 262.746194 2167 + L 561.845309 263.388009 2168 + L 562.265761 264.719255 2169 + L 562.770304 267.069015 2170 + L 563.443027 271.38213 2171 + L 564.283932 278.362648 2172 + L 565.124836 285.831947 2173 + L 567.395278 263.614317 2174 + L 568.152092 258.236923 2175 + L 568.740725 255.367399 2176 + L 569.161177 254.1465 2177 + L 569.497539 253.711804 2178 + L 569.74981 253.716714 2179 + L 570.002081 254.012847 2180 + L 570.338443 254.867904 2181 + L 570.758895 256.680384 2182 + L 571.263438 259.931038 2183 + L 571.936161 265.99563 2184 + L 572.777066 276.005291 2185 + L 573.53388 285.629324 2186 + L 576.477045 242.823451 2187 + L 577.149769 236.518271 2188 + L 577.654311 233.475868 2189 + L 577.990673 232.375412 2190 + L 578.242944 232.078645 2191 + L 578.411125 232.144584 2192 + L 578.663396 232.653409 2193 + L 578.999758 234.122725 2194 + L 579.42021 237.27432 2195 + L 579.924753 243.037328 2196 + L 580.513386 252.519527 2197 + L 581.2702 268.981581 2198 + L 581.942923 285.011645 2199 + L 582.952009 251.760994 2200 + L 584.465637 193.499361 2201 + L 586.736078 106.176734 2202 + L 587.745164 75.191831 2203 + L 588.586068 55.84591 2204 + L 589.174701 46.475888 2205 + L 589.679244 41.42538 2206 + L 590.015605 39.646907 2207 + L 590.267877 39.160533 2208 + L 590.436058 39.241635 2209 + L 590.604238 39.646907 2210 + L 590.85651 40.860336 2211 + L 591.192871 43.597561 2212 + L 591.697414 50.045154 2213 + L 592.286047 60.948091 2214 + L 593.042861 79.820633 2215 + L 593.967856 109.070957 2216 + L 595.313303 159.740944 2217 + L 598.088287 266.345113 2218 + L 598.67692 285.011645 2219 + L 598.761011 284.899926 2220 + L 599.686006 261.086685 2221 + L 600.442819 246.738128 2222 + L 601.115543 238.083634 2223 + L 601.620086 234.122725 2224 + L 602.040538 232.428272 2225 + L 602.292809 232.08474 2226 + L 602.46099 232.12557 2227 + L 602.713261 232.576715 2228 + L 603.049623 233.870979 2229 + L 603.470075 236.518271 2230 + L 604.058708 241.911863 2231 + L 604.815522 251.152767 2232 + L 605.992788 268.655142 2233 + L 607.085964 285.629324 2234 + L 607.170054 285.506795 2235 + L 608.347321 269.705539 2236 + L 609.188225 261.267679 2237 + L 609.860948 256.680384 2238 + L 610.365491 254.604563 2239 + L 610.701853 253.881461 2240 + L 610.954124 253.683001 2241 + L 611.206395 253.773802 2242 + L 611.458667 254.1465 2243 + L 611.795028 255.065235 2244 + L 612.299571 257.288006 2245 + L 612.888204 261.016912 2246 + L 613.729108 268.019635 2247 + L 615.158646 282.372391 2248 + L 615.495008 285.831947 2249 + L 615.579098 285.705062 2250 + L 616.840455 273.987318 2251 + L 617.681359 268.026355 2252 + L 618.354083 264.719255 2253 + L 618.858625 263.192065 2254 + L 619.279077 262.567371 2255 + L 619.531349 262.476021 2256 + L 619.78362 262.594579 2257 + L 620.119982 263.071611 2258 + L 620.540434 264.159003 2259 + L 621.044976 266.130549 2260 + L 621.7177 269.740719 2261 + L 622.642695 276.078544 2262 + L 623.904051 285.931412 2263 + L 623.988142 285.800097 2264 + L 625.333589 276.083608 2265 + L 626.174493 271.440814 2266 + L 626.847217 268.860873 2267 + L 627.351759 267.675864 2268 + L 627.772211 267.202873 2269 + L 628.108573 267.163979 2270 + L 628.444935 267.42301 2271 + L 628.865387 268.152652 2272 + L 629.36993 269.588285 2273 + L 630.042653 272.346338 2274 + L 630.883558 276.866789 2275 + L 632.313095 285.989814 2276 + L 632.397185 285.853056 2277 + L 633.826723 277.252118 2278 + L 634.667627 273.408351 2279 + L 635.340351 271.286893 2280 + L 635.844893 270.329709 2281 + L 636.265346 269.968622 2282 + L 636.601707 269.968606 2283 + L 636.938069 270.222633 2284 + L 637.358521 270.886952 2285 + L 637.863064 272.163718 2286 + L 638.535787 274.590395 2287 + L 639.376692 278.546598 2288 + L 640.722139 286.027792 2289 + L 640.806229 285.884173 2290 + L 642.235767 278.3109 2291 + L 643.076671 274.883253 2292 + L 643.749394 272.968385 2293 + L 644.253937 272.088616 2294 + L 644.674389 271.741652 2295 + L 645.010751 271.721062 2296 + L 645.347113 271.92758 2297 + L 645.767565 272.497242 2298 + L 646.272107 273.614117 2299 + L 646.944831 275.762848 2300 + L 647.785735 279.299473 2301 + L 649.131182 286.054165 2302 + L 649.215273 285.901907 2303 + L 650.728901 278.629097 2304 + L 651.569805 275.560304 2305 + L 652.242528 273.869205 2306 + L 652.747071 273.114093 2307 + L 653.167523 272.840879 2308 + L 653.503885 272.859174 2309 + L 653.840247 273.086743 2310 + L 654.260699 273.658153 2311 + L 654.765242 274.742711 2312 + L 655.437965 276.795151 2313 + L 656.278869 280.140146 2314 + L 657.540226 286.073325 2315 + L 657.624316 285.910215 2316 + L 659.137944 279.060478 2317 + L 659.978849 276.143963 2318 + L 660.651572 274.522838 2319 + L 661.156115 273.789238 2320 + L 661.576567 273.5143 2321 + L 661.912929 273.519052 2322 + L 662.24929 273.723015 2323 + L 662.669743 274.252071 2324 + L 663.174285 275.269533 2325 + L 663.847009 277.211143 2326 + L 664.687913 280.396968 2327 + L 665.94927 286.087702 2328 + L 666.03336 285.910937 2329 + L 667.631078 278.962928 2330 + L 668.471983 276.203161 2331 + L 669.144706 274.6943 2332 + L 669.649249 274.034459 2333 + L 670.069701 273.813108 2334 + L 670.406063 273.855195 2335 + L 670.826515 274.180372 2336 + L 671.331058 274.958458 2337 + L 671.919691 276.364312 2338 + L 672.676505 278.85174 2339 + L 673.68559 283.028986 2340 + L 674.358313 286.098743 2341 + L 674.526494 285.51685 2342 + L 676.040122 279.00899 2343 + L 676.881026 276.247336 2344 + L 677.55375 274.725454 2345 + L 678.058293 274.051349 2346 + L 678.478745 273.816554 2347 + L 678.815106 273.847638 2348 + L 679.235559 274.159663 2349 + L 679.656011 274.76813 2350 + L 680.244644 276.089178 2351 + L 680.917367 278.193785 2352 + L 681.842362 281.886705 2353 + L 682.767357 286.107363 2354 + L 682.851447 285.891182 2355 + L 684.533256 278.555475 2356 + L 685.374161 275.808683 2357 + L 686.046884 274.321283 2358 + L 686.551427 273.686724 2359 + L 686.971879 273.49382 2360 + L 687.308241 273.564115 2361 + L 687.728693 273.931952 2362 + L 688.233235 274.77271 2363 + L 688.821868 276.267894 2364 + L 689.578682 278.894741 2365 + L 690.587768 283.292734 2366 + L 691.176401 286.114164 2367 + L 691.428672 285.052845 2368 + L 692.9423 278.209276 2369 + L 693.783204 275.314233 2370 + L 694.455928 273.732321 2371 + L 694.96047 273.04698 2372 + L 695.380922 272.827644 2373 + L 695.717284 272.888358 2374 + L 696.053646 273.1594 2375 + L 696.474098 273.788903 2376 + L 696.978641 274.95219 2377 + L 697.651364 277.131048 2378 + L 698.492269 280.675865 2379 + L 699.585444 286.119556 2380 + L 699.669535 285.836184 2381 + L 701.435434 277.254568 2382 + L 702.276338 274.209535 2383 + L 702.949062 272.572699 2384 + L 703.453604 271.889481 2385 + L 703.789966 271.711152 2386 + L 704.126328 271.760304 2387 + L 704.46269 272.037936 2388 + L 704.883142 272.702048 2389 + L 705.387684 273.946069 2390 + L 706.060408 276.297744 2391 + L 706.901312 280.154019 2392 + L 707.994488 286.123826 2393 + L 708.078578 285.787615 2394 + L 709.844478 276.263413 2395 + L 710.685382 272.838862 2396 + L 711.358105 270.973893 2397 + L 711.862648 270.177177 2398 + L 712.19901 269.95462 2399 + L 712.535372 269.986666 2400 + L 712.871733 270.275576 2401 + L 713.292186 270.994948 2402 + L 713.796728 272.366386 2403 + L 714.469452 274.989434 2404 + L 715.310356 279.333593 2405 + L 716.403532 286.127178 2406 + L 716.487622 285.714863 2407 + L 718.337612 274.255927 2408 + L 719.178516 270.353349 2409 + L 719.767149 268.456146 2410 + L 720.271692 267.475969 2411 + L 720.608053 267.180193 2412 + L 720.944415 267.181543 2413 + L 721.280777 267.484431 2414 + L 721.701229 268.286345 2415 + L 722.205772 269.853974 2416 + L 722.794405 272.464736 2417 + L 723.551219 276.895264 2418 + L 724.644394 284.81627 2419 + L 724.812575 286.129759 2420 + L 725.317118 282.271652 2421 + L 726.830746 271.062744 2422 + L 727.67165 266.325224 2423 + L 728.260283 264.02665 2424 + L 728.764826 262.850717 2425 + L 729.101188 262.509286 2426 + L 729.353459 262.49526 2427 + L 729.60573 262.692612 2428 + L 729.942092 263.287086 2429 + L 730.362544 264.56002 2430 + L 730.867087 266.84294 2431 + L 731.53981 271.076197 2432 + L 732.380715 277.979217 2433 + L 733.221619 286.131672 2434 + L 733.810252 280.193094 2435 + L 735.40797 264.66322 2436 + L 736.248875 258.489333 2437 + L 736.837508 255.529024 2438 + L 737.25796 254.235387 2439 + L 737.594322 253.738866 2440 + L 737.846593 253.695824 2441 + L 738.098864 253.943054 2442 + L 738.435226 254.732096 2443 + L 738.855678 256.462085 2444 + L 739.360221 259.616304 2445 + L 740.032944 265.562117 2446 + L 740.873849 275.449884 2447 + L 741.630663 286.132992 2448 + L 742.471567 273.277144 2449 + L 744.153376 248.370569 2450 + L 744.99428 238.988291 2451 + L 745.582913 234.549812 2452 + L 746.003365 232.696095 2453 + L 746.339727 232.095527 2454 + L 746.507908 232.107899 2455 + L 746.676089 232.336644 2456 + L 746.92836 233.096918 2457 + L 747.264722 234.912822 2458 + L 747.685174 238.510881 2459 + L 748.189717 244.819415 2460 + L 748.77835 254.934837 2461 + L 749.535164 272.172817 2462 + L 750.039706 286.133765 2463 + L 750.79652 262.070195 2464 + L 752.141967 211.946618 2465 + L 755.169223 96.390641 2466 + L 756.094218 69.744842 2467 + L 756.851032 53.533861 2468 + L 757.439665 44.949321 2469 + L 757.944207 40.607833 2470 + L 758.280569 39.312587 2471 + L 758.44875 39.150394 2472 + L 758.44875 39.150394 2473 + " clip-path="url(#p7743f044be)" style="fill: none; stroke: #1f77b4; stroke-width: 1.4; stroke-linecap: square"/> 2474 + </g> 2475 + <g id="line2d_67"> 2476 + <path d="M 598.716863 286.195781 2477 + L 598.716863 26.798125 2478 + " clip-path="url(#p7743f044be)" style="fill: none; stroke-dasharray: 1.3,2.145; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.3"/> 2479 + </g> 2480 + <g id="patch_9"> 2481 + <path d="M 422.171094 286.195781 2482 + L 422.171094 26.798125 2483 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2484 + </g> 2485 + <g id="patch_10"> 2486 + <path d="M 758.44875 286.195781 2487 + L 758.44875 26.798125 2488 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2489 + </g> 2490 + <g id="patch_11"> 2491 + <path d="M 422.171094 286.195781 2492 + L 758.44875 286.195781 2493 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2494 + </g> 2495 + <g id="patch_12"> 2496 + <path d="M 422.171094 26.798125 2497 + L 758.44875 26.798125 2498 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 2499 + </g> 2500 + <g id="text_39"> 2501 + <text style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff" transform="translate(428.896647 151.176572)">N = 20 sitúa un nodo en 32,05 órdenes y lo</text> 2502 + <text style="font-size: 8.5px; font-family: sans-serif; fill: #ffffff" transform="translate(428.896647 161.378896)">elimina; la potencia de dos N = 32 lo deja pasar</text> 2503 + </g> 2504 + <g id="text_40"> 2505 + <text style="font-weight: 700; font-size: 12px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="590.309922" y="16.798125" transform="rotate(-0 590.309922 16.798125)">Rechazo de un tono eligiendo N (McFadden 1987)</text> 2506 + </g> 2507 + <g id="legend_2"> 2508 + <g id="patch_13"> 2509 + <path d="M 626.65625 69.2 2510 + L 752.84875 69.2 2511 + Q 754.44875 69.2 754.44875 67.6 2512 + L 754.44875 32.398125 2513 + Q 754.44875 30.798125 752.84875 30.798125 2514 + L 626.65625 30.798125 2515 + Q 625.05625 30.798125 625.05625 32.398125 2516 + L 625.05625 67.6 2517 + Q 625.05625 69.2 626.65625 69.2 2518 + z 2519 + " style="opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 2520 + </g> 2521 + <g id="line2d_68"> 2522 + <path d="M 628.25625 37.276875 2523 + L 636.25625 37.276875 2524 + L 644.25625 37.276875 2525 + " style="fill: none; stroke: #2ca02c; stroke-width: 1.2; stroke-linecap: square"/> 2526 + </g> 2527 + <g id="text_41"> 2528 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start; fill: #ffffff" x="650.65625" y="40.076875" transform="rotate(-0 650.65625 40.076875)">N = 32 (potencia de dos)</text> 2529 + </g> 2530 + <g id="line2d_69"> 2531 + <path d="M 628.25625 49.2775 2532 + L 636.25625 49.2775 2533 + L 644.25625 49.2775 2534 + " style="fill: none; stroke: #1f77b4; stroke-width: 1.4; stroke-linecap: square"/> 2535 + </g> 2536 + <g id="text_42"> 2537 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start; fill: #ffffff" x="650.65625" y="52.0775" transform="rotate(-0 650.65625 52.0775)">N = 20 (nodo en 32,05)</text> 2538 + </g> 2539 + <g id="line2d_70"> 2540 + <path d="M 628.25625 61.278125 2541 + L 636.25625 61.278125 2542 + L 644.25625 61.278125 2543 + " style="fill: none; stroke-dasharray: 1.3,2.145; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 1.3"/> 2544 + </g> 2545 + <g id="text_43"> 2546 + <text style="font-size: 8px; font-family: sans-serif; text-anchor: start; fill: #ffffff" x="650.65625" y="64.078125" transform="rotate(-0 650.65625 64.078125)">Tono interferente (32,05)</text> 2547 + </g> 2548 + </g> 2549 + </g> 2550 + </g> 2551 + <defs> 2552 + <clipPath id="pc7a2e077d3"> 2553 + <rect x="38.171094" y="26.798125" width="336.277656" height="259.397656"/> 2554 + </clipPath> 2555 + <clipPath id="p7743f044be"> 2556 + <rect x="422.171094" y="26.798125" width="336.277656" height="259.397656"/> 2557 + </clipPath> 2558 + </defs> 2559 + </svg>
+22 -3
CHANGELOG.md
··· 8 8 ## [Unreleased] 9 9 10 10 ### Added 11 + - `time_synchronous_average`: extraction of a periodic waveform of known 12 + period from asynchronous noise by time domain averaging (P. D. McFadden, 13 + "A revised model for the extraction of periodic waveforms by time domain 14 + averaging", Mechanical Systems and Signal Processing 1(1), 1987, 83-95). 15 + Ensemble-averaging N successive periods (Eq. 5) reinforces every component 16 + synchronous with the period and suppresses the rest, with the residual 17 + asynchronous-noise standard deviation falling as 1/sqrt(N). The frozen 18 + `SynchronousAverageResult` carries the averaged one-period waveform, the 19 + residual and its RMS, the noise reduction in dB (10*log10(N)) with the 20 + sqrt(N) amplitude gain, the comb-filter response over the first harmonics, 21 + and a `.plot()` (EN/ES). When the sample rate does not divide the period 22 + the blocks are aligned to a common integer grid by the band-limited 23 + fractional delay of `fractional_delay`; an integer number of samples per 24 + period is recovered to machine precision. `comb_filter_response` evaluates 25 + the closed-form comb magnitude (Eq. 8/9), a Dirichlet kernel with unit 26 + teeth at the harmonics k/T and nodes at j/(N*T), so an interfering order is 27 + best rejected by choosing N to place a node on it (McFadden's 32.05-order 28 + example: N = 20 beats the power-of-two N = 32). 11 29 - `miso_coherence`: multiple and partial coherence of a multiple-input, 12 30 single-output system (Bendat & Piersol, Random Data 4e, Chapter 7). From the 13 - Welch cross-spectral matrix of two or three partially correlated inputs and 31 + Welch cross-spectral matrix of several partially correlated inputs and 14 32 one output it reports the ordinary coherence of each input (Eq. 7.109), the 15 33 multiple coherence explained by all inputs jointly (Eq. 7.35), and the 16 34 partial coherences (Eq. 7.87) obtained by the Gaussian-elimination ··· 1092 1110 cross-reference). 1093 1111 1094 1112 ### Changed 1095 - - Raised the `scipy` floor in `pyproject.toml` to the current release 1096 - (`scipy>=1.18.0`), matching the pin `requirements.txt` already carried. The 1113 + - Raised the `scipy` floor in `pyproject.toml` to `scipy>=1.18.0`, the minimum 1114 + supported scipy version, matching the floor `requirements.txt` already 1115 + carried. The 1097 1116 `numpy` floor stays at `>=2.4.4` because the optional `perf` extra pulls 1098 1117 numba, which still requires NumPy 2.4 or older; the pure-Python matrix and the 1099 1118 figure stack already run on the latest NumPy through their own pins.
+14 -1
docs/CONFORMANCE.md
··· 15 15 16 16 ## Numerical conformance report 17 17 18 - &#9989; **405/405 conformance checks pass** across 51 domains and 267 standards - filters class 1 - weightings within IEC 61672-1 class 1. 18 + &#9989; **410/410 conformance checks pass** across 52 domains and 272 standards - filters class 1 - weightings within IEC 61672-1 class 1. 19 19 20 20 <sub>Each row pins a standard clause to its expected normative value and the value the library computes. Every section below is collapsible and stays collapsed while all of its rows pass; a section with any failing row opens automatically.</sub> 21 21 ··· 587 587 | Havelock 2008 Ch. 27 Fig. 21 + Mercator series of ln(1+a*e^{-j*theta}) | Power-cepstrum height at the echo delay = reflection coefficient a | 0.4 (+/-0) | 0.4 | 0 | &#9989; | 588 588 | Havelock 2008 Ch. 87 Eq. (14): complex cepstrum, series term n = 2 | Second rahmonic of a reflection a = 0.4 equals -a^2/2 | -0.08 (+/-0) | -0.08 | 0 | &#9989; | 589 589 | Bendat & Piersol, Random Data 4e Sec. 13.3 (Fig. 13.11) | Envelope-spectrum line of an AM tone (A0 = 2, m = 0.35) at fm | 0.7 (+/-0.002) | 0.7 | 0 | &#9989; | 590 + 591 + </details> 592 + 593 + <details> 594 + <summary>&#9989; <b>Time synchronous averaging (McFadden 1987)</b>: 100% (5/5)</summary> 595 + 596 + | Standard | Quantity | Expected (norm) | Computed | &#916; | Status | 597 + |:---|:---|:---|:---|:---|:---:| 598 + | McFadden 1987 Eq. 8 / Eq. 9: comb filter \|C(f)\| at a harmonic k/T | Comb-filter tooth height at a harmonic equals unity (any N) | 1 (+/-0) | 1 | 0 | &#9989; | 599 + | McFadden 1987 Eq. 8: comb filter one quarter-order from a tooth, N = 2 | Comb-filter magnitude = 1/sqrt(2) at order 0.25 | 0.70710678 (+/-0) | 0.70710678 | 0 | &#9989; | 600 + | McFadden 1987 Sec. 4 (Fig. 5): node selection, tone at 32.05 orders | N = 20 places a comb node on 32.05 orders (\|C\| = 0), not the power-of-2 N = 32 | 0 (+/-0.0000000001) | 0 | 0 | &#9989; | 601 + | McFadden 1987 Eq. 5: exact recovery, integer samples per period | Noiseless periodic waveform (M = 256) recovered to machine precision | 0 (+/-0.0000000001) | 0 | 0 | &#9989; | 602 + | McFadden 1987 Sec. 1: asynchronous-noise variance reduced by 1/N | Residual noise std of the average falls as sigma/sqrt(N), N = 64 | 0.125 (+/-15%) | 0.12414 | -0.001 | &#9989; | 590 603 591 604 </details> 592 605
+2 -1
docs/README.md
··· 66 66 - [Calibrated spectral analysis](spectral-analysis.md): the Bendat & Piersol Welch estimators with their statistical quality: PSD and cross-spectral density with the effective number of averages, normalized random errors and chi-square confidence intervals, the coherent output spectrum with the spectral SNR, constant-power 1/n-octave smoothing, colored-noise generators with an exact power-law slope, and the Harris window figures of merit for choosing the taper 67 67 - [Time-frequency analysis](time-frequency.md): the calibrated STFT spectrogram in absolute dB SPL with the exact Welch-module scaling and the time-versus-frequency resolution trade-off, and the zoom FFT that resolves tones closer than a practical FFT bin 68 68 - [2D FDTD wave simulation](fdtd-simulation.md): the deterministic staggered-grid pressure-velocity FDTD solver (Attenborough & Van Renterghem 2021, chapter 4) with Gaussian, tone and arbitrary-signal sources, pressure probes, rasterised obstacles, rigid/impedance/absorbing boundaries, and a result object with probe histories and field snapshots 69 - - [Multiple and partial coherence](miso-coherence.md): the Bendat & Piersol multiple-input/output coherence functions for two or three correlated sources and one output, with the Gaussian-elimination conditioning that separates a genuine cause from a source that merely correlates with it, and the partial coherent output spectra that say which source dominates each band 69 + - [Multiple and partial coherence](miso-coherence.md): the Bendat & Piersol multiple-input/output coherence functions for several correlated sources and one output, with the Gaussian-elimination conditioning that separates a genuine cause from a source that merely correlates with it, and the partial coherent output spectra that say which source dominates each band 70 70 - [Correlation, time delay and envelope](correlation-delay.md): auto- and cross-correlation with the Bendat & Piersol normalizations and random errors, time-delay estimation by the direct correlator, the cross-spectrum phase slope and the Knapp & Carter GCC (Roth, SCOT, PHAT, maximum likelihood) with the Eq. 8.129 peak-location uncertainty, sub-sample impulse-response delay and alignment, and the Hilbert envelope with instantaneous phase and frequency 71 71 - [Test signals and sample-rate tools](test-signals.md): IEC 60268-1 tone bursts with exact gating (zero-crossing start, integral full periods, repetitive trains), polyphase resampling behind an explicit anti-alias specification whose designed Kaiser filter travels with the result, and band-limited fractional delay with a linear or circular boundary 72 72 - [Cepstrum, echoes and the envelope spectrum](cepstrum-echoes.md): the power, real and complex cepstrum with quefrency analysis, echo detection with the reflection coefficient read off the cepstral peak, lowpass/highpass liftering of a log spectrum, the homomorphic round trip of the complex cepstrum, and the envelope spectrum that turns amplitude modulations into discrete lines 73 + - [Time synchronous averaging](synchronous-averaging.md): extraction of a periodic waveform of known period by time domain averaging (McFadden 1987), the comb filter that describes the operation in the frequency domain with unit teeth at the harmonics and nodes between them, the square-root noise-reduction law, and the choice of the number of averages that places a comb node on an interfering order 73 74 - [System measurement: Golay, shaped sweeps, inversion](system-measurement.md): complementary Golay pairs whose periodic autocorrelations sum to an exact delta and deconvolve a noiseless system to machine precision, sweeps synthesized to follow an arbitrary target magnitude spectrum by group-delay shaping (Mueller & Massarani) with a near-ideal crest factor, and the regularized spectral inversion of a measured response with Kirkeby frequency-dependent regularization, achieved flatness and a capped out-of-band gain 74 75 75 76 ## Reference
+4 -1
docs/api-reference.md
··· 625 625 | `cross_spectral_density` | `function` | **Welch cross-spectral density with magnitude/phase errors (Eqs. 9.33/9.52).**<br>• `x`, `y`, `fs`<br>• `window`, `nperseg`, `overlap`, `scaling` as above | `res = cross_spectral_density(x, y, fs)`<br><br>• `CrossSpectralDensityResult` | 626 626 | `coherent_output_spectrum` | `function` | **Gvv = γ²·Gyy, noise remainder and spectral SNR (Eqs. 9.55–9.56, 9.73).**<br>• `x` (input), `y` (output), `fs`<br>• `window`, `nperseg`, `overlap`, `scaling` as above | `res = coherent_output_spectrum(x, y, fs)`<br><br>• `CoherentOutputSpectrumResult` | 627 627 | `fractional_octave_smoothing` | `function` | **Constant-power 1/n-octave smoothing of a spectrum.**<br>• `frequencies`, `values`<br>• `fraction`: the n of 1/n octave (Default: 3)<br>• `domain`: 'power'/'amplitude'/'db' (Default: 'power') | `s = fractional_octave_smoothing(f, psd, 3.0)`<br><br>• smoothed array, same domain; flat spectra unchanged | 628 - | `miso_coherence` | `function` | **Multiple & partial coherence of a MISO system (Bendat & Piersol Ch. 7).**<br>• `inputs`: 2 or 3 input records (sequence of 1-D arrays or a (q, n) array), `output`, `fs`<br>• `order`: conditioning order (Default: 0..q−1)<br>• `window`, `nperseg`, `overlap`, `scaling` as above | `res = miso_coherence([x1, x2], y, fs)`<br><br>• `MISOCoherenceResult` | 628 + | `miso_coherence` | `function` | **Multiple & partial coherence of a MISO system (Bendat & Piersol Ch. 7).**<br>• `inputs`: q input records, q ≥ 2 (sequence of 1-D arrays or a (q, n) array), `output`, `fs`<br>• `order`: conditioning order (Default: 0..q−1)<br>• `window`, `nperseg`, `overlap`, `scaling` as above | `res = miso_coherence([x1, x2], y, fs)`<br><br>• `MISOCoherenceResult` | 629 629 | `MISOCoherenceResult` | `dataclass` | **Multiple/partial coherence of q correlated inputs and one output.**<br>• `ordinary_coherence` (q×F), `multiple_coherence` γ²y:x, `partial_coherence` (q×F, conditioned per `order`)<br>• `coherent_output_spectra` Gvi (q×F, Σ Gvi + `noise_psd` = `output_psd`)<br>• `multiple_coherence_random_error` (Eq. 9.98), `coherent_output_random_error` (Eq. 9.100)<br>• `.dominant_input()`: per-band index of the strongest source<br>• `.plot()`: coherent output spectra + coherences | `res.multiple_coherence, res.dominant_input()` | 630 630 | `resolution_bias_error` | `function` | **First-order resolution bias at a resonance peak, εb ≈ −(Be/Br)²/3 (Eq. 8.141).**<br>• `resolution_bandwidth` Be [Hz]<br>• `half_power_bandwidth` Br [Hz] | `resolution_bias_error(1.0, 4.0) # -1/48` | 631 631 | `noise_signal` | `function` | **Colored Gaussian noise with an exact power-law PSD slope.**<br>• `fs`, `seconds` (Default: 1.0)<br>• `color`: 'white'/'pink'/'red'/'blue'/'violet' (0/−3.01/−6.02/+3.01/+6.02 dB/oct)<br>• `rms` (Default: 1.0)<br>• `seed`: bit-reproducible per seed | `pink = noise_signal(48000, 10.0, color='pink', seed=7)` | ··· 657 657 | `EnvelopeResult` | `dataclass` | **Envelope analysis.**<br>• `times` [s], `envelope`, `phase` [rad, unwrapped], `instantaneous_frequency` [Hz]<br>• `fs` (output rate), `signal`, `signal_fs`, `decimation_factor`, `antialias`<br>• `.plot()`: signal + envelope, instantaneous frequency | `res.envelope, res.instantaneous_frequency` | 658 658 | `envelope_spectrum` | `function` | **Amplitude spectrum of the envelope: modulations as lines (B&P 13.3).**<br>• `x`, `fs`<br>• `kind`: 'magnitude' (Default) / 'squared' (square-law detector, Fig. 13.11)<br>• `window` (Default: 'hann', coherent-gain corrected), `nfft`<br>• `remove_dc` (Default: True; mean kept in `mean_level`)<br>AM tone A0, m: line A0·m at fm ('magnitude') | `res = envelope_spectrum(x, fs)`<br><br>• `EnvelopeSpectrumResult` | 659 659 | `EnvelopeSpectrumResult` | `dataclass` | **Envelope spectrum.**<br>• `frequencies` [Hz], `amplitude` (line heights), `mean_level`, `kind`<br>• `times`, `envelope` (detector output), `window`, `remove_dc`, `fs`, `nfft`<br>• `.plot()`: envelope + spectrum | `res.amplitude, res.mean_level` | 660 + | `time_synchronous_average` | `function` | **Extract a periodic waveform of known period by time domain averaging (McFadden 1987 Eq. 5).**<br>• `x`, `fs`, `period` [s] (one revolution)<br>• `n_averages`: whole periods to average (Default: as many as the record holds; choose N so N·q is integer to place a comb node on an interfering order q)<br>• `n_harmonics`: comb-response span (Default: 8)<br>Non-integer fs·period aligned by band-limited fractional delay | `res = time_synchronous_average(x, fs, 1/32)`<br><br>• `SynchronousAverageResult` | 661 + | `SynchronousAverageResult` | `dataclass` | **Time synchronous average.**<br>• `period_waveform`, `times` [s], `residual`, `residual_rms`<br>• `n_averages`, `samples_per_period`, `period`, `fs`, `interpolated`<br>• `noise_reduction_db` = 10·log₁₀N, `amplitude_snr_gain` = √N<br>• `comb_frequencies` [Hz], `comb_response` (\|C(f)\|)<br>• `.plot()`: averaged waveform + comb filter | `res.period_waveform, res.noise_reduction_db` | 662 + | `comb_filter_response` | `function` | **Magnitude of the N-period synchronous-averaging comb filter (McFadden 1987 Eq. 8).**<br>• `frequencies` [Hz], `period` [s], `n_averages`<br>\|C(f)\| = \|sin(N·π·f·T)/(N·sin(π·f·T))\|: unit teeth at harmonics k/T, nodes at j/(N·T) | `c = comb_filter_response(freqs, 1/32, 20)` | 660 663 | `regularized_inverse_filter` | `function` | **Kirkeby frequency-dependent regularized inversion (Kirkeby & Nelson 1999 Eq. (17)).**<br>• `response`: measured IR (array or `ImpulseResponseResult`; its `fs` rides along)<br>• `fs`: Sample rate [Hz]<br>• `f_range`: (f1, f2) equalized to unity (Required)<br>• `regularization_inside` (Default: 1e-6) / `regularization_outside` (Default: 1.0), fractions of max\|H\|²<br>• `transition_octaves` (Default: 1/3), `n_fft`, `delay` (Default: n_fft//2) | `inv = regularized_inverse_filter(ir, f_range=(100, 10000))`<br><br>• `InverseFilterResult` | 661 664 | `InverseFilterResult` | `dataclass` | **Regularized inverse filter.**<br>• `inverse` (time domain), `spectrum` (with modeling delay), `response_spectrum`, `regularization` = ε(f), `frequencies`, `f_range`, `delay`, `fs`<br>• `flatness_db`: worst in-band deviation of \|H·H_inv\| from 0 dB<br>• `max_gain_db`: out-of-band boost (≤ the 1/(2√ε) cap)<br>• `.apply(x)`: equalize, delay removed; `.plot()` | `flat = inv.apply(recording)` | 662 665 | `cepstrum` | `function` | **Power/real/complex cepstrum (Havelock Chs. 27/87).**<br>• `x`, `fs`<br>• `kind`: 'power' (Default, IDFT of ln\|X\|²) / 'real' (ln\|X\|) / 'complex' (invertible, phase unwrapped)<br>• `nfft`: even, ≥ record (Default: record length)<br>Echo a at t0: rahmonics (−1)^(n+1)·aⁿ/n at n·t0 | `res = cepstrum(x, fs, kind='complex')`<br><br>• `CepstrumResult` |
+2 -2
docs/miso-coherence.md
··· 9 9 Piersol, *Random Data* (4th ed., 2010, Chapter 7), resolve this for a 10 10 multiple-input/single-output (MISO) system with the **multiple** and 11 11 **partial** coherence functions. `miso_coherence` computes them from the same 12 - Welch cross-spectral core as the rest of `phonometry.metrology`, for two or 13 - three inputs and one output. 12 + Welch cross-spectral core as the rest of `phonometry.metrology`, for several 13 + correlated inputs and one output. 14 14 15 15 <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/miso_coherence_dark.svg"><img src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/miso_coherence.svg" alt="Two-panel figure. Top: the measured output autospectrum in dB with the coherent output contribution of two inputs shaded underneath; input 1 fills the low band and input 2 the high band, with the residual noise far below. Bottom: for the correlated second input, its ordinary coherence sits around 0.3 across the low band even though it drives no low-frequency path, while its partial coherence collapses to zero there once the first input is conditioned out; the multiple coherence stays near one except at the crossover null" width="82%"></picture> 16 16
+1 -1
docs/spectral-analysis.md
··· 407 407 detrend-off calibration), so a PSD, a coherence and an H1 computed with the 408 408 same segment length are mutually consistent bin by bin. The same cross-spectral 409 409 matrix underlies [multiple and partial coherence](miso-coherence.md), which 410 - extends the ordinary coherence to two or three correlated inputs and one 410 + extends the ordinary coherence to several correlated inputs and one 411 411 output. 412 412 413 413 ## References
+179
docs/synchronous-averaging.md
··· 1 + ← [Documentation index](README.md) 2 + 3 + # Time synchronous averaging (McFadden 1987) 4 + 5 + A rotating machine repeats its signature once per revolution. Buried in 6 + broadband noise and in the tones of every other shaft, that repetitive 7 + waveform is hard to read directly. **Time synchronous averaging** (TSA) 8 + recovers it: given the period `T` of one revolution, it slices the record 9 + into successive length-`T` blocks and averages them. Every component 10 + synchronous with `T` reinforces; everything asynchronous, noise and the 11 + harmonics of unrelated shafts, averages down. `time_synchronous_average` 12 + implements the model of P. D. McFadden, *A revised model for the extraction 13 + of periodic waveforms by time domain averaging* (Mechanical Systems and 14 + Signal Processing 1(1), 1987, 83-95). 15 + 16 + <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/synchronous_average_dark.svg"><img src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/synchronous_average.svg" alt="Two-panel figure. Left: one noisy period of a signal in faint grey swings far above and below a smooth curve; the average of forty periods, in blue, lies almost exactly on the dashed red true waveform, so the asynchronous noise has been removed. Right: the comb-filter magnitude across the orders between 31 and 33, with unit-height teeth at the integer orders; for N = 20 a deep node falls exactly on the interfering tone marked at 32.05 orders, whereas the power-of-two N = 32 leaves a side lobe there and lets the tone through" width="92%"></picture> 17 + 18 + <details> 19 + <summary>Show the code for this figure</summary> 20 + 21 + ```python 22 + import matplotlib.pyplot as plt 23 + import numpy as np 24 + from phonometry import ( 25 + comb_filter_response, 26 + noise_signal, 27 + time_synchronous_average, 28 + ) 29 + 30 + fs = 8192.0 31 + period = 1.0 / 32.0 # one revolution: 256 samples at this rate 32 + m, n_avg = 256, 40 33 + phase = np.arange((n_avg + 1) * m) / m 34 + periodic = ( 35 + np.cos(2.0 * np.pi * phase) 36 + + 0.5 * np.cos(2.0 * np.pi * 3.0 * phase + 0.4) 37 + - 0.3 * np.cos(2.0 * np.pi * 6.0 * phase) 38 + ) 39 + signal = periodic + noise_signal(fs, phase.size / fs, rms=0.9, seed=11) 40 + res = time_synchronous_average(signal, fs, period, n_averages=n_avg) 41 + 42 + fig, (ax0, ax1) = plt.subplots(1, 2, figsize=(11, 4.6)) 43 + t_ms = 1e3 * res.times 44 + ax0.plot(t_ms, signal[:m], color="#cccccc", label="One noisy period") 45 + ax0.plot(t_ms, res.period_waveform, color="#1f77b4", lw=1.8, 46 + label=f"Average of N = {n_avg} periods") 47 + ax0.plot(t_ms, periodic[:m], "--", color="#d62728", label="True waveform") 48 + ax0.set_xlabel("Time [ms]"); ax0.set_ylabel("Amplitude"); ax0.legend() 49 + 50 + orders = np.linspace(31.0, 33.0, 4000) 51 + freqs = orders / period 52 + ax1.plot(orders, comb_filter_response(freqs, period, 32), color="#2ca02c", 53 + label="N = 32 (power of two)") 54 + ax1.plot(orders, comb_filter_response(freqs, period, 20), color="#1f77b4", 55 + label="N = 20 (node on 32.05)") 56 + ax1.axvline(32.05, color="#d62728", ls=":", label="Interfering tone") 57 + ax1.set_xlabel("Frequency [orders]"); ax1.set_ylabel("Comb filter magnitude") 58 + ax1.set_ylim(0, 1.05); ax1.legend() 59 + plt.show() 60 + ``` 61 + 62 + </details> 63 + 64 + The `.plot()` method draws the averaged waveform and the comb filter in one 65 + call: 66 + 67 + ```python 68 + res.plot() # English labels; res.plot(language="es") for Spanish 69 + ``` 70 + 71 + ## 1. The average is a comb filter 72 + 73 + Averaging `N` successive periods (McFadden Eq. 5), 74 + `a(t) = (1/N) Σ y(t + n·T)`, is, in the frequency domain, the multiplication 75 + of the signal spectrum by a **comb filter** (Eq. 8). Its magnitude (Eq. 9) is 76 + the Dirichlet kernel `|C(f)| = |sin(N·π·f·T) / (N·sin(π·f·T))|`. 77 + 78 + The comb has a **tooth** of unit height at every harmonic `k/T` (the orders 79 + `f·T = 1, 2, 3, ...`), *independent of `N`*: components synchronous with the 80 + period pass untouched. Between the teeth it has **nodes** at `j/(N·T)` for 81 + every `j` that is not a multiple of `N`, where the response is exactly zero. 82 + `comb_filter_response` evaluates this closed form directly: 83 + 84 + ```python 85 + import numpy as np 86 + from phonometry import comb_filter_response 87 + 88 + period = 1.0 / 32.0 89 + comb_filter_response(np.array([16.0 / period]), period, 8) # 1.0 at a tooth 90 + comb_filter_response(np.array([0.25 / period]), period, 2) # 1/sqrt(2) 91 + comb_filter_response(np.array([0.5 / period]), period, 2) # 0.0 at a node 92 + ``` 93 + 94 + `SynchronousAverageResult` carries the response over the first few harmonics 95 + in `comb_frequencies` and `comb_response`, so the shape of the filter that 96 + the average applied is available alongside the recovered waveform. 97 + 98 + ## 2. Noise falls as the square root of the number of averages 99 + 100 + Asynchronous noise of variance `σ²` averaged over `N` periods has residual 101 + variance `σ²/N`: the residual standard deviation falls as `1/√N`, and the 102 + amplitude signal-to-noise ratio improves by `√N`. That is a power reduction 103 + of `10·log₁₀ N` dB, reported as `noise_reduction_db`, with the amplitude gain 104 + `√N` as `amplitude_snr_gain`: 105 + 106 + ```python 107 + res = time_synchronous_average(signal, fs, period, n_averages=100) 108 + res.noise_reduction_db # 20.0 dB = 10*log10(100) 109 + res.amplitude_snr_gain # 10.0 = sqrt(100) 110 + ``` 111 + 112 + This law is the ideal one: it holds when the noise is uncorrelated from one 113 + period to the next, so colored or synchronous noise that is correlated across 114 + periods need not follow it. The `residual` (input minus the periodic 115 + reconstruction over the analysed span) and its `residual_rms` therefore report 116 + the noise actually left once the synchronous component is removed. 117 + 118 + ## 3. Choosing N to reject an interfering order 119 + 120 + Because a tooth sits on *every* integer order, TSA passes the harmonics of 121 + the target shaft but also any tone that happens to fall on an integer order. 122 + A tone at a *non-harmonic* order `q = f·T` is only attenuated by the comb, 123 + not removed, and how much depends on where the nearest node lands. McFadden's 124 + revised-model result is that such an interferer is best rejected by choosing 125 + `N` so that a node falls exactly on it, i.e. the smallest `N` with `N·q` an 126 + integer, rather than by the habitual power-of-two number of averages. An exact 127 + node exists only when the order `q` is rational, so some finite `N` makes `N·q` 128 + an integer; for an irrational or merely estimated order, choose the `N` whose 129 + node falls nearest the interfering order. 130 + 131 + His own example is a tone at 32.05 orders. With `N = 20` the product 132 + `20 · 32.05 = 641` is an integer, so a comb node lands on the tone and rejects 133 + it by more than 100 dB. The common choice `N = 32` gives `32 · 32.05 = 1025.6`, 134 + which sits on a side lobe: the tone is barely touched. The figure above shows 135 + both combs around order 32; the end-to-end average confirms it: 136 + 137 + ```python 138 + # true 8th-order component plus a strong interferer at 32.05 orders 139 + phase = np.arange(41 * 256) / 256 140 + signal = np.cos(2 * np.pi * 8.0 * phase) + 0.7 * np.cos(2 * np.pi * 32.05 * phase) 141 + 142 + leak_20 = time_synchronous_average(signal, fs, period, n_averages=20) 143 + leak_32 = time_synchronous_average(signal, fs, period, n_averages=32) 144 + # leak_20.period_waveform matches the clean 8th-order tone; leak_32 does not 145 + ``` 146 + 147 + So a power-of-two number of averages, convenient as it is, is not in general 148 + the optimal choice: the interfering orders present in the machine should set 149 + `N`. 150 + 151 + ## 4. Non-integer samples per period 152 + 153 + When `fs·T` is an integer, the period boundaries fall on samples, the blocks 154 + are sliced directly, and a noiseless periodic signal is recovered to machine 155 + precision (`interpolated` is `False`). When `fs·T` is not an integer the 156 + boundaries fall between samples; each block is then aligned to a common 157 + integer grid by the band-limited fractional delay of 158 + [`fractional_delay`](test-signals.md), and the waveform is recovered within 159 + that interpolation error (`interpolated` is `True`): 160 + 161 + ```python 162 + fs = 8192.0 163 + period = 1.0 / 31.7 # fs * period is not an integer 164 + t = np.arange(int(40 * period * fs)) / fs 165 + signal = np.cos(2.0 * np.pi * t / period) # one cycle per revolution 166 + res = time_synchronous_average(signal, fs, period) 167 + res.interpolated # True: fractional-delay alignment 168 + res.samples_per_period # integer samples of one period 169 + ``` 170 + 171 + By default the average uses as many whole periods as the record holds; pass 172 + `n_averages` to fix the count (for the node-selection choice of §3), and 173 + `n_harmonics` to set how many harmonics of `1/T` the returned comb response 174 + spans. 175 + 176 + The band-limited alignment shares its kernel with the sub-sample 177 + impulse-response alignment of the [test-signals page](test-signals.md), and 178 + the recovered waveform, being exactly one period, can be tiled to reconstruct 179 + the synchronous part of the signal for subtraction or for order analysis.
+191 -4
llms-full.txt
··· 58 58 - [Correlation, time delay and envelope (Bendat & Piersol / Knapp & Carter)](https://jmrplens.github.io/phonometry/guides/correlation-delay/) 59 59 - [Test signals and sample-rate tools (IEC 60268-1)](https://jmrplens.github.io/phonometry/guides/test-signals/) 60 60 - [Cepstrum, echoes and the envelope spectrum (Havelock / Bendat & Piersol)](https://jmrplens.github.io/phonometry/guides/cepstrum-echoes/) 61 + - [Time synchronous averaging (McFadden 1987)](https://jmrplens.github.io/phonometry/guides/synchronous-averaging/) 61 62 - [Swept-sine distortion and phase utilities (Farina / Novak)](https://jmrplens.github.io/phonometry/guides/swept-sine-distortion/) 62 63 - [Block Processing](https://jmrplens.github.io/phonometry/guides/block-processing/) 63 64 - [Multichannel and Performance](https://jmrplens.github.io/phonometry/guides/multichannel/) ··· 10054 10055 detrend-off calibration), so a PSD, a coherence and an H1 computed with the 10055 10056 same segment length are mutually consistent bin by bin. The same cross-spectral 10056 10057 matrix underlies [multiple and partial coherence](https://jmrplens.github.io/phonometry/guides/miso-coherence/), which 10057 - extends the ordinary coherence to two or three correlated inputs and one 10058 + extends the ordinary coherence to several correlated inputs and one 10058 10059 output. 10059 10060 10060 10061 ## References ··· 10102 10103 Piersol, *Random Data* (4th ed., 2010, Chapter 7), resolve this for a 10103 10104 multiple-input/single-output (MISO) system with the **multiple** and 10104 10105 **partial** coherence functions. `miso_coherence` computes them from the same 10105 - Welch cross-spectral core as the rest of `phonometry.metrology`, for two or 10106 - three inputs and one output. 10106 + Welch cross-spectral core as the rest of `phonometry.metrology`, for several 10107 + correlated inputs and one output. 10107 10108 10108 10109 <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/miso_coherence_dark.svg"><img src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/miso_coherence.svg" alt="Two-panel figure. Top: the measured output autospectrum in dB with the coherent output contribution of two inputs shaded underneath; input 1 fills the low band and input 2 the high band, with the residual noise far below. Bottom: for the correlated second input, its ordinary coherence sits around 0.3 across the low band even though it drives no low-frequency path, while its partial coherence collapses to zero there once the first input is conditioned out; the multiple coherence stays near one except at the crossover null" width="82%"></picture> 10109 10110 ··· 10967 10968 behind the minimum-phase folding) and Section 13.3 with Figure 13.11 10968 10969 (envelope detection followed by DC removal, the structure of the 10969 10970 envelope spectrum). 10971 + 10972 + --- 10973 + 10974 + 10975 + <!-- source: docs/synchronous-averaging.md | canonical: https://jmrplens.github.io/phonometry/guides/synchronous-averaging/ --> 10976 + 10977 + # Time synchronous averaging (McFadden 1987) 10978 + 10979 + A rotating machine repeats its signature once per revolution. Buried in 10980 + broadband noise and in the tones of every other shaft, that repetitive 10981 + waveform is hard to read directly. **Time synchronous averaging** (TSA) 10982 + recovers it: given the period `T` of one revolution, it slices the record 10983 + into successive length-`T` blocks and averages them. Every component 10984 + synchronous with `T` reinforces; everything asynchronous, noise and the 10985 + harmonics of unrelated shafts, averages down. `time_synchronous_average` 10986 + implements the model of P. D. McFadden, *A revised model for the extraction 10987 + of periodic waveforms by time domain averaging* (Mechanical Systems and 10988 + Signal Processing 1(1), 1987, 83-95). 10989 + 10990 + <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/synchronous_average_dark.svg"><img src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/synchronous_average.svg" alt="Two-panel figure. Left: one noisy period of a signal in faint grey swings far above and below a smooth curve; the average of forty periods, in blue, lies almost exactly on the dashed red true waveform, so the asynchronous noise has been removed. Right: the comb-filter magnitude across the orders between 31 and 33, with unit-height teeth at the integer orders; for N = 20 a deep node falls exactly on the interfering tone marked at 32.05 orders, whereas the power-of-two N = 32 leaves a side lobe there and lets the tone through" width="92%"></picture> 10991 + 10992 + <details> 10993 + <summary>Show the code for this figure</summary> 10994 + 10995 + ```python 10996 + import matplotlib.pyplot as plt 10997 + import numpy as np 10998 + from phonometry import ( 10999 + comb_filter_response, 11000 + noise_signal, 11001 + time_synchronous_average, 11002 + ) 11003 + 11004 + fs = 8192.0 11005 + period = 1.0 / 32.0 # one revolution: 256 samples at this rate 11006 + m, n_avg = 256, 40 11007 + phase = np.arange((n_avg + 1) * m) / m 11008 + periodic = ( 11009 + np.cos(2.0 * np.pi * phase) 11010 + + 0.5 * np.cos(2.0 * np.pi * 3.0 * phase + 0.4) 11011 + - 0.3 * np.cos(2.0 * np.pi * 6.0 * phase) 11012 + ) 11013 + signal = periodic + noise_signal(fs, phase.size / fs, rms=0.9, seed=11) 11014 + res = time_synchronous_average(signal, fs, period, n_averages=n_avg) 11015 + 11016 + fig, (ax0, ax1) = plt.subplots(1, 2, figsize=(11, 4.6)) 11017 + t_ms = 1e3 * res.times 11018 + ax0.plot(t_ms, signal[:m], color="#cccccc", label="One noisy period") 11019 + ax0.plot(t_ms, res.period_waveform, color="#1f77b4", lw=1.8, 11020 + label=f"Average of N = {n_avg} periods") 11021 + ax0.plot(t_ms, periodic[:m], "--", color="#d62728", label="True waveform") 11022 + ax0.set_xlabel("Time [ms]"); ax0.set_ylabel("Amplitude"); ax0.legend() 11023 + 11024 + orders = np.linspace(31.0, 33.0, 4000) 11025 + freqs = orders / period 11026 + ax1.plot(orders, comb_filter_response(freqs, period, 32), color="#2ca02c", 11027 + label="N = 32 (power of two)") 11028 + ax1.plot(orders, comb_filter_response(freqs, period, 20), color="#1f77b4", 11029 + label="N = 20 (node on 32.05)") 11030 + ax1.axvline(32.05, color="#d62728", ls=":", label="Interfering tone") 11031 + ax1.set_xlabel("Frequency [orders]"); ax1.set_ylabel("Comb filter magnitude") 11032 + ax1.set_ylim(0, 1.05); ax1.legend() 11033 + plt.show() 11034 + ``` 11035 + 11036 + </details> 11037 + 11038 + The `.plot()` method draws the averaged waveform and the comb filter in one 11039 + call: 11040 + 11041 + ```python 11042 + res.plot() # English labels; res.plot(language="es") for Spanish 11043 + ``` 11044 + 11045 + ## 1. The average is a comb filter 11046 + 11047 + Averaging `N` successive periods (McFadden Eq. 5), 11048 + `a(t) = (1/N) Σ y(t + n·T)`, is, in the frequency domain, the multiplication 11049 + of the signal spectrum by a **comb filter** (Eq. 8). Its magnitude (Eq. 9) is 11050 + the Dirichlet kernel `|C(f)| = |sin(N·π·f·T) / (N·sin(π·f·T))|`. 11051 + 11052 + The comb has a **tooth** of unit height at every harmonic `k/T` (the orders 11053 + `f·T = 1, 2, 3, ...`), *independent of `N`*: components synchronous with the 11054 + period pass untouched. Between the teeth it has **nodes** at `j/(N·T)` for 11055 + every `j` that is not a multiple of `N`, where the response is exactly zero. 11056 + `comb_filter_response` evaluates this closed form directly: 11057 + 11058 + ```python 11059 + import numpy as np 11060 + from phonometry import comb_filter_response 11061 + 11062 + period = 1.0 / 32.0 11063 + comb_filter_response(np.array([16.0 / period]), period, 8) # 1.0 at a tooth 11064 + comb_filter_response(np.array([0.25 / period]), period, 2) # 1/sqrt(2) 11065 + comb_filter_response(np.array([0.5 / period]), period, 2) # 0.0 at a node 11066 + ``` 11067 + 11068 + `SynchronousAverageResult` carries the response over the first few harmonics 11069 + in `comb_frequencies` and `comb_response`, so the shape of the filter that 11070 + the average applied is available alongside the recovered waveform. 11071 + 11072 + ## 2. Noise falls as the square root of the number of averages 11073 + 11074 + Asynchronous noise of variance `σ²` averaged over `N` periods has residual 11075 + variance `σ²/N`: the residual standard deviation falls as `1/√N`, and the 11076 + amplitude signal-to-noise ratio improves by `√N`. That is a power reduction 11077 + of `10·log₁₀ N` dB, reported as `noise_reduction_db`, with the amplitude gain 11078 + `√N` as `amplitude_snr_gain`: 11079 + 11080 + ```python 11081 + res = time_synchronous_average(signal, fs, period, n_averages=100) 11082 + res.noise_reduction_db # 20.0 dB = 10*log10(100) 11083 + res.amplitude_snr_gain # 10.0 = sqrt(100) 11084 + ``` 11085 + 11086 + This law is the ideal one: it holds when the noise is uncorrelated from one 11087 + period to the next, so colored or synchronous noise that is correlated across 11088 + periods need not follow it. The `residual` (input minus the periodic 11089 + reconstruction over the analysed span) and its `residual_rms` therefore report 11090 + the noise actually left once the synchronous component is removed. 11091 + 11092 + ## 3. Choosing N to reject an interfering order 11093 + 11094 + Because a tooth sits on *every* integer order, TSA passes the harmonics of 11095 + the target shaft but also any tone that happens to fall on an integer order. 11096 + A tone at a *non-harmonic* order `q = f·T` is only attenuated by the comb, 11097 + not removed, and how much depends on where the nearest node lands. McFadden's 11098 + revised-model result is that such an interferer is best rejected by choosing 11099 + `N` so that a node falls exactly on it, i.e. the smallest `N` with `N·q` an 11100 + integer, rather than by the habitual power-of-two number of averages. An exact 11101 + node exists only when the order `q` is rational, so some finite `N` makes `N·q` 11102 + an integer; for an irrational or merely estimated order, choose the `N` whose 11103 + node falls nearest the interfering order. 11104 + 11105 + His own example is a tone at 32.05 orders. With `N = 20` the product 11106 + `20 · 32.05 = 641` is an integer, so a comb node lands on the tone and rejects 11107 + it by more than 100 dB. The common choice `N = 32` gives `32 · 32.05 = 1025.6`, 11108 + which sits on a side lobe: the tone is barely touched. The figure above shows 11109 + both combs around order 32; the end-to-end average confirms it: 11110 + 11111 + ```python 11112 + # true 8th-order component plus a strong interferer at 32.05 orders 11113 + phase = np.arange(41 * 256) / 256 11114 + signal = np.cos(2 * np.pi * 8.0 * phase) + 0.7 * np.cos(2 * np.pi * 32.05 * phase) 11115 + 11116 + leak_20 = time_synchronous_average(signal, fs, period, n_averages=20) 11117 + leak_32 = time_synchronous_average(signal, fs, period, n_averages=32) 11118 + # leak_20.period_waveform matches the clean 8th-order tone; leak_32 does not 11119 + ``` 11120 + 11121 + So a power-of-two number of averages, convenient as it is, is not in general 11122 + the optimal choice: the interfering orders present in the machine should set 11123 + `N`. 11124 + 11125 + ## 4. Non-integer samples per period 11126 + 11127 + When `fs·T` is an integer, the period boundaries fall on samples, the blocks 11128 + are sliced directly, and a noiseless periodic signal is recovered to machine 11129 + precision (`interpolated` is `False`). When `fs·T` is not an integer the 11130 + boundaries fall between samples; each block is then aligned to a common 11131 + integer grid by the band-limited fractional delay of 11132 + [`fractional_delay`](https://jmrplens.github.io/phonometry/guides/test-signals/), and the waveform is recovered within 11133 + that interpolation error (`interpolated` is `True`): 11134 + 11135 + ```python 11136 + fs = 8192.0 11137 + period = 1.0 / 31.7 # fs * period is not an integer 11138 + t = np.arange(int(40 * period * fs)) / fs 11139 + signal = np.cos(2.0 * np.pi * t / period) # one cycle per revolution 11140 + res = time_synchronous_average(signal, fs, period) 11141 + res.interpolated # True: fractional-delay alignment 11142 + res.samples_per_period # integer samples of one period 11143 + ``` 11144 + 11145 + By default the average uses as many whole periods as the record holds; pass 11146 + `n_averages` to fix the count (for the node-selection choice of §3), and 11147 + `n_harmonics` to set how many harmonics of `1/T` the returned comb response 11148 + spans. 11149 + 11150 + The band-limited alignment shares its kernel with the sub-sample 11151 + impulse-response alignment of the [test-signals page](https://jmrplens.github.io/phonometry/guides/test-signals/), and 11152 + the recovered waveform, being exactly one period, can be tiled to reconstruct 11153 + the synchronous part of the signal for subtraction or for order analysis. 10970 11154 10971 11155 --- 10972 11156 ··· 12198 12382 | `cross_spectral_density` | `function` | **Welch cross-spectral density with magnitude/phase errors (Eqs. 9.33/9.52).**<br>• `x`, `y`, `fs`<br>• `window`, `nperseg`, `overlap`, `scaling` as above | `res = cross_spectral_density(x, y, fs)`<br><br>• `CrossSpectralDensityResult` | 12199 12383 | `coherent_output_spectrum` | `function` | **Gvv = γ²·Gyy, noise remainder and spectral SNR (Eqs. 9.55–9.56, 9.73).**<br>• `x` (input), `y` (output), `fs`<br>• `window`, `nperseg`, `overlap`, `scaling` as above | `res = coherent_output_spectrum(x, y, fs)`<br><br>• `CoherentOutputSpectrumResult` | 12200 12384 | `fractional_octave_smoothing` | `function` | **Constant-power 1/n-octave smoothing of a spectrum.**<br>• `frequencies`, `values`<br>• `fraction`: the n of 1/n octave (Default: 3)<br>• `domain`: 'power'/'amplitude'/'db' (Default: 'power') | `s = fractional_octave_smoothing(f, psd, 3.0)`<br><br>• smoothed array, same domain; flat spectra unchanged | 12201 - | `miso_coherence` | `function` | **Multiple & partial coherence of a MISO system (Bendat & Piersol Ch. 7).**<br>• `inputs`: 2 or 3 input records (sequence of 1-D arrays or a (q, n) array), `output`, `fs`<br>• `order`: conditioning order (Default: 0..q−1)<br>• `window`, `nperseg`, `overlap`, `scaling` as above | `res = miso_coherence([x1, x2], y, fs)`<br><br>• `MISOCoherenceResult` | 12385 + | `miso_coherence` | `function` | **Multiple & partial coherence of a MISO system (Bendat & Piersol Ch. 7).**<br>• `inputs`: q input records, q ≥ 2 (sequence of 1-D arrays or a (q, n) array), `output`, `fs`<br>• `order`: conditioning order (Default: 0..q−1)<br>• `window`, `nperseg`, `overlap`, `scaling` as above | `res = miso_coherence([x1, x2], y, fs)`<br><br>• `MISOCoherenceResult` | 12202 12386 | `MISOCoherenceResult` | `dataclass` | **Multiple/partial coherence of q correlated inputs and one output.**<br>• `ordinary_coherence` (q×F), `multiple_coherence` γ²y:x, `partial_coherence` (q×F, conditioned per `order`)<br>• `coherent_output_spectra` Gvi (q×F, Σ Gvi + `noise_psd` = `output_psd`)<br>• `multiple_coherence_random_error` (Eq. 9.98), `coherent_output_random_error` (Eq. 9.100)<br>• `.dominant_input()`: per-band index of the strongest source<br>• `.plot()`: coherent output spectra + coherences | `res.multiple_coherence, res.dominant_input()` | 12203 12387 | `resolution_bias_error` | `function` | **First-order resolution bias at a resonance peak, εb ≈ −(Be/Br)²/3 (Eq. 8.141).**<br>• `resolution_bandwidth` Be [Hz]<br>• `half_power_bandwidth` Br [Hz] | `resolution_bias_error(1.0, 4.0) # -1/48` | 12204 12388 | `noise_signal` | `function` | **Colored Gaussian noise with an exact power-law PSD slope.**<br>• `fs`, `seconds` (Default: 1.0)<br>• `color`: 'white'/'pink'/'red'/'blue'/'violet' (0/−3.01/−6.02/+3.01/+6.02 dB/oct)<br>• `rms` (Default: 1.0)<br>• `seed`: bit-reproducible per seed | `pink = noise_signal(48000, 10.0, color='pink', seed=7)` | ··· 12230 12414 | `EnvelopeResult` | `dataclass` | **Envelope analysis.**<br>• `times` [s], `envelope`, `phase` [rad, unwrapped], `instantaneous_frequency` [Hz]<br>• `fs` (output rate), `signal`, `signal_fs`, `decimation_factor`, `antialias`<br>• `.plot()`: signal + envelope, instantaneous frequency | `res.envelope, res.instantaneous_frequency` | 12231 12415 | `envelope_spectrum` | `function` | **Amplitude spectrum of the envelope: modulations as lines (B&P 13.3).**<br>• `x`, `fs`<br>• `kind`: 'magnitude' (Default) / 'squared' (square-law detector, Fig. 13.11)<br>• `window` (Default: 'hann', coherent-gain corrected), `nfft`<br>• `remove_dc` (Default: True; mean kept in `mean_level`)<br>AM tone A0, m: line A0·m at fm ('magnitude') | `res = envelope_spectrum(x, fs)`<br><br>• `EnvelopeSpectrumResult` | 12232 12416 | `EnvelopeSpectrumResult` | `dataclass` | **Envelope spectrum.**<br>• `frequencies` [Hz], `amplitude` (line heights), `mean_level`, `kind`<br>• `times`, `envelope` (detector output), `window`, `remove_dc`, `fs`, `nfft`<br>• `.plot()`: envelope + spectrum | `res.amplitude, res.mean_level` | 12417 + | `time_synchronous_average` | `function` | **Extract a periodic waveform of known period by time domain averaging (McFadden 1987 Eq. 5).**<br>• `x`, `fs`, `period` [s] (one revolution)<br>• `n_averages`: whole periods to average (Default: as many as the record holds; choose N so N·q is integer to place a comb node on an interfering order q)<br>• `n_harmonics`: comb-response span (Default: 8)<br>Non-integer fs·period aligned by band-limited fractional delay | `res = time_synchronous_average(x, fs, 1/32)`<br><br>• `SynchronousAverageResult` | 12418 + | `SynchronousAverageResult` | `dataclass` | **Time synchronous average.**<br>• `period_waveform`, `times` [s], `residual`, `residual_rms`<br>• `n_averages`, `samples_per_period`, `period`, `fs`, `interpolated`<br>• `noise_reduction_db` = 10·log₁₀N, `amplitude_snr_gain` = √N<br>• `comb_frequencies` [Hz], `comb_response` (\|C(f)\|)<br>• `.plot()`: averaged waveform + comb filter | `res.period_waveform, res.noise_reduction_db` | 12419 + | `comb_filter_response` | `function` | **Magnitude of the N-period synchronous-averaging comb filter (McFadden 1987 Eq. 8).**<br>• `frequencies` [Hz], `period` [s], `n_averages`<br>\|C(f)\| = \|sin(N·π·f·T)/(N·sin(π·f·T))\|: unit teeth at harmonics k/T, nodes at j/(N·T) | `c = comb_filter_response(freqs, 1/32, 20)` | 12233 12420 | `regularized_inverse_filter` | `function` | **Kirkeby frequency-dependent regularized inversion (Kirkeby & Nelson 1999 Eq. (17)).**<br>• `response`: measured IR (array or `ImpulseResponseResult`; its `fs` rides along)<br>• `fs`: Sample rate [Hz]<br>• `f_range`: (f1, f2) equalized to unity (Required)<br>• `regularization_inside` (Default: 1e-6) / `regularization_outside` (Default: 1.0), fractions of max\|H\|²<br>• `transition_octaves` (Default: 1/3), `n_fft`, `delay` (Default: n_fft//2) | `inv = regularized_inverse_filter(ir, f_range=(100, 10000))`<br><br>• `InverseFilterResult` | 12234 12421 | `InverseFilterResult` | `dataclass` | **Regularized inverse filter.**<br>• `inverse` (time domain), `spectrum` (with modeling delay), `response_spectrum`, `regularization` = ε(f), `frequencies`, `f_range`, `delay`, `fs`<br>• `flatness_db`: worst in-band deviation of \|H·H_inv\| from 0 dB<br>• `max_gain_db`: out-of-band boost (≤ the 1/(2√ε) cap)<br>• `.apply(x)`: equalize, delay removed; `.plot()` | `flat = inv.apply(recording)` | 12235 12422 | `cepstrum` | `function` | **Power/real/complex cepstrum (Havelock Chs. 27/87).**<br>• `x`, `fs`<br>• `kind`: 'power' (Default, IDFT of ln\|X\|²) / 'real' (ln\|X\|) / 'complex' (invertible, phase unwrapped)<br>• `nfft`: even, ≥ record (Default: record length)<br>Echo a at t0: rahmonics (−1)^(n+1)·aⁿ/n at n·t0 | `res = cepstrum(x, fs, kind='complex')`<br><br>• `CepstrumResult` |
+1
llms.txt
··· 58 58 - [Correlation, time delay and envelope (Bendat & Piersol / Knapp & Carter)](https://jmrplens.github.io/phonometry/guides/correlation-delay/) 59 59 - [Test signals and sample-rate tools (IEC 60268-1)](https://jmrplens.github.io/phonometry/guides/test-signals/) 60 60 - [Cepstrum, echoes and the envelope spectrum (Havelock / Bendat & Piersol)](https://jmrplens.github.io/phonometry/guides/cepstrum-echoes/) 61 + - [Time synchronous averaging (McFadden 1987)](https://jmrplens.github.io/phonometry/guides/synchronous-averaging/) 61 62 - [Swept-sine distortion and phase utilities (Farina / Novak)](https://jmrplens.github.io/phonometry/guides/swept-sine-distortion/) 62 63 - [Block Processing](https://jmrplens.github.io/phonometry/guides/block-processing/) 63 64 - [Multichannel and Performance](https://jmrplens.github.io/phonometry/guides/multichannel/)
+1
scripts/api_taxonomy.py
··· 278 278 "phonometry.metrology.signals", 279 279 "phonometry.metrology.phase", 280 280 "phonometry.metrology.cepstrum", 281 + "phonometry.metrology.synchronous_average", 281 282 "phonometry.metrology.inversion", 282 283 ), 283 284 ),
+84
scripts/conformance_report.py
··· 4918 4918 4919 4919 4920 4920 # =========================================================================== 4921 + # Time synchronous averaging (McFadden 1987) 4922 + # =========================================================================== 4923 + _TSA = "Time synchronous averaging (McFadden 1987)" 4924 + 4925 + 4926 + @register( 4927 + _TSA, 4928 + r"McFadden 1987 Eq. 8 / Eq. 9: comb filter \|C(f)\| at a harmonic k/T", 4929 + "Comb-filter tooth height at a harmonic equals unity (any N)", 4930 + ) 4931 + def _chk_tsa_comb_tooth() -> Outcome: 4932 + period = 1.0 / 32.0 4933 + value = float(ph.comb_filter_response(np.array([16.0 / period]), period, 8)[0]) 4934 + return numeric(1.0, value, 1e-10, places=8) 4935 + 4936 + 4937 + @register( 4938 + _TSA, 4939 + "McFadden 1987 Eq. 8: comb filter one quarter-order from a tooth, N = 2", 4940 + "Comb-filter magnitude = 1/sqrt(2) at order 0.25", 4941 + ) 4942 + def _chk_tsa_comb_midbin() -> Outcome: 4943 + period = 1.0 / 32.0 4944 + value = float( 4945 + ph.comb_filter_response(np.array([0.25 / period]), period, 2)[0] 4946 + ) 4947 + return numeric(1.0 / math.sqrt(2.0), value, 1e-10, places=8) 4948 + 4949 + 4950 + @register( 4951 + _TSA, 4952 + "McFadden 1987 Sec. 4 (Fig. 5): node selection, tone at 32.05 orders", 4953 + r"N = 20 places a comb node on 32.05 orders (\|C\| = 0), not the power-of-2 N = 32", 4954 + ) 4955 + def _chk_tsa_node_selection() -> Outcome: 4956 + period = 1.0 / 32.0 4957 + freq = np.array([32.05 / period]) 4958 + c20 = float(ph.comb_filter_response(freq, period, 20)[0]) 4959 + c32 = float(ph.comb_filter_response(freq, period, 32)[0]) 4960 + if not c32 > 0.15: # sanity: the power-of-two choice does not reject it 4961 + return numeric(0.0, c32, 0.0, places=8) 4962 + return numeric(0.0, c20, 1e-10, places=10) 4963 + 4964 + 4965 + @register( 4966 + _TSA, 4967 + "McFadden 1987 Eq. 5: exact recovery, integer samples per period", 4968 + "Noiseless periodic waveform (M = 256) recovered to machine precision", 4969 + ) 4970 + def _chk_tsa_exact_recovery() -> Outcome: 4971 + fs = 8192.0 4972 + period = 1.0 / 32.0 4973 + m = 256 4974 + phase = np.arange(m) / m 4975 + one = np.cos(2.0 * np.pi * phase) + 0.5 * np.cos( 4976 + 2.0 * np.pi * 3.0 * phase + 0.4 4977 + ) 4978 + res = ph.time_synchronous_average(np.tile(one, 24), fs, period) 4979 + err = float(np.max(np.abs(res.period_waveform - one))) 4980 + return numeric(0.0, err, 1e-10, places=12) 4981 + 4982 + 4983 + @register( 4984 + _TSA, 4985 + "McFadden 1987 Sec. 1: asynchronous-noise variance reduced by 1/N", 4986 + "Residual noise std of the average falls as sigma/sqrt(N), N = 64", 4987 + ) 4988 + def _chk_tsa_sqrt_n_law() -> Outcome: 4989 + fs = 8192.0 4990 + period = 1.0 / 32.0 4991 + m = 256 4992 + n_avg = 64 4993 + phase = np.arange(m) / m 4994 + one = np.cos(2.0 * np.pi * phase) 4995 + rng = np.random.default_rng(2024) 4996 + noise = rng.standard_normal(n_avg * m) 4997 + res = ph.time_synchronous_average( 4998 + np.tile(one, n_avg) + noise, fs, period, n_averages=n_avg 4999 + ) 5000 + measured = float(np.std(res.period_waveform - one)) 5001 + return numeric(1.0 / math.sqrt(n_avg), measured, 0.15, rel=True, places=5) 5002 + 5003 + 5004 + # =========================================================================== 4921 5005 # Data qualification and Rice statistics (Bendat & Piersol Chs. 4, 5, 10) 4922 5006 # =========================================================================== 4923 5007 _RANDOM_DATA = "Data qualification and Rice statistics (Bendat & Piersol)"
+101
scripts/generate_graphs.py
··· 721 721 "appears as one line at exactly $f_m$": 722 722 "la portadora está en 1 kHz; su modulación de amplitud\n" 723 723 "aparece como una línea exactamente en $f_m$", 724 + # Time synchronous averaging (McFadden 1987) 725 + "Periodic Waveform Extracted from Noise": 726 + "Forma de onda periódica extraída del ruido", 727 + "One noisy period": "Un período ruidoso", 728 + "Average of N = 40 periods": "Promedio de N = 40 períodos", 729 + "True periodic waveform": "Forma de onda periódica verdadera", 730 + "averaging N periods lowers the asynchronous\n" 731 + "noise by $\\sqrt{N}$ in amplitude": 732 + "promediar N períodos reduce el ruido asíncrono\n" 733 + "en $\\sqrt{N}$ en amplitud", 734 + "Rejecting a Tone by Choosing N (McFadden 1987)": 735 + "Rechazo de un tono eligiendo N (McFadden 1987)", 736 + "N = 32 (power of two)": "N = 32 (potencia de dos)", 737 + "N = 20 (node on 32.05)": "N = 20 (nodo en 32,05)", 738 + "Interfering tone (32.05)": "Tono interferente (32,05)", 739 + "Frequency [orders]": "Frecuencia [órdenes]", 740 + "Comb filter magnitude": "Magnitud del filtro peine", 741 + "N = 20 puts a node on 32.05 orders and removes\n" 742 + "it; the power-of-two N = 32 lets it through": 743 + "N = 20 sitúa un nodo en 32,05 órdenes y lo\n" 744 + "elimina; la potencia de dos N = 32 lo deja pasar", 724 745 # Multiple-input coherence (Bendat & Piersol Ch. 7) 725 746 "Multiple-Input Coherence: Which Source Dominates Each Band " 726 747 "(Bendat & Piersol Ch. 7)": ··· 4527 4548 color=COLOR_FG) 4528 4549 plt.tight_layout() 4529 4550 save_figure(output_dir, "envelope_spectrum.svg") 4551 + plt.close() 4552 + 4553 + 4554 + def generate_synchronous_average(output_dir: str) -> None: 4555 + """TSA: a periodic waveform pulled from noise, and the comb filter.""" 4556 + print("Generating synchronous_average...") 4557 + from phonometry import ( 4558 + comb_filter_response, 4559 + noise_signal, 4560 + time_synchronous_average, 4561 + ) 4562 + 4563 + fs = 8192.0 4564 + period = 1.0 / 32.0 # one revolution: 256 samples at this rate 4565 + m = 256 4566 + n_avg = 40 4567 + phase = np.arange((n_avg + 1) * m) / m 4568 + periodic = ( 4569 + np.cos(2.0 * np.pi * phase) 4570 + + 0.5 * np.cos(2.0 * np.pi * 3.0 * phase + 0.4) 4571 + - 0.3 * np.cos(2.0 * np.pi * 6.0 * phase) 4572 + ) 4573 + signal = periodic + noise_signal(fs, phase.size / fs, rms=0.9, seed=11) 4574 + res = time_synchronous_average(signal, fs, period, n_averages=n_avg) 4575 + true_one = periodic[:m] 4576 + 4577 + fig, (ax0, ax1) = plt.subplots(1, 2, figsize=(11, 4.6)) 4578 + 4579 + # Panel (a): one noisy period against the recovered average. 4580 + t_ms = 1e3 * res.times 4581 + ax0.plot(t_ms, signal[:m], color=COLOR_GRID, linewidth=1.0, 4582 + label="One noisy period") 4583 + ax0.plot(t_ms, res.period_waveform, color=COLOR_PRIMARY, linewidth=1.8, 4584 + label=f"Average of N = {n_avg} periods") 4585 + ax0.plot(t_ms, true_one, color=COLOR_SECONDARY, linestyle="--", 4586 + linewidth=1.2, label="True periodic waveform") 4587 + ax0.set_xlim(0.0, 1e3 * period) 4588 + ax0.set_xlabel("Time [ms]") 4589 + ax0.set_ylabel("Amplitude") 4590 + ax0.set_title("Periodic Waveform Extracted from Noise", 4591 + fontweight="bold", pad=10) 4592 + ax0.grid(color=COLOR_GRID, linestyle="--", alpha=0.5) 4593 + ax0.set_axisbelow(True) 4594 + ax0.legend(loc="upper right", fontsize=8) 4595 + ax0.text(0.02, 0.03, 4596 + "averaging N periods lowers the asynchronous\n" 4597 + "noise by $\\sqrt{N}$ in amplitude", 4598 + transform=ax0.transAxes, va="bottom", ha="left", fontsize=8.5, 4599 + color=COLOR_FG) 4600 + 4601 + # Panel (b): comb filter, node selection at 32.05 orders. 4602 + orders = np.linspace(31.0, 33.0, 4000) 4603 + freqs = orders / period 4604 + c20 = comb_filter_response(freqs, period, 20) 4605 + c32 = comb_filter_response(freqs, period, 32) 4606 + ax1.plot(orders, c32, color=COLOR_TERTIARY, linewidth=1.2, 4607 + label="N = 32 (power of two)") 4608 + ax1.plot(orders, c20, color=COLOR_PRIMARY, linewidth=1.4, 4609 + label="N = 20 (node on 32.05)") 4610 + ax1.axvline(32.05, color=COLOR_SECONDARY, linestyle=":", linewidth=1.3, 4611 + label="Interfering tone (32.05)") 4612 + ax1.set_xlim(31.0, 33.0) 4613 + ax1.set_ylim(0.0, 1.05) 4614 + ax1.set_xlabel("Frequency [orders]") 4615 + ax1.set_ylabel("Comb filter magnitude") 4616 + ax1.set_title("Rejecting a Tone by Choosing N (McFadden 1987)", 4617 + fontweight="bold", pad=10) 4618 + ax1.grid(color=COLOR_GRID, linestyle="--", alpha=0.5) 4619 + ax1.set_axisbelow(True) 4620 + ax1.legend(loc="upper right", fontsize=8) 4621 + ax1.text(0.02, 0.55, 4622 + "N = 20 puts a node on 32.05 orders and removes\n" 4623 + "it; the power-of-two N = 32 lets it through", 4624 + transform=ax1.transAxes, va="top", ha="left", fontsize=8.5, 4625 + color=COLOR_FG) 4626 + 4627 + plt.tight_layout() 4628 + save_figure(output_dir, "synchronous_average.svg") 4530 4629 plt.close() 4531 4630 4532 4631 ··· 8543 8642 # Chs. 27/87) and the envelope spectrum of an AM tone (B&P 13.3). 8544 8643 generate_cepstrum_echo, 8545 8644 generate_envelope_spectrum, 8645 + # Time synchronous averaging of a periodic waveform in noise (McFadden 1987). 8646 + generate_synchronous_average, 8546 8647 # Multiple-input/output coherence (Bendat & Piersol Ch. 7). 8547 8648 generate_miso_coherence, 8548 8649 # Data qualification: reverse arrangement stationarity test and the Rice
+1
scripts/generate_llms.py
··· 49 49 ("correlation-delay.md", "guides/correlation-delay"), 50 50 ("test-signals.md", "guides/test-signals"), 51 51 ("cepstrum-echoes.md", "guides/cepstrum-echoes"), 52 + ("synchronous-averaging.md", "guides/synchronous-averaging"), 52 53 ("swept-sine-distortion.md", "guides/swept-sine-distortion"), 53 54 ("block-processing.md", "guides/block-processing"), 54 55 ("multichannel.md", "guides/multichannel"),
+1
site/astro.config.mjs
··· 361 361 'guides/miso-coherence', 362 362 'guides/time-frequency', 363 363 'guides/cepstrum-echoes', 364 + 'guides/synchronous-averaging', 364 365 'guides/correlation-delay', 365 366 'guides/test-signals', 366 367 'guides/system-measurement',
+3 -3
site/src/content/docs/es/guides/miso-coherence.mdx
··· 1 1 --- 2 2 title: "Coherencia múltiple y parcial" 3 - description: "Las funciones de coherencia de sistemas de entradas múltiples y salida única de Bendat y Piersol: coherencia ordinaria, múltiple y parcial de dos o tres fuentes correladas que excitan una respuesta, el condicionamiento por eliminación de Gauss que separa una causa real de una fuente que solo correla con ella, y los espectros de salida coherente parciales que indican qué fuente domina cada banda." 3 + description: "Las funciones de coherencia de sistemas de entradas múltiples y salida única de Bendat y Piersol: coherencia ordinaria, múltiple y parcial de varias fuentes correladas que excitan una respuesta, el condicionamiento por eliminación de Gauss que separa una causa real de una fuente que solo correla con ella, y los espectros de salida coherente parciales que indican qué fuente domina cada banda." 4 4 references: 5 5 - type: book 6 6 authors: ["Bendat, J. S.", "Piersol, A. G."] ··· 22 22 capítulo 7), lo resuelven para un sistema de entradas múltiples y salida única 23 23 (MISO) con las funciones de coherencia **múltiple** y **parcial**. 24 24 `miso_coherence` las calcula desde el mismo núcleo de espectros cruzados de 25 - Welch que el resto de `phonometry.metrology`, para dos o tres entradas y una 26 - salida. 25 + Welch que el resto de `phonometry.metrology`, para varias entradas correladas 26 + y una salida. 27 27 28 28 <ThemeImage src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/miso_coherence.svg" alt="Figura de dos paneles. Arriba: el autoespectro de salida medido en dB con la contribución de salida coherente de dos entradas sombreada debajo; la entrada 1 llena la banda baja hasta unos 400 Hz y la entrada 2 la banda alta por encima de unos 1,5 kHz, con el ruido residual muy por debajo. Abajo: para la segunda entrada correlada, su coherencia ordinaria ronda 0,3 en toda la banda baja aunque no excita ningún camino de baja frecuencia, mientras que su coherencia parcial se desploma a cero ahí una vez que se condiciona fuera la primera entrada; la coherencia múltiple se mantiene cerca de uno salvo en el nulo del cruce." width="88%" loading="eager" /> 29 29
+7 -1
site/src/content/docs/es/guides/sections/core-signal-analysis.md
··· 80 80 el espectro de salida coherente con la SNR espectral, suavizado en 1/n de 81 81 octava y generadores de ruido de colores con pendiente exacta. 82 82 - [Coherencia múltiple y parcial](/phonometry/es/guides/miso-coherence/): las 83 - funciones de coherencia de entradas múltiples para dos o tres fuentes 83 + funciones de coherencia de entradas múltiples para varias fuentes 84 84 correladas y una salida, con el condicionamiento que distingue una causa 85 85 real de una fuente que solo correla con ella, y los espectros de salida 86 86 coherente parciales que indican qué fuente domina cada banda. ··· 94 94 cepstral, liftering paso bajo/paso alto de un espectro logarítmico, y el 95 95 espectro de la envolvente que convierte las modulaciones de amplitud en 96 96 líneas discretas. 97 + - [Promediado síncrono en el tiempo](/phonometry/es/guides/synchronous-averaging/): 98 + extracción de una forma de onda periódica de período conocido por promediado 99 + en el dominio del tiempo, el filtro peine que lo describe en el dominio de la 100 + frecuencia, la ley de reducción de ruido en raíz cuadrada, y la elección del 101 + número de promedios que sitúa un nodo del peine sobre un orden interferente 102 + (McFadden 1987). 97 103 - [Correlación, retardo y envolvente](/phonometry/es/guides/correlation-delay/): 98 104 estimaciones de correlación con los errores aleatorios de Bendat y 99 105 Piersol, estimación del retardo por correlación directa, pendiente de fase
+14 -2
site/src/content/docs/es/guides/sections/signals-spectra.md
··· 25 25 pendiente exacta en ley de potencias. 26 26 [La coherencia múltiple y parcial](/phonometry/es/guides/miso-coherence/) lleva 27 27 esa misma maquinaria del espectro cruzado a varias fuentes correladas a la vez: 28 - a partir de dos o tres entradas y una salida separa la coherencia que una 28 + a partir de varias entradas correladas y una salida separa la coherencia que una 29 29 fuente aporta de verdad de la parte que solo comparte con otra, y sus espectros 30 30 de salida coherente parciales indican qué fuente domina cada banda. 31 31 ··· 43 43 pico cepstral, el liftering separa un espectro logarítmico en envolvente 44 44 suave y estructura fina, y el espectro de la envolvente convierte las 45 45 modulaciones de amplitud en líneas discretas en la frecuencia de modulación. 46 + [El promediado síncrono en el tiempo](/phonometry/es/guides/synchronous-averaging/) 47 + extrae una forma de onda repetitiva de período conocido del ruido asíncrono 48 + promediando períodos sucesivos: el ruido residual cae como la raíz cuadrada 49 + del número de promedios, y elegir ese número para situar un nodo del filtro 50 + peine sobre un orden interferente lo rechaza mucho mejor que la potencia de 51 + dos habitual. 46 52 47 53 [Correlación, retardo y envolvente](/phonometry/es/guides/correlation-delay/) 48 54 es la mitad del dominio del tiempo. La autocorrelación y la correlación ··· 88 94 generadores de ruido de colores con pendiente exacta. 89 95 - [Coherencia múltiple y parcial](/phonometry/es/guides/miso-coherence/): 90 96 las funciones de coherencia de entradas múltiples de Bendat y Piersol para 91 - dos o tres fuentes correladas y una salida, con el condicionamiento por 97 + varias fuentes correladas y una salida, con el condicionamiento por 92 98 eliminación de Gauss que distingue una causa real de una fuente que solo 93 99 correla con ella, y los espectros de salida coherente parciales que indican 94 100 qué fuente domina cada banda. ··· 101 107 de ecos con el coeficiente de reflexión leído en el pico, liftering paso 102 108 bajo/paso alto, la ida y vuelta homomórfica y el espectro de la envolvente 103 109 de las modulaciones de amplitud. 110 + - [Promediado síncrono en el tiempo](/phonometry/es/guides/synchronous-averaging/): 111 + extracción de una forma de onda periódica de período conocido por promediado 112 + en el dominio del tiempo, el filtro peine que describe la operación en el 113 + dominio de la frecuencia, la ley de reducción de ruido en raíz cuadrada, y la 114 + elección del número de promedios que sitúa un nodo del peine sobre un orden 115 + interferente (McFadden 1987). 104 116 - [Correlación, retardo y envolvente](/phonometry/es/guides/correlation-delay/): 105 117 estimaciones de correlación con sus errores aleatorios, estimación del 106 118 retardo por correlación directa, pendiente de fase y ponderaciones GCC,
+1 -1
site/src/content/docs/es/guides/spectral-analysis.mdx
··· 508 508 PSD, una coherencia y una H1 calculadas con la misma longitud de segmento 509 509 son mutuamente consistentes bin a bin. La misma matriz de espectros cruzados 510 510 sustenta la [coherencia múltiple y parcial](/phonometry/es/guides/miso-coherence/), 511 - que extiende la coherencia ordinaria a dos o tres entradas correladas y una 511 + que extiende la coherencia ordinaria a varias entradas correladas y una 512 512 salida.
+202
site/src/content/docs/es/guides/synchronous-averaging.mdx
··· 1 + --- 2 + title: "Promediado síncrono en el tiempo" 3 + description: "Extracción de una forma de onda repetitiva de período conocido del ruido asíncrono mediante promediado en el dominio del tiempo (McFadden 1987): el filtro peine que describe la operación en el dominio de la frecuencia, la ley de reducción de ruido en raíz cuadrada, la elección del número de promedios que sitúa un nodo del peine sobre un orden interferente, y la alineación de banda limitada usada cuando el período no cae en un número entero de muestras." 4 + references: 5 + - type: article 6 + authors: ["McFadden, P. D."] 7 + year: 1987 8 + title: "A revised model for the extraction of periodic waveforms by time domain averaging" 9 + journal: "Mechanical Systems and Signal Processing 1(1), 83-95" 10 + doi: "10.1016/0888-3270(87)90043-2" 11 + note: "El modelo de filtro peine del promediado síncrono (Ec. 8, magnitud Ec. 9), el modelo revisado de registro finito que produce un resultado exactamente periódico, y la observación de que un orden interferente no armónico se rechaza mejor eligiendo el número de promedios de modo que un nodo del peine caiga sobre él, no con la potencia de dos habitual." 12 + --- 13 + 14 + import ThemeImage from '../../../../components/ThemeImage.astro'; 15 + 16 + Una máquina rotativa repite su firma una vez por revolución. Enterrada en el 17 + ruido de banda ancha y en los tonos del resto de los ejes, esa forma de onda 18 + repetitiva es difícil de leer directamente. El **promediado síncrono en el 19 + tiempo** (TSA) la recupera: dado el período `T` de una revolución, trocea el 20 + registro en bloques sucesivos de longitud `T` y los promedia. Toda componente 21 + síncrona con `T` se refuerza; todo lo asíncrono, el ruido y los armónicos de 22 + ejes no relacionados, se promedia hasta desaparecer. `time_synchronous_average` 23 + implementa el modelo de P. D. McFadden, *A revised model for the extraction of 24 + periodic waveforms by time domain averaging* (1987). 25 + 26 + <ThemeImage src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/synchronous_average_es.svg" alt="Figura de dos paneles. Izquierda: un período ruidoso de una señal en gris tenue oscila muy por encima y por debajo de una curva suave; el promedio de cuarenta períodos, en azul, se sitúa casi exactamente sobre la forma de onda verdadera en rojo discontinuo, de modo que el ruido asíncrono se ha eliminado. Derecha: la magnitud del filtro peine entre los órdenes 31 y 33, con dientes de altura unidad en los órdenes enteros; para N = 20 un nodo profundo cae exactamente sobre el tono interferente marcado en 32,05 órdenes, mientras que la potencia de dos N = 32 deja allí un lóbulo lateral y deja pasar el tono." width="92%" loading="eager" /> 27 + 28 + <details> 29 + <summary>Ver el código de esta figura</summary> 30 + 31 + ```python 32 + import matplotlib.pyplot as plt 33 + import numpy as np 34 + from phonometry import ( 35 + comb_filter_response, 36 + noise_signal, 37 + time_synchronous_average, 38 + ) 39 + 40 + fs = 8192.0 41 + period = 1.0 / 32.0 # una revolución: 256 muestras a esta frecuencia 42 + m, n_avg = 256, 40 43 + phase = np.arange((n_avg + 1) * m) / m 44 + periodic = ( 45 + np.cos(2.0 * np.pi * phase) 46 + + 0.5 * np.cos(2.0 * np.pi * 3.0 * phase + 0.4) 47 + - 0.3 * np.cos(2.0 * np.pi * 6.0 * phase) 48 + ) 49 + signal = periodic + noise_signal(fs, phase.size / fs, rms=0.9, seed=11) 50 + res = time_synchronous_average(signal, fs, period, n_averages=n_avg) 51 + 52 + fig, (ax0, ax1) = plt.subplots(1, 2, figsize=(11, 4.6)) 53 + t_ms = 1e3 * res.times 54 + ax0.plot(t_ms, signal[:m], color="#cccccc", label="Un período ruidoso") 55 + ax0.plot(t_ms, res.period_waveform, color="#1f77b4", lw=1.8, 56 + label=f"Promedio de N = {n_avg} períodos") 57 + ax0.plot(t_ms, periodic[:m], "--", color="#d62728", label="Forma verdadera") 58 + ax0.set_xlabel("Tiempo [ms]"); ax0.set_ylabel("Amplitud"); ax0.legend() 59 + 60 + orders = np.linspace(31.0, 33.0, 4000) 61 + freqs = orders / period 62 + ax1.plot(orders, comb_filter_response(freqs, period, 32), color="#2ca02c", 63 + label="N = 32 (potencia de dos)") 64 + ax1.plot(orders, comb_filter_response(freqs, period, 20), color="#1f77b4", 65 + label="N = 20 (nodo en 32,05)") 66 + ax1.axvline(32.05, color="#d62728", ls=":", label="Tono interferente") 67 + ax1.set_xlabel("Frecuencia [órdenes]"); ax1.set_ylabel("Magnitud del filtro peine") 68 + ax1.set_ylim(0, 1.05); ax1.legend() 69 + plt.show() 70 + ``` 71 + 72 + </details> 73 + 74 + El método `.plot()` dibuja la forma de onda promediada y el filtro peine en una 75 + sola llamada: 76 + 77 + ```python 78 + res.plot() # etiquetas en inglés; res.plot(language="es") en español 79 + ``` 80 + 81 + ## 1. El promedio es un filtro peine 82 + 83 + Promediar `N` períodos sucesivos (McFadden Ec. 5), 84 + 85 + $$ 86 + a(t) = \frac{1}{N} \sum_{n=0}^{N-1} y(t + n\,T), 87 + $$ 88 + 89 + es, en el dominio de la frecuencia, la multiplicación del espectro de la señal 90 + por un **filtro peine** (Ec. 8). Su magnitud (Ec. 9) es el núcleo de Dirichlet 91 + 92 + $$ 93 + |C(f)| = \left| \frac{\sin(N\pi f T)}{N \sin(\pi f T)} \right| . 94 + $$ 95 + 96 + El peine tiene un **diente** de altura unidad en cada armónico `k/T` (los 97 + órdenes `f·T = 1, 2, 3, ...`), *independiente de `N`*: las componentes 98 + síncronas con el período pasan intactas. Entre los dientes tiene **nodos** en 99 + `j/(N·T)` para todo `j` que no sea múltiplo de `N`, donde la respuesta es 100 + exactamente cero. `comb_filter_response` evalúa esta forma cerrada 101 + directamente: 102 + 103 + ```python 104 + import numpy as np 105 + from phonometry import comb_filter_response 106 + 107 + period = 1.0 / 32.0 108 + comb_filter_response(np.array([16.0 / period]), period, 8) # 1.0 en un diente 109 + comb_filter_response(np.array([0.25 / period]), period, 2) # 1/sqrt(2) 110 + comb_filter_response(np.array([0.5 / period]), period, 2) # 0.0 en un nodo 111 + ``` 112 + 113 + `SynchronousAverageResult` lleva la respuesta sobre los primeros armónicos en 114 + `comb_frequencies` y `comb_response`, de modo que la forma del filtro que el 115 + promedio aplicó está disponible junto a la forma de onda recuperada. 116 + 117 + ## 2. El ruido cae como la raíz cuadrada del número de promedios 118 + 119 + El ruido asíncrono de varianza $\sigma^2$ promediado sobre `N` períodos tiene 120 + varianza residual $\sigma^2/N$: la desviación típica residual cae como 121 + $1/\sqrt{N}$, y la relación señal-ruido en amplitud mejora en $\sqrt{N}$. Eso 122 + es una reducción de potencia de $10\log_{10} N$ dB, reportada como 123 + `noise_reduction_db`, con la ganancia en amplitud $\sqrt{N}$ como 124 + `amplitude_snr_gain`: 125 + 126 + ```python 127 + res = time_synchronous_average(signal, fs, period, n_averages=100) 128 + res.noise_reduction_db # 20.0 dB = 10*log10(100) 129 + res.amplitude_snr_gain # 10.0 = sqrt(100) 130 + ``` 131 + 132 + Esta ley es la ideal: se cumple cuando el ruido no está correlado de un período 133 + al siguiente, de modo que el ruido de color o síncrono correlado entre períodos 134 + no tiene por qué seguirla. El `residual` (entrada menos la reconstrucción 135 + periódica sobre el tramo analizado) y su `residual_rms` reportan, por tanto, el 136 + ruido realmente restante una vez eliminada la componente síncrona. 137 + 138 + ## 3. Elegir N para rechazar un orden interferente 139 + 140 + Como hay un diente sobre *todos* los órdenes enteros, el TSA deja pasar los 141 + armónicos del eje objetivo pero también cualquier tono que caiga en un orden 142 + entero. Un tono en un orden *no armónico* `q = f·T` solo es atenuado por el 143 + peine, no eliminado, y cuánto depende de dónde caiga el nodo más cercano. El 144 + resultado del modelo revisado de McFadden es que tal interferente se rechaza 145 + mejor eligiendo `N` de modo que un nodo caiga exactamente sobre él, es decir, 146 + el menor `N` con `N·q` entero, en vez de con el número de promedios potencia 147 + de dos habitual. Un nodo exacto solo existe cuando el orden `q` es racional, de 148 + modo que algún `N` finito hace `N·q` entero; para un orden irracional o solo 149 + estimado, elige el `N` cuyo nodo caiga más cerca del orden interferente. 150 + 151 + Su propio ejemplo es un tono en 32,05 órdenes. Con `N = 20` el producto 152 + `20 · 32,05 = 641` es entero, así que un nodo del peine cae sobre el tono y lo 153 + rechaza en más de 100 dB. La elección común `N = 32` da 154 + `32 · 32,05 = 1025,6`, que se sitúa en un lóbulo lateral: el tono apenas se 155 + toca. La figura de arriba muestra ambos peines en torno al orden 32; el 156 + promedio de extremo a extremo lo confirma: 157 + 158 + ```python 159 + # 8.o orden verdadero más un interferente fuerte en 32,05 órdenes 160 + phase = np.arange(41 * 256) / 256 161 + signal = np.cos(2 * np.pi * 8.0 * phase) + 0.7 * np.cos(2 * np.pi * 32.05 * phase) 162 + 163 + leak_20 = time_synchronous_average(signal, fs, period, n_averages=20) 164 + leak_32 = time_synchronous_average(signal, fs, period, n_averages=32) 165 + # leak_20.period_waveform coincide con el 8.o orden limpio; leak_32 no 166 + ``` 167 + 168 + Así que un número de promedios potencia de dos, por conveniente que sea, no es 169 + en general la elección óptima: los órdenes interferentes presentes en la 170 + máquina deberían fijar `N`. 171 + 172 + ## 4. Muestras por período no enteras 173 + 174 + Cuando `fs·T` es entero, las fronteras de período caen sobre muestras, los 175 + bloques se trocean directamente y una señal periódica sin ruido se recupera 176 + con precisión de máquina (`interpolated` es `False`). Cuando `fs·T` no es 177 + entero las fronteras caen entre muestras; cada bloque se alinea entonces a una 178 + malla entera común mediante el retardo fraccionario de banda limitada de 179 + [`fractional_delay`](/phonometry/es/guides/test-signals/), y la forma de onda 180 + se recupera dentro de ese error de interpolación (`interpolated` es `True`): 181 + 182 + ```python 183 + fs = 8192.0 184 + period = 1.0 / 31.7 # fs * period no es entero 185 + t = np.arange(int(40 * period * fs)) / fs 186 + signal = np.cos(2.0 * np.pi * t / period) # un ciclo por revolución 187 + res = time_synchronous_average(signal, fs, period) 188 + res.interpolated # True: alineación por retardo fraccionario 189 + res.samples_per_period # muestras enteras de un período 190 + ``` 191 + 192 + Por defecto el promedio usa tantos períodos completos como contenga el 193 + registro; pasa `n_averages` para fijar el número (para la elección de nodo del 194 + §3), y `n_harmonics` para fijar cuántos armónicos de `1/T` abarca la respuesta 195 + del peine devuelta. 196 + 197 + La alineación de banda limitada comparte su núcleo con la alineación 198 + submuestral de respuestas al impulso de la 199 + [página de señales de prueba](/phonometry/es/guides/test-signals/), y la forma 200 + de onda recuperada, al ser exactamente un período, puede repetirse para 201 + reconstruir la parte síncrona de la señal, para restarla o para análisis de 202 + órdenes.
+3 -3
site/src/content/docs/guides/miso-coherence.mdx
··· 1 1 --- 2 2 title: "Multiple and partial coherence" 3 - description: "The Bendat & Piersol multiple-input/output coherence functions: ordinary, multiple and partial coherence of two or three correlated sources driving one response, the Gaussian-elimination conditioning that separates a genuine cause from a source that merely correlates with it, and the partial coherent output spectra that say which source dominates each band." 3 + description: "The Bendat & Piersol multiple-input/output coherence functions: ordinary, multiple and partial coherence of several correlated sources driving one response, the Gaussian-elimination conditioning that separates a genuine cause from a source that merely correlates with it, and the partial coherent output spectra that say which source dominates each band." 4 4 references: 5 5 - type: book 6 6 authors: ["Bendat, J. S.", "Piersol, A. G."] ··· 21 21 Piersol, *Random Data* (4th ed., 2010, Chapter 7), resolve this for a 22 22 multiple-input/single-output (MISO) system with the **multiple** and 23 23 **partial** coherence functions. `miso_coherence` computes them from the same 24 - Welch cross-spectral core as the rest of `phonometry.metrology`, for two or 25 - three inputs and one output. 24 + Welch cross-spectral core as the rest of `phonometry.metrology`, for several 25 + correlated inputs and one output. 26 26 27 27 <ThemeImage src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/miso_coherence.svg" alt="Two-panel figure. Top: the measured output autospectrum in dB with the coherent output contribution of two inputs shaded underneath; input 1 fills the low band up to about 400 Hz and input 2 fills the high band above about 1.5 kHz, with the residual noise far below. Bottom: for the correlated second input, its ordinary coherence sits around 0.3 across the low band even though it drives no low-frequency path, while its partial coherence collapses to zero there once the first input is conditioned out; the multiple coherence stays near one except at the crossover null." width="88%" loading="eager" /> 28 28
+6 -1
site/src/content/docs/guides/sections/core-signal-analysis.md
··· 73 73 output spectrum with the spectral SNR, 1/n-octave smoothing and 74 74 exact-slope colored-noise generators. 75 75 - [Multiple and partial coherence](/phonometry/guides/miso-coherence/): the 76 - multiple-input/output coherence functions for two or three correlated 76 + multiple-input/output coherence functions for multiple correlated 77 77 sources and one output, with the conditioning that tells a genuine cause 78 78 from a source that merely correlates with it, and the partial coherent 79 79 output spectra that say which source dominates each band. ··· 85 85 detection with the reflection coefficient read off the cepstral peak, 86 86 lowpass/highpass liftering of a log spectrum, and the envelope spectrum 87 87 that turns amplitude modulations into discrete lines. 88 + - [Time synchronous averaging](/phonometry/guides/synchronous-averaging/): 89 + extraction of a periodic waveform of known period by time domain averaging, 90 + the comb filter that describes it in the frequency domain, the square-root 91 + noise-reduction law, and the choice of the number of averages that places a 92 + comb node on an interfering order (McFadden 1987). 88 93 - [Correlation, time delay and envelope](/phonometry/guides/correlation-delay/): 89 94 correlation estimates with the Bendat & Piersol random errors, time-delay 90 95 estimation by direct correlation, cross-spectrum phase slope and the
+13 -3
site/src/content/docs/guides/sections/signals-spectra.md
··· 22 22 white, pink, red, blue and violet test signals with an exact power-law slope. 23 23 [Multiple and partial coherence](/phonometry/guides/miso-coherence/) carries 24 24 that same cross-spectral machinery to several correlated sources at once: from 25 - two or three inputs and one output it separates the coherence a source 25 + multiple inputs and one output it separates the coherence a source 26 26 genuinely contributes from the part it merely shares with another, and its 27 27 partial coherent output spectra say which source dominates each band. 28 28 ··· 39 39 a log spectrum into smooth envelope and fine structure, and the envelope 40 40 spectrum turns amplitude modulations into discrete lines at the modulation 41 41 frequency. 42 + [Time synchronous averaging](/phonometry/guides/synchronous-averaging/) 43 + extracts a repetitive waveform of known period from asynchronous noise by 44 + ensemble-averaging successive periods: the residual noise falls as the square 45 + root of the number of averages, and choosing that number to place a comb node 46 + on an interfering order rejects it far better than the habitual power of two. 42 47 43 48 [Correlation, time delay and envelope](/phonometry/guides/correlation-delay/) 44 49 is the time-domain half. Auto- and cross-correlation come with the ··· 78 83 spectrum and spectral SNR, 1/n-octave smoothing and exact-slope 79 84 colored-noise generators. 80 85 - [Multiple and partial coherence](/phonometry/guides/miso-coherence/): 81 - the Bendat & Piersol multiple-input/output coherence functions for two or 82 - three correlated sources and one output, with the Gaussian-elimination 86 + the Bendat & Piersol multiple-input/output coherence functions for 87 + multiple correlated sources and one output, with the Gaussian-elimination 83 88 conditioning that tells a genuine cause from a source that merely 84 89 correlates with it, and the partial coherent output spectra that say which 85 90 source dominates each band. ··· 92 97 with the reflection coefficient read off the peak, lowpass/highpass 93 98 liftering, the homomorphic round trip and the envelope spectrum of 94 99 amplitude modulations. 100 + - [Time synchronous averaging](/phonometry/guides/synchronous-averaging/): 101 + extraction of a periodic waveform of known period by time domain averaging, 102 + the comb filter that describes the operation in the frequency domain, the 103 + square-root noise-reduction law, and the choice of the number of averages 104 + that places a comb node on an interfering order (McFadden 1987). 95 105 - [Correlation, time delay and envelope](/phonometry/guides/correlation-delay/): 96 106 correlation estimates with their random errors, time-delay estimation by 97 107 direct correlation, phase slope and GCC weightings, sub-sample
+1 -1
site/src/content/docs/guides/spectral-analysis.mdx
··· 486 486 calibration), so a PSD, a coherence and an H1 computed with the same segment 487 487 length are mutually consistent bin by bin. The same cross-spectral matrix 488 488 underlies [multiple and partial coherence](/phonometry/guides/miso-coherence/), 489 - which extends the ordinary coherence to two or three correlated inputs and one 489 + which extends the ordinary coherence to several correlated inputs and one 490 490 output.
+199
site/src/content/docs/guides/synchronous-averaging.mdx
··· 1 + --- 2 + title: "Time synchronous averaging" 3 + description: "Extract a repetitive waveform of known period from asynchronous noise by time domain averaging (McFadden 1987): the comb filter that describes the operation in the frequency domain, the square-root noise-reduction law, the choice of the number of averages that places a comb node on an interfering order, and the band-limited alignment used when the period does not fall on an integer number of samples." 4 + references: 5 + - type: article 6 + authors: ["McFadden, P. D."] 7 + year: 1987 8 + title: "A revised model for the extraction of periodic waveforms by time domain averaging" 9 + journal: "Mechanical Systems and Signal Processing 1(1), 83-95" 10 + doi: "10.1016/0888-3270(87)90043-2" 11 + note: "The comb-filter model of synchronous averaging (Eq. 8, magnitude Eq. 9), the revised finite-record model that yields an exactly periodic result, and the observation that a non-harmonic interfering order is best rejected by choosing the number of averages so that a comb node lands on it, not by the habitual power of two." 12 + --- 13 + 14 + import ThemeImage from '../../../components/ThemeImage.astro'; 15 + 16 + A rotating machine repeats its signature once per revolution. Buried in 17 + broadband noise and in the tones of every other shaft, that repetitive 18 + waveform is hard to read directly. **Time synchronous averaging** (TSA) 19 + recovers it: given the period `T` of one revolution, it slices the record 20 + into successive length-`T` blocks and averages them. Every component 21 + synchronous with `T` reinforces; everything asynchronous, noise and the 22 + harmonics of unrelated shafts, averages down. `time_synchronous_average` 23 + implements the model of P. D. McFadden, *A revised model for the extraction 24 + of periodic waveforms by time domain averaging* (1987). 25 + 26 + <ThemeImage src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/synchronous_average.svg" alt="Two-panel figure. Left: one noisy period of a signal in faint grey swings far above and below a smooth curve; the average of forty periods, in blue, lies almost exactly on the dashed red true waveform, so the asynchronous noise has been removed. Right: the comb-filter magnitude across the orders between 31 and 33, with unit-height teeth at the integer orders; for N = 20 a deep node falls exactly on the interfering tone marked at 32.05 orders, whereas the power-of-two N = 32 leaves a side lobe there and lets the tone through." width="92%" loading="eager" /> 27 + 28 + <details> 29 + <summary>Show the code for this figure</summary> 30 + 31 + ```python 32 + import matplotlib.pyplot as plt 33 + import numpy as np 34 + from phonometry import ( 35 + comb_filter_response, 36 + noise_signal, 37 + time_synchronous_average, 38 + ) 39 + 40 + fs = 8192.0 41 + period = 1.0 / 32.0 # one revolution: 256 samples at this rate 42 + m, n_avg = 256, 40 43 + phase = np.arange((n_avg + 1) * m) / m 44 + periodic = ( 45 + np.cos(2.0 * np.pi * phase) 46 + + 0.5 * np.cos(2.0 * np.pi * 3.0 * phase + 0.4) 47 + - 0.3 * np.cos(2.0 * np.pi * 6.0 * phase) 48 + ) 49 + signal = periodic + noise_signal(fs, phase.size / fs, rms=0.9, seed=11) 50 + res = time_synchronous_average(signal, fs, period, n_averages=n_avg) 51 + 52 + fig, (ax0, ax1) = plt.subplots(1, 2, figsize=(11, 4.6)) 53 + t_ms = 1e3 * res.times 54 + ax0.plot(t_ms, signal[:m], color="#cccccc", label="One noisy period") 55 + ax0.plot(t_ms, res.period_waveform, color="#1f77b4", lw=1.8, 56 + label=f"Average of N = {n_avg} periods") 57 + ax0.plot(t_ms, periodic[:m], "--", color="#d62728", label="True waveform") 58 + ax0.set_xlabel("Time [ms]"); ax0.set_ylabel("Amplitude"); ax0.legend() 59 + 60 + orders = np.linspace(31.0, 33.0, 4000) 61 + freqs = orders / period 62 + ax1.plot(orders, comb_filter_response(freqs, period, 32), color="#2ca02c", 63 + label="N = 32 (power of two)") 64 + ax1.plot(orders, comb_filter_response(freqs, period, 20), color="#1f77b4", 65 + label="N = 20 (node on 32.05)") 66 + ax1.axvline(32.05, color="#d62728", ls=":", label="Interfering tone") 67 + ax1.set_xlabel("Frequency [orders]"); ax1.set_ylabel("Comb filter magnitude") 68 + ax1.set_ylim(0, 1.05); ax1.legend() 69 + plt.show() 70 + ``` 71 + 72 + </details> 73 + 74 + The `.plot()` method draws the averaged waveform and the comb filter in one 75 + call: 76 + 77 + ```python 78 + res.plot() # English labels; res.plot(language="es") for Spanish 79 + ``` 80 + 81 + ## 1. The average is a comb filter 82 + 83 + Averaging `N` successive periods (McFadden Eq. 5), 84 + 85 + $$ 86 + a(t) = \frac{1}{N} \sum_{n=0}^{N-1} y(t + n\,T), 87 + $$ 88 + 89 + is, in the frequency domain, the multiplication of the signal spectrum by a 90 + **comb filter** (Eq. 8). Its magnitude (Eq. 9) is the Dirichlet kernel 91 + 92 + $$ 93 + |C(f)| = \left| \frac{\sin(N\pi f T)}{N \sin(\pi f T)} \right| . 94 + $$ 95 + 96 + The comb has a **tooth** of unit height at every harmonic `k/T` (the orders 97 + `f·T = 1, 2, 3, ...`), *independent of `N`*: components synchronous with the 98 + period pass untouched. Between the teeth it has **nodes** at `j/(N·T)` for 99 + every `j` that is not a multiple of `N`, where the response is exactly zero. 100 + `comb_filter_response` evaluates this closed form directly: 101 + 102 + ```python 103 + import numpy as np 104 + from phonometry import comb_filter_response 105 + 106 + period = 1.0 / 32.0 107 + comb_filter_response(np.array([16.0 / period]), period, 8) # 1.0 at a tooth 108 + comb_filter_response(np.array([0.25 / period]), period, 2) # 1/sqrt(2) 109 + comb_filter_response(np.array([0.5 / period]), period, 2) # 0.0 at a node 110 + ``` 111 + 112 + `SynchronousAverageResult` carries the response over the first few harmonics 113 + in `comb_frequencies` and `comb_response`, so the shape of the filter that 114 + the average applied is available alongside the recovered waveform. 115 + 116 + ## 2. Noise falls as the square root of the number of averages 117 + 118 + Asynchronous noise of variance $\sigma^2$ averaged over `N` periods has 119 + residual variance $\sigma^2/N$: the residual standard deviation falls as 120 + $1/\sqrt{N}$, and the amplitude signal-to-noise ratio improves by $\sqrt{N}$. 121 + That is a power reduction of $10\log_{10} N$ dB, reported as 122 + `noise_reduction_db`, with the amplitude gain $\sqrt{N}$ as 123 + `amplitude_snr_gain`: 124 + 125 + ```python 126 + res = time_synchronous_average(signal, fs, period, n_averages=100) 127 + res.noise_reduction_db # 20.0 dB = 10*log10(100) 128 + res.amplitude_snr_gain # 10.0 = sqrt(100) 129 + ``` 130 + 131 + This law is the ideal one: it holds when the noise is uncorrelated from one 132 + period to the next, so colored or synchronous noise that is correlated across 133 + periods need not follow it. The `residual` (input minus the periodic 134 + reconstruction over the analysed span) and its `residual_rms` therefore report 135 + the noise actually left once the synchronous component is removed. 136 + 137 + ## 3. Choosing N to reject an interfering order 138 + 139 + Because a tooth sits on *every* integer order, TSA passes the harmonics of 140 + the target shaft but also any tone that happens to fall on an integer order. 141 + A tone at a *non-harmonic* order `q = f·T` is only attenuated by the comb, 142 + not removed, and how much depends on where the nearest node lands. McFadden's 143 + revised-model result is that such an interferer is best rejected by choosing 144 + `N` so that a node falls exactly on it, i.e. the smallest `N` with `N·q` an 145 + integer, rather than by the habitual power-of-two number of averages. An exact 146 + node exists only when the order `q` is rational, so some finite `N` makes `N·q` 147 + an integer; for an irrational or merely estimated order, choose the `N` whose 148 + node falls nearest the interfering order. 149 + 150 + His own example is a tone at 32.05 orders. With `N = 20` the product 151 + `20 · 32.05 = 641` is an integer, so a comb node lands on the tone and rejects 152 + it by more than 100 dB. The common choice `N = 32` gives `32 · 32.05 = 1025.6`, 153 + which sits on a side lobe: the tone is barely touched. The figure above shows 154 + both combs around order 32; the end-to-end average confirms it: 155 + 156 + ```python 157 + # true 8th-order component plus a strong interferer at 32.05 orders 158 + phase = np.arange(41 * 256) / 256 159 + signal = np.cos(2 * np.pi * 8.0 * phase) + 0.7 * np.cos(2 * np.pi * 32.05 * phase) 160 + 161 + leak_20 = time_synchronous_average(signal, fs, period, n_averages=20) 162 + leak_32 = time_synchronous_average(signal, fs, period, n_averages=32) 163 + # leak_20.period_waveform matches the clean 8th-order tone; leak_32 does not 164 + ``` 165 + 166 + So a power-of-two number of averages, convenient as it is, is not in general 167 + the optimal choice: the interfering orders present in the machine should set 168 + `N`. 169 + 170 + ## 4. Non-integer samples per period 171 + 172 + When `fs·T` is an integer, the period boundaries fall on samples, the blocks 173 + are sliced directly, and a noiseless periodic signal is recovered to machine 174 + precision (`interpolated` is `False`). When `fs·T` is not an integer the 175 + boundaries fall between samples; each block is then aligned to a common 176 + integer grid by the band-limited fractional delay of 177 + [`fractional_delay`](/phonometry/guides/test-signals/), and the waveform is 178 + recovered within that interpolation error (`interpolated` is `True`): 179 + 180 + ```python 181 + fs = 8192.0 182 + period = 1.0 / 31.7 # fs * period is not an integer 183 + t = np.arange(int(40 * period * fs)) / fs 184 + signal = np.cos(2.0 * np.pi * t / period) # one cycle per revolution 185 + res = time_synchronous_average(signal, fs, period) 186 + res.interpolated # True: fractional-delay alignment 187 + res.samples_per_period # integer samples of one period 188 + ``` 189 + 190 + By default the average uses as many whole periods as the record holds; pass 191 + `n_averages` to fix the count (for the node-selection choice of §3), and 192 + `n_harmonics` to set how many harmonics of `1/T` the returned comb response 193 + spans. 194 + 195 + The band-limited alignment shares its kernel with the sub-sample 196 + impulse-response alignment of the 197 + [test-signals page](/phonometry/guides/test-signals/), and the recovered 198 + waveform, being exactly one period, can be tiled to reconstruct the 199 + synchronous part of the signal for subtraction or for order analysis.
+1
site/src/content/docs/reference/api/index.md
··· 223 223 | [`metrology.signals`](/phonometry/reference/api/spectra/signals/) | Test signals and sample-rate utilities. | 224 224 | [`metrology.phase`](/phonometry/reference/api/spectra/phase/) | Phase utilities: minimum phase, group delay and excess phase. | 225 225 | [`metrology.cepstrum`](/phonometry/reference/api/spectra/cepstrum/) | Cepstral analysis: real/power/complex cepstrum, liftering and echo detection. | 226 + | [`metrology.synchronous_average`](/phonometry/reference/api/spectra/synchronous-average/) | Time synchronous averaging (TSA) of a periodic waveform in noise. | 226 227 | [`metrology.inversion`](/phonometry/reference/api/spectra/inversion/) | Regularized spectral inversion with frequency-dependent regularization. | 227 228 228 229 ## Wave simulation
+2 -2
site/src/content/docs/reference/api/spectra/miso.md
··· 91 91 92 92 | Name | Description | 93 93 | :--- | :--- | 94 - | `inputs` | The `q` input records (2 or 3), a sequence of equal-length 1-D arrays or a 2-D `(q, n)` array. | 94 + | `inputs` | The `q` input records (`q >= 2`), a sequence of equal-length 1-D arrays or a 2-D `(q, n)` array. | 95 95 | `output` | The output record, 1-D, same length as the inputs. | 96 96 | `fs` | Sample rate, in Hz. | 97 97 | `order` | Conditioning order as input indices (default `0..q-1`). | ··· 146 146 | Name | Description | 147 147 | :--- | :--- | 148 148 | `frequencies` | One-sided frequency axis, in Hz. | 149 - | `n_inputs` | Number of inputs `q` (2 or 3). | 149 + | `n_inputs` | Number of inputs `q` (`q >= 2`). | 150 150 | `order` | Conditioning order actually applied, as original input indices; `partial_coherence[order[k]]` is conditioned on the inputs `order[:k]`. | 151 151 | `ordinary_coherence` | `γ²iy(f) ∈ [0, 1]` per input (Eq. 7.109), shape `(q, F)`: each input against the output on its own. | 152 152 | `multiple_coherence` | `γ²y:x(f) ∈ [0, 1]` (Eq. 7.35): the fraction of output power explained by all inputs jointly. Equals the sum of the partial coherences (Eq. 7.116) and `1 - noise_psd/output_psd`. |
+204
site/src/content/docs/reference/api/spectra/synchronous-average.md
··· 1 + --- 2 + title: "metrology.synchronous_average" 3 + description: "Public API of phonometry.metrology.synchronous_average (auto-generated)." 4 + sidebar: 5 + label: "synchronous_average" 6 + --- 7 + 8 + > Auto-generated from the source docstrings by `scripts/generate_api_docs.py` (`make api-docs`). Do not edit by hand. 9 + 10 + Time synchronous averaging (TSA) of a periodic waveform in noise. 11 + 12 + Time domain averaging extracts a repetitive signal of known period `T` 13 + from additive noise by ensemble-averaging successive length-`T` blocks, 14 + following P. D. McFadden, "A revised model for the extraction of periodic 15 + waveforms by time domain averaging", *Mechanical Systems and Signal 16 + Processing* 1(1) 1987, 83-95. Given a signal `y(t) = x(t) + e(t)` with 17 + `x` periodic in `T` and `e` asynchronous, the average 18 + 19 + `a(t) = (1/N) Σ_{n=0}^{N-1} y(t + n·T)` (McFadden Eq. 5) 20 + 21 + reinforces every component synchronous with `T` and suppresses the rest. 22 + 23 + **Two models, one implementation.** McFadden distinguishes the *existing* 24 + comb-filter model from the *revised* model. In the frequency domain the 25 + average is the multiplication of `Y(f)` by the comb filter (Eq. 8) 26 + 27 + `C(f) = (1/N)·sin(N·π·f·T) / sin(π·f·T)`, 28 + 29 + whose magnitude `|C(f)| = |sin(N·π·f·T) / (N·sin(π·f·T))|` is a Dirichlet 30 + kernel: unity at every harmonic `k/T` (the teeth, Eq. 9, of unit height 31 + regardless of `N`) and zero at the nodes `j/(N·T)` with `j` not a 32 + multiple of `N`. That model assumes knowledge of `y` over infinite time 33 + and produces a result that is not exactly periodic. McFadden's *revised* 34 + model applies a rectangular window of width `T` in the time domain and 35 + samples the transform in the frequency domain, so it needs only a finite 36 + block of the signal and yields a result that is exactly periodic and can be 37 + stored as a single period. The digital block average computed here, `N` 38 + consecutive periods of an integer number of samples reduced to one period, 39 + *is* that revised model: the returned `period_waveform`, repeated, 40 + is exactly periodic. 41 + 42 + **Noise reduction.** Asynchronous noise of variance `σ²` averaged over 43 + `N` periods has residual variance `σ²/N`: the residual standard 44 + deviation falls as `1/√N` and the amplitude signal-to-noise ratio 45 + improves by `√N` (a power reduction of `10·log₁₀ N` dB, reported as 46 + `noise_reduction_db`). 47 + 48 + **Choosing N (McFadden's revised-model correction).** Because a discrete 49 + interfering tone at a *non-harmonic* order `q = f·T` is only attenuated, 50 + not removed, its rejection is optimised by choosing `N` so that a comb 51 + node lands exactly on it, i.e. the smallest `N` with `N·q` an integer. 52 + McFadden's own example, a tone at 32.05 orders, is suppressed by more than 53 + 100 dB with `N = 20` (since `20·32.05 = 641`) yet only ~14 dB with the 54 + common power-of-two choice `N = 32` (`32·32.05 = 1025.6`). Thus the 55 + habit of taking a power-of-two number of averages is not, in general, 56 + optimal. 57 + 58 + **Non-integer samples per period.** When `fs·T` is not an integer the 59 + period boundaries fall between samples. Each block is then aligned to a 60 + common integer grid by the band-limited fractional delay of 61 + [`phonometry.metrology.signals.fractional_delay`](/phonometry/reference/api/spectra/signals/#fractional_delay) before averaging, so 62 + the periodic waveform is recovered within the interpolation error of that 63 + band-limited shift. An integer `fs·T` needs no interpolation and the 64 + waveform is recovered to machine precision. 65 + 66 + ## comb_filter_response 67 + 68 + ```python 69 + comb_filter_response( 70 + frequencies: NDArray[np.float64] | list[float], 71 + period: float, 72 + n_averages: int, 73 + ) -> NDArray[np.float64] 74 + ``` 75 + 76 + Magnitude of the N-period synchronous-averaging comb filter. 77 + 78 + The closed form of McFadden Eq. 8, `|C(f)| = |sin(N·π·f·T) / 79 + (N·sin(π·f·T))|`, a Dirichlet kernel with unit-height teeth at the 80 + harmonics `k/T` (Eq. 9) and nodes at `j/(N·T)` for `j` not a 81 + multiple of `N`. 82 + 83 + **Parameters** 84 + 85 + | Name | Description | 86 + | :--- | :--- | 87 + | `frequencies` | Frequencies at which to evaluate, in Hz. | 88 + | `period` | Repetition period `T`, in seconds. | 89 + | `n_averages` | Number of averaged periods `N` (at least 1). | 90 + 91 + **Returns:** The filter magnitude at each frequency (unitless, in [0, 1]). 92 + 93 + **Raises** 94 + 95 + | Exception | When | 96 + | :--- | :--- | 97 + | ValueError | If the parameters are invalid. | 98 + 99 + ## SynchronousAverageResult 100 + 101 + ```python 102 + SynchronousAverageResult( 103 + period_waveform: NDArray[np.float64], 104 + times: NDArray[np.float64], 105 + residual: NDArray[np.float64], 106 + n_averages: int, 107 + samples_per_period: int, 108 + period: float, 109 + fs: float, 110 + interpolated: bool, 111 + noise_reduction_db: float, 112 + residual_rms: float, 113 + comb_frequencies: NDArray[np.float64], 114 + comb_response: NDArray[np.float64], 115 + ) 116 + ``` 117 + 118 + Time synchronous average of a periodic waveform in noise. 119 + 120 + **Attributes** 121 + 122 + | Name | Description | 123 + | :--- | :--- | 124 + | `period_waveform` | The averaged periodic waveform, one period of `samples_per_period` samples. | 125 + | `times` | Time axis of `period_waveform`, in seconds, spanning one period `[0, T)`. | 126 + | `residual` | Input minus the periodic reconstruction, over the analysed span (`n_averages·samples_per_period` samples, aligned to the integer period grid): what is left after the synchronous component is removed. | 127 + | `n_averages` | Number of periods averaged, `N`. | 128 + | `samples_per_period` | Integer samples per period `M` after any alignment. | 129 + | `period` | Repetition period `T`, in seconds. | 130 + | `fs` | Sample rate, in Hz. | 131 + | `interpolated` | Whether band-limited fractional-delay alignment was applied (`True` when `fs·T` is not an integer). | 132 + | `noise_reduction_db` | Power reduction of asynchronous noise, `10·log₁₀ N` dB (amplitude SNR gain `√N`). | 133 + | `residual_rms` | Root-mean-square of `residual`. | 134 + | `comb_frequencies` | Frequency axis of the comb-filter response, in Hz (from DC over a whole number of harmonics of `1/T`). | 135 + | `comb_response` | Magnitude of the comb filter (McFadden Eq. 8) on `comb_frequencies`. | 136 + 137 + ### SynchronousAverageResult.amplitude_snr_gain 138 + 139 + *property* 140 + 141 + Amplitude signal-to-noise improvement `√N` from averaging. 142 + 143 + ### SynchronousAverageResult.plot() 144 + 145 + ```python 146 + SynchronousAverageResult.plot( 147 + ax: Axes | None = None, 148 + *, 149 + language: str = 'en', 150 + **kwargs: Any, 151 + ) -> Axes | NDArray[Any] 152 + ``` 153 + 154 + Plot the averaged waveform and the comb-filter magnitude. 155 + 156 + With `ax` given, only the averaged-waveform panel is drawn on it. 157 + 158 + **Parameters** 159 + 160 + | Name | Description | 161 + | :--- | :--- | 162 + | `language` | Label language, `"en"` (default) or `"es"`. | 163 + 164 + ## time_synchronous_average 165 + 166 + ```python 167 + time_synchronous_average( 168 + x: NDArray[np.float64] | list[float], 169 + fs: float, 170 + period: float, 171 + *, 172 + n_averages: int | None = None, 173 + n_harmonics: int = 8, 174 + ) -> SynchronousAverageResult 175 + ``` 176 + 177 + Extract a periodic waveform of known period by time domain averaging. 178 + 179 + Ensemble-averages `N` successive periods of the record (McFadden 180 + Eq. 5) to reinforce the component synchronous with `period` and 181 + suppress asynchronous noise, whose residual standard deviation falls as 182 + `1/√N`. When `fs·period` is an integer the periods are sliced 183 + directly and a noiseless periodic signal is recovered exactly; otherwise 184 + each period is aligned to a common integer grid by the band-limited 185 + fractional delay of [`fractional_delay`](/phonometry/reference/api/spectra/signals/#fractional_delay) 186 + and recovered within that interpolation error. 187 + 188 + **Parameters** 189 + 190 + | Name | Description | 191 + | :--- | :--- | 192 + | `x` | Signal, 1-D, containing the periodic component plus noise. | 193 + | `fs` | Sample rate, in Hz. | 194 + | `period` | Known repetition period `T`, in seconds (e.g. one revolution of a rotating machine). | 195 + | `n_averages` | Number of whole periods to average (default: as many as the record holds). Choosing `N` so that `N·q` is an integer places a comb node on an interfering tone at order `q` and maximises its rejection (McFadden's revised-model result). | 196 + | `n_harmonics` | Number of harmonics of `1/T` spanned by the returned comb-filter response (default 8). | 197 + 198 + **Returns:** A [`SynchronousAverageResult`](/phonometry/reference/api/spectra/synchronous-average/#synchronousaverageresult). 199 + 200 + **Raises** 201 + 202 + | Exception | When | 203 + | :--- | :--- | 204 + | ValueError | If the inputs or parameters are invalid. |
+1
site/src/generated/api-sidebar.mjs
··· 223 223 'reference/api/spectra/signals', 224 224 'reference/api/spectra/phase', 225 225 'reference/api/spectra/cepstrum', 226 + 'reference/api/spectra/synchronous-average', 226 227 'reference/api/spectra/inversion', 227 228 ], 228 229 },
+8
src/phonometry/__init__.py
··· 280 280 ParametricEQ, 281 281 parametric_eq, 282 282 ) 283 + from .metrology.synchronous_average import ( 284 + SynchronousAverageResult, 285 + comb_filter_response, 286 + time_synchronous_average, 287 + ) 283 288 from .metrology.phase import ( 284 289 PhaseDecompositionResult, 285 290 excess_phase, ··· 1405 1410 "align_impulse_responses", 1406 1411 "envelope", 1407 1412 "envelope_spectrum", 1413 + "time_synchronous_average", 1414 + "comb_filter_response", 1415 + "SynchronousAverageResult", 1408 1416 "cepstrum", 1409 1417 "lifter", 1410 1418 "echo_detection",
+68
src/phonometry/_plot/metrology.py
··· 31 31 StationarityTestResult, 32 32 ) 33 33 from ..metrology.signals import ToneBurstResult 34 + from ..metrology.synchronous_average import SynchronousAverageResult 34 35 from ..metrology.spectra import ( 35 36 CoherentOutputSpectrumResult, 36 37 CrossSpectralDensityResult, ··· 210 211 "Cascade": "Cascada", 211 212 "Parametric EQ response (Audio EQ Cookbook)": 212 213 "Respuesta del EQ paramétrico (Audio EQ Cookbook)", 214 + "Time synchronous average (McFadden 1987)": 215 + "Promediado síncrono en el tiempo (McFadden 1987)", 216 + "Averaged periodic waveform (N = {n})": 217 + "Forma de onda periódica promediada (N = {n})", 218 + "Time [ms]": "Tiempo [ms]", 219 + "Frequency [orders]": "Frecuencia [órdenes]", 220 + r"Comb filter $|C(f)|$ (Eq. 8)": r"Filtro peine $|C(f)|$ (Ec. 8)", 221 + "Harmonics of $1/T$": "Armónicos de $1/T$", 213 222 } 214 223 215 224 ··· 1777 1786 format_frequency_axis(axf, fmin, fmax) 1778 1787 localize_axes(axf, language) 1779 1788 return axes 1789 + 1790 + 1791 + def plot_synchronous_average( 1792 + result: "SynchronousAverageResult", ax: Axes | None = None, *, 1793 + language: str = "en", **kwargs: Any 1794 + ) -> Axes | np.ndarray: 1795 + """Averaged periodic waveform and the synchronous-averaging comb filter. 1796 + 1797 + With ``ax`` given, only the averaged-waveform panel is drawn on it. 1798 + 1799 + :param result: A 1800 + :class:`~phonometry.metrology.synchronous_average.SynchronousAverageResult`. 1801 + :param ax: Existing axes for the waveform panel, or ``None`` for a fresh 1802 + two-panel (waveform + comb filter) figure. 1803 + :param language: Label language, ``"en"`` (default) or ``"es"``. 1804 + :param kwargs: Forwarded to the averaged-waveform line. 1805 + :return: The waveform axes (``ax`` given) or the array of two axes. 1806 + """ 1807 + from .._i18n import localize_axes 1808 + 1809 + def _waveform(axw: Axes) -> None: 1810 + kwargs.setdefault("color", _C_PRIMARY) 1811 + kwargs.setdefault("lw", 1.6) 1812 + axw.plot( 1813 + 1e3 * result.times, result.period_waveform, 1814 + label=_t("Averaged periodic waveform (N = {n})", language, 1815 + n=result.n_averages), 1816 + **kwargs, 1817 + ) 1818 + axw.set_xlabel(_t("Time [ms]", language)) 1819 + axw.set_ylabel(_t("Amplitude", language)) 1820 + axw.grid(True, alpha=0.3) 1821 + axw.legend(loc=_LEGEND_UPPER_RIGHT, fontsize="small") 1822 + 1823 + if ax is not None: 1824 + _waveform(ax) 1825 + localize_axes(ax, language) 1826 + return ax 1827 + 1828 + axes = _new_axes_column(2, figsize=(8.0, 6.4)) 1829 + _waveform(axes[0]) 1830 + axes[0].set_title(_t("Time synchronous average (McFadden 1987)", language)) 1831 + 1832 + orders = result.comb_frequencies * result.period 1833 + axes[1].plot(orders, result.comb_response, color=_C_PRIMARY, lw=1.2) 1834 + top = int(np.floor(orders[-1] + 1e-9)) 1835 + for k in range(1, top + 1): 1836 + axes[1].axvline( 1837 + float(k), color=_C_REFERENCE, linestyle=":", lw=0.8, alpha=0.6, 1838 + label=_t("Harmonics of $1/T$", language) if k == 1 else None, 1839 + ) 1840 + axes[1].set_xlabel(_t("Frequency [orders]", language)) 1841 + axes[1].set_ylabel(_t(r"Comb filter $|C(f)|$ (Eq. 8)", language)) 1842 + axes[1].set_ylim(0.0, 1.05) 1843 + axes[1].grid(True, alpha=0.3) 1844 + axes[1].legend(loc=_LEGEND_UPPER_RIGHT, fontsize="small") 1845 + for axf in axes: 1846 + localize_axes(axf, language) 1847 + return axes
+8
src/phonometry/metrology/__init__.py
··· 80 80 resample_signal, 81 81 tone_burst, 82 82 ) 83 + from .synchronous_average import ( 84 + SynchronousAverageResult, 85 + comb_filter_response, 86 + time_synchronous_average, 87 + ) 83 88 from .spectra import ( 84 89 CoherentOutputSpectrumResult, 85 90 CrossSpectralDensityResult, ··· 137 142 "SpectralDensityResult", 138 143 "SpectrogramResult", 139 144 "StationarityTestResult", 145 + "SynchronousAverageResult", 140 146 "TrendTestResult", 141 147 "TimeDelayResult", 142 148 "TimeWeighting", ··· 195 201 "spectrogram", 196 202 "stationarity_test", 197 203 "time_delay", 204 + "time_synchronous_average", 205 + "comb_filter_response", 198 206 "time_weighting", 199 207 "tone_burst", 200 208 "trend_test",
+5 -5
src/phonometry/metrology/miso.py
··· 95 95 rows = [np.ascontiguousarray(row, dtype=np.float64) for row in inputs] 96 96 else: 97 97 rows = [np.asarray(x, dtype=np.float64) for x in inputs] 98 - if not 2 <= len(rows) <= 3: 99 - raise ValueError("'inputs' must hold 2 or 3 input records.") 98 + if len(rows) < 2: 99 + raise ValueError("'inputs' must hold at least two input records.") 100 100 xs = [_validate_signal(x, f"inputs[{i}]") for i, x in enumerate(rows)] 101 101 ya = _validate_signal(output, "output") 102 102 for i, x in enumerate(xs): ··· 324 324 :attr:`order`. 325 325 326 326 :ivar frequencies: One-sided frequency axis, in Hz. 327 - :ivar n_inputs: Number of inputs ``q`` (2 or 3). 327 + :ivar n_inputs: Number of inputs ``q`` (``q >= 2``). 328 328 :ivar order: Conditioning order actually applied, as original input 329 329 indices; ``partial_coherence[order[k]]`` is conditioned on the inputs 330 330 ``order[:k]``. ··· 437 437 Absent a physical basis, Bendat & Piersol (Section 7.2.4) recommend 438 438 ordering the inputs by descending ordinary coherence with the output. 439 439 440 - :param inputs: The ``q`` input records (2 or 3), a sequence of equal-length 441 - 1-D arrays or a 2-D ``(q, n)`` array. 440 + :param inputs: The ``q`` input records (``q >= 2``), a sequence of 441 + equal-length 1-D arrays or a 2-D ``(q, n)`` array. 442 442 :param output: The output record, 1-D, same length as the inputs. 443 443 :param fs: Sample rate, in Hz. 444 444 :param order: Conditioning order as input indices (default ``0..q-1``).
+314
src/phonometry/metrology/synchronous_average.py
··· 1 + # Copyright (c) 2026. Jose M. Requena-Plens 2 + """ 3 + Time synchronous averaging (TSA) of a periodic waveform in noise. 4 + 5 + Time domain averaging extracts a repetitive signal of known period ``T`` 6 + from additive noise by ensemble-averaging successive length-``T`` blocks, 7 + following P. D. McFadden, "A revised model for the extraction of periodic 8 + waveforms by time domain averaging", *Mechanical Systems and Signal 9 + Processing* 1(1) 1987, 83-95. Given a signal ``y(t) = x(t) + e(t)`` with 10 + ``x`` periodic in ``T`` and ``e`` asynchronous, the average 11 + 12 + ``a(t) = (1/N) Σ_{n=0}^{N-1} y(t + n·T)`` (McFadden Eq. 5) 13 + 14 + reinforces every component synchronous with ``T`` and suppresses the rest. 15 + 16 + **Two models, one implementation.** McFadden distinguishes the *existing* 17 + comb-filter model from the *revised* model. In the frequency domain the 18 + average is the multiplication of ``Y(f)`` by the comb filter (Eq. 8) 19 + 20 + ``C(f) = (1/N)·sin(N·π·f·T) / sin(π·f·T)``, 21 + 22 + whose magnitude ``|C(f)| = |sin(N·π·f·T) / (N·sin(π·f·T))|`` is a Dirichlet 23 + kernel: unity at every harmonic ``k/T`` (the teeth, Eq. 9, of unit height 24 + regardless of ``N``) and zero at the nodes ``j/(N·T)`` with ``j`` not a 25 + multiple of ``N``. That model assumes knowledge of ``y`` over infinite time 26 + and produces a result that is not exactly periodic. McFadden's *revised* 27 + model applies a rectangular window of width ``T`` in the time domain and 28 + samples the transform in the frequency domain, so it needs only a finite 29 + block of the signal and yields a result that is exactly periodic and can be 30 + stored as a single period. The digital block average computed here, ``N`` 31 + consecutive periods of an integer number of samples reduced to one period, 32 + *is* that revised model: the returned :attr:`period_waveform`, repeated, 33 + is exactly periodic. 34 + 35 + **Noise reduction.** Asynchronous noise of variance ``σ²`` averaged over 36 + ``N`` periods has residual variance ``σ²/N``: the residual standard 37 + deviation falls as ``1/√N`` and the amplitude signal-to-noise ratio 38 + improves by ``√N`` (a power reduction of ``10·log₁₀ N`` dB, reported as 39 + :attr:`noise_reduction_db`). 40 + 41 + **Choosing N (McFadden's revised-model correction).** Because a discrete 42 + interfering tone at a *non-harmonic* order ``q = f·T`` is only attenuated, 43 + not removed, its rejection is optimised by choosing ``N`` so that a comb 44 + node lands exactly on it, i.e. the smallest ``N`` with ``N·q`` an integer. 45 + McFadden's own example, a tone at 32.05 orders, is suppressed by more than 46 + 100 dB with ``N = 20`` (since ``20·32.05 = 641``) yet only ~14 dB with the 47 + common power-of-two choice ``N = 32`` (``32·32.05 = 1025.6``). Thus the 48 + habit of taking a power-of-two number of averages is not, in general, 49 + optimal. 50 + 51 + **Non-integer samples per period.** When ``fs·T`` is not an integer the 52 + period boundaries fall between samples. Each block is then aligned to a 53 + common integer grid by the band-limited fractional delay of 54 + :func:`phonometry.metrology.signals.fractional_delay` before averaging, so 55 + the periodic waveform is recovered within the interpolation error of that 56 + band-limited shift. An integer ``fs·T`` needs no interpolation and the 57 + waveform is recovered to machine precision. 58 + """ 59 + 60 + from __future__ import annotations 61 + 62 + from dataclasses import dataclass 63 + from typing import TYPE_CHECKING, Any 64 + 65 + import numpy as np 66 + 67 + from .signals import _validate_1d_finite, fractional_delay 68 + from .spectra import _positive 69 + 70 + if TYPE_CHECKING: 71 + from matplotlib.axes import Axes 72 + from numpy.typing import NDArray 73 + 74 + __all__ = [ 75 + "SynchronousAverageResult", 76 + "comb_filter_response", 77 + "time_synchronous_average", 78 + ] 79 + 80 + #: Below this a fractional sample offset counts as integer-aligned, so no 81 + #: interpolation is applied and an integer-period record is exact. 82 + _ALIGN_TOL = 1e-9 83 + 84 + 85 + def comb_filter_response( 86 + frequencies: "NDArray[np.float64] | list[float]", 87 + period: float, 88 + n_averages: int, 89 + ) -> "NDArray[np.float64]": 90 + """Magnitude of the N-period synchronous-averaging comb filter. 91 + 92 + The closed form of McFadden Eq. 8, ``|C(f)| = |sin(N·π·f·T) / 93 + (N·sin(π·f·T))|``, a Dirichlet kernel with unit-height teeth at the 94 + harmonics ``k/T`` (Eq. 9) and nodes at ``j/(N·T)`` for ``j`` not a 95 + multiple of ``N``. 96 + 97 + :param frequencies: Frequencies at which to evaluate, in Hz. 98 + :param period: Repetition period ``T``, in seconds. 99 + :param n_averages: Number of averaged periods ``N`` (at least 1). 100 + :return: The filter magnitude at each frequency (unitless, in [0, 1]). 101 + :raises ValueError: If the parameters are invalid. 102 + """ 103 + period_v = _positive(period, "period") 104 + n = int(n_averages) 105 + if n < 1: 106 + raise ValueError("'n_averages' must be a positive integer.") 107 + freqs = np.asarray(frequencies, dtype=np.float64) 108 + if not np.all(np.isfinite(freqs)): 109 + raise ValueError("'frequencies' must be finite.") 110 + order = freqs * period_v 111 + lower = np.sin(np.pi * order) 112 + upper = np.sin(n * np.pi * order) 113 + with np.errstate(divide="ignore", invalid="ignore"): 114 + ratio = np.abs(upper / (n * lower)) 115 + # At the teeth (integer order) the 0/0 limit is exactly 1 (Eq. 9). 116 + at_tooth = np.abs(lower) < _ALIGN_TOL 117 + response = np.where(at_tooth, 1.0, ratio) 118 + return np.asarray(response, dtype=np.float64) 119 + 120 + 121 + @dataclass(frozen=True) 122 + class SynchronousAverageResult: 123 + """Time synchronous average of a periodic waveform in noise. 124 + 125 + :ivar period_waveform: The averaged periodic waveform, one period of 126 + :attr:`samples_per_period` samples. 127 + :ivar times: Time axis of :attr:`period_waveform`, in seconds, spanning 128 + one period ``[0, T)``. 129 + :ivar residual: Input minus the periodic reconstruction, over the 130 + analysed span (``n_averages·samples_per_period`` samples, aligned 131 + to the integer period grid): what is left after the synchronous 132 + component is removed. 133 + :ivar n_averages: Number of periods averaged, ``N``. 134 + :ivar samples_per_period: Integer samples per period ``M`` after any 135 + alignment. 136 + :ivar period: Repetition period ``T``, in seconds. 137 + :ivar fs: Sample rate, in Hz. 138 + :ivar interpolated: Whether band-limited fractional-delay alignment was 139 + applied (``True`` when ``fs·T`` is not an integer). 140 + :ivar noise_reduction_db: Power reduction of asynchronous noise, 141 + ``10·log₁₀ N`` dB (amplitude SNR gain ``√N``). 142 + :ivar residual_rms: Root-mean-square of :attr:`residual`. 143 + :ivar comb_frequencies: Frequency axis of the comb-filter response, in 144 + Hz (from DC over a whole number of harmonics of ``1/T``). 145 + :ivar comb_response: Magnitude of the comb filter (McFadden Eq. 8) on 146 + :attr:`comb_frequencies`. 147 + """ 148 + 149 + period_waveform: "NDArray[np.float64]" 150 + times: "NDArray[np.float64]" 151 + residual: "NDArray[np.float64]" 152 + n_averages: int 153 + samples_per_period: int 154 + period: float 155 + fs: float 156 + interpolated: bool 157 + noise_reduction_db: float 158 + residual_rms: float 159 + comb_frequencies: "NDArray[np.float64]" 160 + comb_response: "NDArray[np.float64]" 161 + 162 + @property 163 + def amplitude_snr_gain(self) -> float: 164 + """Amplitude signal-to-noise improvement ``√N`` from averaging.""" 165 + return float(np.sqrt(self.n_averages)) 166 + 167 + def plot( 168 + self, ax: "Axes | None" = None, *, language: str = "en", **kwargs: Any 169 + ) -> "Axes | NDArray[Any]": 170 + """Plot the averaged waveform and the comb-filter magnitude. 171 + 172 + With ``ax`` given, only the averaged-waveform panel is drawn on it. 173 + 174 + :param language: Label language, ``"en"`` (default) or ``"es"``. 175 + """ 176 + from .._i18n import check_language 177 + from .._plot.metrology import plot_synchronous_average 178 + 179 + check_language(language) 180 + return plot_synchronous_average(self, ax=ax, language=language, **kwargs) 181 + 182 + 183 + def _samples_per_period(fs: float, period: float) -> tuple[float, int]: 184 + """Exact and integer samples per period, with an integer-fit check.""" 185 + samples = fs * period 186 + rounded = int(round(samples)) 187 + if rounded < 2: 188 + raise ValueError( 189 + "'period' is too short for the sample rate: it must span at " 190 + "least 2 samples." 191 + ) 192 + return samples, rounded 193 + 194 + 195 + def _resolve_n_averages( 196 + n_averages: int | None, length: int, samples: float, m_int: int 197 + ) -> int: 198 + """Number of whole periods to average, validated against the record.""" 199 + available = int(np.floor((length - m_int) / samples)) + 1 200 + if available < 1: 201 + raise ValueError( 202 + "The record is shorter than one period; nothing to average." 203 + ) 204 + if n_averages is None: 205 + return available 206 + requested = int(n_averages) 207 + if requested < 1: 208 + raise ValueError("'n_averages' must be a positive integer.") 209 + if requested > available: 210 + raise ValueError( 211 + f"'n_averages' = {requested} exceeds the {available} whole " 212 + f"periods available in the record." 213 + ) 214 + return requested 215 + 216 + 217 + def _extract_period( 218 + x: "NDArray[np.float64]", start: float, m_int: int 219 + ) -> "NDArray[np.float64]": 220 + """One period of ``m_int`` samples starting at fractional ``start``. 221 + 222 + The block is aligned to the integer grid by a band-limited fractional 223 + delay; an integer ``start`` (within :data:`_ALIGN_TOL`) is sliced 224 + directly, so an integer-period record stays exact. 225 + """ 226 + i0 = int(round(start)) 227 + frac = start - i0 228 + if abs(frac) < _ALIGN_TOL: 229 + return x[i0 : i0 + m_int] 230 + # fractional_delay(x, d) yields x(j - d); advancing by frac (d = -frac) 231 + # gives x(j + frac), so sample i0 + m carries x(i0 + frac + m). 232 + shifted = fractional_delay(x, -frac) 233 + return np.asarray(shifted[i0 : i0 + m_int], dtype=np.float64) 234 + 235 + 236 + def _comb_grid( 237 + period: float, n_averages: int, n_harmonics: int 238 + ) -> tuple["NDArray[np.float64]", "NDArray[np.float64]"]: 239 + """Frequency axis (Hz) and comb-filter magnitude over the first teeth.""" 240 + points = max(256, 200 * n_harmonics) 241 + freqs = np.linspace(0.0, n_harmonics / period, points) 242 + response = comb_filter_response(freqs, period, n_averages) 243 + return freqs, response 244 + 245 + 246 + def time_synchronous_average( 247 + x: "NDArray[np.float64] | list[float]", 248 + fs: float, 249 + period: float, 250 + *, 251 + n_averages: int | None = None, 252 + n_harmonics: int = 8, 253 + ) -> SynchronousAverageResult: 254 + """Extract a periodic waveform of known period by time domain averaging. 255 + 256 + Ensemble-averages ``N`` successive periods of the record (McFadden 257 + Eq. 5) to reinforce the component synchronous with ``period`` and 258 + suppress asynchronous noise, whose residual standard deviation falls as 259 + ``1/√N``. When ``fs·period`` is an integer the periods are sliced 260 + directly and a noiseless periodic signal is recovered exactly; otherwise 261 + each period is aligned to a common integer grid by the band-limited 262 + fractional delay of :func:`~phonometry.metrology.signals.fractional_delay` 263 + and recovered within that interpolation error. 264 + 265 + :param x: Signal, 1-D, containing the periodic component plus noise. 266 + :param fs: Sample rate, in Hz. 267 + :param period: Known repetition period ``T``, in seconds (e.g. one 268 + revolution of a rotating machine). 269 + :param n_averages: Number of whole periods to average (default: as many 270 + as the record holds). Choosing ``N`` so that ``N·q`` is an integer 271 + places a comb node on an interfering tone at order ``q`` and 272 + maximises its rejection (McFadden's revised-model result). 273 + :param n_harmonics: Number of harmonics of ``1/T`` spanned by the 274 + returned comb-filter response (default 8). 275 + :return: A :class:`SynchronousAverageResult`. 276 + :raises ValueError: If the inputs or parameters are invalid. 277 + """ 278 + xa = _validate_1d_finite(x, "x") 279 + fs_v = _positive(fs, "fs") 280 + period_v = _positive(period, "period") 281 + n_harmonics_v = int(n_harmonics) 282 + if n_harmonics_v < 1: 283 + raise ValueError("'n_harmonics' must be a positive integer.") 284 + 285 + samples, m_int = _samples_per_period(fs_v, period_v) 286 + n_avg = _resolve_n_averages(n_averages, xa.size, samples, m_int) 287 + 288 + interpolated = abs(samples - round(samples)) >= _ALIGN_TOL 289 + blocks = np.empty((n_avg, m_int), dtype=np.float64) 290 + for n in range(n_avg): 291 + blocks[n] = _extract_period(xa, n * samples, m_int) 292 + 293 + period_waveform = np.asarray(blocks.mean(axis=0), dtype=np.float64) 294 + residual = np.asarray((blocks - period_waveform).ravel(), dtype=np.float64) 295 + residual_rms = float(np.sqrt(np.mean(residual * residual))) 296 + noise_reduction_db = 10.0 * float(np.log10(n_avg)) 297 + 298 + comb_freqs, comb_response = _comb_grid(period_v, n_avg, n_harmonics_v) 299 + times = np.arange(m_int, dtype=np.float64) * (period_v / m_int) 300 + 301 + return SynchronousAverageResult( 302 + period_waveform=period_waveform, 303 + times=times, 304 + residual=residual, 305 + n_averages=n_avg, 306 + samples_per_period=m_int, 307 + period=period_v, 308 + fs=fs_v, 309 + interpolated=bool(interpolated), 310 + noise_reduction_db=noise_reduction_db, 311 + residual_rms=residual_rms, 312 + comb_frequencies=comb_freqs, 313 + comb_response=comb_response, 314 + )
+48 -8
tests/metrology/test_miso.py
··· 184 184 assert float(np.median(np.abs(diff))) < 0.02 185 185 186 186 187 + def test_four_uncorrelated_inputs_general_q_identity() -> None: 188 + """Four mutually uncorrelated inputs (general q, not the old 2-3 cap). 189 + 190 + Oracle: Bendat & Piersol Eqs. 7.116/7.117. When the ``q`` inputs are 191 + mutually uncorrelated the conditioning removes nothing, so the partial 192 + coherence of each input equals its ordinary coherence (Eq. 7.117) and the 193 + multiple coherence equals the sum of the ordinary coherences (Eq. 7.116), 194 + bounded by one. The expected relations come from the standard, not from 195 + the code: four independent white records drive four distinct FIR paths 196 + into one output with additive measurement noise, so the inputs stay 197 + mutually uncorrelated by construction and both identities must hold. 198 + """ 199 + x0 = _white(50) 200 + x1 = _white(51) 201 + x2 = _white(52) 202 + x3 = _white(53) 203 + y = ( 204 + _fir(x0, [1.0, 0.4, -0.2]) 205 + + _fir(x1, [0.2, -0.6, 0.4]) 206 + + _fir(x2, [0.5, 0.3]) 207 + + _fir(x3, [-0.3, 0.5, 0.1]) 208 + + _white(54, rms=0.6) 209 + ) 210 + res = ph.miso_coherence([x0, x1, x2, x3], y, FS, nperseg=2048) 211 + 212 + # (a) general q >= 2 no longer raises, and (d) every array carries q = 4. 213 + assert res.n_inputs == 4 214 + assert res.ordinary_coherence.shape[0] == 4 215 + assert res.partial_coherence.shape[0] == 4 216 + assert res.coherent_output_spectra.shape[0] == 4 217 + assert res.multiple_coherence.shape == res.frequencies.shape 218 + 219 + band = _band(res.frequencies) 220 + # (b) per-input partial == ordinary (Eq. 7.117). The extra input widens the 221 + # Section 9.3 bias slightly over the two-input case, so allow a comfortable 222 + # few hundredths. 223 + for i in range(4): 224 + diff = np.abs( 225 + res.partial_coherence[i][band] - res.ordinary_coherence[i][band] 226 + ) 227 + assert float(np.median(diff)) < 0.03 228 + # (c) multiple == sum of ordinaries, clipped to one (Eq. 7.116). 229 + expected = np.minimum(res.ordinary_coherence[:, band].sum(axis=0), 1.0) 230 + diff_multiple = res.multiple_coherence[band] - expected 231 + assert float(np.median(np.abs(diff_multiple))) < 0.03 232 + 233 + 187 234 # --------------------------------------------------------------------------- 188 235 # Correlated inputs: partial coherence removes the shared path (the point) 189 236 # --------------------------------------------------------------------------- ··· 377 424 def test_rejects_single_input() -> None: 378 425 x1 = _white(140, n=1 << 14) 379 426 y = x1.copy() 380 - with pytest.raises(ValueError, match="2 or 3"): 427 + with pytest.raises(ValueError, match="at least two"): 381 428 ph.miso_coherence([x1], y, FS) 382 - 383 - 384 - def test_rejects_four_inputs() -> None: 385 - inputs = [_white(150 + i, n=1 << 14) for i in range(4)] 386 - y = _white(160, n=1 << 14) 387 - with pytest.raises(ValueError, match="2 or 3"): 388 - ph.miso_coherence(inputs, y, FS) 389 429 390 430 391 431 def test_rejects_mismatched_length() -> None:
+282
tests/metrology/test_synchronous_average.py
··· 1 + # Copyright (c) 2026. Jose M. Requena-Plens 2 + """Tests for time synchronous averaging (McFadden 1987). 3 + 4 + Clean-room oracles derived from P. D. McFadden, "A revised model for the 5 + extraction of periodic waveforms by time domain averaging", *Mechanical 6 + Systems and Signal Processing* 1(1) 1987, 83-95, with synthesised signals 7 + whose periodic part is known exactly: 8 + 9 + * the comb-filter closed form ``|C(f)| = |sin(N·π·f·T)/(N·sin(π·f·T))|`` 10 + (Eq. 8): unit teeth at the harmonics (Eq. 9), the mid-bin closed forms, 11 + and zeros at the nodes; 12 + * the revised-model correction, that a non-harmonic interfering tone is 13 + best rejected by placing a comb node on it (McFadden's 32.05-order 14 + example: ``N = 20`` beats the power-of-two ``N = 32``); 15 + * exact recovery of a noiseless periodic signal with an integer number of 16 + samples per period; 17 + * recovery within a band-limited interpolation bound for a non-integer 18 + number of samples per period; 19 + * the ``1/√N`` fall of the residual asynchronous-noise standard deviation. 20 + """ 21 + 22 + from __future__ import annotations 23 + 24 + import matplotlib 25 + 26 + matplotlib.use("Agg") 27 + 28 + import matplotlib.pyplot as plt # noqa: E402 29 + import numpy as np # noqa: E402 30 + import pytest # noqa: E402 31 + 32 + import phonometry as ph # noqa: E402 33 + from phonometry.metrology.synchronous_average import comb_filter_response 34 + 35 + FS = 8192.0 36 + #: One revolution spanning exactly 256 samples (32 revolutions per second). 37 + PERIOD = 1.0 / 32.0 38 + M = int(round(FS * PERIOD)) # 256 samples per period 39 + 40 + 41 + def _periodic(period: float, m: int, orders: tuple[float, ...]) -> np.ndarray: 42 + """A smooth signal periodic in ``period`` sampled on ``m`` points/period.""" 43 + phase = np.arange(m) * (period / m) / period 44 + out = np.zeros(m, dtype=np.float64) 45 + for k, order in enumerate(orders): 46 + out += (1.0 / (k + 1)) * np.cos(2.0 * np.pi * order * phase + 0.3 * k) 47 + return out 48 + 49 + 50 + def _repeat(one_period: np.ndarray, n: int) -> np.ndarray: 51 + return np.tile(one_period, n) 52 + 53 + 54 + # --------------------------------------------------------------------------- 55 + # Comb-filter closed form (McFadden Eq. 8 / Eq. 9) 56 + # --------------------------------------------------------------------------- 57 + 58 + 59 + def test_comb_unit_teeth_at_harmonics() -> None: 60 + """|C| = 1 at every harmonic k/T, independent of N (Eq. 9).""" 61 + harmonics = np.array([k / PERIOD for k in range(1, 9)]) 62 + for n in (1, 2, 4, 8, 20): 63 + response = comb_filter_response(harmonics, PERIOD, n) 64 + assert np.allclose(response, 1.0, atol=1e-9) 65 + 66 + 67 + def test_comb_midbin_closed_forms() -> None: 68 + """Closed-form values between the teeth.""" 69 + quarter = comb_filter_response(np.array([0.25 / PERIOD]), PERIOD, 2)[0] 70 + assert quarter == pytest.approx(1.0 / np.sqrt(2.0), abs=1e-12) 71 + half_n3 = comb_filter_response(np.array([0.5 / PERIOD]), PERIOD, 3)[0] 72 + assert half_n3 == pytest.approx(1.0 / 3.0, abs=1e-12) 73 + 74 + 75 + def test_comb_node_between_teeth() -> None: 76 + """|C| = 0 at the mid-node j/(N·T) with j not a multiple of N.""" 77 + node = comb_filter_response(np.array([0.5 / PERIOD]), PERIOD, 2)[0] 78 + assert node < 1e-12 79 + 80 + 81 + def test_comb_response_is_bounded() -> None: 82 + """The comb magnitude never exceeds unity on a dense grid.""" 83 + freqs = np.linspace(0.0, 8.0 / PERIOD, 4000) 84 + response = comb_filter_response(freqs, PERIOD, 7) 85 + assert float(np.max(response)) <= 1.0 + 1e-9 86 + 87 + 88 + # --------------------------------------------------------------------------- 89 + # McFadden's revised-model correction: choosing N to place a node 90 + # --------------------------------------------------------------------------- 91 + 92 + 93 + def test_mcfadden_node_selection_closed_form() -> None: 94 + """A 32.05-order tone: N=20 lands on a node, N=32 (power of 2) does not.""" 95 + freq = np.array([32.05 / PERIOD]) 96 + c20 = comb_filter_response(freq, PERIOD, 20)[0] 97 + c32 = comb_filter_response(freq, PERIOD, 32)[0] 98 + assert c20 < 1e-10 # 20 * 32.05 = 641 -> exact node 99 + assert c32 > 0.15 # 32 * 32.05 = 1025.6 -> passed with a side lobe 100 + assert c32 > 1e6 * max(c20, 1e-300) # >100 dB better rejection with N=20 101 + 102 + 103 + def test_mcfadden_node_selection_end_to_end() -> None: 104 + """The averaged waveform confirms the node: N=20 removes the interferer.""" 105 + n_span = 40 106 + phase = np.arange((n_span + 1) * M) / FS / PERIOD 107 + true = np.cos(2.0 * np.pi * 8.0 * phase) 108 + interferer = 0.7 * np.cos(2.0 * np.pi * 32.05 * phase + 0.4) 109 + signal = true + interferer 110 + true_one = np.cos(2.0 * np.pi * 8.0 * np.arange(M) / M) 111 + 112 + leak_20 = np.max( 113 + np.abs( 114 + ph.time_synchronous_average( 115 + signal, FS, PERIOD, n_averages=20 116 + ).period_waveform 117 + - true_one 118 + ) 119 + ) 120 + leak_32 = np.max( 121 + np.abs( 122 + ph.time_synchronous_average( 123 + signal, FS, PERIOD, n_averages=32 124 + ).period_waveform 125 + - true_one 126 + ) 127 + ) 128 + assert leak_20 < 1e-9 129 + assert leak_32 > 0.1 130 + 131 + 132 + # --------------------------------------------------------------------------- 133 + # Exact recovery (integer samples per period) 134 + # --------------------------------------------------------------------------- 135 + 136 + 137 + def test_exact_recovery_integer_period() -> None: 138 + """Noiseless periodic signal, integer M, recovered to machine precision.""" 139 + one = _periodic(PERIOD, M, (1.0, 3.0, 5.0)) 140 + signal = _repeat(one, 24) 141 + result = ph.time_synchronous_average(signal, FS, PERIOD) 142 + 143 + assert result.interpolated is False 144 + assert result.samples_per_period == M 145 + assert result.n_averages == 24 146 + assert np.max(np.abs(result.period_waveform - one)) < 1e-12 147 + assert result.residual_rms < 1e-12 148 + 149 + 150 + def test_times_span_one_period() -> None: 151 + one = _periodic(PERIOD, M, (2.0,)) 152 + result = ph.time_synchronous_average(_repeat(one, 10), FS, PERIOD) 153 + assert result.times.size == M 154 + assert result.times[0] == pytest.approx(0.0, abs=1e-15) 155 + assert result.times[-1] < PERIOD 156 + 157 + 158 + # --------------------------------------------------------------------------- 159 + # Non-integer samples per period: fractional-delay alignment 160 + # --------------------------------------------------------------------------- 161 + 162 + 163 + def test_noninteger_period_recovered_within_bound() -> None: 164 + """A non-integer M is aligned by band-limited fractional delay.""" 165 + period = 1.0 / 31.7 # FS * period is not an integer 166 + m_int = int(round(FS * period)) 167 + phase = np.arange(30 * m_int) / FS / period 168 + signal = np.cos(2.0 * np.pi * phase) + 0.4 * np.cos( 169 + 2.0 * np.pi * 2.0 * phase + 0.3 170 + ) 171 + result = ph.time_synchronous_average(signal, FS, period) 172 + 173 + assert result.interpolated is True 174 + reference = np.cos( 175 + 2.0 * np.pi * np.arange(m_int) * (period / m_int) / period 176 + ) + 0.4 * np.cos( 177 + 2.0 * np.pi * 2.0 * np.arange(m_int) * (period / m_int) / period + 0.3 178 + ) 179 + assert np.max(np.abs(result.period_waveform - reference)) < 0.05 180 + 181 + 182 + # --------------------------------------------------------------------------- 183 + # Noise reduction: 1/sqrt(N) law 184 + # --------------------------------------------------------------------------- 185 + 186 + 187 + def test_noise_reduction_sqrt_n_law() -> None: 188 + """Residual asynchronous-noise std falls as 1/sqrt(N) (statistical).""" 189 + one = _periodic(PERIOD, M, (1.0, 4.0)) 190 + rng = np.random.default_rng(2024) 191 + n_avg = 64 192 + sigma = 1.0 193 + signal = _repeat(one, n_avg) + rng.standard_normal(n_avg * M) * sigma 194 + result = ph.time_synchronous_average(signal, FS, PERIOD, n_averages=n_avg) 195 + 196 + residual_of_average = result.period_waveform - one 197 + measured = float(np.std(residual_of_average)) 198 + predicted = sigma / np.sqrt(n_avg) 199 + # 256 samples estimate the std of a zero-mean Gaussian to a relative 200 + # error ~ 1/sqrt(2*256) ~ 4.4 %; 15 % is a comfortable statistical band. 201 + assert measured == pytest.approx(predicted, rel=0.15) 202 + 203 + 204 + def test_noise_reduction_db_matches_n() -> None: 205 + one = _periodic(PERIOD, M, (1.0,)) 206 + result = ph.time_synchronous_average(_repeat(one, 100), FS, PERIOD) 207 + assert result.noise_reduction_db == pytest.approx(20.0, abs=1e-9) 208 + assert result.amplitude_snr_gain == pytest.approx(10.0, abs=1e-9) 209 + 210 + 211 + # --------------------------------------------------------------------------- 212 + # Validation and plotting 213 + # --------------------------------------------------------------------------- 214 + 215 + 216 + def test_default_n_averages_uses_whole_record() -> None: 217 + one = _periodic(PERIOD, M, (1.0,)) 218 + result = ph.time_synchronous_average(_repeat(one, 12), FS, PERIOD) 219 + assert result.n_averages == 12 220 + 221 + 222 + def test_requested_n_averages_over_available_raises() -> None: 223 + signal = _repeat(_periodic(PERIOD, M, (1.0,)), 5) 224 + with pytest.raises(ValueError, match="exceeds"): 225 + ph.time_synchronous_average(signal, FS, PERIOD, n_averages=6) 226 + 227 + 228 + @pytest.mark.parametrize( 229 + ("kwargs", "match"), 230 + [ 231 + ({"n_averages": 0}, "positive integer"), 232 + ({"n_harmonics": 0}, "positive integer"), 233 + ], 234 + ) 235 + def test_invalid_parameters_raise(kwargs: dict, match: str) -> None: 236 + signal = _repeat(_periodic(PERIOD, M, (1.0,)), 4) 237 + with pytest.raises(ValueError, match=match): 238 + ph.time_synchronous_average(signal, FS, PERIOD, **kwargs) 239 + 240 + 241 + def test_period_too_short_raises() -> None: 242 + signal = _repeat(_periodic(PERIOD, M, (1.0,)), 4) 243 + tiny_period = 1.0 / FS # spans a single sample 244 + with pytest.raises(ValueError, match="at least 2 samples"): 245 + ph.time_synchronous_average(signal, FS, tiny_period) 246 + 247 + 248 + def test_record_shorter_than_one_period_raises() -> None: 249 + short = np.zeros(M // 2, dtype=np.float64) 250 + with pytest.raises(ValueError, match="shorter than one period"): 251 + ph.time_synchronous_average(short, FS, PERIOD) 252 + 253 + 254 + def test_comb_filter_response_validation() -> None: 255 + one = np.array([1.0]) 256 + with pytest.raises(ValueError, match="positive integer"): 257 + comb_filter_response(one, PERIOD, 0) 258 + with pytest.raises(ValueError, match="positive"): 259 + comb_filter_response(one, -1.0, 2) 260 + 261 + 262 + def test_plot_returns_axes() -> None: 263 + one = _periodic(PERIOD, M, (1.0, 3.0)) 264 + result = ph.time_synchronous_average(_repeat(one, 8), FS, PERIOD) 265 + 266 + axes = result.plot() 267 + assert axes.shape == (2,) 268 + plt.close("all") 269 + 270 + _, ax = plt.subplots() 271 + returned = result.plot(ax=ax, language="es") 272 + assert returned is ax 273 + plt.close("all") 274 + 275 + 276 + def test_plot_rejects_unknown_language() -> None: 277 + result = ph.time_synchronous_average( 278 + _repeat(_periodic(PERIOD, M, (1.0,)), 4), FS, PERIOD 279 + ) 280 + with pytest.raises(ValueError): 281 + result.plot(language="fr") 282 + plt.close("all")