示例#1
0
def _agc_rms(data, window_size, desired_rms):
    """
    Computes the RMS-amplitude AGC for data.

    :param data: ``list`` of data values to compute rms for.
    :param window_size: Length of window in number of samples.
    :param desired_rms: Root-mean-squared value of ``data * _agc_rms(data)``.
    :return: ``numpy.nparray`` with ``len(data)`` AGC values
    """
    return float(desired_rms) / windowed_rms(data, window_size)
示例#2
0
 def test_windowed_rms(self):
     """
     Should return the windowed RMS of a data array.
     """
     rms0 = [ 1.0000000, 1.58113883, 2.54950976,  3.53553391,  4.52769257]
     # should work on a list
     a = [1, 2, 3, 4, 5]
     rms1 = amplitudes.windowed_rms(a, 2)
     for i in range(0, len(a)): 
         self.assertAlmostEqual(rms0[i], rms1[i])
     # should work on a numpy.ndarray
     a = np.asarray(a) 
     rms1 = amplitudes.windowed_rms(a, 2)
     for i in range(0, len(a)): 
         self.assertAlmostEqual(rms0[i], rms1[i])
     # rms of homogenous data should be the same
     a0 = 20.32411
     a = a0 * np.ones((100))
     for w in [1, 10, 100]:
         rms = amplitudes.windowed_rms(a, w)
         for _rms in rms:
             self.assertEqual(a0, _rms)