In [1]:
import matascii
In [2]:
from matplotlib import pylab
In [3]:
pylab.switch_backend("module://matascii")
In [4]:
from random import random
x = range(0, 100)
y = [random() for i in x]
pylab.scatter(x, y, edgecolor=[0., 0., 1., 1.])
Out[4]:
<matplotlib.collections.PathCollection at 0x7fafd803cb50>

Scatter

In [5]:
pylab.show()
#pylab.savefig("hoge.txt")
***************************************************************************************************************************************
                                                                                                                                       
                                                                                                                                       
                                                                                                                                       
               1.2********************************************************************************************************             
                *              *              *              *              *              *              *              *             
                *              *              *              *              *              *              *              *             
                *              *              *              *              *              *              *              *             
                *              *              *              *              *              *              *              *             
               1.0**                                                                                                  ****             
                *                **               **        **        **  **       **          **                        *             
                *                ****    *       ***        **        **  ****     **          **                        *             
                *                  **    ** **   *****         **           *                     **                     *             
                *                           **     ***         **        **   **        **        ***                    *             
               0.8**                                      **        ***  ****        ** **      **  **                ****             
                *               **         *   *        *  ***       ***   **        **    **   **      **               *             
                *              **    **    **  *           ****                 **         **       *** **               *             
                *              **                                               **                   **                  *             
                *                                        **                       **                                     *             
               0.6**                                 * ****                       ** **                **             ****             
                *                             **     * **  *                **       **                **                *             
                *                             **  *        *                **                                           *             
                *                     ****        *              *                                    **                 *             
                *                   ******                      ****             **                   **                 *             
               0.4                  ** **                    **   **             ** **      **                           *             
                ****                                 ***      ****                ****  **  ****                      ****             
                *                         **         ***      **** **             **    *     **       **                *             
                *                         **                       **                  *     **    **                    *             
                *               **             **                  **   **            ***  ****    **                    *             
               0.2               *             **                       **     **      **  **    **                      *             
                ****              **                    **                     **        **      **                   ****             
                *                 **     **             **       **    **                **   *  **      **              *             
                *                        **                      **    ****  **               **         *               *             
                *                           *   **                       **  **                                          *             
               0.0                 ** *     *** **                             **         **                             *             
                ****               ** **     **                                **         **                          ****             
                *                                                                                                        *             
                *              *              *              *              *              *              *              *             
                *              *              *              *              *              *              *              *             
                *              *              *              *              *              *              *              *             
               −**********************************************************************************************************             
                −20            0              20             40             60             80             100            120           
                                                                                                                                       
                                                                                                                                       
                                                                                                                                       

Line plot with Legend

In [4]:
pylab.plot([1,2,3], [10, 9, 1], label='hoge')
pylab.plot([1,2,3], [8, -2, 1], label='nya')
pylab.xlabel("Hello, world!")
pylab.ylabel("Nyaaa")
pylab.legend(prop={'size': 2}, loc='center left')
pylab.show()
***************************************************************************************************************************************
                                                                                                                                       
                                                                                                                                       
                                                                                                                                       
               10*********************************************************************************************************             
                *                          *                       ***  ******                 *                         *             
                *                          *                     **  *        *****            *                         *             
                *                          *                   **    *             ******      *                         *             
                *                          *                 **      *                   *******                         *             
                *                                           **                                 ******                    *             
               8****                                      **                                         ******           ****             
                *                                       **                                                 ******        *             
                *                                      *                                                         ******  *             
                *                                    **                                                                ***             
                *                                  **                                                                 ****             
                *                                **                                                                 **   *             
               6****                            *                                                                 **  ****             
                *                             **                                                               ***       *             
                ***********                 **                                                                *          *             
                *         *               **                                                               ***           *             
                *         *              **                                                              **              *             
                *  ***  hoge           **                                                              **                *             
               4****      *          **                                                             ***               ****             
             Nyaaa        *        **                                                              **                    *             
                *  ***  nya       **                                                            ***                      *             
                *         *     **                                                            **                         *             
                * *********   **                                                            **                           *             
                *            *                                                            **                             *             
               2****       **                                                           **                            ****             
                *        **                                                          ***                                 *             
                *      **                                                          **                                    *             
                *     *                                                          **                                      *             
                *   **                                                         ***                                       *             
                * **                                                         **                                          *             
               0****                                                      ***                                         ****             
                *                                                       **                                               *             
                *                                                      *                                                 *             
                *                          *                ***********                        *                         *             
                *                          *****************         *                         *                         *             
                *        *******************                         *                         *                         *             
               −**********************************************************************************************************             
                1.0                       1.5                       2.0                       2.5                        3.0           
                                                                                                                                       
                                                                    Hello, world!                                                      
                                                                                                                                       

