Browse Source

Исправлен алгоритм расчёта фазы

master
Maxim Lihachev 9 years ago
parent
commit
e854d0df47
  1. 6
      level.hs

6
level.hs

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
{-# LANGUAGE DeriveDataTypeable, RecordWildCards #-}
-- Создан: Ср 28 сен 2016 10:18:53
-- Изменен: Пт 30 сен 2016 12:52:29
-- Изменен: Ср 05 окт 2016 16:09:45
import System.Console.CmdArgs
import System.Environment
@ -45,7 +45,9 @@ calcLevel fs samples = case dd of @@ -45,7 +45,9 @@ calcLevel fs samples = case dd of
-- Вычисление значения фазы
calcPhase :: (Ord a, Fractional a) => [[a]] -> a
calcPhase samples = 2 * median (map ph (zip3 samples (drop 1 samples) (drop 2 samples))) - 1 where
calcPhase samples
| sum [ abs l + abs r | [l,r] <- samples] < 0.01 = 0
| otherwise = median (map ph (zip3 samples (drop 1 samples) (drop 2 samples))) where
ph ([0,0], [l2,r2], [l3,r3]) | (signum l2 /= signum r2) && (signum l3 /= signum r3) = 0
| otherwise = 1

Loading…
Cancel
Save