---
title: "Cepstrogram"
language: "en"
type: "Symbol"
summary: "Cepstrogram[data] plots the array of power cepstra computed on each partition of data. Cepstrogram[data, n] uses partitions of length n. Cepstrogram[data, n, d] uses partitions with offset d. Cepstrogram[data, n, d, wfun] applies a smoothing window wfun to each partition. Cepstrogram[data, n, d, wfun, m] pads partitions with zeros to length m prior to the computation of the transform."
keywords: 
- cepstrum
- cepstral analysis
- cepstrogram
- cepstra
- kepstrum
- liftering
- quefrency
- quefrency analysis
- real cepstrum
- power cepstrum
- complex cepstrum
- phase cepstrum
- speech analysis
- short-time cepstrum
canonical_url: "https://reference.wolfram.com/language/ref/Cepstrogram.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Fourier Analysis"
    link: "https://reference.wolfram.com/language/guide/FourierAnalysis.en.md"
  - 
    title: "Audio Analysis"
    link: "https://reference.wolfram.com/language/guide/AudioAnalysis.en.md"
  - 
    title: "Speech Computation"
    link: "https://reference.wolfram.com/language/guide/SpeechComputation.en.md"
  - 
    title: "Summation Transforms"
    link: "https://reference.wolfram.com/language/guide/SummationTransforms.en.md"
  - 
    title: "Audio Representation"
    link: "https://reference.wolfram.com/language/guide/AudioRepresentation.en.md"
  - 
    title: "Video Computation: Update History"
    link: "https://reference.wolfram.com/language/guide/VideoComputation-UpdateHistory.en.md"
  - 
    title: "Video Analysis"
    link: "https://reference.wolfram.com/language/guide/VideoAnalysis.en.md"
  - 
    title: "Signal Visualization & Analysis"
    link: "https://reference.wolfram.com/language/guide/SignalAnalysis.en.md"
  - 
    title: "Audio Processing"
    link: "https://reference.wolfram.com/language/guide/AudioProcessing.en.md"
related_functions: 
  - 
    title: "CepstrogramArray"
    link: "https://reference.wolfram.com/language/ref/CepstrogramArray.en.md"
  - 
    title: "CepstrumArray"
    link: "https://reference.wolfram.com/language/ref/CepstrumArray.en.md"
  - 
    title: "Spectrogram"
    link: "https://reference.wolfram.com/language/ref/Spectrogram.en.md"
  - 
    title: "SpectrogramArray"
    link: "https://reference.wolfram.com/language/ref/SpectrogramArray.en.md"
  - 
    title: "PeriodogramArray"
    link: "https://reference.wolfram.com/language/ref/PeriodogramArray.en.md"
  - 
    title: "Periodogram"
    link: "https://reference.wolfram.com/language/ref/Periodogram.en.md"
---
# Cepstrogram

Cepstrogram[data] plots the array of power cepstra computed on each partition of data.

Cepstrogram[data, n] uses partitions of length n.

Cepstrogram[data, n, d] uses partitions with offset d.

Cepstrogram[data, n, d, wfun] applies a smoothing window wfun to each partition.

Cepstrogram[data, n, d, wfun, m] pads partitions with zeros to length m prior to the computation of the transform.

## Details and Options

* ``Cepstrogram`` computes and plots an array of cepstra computed on partitions of data.

* The power cepstrum for each partition is computed as the squared inverse Fourier transform of the log-power spectrum.

* Use ``CepstrogramArray`` to get the numerical array of cepstra.

* The partition length ``n`` and offset ``d`` can be expressed as an integer number (interpreted as number of samples) or as time or sample quantities.

* ``Cepstrogram[list]`` uses partitions of length $n=2{}^{\wedge}\text{Round}\left[\log _2\left(\sqrt{m}\right)+1\right]$ and offset $d=\text{Round}[n/3]$, where ``m`` is ``Length[list]``.

