# Crate apodize [−] [src]

**rust iterators that yield
generalized cosine,
hanning,
hamming,
blackman,
nuttall
and
triangular
windows**

useful for smoothing the sharp discontinuities at the edges (beginning and end) of each slice of samples when doing a short time fourier transform. windowing also improves temporal resolution by making the signal near the time being analyzed have higher weight than the signal further away from the time being analyzed.

to use add `apodize = "*"`

to the `[dependencies]`

section of your `Cargo.toml`

and call `extern crate apodize;`

in your code.

all functions use `f64`

s.
previously they were generic over the floating type used.
this was removed because it introduced a lot of complexity.
if you need `f32`

s just `.map(|x| x as f32)`

over the iterator.

## example

you will most likely want to collect the yielded values in a vector and then multiply that window vector repeatedly with some data vectors to apodize them.

here is an example of that for a hanning window (hamming, blackman and nuttall are analogous).

use std::ops::Mul; #[macro_use] extern crate nalgebra; use nalgebra::{ApproxEq, DVec}; #[macro_use] extern crate apodize; use apodize::{hanning_iter}; fn main() { // create a hanning window iterator of size 7 // and collect the values it yields in an nalgebra::DVec. let window = hanning_iter(7).collect::<DVec<_>>(); assert_approx_eq_ulps!( window, dvec![ 0.0, 0.24999999999999994, 0.7499999999999999, 1.0, 0.7500000000000002, 0.25, 0.0], 10); // some data we want to apodize (multiply with the window) let data: DVec<f64> = dvec![1., 2., 3., 4., 5., 6., 7.]; // multiply data with window let windowed_data = window.mul(data); assert_approx_eq_ulps!( windowed_data, dvec![ 0.0, 0.4999999999999999, 2.2499999999999996, 4.0, 3.750000000000001, 1.5, 0.0], 10); }

## Macros

dvec |
build an |

## Structs

CosineWindowIter |
holds the window coefficients and iteration state of an iterator for a cosine window |

TriangularWindowIter |
holds the iteration state of an iterator for a triangular window |

## Functions

blackman_iter |
returns an iterator that yields the values for a blackman
window of |

cosine_at |
returns the value of the cosine
window
of |

cosine_iter |
returns an iterator that yields the values for a cosine
window of |

hamming_iter |
returns an iterator that yields the values for a hamming
window of |

hanning_iter |
returns an iterator that yields the values for a hanning
window of |

nuttall_iter |
returns an iterator that yields the values for a nuttall
window of |

triangular_at |
returns the value of the
triangular window
of |

triangular_iter |
returns an iterator that yields the values for a triangular
window
if |