Subplots

In [9]:
import numpy as np
import matplotlib.pyplot as plt


x1 = np.linspace(0.0, 5.0)
x2 = np.linspace(0.0, 2.0)

y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
y2 = np.cos(2 * np.pi * x2)

plt.subplot(2, 1, 1)
plt.plot(x1, y1, 'yo-')
plt.title('A tale of 2 subplots')
plt.ylabel('Damped oscillation')

plt.subplot(2, 1, 2)
plt.plot(x2, y2, 'r.-')
plt.xlabel('time (s)')
plt.ylabel('Undamped')

plt.show()
***************************************************************************************************************************************
                                                                                                                                       
                                                                                                                                       
                                       *********                    A tale of 2 subplots  **********                                   
                **********************************************************************************************************             
               1*0                 ********* ******                  *                  ****************                 *             
                *                 **** **************                *                **************** *                 *             
                *               ********   *   **** *                *               ** ***    *   *******               *             
                ****            ******     *     * ****              *             ******      *     *****            ****             
                *             ******             ******                            * ****             ** ***             *             
               0*5            *****                ******                        **** *                ******            *             
                *           ******                  *****                        * ****                  * ***           *             
                ****        *****                    ** ***                    **** *                    ******       ****             
             Dam*ed oscill***o**                      *****                    ******                      * ***         *             
               0*0        * ***                        ** ***                **** *                        ******        *             
                *       ******                          ******               ******                          ******      *             
                ****   ******                             * ***            ******                            **** *   ****             
                *    **** *                *              *******    *   *******               *               * ****    *             
                *  ********                *                * *****  * *** ****                *               ********  *             
               **********                  *                ************ *****                 *                 **********            
               *************************************************************************************************************           
               *0*************       1                    2     ****** ***     3                    4               *****5*            
               *****  **** ****                                    *****                                              *****            
               1.0    * *  ** ***                                                                                                      
                **********************************************************************************************************             
                ******* *** ******   *    ***********     *        ****        *                    *                 ****             
                *   * ** ****** ***  *    ******** ****   *   **************** ********************************************            
               0.5  *  ********** *  *  ************ *********** ****** ****************** *********************************           
                *  ****  ***********   *** ***************************** **************** ********************************* *          
                **********  ** ** ****** ******************** ************************************************************* *          
                * *  ****    *** ****************** ************************ *************************** ****************** *          
               0.0*  *  *     ************ ****  **** *************************************************** ************** ****          
             Undamped  **      * * **********      ******* ********    *****************************************************           
                ****** *       *** *********         **********               **                                         *             
                ********        ***** *****                                                                           ****             
               0.5* **           *******                                                                                *             
              *** ** **                                                                                                  *             
             ** **** *               *                    *                    *                    *                    *             
             *  ******               *                    *                    *                    *                 ****             
             ** * **                 *                    *                    *                    *                    *             
              *1.0*******************************************************************************************************             
              **0.0                       0.5                       1.0                       1.5                        2.0           
                                                                                                                                       
                                                                    time (s)                                                           
                                                                                                                                       

Polar

In [4]:
"""
Contour plots of unstructured triangular grids.
"""
import matplotlib.pyplot as plt
import matplotlib.tri as tri
import numpy as np
import math

