diff --git a/bilby/gw/series.py b/bilby/gw/series.py
index aab94dee94d96db575af6ae6ee42c7b719250f7b..a22c948b5b040ec1a060631d14df4fa416a3db7b 100644
--- a/bilby/gw/series.py
+++ b/bilby/gw/series.py
@@ -20,6 +20,12 @@ class CoupledTimeAndFrequencySeries(object):
         self.start_time = start_time
         self._frequency_array_updated = False
         self._time_array_updated = False
+        self._frequency_array = None
+        self._time_array = None
+
+    def __repr__(self):
+        return self.__class__.__name__ + '(duration={}, sampling_frequency={}, start_time={})'\
+            .format(self.duration, self.sampling_frequency, self.start_time)
 
     @property
     def frequency_array(self):
@@ -31,9 +37,11 @@ class CoupledTimeAndFrequencySeries(object):
         """
         if self._frequency_array_updated is False:
             if self.sampling_frequency and self.duration:
-                self.frequency_array = utils.create_frequency_series(
+                self._frequency_array = utils.create_frequency_series(
                     sampling_frequency=self.sampling_frequency,
                     duration=self.duration)
+                self._sampling_frequency, self._duration = \
+                    utils.get_sampling_frequency_and_duration_from_frequency_array(self._frequency_array)
             else:
                 raise ValueError('Can not calculate a frequency series without a '
                                  'legitimate sampling_frequency ({}) or duration ({})'
@@ -63,6 +71,8 @@ class CoupledTimeAndFrequencySeries(object):
                     sampling_frequency=self.sampling_frequency,
                     duration=self.duration,
                     starting_time=self.start_time)
+                self._sampling_frequency, self._duration = \
+                    utils.get_sampling_frequency_and_duration_from_time_array(self._time_array)
             else:
                 raise ValueError('Can not calculate a time series without a '
                                  'legitimate sampling_frequency ({}) or duration ({})'
diff --git a/test/series_test.py b/test/series_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..b235f7ffd3c95ed51438150942f19d89aa0445cf
--- /dev/null
+++ b/test/series_test.py
@@ -0,0 +1,78 @@
+from __future__ import absolute_import
+import unittest
+import bilby
+import numpy as np
+
+
+class TestCoupledTimeAndFrequencySeries(unittest.TestCase):
+
+    def setUp(self):
+        self.duration = 2
+        self.sampling_frequency = 4096
+        self.start_time = -1
+        self.series = bilby.gw.series.CoupledTimeAndFrequencySeries(duration=self.duration,
+                                                                    sampling_frequency=self.sampling_frequency,
+                                                                    start_time=self.start_time)
+
+    def tearDown(self):
+        del self.duration
+        del self.sampling_frequency
+        del self.start_time
+        del self.series
+
+    def test_repr(self):
+        expected = 'CoupledTimeAndFrequencySeries(duration={}, sampling_frequency={}, start_time={})'\
+            .format(self.series.duration,
+                    self.series.sampling_frequency,
+                    self.series.start_time)
+        self.assertEqual(expected, repr(self.series))
+
+    def test_duration_from_init(self):
+        self.assertEqual(self.duration, self.series.duration)
+
+    def test_sampling_from_init(self):
+        self.assertEqual(self.sampling_frequency, self.series.sampling_frequency)
+
+    def test_start_time_from_init(self):
+        self.assertEqual(self.start_time, self.series.start_time)
+
+    def test_frequency_array_type(self):
+        self.assertIsInstance(self.series.frequency_array, np.ndarray)
+
+    def test_time_array_type(self):
+        self.assertIsInstance(self.series.time_array, np.ndarray)
+
+    def test_frequency_array_from_init(self):
+        expected = bilby.core.utils.create_frequency_series(sampling_frequency=self.sampling_frequency,
+                                                            duration=self.duration)
+        self.assertTrue(np.array_equal(expected, self.series.frequency_array))
+
+    def test_time_array_from_init(self):
+        expected = bilby.core.utils.create_time_series(sampling_frequency=self.sampling_frequency,
+                                                       duration=self.duration,
+                                                       starting_time=self.start_time)
+        self.assertTrue(np.array_equal(expected, self.series.time_array))
+
+    def test_frequency_array_setter(self):
+        new_sampling_frequency = 100
+        new_duration = 3
+        new_frequency_array = bilby.core.utils.create_frequency_series(sampling_frequency=new_sampling_frequency,
+                                                                       duration=new_duration)
+        self.series.frequency_array = new_frequency_array
+        self.assertTrue(np.array_equal(new_frequency_array, self.series.frequency_array))
+        self.assertLessEqual(np.abs(new_sampling_frequency - self.series.sampling_frequency), 1)
+        self.assertAlmostEqual(new_duration, self.series.duration)
+        self.assertAlmostEqual(self.start_time, self.series.start_time)
+
+    def test_time_array_setter(self):
+        new_sampling_frequency = 100
+        new_duration = 3
+        new_start_time = 4
+        new_time_array = bilby.core.utils.create_time_series(sampling_frequency=new_sampling_frequency,
+                                                             duration=new_duration,
+                                                             starting_time=new_start_time)
+        self.series.time_array = new_time_array
+        self.assertTrue(np.array_equal(new_time_array, self.series.time_array))
+        self.assertAlmostEqual(new_sampling_frequency, self.series.sampling_frequency, places=1)
+        self.assertAlmostEqual(new_duration, self.series.duration, places=1)
+        self.assertAlmostEqual(new_start_time, self.series.start_time, places=1)