[SciPy-user] Linear filter

Claes Hagstrom Claes.Hagstrom at emw.ericsson.se
Tue Mar 5 02:23:14 EST 2002


I recently downloaded SciPy-0.1, which I found very interesting. As I
work with signal processing simulations, I tried the linear filter.
However, there seems to be something wrong either with the filter or
my way of using it. I tried the same simple calculations in Matlab as
well and got the results I expected. I would appreciate your comments.

Claes Hagström ( claes.hagstrom at emw.ericsson.se )

---------------------------
SciPy:                                          Matlab:                   
						                          
from scipy import *				b = [ 5 -1 ];             
						a = [ 1  0 ];             
b = array([5.,-1.])				                          
a = array([1.,0.])				x = [ 1 3 ; 5 7 ];        
						x(:,:,2) = [ 2 4 ; 6 8 ]; 
x = reshape(arange(8,typecode=Float)+1,(2,2,2))	                          
						c = filter(b,a,x,[],1);   
c = signal.lfilter(b,a,x,0)			d = filter(b,a,x,[],2);   
d = signal.lfilter(b,a,x,1)			e = filter(b,a,x,[],3);   
e = signal.lfilter(b,a,x,2)

---------------------
>>> print a                                         a =         
[ 1.  0.]					            
>>> print b					         1     0
[ 5. -1.]					            

                                                    b =          
						            
						         5    -1



>>> print x[:,:,0]			            x(:,:,1) =  	
[[ 1.  3.]					            
 [ 5.  7.]]					         1     3
>>> print x[:,:,1]				         5     7            
[[ 2.  4.]					
 [ 6.  8.]]					
						
					            x(:,:,2) =  	
						                        
						         2     4            
						         6     8




>>> print c[:,:,0]                                   c(:,:,1) =  
[[  5.   0.]					                 
 [ 25.   0.]]					          5    15
>>> print c[:,:,1]				         24    32
[[ 10.  20.]					                 
 [ 28.  36.]]					                 
						     c(:,:,2) =  
						                 
						         10    20
						         28    36




>>> print d[:,:,0]                                   d(:,:,1) =
[[  5.  14.]					                 
 [  0.  35.]]					          5    14
>>> print d[:,:,1]				         25    30
[[ 10.  18.]					                 
 [ 30.  34.]]					                 
>>> 						     d(:,:,2) =  
						                 
						         10    18
						         30    34




>>> print e[:,:,0]                                    e(:,:,1) =  
[[  5.  15.]					                  
 [  0.  35.]]					           5    15
>>> print e[:,:,1]				          25    35
[[  9.  17.]					                  
 [  0.  33.]]					                  
						      e(:,:,2) =  
	                  
						           9    17
						          25    33



More information about the SciPy-User mailing list