# Creating a Triangulation without specifying the triangles results in the
# Delaunay triangulation of the points.

# First create the x and y coordinates of the points.
n_angles = 48
n_radii = 8
min_radius = 0.25
radii = np.linspace(min_radius, 0.95, n_radii)

angles = np.linspace(0, 2*math.pi, n_angles, endpoint=False)
angles = np.repeat(angles[..., np.newaxis], n_radii, axis=1)
angles[:, 1::2] += math.pi/n_angles

x = (radii*np.cos(angles)).flatten()
y = (radii*np.sin(angles)).flatten()
z = (np.cos(radii)*np.cos(angles*3.0)).flatten()

# Create the Triangulation; no triangles so Delaunay triangulation created.
triang = tri.Triangulation(x, y)

# Mask off unwanted triangles.
xmid = x[triang.triangles].mean(axis=1)
ymid = y[triang.triangles].mean(axis=1)
mask = np.where(xmid*xmid + ymid*ymid < min_radius*min_radius, 1, 0)
triang.set_mask(mask)

# pcolor plot.
plt.figure()
plt.gca().set_aspect('equal')
plt.tricontourf(triang, z)
plt.colorbar()
plt.tricontour(triang, z, colors='k')
plt.title('Contour plot of Delaunay triangulation')

# You can specify your own triangulation rather than perform a Delaunay
# triangulation of the points, where each triangle is given by the indices of
# the three points that make up the triangle, ordered in either a clockwise or
# anticlockwise manner.

xy = np.asarray([
    [-0.101, 0.872], [-0.080, 0.883], [-0.069, 0.888], [-0.054, 0.890],
    [-0.045, 0.897], [-0.057, 0.895], [-0.073, 0.900], [-0.087, 0.898],
    [-0.090, 0.904], [-0.069, 0.907], [-0.069, 0.921], [-0.080, 0.919],
    [-0.073, 0.928], [-0.052, 0.930], [-0.048, 0.942], [-0.062, 0.949],
    [-0.054, 0.958], [-0.069, 0.954], [-0.087, 0.952], [-0.087, 0.959],
    [-0.080, 0.966], [-0.085, 0.973], [-0.087, 0.965], [-0.097, 0.965],
    [-0.097, 0.975], [-0.092, 0.984], [-0.101, 0.980], [-0.108, 0.980],
    [-0.104, 0.987], [-0.102, 0.993], [-0.115, 1.001], [-0.099, 0.996],
    [-0.101, 1.007], [-0.090, 1.010], [-0.087, 1.021], [-0.069, 1.021],
    [-0.052, 1.022], [-0.052, 1.017], [-0.069, 1.010], [-0.064, 1.005],
    [-0.048, 1.005], [-0.031, 1.005], [-0.031, 0.996], [-0.040, 0.987],
    [-0.045, 0.980], [-0.052, 0.975], [-0.040, 0.973], [-0.026, 0.968],
    [-0.020, 0.954], [-0.006, 0.947], [ 0.003, 0.935], [ 0.006, 0.926],
    [ 0.005, 0.921], [ 0.022, 0.923], [ 0.033, 0.912], [ 0.029, 0.905],
    [ 0.017, 0.900], [ 0.012, 0.895], [ 0.027, 0.893], [ 0.019, 0.886],
    [ 0.001, 0.883], [-0.012, 0.884], [-0.029, 0.883], [-0.038, 0.879],
    [-0.057, 0.881], [-0.062, 0.876], [-0.078, 0.876], [-0.087, 0.872],
    [-0.030, 0.907], [-0.007, 0.905], [-0.057, 0.916], [-0.025, 0.933],
    [-0.077, 0.990], [-0.059, 0.993]])
x = np.degrees(xy[:, 0])
y = np.degrees(xy[:, 1])
x0 = -5
y0 = 52
z = np.exp(-0.01*((x - x0)*(x - x0) + (y - y0)*(y - y0)))

