Programmer Guide/Command Reference/EVAL/cepstrum: Difference between revisions
From STX Wiki
< Programmer Guide | Command Reference | EVAL
Jump to navigationJump to search
m (1 revision: Initial import) |
No edit summary |
||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:{{SUBPAGENAME}}}} | |||
Compute the real cepstrum or the cepstrum smoothed/liftered spectrum of the logarithmic spectrum ''x''. | |||
---- | |||
;Usage 1:<code>cepstrum(<var>x</var>)</code> | |||
:;<var>x</var>: a vector containing a log. amplitude spectrum | |||
:::*note: because the fft/ifft is used for the computation, the spectrum stored in ''x'' must be computed from a signal with <code>L=2^M</samples> (<code>-> nrow(''x'')=2^M/2+1</code>). | |||
;Result 1:The next (nearest) possible signal window length. | |||
---- | |||
;Usage 2:<code>fft(<var>x</var>)</code> | |||
:;<var>x</var>: signal vector or matrix; if ''x'' is a matrix a spectrum of each column is computed | |||
;Result 2:A matrix ''y'' with [[../ncol|ncol(''x'')]] columns and L+2 rows, where each column ''y''[*,j] contains the complex spectrum of the column (channel) ''x''[*,j]. The transformation length L is set to [[../npow2|npow2(nrow(''x''))]]. | |||
---- | |||
;Usage 3:<code>fft(<var>x</var>, <var>n</var> {, <var>ytype</var>, <var>poffset</var>, <var>prange</var>, <var>aref</var>})</code> | |||
:;<var>x</var>: signal vector or matrix; if ''x'' is a matrix a spectrum of each column is computed | |||
:;<var>n</var>: desired length of analysis window; | |||
::*If <code>''n'' < nrow(''x'')</code>, the analysis window length L is set to nrow(''x''), otherwise L is set to ''n''. | |||
::*If the analysis window length L is a power of 2 (L=2^M), the '''fft''' algorithm is used, otherwise the '''dft''' is used. | |||
::*If L is greater than [[../nrow|nrow(''x'')]], zero padding is applied to the signal. | |||
:;<var>ytype</var>: select the type and format of the computed spectrum (default=0) -> see '''Result 3''' | |||
:;<var>poffset</var>: offset in samples to the signal begin or the selected ''zero phase'' position (default=0) | |||
:::{|class="keinrahmen" | |||
|''poffset''='''0''' ||-> <code>phase[i] = atan2(im[i], re[i])</code> | |||
|- | |||
|otherwise ||-> <code>phase[i] = (atan2(im[i], re[i]) - 2*pi*i/L * ''poffset'') % (2 * pi)</code> | |||
|} | |||
:;<var>prange</var>: selects the range of phase values (default=0) | |||
:::{|class="keinrahmen" | |||
|''prange''='''0''' ||-> <code>0 <= phase[i] < 2*pi</code> | |||
|- | |||
|otherwise ||-> <code>-pi <= phase[i] < pi</code> | |||
|} | |||
:;<var>aref</var>: reference amplitude if the log. spectrum (''ytype''=4) is requested (default=1) | |||
;Result 3: A matrix ''y'' with [[../ncol|ncol(''x'')]] columns, where each column ''y''[*,j] contains the spectrum of the column (channel) ''x''[*,j]. The type and the length of the spectra is selected by the argument ''ytype''. | |||
::{|class="einrahmen" | |||
!''ytype'' !! description !! content of ''y''[*,j] !! nrow(''y'') | |||
|- | |||
|'''0''' | |||
|complex spectrum in cartesian format | |||
|<code>{ re<sub>0</sub>, im<sub>0</sub>, re<sub>1</sub>, im<sub>1</sub>, ... }</code> | |||
|L+2 | |||
|- | |||
|'''1''' | |||
|complex spectrum in polar format | |||
|<code>{ amp<sub>0</sub>, phase<sub>0</sub>, amp<sub>1</sub>, phase<sub>1</sub>, ... }<BR>with: amp<sub>i</sub>=sqrt(re<sub>i</sub><sup>2</sup> + im<sub>i</sub><sup>2</sup>),<BR>phase<sub>i</sub> see ''poffset''</code> | |||
|L+2 | |||
|- | |||
|'''2''' | |||
|amplitude spectrum | |||
|<code>{ amp<sub>0</sub>, amp<sub>1</sub>, ... }</code> | |||
|L+1 | |||
|- | |||
|'''3''' | |||
|power spectrum | |||
|<code>{ amp<sub>0</sub><sup>2</sup>, amp<sub>1</sub><sup>2</sup>, ... }</code> | |||
| L+1 | |||
|- | |||
|'''4''' | |||
|logarithmic amplitude spectrum | |||
|<code>{ lev<sub>0</sub>, lev<sub>1</sub>, ... }<BR>with: lev<sub>i</sub>=20*log<sub>10</sub>(amp<sub>i</sub>/''aref'')</code> | |||
| L+1 | |||
|} | |||
---- | |||
;See also: [[Programmer_Guide/Command_Reference/EVAL/ifft|ifft]], [[Programmer_Guide/Command_Reference/EVAL/dft|dft]], [[Programmer_Guide/Command_Reference/EVAL/dct|dct]], [[Programmer_Guide/Command_Reference/EVAL/cepstrum|cepstrum]], [[Programmer_Guide/Command_Reference/EVAL/lpc|lpc]], [[Programmer_Guide/Command_Reference/EVAL/complex arithmetic|complex arithmetic]] | |||
[[Programmer_Guide/Command_Reference/EVAL#Functions|<function list>]] | |||
{{DISPLAYTITLE:{{SUBPAGENAME}}}} | {{DISPLAYTITLE:{{SUBPAGENAME}}}} | ||
=====cepstrum===== | =====cepstrum===== |
Revision as of 13:20, 12 April 2011
Compute the real cepstrum or the cepstrum smoothed/liftered spectrum of the logarithmic spectrum x.
- Usage 1
cepstrum(x)
- x
- a vector containing a log. amplitude spectrum
- note: because the fft/ifft is used for the computation, the spectrum stored in x must be computed from a signal with
L=2^M</samples> (
-> nrow(x)=2^M/2+1
).
- note: because the fft/ifft is used for the computation, the spectrum stored in x must be computed from a signal with
- Result 1
- The next (nearest) possible signal window length.
- Usage 2
fft(x)
- x
- signal vector or matrix; if x is a matrix a spectrum of each column is computed
- Result 2
- A matrix y with ncol(x) columns and L+2 rows, where each column y[*,j] contains the complex spectrum of the column (channel) x[*,j]. The transformation length L is set to npow2(nrow(x)).
- Usage 3
fft(x, n {, ytype, poffset, prange, aref})
- x
- signal vector or matrix; if x is a matrix a spectrum of each column is computed
- n
- desired length of analysis window;
- If
n < nrow(x)
, the analysis window length L is set to nrow(x), otherwise L is set to n.
- If the analysis window length L is a power of 2 (L=2^M), the fft algorithm is used, otherwise the dft is used.
- If L is greater than nrow(x), zero padding is applied to the signal.
- ytype
- select the type and format of the computed spectrum (default=0) -> see Result 3
- poffset
- offset in samples to the signal begin or the selected zero phase position (default=0)
poffset=0
-> phase[i] = atan2(im[i], re[i])
otherwise
-> phase[i] = (atan2(im[i], re[i]) - 2*pi*i/L * poffset) % (2 * pi)
- prange
- selects the range of phase values (default=0)
prange=0
-> 0 <= phase[i] < 2*pi
otherwise
-> -pi <= phase[i] < pi
- aref
- reference amplitude if the log. spectrum (ytype=4) is requested (default=1)
- Result 3
- A matrix y with ncol(x) columns, where each column y[*,j] contains the spectrum of the column (channel) x[*,j]. The type and the length of the spectra is selected by the argument ytype.
ytype
description
content of y[*,j]
nrow(y)
0
complex spectrum in cartesian format
{ re0, im0, re1, im1, ... }
L+2
1
complex spectrum in polar format
{ amp0, phase0, amp1, phase1, ... }
with: ampi=sqrt(rei2 + imi2),
phasei see poffset
L+2
2
amplitude spectrum
{ amp0, amp1, ... }
L+1
3
power spectrum
{ amp02, amp12, ... }
L+1
4
logarithmic amplitude spectrum
{ lev0, lev1, ... }
with: levi=20*log10(ampi/aref)
L+1
cepstrum
Cepstrum.
Usage:
cepstrum(x)
Function:
Computes the real cepstrum of x.
Result:
A vector containing the cepstrum coefficients.
Usage:
cepstrum(x, n)
Function:
Computes the cepstrum smoothed spectrum of x using the first n coefficients.
Result:
The cepstrum smoothed spectrum. This is the same type as x.
Usage:
cepstrum(x, o, n)
Function:
Computes the cepstrum smoothed spectrum of x using the coefficients o to o+
n-1
.
Result:
The cepstrum smoothed spectrum. This is the same type as x.
Notes:
x must be a log. amplitude spectrum computed with a radix-2 fft.