From ae3296fa5e2ef524f70e011fbdff48458f851c4d Mon Sep 17 00:00:00 2001 From: Soeren Schoenbrod Date: Fri, 26 Mar 2021 14:55:00 +0100 Subject: [PATCH] Performance improvements for carrier replica --- Project.toml | 4 ++-- src/carrier_replica.jl | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Project.toml b/Project.toml index 0d070b4..b18b67e 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "Tracking" uuid = "10b2438b-ffd4-5096-aa58-44041d5c8f3b" authors = ["Soeren Zorn "] -version = "0.14.2" +version = "0.14.3" [deps] DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" @@ -16,7 +16,7 @@ Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" [compat] DocStringExtensions = "0.6, 0.7, 0.8" GNSSSignals = "0.15" -LoopVectorization = "0.8, 0.9, 0.10, 0.11" +LoopVectorization = "0.8, 0.9, 0.10, 0.11, 0.12" StaticArrays = "0.9, 0.10, 0.11, 0.12, 1.0" StructArrays = "0.4" TrackingLoopFilters = "0.1" diff --git a/src/carrier_replica.jl b/src/carrier_replica.jl index 1ccaac8..f11c6bf 100644 --- a/src/carrier_replica.jl +++ b/src/carrier_replica.jl @@ -7,9 +7,13 @@ function gen_carrier_replica!( num_samples ) where T c_re = carrier_replica.re; c_im = carrier_replica.im + carr_freq = T(upreferred(carrier_frequency / Hz)) + sample_freq = T(upreferred(sampling_frequency / Hz)) + twopi = T(2π) + phase = T(start_phase) @avx for i in 0:num_samples - 1 c_im[i + start_sample], c_re[i + start_sample] = - sincos(T(2π) * (i * T(upreferred(carrier_frequency / Hz)) / T(upreferred(sampling_frequency / Hz)) + T(start_phase))) + sincos(twopi * (i * carr_freq / sample_freq + phase)) end carrier_replica end