-------------------------------------------------------------------------------- module Main where import Smith import Complex -------------------------------------------------------------------------------- --- EE command stuff normalize :: Complex Double -> [Complex Double] -> [Complex Double] normalize res (x:xs) = map ((1/res) *) (x:xs) inductive_Reactance :: Double -> Double -> Double inductive_Reactance ind freq = omega freq * ind capacitive_Reactance :: Double -> Double -> Double capacitive_Reactance cap freq = (-1) / omega freq * cap omega :: Double -> Double omega freq = 2.0 * pi * freq -------------------------------------------------------------------------------- micro = 1.0/1000000.0 kilo = 1000.0 xL freq = inductive_Reactance (2.0 * micro) (freq * kilo) xReactance = map xL [100,500..3000] -- 0.1Ghz to 3.0Ghz in 0.4Ghz step xDist = map (5.0 :+) xReactance impedance = normalize 50 xDist main = do pInit showSmithChart putStrLn $ pColor "green" plotSmith (2:+0.4) putStrLn $ pColor "red" mapM_ plotSmith impedance lineSmith impedance putStrLn pClose