* In ``Cepstrogram[list, n, d, wfun]``, the smoothing window ``wfun`` can be specified using a window function that will be sampled between $-1/2$ and $1/2$ or a list of length ``n``. The default window is ``DirichletWindow``, which effectively does no smoothing.

* The ``data`` can be any of the following:

|       |                          |
| ----- | ------------------------ |
| list  | 1D numerical array       |
| audio | an Audio or Sound object |
| video | a Video object           |

* For multichannel audio objects, the cepstrogram is computed over the sum of all channels.

* ``Cepstrogram`` accepts all ``Graphics`` options with the following additions and changes: []

|     |     |     |
| --- | --- | --- |
| AspectRatio  | 1 / 3 | ratio of height to width  |
| ClippingStyle | None | how to show cells whose values are clipped |
| ColorFunction | Automatic | how each cell should be colored  |
| ColorFunctionScaling | True | whether to scale the argument to ColorFunction |
| ColorRules | Automatic | rules for determining colors from values  |
| DataRange | Automatic | the range of $x$ and $y$ values to assume  |
| DataReversed | False | whether to reverse the order of rows |
| FourierParameters | {1, -1} | Fourier parameters |
| Frame  | Automatic | whether to draw a frame around the plot  |
| MaxPlotPoints | ∞   | the maximum number of points to include  |
| Mesh | False | whether to draw a mesh  |
| MeshStyle | GrayLevel[-1 + GoldenRatio] | the style to use for a mesh  |
| Padding | Automatic | padding scheme |
| PaddingSize | {0, 0} | amount of padding |
| PlotLegends | None | legends for datasets |

### List of all options

|     |     |     |
| --- | --- | --- |
| AlignmentPoint | Center | the default point in the graphic to align with  |
| AspectRatio | 1 / 3 | ratio of height to width  |
| Axes | False | whether to draw axes  |
| AxesLabel | None | axes labels  |
| AxesOrigin | Automatic | where axes should cross  |
| AxesStyle | {}  | style specifications for the axes  |
| Background | None | background color for the plot  |
| BaselinePosition | Automatic | how to align with a surrounding text baseline |
| BaseStyle | {}  | base style specifications for the graphic |
| ClippingStyle | None | how to show cells whose values are clipped |
| ColorFunction | Automatic | how each cell should be colored  |
| ColorFunctionScaling | True | whether to scale the argument to ColorFunction |
| ColorRules | Automatic | rules for determining colors from values  |
| ContentSelectable | Automatic | whether to allow contents to be selected  |
| CoordinatesToolOptions | Automatic | detailed behavior of the coordinates tool |
| DataRange | Automatic | the range of $x$ and $y$ values to assume  |
| DataReversed | False | whether to reverse the order of rows |
| Epilog | {}  | primitives rendered after the main plot  |
| FormatType | TraditionalForm | the default format type for text  |
| FourierParameters | {1, -1} | Fourier parameters |
| Frame | Automatic | whether to draw a frame around the plot  |
| FrameLabel | None | frame labels  |
| FrameStyle | {}  | style specifications for the frame  |
| FrameTicks | Automatic | frame ticks  |
| FrameTicksStyle | {}  | style specifications for frame ticks |
| GridLines | None | grid lines to draw  |
| GridLinesStyle | {}  | style specifications for grid lines |
| ImageMargins | 0.  | the margins to leave around the graphic  |
| ImagePadding | All | what extra padding to allow for labels etc. |
| ImageSize | Automatic | the absolute size at which to render the graphic  |
| LabelStyle | {}  | style specifications for labels |
| MaxPlotPoints | ∞   | the maximum number of points to include  |
| Mesh | False | whether to draw a mesh  |
| MeshStyle | GrayLevel[-1 + GoldenRatio] | the style to use for a mesh  |
| Method | Automatic | details of graphics methods to use |
| Padding | Automatic | padding scheme |
| PaddingSize | {0, 0} | amount of padding |
| PlotLabel | None | an overall label for the plot  |
| PlotLegends | None | legends for datasets |
| PlotRange | All | range of values to include  |
| PlotRangeClipping | False | whether to clip at the plot range  |
| PlotRangePadding | Automatic | how much to pad the range of values  |
| PlotRegion | Automatic | the final display region to be filled  |
| PreserveImageOptions | Automatic | whether to preserve image options when displaying new versions of the same graphic |
| Prolog | {}  | primitives rendered before the main plot  |
| RotateLabel | True | whether to rotate y labels on the frame  |
| Ticks | Automatic | axes ticks  |
| TicksStyle | {}  | style specifications for axes ticks |

