diff --git a/src/codec2/mod.rs b/src/codec2/mod.rs
index 4458570c579f9cd5cca6a7926b95ea4f9c528d43..23b75add5259c5c7b1c95bb829033970c5200225 100644
--- a/src/codec2/mod.rs
+++ b/src/codec2/mod.rs
@@ -131,10 +131,7 @@ impl<I: Iterator<Item = Complex>> Iterator for Fsk<I> {
         }
 
         let n_bits = unsafe { (*self.internal).n_bits };
-        // TODO make this one method
-        for _ in 0..n_bits {
-            self.output_cache.push_back(0.0);
-        }
+        self.output_cache.resize(n_bits.try_into().unwrap(), 0.0);
 
         let n_sym = unsafe { (*self.internal).n_sym };
         let mut rx_filt = vec![0.0; usize::try_from(M * n_sym).unwrap()];