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 #### IIR filters


An infinite impulse response (IIR) filter is a digital filter that implements all possible rational transfer functions. 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}$$ $$\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. 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}$$ $$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 #### 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}$$ $$y_k = \sum_{n=0}^N b_n x_{k-n}$$
They are computationally straightforward and always stable since they have no poles. 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. 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. 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. 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. 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 ### Communities


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


Loading…
Cancel
Save