In [8]:
{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE OverloadedStrings #-}
import WGL.IHaskell qualified as WGL
import Graphics.Plotly qualified as PT
import Data.Complex
import Control.Lens
iqToSig rate n carrierFreq iq =
let i = take n [realPart iq * cos (2*pi*carrierFreq*t/rate) | t <- [0..]]
q = take n [imagPart iq * sin (2*pi*carrierFreq*t/rate) | t <- [0..]]
in (i, q, zipWith (+) i q)
simplePlotMulti=
let mkLine = PT.line (PT.aes & PT.x .~ fst & PT.y .~ snd)
in PT.plotly "simple" . map mkLine
simplerPlotMulti = simplePlotMulti . map (zip [0..])
iqPlot1 = let (i,q,iq) = iqToSig 10e6 128 2e5 (0.707 :+ 0.707) in simplerPlotMulti [i,q,iq]
WGL.displayPlotly iqPlot1
In [ ]: