diff options
| author | Author Name <[email protected]> | 2023-07-07 12:20:59 +0930 |
|---|---|---|
| committer | David Rowe <[email protected]> | 2023-07-07 12:29:06 +0930 |
| commit | ac7c48b4dee99d4c772f133d70d8d1b38262fcd2 (patch) | |
| tree | a2d0ace57a9c0e2e5b611c4987f6fed1b38b81e7 /octave/sample_clock_offset.m | |
shallow zip-file copy from codec2 e9d726bf20
Diffstat (limited to 'octave/sample_clock_offset.m')
| -rw-r--r-- | octave/sample_clock_offset.m | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/octave/sample_clock_offset.m b/octave/sample_clock_offset.m new file mode 100644 index 0000000..5169178 --- /dev/null +++ b/octave/sample_clock_offset.m @@ -0,0 +1,21 @@ +% sample_clock_offset.m +% +% David Rowe June 2017 +% +% To simulate a sample clock offset we resample by a small amount +% using linear interpolation + +function rx = sample_clock_offset(tx, sample_clock_offset_ppm) + tin=1; + tout=1; + rx = zeros(1,length(tx)); + while tin < length(tx) + t1 = floor(tin); + t2 = ceil(tin); + f = tin - t1; + rx(tout) = (1-f)*tx(t1) + f*tx(t2); + tout += 1; + tin += 1+sample_clock_offset_ppm/1E6; + end +end + |
