| OLD | NEW |
| 1 <!doctype html> | 1 <!doctype html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <title>Test Basic IIRFilterNode Operation</title> | 4 <title>Test Basic IIRFilterNode Operation</title> |
| 5 <script src="../resources/js-test.js"></script> | 5 <script src="../resources/js-test.js"></script> |
| 6 <script src="resources/compatibility.js"></script> | 6 <script src="resources/compatibility.js"></script> |
| 7 <script src="resources/audio-testing.js"></script> | 7 <script src="resources/audio-testing.js"></script> |
| 8 <script src="resources/biquad-filters.js"></script> | 8 <script src="resources/biquad-filters.js"></script> |
| 9 </head> | 9 </head> |
| 10 | 10 |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 | 231 |
| 232 var snr = 10*Math.log10(computeSNR(actual, expected)); | 232 var snr = 10*Math.log10(computeSNR(actual, expected)); |
| 233 Should("SNR for IIRFIlter for Biquad " + filterType, snr).beGreaterT
hanOrEqualTo(snrThreshold); | 233 Should("SNR for IIRFIlter for Biquad " + filterType, snr).beGreaterT
hanOrEqualTo(snrThreshold); |
| 234 }).then(done); | 234 }).then(done); |
| 235 }; | 235 }; |
| 236 } | 236 } |
| 237 | 237 |
| 238 // Thresholds here are experimentally determined. | 238 // Thresholds here are experimentally determined. |
| 239 var biquadTestConfigs = [{ | 239 var biquadTestConfigs = [{ |
| 240 filterType: "lowpass", | 240 filterType: "lowpass", |
| 241 snrThreshold: 91.222, | 241 snrThreshold: 91.221, |
| 242 errorThreshold: { | 242 errorThreshold: { |
| 243 relativeThreshold: 4.15e-5 | 243 relativeThreshold: 4.9834e-5 |
| 244 } | 244 } |
| 245 }, { | 245 }, { |
| 246 filterType: "highpass", | 246 filterType: "highpass", |
| 247 snrThreshold: 107.246, | 247 snrThreshold: 105.4590, |
| 248 errorThreshold: { | 248 errorThreshold: { |
| 249 absoluteThreshold: 2.9e-6, | 249 absoluteThreshold: 2.9e-6, |
| 250 relativeThreshold: 3e-5 | 250 relativeThreshold: 3e-5 |
| 251 } | 251 } |
| 252 }, { | 252 }, { |
| 253 filterType: "bandpass", | 253 filterType: "bandpass", |
| 254 snrThreshold: 104.060, | 254 snrThreshold: 104.060, |
| 255 errorThreshold: { | 255 errorThreshold: { |
| 256 absoluteThreshold: 2e-7, | 256 absoluteThreshold: 2e-7, |
| 257 relativeThreshold: 8.7e-4 | 257 relativeThreshold: 8.7e-4 |
| (...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 545 var expected = result.getChannelData(0); | 545 var expected = result.getChannelData(0); |
| 546 var actual = result.getChannelData(1); | 546 var actual = result.getChannelData(1); |
| 547 | 547 |
| 548 Should("4-th order IIRFilter (biquad ref)", | 548 Should("4-th order IIRFilter (biquad ref)", |
| 549 actual, { | 549 actual, { |
| 550 verbose: true, | 550 verbose: true, |
| 551 precision: 5 | 551 precision: 5 |
| 552 }) | 552 }) |
| 553 .beCloseToArray(expected, { | 553 .beCloseToArray(expected, { |
| 554 // Thresholds experimentally determined. | 554 // Thresholds experimentally determined. |
| 555 absoluteThreshold: 8.4e-8, | 555 absoluteThreshold: 1.59e-7, |
| 556 relativeThreshold: 5e-7, | 556 relativeThreshold: 2.11e-5, |
| 557 }); | 557 }); |
| 558 | 558 |
| 559 var snr = 10*Math.log10(computeSNR(actual, expected)); | 559 var snr = 10*Math.log10(computeSNR(actual, expected)); |
| 560 Should("SNR of 4-th order IIRFilter (biquad ref)", snr) | 560 Should("SNR of 4-th order IIRFilter (biquad ref)", snr) |
| 561 .beGreaterThanOrEqualTo(110.684); | 561 .beGreaterThanOrEqualTo(108.947); |
| 562 }).then(done); | 562 }).then(done); |
| 563 }); | 563 }); |
| 564 | 564 |
| 565 audit.defineTask("finish", function (done) { | 565 audit.defineTask("finish", function (done) { |
| 566 finishJSTest(); | 566 finishJSTest(); |
| 567 done(); | 567 done(); |
| 568 }); | 568 }); |
| 569 | 569 |
| 570 audit.runTasks(); | 570 audit.runTasks(); |
| 571 successfullyParsed = true; | 571 successfullyParsed = true; |
| 572 </script> | 572 </script> |
| 573 </body> | 573 </body> |
| 574 </html> | 574 </html> |
| OLD | NEW |