[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.

Baffled-piston directivity result and .plot()

Add a PistonDirectivity result and the piston_directivity_pattern constructor wrapping the existing baffled-piston far-field directivity, with a .plot() that draws the beam pattern in dB as a polar diagram for one or more ka values.

authored by

José M. Requena Plens and committed by
GitHub
(Jul 22, 2026, 4:57 AM +0200) 32cfd7e4 4d04c41f

+3840 -1
+9
CHANGELOG.md
··· 17 17 grid. Its `.plot()` draws the response on a logarithmic frequency axis, the 18 18 combined curve with the two stages as light companions; `language="es"` 19 19 renders the Spanish labels. 20 + - `piston_directivity_pattern()` and the `PistonDirectivity` result: the 21 + far-field directivity of a rigid baffled circular piston 22 + (`D(theta) = 2 J1(ka sin theta)/(ka sin theta)`, Beranek & Mellow Eq. (4.42)) 23 + is now a plottable result carrying the polar-angle grid, the linear 24 + directivity and its dB form and the `ka` value(s). Its `.plot()` draws the 25 + classic polar beam pattern in dB over the front hemisphere; passing several 26 + `ka` shows them as one family, so the main lobe narrowing and the emergence 27 + of the side lobes read at a glance. `language="es"` renders the Spanish 28 + labels. The underlying `piston_directivity()` maths is unchanged. 20 29 - `TrendTestResult.plot()`: a one-line canonical figure for the nonparametric 21 30 trend test (Bendat & Piersol, *Random Data* Sec. 4.5.2), mirroring the 22 31 companion `StationarityTestResult.plot()`. It draws the tested sequence
+2
llms-full.txt
··· 12296 12296 | `radiating_piston` | `function` | **Radiation of a rigid baffled circular piston (Beranek & Mellow §4.19/§13.7).**<br>• `radius` a [m], `frequencies` [Hz]<br>• `speed_of_sound` (Default: 343), `density` (Default: 1.206)<br>• `angles`: directivity polar angles [rad] (Default: None) | `res = radiating_piston(0.1, freqs)`<br><br>• `RadiatingPistonResult` | 12297 12297 | `piston_resistance` / `piston_reactance` | `function` | **Normalized piston radiation impedance R1 = 1−2J1(x)/x, X1 = 2H1(x)/x, x = 2ka (Beranek & Mellow Eqs. 13.117/13.118).** | `piston_resistance(2.0) # 0.4233` | 12298 12298 | `piston_directivity` | `function` | **Far-field piston directivity 2·J1(ka·sinθ)/(ka·sinθ).**<br>• `ka`, `theta` [rad] | `piston_directivity(5.0, 0.3)` | 12299 + | `piston_directivity_pattern` | `function` | **Far-field directivity (beam) pattern of one or more baffled pistons.**<br>• `ka` (scalar or 1-D)<br>• `angles` [rad] (Default: front hemisphere −90°…+90°) | `p = piston_directivity_pattern([3, 8, 16])`<br><br>• `PistonDirectivity` | 12299 12300 | `RadiatingPistonResult` | `dataclass` | **Piston radiation result.**<br>• `ka`, `resistance`/`reactance`, `radiation_resistance`/`radiation_reactance` [N·s/m], `radiation_mass` = 8ρa³/3 [kg], `directivity_index` [dB], `directivity`<br>• `.plot()`: R1/X1 vs ka | `res.radiation_mass` | 12301 + | `PistonDirectivity` | `dataclass` | **Piston directivity-pattern result.**<br>• `angles` [rad], `ka`, `directivity` (linear), `directivity_db`<br>• `.plot()`: polar beam pattern in dB (family over ka) | `p.plot()` | 12300 12302 | `loudspeaker_characteristics` | `function` | **Rated loudspeaker characteristics for an IEC 60268-5 report.**<br>• `frequencies`, `spl_db` (on-axis SPL), `rated_impedance` R [Ω]<br>• `input_voltage` (Default: √R → 1 W), `distance` (Default: 1 m), `sensitivity_band`, `tolerance_db`<br>• `impedance`, `distortion`, `directivity`/`polar` panels | `res = loudspeaker_characteristics(f, spl, 8.0)`<br><br>• `LoudspeakerCharacteristics` | 12301 12303 | `LoudspeakerCharacteristics` | `dataclass` | **Loudspeaker rated-characteristics result (IEC 60268-5).**<br>• `sensitivity_level_db` (1 W/1 m, 20.3/20.4), `effective_range` (21.2), `reference_level_db`, `characteristic_sensitivity_pa`, `minimum_impedance`<br>• `.report()`: IEC 60268-5 fiche (graphs to IEC 60263) | `res.effective_range` | 12302 12304 | `microphone_characteristics` | `function` | **Rated microphone characteristics for an IEC 60268-4 report.**<br>• `frequencies`, `response_db` (free-field, re the reference frequency), `sensitivity_mv_per_pa` M [mV/Pa]<br>• `reference_frequency` (Default: 1 kHz), `tolerance_db` (Default: 2), `rated_impedance`/`minimum_load_impedance` [Ω], `noise_voltage` or `equivalent_noise_level_db`, `max_spl_db`/`max_spl_thd_percent`<br>• `distortion`, `noise_spectrum`, `polar` panels; `powering`, `supply_current_ma` | `res = microphone_characteristics(f, resp, 12.5)`<br><br>• `MicrophoneCharacteristics` |
+2
docs/api-reference.md
··· 377 377 | `radiating_piston` | `function` | **Radiation of a rigid baffled circular piston (Beranek & Mellow §4.19/§13.7).**<br>• `radius` a [m], `frequencies` [Hz]<br>• `speed_of_sound` (Default: 343), `density` (Default: 1.206)<br>• `angles`: directivity polar angles [rad] (Default: None) | `res = radiating_piston(0.1, freqs)`<br><br>• `RadiatingPistonResult` | 378 378 | `piston_resistance` / `piston_reactance` | `function` | **Normalized piston radiation impedance R1 = 1−2J1(x)/x, X1 = 2H1(x)/x, x = 2ka (Beranek & Mellow Eqs. 13.117/13.118).** | `piston_resistance(2.0) # 0.4233` | 379 379 | `piston_directivity` | `function` | **Far-field piston directivity 2·J1(ka·sinθ)/(ka·sinθ).**<br>• `ka`, `theta` [rad] | `piston_directivity(5.0, 0.3)` | 380 + | `piston_directivity_pattern` | `function` | **Far-field directivity (beam) pattern of one or more baffled pistons.**<br>• `ka` (scalar or 1-D)<br>• `angles` [rad] (Default: front hemisphere −90°…+90°) | `p = piston_directivity_pattern([3, 8, 16])`<br><br>• `PistonDirectivity` | 380 381 | `RadiatingPistonResult` | `dataclass` | **Piston radiation result.**<br>• `ka`, `resistance`/`reactance`, `radiation_resistance`/`radiation_reactance` [N·s/m], `radiation_mass` = 8ρa³/3 [kg], `directivity_index` [dB], `directivity`<br>• `.plot()`: R1/X1 vs ka | `res.radiation_mass` | 382 + | `PistonDirectivity` | `dataclass` | **Piston directivity-pattern result.**<br>• `angles` [rad], `ka`, `directivity` (linear), `directivity_db`<br>• `.plot()`: polar beam pattern in dB (family over ka) | `p.plot()` | 381 383 | `loudspeaker_characteristics` | `function` | **Rated loudspeaker characteristics for an IEC 60268-5 report.**<br>• `frequencies`, `spl_db` (on-axis SPL), `rated_impedance` R [Ω]<br>• `input_voltage` (Default: √R → 1 W), `distance` (Default: 1 m), `sensitivity_band`, `tolerance_db`<br>• `impedance`, `distortion`, `directivity`/`polar` panels | `res = loudspeaker_characteristics(f, spl, 8.0)`<br><br>• `LoudspeakerCharacteristics` | 382 384 | `LoudspeakerCharacteristics` | `dataclass` | **Loudspeaker rated-characteristics result (IEC 60268-5).**<br>• `sensitivity_level_db` (1 W/1 m, 20.3/20.4), `effective_range` (21.2), `reference_level_db`, `characteristic_sensitivity_pa`, `minimum_impedance`<br>• `.report()`: IEC 60268-5 fiche (graphs to IEC 60263) | `res.effective_range` | 383 385 | `microphone_characteristics` | `function` | **Rated microphone characteristics for an IEC 60268-4 report.**<br>• `frequencies`, `response_db` (free-field, re the reference frequency), `sensitivity_mv_per_pa` M [mV/Pa]<br>• `reference_frequency` (Default: 1 kHz), `tolerance_db` (Default: 2), `rated_impedance`/`minimum_load_impedance` [Ω], `noise_voltage` or `equivalent_noise_level_db`, `max_spl_db`/`max_spl_thd_percent`<br>• `distortion`, `noise_spectrum`, `polar` panels; `powering`, `supply_current_ma` | `res = microphone_characteristics(f, resp, 12.5)`<br><br>• `MicrophoneCharacteristics` |
+30
docs/electroacoustics.md
··· 327 327 callable directly. The piston is the companion radiator of the 328 328 [industrial noise-control silencers](noise-control.md). 329 329 330 + The far-field **directivity pattern** is a plottable result in its own right: 331 + `piston_directivity_pattern(ka)` samples `D(theta)` at one or more `ka` values 332 + and returns a `PistonDirectivity` (the polar angle grid, the linear `directivity` 333 + and its dB form `directivity_db`, and the `ka` values) whose `.plot()` draws the 334 + classic polar beam pattern. Several `ka` are shown as one family, so the main 335 + lobe narrowing and the side lobes appearing read at a glance: 336 + 337 + ```python 338 + from phonometry import piston_directivity_pattern 339 + 340 + pattern = piston_directivity_pattern([3.0, 8.0, 16.0]) 341 + print(pattern.directivity_db.shape) # (3, 361): one row per ka 342 + pattern.plot() # polar beam pattern in dB (needs matplotlib) 343 + ``` 344 + 345 + <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/piston_directivity_dark.svg"><img src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/piston_directivity.svg" alt="Polar far-field directivity of a baffled circular piston at ka of 3, 8 and 16 over the front hemisphere, the on-axis level at the top as the 0 dB reference, showing the main lobe narrowing and the side lobes appearing as ka grows" width="72%"></picture> 346 + 347 + <details> 348 + <summary>Show the code for this figure</summary> 349 + 350 + ```python 351 + import matplotlib.pyplot as plt 352 + from phonometry import piston_directivity_pattern 353 + 354 + piston_directivity_pattern([3.0, 8.0, 16.0]).plot() 355 + plt.show() 356 + ``` 357 + 358 + </details> 359 + 330 360 ## References 331 361 332 362 - Beranek, L. L., & Mellow, T. J. (2012). *Acoustics: Sound fields and
+12
scripts/generate_graphs.py
··· 4062 4062 plt.close() 4063 4063 4064 4064 4065 + def generate_piston_directivity(output_dir: str) -> None: 4066 + """Far-field beam pattern of a baffled circular piston at three ka values.""" 4067 + print("Generating piston_directivity...") 4068 + from phonometry import piston_directivity_pattern 4069 + 4070 + piston_directivity_pattern([3.0, 8.0, 16.0]).plot(language=_LANG) 4071 + save_figure(output_dir, "piston_directivity.svg") 4072 + plt.close() 4073 + 4074 + 4065 4075 def _loudspeaker_datasheet_example() -> Any: 4066 4076 """The IEC 60268-5 loudspeaker result shared by the section-7 .plot() figures.""" 4067 4077 from phonometry import loudspeaker_characteristics, radiating_piston ··· 8873 8883 # Swept-sine harmonic separation: THD(f) by order from one synchronized 8874 8884 # sweep (Farina 2000 / Novak et al. 2015). 8875 8885 generate_swept_sine_thd, 8886 + # Far-field directivity (beam) pattern of a baffled circular piston. 8887 + generate_piston_directivity, 8876 8888 # Single-concept rated-characteristic .plot() figures, sharing their panel 8877 8889 # drawing with the .report() fiches (IEC 60268-5 loudspeaker, IEC 60268-4 8878 8890 # microphone).
+850
.github/images/piston_directivity.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="388.593061pt" height="397.909925pt" viewBox="0 0 388.593061 397.909925" 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 397.909925 24 + L 388.593061 397.909925 25 + L 388.593061 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 361.242486 271.798125 33 + C 361.242486 227.704236 343.707574 185.371213 312.528486 154.192125 34 + C 281.349398 123.013037 239.016375 105.478125 194.922486 105.478125 35 + C 150.828597 105.478125 108.495574 123.013037 77.316486 154.192125 36 + C 46.137398 185.371213 28.602486 227.704236 28.602486 271.798125 37 + L 194.922486 271.798125 38 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 39 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 40 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 41 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 42 + z 43 + " style="fill: #ffffff"/> 44 + </g> 45 + <g id="matplotlib.axis_1"> 46 + <g id="xtick_1"> 47 + <g id="line2d_1"> 48 + <path d="M 194.922486 271.798125 49 + L 28.602486 271.798125 50 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 51 + </g> 52 + <g id="text_1"> 53 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle" x="14.602486" y="273.600898" transform="rotate(-0 14.602486 273.600898)">-90°</text> 54 + </g> 55 + </g> 56 + <g id="xtick_2"> 57 + <g id="line2d_2"> 58 + <path d="M 194.922486 271.798125 59 + L 50.885141 188.638125 60 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 61 + </g> 62 + <g id="text_2"> 63 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle" x="38.760785" y="183.440898" transform="rotate(-0 38.760785 183.440898)">-60°</text> 64 + </g> 65 + </g> 66 + <g id="xtick_3"> 67 + <g id="line2d_3"> 68 + <path d="M 194.922486 271.798125 69 + L 111.762486 127.76078 70 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 71 + </g> 72 + <g id="text_3"> 73 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle" x="104.762486" y="117.439198" transform="rotate(-0 104.762486 117.439198)">-30°</text> 74 + </g> 75 + </g> 76 + <g id="xtick_4"> 77 + <g id="line2d_4"> 78 + <path d="M 194.922486 271.798125 79 + L 194.922486 105.478125 80 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 81 + </g> 82 + <g id="text_4"> 83 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle" x="194.922486" y="93.280898" transform="rotate(-0 194.922486 93.280898)">0°</text> 84 + </g> 85 + </g> 86 + <g id="xtick_5"> 87 + <g id="line2d_5"> 88 + <path d="M 194.922486 271.798125 89 + L 278.082486 127.76078 90 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 91 + </g> 92 + <g id="text_5"> 93 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle" x="285.082486" y="117.439198" transform="rotate(-0 285.082486 117.439198)">30°</text> 94 + </g> 95 + </g> 96 + <g id="xtick_6"> 97 + <g id="line2d_6"> 98 + <path d="M 194.922486 271.798125 99 + L 338.959831 188.638125 100 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 101 + </g> 102 + <g id="text_6"> 103 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle" x="351.084187" y="183.440898" transform="rotate(-0 351.084187 183.440898)">60°</text> 104 + </g> 105 + </g> 106 + <g id="xtick_7"> 107 + <g id="line2d_7"> 108 + <path d="M 194.922486 271.798125 109 + L 361.242486 271.798125 110 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 111 + </g> 112 + <g id="text_7"> 113 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle" x="375.242486" y="273.600898" transform="rotate(-0 375.242486 273.600898)">90°</text> 114 + </g> 115 + </g> 116 + </g> 117 + <g id="matplotlib.axis_2"> 118 + <g id="ytick_1"> 119 + <g id="line2d_8"> 120 + <path d="M 194.922486 271.798125 121 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 122 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 123 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 124 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 125 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 126 + </g> 127 + <g id="text_8"> 128 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="194.922486" y="286.395781" transform="rotate(-0 194.922486 286.395781)">-40</text> 129 + </g> 130 + </g> 131 + <g id="ytick_2"> 132 + <g id="line2d_9"> 133 + <path d="M 153.342486 271.798125 134 + C 153.342486 260.774653 157.726214 250.191397 165.520986 242.396625 135 + C 173.315758 234.601853 183.899014 230.218125 194.922486 230.218125 136 + C 205.945958 230.218125 216.529214 234.601853 224.323986 242.396625 137 + C 232.118758 250.191397 236.502486 260.774653 236.502486 271.798125 138 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 139 + </g> 140 + <g id="text_9"> 141 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="153.342486" y="286.395781" transform="rotate(-0 153.342486 286.395781)">-30</text> 142 + </g> 143 + </g> 144 + <g id="ytick_3"> 145 + <g id="line2d_10"> 146 + <path d="M 111.762486 271.798125 147 + C 111.762486 249.75118 120.529942 228.584669 136.119486 212.995125 148 + C 151.70903 197.405581 172.875541 188.638125 194.922486 188.638125 149 + C 216.969431 188.638125 238.135942 197.405581 253.725486 212.995125 150 + C 269.31503 228.584669 278.082486 249.75118 278.082486 271.798125 151 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 152 + </g> 153 + <g id="text_10"> 154 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="111.762486" y="286.395781" transform="rotate(-0 111.762486 286.395781)">-20</text> 155 + </g> 156 + </g> 157 + <g id="ytick_4"> 158 + <g id="line2d_11"> 159 + <path d="M 70.182486 271.798125 160 + C 70.182486 238.727708 83.33367 206.977941 106.717986 183.593625 161 + C 130.102302 160.209309 161.852069 147.058125 194.922486 147.058125 162 + C 227.992903 147.058125 259.74267 160.209309 283.126986 183.593625 163 + C 306.511302 206.977941 319.662486 238.727708 319.662486 271.798125 164 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 165 + </g> 166 + <g id="text_11"> 167 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="70.182486" y="286.395781" transform="rotate(-0 70.182486 286.395781)">-10</text> 168 + </g> 169 + </g> 170 + <g id="ytick_5"> 171 + <g id="line2d_12"> 172 + <path d="M 28.602486 271.798125 173 + C 28.602486 227.704236 46.137398 185.371213 77.316486 154.192125 174 + C 108.495574 123.013037 150.828597 105.478125 194.922486 105.478125 175 + C 239.016375 105.478125 281.349398 123.013037 312.528486 154.192125 176 + C 343.707574 185.371213 361.242486 227.704236 361.242486 271.798125 177 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 178 + </g> 179 + <g id="text_12"> 180 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="28.602486" y="286.396562" transform="rotate(-0 28.602486 286.396562)">0 dB</text> 181 + </g> 182 + </g> 183 + </g> 184 + <g id="line2d_13"> 185 + <path d="M 82.308547 271.798125 186 + L 82.206961 263.916288 187 + L 81.844596 253.888347 188 + L 81.154629 235.927257 189 + L 81.109461 228.109398 190 + L 81.30233 221.211172 191 + L 81.67584 215.33543 192 + L 82.279898 209.359319 193 + L 83.146018 203.301417 194 + L 84.046486 198.410902 195 + L 85.145133 193.4947 196 + L 86.452833 188.566433 197 + L 87.978793 183.640548 198 + L 89.73055 178.732162 199 + L 91.713981 173.856911 200 + L 93.93333 169.030813 201 + L 96.391236 164.270135 202 + L 99.08878 159.591272 203 + L 102.025521 155.010634 204 + L 105.199551 150.544537 205 + L 108.607543 146.209103 206 + L 112.244805 142.020162 207 + L 116.105341 137.993164 208 + L 120.181901 134.143091 209 + L 124.46605 130.484377 210 + L 128.948229 127.03083 211 + L 133.617818 123.795563 212 + L 138.463207 120.790924 213 + L 143.471866 118.028432 214 + L 148.630418 115.518723 215 + L 153.924711 113.271492 216 + L 157.975604 111.763597 217 + L 162.088018 110.411561 218 + L 166.255284 109.218343 219 + L 170.470574 108.18656 220 + L 174.726925 107.318477 221 + L 179.017256 106.616001 222 + L 183.334393 106.080677 223 + L 187.671083 105.713684 224 + L 192.020018 105.515831 225 + L 196.373856 105.487552 226 + L 200.725243 105.628911 227 + L 205.066828 105.939595 228 + L 209.391291 106.418921 229 + L 213.69136 107.065834 230 + L 217.959829 107.878909 231 + L 222.189586 108.856359 232 + L 226.373625 109.996039 233 + L 230.505073 111.295448 234 + L 234.577204 112.751739 235 + L 239.903138 114.93195 236 + L 245.09698 117.376911 237 + L 250.144398 120.077169 238 + L 255.031814 123.022317 239 + L 259.746479 126.201054 240 + L 264.276545 129.601231 241 + L 268.611141 133.209922 242 + L 272.740434 137.013486 243 + L 276.655702 140.997637 244 + L 280.349395 145.147523 245 + L 283.815197 149.447805 246 + L 287.048083 153.882737 247 + L 290.044382 158.436264 248 + L 292.801824 163.092107 249 + L 295.319599 167.833871 250 + L 297.598401 172.645146 251 + L 299.640477 177.509622 252 + L 301.449666 182.411208 253 + L 303.031434 187.334158 254 + L 304.392901 192.263213 255 + L 305.542856 197.183743 256 + L 306.491759 202.081905 257 + L 307.413762 208.153623 258 + L 308.067821 214.147697 259 + L 308.484761 220.044815 260 + L 308.72026 226.97199 261 + L 308.727252 233.719583 262 + L 308.497063 242.425742 263 + L 307.542921 269.832328 264 + L 307.536424 271.798125 265 + L 307.536424 271.798125 266 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke: #1f77b4; stroke-width: 1.6; stroke-linecap: square"/> 267 + </g> 268 + <g id="line2d_14"> 269 + <path d="M 131.027723 271.798125 270 + L 131.151959 269.571209 271 + L 131.53122 267.365376 272 + L 132.185494 265.204201 273 + L 132.876843 263.629661 274 + L 133.762549 262.111343 275 + L 134.869313 260.667927 276 + L 136.231293 259.322927 277 + L 137.892191 258.106363 278 + L 139.192785 257.385444 279 + L 140.671963 256.753123 280 + L 142.355286 256.227011 281 + L 144.274449 255.82886 282 + L 146.469547 255.585998 283 + L 148.992534 255.533476 284 + L 151.912714 255.71743 285 + L 155.325841 256.200592 286 + L 159.370117 257.071852 287 + L 164.256426 258.464143 288 + L 170.331266 260.591261 289 + L 173.992727 262.038418 290 + L 178.226664 263.834627 291 + L 183.224973 266.092867 292 + L 194.922486 271.798125 293 + L 194.922486 271.798125 294 + L 184.610077 265.601805 295 + L 178.138315 261.512772 296 + L 172.759603 257.949218 297 + L 168.172615 254.756577 298 + L 160.682276 249.135024 299 + L 154.772331 244.203688 300 + L 149.980441 239.741276 301 + L 146.036779 235.624605 302 + L 142.770457 231.780466 303 + L 140.066738 228.163893 304 + L 137.845188 224.747232 305 + L 136.047568 221.514195 306 + L 134.630689 218.456449 307 + L 133.562008 215.571606 308 + L 132.816808 212.862037 309 + L 132.376365 210.334223 310 + L 132.22676 207.998491 311 + L 132.35814 205.869061 312 + L 132.764322 203.964393 313 + L 133.44271 202.30788 314 + L 134.394513 200.928974 315 + L 135.625335 199.864929 316 + L 136.348591 199.465389 317 + L 137.146285 199.163486 318 + L 138.020975 198.967513 319 + L 138.975861 198.887064 320 + L 140.014932 198.93334 321 + L 141.143154 199.119529 322 + L 142.366723 199.461323 323 + L 143.693412 199.977613 324 + L 145.133054 200.691447 325 + L 146.698218 201.63138 326 + L 148.405203 202.833417 327 + L 150.275518 204.343915 328 + L 152.338181 206.224045 329 + L 154.633426 208.556969 330 + L 157.219024 211.459973 331 + L 160.181726 215.106358 332 + L 163.659841 219.768346 333 + L 167.892975 225.911121 334 + L 173.350825 234.434913 335 + L 181.164295 247.480606 336 + L 194.922486 271.798125 337 + L 194.922486 271.798125 338 + L 186.498929 255.955718 339 + L 176.329096 236.080555 340 + L 170.179136 223.236566 341 + L 165.881973 213.551868 342 + L 162.671746 205.67431 343 + L 160.186039 198.971649 344 + L 158.22368 193.097281 345 + L 156.660927 187.840796 346 + L 155.415962 183.065019 347 + L 154.431687 178.675664 348 + L 153.666549 174.605228 349 + L 153.089266 170.803798 350 + L 152.675626 167.233477 351 + L 152.406444 163.864864 352 + L 152.242165 157.644422 353 + L 152.501631 152.005326 354 + L 153.117157 146.855167 355 + L 154.038026 142.129184 356 + L 155.224683 137.780589 357 + L 156.64522 133.774764 358 + L 158.273137 130.085606 359 + L 160.085858 126.693128 360 + L 162.063727 123.58184 361 + L 164.189286 120.739621 362 + L 166.446771 118.156916 363 + L 168.821729 115.826153 364 + L 171.300736 113.741306 365 + L 173.871179 111.897577 366 + L 176.52109 110.291147 367 + L 179.239009 108.918993 368 + L 182.01388 107.778736 369 + L 184.834961 106.868542 370 + L 187.691749 106.18703 371 + L 190.573923 105.733215 372 + L 193.471281 105.506462 373 + L 196.373691 105.506462 374 + L 199.271049 105.733215 375 + L 202.153223 106.18703 376 + L 205.010011 106.868542 377 + L 207.831092 107.778736 378 + L 210.605963 108.918993 379 + L 213.323882 110.291147 380 + L 215.973793 111.897577 381 + L 218.544236 113.741306 382 + L 221.023243 115.826153 383 + L 223.398201 118.156916 384 + L 225.655686 120.739621 385 + L 227.781245 123.58184 386 + L 229.759114 126.693128 387 + L 231.571835 130.085606 388 + L 233.199751 133.774764 389 + L 234.620289 137.780589 390 + L 235.806946 142.129184 391 + L 236.727815 146.855167 392 + L 237.343341 152.005326 393 + L 237.602807 157.644422 394 + L 237.578762 160.674728 395 + L 237.438528 163.864864 396 + L 237.169346 167.233477 397 + L 236.755706 170.803798 398 + L 236.178423 174.605228 399 + L 235.413284 178.675664 400 + L 234.42901 183.065019 401 + L 233.184045 187.840796 402 + L 231.621292 193.097281 403 + L 229.658933 198.971649 404 + L 227.173225 205.67431 405 + L 223.962999 213.551868 406 + L 219.665836 223.236566 407 + L 213.515876 236.080555 408 + L 203.346043 255.955718 409 + L 194.922486 271.798125 410 + L 194.922486 271.798125 411 + L 208.680676 247.480606 412 + L 216.494146 234.434913 413 + L 221.951997 225.911121 414 + L 226.185131 219.768346 415 + L 229.663245 215.106358 416 + L 232.625948 211.459973 417 + L 235.211546 208.556969 418 + L 237.506791 206.224045 419 + L 239.569454 204.343915 420 + L 241.439769 202.833417 421 + L 243.146754 201.63138 422 + L 244.711918 200.691447 423 + L 246.151559 199.977613 424 + L 247.478249 199.461323 425 + L 248.701818 199.119529 426 + L 249.830039 198.93334 427 + L 250.86911 198.887064 428 + L 251.823997 198.967513 429 + L 252.698686 199.163486 430 + L 253.496381 199.465389 431 + L 254.219637 199.864929 432 + L 255.450459 200.928974 433 + L 256.402262 202.30788 434 + L 257.08065 203.964393 435 + L 257.486832 205.869061 436 + L 257.618212 207.998491 437 + L 257.468607 210.334223 438 + L 257.028164 212.862037 439 + L 256.282964 215.571606 440 + L 255.214283 218.456449 441 + L 253.797404 221.514195 442 + L 251.999783 224.747232 443 + L 249.778234 228.163893 444 + L 247.074515 231.780466 445 + L 243.808193 235.624605 446 + L 239.864531 239.741276 447 + L 235.072641 244.203688 448 + L 229.162696 249.135024 449 + L 225.656177 251.839433 450 + L 221.672357 254.756577 451 + L 217.085369 257.949218 452 + L 211.706656 261.512772 453 + L 205.234894 265.601805 454 + L 194.922486 271.798125 455 + L 194.922486 271.798125 456 + L 200.547138 268.993777 457 + L 206.619998 266.092867 458 + L 215.852245 262.038418 459 + L 222.729676 259.417567 460 + L 228.154323 257.692047 461 + L 232.586857 256.580731 462 + L 236.294698 255.916821 463 + L 239.447219 255.592447 464 + L 242.158759 255.533372 465 + L 244.510383 255.68604 466 + L 246.56186 256.010384 467 + L 248.358681 256.475543 468 + L 249.936396 257.057192 469 + L 251.323403 257.735797 470 + L 253.095748 258.901423 471 + L 254.551959 260.20733 472 + L 255.73958 261.620834 473 + L 256.695671 263.11647 474 + L 257.449238 264.674101 475 + L 258.022789 266.277564 476 + L 258.536187 268.464272 477 + L 258.786292 270.683378 478 + L 258.817249 271.798125 479 + L 258.817249 271.798125 480 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke: #ff7f0e; stroke-width: 1.6; stroke-linecap: square"/> 481 + </g> 482 + <g id="line2d_15"> 483 + <path d="M 190.509611 271.798125 484 + L 190.329548 271.717955 485 + L 187.754514 271.296892 486 + L 183.750798 270.525272 487 + L 179.823093 269.541506 488 + L 175.644493 268.22516 489 + L 172.541373 267.040872 490 + L 169.596586 265.717914 491 + L 166.913815 264.293224 492 + L 164.586896 262.812314 493 + L 162.704656 261.329917 494 + L 161.356549 259.911803 495 + L 160.801888 259.040956 496 + L 160.559837 258.262318 497 + L 160.667836 257.609384 498 + L 160.866744 257.34232 499 + L 161.587175 256.956288 500 + L 162.79206 256.815461 501 + L 164.565286 256.991929 502 + L 167.023463 257.582863 503 + L 170.338046 258.726347 504 + L 174.779386 260.632622 505 + L 180.815544 263.653478 506 + L 184.688615 265.769914 507 + L 189.37534 268.465064 508 + L 194.922486 271.798125 509 + L 194.922486 271.798125 510 + L 187.9866 266.758909 511 + L 182.374971 262.513452 512 + L 177.789979 258.887855 513 + L 170.766609 252.925485 514 + L 165.769767 248.190719 515 + L 162.258625 244.389891 516 + L 159.947147 241.394527 517 + L 158.680969 239.166116 518 + L 158.4148 238.344994 519 + L 158.388201 237.729353 520 + L 158.60224 237.331499 521 + L 159.062089 237.168142 522 + L 159.777579 237.261321 523 + L 160.764195 237.639834 524 + L 162.044696 238.341443 525 + L 163.651727 239.416306 526 + L 165.632083 240.932481 527 + L 168.053941 242.985138 528 + L 171.019785 245.712904 529 + L 174.69131 249.329128 530 + L 179.342449 254.188096 531 + L 185.489824 260.947089 532 + L 194.922486 271.798125 533 + L 193.350186 269.821473 534 + L 183.990084 257.805289 535 + L 177.581329 249.198689 536 + L 172.839049 242.492415 537 + L 169.193242 237.027047 538 + L 166.340511 232.458412 539 + L 164.100356 228.587093 540 + L 162.357172 225.290037 541 + L 161.033145 222.488828 542 + L 160.074238 220.133473 543 + L 159.442428 218.193605 544 + L 159.111217 216.653606 545 + L 159.063033 215.510059 546 + L 159.287836 214.770764 547 + L 159.782608 214.455055 548 + L 160.551655 214.595457 549 + L 161.607837 215.241074 550 + L 162.975104 216.463637 551 + L 164.693233 218.368101 552 + L 166.826637 221.111872 553 + L 169.481725 224.942072 554 + L 172.844382 230.275251 555 + L 177.273383 237.894513 556 + L 183.592357 249.561495 557 + L 194.922486 271.798125 558 + L 193.195523 268.177472 559 + L 182.412127 244.969575 560 + L 176.349447 231.043311 561 + L 172.315124 221.021158 562 + L 169.450207 213.215894 563 + L 167.366817 206.881036 564 + L 165.855598 201.624449 565 + L 164.790415 197.218633 566 + L 164.08951 193.524055 567 + L 163.69723 190.453552 568 + L 163.574579 187.95434 569 + L 163.694018 185.998614 570 + L 164.036556 184.578949 571 + L 164.590235 183.706871 572 + L 165.349618 183.414139 573 + L 166.31622 183.757093 574 + L 167.500115 184.825475 575 + L 168.923441 186.759082 576 + L 170.627591 189.779935 577 + L 172.688605 194.259369 578 + L 175.254155 200.876413 579 + L 178.650928 211.071844 580 + L 183.82293 228.879326 581 + L 194.922486 271.798125 582 + L 188.641078 245.634179 583 + L 181.33833 212.958683 584 + L 177.897042 195.001311 585 + L 175.892453 182.268858 586 + L 174.67637 172.285288 587 + L 173.97409 164.027969 588 + L 173.641167 156.974403 589 + L 173.591028 150.821415 590 + L 173.766912 145.377398 591 + L 174.129055 140.51357 592 + L 174.648134 136.139272 593 + L 175.30161 132.188337 594 + L 176.071553 128.611076 595 + L 176.943287 125.369303 596 + L 177.904493 122.433121 597 + L 178.944607 119.778765 598 + L 180.054397 117.387119 599 + L 181.225658 115.242663 600 + L 182.450988 113.332714 601 + L 183.723619 111.646867 602 + L 185.037289 110.176577 603 + L 186.386135 108.91485 604 + L 187.764618 107.856 605 + L 189.16745 106.995469 606 + L 190.589543 106.329692 607 + L 192.025955 105.85599 608 + L 193.471857 105.5725 609 + L 194.922486 105.478125 610 + L 196.373115 105.5725 611 + L 197.819017 105.85599 612 + L 199.255429 106.329692 613 + L 200.677521 106.995469 614 + L 202.080354 107.856 615 + L 203.458837 108.91485 616 + L 204.807683 110.176577 617 + L 206.121353 111.646867 618 + L 207.393984 113.332714 619 + L 208.619314 115.242663 620 + L 209.790575 117.387119 621 + L 210.900365 119.778765 622 + L 211.940479 122.433121 623 + L 212.901685 125.369303 624 + L 213.773419 128.611076 625 + L 214.543362 132.188337 626 + L 215.196837 136.139272 627 + L 215.715917 140.51357 628 + L 216.07806 145.377398 629 + L 216.253944 150.821415 630 + L 216.203805 156.974403 631 + L 215.870882 164.027969 632 + L 215.168602 172.285288 633 + L 213.952519 182.268858 634 + L 211.94793 195.001311 635 + L 208.506642 212.958683 636 + L 201.203894 245.634179 637 + L 194.922486 271.798125 638 + L 206.022042 228.879326 639 + L 211.194044 211.071844 640 + L 214.590817 200.876413 641 + L 217.156367 194.259369 642 + L 219.217381 189.779935 643 + L 220.92153 186.759082 644 + L 222.344857 184.825475 645 + L 223.528751 183.757093 646 + L 224.495354 183.414139 647 + L 225.254737 183.706871 648 + L 225.808416 184.578949 649 + L 226.150954 185.998614 650 + L 226.270393 187.95434 651 + L 226.147742 190.453552 652 + L 225.755462 193.524055 653 + L 225.054557 197.218633 654 + L 223.989374 201.624449 655 + L 222.478155 206.881036 656 + L 220.394765 213.215894 657 + L 217.529848 221.021158 658 + L 213.495525 231.043311 659 + L 207.432844 244.969575 660 + L 194.922486 271.798125 661 + L 195.357834 270.924951 662 + L 206.252615 249.561495 663 + L 212.571589 237.894513 664 + L 217.00059 230.275251 665 + L 220.363247 224.942072 666 + L 223.018335 221.111872 667 + L 225.151739 218.368101 668 + L 226.869868 216.463637 669 + L 228.237135 215.241074 670 + L 229.293317 214.595457 671 + L 230.062364 214.455055 672 + L 230.557136 214.770764 673 + L 230.781939 215.510059 674 + L 230.733755 216.653606 675 + L 230.402544 218.193605 676 + L 229.770734 220.133473 677 + L 228.811827 222.488828 678 + L 227.4878 225.290037 679 + L 225.744616 228.587093 680 + L 223.504461 232.458412 681 + L 220.65173 237.027047 682 + L 217.005923 242.492415 683 + L 212.263643 249.198689 684 + L 205.854888 257.805289 685 + L 194.922486 271.798125 686 + L 195.551311 271.061866 687 + L 204.355148 260.947089 688 + L 210.502523 254.188096 689 + L 215.153662 249.329128 690 + L 218.825187 245.712904 691 + L 221.791031 242.985138 692 + L 224.212888 240.932481 693 + L 226.193245 239.416306 694 + L 227.800276 238.341443 695 + L 229.080777 237.639834 696 + L 230.067393 237.261321 697 + L 230.782883 237.168142 698 + L 231.242732 237.331499 699 + L 231.456771 237.729353 700 + L 231.430172 238.344994 701 + L 231.164003 239.166116 702 + L 230.655463 240.184257 703 + L 229.897825 241.394527 704 + L 227.586347 244.389891 705 + L 224.075205 248.190719 706 + L 219.078363 252.925485 707 + L 215.870296 255.724305 708 + L 212.054993 258.887855 709 + L 207.470001 262.513452 710 + L 201.858372 266.758909 711 + L 194.922486 271.798125 712 + L 194.922486 271.798125 713 + L 205.156357 265.769914 714 + L 212.28888 261.972692 715 + L 217.449912 259.566731 716 + L 221.285088 258.074623 717 + L 224.145283 257.228176 718 + L 226.243671 256.858686 719 + L 227.720562 256.851181 720 + L 228.674232 257.122448 721 + L 229.177136 257.609384 722 + L 229.285134 258.262318 723 + L 229.043084 259.040956 724 + L 228.488423 259.911803 725 + L 227.653592 260.84645 726 + L 225.939243 262.315351 727 + L 223.750775 263.803333 728 + L 221.176549 265.252252 729 + L 218.308158 266.613646 730 + L 215.245514 267.847729 731 + L 211.056422 269.24276 732 + L 207.033222 270.311114 733 + L 202.779685 271.17975 734 + L 199.335361 271.798125 735 + L 199.335361 271.798125 736 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke: #2ca02c; stroke-width: 1.6; stroke-linecap: square"/> 737 + </g> 738 + <g id="patch_3"> 739 + <path d="M 361.242486 271.798125 740 + C 361.242486 227.704236 343.707574 185.371213 312.528486 154.192125 741 + C 281.349398 123.013037 239.016375 105.478125 194.922486 105.478125 742 + C 150.828597 105.478125 108.495574 123.013037 77.316486 154.192125 743 + C 46.137398 185.371213 28.602486 227.704236 28.602486 271.798125 744 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 745 + </g> 746 + <g id="patch_4"> 747 + <path d="M 194.922486 271.798125 748 + L 28.602486 271.798125 749 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 750 + </g> 751 + <g id="patch_5"> 752 + <path d="M 194.922486 271.798125 753 + L 361.242486 271.798125 754 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 755 + </g> 756 + <g id="text_13"> 757 + <text style="font-size: 12px; font-family: sans-serif; text-anchor: middle" x="194.922486" y="16.318125" transform="rotate(-0 194.922486 16.318125)">Baffled circular piston directivity</text> 758 + </g> 759 + <g id="legend_1"> 760 + <g id="patch_6"> 761 + <path d="M 97.628086 390.709925 762 + L 292.216886 390.709925 763 + Q 293.882886 390.709925 293.882886 389.043925 764 + L 293.882886 377.379973 765 + Q 293.882886 375.713973 292.216886 375.713973 766 + L 97.628086 375.713973 767 + Q 95.962086 375.713973 95.962086 377.379973 768 + L 95.962086 389.043925 769 + Q 95.962086 390.709925 97.628086 390.709925 770 + z 771 + " style="fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 772 + </g> 773 + <g id="line2d_16"> 774 + <path d="M 99.294086 382.461273 775 + L 107.624086 382.461273 776 + L 115.954086 382.461273 777 + " style="fill: none; stroke: #1f77b4; stroke-width: 1.6; stroke-linecap: square"/> 778 + </g> 779 + <g id="text_14"> 780 + <!-- $ka$ = 3 --> 781 + <g transform="translate(122.618086 385.376773)"> 782 + <text> 783 + <tspan x="0" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif">k</tspan> 784 + <tspan x="4.82283" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif">a</tspan> 785 + <tspan x="9.926254" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif"> </tspan> 786 + <tspan x="12.573532" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif">=</tspan> 787 + <tspan x="19.55159" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif"> </tspan> 788 + <tspan x="22.198868" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif">3</tspan> 789 + </text> 790 + </g> 791 + </g> 792 + <g id="line2d_17"> 793 + <path d="M 166.850386 382.461273 794 + L 175.180386 382.461273 795 + L 183.510386 382.461273 796 + " style="fill: none; stroke: #ff7f0e; stroke-width: 1.6; stroke-linecap: square"/> 797 + </g> 798 + <g id="text_15"> 799 + <!-- $ka$ = 8 --> 800 + <g transform="translate(190.174386 385.376773)"> 801 + <text> 802 + <tspan x="0" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif">k</tspan> 803 + <tspan x="4.82283" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif">a</tspan> 804 + <tspan x="9.926254" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif"> </tspan> 805 + <tspan x="12.573532" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif">=</tspan> 806 + <tspan x="19.55159" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif"> </tspan> 807 + <tspan x="22.198868" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif">8</tspan> 808 + </text> 809 + </g> 810 + </g> 811 + <g id="line2d_18"> 812 + <path d="M 234.406686 382.461273 813 + L 242.736686 382.461273 814 + L 251.066686 382.461273 815 + " style="fill: none; stroke: #2ca02c; stroke-width: 1.6; stroke-linecap: square"/> 816 + </g> 817 + <g id="text_16"> 818 + <!-- $ka$ = 16 --> 819 + <g transform="translate(257.730686 385.376773)"> 820 + <text> 821 + <tspan x="0" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif">k</tspan> 822 + <tspan x="4.82283" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif">a</tspan> 823 + <tspan x="9.926254" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif"> </tspan> 824 + <tspan x="12.573532" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif">=</tspan> 825 + <tspan x="19.55159" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif"> </tspan> 826 + <tspan x="22.198868" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif">1</tspan> 827 + <tspan x="27.497482" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif">6</tspan> 828 + </text> 829 + </g> 830 + </g> 831 + </g> 832 + </g> 833 + </g> 834 + <defs> 835 + <clipPath id="pc6bef66950"> 836 + <path d="M 361.242486 271.798125 837 + C 361.242486 227.704236 343.707574 185.371213 312.528486 154.192125 838 + C 281.349398 123.013037 239.016375 105.478125 194.922486 105.478125 839 + C 150.828597 105.478125 108.495574 123.013037 77.316486 154.192125 840 + C 46.137398 185.371213 28.602486 227.704236 28.602486 271.798125 841 + L 194.922486 271.798125 842 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 843 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 844 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 845 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 846 + z 847 + "/> 848 + </clipPath> 849 + </defs> 850 + </svg>
+850
.github/images/piston_directivity_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="388.593061pt" height="397.909925pt" viewBox="0 0 388.593061 397.909925" 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 397.909925 24 + L 388.593061 397.909925 25 + L 388.593061 0 26 + L 0 0 27 + z 28 + "/> 29 + </g> 30 + <g id="axes_1"> 31 + <g id="patch_2"> 32 + <path d="M 361.242486 271.798125 33 + C 361.242486 227.704236 343.707574 185.371213 312.528486 154.192125 34 + C 281.349398 123.013037 239.016375 105.478125 194.922486 105.478125 35 + C 150.828597 105.478125 108.495574 123.013037 77.316486 154.192125 36 + C 46.137398 185.371213 28.602486 227.704236 28.602486 271.798125 37 + L 194.922486 271.798125 38 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 39 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 40 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 41 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 42 + z 43 + "/> 44 + </g> 45 + <g id="matplotlib.axis_1"> 46 + <g id="xtick_1"> 47 + <g id="line2d_1"> 48 + <path d="M 194.922486 271.798125 49 + L 28.602486 271.798125 50 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 51 + </g> 52 + <g id="text_1"> 53 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="14.602486" y="273.600898" transform="rotate(-0 14.602486 273.600898)">-90°</text> 54 + </g> 55 + </g> 56 + <g id="xtick_2"> 57 + <g id="line2d_2"> 58 + <path d="M 194.922486 271.798125 59 + L 50.885141 188.638125 60 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 61 + </g> 62 + <g id="text_2"> 63 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="38.760785" y="183.440898" transform="rotate(-0 38.760785 183.440898)">-60°</text> 64 + </g> 65 + </g> 66 + <g id="xtick_3"> 67 + <g id="line2d_3"> 68 + <path d="M 194.922486 271.798125 69 + L 111.762486 127.76078 70 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 71 + </g> 72 + <g id="text_3"> 73 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="104.762486" y="117.439198" transform="rotate(-0 104.762486 117.439198)">-30°</text> 74 + </g> 75 + </g> 76 + <g id="xtick_4"> 77 + <g id="line2d_4"> 78 + <path d="M 194.922486 271.798125 79 + L 194.922486 105.478125 80 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 81 + </g> 82 + <g id="text_4"> 83 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="194.922486" y="93.280898" transform="rotate(-0 194.922486 93.280898)">0°</text> 84 + </g> 85 + </g> 86 + <g id="xtick_5"> 87 + <g id="line2d_5"> 88 + <path d="M 194.922486 271.798125 89 + L 278.082486 127.76078 90 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 91 + </g> 92 + <g id="text_5"> 93 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="285.082486" y="117.439198" transform="rotate(-0 285.082486 117.439198)">30°</text> 94 + </g> 95 + </g> 96 + <g id="xtick_6"> 97 + <g id="line2d_6"> 98 + <path d="M 194.922486 271.798125 99 + L 338.959831 188.638125 100 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 101 + </g> 102 + <g id="text_6"> 103 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="351.084187" y="183.440898" transform="rotate(-0 351.084187 183.440898)">60°</text> 104 + </g> 105 + </g> 106 + <g id="xtick_7"> 107 + <g id="line2d_7"> 108 + <path d="M 194.922486 271.798125 109 + L 361.242486 271.798125 110 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 111 + </g> 112 + <g id="text_7"> 113 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="375.242486" y="273.600898" transform="rotate(-0 375.242486 273.600898)">90°</text> 114 + </g> 115 + </g> 116 + </g> 117 + <g id="matplotlib.axis_2"> 118 + <g id="ytick_1"> 119 + <g id="line2d_8"> 120 + <path d="M 194.922486 271.798125 121 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 122 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 123 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 124 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 125 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 126 + </g> 127 + <g id="text_8"> 128 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="194.922486" y="286.395781" transform="rotate(-0 194.922486 286.395781)">-40</text> 129 + </g> 130 + </g> 131 + <g id="ytick_2"> 132 + <g id="line2d_9"> 133 + <path d="M 153.342486 271.798125 134 + C 153.342486 260.774653 157.726214 250.191397 165.520986 242.396625 135 + C 173.315758 234.601853 183.899014 230.218125 194.922486 230.218125 136 + C 205.945958 230.218125 216.529214 234.601853 224.323986 242.396625 137 + C 232.118758 250.191397 236.502486 260.774653 236.502486 271.798125 138 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 139 + </g> 140 + <g id="text_9"> 141 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="153.342486" y="286.395781" transform="rotate(-0 153.342486 286.395781)">-30</text> 142 + </g> 143 + </g> 144 + <g id="ytick_3"> 145 + <g id="line2d_10"> 146 + <path d="M 111.762486 271.798125 147 + C 111.762486 249.75118 120.529942 228.584669 136.119486 212.995125 148 + C 151.70903 197.405581 172.875541 188.638125 194.922486 188.638125 149 + C 216.969431 188.638125 238.135942 197.405581 253.725486 212.995125 150 + C 269.31503 228.584669 278.082486 249.75118 278.082486 271.798125 151 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 152 + </g> 153 + <g id="text_10"> 154 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="111.762486" y="286.395781" transform="rotate(-0 111.762486 286.395781)">-20</text> 155 + </g> 156 + </g> 157 + <g id="ytick_4"> 158 + <g id="line2d_11"> 159 + <path d="M 70.182486 271.798125 160 + C 70.182486 238.727708 83.33367 206.977941 106.717986 183.593625 161 + C 130.102302 160.209309 161.852069 147.058125 194.922486 147.058125 162 + C 227.992903 147.058125 259.74267 160.209309 283.126986 183.593625 163 + C 306.511302 206.977941 319.662486 238.727708 319.662486 271.798125 164 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 165 + </g> 166 + <g id="text_11"> 167 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="70.182486" y="286.395781" transform="rotate(-0 70.182486 286.395781)">-10</text> 168 + </g> 169 + </g> 170 + <g id="ytick_5"> 171 + <g id="line2d_12"> 172 + <path d="M 28.602486 271.798125 173 + C 28.602486 227.704236 46.137398 185.371213 77.316486 154.192125 174 + C 108.495574 123.013037 150.828597 105.478125 194.922486 105.478125 175 + C 239.016375 105.478125 281.349398 123.013037 312.528486 154.192125 176 + C 343.707574 185.371213 361.242486 227.704236 361.242486 271.798125 177 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 178 + </g> 179 + <g id="text_12"> 180 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="28.602486" y="286.396562" transform="rotate(-0 28.602486 286.396562)">0 dB</text> 181 + </g> 182 + </g> 183 + </g> 184 + <g id="line2d_13"> 185 + <path d="M 82.308547 271.798125 186 + L 82.206961 263.916288 187 + L 81.844596 253.888347 188 + L 81.154629 235.927257 189 + L 81.109461 228.109398 190 + L 81.30233 221.211172 191 + L 81.67584 215.33543 192 + L 82.279898 209.359319 193 + L 83.146018 203.301417 194 + L 84.046486 198.410902 195 + L 85.145133 193.4947 196 + L 86.452833 188.566433 197 + L 87.978793 183.640548 198 + L 89.73055 178.732162 199 + L 91.713981 173.856911 200 + L 93.93333 169.030813 201 + L 96.391236 164.270135 202 + L 99.08878 159.591272 203 + L 102.025521 155.010634 204 + L 105.199551 150.544537 205 + L 108.607543 146.209103 206 + L 112.244805 142.020162 207 + L 116.105341 137.993164 208 + L 120.181901 134.143091 209 + L 124.46605 130.484377 210 + L 128.948229 127.03083 211 + L 133.617818 123.795563 212 + L 138.463207 120.790924 213 + L 143.471866 118.028432 214 + L 148.630418 115.518723 215 + L 153.924711 113.271492 216 + L 157.975604 111.763597 217 + L 162.088018 110.411561 218 + L 166.255284 109.218343 219 + L 170.470574 108.18656 220 + L 174.726925 107.318477 221 + L 179.017256 106.616001 222 + L 183.334393 106.080677 223 + L 187.671083 105.713684 224 + L 192.020018 105.515831 225 + L 196.373856 105.487552 226 + L 200.725243 105.628911 227 + L 205.066828 105.939595 228 + L 209.391291 106.418921 229 + L 213.69136 107.065834 230 + L 217.959829 107.878909 231 + L 222.189586 108.856359 232 + L 226.373625 109.996039 233 + L 230.505073 111.295448 234 + L 234.577204 112.751739 235 + L 239.903138 114.93195 236 + L 245.09698 117.376911 237 + L 250.144398 120.077169 238 + L 255.031814 123.022317 239 + L 259.746479 126.201054 240 + L 264.276545 129.601231 241 + L 268.611141 133.209922 242 + L 272.740434 137.013486 243 + L 276.655702 140.997637 244 + L 280.349395 145.147523 245 + L 283.815197 149.447805 246 + L 287.048083 153.882737 247 + L 290.044382 158.436264 248 + L 292.801824 163.092107 249 + L 295.319599 167.833871 250 + L 297.598401 172.645146 251 + L 299.640477 177.509622 252 + L 301.449666 182.411208 253 + L 303.031434 187.334158 254 + L 304.392901 192.263213 255 + L 305.542856 197.183743 256 + L 306.491759 202.081905 257 + L 307.413762 208.153623 258 + L 308.067821 214.147697 259 + L 308.484761 220.044815 260 + L 308.72026 226.97199 261 + L 308.727252 233.719583 262 + L 308.497063 242.425742 263 + L 307.542921 269.832328 264 + L 307.536424 271.798125 265 + L 307.536424 271.798125 266 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke: #1f77b4; stroke-width: 1.6; stroke-linecap: square"/> 267 + </g> 268 + <g id="line2d_14"> 269 + <path d="M 131.027723 271.798125 270 + L 131.151959 269.571209 271 + L 131.53122 267.365376 272 + L 132.185494 265.204201 273 + L 132.876843 263.629661 274 + L 133.762549 262.111343 275 + L 134.869313 260.667927 276 + L 136.231293 259.322927 277 + L 137.892191 258.106363 278 + L 139.192785 257.385444 279 + L 140.671963 256.753123 280 + L 142.355286 256.227011 281 + L 144.274449 255.82886 282 + L 146.469547 255.585998 283 + L 148.992534 255.533476 284 + L 151.912714 255.71743 285 + L 155.325841 256.200592 286 + L 159.370117 257.071852 287 + L 164.256426 258.464143 288 + L 170.331266 260.591261 289 + L 173.992727 262.038418 290 + L 178.226664 263.834627 291 + L 183.224973 266.092867 292 + L 194.922486 271.798125 293 + L 194.922486 271.798125 294 + L 184.610077 265.601805 295 + L 178.138315 261.512772 296 + L 172.759603 257.949218 297 + L 168.172615 254.756577 298 + L 160.682276 249.135024 299 + L 154.772331 244.203688 300 + L 149.980441 239.741276 301 + L 146.036779 235.624605 302 + L 142.770457 231.780466 303 + L 140.066738 228.163893 304 + L 137.845188 224.747232 305 + L 136.047568 221.514195 306 + L 134.630689 218.456449 307 + L 133.562008 215.571606 308 + L 132.816808 212.862037 309 + L 132.376365 210.334223 310 + L 132.22676 207.998491 311 + L 132.35814 205.869061 312 + L 132.764322 203.964393 313 + L 133.44271 202.30788 314 + L 134.394513 200.928974 315 + L 135.625335 199.864929 316 + L 136.348591 199.465389 317 + L 137.146285 199.163486 318 + L 138.020975 198.967513 319 + L 138.975861 198.887064 320 + L 140.014932 198.93334 321 + L 141.143154 199.119529 322 + L 142.366723 199.461323 323 + L 143.693412 199.977613 324 + L 145.133054 200.691447 325 + L 146.698218 201.63138 326 + L 148.405203 202.833417 327 + L 150.275518 204.343915 328 + L 152.338181 206.224045 329 + L 154.633426 208.556969 330 + L 157.219024 211.459973 331 + L 160.181726 215.106358 332 + L 163.659841 219.768346 333 + L 167.892975 225.911121 334 + L 173.350825 234.434913 335 + L 181.164295 247.480606 336 + L 194.922486 271.798125 337 + L 194.922486 271.798125 338 + L 186.498929 255.955718 339 + L 176.329096 236.080555 340 + L 170.179136 223.236566 341 + L 165.881973 213.551868 342 + L 162.671746 205.67431 343 + L 160.186039 198.971649 344 + L 158.22368 193.097281 345 + L 156.660927 187.840796 346 + L 155.415962 183.065019 347 + L 154.431687 178.675664 348 + L 153.666549 174.605228 349 + L 153.089266 170.803798 350 + L 152.675626 167.233477 351 + L 152.406444 163.864864 352 + L 152.242165 157.644422 353 + L 152.501631 152.005326 354 + L 153.117157 146.855167 355 + L 154.038026 142.129184 356 + L 155.224683 137.780589 357 + L 156.64522 133.774764 358 + L 158.273137 130.085606 359 + L 160.085858 126.693128 360 + L 162.063727 123.58184 361 + L 164.189286 120.739621 362 + L 166.446771 118.156916 363 + L 168.821729 115.826153 364 + L 171.300736 113.741306 365 + L 173.871179 111.897577 366 + L 176.52109 110.291147 367 + L 179.239009 108.918993 368 + L 182.01388 107.778736 369 + L 184.834961 106.868542 370 + L 187.691749 106.18703 371 + L 190.573923 105.733215 372 + L 193.471281 105.506462 373 + L 196.373691 105.506462 374 + L 199.271049 105.733215 375 + L 202.153223 106.18703 376 + L 205.010011 106.868542 377 + L 207.831092 107.778736 378 + L 210.605963 108.918993 379 + L 213.323882 110.291147 380 + L 215.973793 111.897577 381 + L 218.544236 113.741306 382 + L 221.023243 115.826153 383 + L 223.398201 118.156916 384 + L 225.655686 120.739621 385 + L 227.781245 123.58184 386 + L 229.759114 126.693128 387 + L 231.571835 130.085606 388 + L 233.199751 133.774764 389 + L 234.620289 137.780589 390 + L 235.806946 142.129184 391 + L 236.727815 146.855167 392 + L 237.343341 152.005326 393 + L 237.602807 157.644422 394 + L 237.578762 160.674728 395 + L 237.438528 163.864864 396 + L 237.169346 167.233477 397 + L 236.755706 170.803798 398 + L 236.178423 174.605228 399 + L 235.413284 178.675664 400 + L 234.42901 183.065019 401 + L 233.184045 187.840796 402 + L 231.621292 193.097281 403 + L 229.658933 198.971649 404 + L 227.173225 205.67431 405 + L 223.962999 213.551868 406 + L 219.665836 223.236566 407 + L 213.515876 236.080555 408 + L 203.346043 255.955718 409 + L 194.922486 271.798125 410 + L 194.922486 271.798125 411 + L 208.680676 247.480606 412 + L 216.494146 234.434913 413 + L 221.951997 225.911121 414 + L 226.185131 219.768346 415 + L 229.663245 215.106358 416 + L 232.625948 211.459973 417 + L 235.211546 208.556969 418 + L 237.506791 206.224045 419 + L 239.569454 204.343915 420 + L 241.439769 202.833417 421 + L 243.146754 201.63138 422 + L 244.711918 200.691447 423 + L 246.151559 199.977613 424 + L 247.478249 199.461323 425 + L 248.701818 199.119529 426 + L 249.830039 198.93334 427 + L 250.86911 198.887064 428 + L 251.823997 198.967513 429 + L 252.698686 199.163486 430 + L 253.496381 199.465389 431 + L 254.219637 199.864929 432 + L 255.450459 200.928974 433 + L 256.402262 202.30788 434 + L 257.08065 203.964393 435 + L 257.486832 205.869061 436 + L 257.618212 207.998491 437 + L 257.468607 210.334223 438 + L 257.028164 212.862037 439 + L 256.282964 215.571606 440 + L 255.214283 218.456449 441 + L 253.797404 221.514195 442 + L 251.999783 224.747232 443 + L 249.778234 228.163893 444 + L 247.074515 231.780466 445 + L 243.808193 235.624605 446 + L 239.864531 239.741276 447 + L 235.072641 244.203688 448 + L 229.162696 249.135024 449 + L 225.656177 251.839433 450 + L 221.672357 254.756577 451 + L 217.085369 257.949218 452 + L 211.706656 261.512772 453 + L 205.234894 265.601805 454 + L 194.922486 271.798125 455 + L 194.922486 271.798125 456 + L 200.547138 268.993777 457 + L 206.619998 266.092867 458 + L 215.852245 262.038418 459 + L 222.729676 259.417567 460 + L 228.154323 257.692047 461 + L 232.586857 256.580731 462 + L 236.294698 255.916821 463 + L 239.447219 255.592447 464 + L 242.158759 255.533372 465 + L 244.510383 255.68604 466 + L 246.56186 256.010384 467 + L 248.358681 256.475543 468 + L 249.936396 257.057192 469 + L 251.323403 257.735797 470 + L 253.095748 258.901423 471 + L 254.551959 260.20733 472 + L 255.73958 261.620834 473 + L 256.695671 263.11647 474 + L 257.449238 264.674101 475 + L 258.022789 266.277564 476 + L 258.536187 268.464272 477 + L 258.786292 270.683378 478 + L 258.817249 271.798125 479 + L 258.817249 271.798125 480 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke: #ff7f0e; stroke-width: 1.6; stroke-linecap: square"/> 481 + </g> 482 + <g id="line2d_15"> 483 + <path d="M 190.509611 271.798125 484 + L 190.329548 271.717955 485 + L 187.754514 271.296892 486 + L 183.750798 270.525272 487 + L 179.823093 269.541506 488 + L 175.644493 268.22516 489 + L 172.541373 267.040872 490 + L 169.596586 265.717914 491 + L 166.913815 264.293224 492 + L 164.586896 262.812314 493 + L 162.704656 261.329917 494 + L 161.356549 259.911803 495 + L 160.801888 259.040956 496 + L 160.559837 258.262318 497 + L 160.667836 257.609384 498 + L 160.866744 257.34232 499 + L 161.587175 256.956288 500 + L 162.79206 256.815461 501 + L 164.565286 256.991929 502 + L 167.023463 257.582863 503 + L 170.338046 258.726347 504 + L 174.779386 260.632622 505 + L 180.815544 263.653478 506 + L 184.688615 265.769914 507 + L 189.37534 268.465064 508 + L 194.922486 271.798125 509 + L 194.922486 271.798125 510 + L 187.9866 266.758909 511 + L 182.374971 262.513452 512 + L 177.789979 258.887855 513 + L 170.766609 252.925485 514 + L 165.769767 248.190719 515 + L 162.258625 244.389891 516 + L 159.947147 241.394527 517 + L 158.680969 239.166116 518 + L 158.4148 238.344994 519 + L 158.388201 237.729353 520 + L 158.60224 237.331499 521 + L 159.062089 237.168142 522 + L 159.777579 237.261321 523 + L 160.764195 237.639834 524 + L 162.044696 238.341443 525 + L 163.651727 239.416306 526 + L 165.632083 240.932481 527 + L 168.053941 242.985138 528 + L 171.019785 245.712904 529 + L 174.69131 249.329128 530 + L 179.342449 254.188096 531 + L 185.489824 260.947089 532 + L 194.922486 271.798125 533 + L 193.350186 269.821473 534 + L 183.990084 257.805289 535 + L 177.581329 249.198689 536 + L 172.839049 242.492415 537 + L 169.193242 237.027047 538 + L 166.340511 232.458412 539 + L 164.100356 228.587093 540 + L 162.357172 225.290037 541 + L 161.033145 222.488828 542 + L 160.074238 220.133473 543 + L 159.442428 218.193605 544 + L 159.111217 216.653606 545 + L 159.063033 215.510059 546 + L 159.287836 214.770764 547 + L 159.782608 214.455055 548 + L 160.551655 214.595457 549 + L 161.607837 215.241074 550 + L 162.975104 216.463637 551 + L 164.693233 218.368101 552 + L 166.826637 221.111872 553 + L 169.481725 224.942072 554 + L 172.844382 230.275251 555 + L 177.273383 237.894513 556 + L 183.592357 249.561495 557 + L 194.922486 271.798125 558 + L 193.195523 268.177472 559 + L 182.412127 244.969575 560 + L 176.349447 231.043311 561 + L 172.315124 221.021158 562 + L 169.450207 213.215894 563 + L 167.366817 206.881036 564 + L 165.855598 201.624449 565 + L 164.790415 197.218633 566 + L 164.08951 193.524055 567 + L 163.69723 190.453552 568 + L 163.574579 187.95434 569 + L 163.694018 185.998614 570 + L 164.036556 184.578949 571 + L 164.590235 183.706871 572 + L 165.349618 183.414139 573 + L 166.31622 183.757093 574 + L 167.500115 184.825475 575 + L 168.923441 186.759082 576 + L 170.627591 189.779935 577 + L 172.688605 194.259369 578 + L 175.254155 200.876413 579 + L 178.650928 211.071844 580 + L 183.82293 228.879326 581 + L 194.922486 271.798125 582 + L 188.641078 245.634179 583 + L 181.33833 212.958683 584 + L 177.897042 195.001311 585 + L 175.892453 182.268858 586 + L 174.67637 172.285288 587 + L 173.97409 164.027969 588 + L 173.641167 156.974403 589 + L 173.591028 150.821415 590 + L 173.766912 145.377398 591 + L 174.129055 140.51357 592 + L 174.648134 136.139272 593 + L 175.30161 132.188337 594 + L 176.071553 128.611076 595 + L 176.943287 125.369303 596 + L 177.904493 122.433121 597 + L 178.944607 119.778765 598 + L 180.054397 117.387119 599 + L 181.225658 115.242663 600 + L 182.450988 113.332714 601 + L 183.723619 111.646867 602 + L 185.037289 110.176577 603 + L 186.386135 108.91485 604 + L 187.764618 107.856 605 + L 189.16745 106.995469 606 + L 190.589543 106.329692 607 + L 192.025955 105.85599 608 + L 193.471857 105.5725 609 + L 194.922486 105.478125 610 + L 196.373115 105.5725 611 + L 197.819017 105.85599 612 + L 199.255429 106.329692 613 + L 200.677521 106.995469 614 + L 202.080354 107.856 615 + L 203.458837 108.91485 616 + L 204.807683 110.176577 617 + L 206.121353 111.646867 618 + L 207.393984 113.332714 619 + L 208.619314 115.242663 620 + L 209.790575 117.387119 621 + L 210.900365 119.778765 622 + L 211.940479 122.433121 623 + L 212.901685 125.369303 624 + L 213.773419 128.611076 625 + L 214.543362 132.188337 626 + L 215.196837 136.139272 627 + L 215.715917 140.51357 628 + L 216.07806 145.377398 629 + L 216.253944 150.821415 630 + L 216.203805 156.974403 631 + L 215.870882 164.027969 632 + L 215.168602 172.285288 633 + L 213.952519 182.268858 634 + L 211.94793 195.001311 635 + L 208.506642 212.958683 636 + L 201.203894 245.634179 637 + L 194.922486 271.798125 638 + L 206.022042 228.879326 639 + L 211.194044 211.071844 640 + L 214.590817 200.876413 641 + L 217.156367 194.259369 642 + L 219.217381 189.779935 643 + L 220.92153 186.759082 644 + L 222.344857 184.825475 645 + L 223.528751 183.757093 646 + L 224.495354 183.414139 647 + L 225.254737 183.706871 648 + L 225.808416 184.578949 649 + L 226.150954 185.998614 650 + L 226.270393 187.95434 651 + L 226.147742 190.453552 652 + L 225.755462 193.524055 653 + L 225.054557 197.218633 654 + L 223.989374 201.624449 655 + L 222.478155 206.881036 656 + L 220.394765 213.215894 657 + L 217.529848 221.021158 658 + L 213.495525 231.043311 659 + L 207.432844 244.969575 660 + L 194.922486 271.798125 661 + L 195.357834 270.924951 662 + L 206.252615 249.561495 663 + L 212.571589 237.894513 664 + L 217.00059 230.275251 665 + L 220.363247 224.942072 666 + L 223.018335 221.111872 667 + L 225.151739 218.368101 668 + L 226.869868 216.463637 669 + L 228.237135 215.241074 670 + L 229.293317 214.595457 671 + L 230.062364 214.455055 672 + L 230.557136 214.770764 673 + L 230.781939 215.510059 674 + L 230.733755 216.653606 675 + L 230.402544 218.193605 676 + L 229.770734 220.133473 677 + L 228.811827 222.488828 678 + L 227.4878 225.290037 679 + L 225.744616 228.587093 680 + L 223.504461 232.458412 681 + L 220.65173 237.027047 682 + L 217.005923 242.492415 683 + L 212.263643 249.198689 684 + L 205.854888 257.805289 685 + L 194.922486 271.798125 686 + L 195.551311 271.061866 687 + L 204.355148 260.947089 688 + L 210.502523 254.188096 689 + L 215.153662 249.329128 690 + L 218.825187 245.712904 691 + L 221.791031 242.985138 692 + L 224.212888 240.932481 693 + L 226.193245 239.416306 694 + L 227.800276 238.341443 695 + L 229.080777 237.639834 696 + L 230.067393 237.261321 697 + L 230.782883 237.168142 698 + L 231.242732 237.331499 699 + L 231.456771 237.729353 700 + L 231.430172 238.344994 701 + L 231.164003 239.166116 702 + L 230.655463 240.184257 703 + L 229.897825 241.394527 704 + L 227.586347 244.389891 705 + L 224.075205 248.190719 706 + L 219.078363 252.925485 707 + L 215.870296 255.724305 708 + L 212.054993 258.887855 709 + L 207.470001 262.513452 710 + L 201.858372 266.758909 711 + L 194.922486 271.798125 712 + L 194.922486 271.798125 713 + L 205.156357 265.769914 714 + L 212.28888 261.972692 715 + L 217.449912 259.566731 716 + L 221.285088 258.074623 717 + L 224.145283 257.228176 718 + L 226.243671 256.858686 719 + L 227.720562 256.851181 720 + L 228.674232 257.122448 721 + L 229.177136 257.609384 722 + L 229.285134 258.262318 723 + L 229.043084 259.040956 724 + L 228.488423 259.911803 725 + L 227.653592 260.84645 726 + L 225.939243 262.315351 727 + L 223.750775 263.803333 728 + L 221.176549 265.252252 729 + L 218.308158 266.613646 730 + L 215.245514 267.847729 731 + L 211.056422 269.24276 732 + L 207.033222 270.311114 733 + L 202.779685 271.17975 734 + L 199.335361 271.798125 735 + L 199.335361 271.798125 736 + " clip-path="url(#pc6bef66950)" style="fill: none; stroke: #2ca02c; stroke-width: 1.6; stroke-linecap: square"/> 737 + </g> 738 + <g id="patch_3"> 739 + <path d="M 361.242486 271.798125 740 + C 361.242486 227.704236 343.707574 185.371213 312.528486 154.192125 741 + C 281.349398 123.013037 239.016375 105.478125 194.922486 105.478125 742 + C 150.828597 105.478125 108.495574 123.013037 77.316486 154.192125 743 + C 46.137398 185.371213 28.602486 227.704236 28.602486 271.798125 744 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 745 + </g> 746 + <g id="patch_4"> 747 + <path d="M 194.922486 271.798125 748 + L 28.602486 271.798125 749 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 750 + </g> 751 + <g id="patch_5"> 752 + <path d="M 194.922486 271.798125 753 + L 361.242486 271.798125 754 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 755 + </g> 756 + <g id="text_13"> 757 + <text style="font-size: 12px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="194.922486" y="16.318125" transform="rotate(-0 194.922486 16.318125)">Baffled circular piston directivity</text> 758 + </g> 759 + <g id="legend_1"> 760 + <g id="patch_6"> 761 + <path d="M 97.628086 390.709925 762 + L 292.216886 390.709925 763 + Q 293.882886 390.709925 293.882886 389.043925 764 + L 293.882886 377.379973 765 + Q 293.882886 375.713973 292.216886 375.713973 766 + L 97.628086 375.713973 767 + Q 95.962086 375.713973 95.962086 377.379973 768 + L 95.962086 389.043925 769 + Q 95.962086 390.709925 97.628086 390.709925 770 + z 771 + " style="opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 772 + </g> 773 + <g id="line2d_16"> 774 + <path d="M 99.294086 382.461273 775 + L 107.624086 382.461273 776 + L 115.954086 382.461273 777 + " style="fill: none; stroke: #1f77b4; stroke-width: 1.6; stroke-linecap: square"/> 778 + </g> 779 + <g id="text_14"> 780 + <!-- $ka$ = 3 --> 781 + <g style="fill: #ffffff" transform="translate(122.618086 385.376773)"> 782 + <text> 783 + <tspan x="0" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif; fill: #ffffff">k</tspan> 784 + <tspan x="4.82283" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif; fill: #ffffff">a</tspan> 785 + <tspan x="9.926254" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff"> </tspan> 786 + <tspan x="12.573532" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff">=</tspan> 787 + <tspan x="19.55159" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff"> </tspan> 788 + <tspan x="22.198868" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff">3</tspan> 789 + </text> 790 + </g> 791 + </g> 792 + <g id="line2d_17"> 793 + <path d="M 166.850386 382.461273 794 + L 175.180386 382.461273 795 + L 183.510386 382.461273 796 + " style="fill: none; stroke: #ff7f0e; stroke-width: 1.6; stroke-linecap: square"/> 797 + </g> 798 + <g id="text_15"> 799 + <!-- $ka$ = 8 --> 800 + <g style="fill: #ffffff" transform="translate(190.174386 385.376773)"> 801 + <text> 802 + <tspan x="0" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif; fill: #ffffff">k</tspan> 803 + <tspan x="4.82283" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif; fill: #ffffff">a</tspan> 804 + <tspan x="9.926254" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff"> </tspan> 805 + <tspan x="12.573532" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff">=</tspan> 806 + <tspan x="19.55159" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff"> </tspan> 807 + <tspan x="22.198868" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff">8</tspan> 808 + </text> 809 + </g> 810 + </g> 811 + <g id="line2d_18"> 812 + <path d="M 234.406686 382.461273 813 + L 242.736686 382.461273 814 + L 251.066686 382.461273 815 + " style="fill: none; stroke: #2ca02c; stroke-width: 1.6; stroke-linecap: square"/> 816 + </g> 817 + <g id="text_16"> 818 + <!-- $ka$ = 16 --> 819 + <g style="fill: #ffffff" transform="translate(257.730686 385.376773)"> 820 + <text> 821 + <tspan x="0" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif; fill: #ffffff">k</tspan> 822 + <tspan x="4.82283" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif; fill: #ffffff">a</tspan> 823 + <tspan x="9.926254" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff"> </tspan> 824 + <tspan x="12.573532" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff">=</tspan> 825 + <tspan x="19.55159" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff"> </tspan> 826 + <tspan x="22.198868" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff">1</tspan> 827 + <tspan x="27.497482" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff">6</tspan> 828 + </text> 829 + </g> 830 + </g> 831 + </g> 832 + </g> 833 + </g> 834 + <defs> 835 + <clipPath id="pc6bef66950"> 836 + <path d="M 361.242486 271.798125 837 + C 361.242486 227.704236 343.707574 185.371213 312.528486 154.192125 838 + C 281.349398 123.013037 239.016375 105.478125 194.922486 105.478125 839 + C 150.828597 105.478125 108.495574 123.013037 77.316486 154.192125 840 + C 46.137398 185.371213 28.602486 227.704236 28.602486 271.798125 841 + L 194.922486 271.798125 842 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 843 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 844 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 845 + C 194.922486 271.798125 194.922486 271.798125 194.922486 271.798125 846 + z 847 + "/> 848 + </clipPath> 849 + </defs> 850 + </svg>
+850
.github/images/piston_directivity_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="388.593061pt" height="398.389925pt" viewBox="0 0 388.593061 398.389925" 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 398.389925 24 + L 388.593061 398.389925 25 + L 388.593061 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 361.242486 272.278125 33 + C 361.242486 228.184236 343.707574 185.851213 312.528486 154.672125 34 + C 281.349398 123.493037 239.016375 105.958125 194.922486 105.958125 35 + C 150.828597 105.958125 108.495574 123.493037 77.316486 154.672125 36 + C 46.137398 185.851213 28.602486 228.184236 28.602486 272.278125 37 + L 194.922486 272.278125 38 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 39 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 40 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 41 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 42 + z 43 + " style="fill: #ffffff"/> 44 + </g> 45 + <g id="matplotlib.axis_1"> 46 + <g id="xtick_1"> 47 + <g id="line2d_1"> 48 + <path d="M 194.922486 272.278125 49 + L 28.602486 272.278125 50 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 51 + </g> 52 + <g id="text_1"> 53 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle" x="14.602486" y="274.080898" transform="rotate(-0 14.602486 274.080898)">-90°</text> 54 + </g> 55 + </g> 56 + <g id="xtick_2"> 57 + <g id="line2d_2"> 58 + <path d="M 194.922486 272.278125 59 + L 50.885141 189.118125 60 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 61 + </g> 62 + <g id="text_2"> 63 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle" x="38.760785" y="183.920898" transform="rotate(-0 38.760785 183.920898)">-60°</text> 64 + </g> 65 + </g> 66 + <g id="xtick_3"> 67 + <g id="line2d_3"> 68 + <path d="M 194.922486 272.278125 69 + L 111.762486 128.24078 70 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 71 + </g> 72 + <g id="text_3"> 73 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle" x="104.762486" y="117.919198" transform="rotate(-0 104.762486 117.919198)">-30°</text> 74 + </g> 75 + </g> 76 + <g id="xtick_4"> 77 + <g id="line2d_4"> 78 + <path d="M 194.922486 272.278125 79 + L 194.922486 105.958125 80 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 81 + </g> 82 + <g id="text_4"> 83 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle" x="194.922486" y="93.760898" transform="rotate(-0 194.922486 93.760898)">0°</text> 84 + </g> 85 + </g> 86 + <g id="xtick_5"> 87 + <g id="line2d_5"> 88 + <path d="M 194.922486 272.278125 89 + L 278.082486 128.24078 90 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 91 + </g> 92 + <g id="text_5"> 93 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle" x="285.082486" y="117.919198" transform="rotate(-0 285.082486 117.919198)">30°</text> 94 + </g> 95 + </g> 96 + <g id="xtick_6"> 97 + <g id="line2d_6"> 98 + <path d="M 194.922486 272.278125 99 + L 338.959831 189.118125 100 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 101 + </g> 102 + <g id="text_6"> 103 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle" x="351.084187" y="183.920898" transform="rotate(-0 351.084187 183.920898)">60°</text> 104 + </g> 105 + </g> 106 + <g id="xtick_7"> 107 + <g id="line2d_7"> 108 + <path d="M 194.922486 272.278125 109 + L 361.242486 272.278125 110 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 111 + </g> 112 + <g id="text_7"> 113 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle" x="375.242486" y="274.080898" transform="rotate(-0 375.242486 274.080898)">90°</text> 114 + </g> 115 + </g> 116 + </g> 117 + <g id="matplotlib.axis_2"> 118 + <g id="ytick_1"> 119 + <g id="line2d_8"> 120 + <path d="M 194.922486 272.278125 121 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 122 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 123 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 124 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 125 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 126 + </g> 127 + <g id="text_8"> 128 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="194.922486" y="286.875781" transform="rotate(-0 194.922486 286.875781)">-40</text> 129 + </g> 130 + </g> 131 + <g id="ytick_2"> 132 + <g id="line2d_9"> 133 + <path d="M 153.342486 272.278125 134 + C 153.342486 261.254653 157.726214 250.671397 165.520986 242.876625 135 + C 173.315758 235.081853 183.899014 230.698125 194.922486 230.698125 136 + C 205.945958 230.698125 216.529214 235.081853 224.323986 242.876625 137 + C 232.118758 250.671397 236.502486 261.254653 236.502486 272.278125 138 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 139 + </g> 140 + <g id="text_9"> 141 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="153.342486" y="286.875781" transform="rotate(-0 153.342486 286.875781)">-30</text> 142 + </g> 143 + </g> 144 + <g id="ytick_3"> 145 + <g id="line2d_10"> 146 + <path d="M 111.762486 272.278125 147 + C 111.762486 250.23118 120.529942 229.064669 136.119486 213.475125 148 + C 151.70903 197.885581 172.875541 189.118125 194.922486 189.118125 149 + C 216.969431 189.118125 238.135942 197.885581 253.725486 213.475125 150 + C 269.31503 229.064669 278.082486 250.23118 278.082486 272.278125 151 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 152 + </g> 153 + <g id="text_10"> 154 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="111.762486" y="286.875781" transform="rotate(-0 111.762486 286.875781)">-20</text> 155 + </g> 156 + </g> 157 + <g id="ytick_4"> 158 + <g id="line2d_11"> 159 + <path d="M 70.182486 272.278125 160 + C 70.182486 239.207708 83.33367 207.457941 106.717986 184.073625 161 + C 130.102302 160.689309 161.852069 147.538125 194.922486 147.538125 162 + C 227.992903 147.538125 259.74267 160.689309 283.126986 184.073625 163 + C 306.511302 207.457941 319.662486 239.207708 319.662486 272.278125 164 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 165 + </g> 166 + <g id="text_11"> 167 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="70.182486" y="286.875781" transform="rotate(-0 70.182486 286.875781)">-10</text> 168 + </g> 169 + </g> 170 + <g id="ytick_5"> 171 + <g id="line2d_12"> 172 + <path d="M 28.602486 272.278125 173 + C 28.602486 228.184236 46.137398 185.851213 77.316486 154.672125 174 + C 108.495574 123.493037 150.828597 105.958125 194.922486 105.958125 175 + C 239.016375 105.958125 281.349398 123.493037 312.528486 154.672125 176 + C 343.707574 185.851213 361.242486 228.184236 361.242486 272.278125 177 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #b0b0b0; stroke-opacity: 0.7; stroke-width: 0.4"/> 178 + </g> 179 + <g id="text_12"> 180 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle" x="28.602486" y="286.876562" transform="rotate(-0 28.602486 286.876562)">0 dB</text> 181 + </g> 182 + </g> 183 + </g> 184 + <g id="line2d_13"> 185 + <path d="M 82.308547 272.278125 186 + L 82.206961 264.396288 187 + L 81.844596 254.368347 188 + L 81.154629 236.407257 189 + L 81.109461 228.589398 190 + L 81.30233 221.691172 191 + L 81.67584 215.81543 192 + L 82.279898 209.839319 193 + L 83.146018 203.781417 194 + L 84.046486 198.890902 195 + L 85.145133 193.9747 196 + L 86.452833 189.046433 197 + L 87.978793 184.120548 198 + L 89.73055 179.212162 199 + L 91.713981 174.336911 200 + L 93.93333 169.510813 201 + L 96.391236 164.750135 202 + L 99.08878 160.071272 203 + L 102.025521 155.490634 204 + L 105.199551 151.024537 205 + L 108.607543 146.689103 206 + L 112.244805 142.500162 207 + L 116.105341 138.473164 208 + L 120.181901 134.623091 209 + L 124.46605 130.964377 210 + L 128.948229 127.51083 211 + L 133.617818 124.275563 212 + L 138.463207 121.270924 213 + L 143.471866 118.508432 214 + L 148.630418 115.998723 215 + L 153.924711 113.751492 216 + L 157.975604 112.243597 217 + L 162.088018 110.891561 218 + L 166.255284 109.698343 219 + L 170.470574 108.66656 220 + L 174.726925 107.798477 221 + L 179.017256 107.096001 222 + L 183.334393 106.560677 223 + L 187.671083 106.193684 224 + L 192.020018 105.995831 225 + L 196.373856 105.967552 226 + L 200.725243 106.108911 227 + L 205.066828 106.419595 228 + L 209.391291 106.898921 229 + L 213.69136 107.545834 230 + L 217.959829 108.358909 231 + L 222.189586 109.336359 232 + L 226.373625 110.476039 233 + L 230.505073 111.775448 234 + L 234.577204 113.231739 235 + L 239.903138 115.41195 236 + L 245.09698 117.856911 237 + L 250.144398 120.557169 238 + L 255.031814 123.502317 239 + L 259.746479 126.681054 240 + L 264.276545 130.081231 241 + L 268.611141 133.689922 242 + L 272.740434 137.493486 243 + L 276.655702 141.477637 244 + L 280.349395 145.627523 245 + L 283.815197 149.927805 246 + L 287.048083 154.362737 247 + L 290.044382 158.916264 248 + L 292.801824 163.572107 249 + L 295.319599 168.313871 250 + L 297.598401 173.125146 251 + L 299.640477 177.989622 252 + L 301.449666 182.891208 253 + L 303.031434 187.814158 254 + L 304.392901 192.743213 255 + L 305.542856 197.663743 256 + L 306.491759 202.561905 257 + L 307.413762 208.633623 258 + L 308.067821 214.627697 259 + L 308.484761 220.524815 260 + L 308.72026 227.45199 261 + L 308.727252 234.199583 262 + L 308.497063 242.905742 263 + L 307.542921 270.312328 264 + L 307.536424 272.278125 265 + L 307.536424 272.278125 266 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke: #1f77b4; stroke-width: 1.6; stroke-linecap: square"/> 267 + </g> 268 + <g id="line2d_14"> 269 + <path d="M 131.027723 272.278125 270 + L 131.151959 270.051209 271 + L 131.53122 267.845376 272 + L 132.185494 265.684201 273 + L 132.876843 264.109661 274 + L 133.762549 262.591343 275 + L 134.869313 261.147927 276 + L 136.231293 259.802927 277 + L 137.892191 258.586363 278 + L 139.192785 257.865444 279 + L 140.671963 257.233123 280 + L 142.355286 256.707011 281 + L 144.274449 256.30886 282 + L 146.469547 256.065998 283 + L 148.992534 256.013476 284 + L 151.912714 256.19743 285 + L 155.325841 256.680592 286 + L 159.370117 257.551852 287 + L 164.256426 258.944143 288 + L 170.331266 261.071261 289 + L 173.992727 262.518418 290 + L 178.226664 264.314627 291 + L 183.224973 266.572867 292 + L 194.922486 272.278125 293 + L 194.922486 272.278125 294 + L 184.610077 266.081805 295 + L 178.138315 261.992772 296 + L 172.759603 258.429218 297 + L 168.172615 255.236577 298 + L 160.682276 249.615024 299 + L 154.772331 244.683688 300 + L 149.980441 240.221276 301 + L 146.036779 236.104605 302 + L 142.770457 232.260466 303 + L 140.066738 228.643893 304 + L 137.845188 225.227232 305 + L 136.047568 221.994195 306 + L 134.630689 218.936449 307 + L 133.562008 216.051606 308 + L 132.816808 213.342037 309 + L 132.376365 210.814223 310 + L 132.22676 208.478491 311 + L 132.35814 206.349061 312 + L 132.764322 204.444393 313 + L 133.44271 202.78788 314 + L 134.394513 201.408974 315 + L 135.625335 200.344929 316 + L 136.348591 199.945389 317 + L 137.146285 199.643486 318 + L 138.020975 199.447513 319 + L 138.975861 199.367064 320 + L 140.014932 199.41334 321 + L 141.143154 199.599529 322 + L 142.366723 199.941323 323 + L 143.693412 200.457613 324 + L 145.133054 201.171447 325 + L 146.698218 202.11138 326 + L 148.405203 203.313417 327 + L 150.275518 204.823915 328 + L 152.338181 206.704045 329 + L 154.633426 209.036969 330 + L 157.219024 211.939973 331 + L 160.181726 215.586358 332 + L 163.659841 220.248346 333 + L 167.892975 226.391121 334 + L 173.350825 234.914913 335 + L 181.164295 247.960606 336 + L 194.922486 272.278125 337 + L 194.922486 272.278125 338 + L 186.498929 256.435718 339 + L 176.329096 236.560555 340 + L 170.179136 223.716566 341 + L 165.881973 214.031868 342 + L 162.671746 206.15431 343 + L 160.186039 199.451649 344 + L 158.22368 193.577281 345 + L 156.660927 188.320796 346 + L 155.415962 183.545019 347 + L 154.431687 179.155664 348 + L 153.666549 175.085228 349 + L 153.089266 171.283798 350 + L 152.675626 167.713477 351 + L 152.406444 164.344864 352 + L 152.242165 158.124422 353 + L 152.501631 152.485326 354 + L 153.117157 147.335167 355 + L 154.038026 142.609184 356 + L 155.224683 138.260589 357 + L 156.64522 134.254764 358 + L 158.273137 130.565606 359 + L 160.085858 127.173128 360 + L 162.063727 124.06184 361 + L 164.189286 121.219621 362 + L 166.446771 118.636916 363 + L 168.821729 116.306153 364 + L 171.300736 114.221306 365 + L 173.871179 112.377577 366 + L 176.52109 110.771147 367 + L 179.239009 109.398993 368 + L 182.01388 108.258736 369 + L 184.834961 107.348542 370 + L 187.691749 106.66703 371 + L 190.573923 106.213215 372 + L 193.471281 105.986462 373 + L 196.373691 105.986462 374 + L 199.271049 106.213215 375 + L 202.153223 106.66703 376 + L 205.010011 107.348542 377 + L 207.831092 108.258736 378 + L 210.605963 109.398993 379 + L 213.323882 110.771147 380 + L 215.973793 112.377577 381 + L 218.544236 114.221306 382 + L 221.023243 116.306153 383 + L 223.398201 118.636916 384 + L 225.655686 121.219621 385 + L 227.781245 124.06184 386 + L 229.759114 127.173128 387 + L 231.571835 130.565606 388 + L 233.199751 134.254764 389 + L 234.620289 138.260589 390 + L 235.806946 142.609184 391 + L 236.727815 147.335167 392 + L 237.343341 152.485326 393 + L 237.602807 158.124422 394 + L 237.578762 161.154728 395 + L 237.438528 164.344864 396 + L 237.169346 167.713477 397 + L 236.755706 171.283798 398 + L 236.178423 175.085228 399 + L 235.413284 179.155664 400 + L 234.42901 183.545019 401 + L 233.184045 188.320796 402 + L 231.621292 193.577281 403 + L 229.658933 199.451649 404 + L 227.173225 206.15431 405 + L 223.962999 214.031868 406 + L 219.665836 223.716566 407 + L 213.515876 236.560555 408 + L 203.346043 256.435718 409 + L 194.922486 272.278125 410 + L 194.922486 272.278125 411 + L 208.680676 247.960606 412 + L 216.494146 234.914913 413 + L 221.951997 226.391121 414 + L 226.185131 220.248346 415 + L 229.663245 215.586358 416 + L 232.625948 211.939973 417 + L 235.211546 209.036969 418 + L 237.506791 206.704045 419 + L 239.569454 204.823915 420 + L 241.439769 203.313417 421 + L 243.146754 202.11138 422 + L 244.711918 201.171447 423 + L 246.151559 200.457613 424 + L 247.478249 199.941323 425 + L 248.701818 199.599529 426 + L 249.830039 199.41334 427 + L 250.86911 199.367064 428 + L 251.823997 199.447513 429 + L 252.698686 199.643486 430 + L 253.496381 199.945389 431 + L 254.219637 200.344929 432 + L 255.450459 201.408974 433 + L 256.402262 202.78788 434 + L 257.08065 204.444393 435 + L 257.486832 206.349061 436 + L 257.618212 208.478491 437 + L 257.468607 210.814223 438 + L 257.028164 213.342037 439 + L 256.282964 216.051606 440 + L 255.214283 218.936449 441 + L 253.797404 221.994195 442 + L 251.999783 225.227232 443 + L 249.778234 228.643893 444 + L 247.074515 232.260466 445 + L 243.808193 236.104605 446 + L 239.864531 240.221276 447 + L 235.072641 244.683688 448 + L 229.162696 249.615024 449 + L 225.656177 252.319433 450 + L 221.672357 255.236577 451 + L 217.085369 258.429218 452 + L 211.706656 261.992772 453 + L 205.234894 266.081805 454 + L 194.922486 272.278125 455 + L 194.922486 272.278125 456 + L 200.547138 269.473777 457 + L 206.619998 266.572867 458 + L 215.852245 262.518418 459 + L 222.729676 259.897567 460 + L 228.154323 258.172047 461 + L 232.586857 257.060731 462 + L 236.294698 256.396821 463 + L 239.447219 256.072447 464 + L 242.158759 256.013372 465 + L 244.510383 256.16604 466 + L 246.56186 256.490384 467 + L 248.358681 256.955543 468 + L 249.936396 257.537192 469 + L 251.323403 258.215797 470 + L 253.095748 259.381423 471 + L 254.551959 260.68733 472 + L 255.73958 262.100834 473 + L 256.695671 263.59647 474 + L 257.449238 265.154101 475 + L 258.022789 266.757564 476 + L 258.536187 268.944272 477 + L 258.786292 271.163378 478 + L 258.817249 272.278125 479 + L 258.817249 272.278125 480 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke: #ff7f0e; stroke-width: 1.6; stroke-linecap: square"/> 481 + </g> 482 + <g id="line2d_15"> 483 + <path d="M 190.509611 272.278125 484 + L 190.329548 272.197955 485 + L 187.754514 271.776892 486 + L 183.750798 271.005272 487 + L 179.823093 270.021506 488 + L 175.644493 268.70516 489 + L 172.541373 267.520872 490 + L 169.596586 266.197914 491 + L 166.913815 264.773224 492 + L 164.586896 263.292314 493 + L 162.704656 261.809917 494 + L 161.356549 260.391803 495 + L 160.801888 259.520956 496 + L 160.559837 258.742318 497 + L 160.667836 258.089384 498 + L 160.866744 257.82232 499 + L 161.587175 257.436288 500 + L 162.79206 257.295461 501 + L 164.565286 257.471929 502 + L 167.023463 258.062863 503 + L 170.338046 259.206347 504 + L 174.779386 261.112622 505 + L 180.815544 264.133478 506 + L 184.688615 266.249914 507 + L 189.37534 268.945064 508 + L 194.922486 272.278125 509 + L 194.922486 272.278125 510 + L 187.9866 267.238909 511 + L 182.374971 262.993452 512 + L 177.789979 259.367855 513 + L 170.766609 253.405485 514 + L 165.769767 248.670719 515 + L 162.258625 244.869891 516 + L 159.947147 241.874527 517 + L 158.680969 239.646116 518 + L 158.4148 238.824994 519 + L 158.388201 238.209353 520 + L 158.60224 237.811499 521 + L 159.062089 237.648142 522 + L 159.777579 237.741321 523 + L 160.764195 238.119834 524 + L 162.044696 238.821443 525 + L 163.651727 239.896306 526 + L 165.632083 241.412481 527 + L 168.053941 243.465138 528 + L 171.019785 246.192904 529 + L 174.69131 249.809128 530 + L 179.342449 254.668096 531 + L 185.489824 261.427089 532 + L 194.922486 272.278125 533 + L 193.350186 270.301473 534 + L 183.990084 258.285289 535 + L 177.581329 249.678689 536 + L 172.839049 242.972415 537 + L 169.193242 237.507047 538 + L 166.340511 232.938412 539 + L 164.100356 229.067093 540 + L 162.357172 225.770037 541 + L 161.033145 222.968828 542 + L 160.074238 220.613473 543 + L 159.442428 218.673605 544 + L 159.111217 217.133606 545 + L 159.063033 215.990059 546 + L 159.287836 215.250764 547 + L 159.782608 214.935055 548 + L 160.551655 215.075457 549 + L 161.607837 215.721074 550 + L 162.975104 216.943637 551 + L 164.693233 218.848101 552 + L 166.826637 221.591872 553 + L 169.481725 225.422072 554 + L 172.844382 230.755251 555 + L 177.273383 238.374513 556 + L 183.592357 250.041495 557 + L 194.922486 272.278125 558 + L 193.195523 268.657472 559 + L 182.412127 245.449575 560 + L 176.349447 231.523311 561 + L 172.315124 221.501158 562 + L 169.450207 213.695894 563 + L 167.366817 207.361036 564 + L 165.855598 202.104449 565 + L 164.790415 197.698633 566 + L 164.08951 194.004055 567 + L 163.69723 190.933552 568 + L 163.574579 188.43434 569 + L 163.694018 186.478614 570 + L 164.036556 185.058949 571 + L 164.590235 184.186871 572 + L 165.349618 183.894139 573 + L 166.31622 184.237093 574 + L 167.500115 185.305475 575 + L 168.923441 187.239082 576 + L 170.627591 190.259935 577 + L 172.688605 194.739369 578 + L 175.254155 201.356413 579 + L 178.650928 211.551844 580 + L 183.82293 229.359326 581 + L 194.922486 272.278125 582 + L 188.641078 246.114179 583 + L 181.33833 213.438683 584 + L 177.897042 195.481311 585 + L 175.892453 182.748858 586 + L 174.67637 172.765288 587 + L 173.97409 164.507969 588 + L 173.641167 157.454403 589 + L 173.591028 151.301415 590 + L 173.766912 145.857398 591 + L 174.129055 140.99357 592 + L 174.648134 136.619272 593 + L 175.30161 132.668337 594 + L 176.071553 129.091076 595 + L 176.943287 125.849303 596 + L 177.904493 122.913121 597 + L 178.944607 120.258765 598 + L 180.054397 117.867119 599 + L 181.225658 115.722663 600 + L 182.450988 113.812714 601 + L 183.723619 112.126867 602 + L 185.037289 110.656577 603 + L 186.386135 109.39485 604 + L 187.764618 108.336 605 + L 189.16745 107.475469 606 + L 190.589543 106.809692 607 + L 192.025955 106.33599 608 + L 193.471857 106.0525 609 + L 194.922486 105.958125 610 + L 196.373115 106.0525 611 + L 197.819017 106.33599 612 + L 199.255429 106.809692 613 + L 200.677521 107.475469 614 + L 202.080354 108.336 615 + L 203.458837 109.39485 616 + L 204.807683 110.656577 617 + L 206.121353 112.126867 618 + L 207.393984 113.812714 619 + L 208.619314 115.722663 620 + L 209.790575 117.867119 621 + L 210.900365 120.258765 622 + L 211.940479 122.913121 623 + L 212.901685 125.849303 624 + L 213.773419 129.091076 625 + L 214.543362 132.668337 626 + L 215.196837 136.619272 627 + L 215.715917 140.99357 628 + L 216.07806 145.857398 629 + L 216.253944 151.301415 630 + L 216.203805 157.454403 631 + L 215.870882 164.507969 632 + L 215.168602 172.765288 633 + L 213.952519 182.748858 634 + L 211.94793 195.481311 635 + L 208.506642 213.438683 636 + L 201.203894 246.114179 637 + L 194.922486 272.278125 638 + L 206.022042 229.359326 639 + L 211.194044 211.551844 640 + L 214.590817 201.356413 641 + L 217.156367 194.739369 642 + L 219.217381 190.259935 643 + L 220.92153 187.239082 644 + L 222.344857 185.305475 645 + L 223.528751 184.237093 646 + L 224.495354 183.894139 647 + L 225.254737 184.186871 648 + L 225.808416 185.058949 649 + L 226.150954 186.478614 650 + L 226.270393 188.43434 651 + L 226.147742 190.933552 652 + L 225.755462 194.004055 653 + L 225.054557 197.698633 654 + L 223.989374 202.104449 655 + L 222.478155 207.361036 656 + L 220.394765 213.695894 657 + L 217.529848 221.501158 658 + L 213.495525 231.523311 659 + L 207.432844 245.449575 660 + L 194.922486 272.278125 661 + L 195.357834 271.404951 662 + L 206.252615 250.041495 663 + L 212.571589 238.374513 664 + L 217.00059 230.755251 665 + L 220.363247 225.422072 666 + L 223.018335 221.591872 667 + L 225.151739 218.848101 668 + L 226.869868 216.943637 669 + L 228.237135 215.721074 670 + L 229.293317 215.075457 671 + L 230.062364 214.935055 672 + L 230.557136 215.250764 673 + L 230.781939 215.990059 674 + L 230.733755 217.133606 675 + L 230.402544 218.673605 676 + L 229.770734 220.613473 677 + L 228.811827 222.968828 678 + L 227.4878 225.770037 679 + L 225.744616 229.067093 680 + L 223.504461 232.938412 681 + L 220.65173 237.507047 682 + L 217.005923 242.972415 683 + L 212.263643 249.678689 684 + L 205.854888 258.285289 685 + L 194.922486 272.278125 686 + L 195.551311 271.541866 687 + L 204.355148 261.427089 688 + L 210.502523 254.668096 689 + L 215.153662 249.809128 690 + L 218.825187 246.192904 691 + L 221.791031 243.465138 692 + L 224.212888 241.412481 693 + L 226.193245 239.896306 694 + L 227.800276 238.821443 695 + L 229.080777 238.119834 696 + L 230.067393 237.741321 697 + L 230.782883 237.648142 698 + L 231.242732 237.811499 699 + L 231.456771 238.209353 700 + L 231.430172 238.824994 701 + L 231.164003 239.646116 702 + L 230.655463 240.664257 703 + L 229.897825 241.874527 704 + L 227.586347 244.869891 705 + L 224.075205 248.670719 706 + L 219.078363 253.405485 707 + L 215.870296 256.204305 708 + L 212.054993 259.367855 709 + L 207.470001 262.993452 710 + L 201.858372 267.238909 711 + L 194.922486 272.278125 712 + L 194.922486 272.278125 713 + L 205.156357 266.249914 714 + L 212.28888 262.452692 715 + L 217.449912 260.046731 716 + L 221.285088 258.554623 717 + L 224.145283 257.708176 718 + L 226.243671 257.338686 719 + L 227.720562 257.331181 720 + L 228.674232 257.602448 721 + L 229.177136 258.089384 722 + L 229.285134 258.742318 723 + L 229.043084 259.520956 724 + L 228.488423 260.391803 725 + L 227.653592 261.32645 726 + L 225.939243 262.795351 727 + L 223.750775 264.283333 728 + L 221.176549 265.732252 729 + L 218.308158 267.093646 730 + L 215.245514 268.327729 731 + L 211.056422 269.72276 732 + L 207.033222 270.791114 733 + L 202.779685 271.65975 734 + L 199.335361 272.278125 735 + L 199.335361 272.278125 736 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke: #2ca02c; stroke-width: 1.6; stroke-linecap: square"/> 737 + </g> 738 + <g id="patch_3"> 739 + <path d="M 361.242486 272.278125 740 + C 361.242486 228.184236 343.707574 185.851213 312.528486 154.672125 741 + C 281.349398 123.493037 239.016375 105.958125 194.922486 105.958125 742 + C 150.828597 105.958125 108.495574 123.493037 77.316486 154.672125 743 + C 46.137398 185.851213 28.602486 228.184236 28.602486 272.278125 744 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 745 + </g> 746 + <g id="patch_4"> 747 + <path d="M 194.922486 272.278125 748 + L 28.602486 272.278125 749 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 750 + </g> 751 + <g id="patch_5"> 752 + <path d="M 194.922486 272.278125 753 + L 361.242486 272.278125 754 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 755 + </g> 756 + <g id="text_13"> 757 + <text style="font-size: 12px; font-family: sans-serif; text-anchor: middle" x="194.922486" y="16.798125" transform="rotate(-0 194.922486 16.798125)">Directividad de un pistón circular con pantalla</text> 758 + </g> 759 + <g id="legend_1"> 760 + <g id="patch_6"> 761 + <path d="M 97.628086 391.189925 762 + L 292.216886 391.189925 763 + Q 293.882886 391.189925 293.882886 389.523925 764 + L 293.882886 377.859973 765 + Q 293.882886 376.193973 292.216886 376.193973 766 + L 97.628086 376.193973 767 + Q 95.962086 376.193973 95.962086 377.859973 768 + L 95.962086 389.523925 769 + Q 95.962086 391.189925 97.628086 391.189925 770 + z 771 + " style="fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 772 + </g> 773 + <g id="line2d_16"> 774 + <path d="M 99.294086 382.941273 775 + L 107.624086 382.941273 776 + L 115.954086 382.941273 777 + " style="fill: none; stroke: #1f77b4; stroke-width: 1.6; stroke-linecap: square"/> 778 + </g> 779 + <g id="text_14"> 780 + <!-- $ka$ = 3 --> 781 + <g transform="translate(122.618086 385.856773)"> 782 + <text> 783 + <tspan x="0" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif">k</tspan> 784 + <tspan x="4.82283" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif">a</tspan> 785 + <tspan x="9.926254" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif"> </tspan> 786 + <tspan x="12.573532" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif">=</tspan> 787 + <tspan x="19.55159" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif"> </tspan> 788 + <tspan x="22.198868" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif">3</tspan> 789 + </text> 790 + </g> 791 + </g> 792 + <g id="line2d_17"> 793 + <path d="M 166.850386 382.941273 794 + L 175.180386 382.941273 795 + L 183.510386 382.941273 796 + " style="fill: none; stroke: #ff7f0e; stroke-width: 1.6; stroke-linecap: square"/> 797 + </g> 798 + <g id="text_15"> 799 + <!-- $ka$ = 8 --> 800 + <g transform="translate(190.174386 385.856773)"> 801 + <text> 802 + <tspan x="0" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif">k</tspan> 803 + <tspan x="4.82283" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif">a</tspan> 804 + <tspan x="9.926254" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif"> </tspan> 805 + <tspan x="12.573532" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif">=</tspan> 806 + <tspan x="19.55159" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif"> </tspan> 807 + <tspan x="22.198868" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif">8</tspan> 808 + </text> 809 + </g> 810 + </g> 811 + <g id="line2d_18"> 812 + <path d="M 234.406686 382.941273 813 + L 242.736686 382.941273 814 + L 251.066686 382.941273 815 + " style="fill: none; stroke: #2ca02c; stroke-width: 1.6; stroke-linecap: square"/> 816 + </g> 817 + <g id="text_16"> 818 + <!-- $ka$ = 16 --> 819 + <g transform="translate(257.730686 385.856773)"> 820 + <text> 821 + <tspan x="0" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif">k</tspan> 822 + <tspan x="4.82283" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif">a</tspan> 823 + <tspan x="9.926254" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif"> </tspan> 824 + <tspan x="12.573532" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif">=</tspan> 825 + <tspan x="19.55159" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif"> </tspan> 826 + <tspan x="22.198868" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif">1</tspan> 827 + <tspan x="27.497482" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif">6</tspan> 828 + </text> 829 + </g> 830 + </g> 831 + </g> 832 + </g> 833 + </g> 834 + <defs> 835 + <clipPath id="p004056d1ad"> 836 + <path d="M 361.242486 272.278125 837 + C 361.242486 228.184236 343.707574 185.851213 312.528486 154.672125 838 + C 281.349398 123.493037 239.016375 105.958125 194.922486 105.958125 839 + C 150.828597 105.958125 108.495574 123.493037 77.316486 154.672125 840 + C 46.137398 185.851213 28.602486 228.184236 28.602486 272.278125 841 + L 194.922486 272.278125 842 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 843 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 844 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 845 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 846 + z 847 + "/> 848 + </clipPath> 849 + </defs> 850 + </svg>
+850
.github/images/piston_directivity_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="388.593061pt" height="398.389925pt" viewBox="0 0 388.593061 398.389925" 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 398.389925 24 + L 388.593061 398.389925 25 + L 388.593061 0 26 + L 0 0 27 + z 28 + "/> 29 + </g> 30 + <g id="axes_1"> 31 + <g id="patch_2"> 32 + <path d="M 361.242486 272.278125 33 + C 361.242486 228.184236 343.707574 185.851213 312.528486 154.672125 34 + C 281.349398 123.493037 239.016375 105.958125 194.922486 105.958125 35 + C 150.828597 105.958125 108.495574 123.493037 77.316486 154.672125 36 + C 46.137398 185.851213 28.602486 228.184236 28.602486 272.278125 37 + L 194.922486 272.278125 38 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 39 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 40 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 41 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 42 + z 43 + "/> 44 + </g> 45 + <g id="matplotlib.axis_1"> 46 + <g id="xtick_1"> 47 + <g id="line2d_1"> 48 + <path d="M 194.922486 272.278125 49 + L 28.602486 272.278125 50 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 51 + </g> 52 + <g id="text_1"> 53 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="14.602486" y="274.080898" transform="rotate(-0 14.602486 274.080898)">-90°</text> 54 + </g> 55 + </g> 56 + <g id="xtick_2"> 57 + <g id="line2d_2"> 58 + <path d="M 194.922486 272.278125 59 + L 50.885141 189.118125 60 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 61 + </g> 62 + <g id="text_2"> 63 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="38.760785" y="183.920898" transform="rotate(-0 38.760785 183.920898)">-60°</text> 64 + </g> 65 + </g> 66 + <g id="xtick_3"> 67 + <g id="line2d_3"> 68 + <path d="M 194.922486 272.278125 69 + L 111.762486 128.24078 70 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 71 + </g> 72 + <g id="text_3"> 73 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="104.762486" y="117.919198" transform="rotate(-0 104.762486 117.919198)">-30°</text> 74 + </g> 75 + </g> 76 + <g id="xtick_4"> 77 + <g id="line2d_4"> 78 + <path d="M 194.922486 272.278125 79 + L 194.922486 105.958125 80 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 81 + </g> 82 + <g id="text_4"> 83 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="194.922486" y="93.760898" transform="rotate(-0 194.922486 93.760898)">0°</text> 84 + </g> 85 + </g> 86 + <g id="xtick_5"> 87 + <g id="line2d_5"> 88 + <path d="M 194.922486 272.278125 89 + L 278.082486 128.24078 90 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 91 + </g> 92 + <g id="text_5"> 93 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="285.082486" y="117.919198" transform="rotate(-0 285.082486 117.919198)">30°</text> 94 + </g> 95 + </g> 96 + <g id="xtick_6"> 97 + <g id="line2d_6"> 98 + <path d="M 194.922486 272.278125 99 + L 338.959831 189.118125 100 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 101 + </g> 102 + <g id="text_6"> 103 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="351.084187" y="183.920898" transform="rotate(-0 351.084187 183.920898)">60°</text> 104 + </g> 105 + </g> 106 + <g id="xtick_7"> 107 + <g id="line2d_7"> 108 + <path d="M 194.922486 272.278125 109 + L 361.242486 272.278125 110 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 111 + </g> 112 + <g id="text_7"> 113 + <text style="font-size: 6.94px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="375.242486" y="274.080898" transform="rotate(-0 375.242486 274.080898)">90°</text> 114 + </g> 115 + </g> 116 + </g> 117 + <g id="matplotlib.axis_2"> 118 + <g id="ytick_1"> 119 + <g id="line2d_8"> 120 + <path d="M 194.922486 272.278125 121 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 122 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 123 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 124 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 125 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 126 + </g> 127 + <g id="text_8"> 128 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="194.922486" y="286.875781" transform="rotate(-0 194.922486 286.875781)">-40</text> 129 + </g> 130 + </g> 131 + <g id="ytick_2"> 132 + <g id="line2d_9"> 133 + <path d="M 153.342486 272.278125 134 + C 153.342486 261.254653 157.726214 250.671397 165.520986 242.876625 135 + C 173.315758 235.081853 183.899014 230.698125 194.922486 230.698125 136 + C 205.945958 230.698125 216.529214 235.081853 224.323986 242.876625 137 + C 232.118758 250.671397 236.502486 261.254653 236.502486 272.278125 138 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 139 + </g> 140 + <g id="text_9"> 141 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="153.342486" y="286.875781" transform="rotate(-0 153.342486 286.875781)">-30</text> 142 + </g> 143 + </g> 144 + <g id="ytick_3"> 145 + <g id="line2d_10"> 146 + <path d="M 111.762486 272.278125 147 + C 111.762486 250.23118 120.529942 229.064669 136.119486 213.475125 148 + C 151.70903 197.885581 172.875541 189.118125 194.922486 189.118125 149 + C 216.969431 189.118125 238.135942 197.885581 253.725486 213.475125 150 + C 269.31503 229.064669 278.082486 250.23118 278.082486 272.278125 151 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 152 + </g> 153 + <g id="text_10"> 154 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="111.762486" y="286.875781" transform="rotate(-0 111.762486 286.875781)">-20</text> 155 + </g> 156 + </g> 157 + <g id="ytick_4"> 158 + <g id="line2d_11"> 159 + <path d="M 70.182486 272.278125 160 + C 70.182486 239.207708 83.33367 207.457941 106.717986 184.073625 161 + C 130.102302 160.689309 161.852069 147.538125 194.922486 147.538125 162 + C 227.992903 147.538125 259.74267 160.689309 283.126986 184.073625 163 + C 306.511302 207.457941 319.662486 239.207708 319.662486 272.278125 164 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 165 + </g> 166 + <g id="text_11"> 167 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="70.182486" y="286.875781" transform="rotate(-0 70.182486 286.875781)">-10</text> 168 + </g> 169 + </g> 170 + <g id="ytick_5"> 171 + <g id="line2d_12"> 172 + <path d="M 28.602486 272.278125 173 + C 28.602486 228.184236 46.137398 185.851213 77.316486 154.672125 174 + C 108.495574 123.493037 150.828597 105.958125 194.922486 105.958125 175 + C 239.016375 105.958125 281.349398 123.493037 312.528486 154.672125 176 + C 343.707574 185.851213 361.242486 228.184236 361.242486 272.278125 177 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke-dasharray: 0.4,0.66; stroke-dashoffset: 0; stroke: #ffffff; stroke-opacity: 0.7; stroke-width: 0.4"/> 178 + </g> 179 + <g id="text_12"> 180 + <text style="font-size: 10px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="28.602486" y="286.876562" transform="rotate(-0 28.602486 286.876562)">0 dB</text> 181 + </g> 182 + </g> 183 + </g> 184 + <g id="line2d_13"> 185 + <path d="M 82.308547 272.278125 186 + L 82.206961 264.396288 187 + L 81.844596 254.368347 188 + L 81.154629 236.407257 189 + L 81.109461 228.589398 190 + L 81.30233 221.691172 191 + L 81.67584 215.81543 192 + L 82.279898 209.839319 193 + L 83.146018 203.781417 194 + L 84.046486 198.890902 195 + L 85.145133 193.9747 196 + L 86.452833 189.046433 197 + L 87.978793 184.120548 198 + L 89.73055 179.212162 199 + L 91.713981 174.336911 200 + L 93.93333 169.510813 201 + L 96.391236 164.750135 202 + L 99.08878 160.071272 203 + L 102.025521 155.490634 204 + L 105.199551 151.024537 205 + L 108.607543 146.689103 206 + L 112.244805 142.500162 207 + L 116.105341 138.473164 208 + L 120.181901 134.623091 209 + L 124.46605 130.964377 210 + L 128.948229 127.51083 211 + L 133.617818 124.275563 212 + L 138.463207 121.270924 213 + L 143.471866 118.508432 214 + L 148.630418 115.998723 215 + L 153.924711 113.751492 216 + L 157.975604 112.243597 217 + L 162.088018 110.891561 218 + L 166.255284 109.698343 219 + L 170.470574 108.66656 220 + L 174.726925 107.798477 221 + L 179.017256 107.096001 222 + L 183.334393 106.560677 223 + L 187.671083 106.193684 224 + L 192.020018 105.995831 225 + L 196.373856 105.967552 226 + L 200.725243 106.108911 227 + L 205.066828 106.419595 228 + L 209.391291 106.898921 229 + L 213.69136 107.545834 230 + L 217.959829 108.358909 231 + L 222.189586 109.336359 232 + L 226.373625 110.476039 233 + L 230.505073 111.775448 234 + L 234.577204 113.231739 235 + L 239.903138 115.41195 236 + L 245.09698 117.856911 237 + L 250.144398 120.557169 238 + L 255.031814 123.502317 239 + L 259.746479 126.681054 240 + L 264.276545 130.081231 241 + L 268.611141 133.689922 242 + L 272.740434 137.493486 243 + L 276.655702 141.477637 244 + L 280.349395 145.627523 245 + L 283.815197 149.927805 246 + L 287.048083 154.362737 247 + L 290.044382 158.916264 248 + L 292.801824 163.572107 249 + L 295.319599 168.313871 250 + L 297.598401 173.125146 251 + L 299.640477 177.989622 252 + L 301.449666 182.891208 253 + L 303.031434 187.814158 254 + L 304.392901 192.743213 255 + L 305.542856 197.663743 256 + L 306.491759 202.561905 257 + L 307.413762 208.633623 258 + L 308.067821 214.627697 259 + L 308.484761 220.524815 260 + L 308.72026 227.45199 261 + L 308.727252 234.199583 262 + L 308.497063 242.905742 263 + L 307.542921 270.312328 264 + L 307.536424 272.278125 265 + L 307.536424 272.278125 266 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke: #1f77b4; stroke-width: 1.6; stroke-linecap: square"/> 267 + </g> 268 + <g id="line2d_14"> 269 + <path d="M 131.027723 272.278125 270 + L 131.151959 270.051209 271 + L 131.53122 267.845376 272 + L 132.185494 265.684201 273 + L 132.876843 264.109661 274 + L 133.762549 262.591343 275 + L 134.869313 261.147927 276 + L 136.231293 259.802927 277 + L 137.892191 258.586363 278 + L 139.192785 257.865444 279 + L 140.671963 257.233123 280 + L 142.355286 256.707011 281 + L 144.274449 256.30886 282 + L 146.469547 256.065998 283 + L 148.992534 256.013476 284 + L 151.912714 256.19743 285 + L 155.325841 256.680592 286 + L 159.370117 257.551852 287 + L 164.256426 258.944143 288 + L 170.331266 261.071261 289 + L 173.992727 262.518418 290 + L 178.226664 264.314627 291 + L 183.224973 266.572867 292 + L 194.922486 272.278125 293 + L 194.922486 272.278125 294 + L 184.610077 266.081805 295 + L 178.138315 261.992772 296 + L 172.759603 258.429218 297 + L 168.172615 255.236577 298 + L 160.682276 249.615024 299 + L 154.772331 244.683688 300 + L 149.980441 240.221276 301 + L 146.036779 236.104605 302 + L 142.770457 232.260466 303 + L 140.066738 228.643893 304 + L 137.845188 225.227232 305 + L 136.047568 221.994195 306 + L 134.630689 218.936449 307 + L 133.562008 216.051606 308 + L 132.816808 213.342037 309 + L 132.376365 210.814223 310 + L 132.22676 208.478491 311 + L 132.35814 206.349061 312 + L 132.764322 204.444393 313 + L 133.44271 202.78788 314 + L 134.394513 201.408974 315 + L 135.625335 200.344929 316 + L 136.348591 199.945389 317 + L 137.146285 199.643486 318 + L 138.020975 199.447513 319 + L 138.975861 199.367064 320 + L 140.014932 199.41334 321 + L 141.143154 199.599529 322 + L 142.366723 199.941323 323 + L 143.693412 200.457613 324 + L 145.133054 201.171447 325 + L 146.698218 202.11138 326 + L 148.405203 203.313417 327 + L 150.275518 204.823915 328 + L 152.338181 206.704045 329 + L 154.633426 209.036969 330 + L 157.219024 211.939973 331 + L 160.181726 215.586358 332 + L 163.659841 220.248346 333 + L 167.892975 226.391121 334 + L 173.350825 234.914913 335 + L 181.164295 247.960606 336 + L 194.922486 272.278125 337 + L 194.922486 272.278125 338 + L 186.498929 256.435718 339 + L 176.329096 236.560555 340 + L 170.179136 223.716566 341 + L 165.881973 214.031868 342 + L 162.671746 206.15431 343 + L 160.186039 199.451649 344 + L 158.22368 193.577281 345 + L 156.660927 188.320796 346 + L 155.415962 183.545019 347 + L 154.431687 179.155664 348 + L 153.666549 175.085228 349 + L 153.089266 171.283798 350 + L 152.675626 167.713477 351 + L 152.406444 164.344864 352 + L 152.242165 158.124422 353 + L 152.501631 152.485326 354 + L 153.117157 147.335167 355 + L 154.038026 142.609184 356 + L 155.224683 138.260589 357 + L 156.64522 134.254764 358 + L 158.273137 130.565606 359 + L 160.085858 127.173128 360 + L 162.063727 124.06184 361 + L 164.189286 121.219621 362 + L 166.446771 118.636916 363 + L 168.821729 116.306153 364 + L 171.300736 114.221306 365 + L 173.871179 112.377577 366 + L 176.52109 110.771147 367 + L 179.239009 109.398993 368 + L 182.01388 108.258736 369 + L 184.834961 107.348542 370 + L 187.691749 106.66703 371 + L 190.573923 106.213215 372 + L 193.471281 105.986462 373 + L 196.373691 105.986462 374 + L 199.271049 106.213215 375 + L 202.153223 106.66703 376 + L 205.010011 107.348542 377 + L 207.831092 108.258736 378 + L 210.605963 109.398993 379 + L 213.323882 110.771147 380 + L 215.973793 112.377577 381 + L 218.544236 114.221306 382 + L 221.023243 116.306153 383 + L 223.398201 118.636916 384 + L 225.655686 121.219621 385 + L 227.781245 124.06184 386 + L 229.759114 127.173128 387 + L 231.571835 130.565606 388 + L 233.199751 134.254764 389 + L 234.620289 138.260589 390 + L 235.806946 142.609184 391 + L 236.727815 147.335167 392 + L 237.343341 152.485326 393 + L 237.602807 158.124422 394 + L 237.578762 161.154728 395 + L 237.438528 164.344864 396 + L 237.169346 167.713477 397 + L 236.755706 171.283798 398 + L 236.178423 175.085228 399 + L 235.413284 179.155664 400 + L 234.42901 183.545019 401 + L 233.184045 188.320796 402 + L 231.621292 193.577281 403 + L 229.658933 199.451649 404 + L 227.173225 206.15431 405 + L 223.962999 214.031868 406 + L 219.665836 223.716566 407 + L 213.515876 236.560555 408 + L 203.346043 256.435718 409 + L 194.922486 272.278125 410 + L 194.922486 272.278125 411 + L 208.680676 247.960606 412 + L 216.494146 234.914913 413 + L 221.951997 226.391121 414 + L 226.185131 220.248346 415 + L 229.663245 215.586358 416 + L 232.625948 211.939973 417 + L 235.211546 209.036969 418 + L 237.506791 206.704045 419 + L 239.569454 204.823915 420 + L 241.439769 203.313417 421 + L 243.146754 202.11138 422 + L 244.711918 201.171447 423 + L 246.151559 200.457613 424 + L 247.478249 199.941323 425 + L 248.701818 199.599529 426 + L 249.830039 199.41334 427 + L 250.86911 199.367064 428 + L 251.823997 199.447513 429 + L 252.698686 199.643486 430 + L 253.496381 199.945389 431 + L 254.219637 200.344929 432 + L 255.450459 201.408974 433 + L 256.402262 202.78788 434 + L 257.08065 204.444393 435 + L 257.486832 206.349061 436 + L 257.618212 208.478491 437 + L 257.468607 210.814223 438 + L 257.028164 213.342037 439 + L 256.282964 216.051606 440 + L 255.214283 218.936449 441 + L 253.797404 221.994195 442 + L 251.999783 225.227232 443 + L 249.778234 228.643893 444 + L 247.074515 232.260466 445 + L 243.808193 236.104605 446 + L 239.864531 240.221276 447 + L 235.072641 244.683688 448 + L 229.162696 249.615024 449 + L 225.656177 252.319433 450 + L 221.672357 255.236577 451 + L 217.085369 258.429218 452 + L 211.706656 261.992772 453 + L 205.234894 266.081805 454 + L 194.922486 272.278125 455 + L 194.922486 272.278125 456 + L 200.547138 269.473777 457 + L 206.619998 266.572867 458 + L 215.852245 262.518418 459 + L 222.729676 259.897567 460 + L 228.154323 258.172047 461 + L 232.586857 257.060731 462 + L 236.294698 256.396821 463 + L 239.447219 256.072447 464 + L 242.158759 256.013372 465 + L 244.510383 256.16604 466 + L 246.56186 256.490384 467 + L 248.358681 256.955543 468 + L 249.936396 257.537192 469 + L 251.323403 258.215797 470 + L 253.095748 259.381423 471 + L 254.551959 260.68733 472 + L 255.73958 262.100834 473 + L 256.695671 263.59647 474 + L 257.449238 265.154101 475 + L 258.022789 266.757564 476 + L 258.536187 268.944272 477 + L 258.786292 271.163378 478 + L 258.817249 272.278125 479 + L 258.817249 272.278125 480 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke: #ff7f0e; stroke-width: 1.6; stroke-linecap: square"/> 481 + </g> 482 + <g id="line2d_15"> 483 + <path d="M 190.509611 272.278125 484 + L 190.329548 272.197955 485 + L 187.754514 271.776892 486 + L 183.750798 271.005272 487 + L 179.823093 270.021506 488 + L 175.644493 268.70516 489 + L 172.541373 267.520872 490 + L 169.596586 266.197914 491 + L 166.913815 264.773224 492 + L 164.586896 263.292314 493 + L 162.704656 261.809917 494 + L 161.356549 260.391803 495 + L 160.801888 259.520956 496 + L 160.559837 258.742318 497 + L 160.667836 258.089384 498 + L 160.866744 257.82232 499 + L 161.587175 257.436288 500 + L 162.79206 257.295461 501 + L 164.565286 257.471929 502 + L 167.023463 258.062863 503 + L 170.338046 259.206347 504 + L 174.779386 261.112622 505 + L 180.815544 264.133478 506 + L 184.688615 266.249914 507 + L 189.37534 268.945064 508 + L 194.922486 272.278125 509 + L 194.922486 272.278125 510 + L 187.9866 267.238909 511 + L 182.374971 262.993452 512 + L 177.789979 259.367855 513 + L 170.766609 253.405485 514 + L 165.769767 248.670719 515 + L 162.258625 244.869891 516 + L 159.947147 241.874527 517 + L 158.680969 239.646116 518 + L 158.4148 238.824994 519 + L 158.388201 238.209353 520 + L 158.60224 237.811499 521 + L 159.062089 237.648142 522 + L 159.777579 237.741321 523 + L 160.764195 238.119834 524 + L 162.044696 238.821443 525 + L 163.651727 239.896306 526 + L 165.632083 241.412481 527 + L 168.053941 243.465138 528 + L 171.019785 246.192904 529 + L 174.69131 249.809128 530 + L 179.342449 254.668096 531 + L 185.489824 261.427089 532 + L 194.922486 272.278125 533 + L 193.350186 270.301473 534 + L 183.990084 258.285289 535 + L 177.581329 249.678689 536 + L 172.839049 242.972415 537 + L 169.193242 237.507047 538 + L 166.340511 232.938412 539 + L 164.100356 229.067093 540 + L 162.357172 225.770037 541 + L 161.033145 222.968828 542 + L 160.074238 220.613473 543 + L 159.442428 218.673605 544 + L 159.111217 217.133606 545 + L 159.063033 215.990059 546 + L 159.287836 215.250764 547 + L 159.782608 214.935055 548 + L 160.551655 215.075457 549 + L 161.607837 215.721074 550 + L 162.975104 216.943637 551 + L 164.693233 218.848101 552 + L 166.826637 221.591872 553 + L 169.481725 225.422072 554 + L 172.844382 230.755251 555 + L 177.273383 238.374513 556 + L 183.592357 250.041495 557 + L 194.922486 272.278125 558 + L 193.195523 268.657472 559 + L 182.412127 245.449575 560 + L 176.349447 231.523311 561 + L 172.315124 221.501158 562 + L 169.450207 213.695894 563 + L 167.366817 207.361036 564 + L 165.855598 202.104449 565 + L 164.790415 197.698633 566 + L 164.08951 194.004055 567 + L 163.69723 190.933552 568 + L 163.574579 188.43434 569 + L 163.694018 186.478614 570 + L 164.036556 185.058949 571 + L 164.590235 184.186871 572 + L 165.349618 183.894139 573 + L 166.31622 184.237093 574 + L 167.500115 185.305475 575 + L 168.923441 187.239082 576 + L 170.627591 190.259935 577 + L 172.688605 194.739369 578 + L 175.254155 201.356413 579 + L 178.650928 211.551844 580 + L 183.82293 229.359326 581 + L 194.922486 272.278125 582 + L 188.641078 246.114179 583 + L 181.33833 213.438683 584 + L 177.897042 195.481311 585 + L 175.892453 182.748858 586 + L 174.67637 172.765288 587 + L 173.97409 164.507969 588 + L 173.641167 157.454403 589 + L 173.591028 151.301415 590 + L 173.766912 145.857398 591 + L 174.129055 140.99357 592 + L 174.648134 136.619272 593 + L 175.30161 132.668337 594 + L 176.071553 129.091076 595 + L 176.943287 125.849303 596 + L 177.904493 122.913121 597 + L 178.944607 120.258765 598 + L 180.054397 117.867119 599 + L 181.225658 115.722663 600 + L 182.450988 113.812714 601 + L 183.723619 112.126867 602 + L 185.037289 110.656577 603 + L 186.386135 109.39485 604 + L 187.764618 108.336 605 + L 189.16745 107.475469 606 + L 190.589543 106.809692 607 + L 192.025955 106.33599 608 + L 193.471857 106.0525 609 + L 194.922486 105.958125 610 + L 196.373115 106.0525 611 + L 197.819017 106.33599 612 + L 199.255429 106.809692 613 + L 200.677521 107.475469 614 + L 202.080354 108.336 615 + L 203.458837 109.39485 616 + L 204.807683 110.656577 617 + L 206.121353 112.126867 618 + L 207.393984 113.812714 619 + L 208.619314 115.722663 620 + L 209.790575 117.867119 621 + L 210.900365 120.258765 622 + L 211.940479 122.913121 623 + L 212.901685 125.849303 624 + L 213.773419 129.091076 625 + L 214.543362 132.668337 626 + L 215.196837 136.619272 627 + L 215.715917 140.99357 628 + L 216.07806 145.857398 629 + L 216.253944 151.301415 630 + L 216.203805 157.454403 631 + L 215.870882 164.507969 632 + L 215.168602 172.765288 633 + L 213.952519 182.748858 634 + L 211.94793 195.481311 635 + L 208.506642 213.438683 636 + L 201.203894 246.114179 637 + L 194.922486 272.278125 638 + L 206.022042 229.359326 639 + L 211.194044 211.551844 640 + L 214.590817 201.356413 641 + L 217.156367 194.739369 642 + L 219.217381 190.259935 643 + L 220.92153 187.239082 644 + L 222.344857 185.305475 645 + L 223.528751 184.237093 646 + L 224.495354 183.894139 647 + L 225.254737 184.186871 648 + L 225.808416 185.058949 649 + L 226.150954 186.478614 650 + L 226.270393 188.43434 651 + L 226.147742 190.933552 652 + L 225.755462 194.004055 653 + L 225.054557 197.698633 654 + L 223.989374 202.104449 655 + L 222.478155 207.361036 656 + L 220.394765 213.695894 657 + L 217.529848 221.501158 658 + L 213.495525 231.523311 659 + L 207.432844 245.449575 660 + L 194.922486 272.278125 661 + L 195.357834 271.404951 662 + L 206.252615 250.041495 663 + L 212.571589 238.374513 664 + L 217.00059 230.755251 665 + L 220.363247 225.422072 666 + L 223.018335 221.591872 667 + L 225.151739 218.848101 668 + L 226.869868 216.943637 669 + L 228.237135 215.721074 670 + L 229.293317 215.075457 671 + L 230.062364 214.935055 672 + L 230.557136 215.250764 673 + L 230.781939 215.990059 674 + L 230.733755 217.133606 675 + L 230.402544 218.673605 676 + L 229.770734 220.613473 677 + L 228.811827 222.968828 678 + L 227.4878 225.770037 679 + L 225.744616 229.067093 680 + L 223.504461 232.938412 681 + L 220.65173 237.507047 682 + L 217.005923 242.972415 683 + L 212.263643 249.678689 684 + L 205.854888 258.285289 685 + L 194.922486 272.278125 686 + L 195.551311 271.541866 687 + L 204.355148 261.427089 688 + L 210.502523 254.668096 689 + L 215.153662 249.809128 690 + L 218.825187 246.192904 691 + L 221.791031 243.465138 692 + L 224.212888 241.412481 693 + L 226.193245 239.896306 694 + L 227.800276 238.821443 695 + L 229.080777 238.119834 696 + L 230.067393 237.741321 697 + L 230.782883 237.648142 698 + L 231.242732 237.811499 699 + L 231.456771 238.209353 700 + L 231.430172 238.824994 701 + L 231.164003 239.646116 702 + L 230.655463 240.664257 703 + L 229.897825 241.874527 704 + L 227.586347 244.869891 705 + L 224.075205 248.670719 706 + L 219.078363 253.405485 707 + L 215.870296 256.204305 708 + L 212.054993 259.367855 709 + L 207.470001 262.993452 710 + L 201.858372 267.238909 711 + L 194.922486 272.278125 712 + L 194.922486 272.278125 713 + L 205.156357 266.249914 714 + L 212.28888 262.452692 715 + L 217.449912 260.046731 716 + L 221.285088 258.554623 717 + L 224.145283 257.708176 718 + L 226.243671 257.338686 719 + L 227.720562 257.331181 720 + L 228.674232 257.602448 721 + L 229.177136 258.089384 722 + L 229.285134 258.742318 723 + L 229.043084 259.520956 724 + L 228.488423 260.391803 725 + L 227.653592 261.32645 726 + L 225.939243 262.795351 727 + L 223.750775 264.283333 728 + L 221.176549 265.732252 729 + L 218.308158 267.093646 730 + L 215.245514 268.327729 731 + L 211.056422 269.72276 732 + L 207.033222 270.791114 733 + L 202.779685 271.65975 734 + L 199.335361 272.278125 735 + L 199.335361 272.278125 736 + " clip-path="url(#p004056d1ad)" style="fill: none; stroke: #2ca02c; stroke-width: 1.6; stroke-linecap: square"/> 737 + </g> 738 + <g id="patch_3"> 739 + <path d="M 361.242486 272.278125 740 + C 361.242486 228.184236 343.707574 185.851213 312.528486 154.672125 741 + C 281.349398 123.493037 239.016375 105.958125 194.922486 105.958125 742 + C 150.828597 105.958125 108.495574 123.493037 77.316486 154.672125 743 + C 46.137398 185.851213 28.602486 228.184236 28.602486 272.278125 744 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 745 + </g> 746 + <g id="patch_4"> 747 + <path d="M 194.922486 272.278125 748 + L 28.602486 272.278125 749 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 750 + </g> 751 + <g id="patch_5"> 752 + <path d="M 194.922486 272.278125 753 + L 361.242486 272.278125 754 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 755 + </g> 756 + <g id="text_13"> 757 + <text style="font-size: 12px; font-family: sans-serif; text-anchor: middle; fill: #ffffff" x="194.922486" y="16.798125" transform="rotate(-0 194.922486 16.798125)">Directividad de un pistón circular con pantalla</text> 758 + </g> 759 + <g id="legend_1"> 760 + <g id="patch_6"> 761 + <path d="M 97.628086 391.189925 762 + L 292.216886 391.189925 763 + Q 293.882886 391.189925 293.882886 389.523925 764 + L 293.882886 377.859973 765 + Q 293.882886 376.193973 292.216886 376.193973 766 + L 97.628086 376.193973 767 + Q 95.962086 376.193973 95.962086 377.859973 768 + L 95.962086 389.523925 769 + Q 95.962086 391.189925 97.628086 391.189925 770 + z 771 + " style="opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 772 + </g> 773 + <g id="line2d_16"> 774 + <path d="M 99.294086 382.941273 775 + L 107.624086 382.941273 776 + L 115.954086 382.941273 777 + " style="fill: none; stroke: #1f77b4; stroke-width: 1.6; stroke-linecap: square"/> 778 + </g> 779 + <g id="text_14"> 780 + <!-- $ka$ = 3 --> 781 + <g style="fill: #ffffff" transform="translate(122.618086 385.856773)"> 782 + <text> 783 + <tspan x="0" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif; fill: #ffffff">k</tspan> 784 + <tspan x="4.82283" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif; fill: #ffffff">a</tspan> 785 + <tspan x="9.926254" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff"> </tspan> 786 + <tspan x="12.573532" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff">=</tspan> 787 + <tspan x="19.55159" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff"> </tspan> 788 + <tspan x="22.198868" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff">3</tspan> 789 + </text> 790 + </g> 791 + </g> 792 + <g id="line2d_17"> 793 + <path d="M 166.850386 382.941273 794 + L 175.180386 382.941273 795 + L 183.510386 382.941273 796 + " style="fill: none; stroke: #ff7f0e; stroke-width: 1.6; stroke-linecap: square"/> 797 + </g> 798 + <g id="text_15"> 799 + <!-- $ka$ = 8 --> 800 + <g style="fill: #ffffff" transform="translate(190.174386 385.856773)"> 801 + <text> 802 + <tspan x="0" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif; fill: #ffffff">k</tspan> 803 + <tspan x="4.82283" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif; fill: #ffffff">a</tspan> 804 + <tspan x="9.926254" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff"> </tspan> 805 + <tspan x="12.573532" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff">=</tspan> 806 + <tspan x="19.55159" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff"> </tspan> 807 + <tspan x="22.198868" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff">8</tspan> 808 + </text> 809 + </g> 810 + </g> 811 + <g id="line2d_18"> 812 + <path d="M 234.406686 382.941273 813 + L 242.736686 382.941273 814 + L 251.066686 382.941273 815 + " style="fill: none; stroke: #2ca02c; stroke-width: 1.6; stroke-linecap: square"/> 816 + </g> 817 + <g id="text_16"> 818 + <!-- $ka$ = 16 --> 819 + <g style="fill: #ffffff" transform="translate(257.730686 385.856773)"> 820 + <text> 821 + <tspan x="0" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif; fill: #ffffff">k</tspan> 822 + <tspan x="4.82283" y="-0.671875" style="font-style: oblique; font-size: 8.33px; font-family: sans-serif; fill: #ffffff">a</tspan> 823 + <tspan x="9.926254" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff"> </tspan> 824 + <tspan x="12.573532" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff">=</tspan> 825 + <tspan x="19.55159" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff"> </tspan> 826 + <tspan x="22.198868" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff">1</tspan> 827 + <tspan x="27.497482" y="-0.671875" style="font-size: 8.33px; font-family: sans-serif; fill: #ffffff">6</tspan> 828 + </text> 829 + </g> 830 + </g> 831 + </g> 832 + </g> 833 + </g> 834 + <defs> 835 + <clipPath id="p004056d1ad"> 836 + <path d="M 361.242486 272.278125 837 + C 361.242486 228.184236 343.707574 185.851213 312.528486 154.672125 838 + C 281.349398 123.493037 239.016375 105.958125 194.922486 105.958125 839 + C 150.828597 105.958125 108.495574 123.493037 77.316486 154.672125 840 + C 46.137398 185.851213 28.602486 228.184236 28.602486 272.278125 841 + L 194.922486 272.278125 842 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 843 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 844 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 845 + C 194.922486 272.278125 194.922486 272.278125 194.922486 272.278125 846 + z 847 + "/> 848 + </clipPath> 849 + </defs> 850 + </svg>
+4
src/phonometry/__init__.py
··· 404 404 microphone_characteristics, 405 405 ) 406 406 from .electroacoustics.piston import ( 407 + PistonDirectivity, 407 408 RadiatingPistonResult, 408 409 piston_directivity, 410 + piston_directivity_pattern, 409 411 piston_reactance, 410 412 piston_resistance, 411 413 radiating_piston, ··· 1139 1141 "piston_resistance", 1140 1142 "piston_reactance", 1141 1143 "piston_directivity", 1144 + "piston_directivity_pattern", 1142 1145 "RadiatingPistonResult", 1146 + "PistonDirectivity", 1143 1147 "loudspeaker_characteristics", 1144 1148 "LoudspeakerCharacteristics", 1145 1149 "microphone_characteristics",
+10
tests/electroacoustics/test_electroacoustics_plot_i18n.py
··· 86 86 res.plot(language="xx") 87 87 88 88 89 + def test_piston_directivity_es() -> None: 90 + res = ph.piston_directivity_pattern([3.0, 8.0, 16.0]) 91 + ax = res.plot(language="es") 92 + assert ax.name == "polar" 93 + assert ax.get_title() == "Directividad de un pistón circular con pantalla" 94 + plt.close("all") 95 + with pytest.raises(ValueError): 96 + res.plot(language="xx") 97 + 98 + 89 99 def _loudspeaker() -> ph.electroacoustics.LoudspeakerCharacteristics: 90 100 f = np.geomspace(30.0, 24000.0, 200) 91 101 spl = 87.0 - 10 * np.log10(1 + (50.0 / f) ** 6) - 10 * np.log10(1 + (f / 16000.0) ** 7)
+60
tests/electroacoustics/test_piston.py
··· 18 18 from scipy import special 19 19 20 20 from phonometry import ( 21 + PistonDirectivity, 21 22 RadiatingPistonResult, 22 23 piston_directivity, 24 + piston_directivity_pattern, 23 25 piston_reactance, 24 26 piston_resistance, 25 27 radiating_piston, ··· 116 118 matplotlib.use("Agg") 117 119 ax = res.plot() 118 120 assert ax.get_ylabel() 121 + 122 + 123 + def test_directivity_pattern_result_and_properties() -> None: 124 + # Default grid is 361 points over the front hemisphere -90 deg .. +90 deg. 125 + res = piston_directivity_pattern([3.0, 8.0]) 126 + assert res.angles.size == 361 127 + assert isinstance(res, PistonDirectivity) 128 + assert res.ka.shape == (2,) 129 + assert res.directivity.shape == (2, res.angles.size) 130 + assert res.directivity_db.shape == res.directivity.shape 131 + # D = 1 (0 dB) on axis (theta = 0) for every ka. 132 + i0 = int(np.argmin(np.abs(res.angles))) 133 + assert np.allclose(res.directivity[:, i0], 1.0) 134 + assert np.allclose(res.directivity_db[:, i0], 0.0) 135 + # dB echoes the linear directivity: 20 log10 |D|. 136 + assert np.allclose( 137 + res.directivity_db, 20.0 * np.log10(np.abs(res.directivity)), atol=1e-9 138 + ) 139 + 140 + 141 + def test_directivity_pattern_first_null() -> None: 142 + # First null at ka sin(theta) = 3.8317 (the first zero of J1); it exists 143 + # only once ka > 3.8317. Sample the exact null angle for ka = 6. 144 + ka = 6.0 145 + theta_null = math.asin(J1_FIRST_ZERO / ka) 146 + res = piston_directivity_pattern([ka], angles=[0.0, theta_null]) 147 + assert abs(res.directivity[0, 1]) < 1e-9 148 + assert res.directivity_db[0, 1] < -120.0 149 + # No null for a scalar ka below the first zero of J1. 150 + below = piston_directivity_pattern(3.0) 151 + assert np.min(np.abs(below.directivity)) > 0.1 152 + 153 + 154 + def test_directivity_pattern_plot() -> None: 155 + import matplotlib 156 + 157 + matplotlib.use("Agg") 158 + res = piston_directivity_pattern([2.0, 5.0, 10.0]) 159 + ax = res.plot() 160 + # A polar axes carrying one curve per ka value. 161 + assert ax.name == "polar" 162 + assert len(ax.lines) == 3 163 + assert "piston directivity" in ax.get_title() 164 + with pytest.raises(ValueError): 165 + res.plot(language="xx") 166 + 167 + 168 + def test_directivity_pattern_validation() -> None: 169 + # Build the arguments up front so only the throwing call sits in each block. 170 + ka_one = [1.0] 171 + infinite_angles = [np.inf] 172 + empty_ka = np.empty(0) 173 + with pytest.raises(ValueError): 174 + piston_directivity_pattern(-1.0) 175 + with pytest.raises(ValueError): 176 + piston_directivity_pattern(ka_one, angles=infinite_angles) 177 + with pytest.raises(ValueError): 178 + piston_directivity_pattern(empty_ka) 119 179 120 180 121 181 def test_validation() -> None:
+60 -1
src/phonometry/_plot/electroacoustics.py
··· 29 29 from ..electroacoustics.frequency_response import FrequencyResponseResult 30 30 from ..electroacoustics.loudspeaker import LoudspeakerCharacteristics 31 31 from ..electroacoustics.microphone import MicrophoneCharacteristics 32 - from ..electroacoustics.piston import RadiatingPistonResult 32 + from ..electroacoustics.piston import PistonDirectivity, RadiatingPistonResult 33 33 from ..electroacoustics.swept_sine import SweptSineDistortionResult 34 34 35 35 #: Shared frequency-axis label of the electroacoustics renderers. ··· 45 45 _OHM_TEXT = "Ω" 46 46 #: IEC 60263 clause 3 polar reference-circle span, in dB (radius = 25 dB). 47 47 _POLAR_SPAN_DB = 25.0 48 + #: Radial span of the baffled-piston beam pattern, in dB (40 dB keeps the first 49 + #: side lobes of a narrow high-``ka`` main lobe on scale below the 0 dB axis). 50 + _POLAR_SPAN_PISTON_DB = 40.0 48 51 #: Ordinate span of the loudspeaker on-axis response panel, in dB (a multiple of 49 52 #: 25 keeps the IEC 60263 25 dB-per-decade grid on whole gridlines). 50 53 _RESPONSE_SPAN_LSP = 50.0 ··· 75 78 "$X_1$ (reactance)": "$X_1$ (reactancia)", 76 79 r"Normalized radiation impedance $Z_r / \rho c S$": r"Impedancia de radiación normalizada $Z_r / \rho c S$", 77 80 "Baffled circular piston radiation impedance": "Impedancia de radiación de un pistón circular con pantalla", 81 + "Baffled circular piston directivity": "Directividad de un pistón circular con pantalla", 78 82 # --- IEC 60268-4/-5 datasheet panels (shared by .report() and .plot()) --- 79 83 "Sound pressure level [dB]": "Nivel de presión sonora [dB]", 80 84 "On-axis response": "Respuesta en el eje", ··· 338 342 ax.legend(loc="best", fontsize="small") 339 343 localize_axes(ax, language) 340 344 return ax 345 + 346 + 347 + def plot_piston_directivity( 348 + result: "PistonDirectivity", ax: Any | None = None, *, 349 + language: str = "en", **kwargs: Any 350 + ) -> "Axes": 351 + """Far-field directivity (beam) pattern of a baffled circular piston. 352 + 353 + Draws the directivity in dB against the polar angle on a polar axes: one 354 + curve per ``ka`` in the result, shown as a single family (the directivity 355 + pattern). The on-axis level is the 0 dB reference at the top; the main lobe 356 + narrows and the first side lobes appear as ``ka`` grows. 357 + 358 + :param result: A 359 + :class:`~phonometry.electroacoustics.piston.PistonDirectivity`. 360 + :param ax: Existing polar axes, or ``None`` to create a polar figure. 361 + :param language: Label language, ``"en"`` (default) or ``"es"``. 362 + :param kwargs: Forwarded to the per-``ka`` ``Axes.plot`` calls. 363 + :return: The (polar) axes. 364 + """ 365 + from .._i18n import decimal_comma, localize_axes 366 + 367 + ax = ax if ax is not None else _new_polar_axes() 368 + theta = np.asarray(result.angles, dtype=np.float64) 369 + ka = np.asarray(result.ka, dtype=np.float64) 370 + levels = np.clip( 371 + np.asarray(result.directivity_db, dtype=np.float64), 372 + -_POLAR_SPAN_PISTON_DB, 0.0, 373 + ) 374 + colors = (_C_PRIMARY, _C_SECONDARY, _C_TERTIARY, _C_REFERENCE, _C_EDGE) 375 + # Axis (theta = 0) points up; positive angles swing clockwise so the front 376 + # hemisphere (the baffle blocks the rear) fills the upper half-disk. 377 + ax.set_theta_zero_location("N") 378 + ax.set_theta_direction(-1) 379 + ax.set_thetamin(-90.0) 380 + ax.set_thetamax(90.0) 381 + for i, ka_value in enumerate(ka): 382 + label = f"$ka$ = {decimal_comma(f'{ka_value:.3g}', language)}" 383 + line_kwargs: dict[str, Any] = { 384 + "color": colors[i % len(colors)], "lw": 1.6, "label": label, 385 + } 386 + line_kwargs.update(kwargs) 387 + ax.plot(theta, levels[i], **line_kwargs) 388 + ax.set_ylim(-_POLAR_SPAN_PISTON_DB, 0.0) 389 + ax.set_yticks([-40.0, -30.0, -20.0, -10.0, 0.0]) 390 + ax.set_yticklabels(["-40", "-30", "-20", "-10", "0 dB"], fontsize="x-small") 391 + ax.tick_params(axis="x", labelsize="x-small") 392 + ax.grid(True, ls=":", lw=0.4, alpha=0.7) 393 + ax.set_title(_t("Baffled circular piston directivity", language)) 394 + if ka.size > 1: 395 + ax.legend(loc="lower center", bbox_to_anchor=(0.5, -0.12), 396 + ncol=min(ka.size, 3), fontsize="small") 397 + localize_axes(ax, language) 398 + axes: Axes = ax 399 + return axes 341 400 342 401 343 402 # ---------------------------------------------------------------------------
+4
src/phonometry/electroacoustics/__init__.py
··· 24 24 from .loudspeaker import LoudspeakerCharacteristics, loudspeaker_characteristics 25 25 from .microphone import MicrophoneCharacteristics, microphone_characteristics 26 26 from .piston import ( 27 + PistonDirectivity, 27 28 RadiatingPistonResult, 28 29 piston_directivity, 30 + piston_directivity_pattern, 29 31 piston_reactance, 30 32 piston_resistance, 31 33 radiating_piston, ··· 42 44 "LoudspeakerCharacteristics", 43 45 "MicrophoneCharacteristics", 44 46 "ModulationDistortionResult", 47 + "PistonDirectivity", 45 48 "RadiatingPistonResult", 46 49 "SweptSineDistortionResult", 47 50 "coherence", ··· 56 59 "microphone_characteristics", 57 60 "modulation_distortion", 58 61 "piston_directivity", 62 + "piston_directivity_pattern", 59 63 "piston_reactance", 60 64 "piston_resistance", 61 65 "radiating_piston",
+102
src/phonometry/electroacoustics/piston.py
··· 148 148 return out[()] if out.ndim == 0 else out 149 149 150 150 151 + #: Default polar-angle grid of the directivity pattern: 361 points spanning the 152 + #: front hemisphere ``-90 deg`` to ``+90 deg`` (the baffle blocks the rear), 153 + #: 0.5 deg apart, so the beam pattern is smooth even for a narrow high-``ka`` 154 + #: main lobe. 155 + _DEFAULT_DIRECTIVITY_ANGLES = np.radians(np.linspace(-90.0, 90.0, 361)) 156 + 157 + 158 + @dataclass(frozen=True) 159 + class PistonDirectivity: 160 + """Far-field directivity pattern of a baffled circular piston. 161 + 162 + Bundles the far-field directivity 163 + ``D(theta) = 2 J1(ka sin theta) / (ka sin theta)`` (Beranek & Mellow 164 + Eq. (4.42)) of one or more baffled circular pistons over a shared 165 + polar-angle grid, so the classic beam pattern can be drawn with 166 + :meth:`plot`. The maths is :func:`piston_directivity`; this is a thin, 167 + plottable bundle around it. 168 + 169 + :ivar angles: Polar angles ``theta`` from the axis, rad. 170 + :ivar ka: Wavenumber-radius products ``ka``, one per pattern (a 1-D array). 171 + :ivar directivity: Linear directivity ``D(theta)``, normalized so 172 + ``D(0) = 1``, as a ``(len(ka), len(angles))`` array; row ``i`` is the 173 + pattern for ``ka[i]``. 174 + :ivar directivity_db: Directivity in dB, ``20 log10 |D|``, same shape as 175 + :attr:`directivity` (the side-lobe nulls floor at a large negative 176 + value rather than ``-inf``). 177 + """ 178 + 179 + angles: np.ndarray 180 + ka: np.ndarray 181 + directivity: np.ndarray 182 + directivity_db: np.ndarray 183 + 184 + def plot(self, ax: "Axes | None" = None, *, language: str = "en", 185 + **kwargs: Any) -> "Axes": 186 + """Plot the far-field directivity (beam) pattern on a polar axes. 187 + 188 + Draws the directivity in dB against the polar angle: one curve per 189 + ``ka`` value as a single family (still one concept, the directivity 190 + pattern). A polar axes is created when ``ax`` is ``None``. Requires 191 + matplotlib (``pip install phonometry[plot]``). 192 + 193 + :param ax: Existing (polar) axes, or ``None`` to create a figure. 194 + :param language: Label language, ``"en"`` (default) or ``"es"``. 195 + :param kwargs: Forwarded to the per-``ka`` ``Axes.plot`` calls. 196 + :return: The axes. 197 + """ 198 + from .._i18n import check_language 199 + from .._plot.electroacoustics import plot_piston_directivity 200 + 201 + check_language(language) 202 + return plot_piston_directivity(self, ax=ax, language=language, **kwargs) 203 + 204 + 205 + def piston_directivity_pattern( 206 + ka: ArrayLike, 207 + angles: ArrayLike | None = None, 208 + ) -> PistonDirectivity: 209 + """Far-field directivity pattern of one or more baffled circular pistons. 210 + 211 + Samples the directivity ``D(theta) = 2 J1(ka sin theta) / (ka sin theta)`` 212 + (Beranek & Mellow Eq. (4.42)) at every ``ka`` over a polar-angle grid and 213 + bundles it into a :class:`PistonDirectivity` that exposes ``.plot()``. The 214 + main lobe narrows as ``ka`` grows; its first null appears once ``ka`` passes 215 + the first zero of ``J1`` (``ka sin theta = 3.8317``). 216 + 217 + :param ka: Wavenumber-radius product(s) ``ka`` (scalar or 1-D array), each 218 + non-negative. 219 + :param angles: Polar angles ``theta`` from the axis, rad (1-D). ``None`` 220 + (default) uses 361 points spanning the front hemisphere ``-90 deg`` to 221 + ``+90 deg``, 0.5 deg apart. 222 + :return: A :class:`PistonDirectivity`. 223 + """ 224 + ka_arr = np.atleast_1d(np.asarray(ka, dtype=np.float64)) 225 + if ka_arr.ndim != 1 or ka_arr.size == 0: 226 + raise ValueError("'ka' must be a non-empty scalar or 1-D array.") 227 + if np.any(ka_arr < 0.0) or not np.all(np.isfinite(ka_arr)): 228 + raise ValueError("'ka' must be non-negative and finite.") 229 + 230 + if angles is None: 231 + angle_arr = _DEFAULT_DIRECTIVITY_ANGLES.copy() 232 + else: 233 + angle_arr = np.atleast_1d(np.asarray(angles, dtype=np.float64)) 234 + if angle_arr.ndim != 1 or angle_arr.size == 0: 235 + raise ValueError("'angles' must be a non-empty 1-D array.") 236 + if not np.all(np.isfinite(angle_arr)): 237 + raise ValueError("'angles' must be finite.") 238 + 239 + directivity = np.asarray( 240 + piston_directivity(ka_arr[:, None], angle_arr[None, :]), 241 + dtype=np.float64, 242 + ).reshape(ka_arr.size, angle_arr.size) 243 + tiny = np.finfo(np.float64).tiny 244 + directivity_db = 20.0 * np.log10(np.maximum(np.abs(directivity), tiny)) 245 + return PistonDirectivity( 246 + angles=angle_arr, 247 + ka=ka_arr, 248 + directivity=directivity, 249 + directivity_db=directivity_db, 250 + ) 251 + 252 + 151 253 def _directivity_index(ka: NDArray[np.float64]) -> NDArray[np.float64]: 152 254 """Directivity index ``DI = 10 log10 Q`` per ``ka`` by hemisphere quadrature. 153 255
+31
site/src/content/docs/guides/electroacoustics.mdx
··· 393 393 callable directly. The piston is the companion radiator model of the 394 394 [industrial noise-control silencers](/phonometry/guides/noise-control/). 395 395 396 + The **directivity pattern** itself is a plottable result of its own: 397 + `piston_directivity_pattern(ka)` samples $D(\theta)$ at one or more $ka$ values 398 + and returns a `PistonDirectivity` (the polar angle grid, the linear 399 + `directivity` and its dB form `directivity_db`, and the `ka` values) whose 400 + `.plot()` draws the classic beam pattern. Several $ka$ are shown as one family 401 + on the same polar axes, so the narrowing of the main lobe and the emergence of 402 + the side lobes read at a glance: 403 + 404 + ```python 405 + from phonometry import piston_directivity_pattern 406 + 407 + pattern = piston_directivity_pattern([3.0, 8.0, 16.0]) 408 + print(pattern.directivity_db.shape) # (3, 361): one row per ka 409 + pattern.plot() # polar beam pattern in dB (needs matplotlib) 410 + ``` 411 + 412 + <ThemeImage src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/piston_directivity.svg" alt="Polar far-field directivity of a baffled circular piston at ka of 3, 8 and 16 over the front hemisphere, the on-axis level at the top as the 0 dB reference, showing the main lobe narrowing and the side lobes appearing as ka grows" width="72%" /> 413 + 414 + <details> 415 + <summary>Show the code for this figure</summary> 416 + 417 + ```python 418 + import matplotlib.pyplot as plt 419 + from phonometry import piston_directivity_pattern 420 + 421 + piston_directivity_pattern([3.0, 8.0, 16.0]).plot() 422 + plt.show() 423 + ``` 424 + 425 + </details> 426 + 396 427 ## 7. Loudspeaker characteristics report (IEC 60268-5) 397 428 398 429 The rated characteristics IEC 60268-5 defines around a measured on-axis
+31
site/src/content/docs/es/guides/electroacoustics.mdx
··· 403 403 invocables directamente. El pistón es el modelo de radiador complementario de los 404 404 [silenciadores de control de ruido industrial](/phonometry/es/guides/noise-control/). 405 405 406 + El **patrón de directividad** es, por sí mismo, un resultado representable: 407 + `piston_directivity_pattern(ka)` muestrea $D(\theta)$ para uno o varios valores 408 + de $ka$ y devuelve un `PistonDirectivity` (la malla de ángulos polares, la 409 + `directivity` lineal y su forma en dB `directivity_db`, y los valores de `ka`), 410 + cuyo `.plot()` dibuja el diagrama de haz clásico. Varios $ka$ se muestran como 411 + una familia sobre los mismos ejes polares, de modo que el estrechamiento del 412 + lóbulo principal y la aparición de los lóbulos secundarios se leen de un vistazo: 413 + 414 + ```python 415 + from phonometry import piston_directivity_pattern 416 + 417 + pattern = piston_directivity_pattern([3.0, 8.0, 16.0]) 418 + print(pattern.directivity_db.shape) # (3, 361): una fila por ka 419 + pattern.plot() # diagrama de haz polar en dB (necesita matplotlib) 420 + ``` 421 + 422 + <ThemeImage src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/piston_directivity_es.svg" alt="Directividad de campo lejano en polar de un pistón circular con pantalla para ka de 3, 8 y 16 sobre el hemisferio frontal, con el nivel en el eje arriba como referencia de 0 dB, que muestra el estrechamiento del lóbulo principal y la aparición de los lóbulos secundarios al crecer ka" width="72%" /> 423 + 424 + <details> 425 + <summary>Mostrar el código de esta figura</summary> 426 + 427 + ```python 428 + import matplotlib.pyplot as plt 429 + from phonometry import piston_directivity_pattern 430 + 431 + piston_directivity_pattern([3.0, 8.0, 16.0]).plot() 432 + plt.show() 433 + ``` 434 + 435 + </details> 436 + 406 437 ## 7. Informe de características del altavoz (IEC 60268-5) 407 438 408 439 Las características nominales que IEC 60268-5 define en torno a una respuesta en
+83
site/src/content/docs/reference/api/electroacoustics/piston.md
··· 82 82 83 83 **Returns:** `D` (float for scalar inputs, else an array). 84 84 85 + ## piston_directivity_pattern 86 + 87 + ```python 88 + piston_directivity_pattern( 89 + ka: ArrayLike, 90 + angles: ArrayLike | None = None, 91 + ) -> PistonDirectivity 92 + ``` 93 + 94 + Far-field directivity pattern of one or more baffled circular pistons. 95 + 96 + Samples the directivity `D(theta) = 2 J1(ka sin theta) / (ka sin theta)` 97 + (Beranek & Mellow Eq. (4.42)) at every `ka` over a polar-angle grid and 98 + bundles it into a [`PistonDirectivity`](/phonometry/reference/api/electroacoustics/piston/#pistondirectivity) that exposes `.plot()`. The 99 + main lobe narrows as `ka` grows; its first null appears once `ka` passes 100 + the first zero of `J1` (`ka sin theta = 3.8317`). 101 + 102 + **Parameters** 103 + 104 + | Name | Description | 105 + | :--- | :--- | 106 + | `ka` | Wavenumber-radius product(s) `ka` (scalar or 1-D array), each non-negative. | 107 + | `angles` | Polar angles `theta` from the axis, rad (1-D). `None` (default) uses 361 points spanning the front hemisphere `-90 deg` to `+90 deg`, 0.5 deg apart. | 108 + 109 + **Returns:** A [`PistonDirectivity`](/phonometry/reference/api/electroacoustics/piston/#pistondirectivity). 110 + 85 111 ## piston_reactance 86 112 87 113 ```python ··· 122 148 | `x` | Argument `x = 2ka` (scalar or array), dimensionless. | 123 149 124 150 **Returns:** `R1(x)` (float for scalar input, else an array). 151 + 152 + ## PistonDirectivity 153 + 154 + ```python 155 + PistonDirectivity( 156 + angles: np.ndarray, 157 + ka: np.ndarray, 158 + directivity: np.ndarray, 159 + directivity_db: np.ndarray, 160 + ) 161 + ``` 162 + 163 + Far-field directivity pattern of a baffled circular piston. 164 + 165 + Bundles the far-field directivity 166 + `D(theta) = 2 J1(ka sin theta) / (ka sin theta)` (Beranek & Mellow 167 + Eq. (4.42)) of one or more baffled circular pistons over a shared 168 + polar-angle grid, so the classic beam pattern can be drawn with 169 + `plot`. The maths is [`piston_directivity`](/phonometry/reference/api/electroacoustics/piston/#piston_directivity); this is a thin, 170 + plottable bundle around it. 171 + 172 + **Attributes** 173 + 174 + | Name | Description | 175 + | :--- | :--- | 176 + | `angles` | Polar angles `theta` from the axis, rad. | 177 + | `ka` | Wavenumber-radius products `ka`, one per pattern (a 1-D array). | 178 + | `directivity` | Linear directivity `D(theta)`, normalized so `D(0) = 1`, as a `(len(ka), len(angles))` array; row `i` is the pattern for `ka[i]`. | 179 + | `directivity_db` | Directivity in dB, `20 log10 \|D\|`, same shape as `directivity` (the side-lobe nulls floor at a large negative value rather than `-inf`). | 180 + 181 + ### PistonDirectivity.plot() 182 + 183 + ```python 184 + PistonDirectivity.plot( 185 + ax: Axes | None = None, 186 + *, 187 + language: str = 'en', 188 + **kwargs: Any, 189 + ) -> Axes 190 + ``` 191 + 192 + Plot the far-field directivity (beam) pattern on a polar axes. 193 + 194 + Draws the directivity in dB against the polar angle: one curve per 195 + `ka` value as a single family (still one concept, the directivity 196 + pattern). A polar axes is created when `ax` is `None`. Requires 197 + matplotlib (`pip install phonometry[plot]`). 198 + 199 + **Parameters** 200 + 201 + | Name | Description | 202 + | :--- | :--- | 203 + | `ax` | Existing (polar) axes, or `None` to create a figure. | 204 + | `language` | Label language, `"en"` (default) or `"es"`. | 205 + | `kwargs` | Forwarded to the per-`ka` `Axes.plot` calls. | 206 + 207 + **Returns:** The axes. 125 208 126 209 ## radiating_piston 127 210