---

## Examples (59)

### Basic Examples (2)

Cepstrogram of a sawtooth chirp signal:

```wl
In[1]:= Cepstrogram[Table[SawtoothWave[( i/100) + ((i/1000))^2], {i, 10000}]]

Out[1]= [image]
```

---

Cepstrogram of an audio signal:

```wl
In[1]:= Cepstrogram[\!\(\*AudioBox["![Embedded Audio Player](audio://content-vzea4)"]\)]

Out[1]= [image]
```

### Scope (2)

By default, a suitable window size and offset are chosen:

```wl
In[1]:= a = \!\(\*AudioBox["![Embedded Audio Player](audio://content-vzea4)"]\);

In[2]:= Cepstrogram[a]

Out[2]= [image]
```

Specify the window size that corresponds to the quefrency range:

```wl
In[3]:= Cepstrogram[a, 64]

Out[3]= [image]
```

Use a specific window size and offset:

```wl
In[4]:= Cepstrogram[a, 64, 32]

Out[4]= [image]
```

Use a larger window size to get a bigger quefrency range:

```wl
In[5]:= Cepstrogram[a, 256, 64]

Out[5]= [image]
```

Specify a smoothing window function:

```wl
In[6]:= Cepstrogram[a, 256, 64, HammingWindow]

Out[6]= [image]
```

No smoothing:

```wl
In[7]:= Cepstrogram[a, 256, 64, None]

Out[7]= [image]
```

---

Process the audio track of a video:

```wl
In[1]:= Cepstrogram[\!\(\*VideoBox["![Video Player: ExampleData/fish.mp4](video://content-2sfji)"]\)]

Out[1]= [image]
```

### Options (50)

#### AspectRatio (3)

By default, ``Cepstrogram`` uses a fixed height to width ratio for the plot:

```wl
In[1]:= Cepstrogram[IconizedObject[«sawtooth wave»]]

Out[1]= [image]
```

---

Make the height the same as the width with ``AspectRatio -> 1`` :

```wl
In[1]:= Cepstrogram[IconizedObject[«sawtooth wave»], AspectRatio -> 1]

Out[1]= [image]
```

---

``AspectRatio -> Full`` adjusts the height and width to tightly fit inside other constructs:

```wl
In[1]:= plot = Cepstrogram[IconizedObject[«sawtooth wave»], AspectRatio -> Full];

In[2]:= {Framed[Pane[plot, {200, 150}]], Framed[Pane[plot, {200, 100}]]}

Out[2]= [image]
```

#### Axes (4)

By default, ``Cepstrogram`` uses a frame instead of axes:

```wl
In[1]:= Cepstrogram[IconizedObject[«sawtooth wave»]]

Out[1]= [image]
```

---

Use axes instead of a frame:

```wl
In[1]:= Cepstrogram[IconizedObject[«sawtooth wave»], Frame -> False, Axes -> True]

Out[1]= [image]
```

---

Use ``AxesOrigin`` to specify where the axes intersect:

```wl
In[1]:= Cepstrogram[IconizedObject[«sawtooth wave»], Frame -> False, Axes -> True, AxesOrigin -> {0, 0}]

Out[1]= [image]
```

---

Turn each axis on individually:

