'**SUMMARY**
Perform a Gasusian simple smoothing operation on the signal.
**PARAMETERS**
* *degree* - The degree of the fitting function. Higher degree means more smoothing.
**RETURNS**
A smoothed LineScan object.
**EXAMPLE**
>>>> import matplotlib.pyplot as plt
>>>> img = Image(\'lenna\')
>>>> sl = img.getLineScan(y=128)
>>>> plt.plot(sl)
>>>> plt.plot(sl.smooth(7))
>>>> plt.show()
**NOTES**
Cribbed from http://www.swharden.com/blog/2008-11-17-linear-data-smoothing-in-python/'

def smooth(self, degree=3):

    window = ((degree * 2) - 1)
    weight = np.array(([1.0] * window))
    weightGauss = []
    for i in range(window):
        i = ((i - degree) + 1)
        frac = (i / float(window))
        gauss = (1 / np.exp(((4 * frac) ** 2)))
        weightGauss.append(gauss)
    weight = (np.array(weightGauss) * weight)
    smoothed = ([0.0] * (len(self) - window))
    for i in range(len(smoothed)):
        smoothed[i] = (sum((np.array(self[i:(i + window)]) * weight)) / sum(weight))
    front = self[0:(degree - 1)]
    front += smoothed
    front += self[((-1) * degree):]
    retVal = LineScan(front, image=self.image, pointLoc=self.pointLoc, pt1=self.pt1, pt2=self.pt2)
    retVal._update(self)
    return retVal