triangles = np.asarray([
    [67, 66,  1], [65,  2, 66], [ 1, 66,  2], [64,  2, 65], [63,  3, 64],
    [60, 59, 57], [ 2, 64,  3], [ 3, 63,  4], [ 0, 67,  1], [62,  4, 63],
    [57, 59, 56], [59, 58, 56], [61, 60, 69], [57, 69, 60], [ 4, 62, 68],
    [ 6,  5,  9], [61, 68, 62], [69, 68, 61], [ 9,  5, 70], [ 6,  8,  7],
    [ 4, 70,  5], [ 8,  6,  9], [56, 69, 57], [69, 56, 52], [70, 10,  9],
    [54, 53, 55], [56, 55, 53], [68, 70,  4], [52, 56, 53], [11, 10, 12],
    [69, 71, 68], [68, 13, 70], [10, 70, 13], [51, 50, 52], [13, 68, 71],
    [52, 71, 69], [12, 10, 13], [71, 52, 50], [71, 14, 13], [50, 49, 71],
    [49, 48, 71], [14, 16, 15], [14, 71, 48], [17, 19, 18], [17, 20, 19],
    [48, 16, 14], [48, 47, 16], [47, 46, 16], [16, 46, 45], [23, 22, 24],
    [21, 24, 22], [17, 16, 45], [20, 17, 45], [21, 25, 24], [27, 26, 28],
    [20, 72, 21], [25, 21, 72], [45, 72, 20], [25, 28, 26], [44, 73, 45],
    [72, 45, 73], [28, 25, 29], [29, 25, 31], [43, 73, 44], [73, 43, 40],
    [72, 73, 39], [72, 31, 25], [42, 40, 43], [31, 30, 29], [39, 73, 40],
    [42, 41, 40], [72, 33, 31], [32, 31, 33], [39, 38, 72], [33, 72, 38],
    [33, 38, 34], [37, 35, 38], [34, 38, 35], [35, 37, 36]])

# Rather than create a Triangulation object, can simply pass x, y and triangles
# arrays to tripcolor directly.  It would be better to use a Triangulation
# object if the same triangulation was to be used more than once to save
# duplicated calculations.
plt.figure()
plt.gca().set_aspect('equal')
plt.tricontourf(x, y, triangles, z)
plt.colorbar()
plt.title('Contour plot of user-specified triangulation')
plt.xlabel('Longitude (degrees)')
plt.ylabel('Latitude (degrees)')

plt.show()
/home/naoki/anaconda/lib/python2.7/site-packages/matplotlib/tri/triangulation.py:110: FutureWarning: comparison to `None` will result in an elementwise object comparison in the future.
  self._neighbors)
matascii/__init__.py:108: RuntimeWarning: invalid value encountered in true_divide
  dr = v/l