```wl
In[1]:= {Cepstrogram[IconizedObject[«sawtooth wave»], Frame -> False, Axes -> {True, False}], Cepstrogram[IconizedObject[«sawtooth wave»], Frame -> False, Axes -> {False, True}]}

Out[1]= [image]
```

#### AxesLabel (3)

Axes are not labeled by default:

```wl
In[1]:= Cepstrogram[IconizedObject[«sawtooth wave»], Frame -> False, Axes -> True]

Out[1]= [image]
```

---

Place a label on the y axis:

```wl
In[1]:= Cepstrogram[IconizedObject[«sawtooth wave»], Frame -> False, Axes -> True, AxesLabel -> Label]

Out[1]= [image]
```

---

Specify axes labels:

```wl
In[1]:= Cepstrogram[IconizedObject[«sawtooth wave»], Frame -> False, Axes -> True, AxesLabel -> {Label1, Label2}]

Out[1]= [image]
```

#### AxesOrigin (2)

The position of the axes is determined automatically:

```wl
In[1]:= Cepstrogram[IconizedObject[«sawtooth wave»], Frame -> False, Axes -> True]

Out[1]= [image]
```

---

Specify an explicit origin for the axes:

```wl
In[1]:= Cepstrogram[IconizedObject[«sawtooth wave»], Frame -> False, Axes -> True, AxesOrigin -> {2000, 60}]

Out[1]= [image]
```

#### AxesStyle (4)

Change the style for the axes:

```wl
In[1]:= Cepstrogram[IconizedObject[«sawtooth wave»], Frame -> False, Axes -> True, AxesStyle -> Red]

Out[1]= [image]
```

---

Specify the style of each axis:

```wl
In[1]:= Cepstrogram[IconizedObject[«sawtooth wave»], Frame -> False, Axes -> True, AxesStyle -> {{Thick, Red}, {Thick, Blue}}]

Out[1]= [image]
```

---

Use different styles for the ticks and the axes:

```wl
In[1]:= Cepstrogram[IconizedObject[«sawtooth wave»], Frame -> False, Axes -> True, AxesStyle -> Green, TicksStyle -> Black]

Out[1]= [image]
```

---

Use different styles for the labels and the axes:

```wl
In[1]:= Cepstrogram[IconizedObject[«sawtooth wave»], Frame -> False, Axes -> True, AxesStyle -> Green, LabelStyle -> Gray]

Out[1]= [image]
```

#### Frame (4)

``Cepstrogram`` uses a frame by default:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\)]

Out[1]= [image]
```

---

Use ``Frame -> False`` to turn off the frame:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), Frame -> False]

Out[1]= [image]
```

---

Draw a frame on the left and right edges:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), Frame -> {{True, True}, {False, False}}]

Out[1]= [image]
```

---

Draw a frame on the left and bottom edges:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), Frame -> {{True, False}, {True, False}}]

Out[1]= [image]
```

#### FrameLabel (2)

Place a label along the bottom of a plot:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), FrameLabel -> {{"Bottom", None}, {None, None}}]

Out[1]= [image]
```

---

Place labels on each of the edges in the frame:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), FrameLabel -> {{"Bottom", "Top"}, {"Left", "Right"}}]

Out[1]= [image]
```

#### FrameStyle (2)

Specify the style of the frame:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), FrameStyle -> Directive[Black, Thick]]

Out[1]= [image]
```

---

Specify style for each frame edge:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), FrameStyle -> {{Directive[Black, Thick], Directive[Red]}, {Directive[Gray, Thick], Directive[Blue]}}]

Out[1]= [image]
```

#### FrameTicks (6)

Frame ticks are placed automatically by default:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\)]

Out[1]= [image]
```

---

By default, the top and right edges have neither tick marks nor tick labels:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\)]

Out[1]= [image]
```

Use ``All`` to include tick labels on all edges:

```wl
In[2]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), FrameTicks -> All]

Out[2]= [image]
```

