Browse Source

Add TODO list for DSP, add Facebook page

pull/1/merge
Andrew Belt 6 years ago
parent
commit
76a9d61645
2 changed files with 18 additions and 6 deletions
  1. +17
    -6
      DSP.md
  2. +1
    -0
      Introduction.md

+ 17
- 6
DSP.md View File

@@ -145,7 +145,7 @@ We should now have all the tools we need to digitally implement any linear analo
#### IIR filters

An infinite impulse response (IIR) filter is a digital filter that implements all possible rational transfer functions.
By multiplying the denominator of the rational $H(z)$ definition above on both sides and applying it to an input $x_k$ and output $y_k$, we obtain
By multiplying the denominator of the rational $H(z)$ definition above on both sides and applying it to an input $x_k$ and output $y_k$, we obtain the difference relation
$$\sum_{m=0}^M a_m y_{k-m} = \sum_{n=0}^N b_n x_{k-n}$$
Usually $a_0$ is normalized to 1, and $y_k$ can be written explicitly.
$$y_k = \sum_{n=0}^N b_n x_{k-n} - \sum_{m=1}^M a_m y_{k-m}$$
@@ -157,7 +157,7 @@ $$H(z) = \frac{b_0 + b_1 z^{-1} + b_2 z^{-2}}{1 + a_1 z^{-1} + a_2 z^{-2}}$$

#### FIR filters

A finite impulse response (FIR) filter is a specific case of an IIR filter with $M = 0$ (a transfer function denominator of 1). For an input and output signal,
A finite impulse response (FIR) filter is a specific case of an IIR filter with $M = 0$ (a transfer function denominator of 1). For an input and output signal, the difference relation is
$$y_k = \sum_{n=0}^N b_n x_{k-n}$$
They are computationally straightforward and always stable since they have no poles.

@@ -185,7 +185,7 @@ The signal $h(t)$ is the result of processing a [delta function](https://en.wiki
Clapping your hands or popping a balloon (both good approximations of $\delta$) in a large cathedral will generate a very sophisticated impulse response, which can be recorded and processed in a FIR filter algorithm to reproduce arbitrary sounds as if they were performed in the cathedral.

Repeating this process in the digital realm gives us the discrete convolution.
$$ y_k = \sum_{n=-\infty}^\infty h_n x_k $$
$$ y_k = \sum_{n=-\infty}^\infty h_n x_{k-n} $$
Note that $h_n$ is both non-causal (nonzero for negative $t$ or $n$) and infinitely long, which is addressed later.


@@ -205,6 +205,17 @@ where $\operatorname{sinc}(x) = \sin(\pi x) / (\pi x)$ is the [normalized sinc f
Although the impulse response is infinitely long, restricting it to a finite range $[-T, T]$ and shifting it forward by $T$ produces a finite causal impulse response that can be solved by a fast FIR algorithm to produce a close approximation of an ideal brickwall filter.


### Window functions

*Coming soon*
### To-do

- digital filters
- windows
- oscillators
- minimum phase filters
- minBLEP/polyBLEP
- analog circuit modeling
- integration techniques
- optimization (will wait for https://github.com/VCVRack/manual/issues/3 to be completed)
- profiling
- mathematical optimization
- vector instructions
- compiler optimization

+ 1
- 0
Introduction.md View File

@@ -10,6 +10,7 @@ Edit this manual at https://github.com/VCVRack/manual.
### Communities

- Website: https://vcvrack.com/
- Facebook: https://www.facebook.com/vcvrack/
- Twitter: https://twitter.com/vcvrack
- Github issue tracker (features, bugs, and developer discussions): https://github.com/VCVRack/Rack/issues
- Facebook group: https://www.facebook.com/groups/vcvrack/


Loading…
Cancel
Save