From e2871bf01101eac2c4457bb9f2a6062d6a9f638c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A1s=20Veres-Szentkir=C3=A1lyi?= Date: Thu, 30 May 2013 21:11:19 +0200 Subject: [PATCH] SSTV.gen_values: even out fraction samples --- sstv.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sstv.py b/sstv.py index b84bc32..9c0127b 100644 --- a/sstv.py +++ b/sstv.py @@ -1,7 +1,7 @@ #!/usr/bin/env python from __future__ import division, with_statement -from math import sin, pi +from math import sin, pi, floor from random import random import struct @@ -58,12 +58,16 @@ class SSTV(object): """generates -1 .. +1 values from freq_bits""" spms = self.samples_per_sec / 1000 param = 0 + samples = 0 for freq, msec in self.gen_freq_bits(): offset = param - for sample in xrange(int(round(spms * msec))): + samples += spms * msec + tx = floor(samples) + for sample in xrange(int(tx)): t = sample / self.samples_per_sec param = t * freq * 2 * pi + offset yield sin(param) + samples -= tx def gen_freq_bits(self): """generates (freq, msec) tuples from image"""