---

Place tick marks at the specified positions:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), FrameTicks -> {{{.001, .005, .008}, None}, {Automatic, Automatic}}]

Out[1]= [image]
```

---

Draw frame tick marks at the specified positions with specific labels:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), FrameTicks -> {{{{.001, a}, {.005, b}, {.008, c}}, Automatic}, {{{.1, a}, {.5, b}, {.8, c}}, Automatic}}]

Out[1]= [image]
```

---

Specify the lengths for tick marks as a fraction of the plot size:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), FrameTicks -> {{{{.001, a, .05}, {.005, b, .1}, {.008, c, .1}}, Automatic}, {{{.1, a, .1}, {.5, b, .2}, {.8, c, .2}}, Automatic}}]

Out[1]= [image]
```

Use different sizes in the positive and negative directions for tick marks:

```wl
In[2]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), FrameTicks -> {{{{.001, a, {.05, .1}}, {.005, b, {.1, .1}}, {.008, c, {.1, .1}}}, Automatic}, {Automatic, Automatic}}]

Out[2]= [image]
```

---

Specify a style for frame ticks:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), FrameTicks -> {{{{.001, a, {.05, .1}, Directive[Thick, Blue, Dashed]}, {.005, b, {.1, .1}, Directive[Thick, Red]}, {.008, c, {.1, .1}, Directive[Thick, Green]}}, Automatic}, {Automatic, Automatic}}]

Out[1]= [image]
```

#### FrameTicksStyle (3)

By default, the frame ticks and frame tick labels use the same styles as the frame:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), FrameStyle -> Directive[Red]]

Out[1]= [image]
```

---

Specify an overall style for the ticks, including the labels:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), FrameTicksStyle -> Directive[Blue, Thick]]

Out[1]= [image]
```

---

Use different styles for each frame edge:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), FrameTicksStyle -> {{Directive[Red, Thick], Directive[Blue, Thick]}, {Directive[Black, Thick], Directive[Darker@Green, Thick]}}, FrameTicks -> All]

Out[1]= [image]
```

#### ImageSize (7)

Use named sizes such as ``Tiny``, ``Small``, ``Medium`` and ``Large`` :

```wl
In[1]:= {Cepstrogram[IconizedObject[«sawtooth wave»], ImageSize -> Tiny], Cepstrogram[IconizedObject[«sawtooth wave»], ImageSize -> Small]}

Out[1]= [image]
```

---

Specify the width of the plot:

```wl
In[1]:= {Cepstrogram[IconizedObject[«sawtooth wave»], ImageSize -> 150], Cepstrogram[IconizedObject[«sawtooth wave»], AspectRatio -> 1.5, ImageSize -> 150]}

Out[1]= [image]
```

Specify the height of the plot:

```wl
In[2]:= {Cepstrogram[IconizedObject[«sawtooth wave»], ImageSize -> {Automatic, 120}], Cepstrogram[IconizedObject[«sawtooth wave»], AspectRatio -> 2, ImageSize -> {Automatic, 120}]}

Out[2]= [image]
```

---

Allow the width and height to be up to a certain size:

```wl
In[1]:= {Cepstrogram[IconizedObject[«sawtooth wave»], ImageSize -> UpTo[200]], Cepstrogram[IconizedObject[«sawtooth wave»], AspectRatio -> 2, ImageSize -> UpTo[200]]}

Out[1]= [image]
```

---

Specify the width and height for a graphic, padding with space if necessary:

```wl
In[1]:= Cepstrogram[IconizedObject[«sawtooth wave»], ImageSize -> {200, 200}, Background -> LightBlue]

Out[1]= [image]
```

Setting ``AspectRatio -> Full`` will fill the available space:

```wl
In[2]:= Cepstrogram[IconizedObject[«sawtooth wave»], AspectRatio -> Full, ImageSize -> {200, 200}, Background -> LightBlue]

Out[2]= [image]
```

---

Use maximum sizes for the width and height:

```wl
In[1]:= {Cepstrogram[IconizedObject[«sawtooth wave»], ImageSize -> {UpTo[200], UpTo[100]}], Cepstrogram[IconizedObject[«sawtooth wave»], AspectRatio -> 1, ImageSize -> {UpTo[200], UpTo[300]}]}

Out[1]= [image]
```

---

Use ``ImageSize -> Full`` to fill the available space in an object:

```wl
In[1]:= Framed[Pane[Cepstrogram[IconizedObject[«sawtooth wave»], ImageSize -> Full, Background -> LightBlue], {200, 100}]]

Out[1]= [image]
```

---

Specify the image size as a fraction of the available space:

```wl
In[1]:= Framed[Pane[Cepstrogram[IconizedObject[«sawtooth wave»], AspectRatio -> Full, ImageSize -> {Scaled[0.5], Full}, Background -> LightBlue], {400, 150}]]

Out[1]= [image]
```

#### Ticks (6)

Ticks are placed automatically on each axis:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), Frame -> False, Axes -> True]

Out[1]= [image]
```

---

Use ``Ticks -> None`` to draw axes without any tick marks:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), Frame -> False, Axes -> True, Ticks -> None]

Out[1]= [image]
```

---

Place tick marks at the specified positions:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), Frame -> False, Axes -> True, Ticks -> {{.5, 1, 1.6}, {.005, .007, .01}}]

Out[1]= [image]
```

---

Draw tick marks at the specified positions with specific labels:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), Frame -> False, Axes -> True, Ticks -> {{{.5, a}, {1, b}, {1.6, c}}, {{.005, d}, {.007, e}, {.01, f}}}]

Out[1]= [image]
```

---

Specify the lengths for ticks as a fraction of graphics size:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), Frame -> False, Axes -> True, Ticks -> {{{.5, a, .05}, {1, b, .1}, {1.6, c, .2}}, {{.005, d, .05}, {.007, e, .1}, {.01, f, .2}}}]

Out[1]= [image]
```

Use different sizes in the positive and negative directions for ticks:

```wl
In[2]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), Frame -> False, Axes -> True, Ticks -> {Automatic, {{.005, d, {.05, .05}}, {.007, e, {.1, .1}}, {.01, f, {.2, .2}}}}]

Out[2]= [image]
```

---

Specify a style for ticks:

```wl
In[1]:=
Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), Frame -> False, Axes -> True, 
Ticks -> {{{.5, a, .05, Directive[Red, Thick]}, {1, b, .1, 
     Directive[Red]}, {1.6, c, .2, 
     Directive[Red, Dashed, Thick]}}, {{.005, d, .05, 
     Directive[Blue, Thick]}, {.007, e, .1, Directive[Blue]}, {.01, 
     f, .2, Directive[Blue, Dashed, Thick]}}}]

Out[1]= [image]
```

#### TicksStyle (4)

By default, the ticks and tick labels use the same styles as the axis:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), Frame -> False, Axes -> True]

Out[1]= [image]
```

---

Specify an overall ticks style, including the tick labels:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), Frame -> False, Axes -> True, TicksStyle -> Red]

Out[1]= [image]
```

---

Specify ticks style for each of the axes:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), Frame -> False, Axes -> True, TicksStyle -> {Directive[Red, Thick], Directive[Blue, Thick]}]

Out[1]= [image]
```

---

Use a different style for the tick labels and tick marks:

```wl
In[1]:= Cepstrogram[ \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\), Frame -> False, Axes -> True, TicksStyle -> Directive[Red, Thick], LabelStyle -> Blue]

Out[1]= [image]
```

### Applications (2)

Detect the effect of a "flanger" (time-varying comb filter) in a recording:

```wl
In[1]:= a = \!\(\*AudioBox["![Embedded Audio Player](audio://content-e3gs8)"]\);
```

The spectrogram is not very useful in showing the effect:

```wl
In[2]:= Spectrogram[a]

