<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Tim,<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I do not have any code right now, just an idea that I published
as an abstract many years ago. Basically, it goes like this: Create a 60 Hz
waveform defined by an amplitude, phase, frequency, and offset. Using some kind
of non-linear optimization routine (Nelder-Mead downlhii simplex, a.k.a. “amoeba”
from Numerical Recipes is a start), vary the four parameters just mentioned
until the objective function is minimized. For an objective function, subtract
the synthetic 60 Hz waveform from your data, calculate the spectrum, and create
some metric of the smoothness of the spectrum around 60 Hz. This way you do not
remove all of the 60 Hz as a notch filter would do, but presumably leave in the
60 Hz component of the signal and only remove the 60 Hz peak, or additional 60
from the environment.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Reply to me off this list if you want to discuss further.
Obviously you would have to make modifications for multiple channels and
harmonics. <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>-Jeff Eriksen<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>OHSU Dept BME<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Portland, OR<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
eeglablist-bounces@sccn.ucsd.edu [mailto:eeglablist-bounces@sccn.ucsd.edu] <b>On
Behalf Of </b>Tim Mullen<br>
<b>Sent:</b> Monday, December 10, 2007 3:57 PM<br>
<b>To:</b> eeglablist@sccn.ucsd.edu<br>
<b>Subject:</b> [Eeglablist] line noise removal issues<o:p></o:p></span></p>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>Dear EEGLAB users,<br>
<br>
I have a question regarding the use of ICA for line noise removal.<br>
<br>
I have some electrocorticographic (ECoG) data with a strong 60Hz line noise
artifact as well as a 180Hz harmonic (only odd harmonics seem to be present,
probably due to symmetrical clipping). <br>
<br>
I am applying frequency-domain granger causality to this data, but have run
into some serious problems with the presence of this line noise. Oddly enough,
the line noise dominates as a <i>directional </i>effect in the granger
causality (unless there is an apparent temporal delay between channels at 60
Hz, a peak at 60 Hz should only be present in the instantaneous causality).
This is likely because the phase at 60Hz appears to differ between channels.
The strength of the directional effect at 60 and 180Hz is so strong that it
dominates any other interesting nearby features, making it impossible to
analyze causal interactions within a wide range of frequencies of interest. <br>
<br>
The noise band is far too wide for notch filtering to be considered a suitable
solution.  I have then tried extended infomax ICA (as implemented in
EEGLAB's <i>runica</i> function), to isolate the subgaussian noise components.
I have attempted this both in automatically estimating the number of
sub-gaussian sources and also fixing the number of subgaussian sources to 1, 2,
etc. None of these approaches have been successful.  ICA appears to
converge properly and the covariance matrix of the estimated components is the
identity matrix (it's at least second-order independent). <br>
<br>
It is possible that the tanh function used to model the subgaussian source
distributions is unsuitable for this line noise source. Has anyone used or
implemented any other families of distributions to calculate the score function
for ICA?<br>
<br>
Des anyone have any recommendations on how to remove this line noise, either
via source separation or other techniques?  In particular, if anyone has
developed a plugin for EEGLAB or their own code for automatic line noise
removal, that would be optimal. <br>
<br clear=all>
<br>
Thanks much for your input!<br>
<br>
Regards,<br>
Tim <o:p></o:p></p>

</div>

</body>

</html>