***************************************************************************************************************************************
                                                                                                                                       
                                                                                                                                       
                                                                                  Contour plot of Delaunay triangulation               
                                                              1.0************************************   ****1.00                       
                                                                *        *     ***** **    *        *    * *                           
                                                                *        *  *** * * *  *** *        *    * *                           
                                                                *        **  ** * * * **  **        *    * *                           
                                                                *       **    * * * * *    *        *    * *0.75                       
                                                                *      *      ***** ***      *      *   ****                           
                                                                *     **       * *** *       **     *    * *                           
                                                                *    *  *  ***** *** * ***  ** *    *    * *                           
                                                                *    *  *  *  * ***** *  *  *  **   *    * *                           
                                                              0.5**** ** * *   ********  * ****  ****   ****0.50                       
                                                                *   ** *  * *  *******  **** * ***  *    * *                           
                                                                *  *  * *****   ******  *** * **    *    * *                           
                                                                * **** *******  *****  * ***** **** *    * *                           
                                                                * *   ** ****** ***** ****** **   ***    * *0.25                       
                                                                * ***** ******* ************* **** **   ****                           
                                                                ***    *********     *********    ***    * *                           
                                                                *       *******       *******      **    * *                           
                                                                **   **** *****       ***** ****   **    * *                           
                                                              0.0*** *        *        *       * ****   ****0.00                       
                                                                **   **** *****       ***** ****   **    * *                           
                                                                **      *******       *******       *    * *                           
                                                                ***    *********     *********    ***    * *                           
                                                                ** **** ************* ******* **** **    * *−0.25                      
                                                                * *   ** ****** ***** ****** **   * *   ****                           
                                                                * **** *******  *****  * ***** **** *    * *                           
                                                                *     * *****   ******  *** * **  * *    * *                           
                                                                *  *** *  * *  *******  **** * **   *    * *                           
                                                              −0****  ** * *   ********  * **** *****   ****−0.50                      
                                                                *   **  *  *  * ***** *  *  *  *    *    * *                           
                                                                *    *  *  ***** *** * ***  ** *    *    * *                           
                                                                *     **       * *** *       **     *    * *                           
                                                                *      *      ***** ***      **     *    * *−0.75                      
                                                                *        *    * * * * *     *       *   ****                           
                                                                *        *** ** * * * **  **        *    * *                           
                                                                *        * ***  * * *  **  *        *    * *                           
                                                                *        *    ***** ***    *        *    * *                           
                                                              −1*************************************   ****−1.00                      
                                                                −1.0     −0.5     0.0      0.5      1.0                                
                                                                                                                                       
                                                                                                                                       
                                                                                                                                       
***************************************************************************************************************************************
                                                                                                                                       
                                                                                                                                       
                                                                                   Contour plot of user-specified triangulation        
                                                                    *********************************   ****1.00                       
                                                                    *  *   *  *   *   *  *   *  *   *    * *                           
                                                                    *  *   *  *   *   *  *   *  *   *    * *                           
                                                                  58*  *****  *   *   *  *   *  *   *    * *                           
                                                                    **** ****** * *   *  *   *  *****    * *0.95                       
                                                                    *      *    **   **             *   ****                           
                                                                    *       ***  *   * *** ** * *   *    * *                           
                                                                    *          ****   *  * *  * *   *    * *                           
                                                                    *            ***  *  * ** * * * *    * *                           
                                                                    *      ******  ** *  *  * * **  *   ****0.90                       
                                                                  56*     ****     *  *  *  * * *****    * *                           
                                                                    ****      **   *  ** *  * * *****    * *                           
                                                                    *          *   *  *  *  * * * * *    * *                           
                                                                    *       ** *  *   *  *  * * * * *    * *0.85                       
                                                                    *        ***  *   *  * *  ***** *   ****                           
                                                                    *         *****  *   * *  *     *    * *                           
                                                                    *             *  *  *  * **     *    * *                           
                                                                    *              ***  * ** *      *    * *                           
                                                                  54****          ***  *  *  *   ****   ****0.80                       
                                                                Latitude (degrees) *  ** ****       *    * *                           
                                                                    *      ****  **   *  **         *    * *                           
                                                                    *      *   **** **  **          *    * *                           
                                                                    *      *****    *  **           *    * *0.75                       
                                                                    *    ****     **  ***           *   ****                           
                                                                    *    * *   ***  ***             *    * *                           
                                                                  52**** *******  **             ****    * *                           
                                                                    *  ***       ****               *    * *                           
                                                                    *  ** *   ****  **              *   ****0.70                       
                                                                    *   ******     **               *    * *                           
                                                                    * ***       ***   *             *    * *                           
                                                                    * **********    ***             *    * *                           
                                                                    *   *       *******             *    * *0.65                       
                                                                  50**** *******                 ****   ****                           
                                                                    *  *   *  *   *   *  *   *  *   *    * *                           
                                                                    *  *   ********   *  *   *  *   *    * *                           
                                                                    *  *   *  *   *   *  *   *  *   *    * *                           
                                                                    *********************************   ****0.60                       
                                                                   −7  −6 −5  −4  −3 −2  −1 0   1   2                                  
                                                                                                                                       
                                                                                   Longitude (degrees)                                 
                                                                                                                                       

