Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 4abfce2

Browse files
Fix sphinx/build_docs warnings for audio_filters (TheAlgorithms#12449)
* updating DIRECTORY.md * Fix sphinx/build_docs warnings for audio_filters * Improve * Fix * Fix * Fix --------- Co-authored-by: MaximSmolskiy <MaximSmolskiy@users.noreply.github.com>
1 parent f8e595e commit 4abfce2

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

‎audio_filters/iir_filter.py‎

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,17 @@ class IIRFilter:
1010
1111
Implementation details:
1212
Based on the 2nd-order function from
13-
https://en.wikipedia.org/wiki/Digital_biquad_filter,
13+
https://en.wikipedia.org/wiki/Digital_biquad_filter,
1414
this generalized N-order function was made.
1515
1616
Using the following transfer function
17-
H(z)=\frac{b_{0}+b_{1}z^{-1}+b_{2}z^{-2}+...+b_{k}z^{-k}}{a_{0}+a_{1}z^{-1}+a_{2}z^{-2}+...+a_{k}z^{-k}}
17+
.. math:: H(z)=\frac{b_{0}+b_{1}z^{-1}+b_{2}z^{-2}+...+b_{k}z^{-k}}
18+
{a_{0}+a_{1}z^{-1}+a_{2}z^{-2}+...+a_{k}z^{-k}}
19+
1820
we can rewrite this to
19-
y[n]={\frac{1}{a_{0}}}\left(\left(b_{0}x[n]+b_{1}x[n-1]+b_{2}x[n-2]+...+b_{k}x[n-k]\right)-\left(a_{1}y[n-1]+a_{2}y[n-2]+...+a_{k}y[n-k]\right)\right)
21+
.. math:: y[n]={\frac{1}{a_{0}}}
22+
\left(\left(b_{0}x[n]+b_{1}x[n-1]+b_{2}x[n-2]+...+b_{k}x[n-k]\right)-
23+
\left(a_{1}y[n-1]+a_{2}y[n-2]+...+a_{k}y[n-k]\right)\right)
2024
"""
2125

2226
def __init__(self, order: int) -> None:
@@ -34,17 +38,19 @@ def __init__(self, order: int) -> None:
3438

3539
def set_coefficients(self, a_coeffs: list[float], b_coeffs: list[float]) -> None:
3640
"""
37-
Set the coefficients for the IIR filter. These should both be of size order + 1.
38-
a_0 may be left out, and it will use 1.0 as default value.
41+
Set the coefficients for the IIR filter.
42+
These should both be of size `order` + 1.
43+
:math:`a_0` may be left out, and it will use 1.0 as default value.
3944
4045
This method works well with scipy's filter design functions
41-
>>> # Make a 2nd-order 1000Hz butterworth lowpass filter
42-
>>> import scipy.signal
43-
>>> b_coeffs, a_coeffs = scipy.signal.butter(2, 1000,
44-
... btype='lowpass',
45-
... fs=48000)
46-
>>> filt = IIRFilter(2)
47-
>>> filt.set_coefficients(a_coeffs, b_coeffs)
46+
47+
>>> # Make a 2nd-order 1000Hz butterworth lowpass filter
48+
>>> import scipy.signal
49+
>>> b_coeffs, a_coeffs = scipy.signal.butter(2, 1000,
50+
... btype='lowpass',
51+
... fs=48000)
52+
>>> filt = IIRFilter(2)
53+
>>> filt.set_coefficients(a_coeffs, b_coeffs)
4854
"""
4955
if len(a_coeffs) < self.order:
5056
a_coeffs = [1.0, *a_coeffs]
@@ -68,7 +74,7 @@ def set_coefficients(self, a_coeffs: list[float], b_coeffs: list[float]) -> None
6874

6975
def process(self, sample: float) -> float:
7076
"""
71-
Calculate y[n]
77+
Calculate :math:`y[n]`
7278
7379
>>> filt = IIRFilter(2)
7480
>>> filt.process(0)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /