Plotting window functions
This is a very simple way to get a preview of window function shape. The example uses Aquila::TextPlot as a drawing tool. Windows are drawn as simple asterisk patterns.
#include "aquila/transform/Window.h" #include "aquila/tools/TextPlot.h" int main(int argc, char *argv[]) { Aquila::WindowType types[] = {Aquila::WIN_RECT, Aquila::WIN_HAMMING, Aquila::WIN_HANN, Aquila::WIN_BARLETT, Aquila::WIN_BLACKMAN, Aquila::WIN_FLATTOP}; const char* names[] = {"Rectangular", "Hamming", "Hann", "Barlett", "Blackman", "Flat-top"}; const std::size_t length = 65; int num = sizeof(types) / sizeof(Aquila::WindowType); Aquila::TextPlot plot; for (int i = 0; i < num; ++i) { Aquila::Window window(types[i], length); plot.setTitle(names[i]); plot.plot(window.getData()); } return 0; }
The windows are plotted below for comparison. Note: the rectangular window is improperly scaled at the moment and looks like it's all zeros. It isn't, that is a constant 1.
Rectangular
*****************************************************************
Hamming
***********
** **
** **
* *
** **
* *
* *
* **
** *
* *
* *
** **
* *
** **
** **
****** ******
Hann
***********
** **
** **
* *
** **
* *
* *
* **
** *
* *
* *
** **
* *
** **
** **
****** ******
Barlett
***
** **
** **
** **
** **
** **
** **
** **
** **
** **
** **
** **
** **
** **
** **
*** ***
Blackman
*********
* *
** **
* *
* *
* *
* *
* *
** **
* *
* *
* *
** **
** **
*** ***
******** ********
Flat-top
*****
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
**** ** ** ****
************** **************
Comments
blog comments powered by Disqus