Grids

In [4]:
import matplotlib.pyplot as plt
import numpy as np

dt = 0.01
t = np.arange(0, 10, dt)
nse = np.random.randn(len(t))
r = np.exp(-t/0.05)

cnse = np.convolve(nse, r)*dt
cnse = cnse[:len(t)]
s = 0.1*np.sin(2*np.pi*t) + cnse

plt.subplot(211)
plt.plot(t, s)
plt.subplot(212)
plt.psd(s, 512, 1/dt)

plt.show()

"""
% compare with MATLAB
dt = 0.01;
t = [0:dt:10];
nse = randn(size(t));
r = exp(-t/0.05);
cnse = conv(nse, r)*dt;
cnse = cnse(1:length(t));
s = 0.1*sin(2*pi*t) + cnse;

subplot(211)
plot(t,s)
subplot(212)
psd(s, 512, 1/dt)

"""
***************************************************************************************************************************************
                                                                                                                                       
                                                                                                                                       
                                                                                                                                       
               0**********************************************************************************************************             
                *                    *                    *                    *                    *                    *             
               0**********************************************************************************************************             
                *                    *      *           * *                   **   *   *   *    *   *  *              *  *             
                **********************************************************************************************************             
               0*05                *** **  **      *  * **** ** **   *  **** ***  ******* ****** ** **** **   *** ***** **             
                **********************************************************************************************************             
                *    **      ** ** **** ***** * *** **** ** ****   ***** ****  ***       *    *     *   ** *     *       *             
               0**********************************************************************************************************             
                ** **  * *** * *     *                    *                    *                    *                    *             
               −**********************************************************************************************************             
                ****                 *                    *                    *                    *                    *             
                **********************************************************************************************************             
               −*.**                 *                    *                    *                    *                    *             
                **********************************************************************************************************             
                * *                  *                    *                    *                    *                    *             
               −**********************************************************************************************************             
                0                    2                    4                    6                    8                    10            
                                                                                                                                       
               −10                                                                                                                     
                **********************************************************************************************************             
               −20      *            *      ***           *                    *                 ****      **        **  *             
                ****   **         ** *      ***         ***       **        ** *                *****      ***       *****             
               −30     **         ****      * **        ***      ***       *****      ***       * ***      ***       *****             
                *      * *       *  *       *  *      ****       ***       *****      ****      *  *      ** **      *  **             
               −40**   * **      *  *      **  *      ** *      *   *      *  **      *  *      *  *      ** **      *****             
                *      *  *      *  **    **   *      *  **     *   *      *   *     **  *     *    *     *   *     **   *             
               −50    *    *     *   *    *    **    **  **     *   **    *    *    **   **    *    *     *   **    *    *             
             Power Spectral Density (dB/Hz)     *    *    *    **    *    *    *    **    *   **    *    *     *    * ****             
               −60    *    **   *    **   *      *   *    *    *     *   **     *   *     *   *     **   *     *    *    *             
                ***  *      *   *     *   *      *   *    **  **     **  **     *   *     **  *      *   *     **  *     *             
               −70****      *  **     *   *      * ***     * ***      *  *      *  **     **  *      ** **     *** *  ****             
                * ***       *  *      ** **      * **      ****       * **      ** **      ** *      ****       ***      *             
               −80***       ****     * ***       ***      * ***       * **     * ***        **      * ***        **   ****             
                *            **      * **        **       *           ***      * **         **      *  *                 *             
                *            **      *  *                 *           **       *                    *                    *             
               −90********************************************************************************************************             
                0                    10                   20                   30                   40                   50            
                                                                                                                                       
                                                                    Frequency                                                          
                                                                                                                                       
