<div>The main thing I suggest about filters is that in addition to plotting the frequency and phase response, to also be sure to plot the temporal response to a pulse input (including negative time). One always wants to see how much ringing there is. I presume the sharper the filter is in the frequency domain the worse it is in the time domain. </div>


<div>Stan <br></div><div class="gmail_quote">On Sun, Jun 10, 2012 at 7:16 AM, Arnaud Delorme <span dir="ltr"><<a href="mailto:arno@ucsd.edu" target="_blank">arno@ucsd.edu</a>></span> wrote:<br><blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid" class="gmail_quote">


Dear Makoto, Clemens and Tim,<br>
<br>
in EEGLAB 11, you can plot the FIR and IIR filter frequency and phase response.  Looking at the filter response, you can figure out everything you need to know<br>
about the filter. Hope this helps,<br>
<br>
Arno<br>
<div><div><br>
On Jun 6, 2012, at 11:29 PM, Makoto Miyakoshi wrote:<br>
<br>
> Thanks Clemens!<br>
><br>
> Makoto<br>
><br>
> 2012/6/6 Clemens Brunner <<a href="mailto:clbrunner@ucsd.edu" target="_blank">clbrunner@ucsd.edu</a>>:<br>
>> Makoto, it's the other way round for me -- I'm not an expert in analog<br>
>> filter design, but I do know a little bit about signal processing :-). Yes,<br>
>> your intuition is correct. You can still apply this to digital filters --<br>
>> IIR filters are typically designed using analog design technique and then<br>
>> transferring that to the digital domain. FIR filters are usually<br>
>> digital-only, so I'm not sure if these properties apply (of course, if you<br>
>> increase the filter order of an FIR filter, the cutoff will be steeper, but<br>
>> I cannot tell you if there is a way to determine the slope).<br>
>><br>
>> There is a good introductory paper by the Mathworks, which talks about<br>
>> filters and has MATLAB examples:<br>
>> <a href="http://www.mathworks.com/tagteam/55876_digfilt.pdf" target="_blank">http://www.mathworks.com/tagteam/55876_digfilt.pdf</a><br>
>><br>
>> HTH<br>
>> Clemens<br>
>><br>
>><br>
>><br>
>> On 06/06/2012 11:28 AM, Makoto Miyakoshi wrote:<br>
>>><br>
>>> Dear Tim and Clemens,<br>
>>><br>
>>> Thanks for feedback.<br>
>>> Since I don't know much about signal processing, my understanding of<br>
>>> filter is the analog one used in an electric circuit with capacitors<br>
>>> and inductors (as used in speakers and amplifiers). Sor it is<br>
>>> intuitive for me, as Tim said, that slope and filter order are such<br>
>>> that 6dB for the first order (1 capacitor/inductor), 12dB for the<br>
>>> second order (capacitor + inductor), 18dB for the third order (3<br>
>>> elements), etc. But it seems filter can be 'designed' pretty freely in<br>
>>> signal processing.<br>
>>><br>
>>> Clemens, I would appreciate if you could show us an introductory<br>
>>> website or paper to learn what is digital filter.<br>
>>><br>
>>> Makoto<br>
>>><br>
>>><br>
>>><br>
>>> 2012/6/6 Tim Schoof<<a href="mailto:t.schoof@ucl.ac.uk" target="_blank">t.schoof@ucl.ac.uk</a>>:<br>
>>>><br>
>>>> Hi Makoto,<br>
>>>><br>
>>>> I got the following response from Clemens Brunner:<br>
>>>><br>
>>>> Hi Tim,<br>
>>>><br>
>>>>> I was wondering whether anyone knew the exact filter specifications of<br>
>>>><br>
>>>> the<br>
>>>>><br>
>>>>> Basic FIR and Short IIR filters implemented in eeglab.<br>
>>>><br>
>>>><br>
>>>> eegfilt() uses firls() or fir1() to compute the filter coefficients for a<br>
>>>> given order.<br>
>>>><br>
>>>> iirfilt() designs an elliptic filter and automatically selects the order<br>
>>>> to meet the<br>
>>>> filter specs (high cutoff, low cutoff, passband ripple and stopband<br>
>>>> attenuation).<br>
>>>><br>
>>>>> Also - and this is probably a question about filters in general - I was<br>
>>>><br>
>>>> hoping someone could tell me how to specify a 24 dB/oct roll-off (or I<br>
>>>> suppose 12 dB/oct given that the script uses filtfilt). What order would<br>
>>>> that correspond to in an FIR filter?<br>
>>>><br>
>>>> Depends on which filter design technique you use. If you want to go the<br>
>>>> manual way,<br>
>>>> first pick a design technique (windowing, Kaiser window, optimum filters<br>
>>>> via<br>
>>>> Parks-McClellan, ...), provide the desired specifications, and the<br>
>>>> corresponding<br>
>>>> parameters (including filter order) will pop out.<br>
>>>><br>
>>>> You can play around with MATLAB's filter design tools if you have MATLAB<br>
>>>> and the<br>
>>>> Signal Processing Toolbox. You can use fdesign or filterbuilder, or<br>
>>>> fdatool. This<br>
>>>> will let you fully customize your filter.<br>
>>>><br>
>>>> If you want to use such a custom FIR filter with EEGLAB, I guess you<br>
>>>> would<br>
>>>> have to<br>
>>>> write a short plugin or filter outside of EEGLAB (i.e. working with<br>
>>>> EEG.data<br>
>>>> directly).<br>
>>>><br>
>>>> HTH<br>
>>>> Clemens<br>
>>>><br>
>>>> Tim<br>
>>>><br>
>>>>> Dear Tim,<br>
>>>>><br>
>>>>> I'm also interested in knowing this. Arno?<br>
>>>>><br>
>>>>> Makoto<br>
>>>>><br>
>>>>> 2012/6/4 Tim Schoof<<a href="mailto:t.schoof@ucl.ac.uk" target="_blank">t.schoof@ucl.ac.uk</a>>:<br>
>>>>>><br>
>>>>>> Dear eeglab list,<br>
>>>>>> I was wondering whether anyone knew the exact filter specifications of<br>
>>>>>> the<br>
>>>>>> Basic FIR and Short IIR filters implemented in eeglab.<br>
>>>>>> Also - and this is probably a question about filters in general - I was<br>
>>>><br>
>>>> hoping someone could tell me how to specify a 24 dB/oct roll-off (or I<br>
>>>> suppose 12 dB/oct given that the script uses filtfilt). What order<br>
>>>> would<br>
>>>>>><br>
>>>>>> that correspond to in an FIR filter?<br>
>>>>>> Many thanks,<br>
>>>>>> Tim<br>
>>>>>> _______________________________________________<br>
>>>>>> Eeglablist page: <a href="http://sccn.ucsd.edu/eeglab/eeglabmail.html" target="_blank">http://sccn.ucsd.edu/eeglab/eeglabmail.html</a><br>
>>>>>> To unsubscribe, send an empty email to<br>
>>>>>> <a href="mailto:eeglablist-unsubscribe@sccn.ucsd.edu" target="_blank">eeglablist-unsubscribe@sccn.ucsd.edu</a><br>
>>>>>> For digest mode, send an email with the subject "set digest mime" to<br>
>>>><br>
>>>> <a href="mailto:eeglablist-request@sccn.ucsd.edu" target="_blank">eeglablist-request@sccn.ucsd.edu</a><br>
>>>>><br>
>>>>><br>
>>>>><br>
>>>>><br>
>>>>> --<br>
>>>>> Makoto Miyakoshi<br>
>>>>> JSPS Postdoctral Fellow for Research Abroad<br>
>>>>> Swartz Center for Computational Neuroscience<br>
>>>>> Institute for Neural Computation, University of California San Diego<br>
>>>>><br>
>>>><br>
>>>><br>
>>>><br>
>>><br>
>>><br>
>>><br>
>><br>
><br>
><br>
><br>
> --<br>
> Makoto Miyakoshi<br>
> JSPS Postdoctral Fellow for Research Abroad<br>
> Swartz Center for Computational Neuroscience<br>
> Institute for Neural Computation, University of California San Diego<br>
> _______________________________________________<br>
> Eeglablist page: <a href="http://sccn.ucsd.edu/eeglab/eeglabmail.html" target="_blank">http://sccn.ucsd.edu/eeglab/eeglabmail.html</a><br>
> To unsubscribe, send an empty email to <a href="mailto:eeglablist-unsubscribe@sccn.ucsd.edu" target="_blank">eeglablist-unsubscribe@sccn.ucsd.edu</a><br>
> For digest mode, send an email with the subject "set digest mime" to <a href="mailto:eeglablist-request@sccn.ucsd.edu" target="_blank">eeglablist-request@sccn.ucsd.edu</a><br>
<br>
<br>
_______________________________________________<br>
Eeglablist page: <a href="http://sccn.ucsd.edu/eeglab/eeglabmail.html" target="_blank">http://sccn.ucsd.edu/eeglab/eeglabmail.html</a><br>
To unsubscribe, send an empty email to <a href="mailto:eeglablist-unsubscribe@sccn.ucsd.edu" target="_blank">eeglablist-unsubscribe@sccn.ucsd.edu</a><br>
For digest mode, send an email with the subject "set digest mime" to <a href="mailto:eeglablist-request@sccn.ucsd.edu" target="_blank">eeglablist-request@sccn.ucsd.edu</a><br>
</div></div></blockquote></div><br>