This is the accompanying website for the DAFx paper entitled as above. Below are sound examples for comparisons between the implicit and explicit finite difference (FD) schemes. Download the paper here.
Impulse response were calculated for a 42m x 5m x 5m box-shaped room with the listener and source positions centered in the room and a distance of 40m between them. The speed of sound is c=340m/s. The walls were made slightly absorbing (specific acoustic admittance γ=0.5, reflection coefficient R=2/3) and very absorptive (γ=0.9, R=0.05), and a 0.5 second impulse response was retained.
The FD schemes uses a 19-point isotropic discrete Laplacian (α₁=1/3, α₂=2/3). The implicit schemes use six Jacobi iterations per time-step (M=6). All calculations were carried out in single precision using an Nvidia K40 GPU device. The Courant number was set just below the stability limit (μ=1e-4) for each scheme.
The sample rates (time-steps) were set such that the maximum absolute dispersion error at 4kHz was between 0.5% and 5%, according to a von Neumann analysis of the dispersion error for each scheme, as per the paper.
The IRs were convolved with the following 4kHz bandlimited speech sample (8 kHz sample rate):
Sound examples are given for dispersion error threshold, using the
explicit (β=0) and implicit schemes (β>0, M=6), as well as a table summarising the computation times in single-precision.
Max 0.5% dispersion error :
β=0, R=0.5: R=0.05:
β=1/32, R=0.5: R=0.05:
β | grid size | memory used | sample rate | runtime on K40 |
---|---|---|---|---|
0 | 4589x553x553 | 10.46 GB | 42830 Hz | 5430 s |
1/32 | 2271x277x277 | 2.60 GB | 23180 Hz | 2230 s |
Max 1% dispersion error:
β=0, R=0.5: R=0.05:
β=1/32, R=0.5: R=0.05:
β=0.04660, R=0.5: R=0.05:
β | grid size | memory used | sample rate | runtime |
---|---|---|---|---|
0 | 3334x404x404 | 4.05 GB | 31100 Hz | 1531 s |
1/32 | 1946x238x238 | 1.64 GB | 19850 Hz | 1212 s |
0.0466 | 1531x189x189 | 0.81 GB | 16430 Hz | 497 s |
Max 2% dispersion error:
β=0, R=0.5: R=0.05:
β=1/32, R=0.5: R=0.05:
β=0.04660, R=0.5: R=0.05:
β | grid size | memory used | sample rate | runtime |
---|---|---|---|---|
0 | 2451x298x298 | 1.62 GB | 22840 Hz | 446 s |
1/32 | 1673x206x206 | 1.06 GB | 17060 Hz | 674 s |
0.0466 | 1429x177x177 | 0.67 GB | 15330 Hz | 383 s |
Above a 2% dispersion error threshold, the implicit schemes are not expected to be advantageous in terms of runtimes. However, phase artefacts due to numerical dispersion may become audible above a 2% dispersion error threshold.
Max 4% dispersion error:
β=0, R=0.5: R=0.05:
β=1/32, R=0.5: R=0.05:
β=0.04660, R=0.5: R=0.05:
β | grid size | memory used | sample rate | runtime |
---|---|---|---|---|
0 | 1863x228x228 | 0.72 GB | 17346 Hz | 151 s |
1/32 | 1460x180x180 | 0.70 GB | 14870 Hz | 390 s |
0.0466 | 1324x164x164 | 0.53 GB | 14194 Hz | 283 s |
Max 5% dispersion error:
β=0, R=0.5: R=0.05:
β=1/32, R=0.5: R=0.05:
β=0.04660, R=0.5: R=0.05:
β | grid size | memory used | sample rate | runtime |
---|---|---|---|---|
0 | 1722x212x212 | 0.58 GB | 16032 Hz | 111 s |
1/32 | 1403x174x174 | 0.63 GB | 14291 Hz | 337 s |
0.0466 | 1292x160x160 | 0.49 GB | 13855 Hz | 257 s |