Out[2]= [image]
```

The cepstrogram allows a decoupling of the components from the signal and the flanger:

```wl
In[3]:= Cepstrogram[a]

Out[3]= [image]
```

---

Cepstrogram of an image:

```wl
In[1]:= i = [image];

In[2]:= Cepstrogram[Flatten[ImageData[i]], 512, 64, HannWindow]

Out[2]= [image]
```

### Properties & Relations (2)

On multichannel ``Sound`` or ``Audio``, cepstrogram is computed on the sum of the channels:

```wl
In[1]:= a = \!\(\*AudioBox["![Embedded Audio Player](audio://content-vzea4)"]\);

In[2]:= AudioChannels[a]

Out[2]= 2

In[3]:= Cepstrogram[a] === Cepstrogram@Total@AudioChannelSeparate[a]

Out[3]= False
```

---

Create a cepstrogram from the ``CepstrogramArray`` :

```wl
In[1]:=
chirp = Table[SawtoothWave[( i/100) + ((i/1000))^2], {i, 10000}];
ca = CepstrogramArray[chirp];

In[2]:= ListDensityPlot[Transpose[Abs[ca]][[ ;; (Last@Dimensions[ca] / 2)]], Frame -> None, AspectRatio -> 1 / 3]

Out[2]= [image]
```

Comparison with the ``Cepstrogram`` output:

```wl
In[3]:= Cepstrogram[chirp, Frame -> False]

Out[3]= [image]
```

### Neat Examples (1)

Look at the evolution of the reciprocal of the fundamental frequency:

```wl
In[1]:= a = ExampleData[{"Audio", "Bee"}, "Audio"]

Out[1]= \!\(\*AudioBox["![Embedded Audio Player](audio://content-vqdhu)"]\)

In[2]:= Cepstrogram[a, 2048, 64, PlotRange -> {All, {0, .008}, All}, AspectRatio -> 1 / 3, ColorFunction -> (Blend[{{0, Black}, {.2, White}}, #]&)]

Out[2]= [image]
```

## See Also

* [`CepstrogramArray`](https://reference.wolfram.com/language/ref/CepstrogramArray.en.md)
* [`CepstrumArray`](https://reference.wolfram.com/language/ref/CepstrumArray.en.md)
* [`Spectrogram`](https://reference.wolfram.com/language/ref/Spectrogram.en.md)
* [`SpectrogramArray`](https://reference.wolfram.com/language/ref/SpectrogramArray.en.md)
* [`PeriodogramArray`](https://reference.wolfram.com/language/ref/PeriodogramArray.en.md)
* [`Periodogram`](https://reference.wolfram.com/language/ref/Periodogram.en.md)

## Related Guides

* [Fourier Analysis](https://reference.wolfram.com/language/guide/FourierAnalysis.en.md)
* [Audio Analysis](https://reference.wolfram.com/language/guide/AudioAnalysis.en.md)
* [Speech Computation](https://reference.wolfram.com/language/guide/SpeechComputation.en.md)
* [Summation Transforms](https://reference.wolfram.com/language/guide/SummationTransforms.en.md)
* [Audio Representation](https://reference.wolfram.com/language/guide/AudioRepresentation.en.md)
* [Video Computation: Update History](https://reference.wolfram.com/language/guide/VideoComputation-UpdateHistory.en.md)
* [Video Analysis](https://reference.wolfram.com/language/guide/VideoAnalysis.en.md)
* [Signal Visualization & Analysis](https://reference.wolfram.com/language/guide/SignalAnalysis.en.md)
* [Audio Processing](https://reference.wolfram.com/language/guide/AudioProcessing.en.md)

## History

* [Introduced in 2017 (11.1)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn111.en.md) \| [Updated in 2017 (11.2)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn112.en.md) ▪ [2024 (14.1)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn141.en.md)