-
Notifications
You must be signed in to change notification settings - Fork 29
/
allpole.xml
99 lines (83 loc) · 3.42 KB
/
allpole.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<refentry id="allpole">
<indexterm id="IndexAllpole"><primary>allpole</primary></indexterm>
<refentryinfo><title>Spectral Processing:LPC</title></refentryinfo>
<refmeta>
<refentrytitle>allpole</refentrytitle>
</refmeta>
<refnamediv>
<refname>allpole</refname>
<refpurpose>
Allpole filter implementation using direct convolution.
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
This opcode implements an allpole filter using direct
convolution.
</para>
</refsect1>
<refsect1>
<title>Syntax</title>
<synopsis>ares <command>allpole</command> asig, kCoef[]</synopsis>
</refsect1>
<refsect1>
<title>Performance</title>
<para>
<emphasis>kCoef[]</emphasis> -- all-pole filter coefficients
(iord-size array)
</para>
<para>
<emphasis>asig</emphasis> -- audio input
</para>
<para>
<emphasis>ares</emphasis> -- audio output
</para>
</refsect1>
<refsect1>
<para>
This opcode is part of a suite of streaming linear prediction
opcodes. It implements an allpole filter using coefficients
passed to it via a k-rate array. The filter length is
determined by the array size
</para>
<para>
The typical application is compute the coefficients via some
method and then pass these to the opcode. The set of
coefficients passed to allpole need to implement a stable
filter, since this is an IIR filter and stability is not
guaranteed by default.
</para>
<para>
The most common method of coefficient derivation is linear
prediction analysis, produced for instance by lpcanal. Other
methods may be employed, including direct calculation of
coefficients from a known filter recipe (e.g. resonators etc).
</para>
</refsect1>
<refsect1>
<title>Examples</title>
<para>
Here is an example of the allpole opcode using an audio input
signal as lpc source. It uses the file <ulink url="examples/allpole.csd"><citetitle>allpole.csd</citetitle></ulink>.
<example>
<title>Example of the allpole opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/allpole.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
<para>
Here is another example of the allpole opcode, now using a
function table as lpc source. It uses the file <ulink url="examples/allpole-2.csd"><citetitle>allpole-2.csd</citetitle></ulink>.
<example>
<title>Another example of the allpole opcode.</title>
<para>See the sections <link linkend="UsingRealTime"><citetitle>Real-time Audio</citetitle></link> and <link linkend="CommandFlags"><citetitle>Command Line Flags</citetitle></link> for more information on using command line flags.</para>
<xi:include href="examples-xml/allpole-2.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</example>
</para>
</refsect1>
<refsect1>
<title>See also</title>
<para><link linkend="SpectralLpcresyn"><citetitle>Streaming Linear Predictive Coding (SLPC) Resynthesis</citetitle></link></para>
</refsect1>
</refentry>