[SciPy-User] Low pass filter

Ivo Maljevic ivo.maljevic at gmail.com
Thu Sep 17 11:33:41 EDT 2009


Do you know what is the sampling rate of your data? Your Wn = 5/(f_s/2),
where f_s is the data sampling rate.
Also, I meant "I cannot comment on the frequency *content* of the signal you
are trying to LPF".

Hope this helps.

Ivo

2009/9/17 Ivo Maljevic <ivo.maljevic at gmail.com>

> Kaan,
> If you have two consecutive plot calls, you need to call figure in between,
> or you will plot over the first one. See the modified code below (blue).
> Also, put the time on the proper place (red).
> I cannot comment on the frequency comment of the signal you are trying to
> LPF.
>
> Notes:
>
> 1. Your butterworth filter is too short: N=2?
> 2. Your Wn should be normalized and < 1, I think.
>
> Ivo
>
>
> #!/usr/bin/python
> # -*- coding: utf-8 -*-
> import time, array, datetime
> import matplotlib
> import matplotlib.pyplot as plt
> from scipy import *
> from scipy.signal import butter, lfilter
>
> input = 0
> timing = []
> voltage  = []
> values = []
>
> input = 0
> infile = open('measurements/' + "data.csv", "r")
> for line in infile.readlines():
>     values = line.split(',')
>     voltage.insert(input,float(
>
>> values[0]))
>>     timing.insert(input,float(values[1]))
>>     input = input + 1
>> plt.xlabel('Time steps')
>> plt.ylabel('Voltage')
>> plt.title('Measurments from Oscilloscope')
>> plt.grid(True)
>> plt.plot(timing, voltage)
>>
>
>    plt.figure()
>
> [b,a]=butter(2,5)
> voltagelowp=lfilter(b,a,
>
>> voltage)
>> plt.plot(timing, voltagelowp)
>> plt.show()
>> plt.close()
>>
>
>
>
> 2009/9/17 Kaan AKŞİT <kunguz at gmail.com>
>
>> Thanks Ivo, The problem is after filtering I got the same signal. I wanted
>> to clear the frequencies higher then 5 Hz. My code is similar to yours but
>> the output doesn't seem logical:
>>
>> #!/usr/bin/python
>> # -*- coding: utf-8 -*-
>> import time, array, datetime
>> import matplotlib
>> import matplotlib.pyplot as plt
>> from scipy import *
>> from scipy.signal import butter, lfilter
>>
>> input = 0
>> timing = []
>> voltage  = []
>> values = []
>>
>> input = 0
>> infile = open('measurements/' + "data.csv", "r")
>> for line in infile.readlines():
>>     values = line.split(',')
>>     voltage.insert(input,float(values[0]))
>>     timing.insert(input,float(values[1]))
>>     input = input + 1
>> plt.xlabel('Time steps')
>> plt.ylabel('Voltage')
>> plt.title('Measurments from Oscilloscope')
>> plt.grid(True)
>> plt.plot(timing, voltage)
>>
>
>    plt.figure()
>
>
>> [b,a]=butter(2,5)
>> voltagelowp=lfilter(b,a,voltage)
>> plt.plot(timing, voltagelowp)
>>
>> plt.show()
>> plt.close()
>>
>> 2009/9/17 Ivo Maljevic <ivo.maljevic at gmail.com>
>>
>> Does the following:
>>>
>>> plt.plot(timing, voltage)
>>> plt.show()
>>>
>>> work before filtering? (Suggestion, you may want to put time on x-axis,
>>> see the line above)
>>>
>>> I just wrote a small test program, and it works:
>>>
>>>
>>> #!/usr/bin/python
>>>
>>> # import
>>> import pylab as plt
>>> from scipy import *
>>> from scipy.signal import butter, lfilter
>>>
>>> t=linspace(0,1,100)
>>> v=sin(2*pi*t)
>>>
>>> (b,a)=butter(2,5,btype='low')
>>> v=lfilter(b,a,v)
>>> plt.plot(t,v)
>>> plt.show()
>>>
>>>
>>> 2009/9/17 Kaan AKŞİT <kunguz at gmail.com>
>>>
>>>>  Hi all,
>>>>
>>>> This is my first time that I use Scipy. I have two arrays both of them
>>>> one dimensional. One of them is filled with voltage values and one of them
>>>> is filled with time values. I want to apply low pass filter to clear the
>>>> noise from the data. Can you please help me? I already wrote something but
>>>> it is not working:
>>>>
>>>> (b,a)=butter(2,5,btype='low')
>>>> voltage=lfilter(b,a,voltage)
>>>> plt.plot(voltage,timing)
>>>>
>>>> Best regards,
>>>> Kaan
>>>>
>>>> _______________________________________________
>>>> SciPy-User mailing list
>>>> SciPy-User at scipy.org
>>>> http://mail.scipy.org/mailman/listinfo/scipy-user
>>>>
>>>>
>>>
>>> _______________________________________________
>>> SciPy-User mailing list
>>> SciPy-User at scipy.org
>>> http://mail.scipy.org/mailman/listinfo/scipy-user
>>>
>>>
>>
>> _______________________________________________
>> SciPy-User mailing list
>> SciPy-User at scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-user
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20090917/c7a51542/attachment.html>


More information about the SciPy-User mailing list