Out[4]:
'\n% compare with MATLAB\ndt = 0.01;\nt = [0:dt:10];\nnse = randn(size(t));\nr = exp(-t/0.05);\ncnse = conv(nse, r)*dt;\ncnse = cnse(1:length(t));\ns = 0.1*sin(2*pi*t) + cnse;\n\nsubplot(211)\nplot(t,s)\nsubplot(212)\npsd(s, 512, 1/dt)\n\n'
In [5]:
import matplotlib.pyplot as plt
import numpy as np

dt = 0.01
Fs = 1/dt
t = np.arange(0, 10, dt)
nse = np.random.randn(len(t))
r = np.exp(-t/0.05)

cnse = np.convolve(nse, r)*dt
cnse = cnse[:len(t)]
s = 0.1*np.sin(2*np.pi*t) + cnse

plt.subplot(3, 2, 1)
plt.plot(t, s)

plt.subplot(3, 2, 3)
plt.magnitude_spectrum(s, Fs=Fs)

plt.subplot(3, 2, 4)
plt.magnitude_spectrum(s, Fs=Fs, scale='dB')

plt.subplot(3, 2, 5)
plt.angle_spectrum(s, Fs=Fs)

plt.subplot(3, 2, 6)
plt.phase_spectrum(s, Fs=Fs)

plt.show()
***************************************************************************************************************************************
                                                                                                                                       
                                                                                                                                       
                                                                                                                                       
               0*************************************************        *************************************************             
               0****   ******  * ***    *  *** *      ** **  ****        ********  *        *         *        *      ****             
                ********************************** ** ** *** ****        ********* *        *         *        *      ****             
               0*************************************************        **      ****       *         *        *         *             
                *************************************************        ****     *******                             ****             
               0*************************************************        ****         ****             *              ****             
                *************************************************        ****            *******  ********* ***       ****             
               −*************************************************        ****             ** ********     *******     ****             
               −*********** ** **************** *********** *****        ****      *        *   **    *        ****   ****             
                ********* *  * ***** ********** *  * ****** *****        ****      *        *    *    *        *  ********             
               −*.15      *        *         *        *         *        *         *        *         *        *      ****             
                *************************************************        *************************************************             
               30                                                       30                                                             
                *************************************************        *************************************************             
               25***      *        *         *        *      ****       20***      *    *   *     *  **  *     *      ****             
                **        *        *         *        *         *       10***      *    * * *  *  *  **  **    ***  * ****             
               20***      *        *         *        *      ****       0*       * * *********** ** **********************             
                **                                              *        ****   ******************************************             
               15***                                         ****       −10******************** *****      * *        ****             
             Magnitude (energy)                                 *     Magnitude (dB)*  *                              ****             
                ****      *        *         *        *      ****       −30* *     *        *         *        *         *             
               5**        *        *         *        *         *       −****      *        *         *        *      ****             
                ****      *        *         *        *      ****        ****      *        *         *        *      ****             
               0*************************************************       −*************************************************             
                0        10        20       30        40       50        0        10        20       30        40       50             
               4*************************************************       140                                                            
               3*   *    **   *    *   *Frequency    **   *   ***       120                      Frequency                             
                *****   ***  **   **  ***  ***  *    **   *  ****       100                                                            
               2*  ***  ***  **   **  * *  ***  **   **  ***  ***       80                                                             
               1**** *  ***  **  ***  * *  **   **  ***  * * ****                                                                      
               0*  * * ** * **** * *  * * **** ***  * *  * *  * *       60                                                             
             Angle (radians)*  * * ** * * ** * * ** * ** * * ****     Phase (radians)                                                  
               −1*** * ** * *  ***  *** ***  * *  * * ** * * ****       20                                                             
               −2*** ***  * *  **  **** ***  ***  * * ***  ***  *       0                                                              
               −3***  **  ***  **  ***   **  ***  *** ***   *****       −20                                                            
                ***   **  **    *  **    **  **   **  *     *   *                                                                      
               −4************************************************       −40                                                            
                0        10        20       30        40       50        0        10        20       30        40       50             
                                                                                                                                       
                                        Frequency                                                Frequency