Skip to content

Commit

Permalink
feat: All-Pass Filter (BiquadFilterNode)
Browse files Browse the repository at this point in the history
  • Loading branch information
Korilakkuma committed Dec 3, 2024
1 parent 6f48b4a commit f2b3b67
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/docs.js
Original file line number Diff line number Diff line change
Expand Up @@ -7256,3 +7256,4 @@ renderFrequencyResponse(document.getElementById('svg-figure-filter-response-lows
renderFrequencyResponse(document.getElementById('svg-figure-filter-response-highshelf'), 'highshelf');
renderFrequencyResponse(document.getElementById('svg-figure-filter-response-peaking'), 'peaking');
renderFrequencyResponse(document.getElementById('svg-figure-filter-response-notch'), 'notch');
renderFrequencyResponse(document.getElementById('svg-figure-filter-response-allpass'), 'allpass');
37 changes: 37 additions & 0 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8065,6 +8065,43 @@ <h5>Notch Filter</h5>
<figcaption>Notch Filter のフィルタ特性</figcaption>
</figure>
</section>
<section id="section-effectors-filter-biquad-filter-node-allpass">
<h5>All-Pass Filter</h5>
<p>
<b>All-Pass Filter</b> (<b>全域通過フィルタ</b>) とは, 振幅特性は変化させずに, <b>中心周波数</b> (<span class="inline-math"
>$f_{\mathrm{computed}}$</span>) 付近の周波数成分の<b>位相特性を変化させるフィルタです</b>. したがって, フィルタ特性のグラフも, All-Pass Filter のみは,
<b>位相スペクトル</b> (縦軸が, 位相で単位は <code>radian</code>) となっています (振幅特性が変わらないので, 振幅スペクトルで表示すると,
パラメータを変化させてもフィルタ特性は変わりません).
</p>
<p>
中心周波数では, <span class="math-inline">$\pm \pi$</span> で最も位相が変化し (<span class="math-inline">$\pm \pi$</span> 位相変化すると,
逆位相となります), 中心周波数から離れる周波数成分ほど, ほとんど位相は変化しなくなります.
</p>
<p>
All-Pass Filter における, <b><code>Q</code></b> プロパティは, 中心周波数付近の急峻に影響を与えます.
<code>Q</code> プロパティの値を大きくするほど, 中心周波数付近のフィルタ特性が急峻になって,
それ以外の周波数成分の位相特性に影響を与えなくなります. つまり, 位相特性を変化させる周波数帯域をより狭くします.
<b>0 以下の値を設定すると, 中心周波数として機能しなくなるので, 正の値を指定するようにします</b>.
</p>
<p>
All-Pass Filter においては, <b><code>gain</code></b> プロパティは無効で, フィルタ特性に影響を与えることはありません.
</p>
<figure>
<div class="app-headline">
<label for="range-filter-allpass-frequency">frequency</label>
<input type="range" id="range-filter-allpass-frequency" value="350" min="1" max="8000" step="1" />
<span id="print-filter-allpass-frequency">350 Hz</span>
<label for="range-filter-allpass-detune">detune</label>
<input type="range" id="range-filter-allpass-detune" value="0" min="-1200" max="1200" step="1" />
<span id="print-filter-allpass-detune">0 cent</span>
<label for="range-filter-allpass-Q">Q</label>
<input type="range" id="range-filter-allpass-Q" value="1" min="1" max="20" step="1" />
<span id="print-filter-allpass-Q">1</span>
</div>
<svg id="svg-figure-filter-response-allpass" width="600" height="300" />
<figcaption>All-Pass Filter のフィルタ特性 (位相スペクトル)</figcaption>
</figure>
</section>
</section>
</section>
</section>
Expand Down

0 comments on commit f2b3b67

Please sign in to comment.