_W'      !"#$%&uses FFI provisional+haskell.vivian.mcphail <at> gmail <dot> com0'()*+,-./0123456789conver from Vector Double :filter a signal zero coefficients pole coefficients  input signal output signal $ | coefficients of a Hamming window ;length the Hamming coeffficents + | the complex power : real $ v * (conj v) <input output = | resample, take one sample every n samples in the original =>8the difference between consecutive elements of a vector ?Aunwrap the phase of signal (input expected to be within (-pi,pi) @=evaluate a real coefficient polynomial for complex arguments the real coefficients $the points at which to be evaluated  the values Tconvolve two containers, output is the size of the second argument, no zero padding ABCDfilters the signal zero coefficients pole coefficients  input signal output signal Efilters the signal zero coefficients pole coefficients  input signal output signal FOHilbert transform with original vector as real value, transformed as imaginary G5Welch (1967) power spectrum density using periodogram/ FFT method window size (multiple of 2)  input signal power density H!coefficients of a Hamming window length the Hamming coeffficents I!coefficients of a Hamming window length the Hamming coeffficents J-determine the frequency response of a filter zero coefficients pole coefficients points (between 0 and 2*pi)  response K=evaluate a real coefficient polynomial for complex arguments the real coefficients $the points at which to be evaluated  the values L(the complex power : real $ v * (conj v) input output M(the complex power : real $ v * (conj v) input output N:resample, take one sample every n samples in the original O:resample, take one sample every n samples in the original P8the difference between consecutive elements of a vector Q8the difference between consecutive elements of a vector RAunwrap the phase of signal (input expected to be within (-pi,pi) SAunwrap the phase of signal (input expected to be within (-pi,pi) 9:;<=>?@FGJ9:;<=>?@9:;<=>?@FGJuses FFI provisional+haskell.vivian.mcphail <at> gmail <dot> comfilters the signal zero coefficients pole coefficients sampling rate  input signal output signal 5Welch (1967) power spectrum density using periodogram/ FFT method sampling rate  window size  input signal "(frequency index,power density) a broadband FIR sampling rate (lower,upper) frequency cutoff filter coefficients a broadband filter sampling rate (lower,upper) frequency cutoff  input signal output signal standard FIR filter J | FIR filter with grid a power of 2 greater than the order, ramp = grid/16, hamming window Tproduce an FIR filter /order (one less than the length of the filter) :band edge frequency, nondecreasing, [0, f1, ..., f(n-1), 1]  ^ band edge magnitude  grid spacing transition width %smoothing window (size is order + 1) the filter coefficients UVWX Ldetermine the frequency response of a filter, given a vector of frequencies zero coefficients pole coefficients sampling rate  frequencies frequency response Ydetermine the frequency response of a filter, given a number of points and sampling rate zero coefficients pole coefficients sampling rate number of points (frequencies,response) aan analytic signal is the original signal with Hilbert-transformed signal as imaginary component =the power (amplitude^2 = v * (conj c)) of an analytic signal  the phase of an analytic signal  remove a linear trend from data  window size data to be detrended detrended data ,resize the vector to length n by resampling !coefficients of a Hamming window length the Hamming coeffficents :resample, take one sample every n samples in the original 8the difference between consecutive elements of a vector Aunwrap the phase of signal (input expected to be within (-pi,pi)     uses Concurrency provisional+haskell.vivian.mcphail <at> gmail <dot> com!data type with multiple channels YZsampling rate [bits of precision \number of channels ]length in samples ^was the data detrended? _if filtered the passband `data  create a multichannel data type sampling rate bits of precision data  datatype the sampling rate the bits of precision the number of channels the length, in samples extract one channel extract all channels 3convert the data to a matrix with channels as rows was the data detrended? was the data filtered? a%map a function executed concurrently function to map input output !%map a function executed concurrently the function to be mapped  input data  output data bmap a function the function to be mapped  input data  output data ".detrend the data with a specified window size #(filter the data with the given passband $extract a slice of the data starting sample number length %ecalculate the mutual information of the phase between pairs of channels (fills upper half of matrix)  input data  !"#$% !"#$% !"#$%EEG BDF data file functions  provisional ,haskell.vivian.mcphail <at> gmail <dot> com 0cdefghijklmnopqrstuvwxyz{|}~&&&EEG functions  provisional ,haskell.vivian.mcphail <at> gmail <dot> com &&      !"#$%&' ()*+,-./0123456789:;<=>?@ABCDEFGHIJ KLMNOPQRSTUVWXYZ[\]^_`abcdeffghijklmnop qrstuvwx!yz{{|}~ hsignal-0.1.3Numeric.SignalNumeric.Signal.MultichannelNumeric.Signal.EEGNumeric.Signal.InternalNumeric.Signal.EEG.BDF Filterable Convolvableconvolvefilterpwelch broadband_firbroadband_filter standard_firfirfreqzFfreqzNanalytic_signalanalytic_poweranalytic_phasedetrendresizehamming downsamplederivunwrap MultichannelreadMultichannelwriteMultichannelcreateMultichannel sampling_rate precisionchannelssamples getChannel getChannelstoMatrix detrendedfilteredmapConcurrentlyslicemi_phaseloadBDFsignal_unwrap_floatsignal_unwrap_doublesignal_deriv_floatsignal_deriv_doublesignal_downsample_floatsignal_downsample_doublesignal_complex_power_floatsignal_complex_power_doublesignal_real_poly_complex_evalsignal_hamming_floatsignal_hamming_double signal_pwelchsignal_hilbertsignal_filter_floatsignal_filter_doublesignal_vector_complex_convolvesignal_vector_float_convolvesignal_vector_double_convolve fromDoublefilter_hamming_complex_power_ downsample_deriv_unwrap_ polyEval_PFPCPDfilterDfilterFhilberthammingDhammingFfreqzpolyEvalcomplex_powerDcomplex_powerF downsampleD downsampleFderivDderivFunwrapDunwrapF calc_griddiff interpolate interpolate' interpolate''MC_sampling_rate _precision _channels_length _detrended _filtered_datamapArrayConcurrentlymapMCBDFid_type_subject recordingdatetime head_bytes data_version num_recordsduration chan_labels tran_type dimensionsphys_minphys_maxdig_mindig_max prefilterreserveddata_TimehourminutesecondDatedaymonthyearBSMgetN getStringgetInt strToDate' strToTime' reverseBitsget24Bit readRecordreadRecordBlockconvertreadDatareadBDF