condition monitoring and fault diagnosis of rotating machines are of great importance to prevent machinery breakdown in numerous industrial applications .vibration signals generated by faults in rotating components have been widely studied .detecting and extracting transient vibration signatures is of vital importance for vibration - based detection of faults in rotating machinery .however , the observed vibration signals are usually corrupted by very heavy background noise .many diagnostic techniques have been developed to extract the fault features based on different transforms , such as short time fourier transform ( stft ) and wavelet transform .some methods use morphological decomposition methods , such as empirical mode decomposition ( emd ) , or demodulation .some methods combine conventional time - frequency analysis with other techniques suitable for transients detection , such as bispectrum - based method and spectral kurtosis ( sk ) based methods .the use of sparse representations for fault detection was initially illustrated in ref . , where basis pursuit denoising ( bpd ) was adopted to exploit the sparsity of vibration signals in different domains in order to detect and extract fault features . in ref . , the author considered a morphological component analysis ( mca ) problem , which is a sparsity - based decomposition approach , to improve the extraction of fault features . in ref . matching pursuit ( mp ) was used on a customized dictionary to extract oscillatory fault features . in ref . , a sparse representation using the tunable q - factor wavelet transform is utilized to extract oscillatory fault features .most recently , sparse coding techniques are introduced for fault feature extraction .the periodicity ( also called fault characteristic or fundamental frequency in some cases ) of potential fault features is very important information for fault diagnosis . in many cases ,this information can be simply obtained using the geometry of the specific components under steady rotating speed , or directly obtained from the user operation manual .it is already required as necessary information in many fault diagnosis methods .some fault diagnosis methods use periodicity information as a verification step after feature extraction ( e.g. ) , and some methods use it to determine an optimal frequency band when extracting the oscillation frequency of the fault feature .only a few very recent works use the temporal periodic structure to extract fault features .the overlapping group sparsity ( ogs ) approach has been discussed in , where a multi - dimensional group structure has been modeled in various domains and convex optimization problems have been formulated , to take advantage of group behavior ( e.g. coefficients in stft domain ) to recover signals from noisy observations . using ogs to extract fault features was introduced and formulated as an convex optimization problem in , in which the fault features are assumed to be a periodic sequence of pulses .in addition , it was shown that the objective function can be convex even if some specified non - convex penalty functions are used to promote sparsity . moreover ,when the periodicity information is known , a binary - weighted group structure was used in the regularization , capturing the period of the potential fault features .  in this work ,we consider the problem wherein the fault features are comprised of a sequence of oscillatory transients , and sparsity should be promoted in the time - frequency domain .the discrete - time vibration observation is modeled by where is an approximately - periodic sequence of oscillatory transients where the period is determined by the characteristic frequency of potential faults , and is additive gaussian noise .moreover , we assume that the oscillation frequencies of the transient component are unknown but relatively sparse , and the periodicity is over the time domain .  under the signal model, we seek a solution to the optimization problem for the purpose of extracting the fault feature , where denotes the coefficients corresponding to an overcomplete transform of , where , and 0 is a regularization parameter and is a sparsity - promoting penalty function ( regularizer ) in the domain of .this paper aims to extract the oscillatory fault features as periodically structured groups of coefficients in the time - frequency domain .we set the operator to be the normalized inverse stft , and the function is customized to capture the periodicity in the stft domain .  to solve a relatively complicated sparsity - based optimization problem , where an iterative scheme has to be adopted ,methods are usually based on two algorithms .one is based on majorization - minimization ( mm ) , such as the algorithms given in , and further the method of iterated soft - thresholding algorithm ( ista ) can be considered as a special case of mm asa well ( majorizing data fidelity term based on lipschitz constant ) .another trend is based on alternating direction method of multipliers ( admm ) , and its extension such as split augmented lagrangian shrinkage algorithm ( salsa ) , and some recent applications using such algorithm are presented in .some algorithms can be explained as a combination of admm and mm as a special case .for instance , a specific function of bregman distance was described in , which is similar to a majorizer , utilized to derive an iterative method for total variation problem .such concept has been used on total variation problem with multiple extensions such as combinations with wavelet - based denoising , compressive sensing .moreover , the bregman distance function in was used to in other iterative algorithms for convex problems as well , such as the methods proposed in .some recent work in the field of optimization also consider this problem . in , a framework is given that instead of using the bregman distance function in , but using proper ` indefinite proximal terms ' to majorize augmented lagrangian , the resulting majorized admm - style algorithm will converge for convex problem .moreover , in , an admm - style algorithm with a embedded criteria checking step is proposed based on majorizing the corresponding augmented lagrangian as well .additionally , in , a scheme of majoring a cross term with the admm - style iteration is proposed for convex problem .  in this work ,we propose an algorithm that combines admm and mm with a more general and simpler formulation , based on block successive upper - bound minimization ( bsum ) algorithm .moreover , the algorithm allows non - convex regularization to promote the resulting sparsity , and it is guaranteed to converge to a local minimum even though the objective function is not convex .   in this paper ,the elements of a vector are denoted as or ] .we use bold and to express all s and s matrices .more specifically , is a matrix of size , and all its elements are zero , and is a matrix , the elements of which are all one.   the majorization - minimization ( mm ) method simplifies a complicated optimization problem into a sequence of easier ones . to solve a convex optimization problem the mm methodis described by iteration where is a continuously differentiable function , satisfying  [ eqn : bsum_mm_condition ]   the detailed proof of convergence for convex problems has been given in ref .* chapter 10 ) .block successive upper - bound minimization algorithm ( bsum ) is described in .its original goal is to overcome the uniqueness requirement of block coordinate descent ( bcd ) method ( also known as gauss - seidel method ) .bsum is an iterative method to solve optimization problems , which allows the objective function to be non - convex and/or non - smooth .when the objective function is neither convex nor smooth , the algorithm will at least converge to a stationary point under some weak assumptions ( * ? ? ?* theorem 2 ) . this algorithm has been applied to transceiver design in mimo multi - cellular communication system , which has a non - convex formulation . in order to facilitate our proposed algorithm , as a short review, we only rewrite a special case of bsum using our notation .the problem is defined as where is continuous and has at least one stationary point . in this case, we slightly relax the definition of ` optimal solution ' , whereas if the objective function is not convex , we allow the ` optimum ' to be merely a local minimizer .note that , when function is strictly convex , the unique minimizer is the global minimizer , therefore the relaxation of optimal does not affect convex problems , where is still the true global minimizer .we assume the unknown can be divided into three blocks : , and with .then the objective function in can be rewritten using the expression of the three blocks , where the problem is and if we can find a continuous function , which is the block - wise upper - bound of , defined as  [ eqn : bsum_block_condition ]   then problem can be solved by bsum by the algorithm illustrated in ( * ? ? ?* figure 2 ) .for the special case of three blocks , we can write the algorithm explicitly as the steps in table [ alg : bsum ] .  the condition implies all the assumptions listed in ( * ? ?* assumption 2 ) , which ensures that the algorithm in table [ alg : bsum ] converges , and the mathematical proof of convergence can be found in section iv of .it is worth noting that the convergence behavior of bsum does not rely on the convexity of the problem .align * & x ^n + & + & x_0 = _ u_0 g ( ( u_0 , x_1 , x_2 ) , ( x_0 , x_1 , x_2 ) ) + & x_1 = _ u_1 g ( ( x_0 , u_1 , x_2 ) , ( x_0 , x_1 , x_2 ) ) + & x_2 = _ u_2 g( ( x_0 , x_1 , u_2 ) , ( x_0 , x_1 , x_2 ) ) + & + & x = \ { x_0 , x_1 , x_2 }split augmented lagrangian shrinkage algorithm ( salsa ) is a recently developed method for solving convex optimization problems .as an efficient -norm regularized convex problem solver , it has been widely used to solve various signal processing problems .salsa adopts variable splitting technique and the concept of alternating direction method of multipliers ( admm ) , achieving a very simply structured and efficient iterative algorithm . in this section, we propose an algorithm formulated very similar to salsa .however , in contrast to salsa , the proposed method converges when used to solve non - convex problems .because we use the concept of majorization - minimization ( mm ) in the proposed algorithm , it is termed split augmented lagrangian majorization - minimization algorithm ( salma ) , and can be stated as the following theorem .  [ the : salma ] for optimization problem where function and are both finite and continuously differentiable , if a function majorizes , i.e. , satisfying can be found , and it enables the following iterative algorithm  [ eqn : bsum_salma_0 ]   having unique solution at each step , then the algorithm will converge , and converges to a local minimizer of problem .the proof of the above theorem in detail is given in appendix [ app : proof ] .note that the algorithm has two steps identical to salsa , and the difference is in the sub - problem , where the cost function is based on a continuously differentiable majorizer of .in contrast to salsa , the proposed method will converge when the objective function is not convex , because it is actually a special case of bsum .in other words , the proposed algorithm utilizes a gauss - seidel procedure to solve a majorization - minimization ( mm ) problem .this leads us to term the algorithm salma ( split augmented lagrangian majorization - minimization algorithm ) , which combines salsa and majorization - minimization methods .in this work , we use smoothed penalty function to induce sparsity , which is a smoothed version of in table [ tab : etea_penalty ] .it is defined as : where is the non - smooth penalty function satisfies the following properties :  1 . is continuous on . is twice continuously differentiable on . is even symmetric : . is increasing and concave on . , when .several typical examples of are given in table [ tab : etea_penalty ] .figure [ fig : fs_example_0_penalty](a - b ) gives two specific examples of in dashed line , and corresponding smoothed versions with in solid line .in this work , we use the smoothed penalty function instead of , because after the smoothing , the function is continuously differentiable on , and we can easily find the corresponding majorizer , where , and is quadratic in . in ref . , the same smoothed penalty functions are used and a detailed proof is given to show that when satisfies the above 5 conditions , the majorizer satisfies  [ eqn : fs_g_mm ]   figure [ fig : fs_example_0_penalty](c - d ) illustrates the majorizer of two penalty functions when . note that never goes to extrema ( i.e. ) if and are both finite .table [ tab : etea_penalty ] provides four examples of smoothed penalty functions . among all these functions ,only the first one ( ` abs ' ) is convex , and the rest are all non - convex . in, is not differentiable at , but is differentiable , and when , function , but preserving the differentiability at the origin . in practice, we recommend to set very small , e.g. .[ tab : etea_penalty ]   +   to estimate a sequence of oscillatory transients modeled by , through an optimization problem prototyped by , we further formulate the optimization problem explicitly as where , are stft coefficients , and the matrix here denotes the inverse short - time fourier transform operator .when a local optimal of problem is obtained , component ( periodic sequence of oscillatory transients ) in signal model is given by in problem , we defined the regularizer by function , {k_1,k_2 } [ c]_{m_1 + k_1 , m_2 + k_2}^2  \bigg]^{1/2 } ,   \end{aligned}\ ] ] which is similar to a 2-d convolution .note that is a two - dimensional binary - valued mask describing the group structure , which is to be determined beforehand by the time - frequency information of and the stft .we use to denote element - wise multiplication , so the function can be written as a weighted norm of a segment of stft coefficient , here denotes a segment of matrix , where the first element ( up and left ) is {m_1,m_2} ] . to overcome the computational cost , we use the matrix inverse lemma( see the formulation in appendix [ app : a ] ) ,  ^{-1 }     & = \frac{1}{\mu } \bigg\ { i  -  a^{{\mathsf{h } } } \big [ \mu i + a a^{{\mathsf{h } } } \big]^{-1 } a \bigg\ } \\     & = \frac{1}{\mu } \big [ i  -  \frac{1}{\mu+1}a^{{\mathsf{h } } } a \big],\end{aligned}\ ] ]  where since the operators and here are the forward and inverse stft , where , then the property holds . as a consequence ,equation  can be written as ,  [ eqn : fs_salma_1_b_solution_2 ] \big [ a^{{\mathsf{h } } } y + \mu ( u - d ) \big ] \\     & = \frac{1}{\mu}a^{{\mathsf{h } } } y + ( u - d )  -  \frac{1}{\mu(\mu+1 ) } a^{{\mathsf{h } } } y - \frac{1}{1+\mu } a^{{\mathsf{h } } } a ( u - d ) \\     & = ( u - d ) + \frac{1}{\mu+1 } a^{{\mathsf{h } } } \big[y - a ( u - d ) \big],\end{aligned}\ ] ]  which is equivalent to , but does not require solving a linear system in .using the results derived in and , which solve the problems and respectively , the algorithm has explicit solutions of each step ,  [ eqn : fs_salma_2 ]   \\c^{(i+1 ) }  & = ( u - d ) + \frac{1}{\mu+1 } a^{{\mathsf{h } } } \big[y - a ( u - d ) \big ]  \\d^{(i+1 ) }  & = d^{(i ) } - ( u - c ) .\end{aligned}\ ] ]  the entire algorithm to solve problem is summarized in table [ alg : main ] .note that although the variables in the algorithm are all 2-d complex - valued matrices , in fact this does not affect the feasibility of salma . in each step of the algorithm ( table [ alg : main ] ) ,the real and imaginary parts can be computed parallelly and separately , using real - valued expressions .more specifically , it is equivalent to implement the algorithm using 3-d matrices on , and each step leads to a same result .hence , salma ( theorem [ the : salma ] ) defined in real domain , is still valid to solve the problem ( see appendix [ app : b ] for more details ) .align * & c , u , d ^ m_1 m_2 , > 0 , + & + & _ m_1,m_2 = _ k_1 _ k_2 + & u = ( c + d ) ./+ & c = ( u - d ) + a^ + & d = d - ( u - c ) + & + & c , x = ac .+   +  +  +   +   +   +  +  +  +  we apply the proposed method to the simulated data illustrated in figure [ fig : fs_example_1_y](a ) .the simulated data is a 0.25 second signal with sampling rate  khz .we simulate the vibration features caused by fault as a transient containing two oscillation components at  khz and  khz .each transient lasts for about milliseconds with a random amplitude within a range , and the two oscillatory components in one transient have independently random initial phases .the detail of a simulated oscillatory fault is shown in figure [ fig : fs_example_1_y](a ) ( inside the dashed line box ) .the clean data shown in figure [ fig : fs_example_1_y](a ) is a sequence of the simulated faults with a period milliseconds .note that since each transient has a random phase , in figure [ fig : fs_example_1_y](a ) , each transient is different than the others .we add heavy noise to the test data , and the noisy signal is shown in figure [ fig : fs_example_1_y](b ) .  in this example , we set the stft to have a window size with window overlapping , and the length of fourier transform is .we can establish the block in problem by a condition of in using the periodicity information , where the length of one period in the stft domain is in this example , we set , and , and as a binary weight vector is spanning periods .hence , by , the size of binary weight block is .when using to express the block , consists of four blocks with ones and three blocks with zeros .figure [ fig : fs_example_1_cn_x ] shows the results obtained using the proposed method with convex ( smoothed -norm ) penalty function . figure [ fig : fs_example_1_cn_x](b ) is the stft coefficients achieved by solving problem , and figure [ fig : fs_example_1_cn_x](a ) is the estimated calculated from the stft coefficients in figure [ fig : fs_example_1_cn_x](b ) .the proposed method recovers the oscillatory transients at accurate time and frequency .although the amplitude of the estimated is slightly diminished , all the ` fault features ' ( transients ) are recovered at accurate locations , and in figure [ fig : fs_example_1_cn_x](b ) , a grid of sparse blocks is distributed at the correct frequencies ( about and khz ) . in this example , we set ( the method to select the parameters will be discussed in the following section ) .note that , similar to salsa , the proposed method requires a parameter which effects the convergence rate .we use several values of for this example , the comparison of convergence speed is shown in figure [ fig : fs_example_1_mu ] . through numerical experiments , we find that setting gives a reasonable convergence rate , not only in this example , but also for the applications illustrated in the following sections . to identify the frequency components , we sum the obtained stft spectrum over time , to obtain a frequency distribution in figure [ fig : fs_example_1_cn_x](c ) , where two peaks indicate the true oscillatory frequencies . meanwhile , the hilbert envelope spectrum of the estimated signal is illustrate in figure [ fig : fs_example_1_cn_x](d ) . the useful fault frequency ( inter - transient period ) and its harmonic components are clearly revealed in the hilbert envelope spectrum .  for comparison ,we utilize bandpass filtering .bandpass filtering is a conventional and effective method in fault diagnosis field to extract oscillatory features or emphasize specific frequency components , and is used in conjunction with some other techniques .for instance , in , the author uses bandpass filtering after removing detected harmonics , and in , the author demodulates vibration signals at characteristic frequency after using specially designed bandpass filters as pre - processing , and in , bandpass filtering is used as a pre - processing for a singular value decomposition ( svd ) based analysis . in this example , we use two third - order butterworth bandpass filters with center frequencies at  khz and  khz respectively with ` forward - backward ' zero - phase filtering , and the passband is about  hz for both filters . because the the passbands of the two filters do not overlap , we simply add the output signals from these two filters , and the result is shown in figure [ fig : fs_example_1_bp_x](a ) .this result shows that linear time - invariant ( lti ) filtering technique hardly recovers a zero baseline .moreover , although some transients with large amplitude can be visually distinguished in figure [ fig : fs_example_1_bp_x](a ) , it is hard to distinguish the transients with small amplitudes , e.g. , at about to second .furthermore , the result in figure [ fig : fs_example_1_bp_x](a ) is obtained by knowing the oscillatory frequencies exactly , but in practice , especially in the area of fault diagnosis , it is rarely possible . in this example , even though we use the accurate frequencies as prior - knowledge for the bandpass filters , the proposed method still attains a significantly better root - mean - square error ( rmse ) value .wavelet - based denoising has also been used to extracted fault features . in this example, we adopt a conventional wavelet - coefficient thresholding method to denoise the test signal .more specifically , a 5-scale undecimated wavelet transform with 3 vanishing moments is used , and the result is shown in figure [ fig : fs_example_1_bp_x](b ) . for denoising , we apply hard - thresholding and chose the threshold value by -rule for each subband . in figure[ fig : fs_example_1_bp_x](b ) , although some large amplitude transients can be recovered at correct locations , they lose the oscillatory structure , where most recovered transients have irregular waveforms [ see the cropped example inside the dashed line box in figure [ fig : fs_example_1_bp_x](b ) ] . in the time range from about to seconds , the transients are almost completely diminished .  as an application of fault diagnosis ,we apply maximum correlated kurtosis deconvolution ( mckd ) to the test data .this method deconvolves the signal from an estimated fir filter that maximizes the correlated kurtosis value locally .it requires the period of potential fault features . to proceed with the algorithm , we set the period length to be the true period ( 160 samples ) , and the fir filter length to be 100 , and the m - shift value to be 5 as suggested in the matlab implementation available online. the result of mckd is shown in figure [ fig : fs_example_1_mckd_x](a ) , where we found that the algorithm is not able to give a deconvolution result that properly indicates most of the fault features at the noise level of our test signal .when comparing to the noisy data in figure [ fig : fs_example_1_y](b ) , we can see the algorithm mistakenly promotes the impulsive features in noise .when we reduce the noise level , the algorithm is capable to properly indicate periodic fault features as promoted impulses after deconvolution . in figure[ fig : fs_example_1_mckd_x](b ) , we show an example of applying mckd to the data in figure [ fig : fs_example_1_y](b ) , but with a reduced noise level from to .non - convex penalty functions can be utilized to further enhance the effectiveness of our proposed formulation .when the objective function has a non - convex regularizer , the problem is generally non - convex , and when minimizing a non - convex function , the algorithm may get trapped in a local minima . to reduce this problem, we use the solution from the convex formulation to initialize the algorithm . through numerical experiments, we suggest a range of values for parameter , which controls the ` non - convexity ' of the penalty functions in table [ tab : etea_penalty ] , {k_1,k_2},\end{aligned}\ ] ] where is also the number of s when we restrict to be a binary block as .this range does not guarantee the problem is convex , but in practice , using the non - convex penalty regularizers in this range significantly enhances the result and gives a stable convergence behavior . to further reduce the problem of local minima, we can gradually increase the parameter to its maximum value .for instance , when the upper bound of is in , we can run the algorithm ( in table [ alg : main ] ) starting with obtaining a result with convex penalty function , and then run the algorithm with non - convex penalty function five more times initialized by previous iteration , gradually increasing by each time .this simultaneously helps to restrict the non - convex solution close to the convex solution and promote stronger sparsity .in this example , we use the arctangent function ( ` atan ' in table [ tab : etea_penalty ] ) , and the result is shown in figure [ fig : fs_example_1_x](a ) . there is a significant improvement reflected by the rmse value compared to the convex penalty function in figure [ fig : fs_example_1_cn_x ] . we also show the absolute value of stft coefficients in figure [ fig : fs_example_1_x](b ) , and the frequency component indication in figure [ fig : fs_example_1_x](c ) , where significant enhancement of sparsity can be seen . meanwhile , the hilbert envelope spectrum of estimated signals is illustrate in figure [ fig : fs_example_1_x](d ) .the useful fault frequency and its harmonic components are clearly detected in the hilbert envelope spectrum .   * setting stft parameters . * setting stft parameters .to use the proposed method , we suggest choosing a relatively small window length because , assuming the length of the periodic transient is unknown , a short window length can preserve the resolution of the time - frequency spectrum .moreover , in order to promote the sparsity effectively , the transform a should be over - complete .we suggest choosing the length of the fft for each window ( the value l in the examples ) 4 or 8 times the window length ( the value r in the examples ) .if is too large , it will affect the computation efficiency .in all the tests and examples , we consistently used the stft with a squared - sine window with 50 % overlapping .  * setting binary weighting grid . * presumably , other than the information of periodicity , any other facts about the oscillatory feature is not given in the proposed method . consequently , as a lower limit of grouping scheme , we can chose the grid on the time - frequency domain adhering , so that a neighboring coefficients on both time and frequency domain are considered . moreover , the value of , which is the number spanning in , has no specific limits , and in all tests and examples , we consistently set the value of to 4 or 8 .  * setting regularization parameter . * based on signal model, we assume the noise ( excluding the periodic oscillatory transients ) is white noise .consequently , when the observation is noise only as , the solution of problemn should be almost all zero . in this case , if the variance of noise is known , a signal with only noise can be built , and the regularization parameter in can be trained by letting through when .it is well - known that in most signal denoising methods using sparsity - based optimization the regularization parameter is proportional to the noise level , wherein the heavier the noise is , the larger regularization parameter should be utilized . through numerical experiments, we found that for problem , the optimal lambda is an approximately linear function of .moreover , it is certain that when there is no noise in the observation signal , should be 0 , therefore other than building a noise signal to select for , alternatively it is only necessary to determine a factor and set . for guidance, we provide a table as a reference to select at the variance of noise , under several typical settings of stft parameters ..factor for selecting , when fixing .[ cols="<,^,^,^,^",options="header " , ]   [ tab : fault_frequency2 ]this paper proposes an approach using structured sparsity in the stft domain to extract oscillatory features caused by faults in rotating machinery .we model the feature caused by a potential fault as a quasi - periodic sequence of oscillatory transients , where each transient may contain multiple consistent frequency components .the proposed approach uses smoothed ( convex or non - convex ) penalty functions to promote the sparsity of specially grouped stft domain coefficients in an optimization problem .this approach detects sparse and periodically distributed coefficients , and the periodically oscillatory fault features can be extracted . using the estimated stft coefficients ,the signature frequency of the fault feature can be directly observed due to the nature of sparsity in the time - frequency domain . to solve the proposed optimization problem efficiently , an iterative algorithm which combinesmajorization - minimization and split augmented lagrangian shrinkage algorithm has been illustrated .when the problem is not convex , this algorithm still converges to a local optimum .the effectiveness of the proposed approach is verified by simulation data , experimental data , and engineering data .the results demonstrate the notable effectiveness of the proposed approach in extracting transients for detecting faults in rotating machines .by introducing a variable and adding an equality constraint , we can split the variable , and then problem is equivalent to   this problem has an augmented lagrangian where , and .moreover , we assume that in is finite when are all finite , and the saddle point exists and should be finite .this implies that the saddle point is at least a local minimizer of problem .if function is continuously differentiable and majorizes [ is a upper - bound satisfying ] of , then a upper - bound of can be found as where is a upper - bound of , defined as note that , different to the algorithms proposed in , since the augmented lagrangian is also a function of the introduced multiplier [ denoted as in ] , bsum can be utilized directly , so that in satisfies the block - wise upper - bound conditions listed in , when vectorizing as a single variable .hence , bsum for three blocks ( table [ alg : bsum ] ) can be directly applied to find the stationary point of .moreover , since goes to extrema only when goes to extrema , bsum will converge to a non - extremal stationary point of , which is the saddle point ( see convergence analysis in ref . ) .  as a consequence, we can write the algorithm in table [ alg : bsum ] explicitly ` minimizing '  in , and it will converge to a saddle point of ,  [ eqn : bsum_salma_1 ]   where the step can be solved explicitly as   similar to salsa , we can reorganize the steps by introducing a variable , and then after simple variable substitutions ( same to change alm / mm version i to version ii in section ii of ref . ) , solving for turns out to be iteratively computing the steps illustrated in .the matrix inverse lemma has several forms .a common form is rewrite the algorithm into real value formulation , we consider the complex variables as an extended real value array , such that and correspondingly the original variable can be recovered by . additionally , to facilitate further derivations , we also define all the other complex variables into a formulation of real values , moreover , we also consider the short - time fourier transform operator and its inverse operator in into a formulation that works on real domain .we define is a operator working equivalently to when realigning as in , where and its inverse is to do the transform and then align the real and imaginary parts of the output , hence , the property is still persevered as . as a consequence , solving the problem sequence is equivalent to compute the following steps ,  [ eqn : fs_salma_1_real ]   \label{eqn : fs_salma_1_real_a } \\[0.8em ]     u^{(i+1 ) } = u_r^{(i+1 ) } + { \mathrm{i}}u_i^{(i+1 ) }   \end{array}\right .\\[0.4em ]   c^{(i+1 ) } =   & \left\ { \begin{array}{lr }   \displaystyle     \bar c^{(i+1 ) }  = ( \bar  u - \bar d ) + \frac{1}{\mu+1 } \bar  a^{{\mathsf{t } } } \big[y - \bar a ( \bar u - \bar  d ) \big ]  \\[0.8em ]     c^{(i+1 ) } = c_r^{(i+1 ) } + { \mathrm{i}}c_i^{(i+1 ) }   \end{array}\right .\\[0.4em ]   d^{(i+1 ) } =   & \left\ { \begin{array}{lr }   \displaystyle     \bar d^{(i+1 ) } = \bar  d^{(i ) } - ( \bar  u - \bar c ) \\[0.4em ]     d^{(i+1 ) } = d_r^{(i+1 ) } + { \mathrm{i}}d_i^{(i+1 ) }     \end{array}\right .\end{aligned}\ ] ]  where in is defined as {m_1,m_2,j }   = \sum_{k_1 = 0 } ^{k_1 - 1 } \sum_{k_2 = 0 } ^{k_2 - 1 } \frac { [ b]_{k_1,k_2}^2 } { \psi ( p(\bar v , b , m_1-k_1 , m_2-k_2 )  ) } ,   \quad \text{for } j = 1 , 2.\end{aligned}\ ] ] where ^{1/2}.\end{aligned}\ ] ] note that when comparing to , {m_1,m_2,j } = [ r ( v)]_{m_1,m_2 } , \quad \text{for } j = 1 , 2.\end{aligned}\ ] ]  therefore , each step of can be understood as computing corresponding real and imaginary parts as real values , and then recovering the corresponding complex results afterwards . when we denote the steps on complex domain as , it does not affect the independency of real and imaginary parts .hence , the convergence of using salma for this problem is ensured as each step solved on real domain with proper vectorization equivalently .b. chen , z. zhang , y. zi , z. he , and c. sun .detecting of transient vibration signatures using an improved fast spatial spectral ensemble kurtosis kurtogram and its applications to mechanical signature analysis of short duration data from rotating machinery . , 40(1):137 , 2013 .binqiang chen , zhousuo zhang , chuang sun , bing li , yanyang zi , and zhengjia he .fault feature extraction of gearbox by using overcomplete rational dilation discrete wavelet transform on signals measured from vibration sensors ., 33:275298 , 2012 .wangpeng he , yanyang zi , binqiang chen , feng wu , and zhengjia he . automatic fault feature extraction of mechanical anomaly on induction motor bearing using ensemble super - wavelet transform . , 54 - 55:457480 , 2015 .w jiang , s. k. spurgeon , j. a. twiddle , f. s. schlindwein , y. feng , and s. thanagasundram .a wavelet cluster - based band - pass filtering and envelope demodulation approach with application to fault diagnosis in a dry vacuum pump .221(11):12791286 , 2007 .                                   d. wang and q. miao .smoothness index - guided bayesian inference for determining joint posterior probability distributions of anti - symmetric real laplace wavelet parameters for identification of different bearing faults ., 345(0):250 266 , 2015 .

Abstract: this paper addresses the problem of extracting periodic oscillatory features in vibration signals for detecting faults in rotating machinery . to extract the feature , we propose an approach in the short - time fourier transform ( stft ) domain where the periodic oscillatory feature manifests itself as a relatively sparse grid . to estimate the sparse grid , we formulate an optimization problem using customized binary weights in the regularizer , where the weights are formulated to promote periodicity . in order to solve the proposed optimization problem , we develop an algorithm called augmented lagrangian majorization - minimization algorithm , which combines the split augmented lagrangian shrinkage algorithm ( salsa ) with majorization - minimization ( mm ) , and is guaranteed to converge for both convex and non - convex formulation . as examples , the proposed approach is applied to simulated data , and used as a tool for diagnosing faults in bearings and gearboxes for real data , and compared to some state - of - the - art methods . the results show the proposed approach can effectively detect and extract the periodical oscillatory features .


recently , heterogeneous networks ( hetnets ) are viewed as an attractive approach for expanding mobile network capacity , balancing the network load as well as alleviating the traffic burden .a hetnet is a mix of both overlaying macro cells ( mcs ) and underlying small low - power nodes ( lpns ) .mcs provide wide area data services .lpns are deployed within traffic hotspots , offloading part of the traffic volume from mcs .lpns are able to handle the growing geographical diversity of traffic and the increasing variation in local densities of user distribution . with the deployment of lpns, hetnets can be thereby viewed as a way of meeting traffic demands and performance expectations , particularly in situations where traffic is concentrated in hotspots , or areas that can not be suitably covered by mcs .  in a long term evolution ( lte )hetnet is that , cells using the same frequency band interfere with one another such that a load coupling model should be considered .we refer to the average level of usage of the time - frequency resource units as the load .one challenge is that a base station consumes a significant fraction of the total end - to - end energy .the cell load levels affect the sum transmission energy for serving user equipments ( ues ) , and is thereby a key aspect of resource optimization in lte hetnets . within this context, cell selection is a crucial aspect for system performance .each ue follows the rule of selecting the cell with the best received signal power plus an offset , which is a common cell parameter .a served ue may add the offset to its received power from a cell . then , the signal strength of the cell can be ` virtually ' amplified to be the best for the ue . thus the association between cells and ues are influenced by the cell coverage control mechanism .-1pt in the previous work ,the power adjustment algorithm is given for all base stations to achieve full load , thus optimizing the sum transmission energy .with the same load coupling model , provides a utility metric framework , where the utility function is maximized by optimizing the demand to be served . in , an optimization framework for load balancing in lte hetnetsis proposed , by means of cell range assignment using cell - specific offset . in this paper , we focus on the problem of minimizing the sum power used for transmission in lte hetnets , while maintaining a target quality - of - service ( qos ) for each ue . the approach is to implement cell range assignment as in , thus changing the association between ues and cells to achieve the minimal total energy consumption .our contributions are as follows.-10pt  1 .we propose a framework modeling lpn range optimization for hetnet energy minimization .we prove that , independent of the maximum power limit , operating at full load leads to minimum energy consumption .we consider the problem complexity , and prove its hardness .we propose an algorithm for offset optimization based on tabu search , for which we numerically demonstrate its effectiveness and performance improvement .-2pt  the paper is organized as follows . in section[ sec : sys_mod ] we introduce the hetnet and load coupling model . under the model, we formally define the optimization problem of minimum sum energy in section [ sec : optimization ] . in section [ sec : full_load ] , we prove the optimality of the full load independent of the maximum power limit .we then prove the problem is -hard .section [ sec : algorithm ] proposes the tabu - search algorithm for energy optimization via range assignment .section [ sec : numerical ] shows the numerical results .finally , the paper is concluded in section [ sec : conclusion ] . -6ptthe sets of mcs and lpn cells are denoted by and , respectively .let , and . the set of ues is denoted by .cell transmits with power per resource unit ( in time and frequency , e.g. , resource block in lte ) , where is the power limit for each resource unit of cell .notation represents the load of cell for data transmission , which is viewed as the portion of resource consumption of the cell .the network - wide load is given by the vector , ^{\mathsf{t}} ] . in vector form, we obtain the _ non - linear load coupling equation _( ) as in .-3pt -3pt we remark that the function is related to the cell - ue association , which is induced by the range assignment .also , there is dependence of the load on the demand and power .the equation can not be readily solved in closed - form , for that the load appears in both sides . however , for a target load , it is shown in that the power converges into a fixed - point solution in ( [ eq : nlce ] ) through an iterative process .given load vector , let  ] .to compute , we obtain the power sequence , e.g. , for cell , by the power adjustment algorithm proposed in .suppose we now reduce cell s load from to .then we obtain a new load - power pair ( , ) from ( , ) for cell . according to lemma 7 in , and .this will cause the interference originated from cell to any other cell to be greater . as a result ,the for cell to all its served ues will decrease .then the corresponding load of cell in equation ( [ eq : load ] ) will thereby increase , which is larger than the target load . to reach the target load , the power adjustment algorithm has to increase cell s power to a larger value . at this stage ,cell s interference to any other cell thereby increases .thus the power in cell will increase as well .the same process repeats for all the cells in the algorithm iterations .the network - wide power and load will converge to a fix point , as proved in lemma 1 in . at convergence , andthe lemma follows .suppose for any cell , , then and are optimal for energy minimization .[ thm : less_full ]  the optimality of the minimum demand is proved in .consider a problem variant of problem , where the power constraint ( [ eq : p0]b ) is relaxed to .for , the full load optimality is proved by theorem 1 in for any given user association . for the user association under the optimaloffset in , if the power solution for is less or equal than power limit  ] , + ( the optimal offset vector ) +    ; =  [ cols="^,^,^,^",options="header " , ]    =0 ]  ; ;  >0 ]   tso is given in algorithm 1 .we compute the optimal power vector for each offset , by using the iterative bi - section algorithm in .for any two neighbored solution vectors and , we denote the modification position between the two vectors as . in other words ,suppose and differ in the position , then .in line 1 , a feasible solution is randomly chosen at the beginning and is assigned to be the current best solution . in line 2 , the power at full load is computed . also , is the count parameter that records the number of steps within which the current best solution has not been improved .line 3 initializes the tabu table by setting all the positions to be zero .line 419 are the main loop that ends when the termination rule is triggered , i.e. , .the eligible neighbors set of the current solution vector is calculated in line 58 .then we choose the solution that achieves the minimal value of , as shown in line 9 . regarding for the variation , the modification position is given the tabu status in , shown in line 10 .we thereby get the corresponding power vector for in line 11 .line 1215 state the update rule for the best solution .if the new solution is better and satisfies the power constraint ( [ eq : p0]b ) , both and will be updated and the count variable will be set back zero , otherwise we increase by one . in line 1618, is refreshed , by decreasing all non - zero records by one . in line 19 ,the current solution vector is updated by , for the next iteration . when the termination rule is triggered , the best solution is returned , in line 20 .in this section , we numerically investigate the theoretical findings and evaluate performance in lte hetnets .-15pt  the network layout is illustrated in [ fig : network ] , where the numbers indicate the cell ids .there are 7 hexagonal serving cells , where the center is deployed with an mc ( cross marker ) . for each mc , we randomly place two lpn cells ( green triangles ) in the corresponding hexagon . there are 21 cells ( 7 mcs and 14 lpn cells ) in total .we generate 30 users ( blue dots ) for each mc ( and also for its two lpn cells ) .all the users are distributed randomly and uniformly in each area .the hetnet operates at 2 ghz .each resource unit follows the lte standard of 180 khz bandwidth and the bandwidth for each cell is 4.5 mhz .the power limit per resource unit for mcs and lpns are set to 200 mw and 50 mw , respectively .the noise power spectral density is set to -174 dbm / hz . the channel gain consists of path loss and shadowing fading , where the path loss follows the widely used cost-231-hata model and the shadowing coefficients are generated by the log - normal distribution with 8 db standard deviation .there are 11 offset levels for the lpn cells , as 0 db , 1 db , 2 db,,10 db . for tso , we set and .note that the offset value only affects the ue - cell association and has no effect on the real transmit power or interference .the sum energy for different cases appears to grow exponentially fast as demand increases in [ fig : plot1 ] . beyond some demand value, the user demand may not be satisfiable .one can observe in [ fig : plot2 ] that the power on each cell is far less than the power limit in the feasible solution .however , if we increase the user demand , then the power of a few cells may dramatically increase such that it will exceed the maximum constraint value . in this case, there is no solution to meet the demand target .thus the power in [ fig : plot1 ] is much lower than the maximum power constraint .-10pt  in [ fig : plot1 ] , we compare the optimized offset ( oo ) with zero offset ( zo ) and maximal offset ( mo , set to 10 db ) .we also show the scenario of no lpn ( nl ) as the baseline . in the experiments, oo achieves the lowest sum transmission energy among all the three cases . on average , the energy consumption for oo is about 31.9% lower than that for zo .when the demand is 550 kbps , the energy consumption for oo is about 48.5% lower than that for zo .the worst performance with lpns deployed is given by mo , since the transmit power for lpn cells are ` virtually ' amplified too large so that only a few ues are assigned to the mcs .[ fig : plot2 ] shows the transmission energy in each cell for zo and oo .the user demand is set to 550 kbps . for zo ,most users are served by mcs , so the majority of energy consumption is in mc 17 .specifically , for zo , the energy consumption is very high in mc 3 and 6 . in comparison ,energy consumption in both mc 3 and 6 are significantly reduced in oo .this is because some ues served by mc 3 and 6 are assigned to some lpns in oo .one can observe that the energy consumption in oo stays at the almost same level with zo in lpn cells . by using the optimized offset to lpns to adjust the cell - ue association ,the ues are assigned to more suitable cells . thus the overall performance is significantly improved .we proposed a load coupling optimization framework for sum transmission energy in lte hetnets via lpn range adjustment using cell - specific offsets . under the maximum power constraint, we proved that full load is optimal for energy minimization .we further provided the insight that the optimization problem is -hard . with the above theoretical properties , we proposed an algorithm tso for optimizing the range assignment . for a scenario of hetnet deployment , lpn range optimization achieved by tso leads to better sum transmission energythis work has been supported by the ec marie curie project mesh - wise ( fp7-people-2012-iapp : 324515 ) and the linkping - lund excellence center in information technology ( elliit ) , sweden .the work of the second author has been supported by the china scholarship council ( csc ) .x. zhang , z. su , z. yan , w. wang , `` energy - efficiency study for two - tier heterogeneous networks ( hetnet ) under coverage performance constraints , '' in _ mobile networks and applications _ , vol .567 - 577 , aug . 2013 .s. parkvall , a. furuskr and e. dahlman , `` next generation lte , lte - advanced or lte rel-10 is the next step in radio access technology , '' _ ericsson review 2/2010 _+ http://www.ericsson.com/news/101221_next_generation_lte_244218599_ci. siomina , a. furuskr , and g. fodor , `` a mathematical framework for statistical qos and capacity studies in ofdm networks , '' _ieee pimrc09 _ , sep .. k. majewski and m. koonert , `` conservative cell load approximation for radio networks with shannon channels and its application to lte network planning , '' _ aict10 _ , may 2010 .

Abstract: we consider the problem of transmission energy optimization via range assignment for low power nodes ( lpns ) in long term evolution ( lte ) heterogenous networks ( hetnets ) . the optimization is subject to the load coupling model , where the cells interfere with one another . each cell provides data service for its users so as to maintain a target quality - of - service ( qos ) . we prove that , irrespective the presence of maximum power limit or its value , operating at full load is optimal . we perform energy minimization by optimizing the association between user equipments ( ues ) and cells via selecting cell - specific offsets on lpns . moreover , the optimization problem is proved to be -hard . we propose a tabu search algorithm for offset optimization ( tso ) . for each offset , tso computes the optimal power solution such that all cells operate at full load . numerical results demonstrate the significant performance improvement of tso on optimizing the sum transmission energy , compared to the conventional solution where uniform offset is used for all lpns .


[ sec : intro ] image processing and analysis are fields of computer science whose objective is to enhance digital images and extract information from them  .this allows automatic or semi - automatic identification , classification or characterization of objects and patterns .some interesting applications are biometry systems ( e.g. fingerprint and iris recognition ) , satellite and microscope image analysis , diagnosis from medical images , and more .another example is special effect filtering , usually found in image manipulation software such as the gimp  or photoshop .a remarkable characteristic of this field is its overwhelming complexity .many image processing techniques are based on sophisticated mathematical and computational concepts , such as the fourier transform .all this is combined with deep biological , psychological and probabilistic principles underlying the way animals identify and recognize objects .this makes implementation a challenging ( frequently tedious ) task , specially with traditional languages such as c or fortran . as a consequence ,the area had been somewhat limited to a small community of scientists and programming experts .the difficulties involving the development of software in general and the advances in hardware power gave rise to a quite recent trend in programing  prototyping with interpreted , easy - to - use languages , such as python , perl , lua , and tcl / tk . different algorithms and solutions for a given problemare easily developed and validated using these environments .when a solution finally works as expected , the final application may be written in a traditional compiled language , such as c. many programmers also embed an interpreter in their final application , to reuse the large amount of functionality available in these environments without having to rewrite it all .  following this trend , the inherent complexity of scientific applications called for specific scripting technologies . among themis the popular ( and rather expensive ) matlab  , very widely used in science , engineering , and the industry .fortunately there are free software alternatives such as octave  , numerical python  , and scilab  the one we will be talking about in this paper .features common to all these numerical prototyping environments are convenient matrix manipulation enforced by a suitable language , as well as tools for scientific visualization , debugging , and a great ammount of easy - to - use libraries .they may be used interactively or programmed from a separate file ( the ` script ' or macro ) . in particular , they enable development of image processing applications with much less burden to the programmer . hence , these tools have in fact been the standard prototyping solutions in the field .scilab is a free software created at inria france for prototyping and numerical processing .it is much like matlab , and already has a rich set of functionalities .currently in version 5.4 , scilab have been widely used in unix - like systems .it has been adopted in many universities and companies around the world . given its features to assist numerical programming , as we just said , it has tremendous potential to be used for image processing , both educationally and as a prototyping language to develop and test solutions .as far as we know , currently neither octave or python match the richness and plain simplicity of scilab functionality for scientific computing and engineering .the following listing summarizes scilab s features and how they compare to matlab s :  * * expressive programming language * with similar syntax to matlab s , although not identical .it presents many sophisticated construct improvements over matlab , having relatively small drawbacks .moreover , operations are expressed in much the same way they are usually written mathematically , which enforces simplicity and organization . * * elaborate data structures : * polynomial , complex and string matrices , lists , linear systems , records ( tlists ) , and graphs . in these subjectsthere are significant improvements over matlab . ** graphical and scientific visualization library : * 2d , 3d , and animations . even though the graphical package is not as stable as matlab ,it is useful and complete . it has been continually improved and optimized .the gui itself has now been written in java , and looks and feels very similar if not better than matlab . ** modular structure : * scilab allows easy interfacing to fortran and c using dynamic linking . * * many sophisticated libraries : * * * * linear algebra * , including sparse matrices . * * * signal processing * with a comprehensive manual ; * * * statistics * * * * scicos * , a dynamic systems modeler and simulator , similar to matlab s simulink . * * * metanet * : graphs and networks , including a graphical editor * * * control * * * * simulation and modeling * : ode solver , etc . * * *optimization * ( differential and non - differential ) * * * interface with symbolic algebra * packages such as maple * * * interface with tcl / tk * , useful for building gui s * * * lmi optimization * ( linear matrix inequalities ) * * * many contributed libraries : * genetic algorithms , neural networks , plotting enhancements , other numerical methods , and , of course , image processing .scilab s potential for imaging and its maturity under gnu / linux systems motivated the creation of sip the scilab image processing toolbox  .sip extends scilab with many routines to deal with image files and analyze them .examples of its main features are :  * * functions to read and write many image formats .* almost 100 major formats are supported , including jpeg , png , bmp , gif , and tiff due to the underlying imagemagick library  . ** filters : * gaussian blurring , median , laplacian , artistic effects , de - noising by min - max curvature flow . ** edge detection : * sobel , fourier derivatives , canny . * * geometric transforms : * rotation , zoom , shearing , and general affine . ** image segmentation : * watersheds , adaptive thresholding . ** mathematical morphology : * dilation , erosion , thinning , etc . , using state - of - the - art euclidean algorithms for circular structuring elements . * * shape analysis : * perimeter , border tracking , state - of - the - art fast skeletonization with multiscale pruning , curvature , state - of - the - art euclidean distance transforms  ( including fast distance transforms up to a given distance ) , fractal dimension . ** enhancement : * histogram equalization , contrast manipulation . * * other operators : * hough transform , noise generation , image display , interferometry operations ( e.g. phase unwrapping ) , etc . ** it s fast : * heavier operations are implemented in c language , allowing for efficiency .many operations use state - of - the - art efficient algorithms , some of which are so new or advanced as to be absent in most if not all proprietary image analysis software . * * it s well documented : * every function has a help page containing its reference and a practical example . * * it s free : * general public license ( gpl ) . * * it s easy : * useful for fast programming and experimentation .all these tools can be easily used interactively or from scilab scripts , even though some would extremely complex to implement from scratch .thus , a programmer without specialized knowledge may readily experiment with different techniques to solve his particular problem .  in this paperwe show how to use sip / scilab and demonstrate their benefits through a hands - on approach .the examples will show how complex operations seem approachable under the expressiveness of the environment .rather than worrying about a single imaging operator , the focus is shifted to the concatenation of various operators into a useful solution .we start with brief directions on how to install scilab under linux and present a tutorial introduction to it .we then show how to install sip and use it in three practical problems from image analysis and processing : edge detection , ocr , and separation of overlapping blood cells .the last two illustrate techniques like noise removal , skeletonization , and object segmentation .to build a special version of scilab by compiling the sourcecode , the user must have all development packages installed in the system ( gcc and gfortran compilers , and so on ) .after downloading and unpacking the source tarball , one types the following inside scilab s directory :  ....      make all     scilab ....  one may enter commands in the scilab window , as shown in the following section .there is an important add - on toolbox called `` enrico '' which greatly enhances scilab s graphical capabilities .it is very simple to install , and may be downloaded at : http://www.weizmann.ac.il/ fesegre / scistuff.html  the user must unpack it , start scilab , then type :  .... -- > exec ' /path / to / enrico / builder.sce ' ; ....  this compiles the toolbox .the user may now load it :  .... -- > exec ' /path / to / enrico / loader.sce ' ; ....  this command may be placed in the `` .scilab '' file to load it automatically whenever one enters scilab . in section [ sec : blobs ] we show how to render a 3d surface using this toolbox ( see figure [ fig : cells : dt ] ) .in this section we present some examples to illustrate the ease of doing programming and calculations with scilab .we hope to attest its particularly great potential for programming and for developing image analysis solutions .initially , we use scilab in interactive mode .commands are typed and executed directly in scilab s shell .a vector is created like this :  .... -- > a = [ 1 2 3 4 ]  a  =  !  1 .   2 .   3 .   4....  user commands are typed at the `` > ` ' prompt ; scilab s responses have no preceding prompts .to define a column vector , we use commas :  .... -- > a = [ 1 ; 2 ; 3 ; 4 ]  a  =  !  1 . ! !  2 . ! !  3 . ! !  4 . !this same vector could have been created using the ` : ' ( colon ) operator :  .... -- > a = 1:4  a  =  !  1 .   2 .   3 .   4 . ! ....matrices are also very simple to define , as shown below :  .... -- > a = [ 1 2 ; 3 4 ]  a  =  !  1 .   2 .scilab have convenient operators for naturally manipulating matrices . for instance , to obtain the trasposed matrix of :  .... -- >b = a '  b  =  !  1 .   3 . ! !2 .   4 . !....  in this other example, we perform matrix multiplication of and :  .... -- > c = a*b  c  =  !  5 .   11 . !!  11 .   25 . !scilab also has many functions readily available for usage .below we calculate the determinant of :  .... -- > d = det(c )d  =    4 . ....in addition to the simplicity of operating with arrays , there are many other mathematical functions , as well as visualization facilities .we will now show this by a simple example about the fourier transform .  as the first step , we create a vector by summing three sampled cosines :  .... -- > a  = 1:32 ;  // an array with 32 elements ( 1 to 32 ) .-- > c1 = cos(a/10 ) ;  -- > c2 = cos(a/2 ) ; -- > c3 = cos(a/6 ) ; -- > c  = c1 + c2 + c3 ; ....  now we plot the vectors .we ll use a simple function called ` plot ` for this , together with the command ` subplot ` to divide the graphical window .the commands below yield figure [ fig : plotsins ] .  .... -- >subplot(2,2,1 ) , plot(c1 ) ; -- >subplot(2,2,2 ) , plot(c2 ) ; -- >subplot(2,2,3 ) , plot(c3 ) ; -- >subplot(2,2,4 ) , plot(c ) ; ....  we will now apply the fourier transform to the vector ` c ` , using function ` fft ` from the signal processing toolbox .notice how simple it is :  .... -- >hc = fft(c,-1 ) ; ....  observe that the second parameter indicates the sign of the transform s exponent it s not the inverse transform .vector ` hc ` is made of complex numbers representing the result of the ` fft ` applied to ` c ` .to see the results of the transform , lets use ` plot ` .since a complex vector is composed of real and imaginary parts , we use the functions ` real ` and ` imag ` to return the real and imaginary components of the array .figure [ fig : realimag ] shows the plots of the real and imaginary parts of ` hc ` .  .... -- > subplot(1,2,1 ) , plot(real(fftshift(hc ) ) ) ; -- > subplot(1,2,2 ) , plot(imag(fftshift(hc ) ) ) ; ....  to finish this example , we perform the inverse fft and compare the result with the original vector :  .... -- > fc = fft(hc,1 ) ; -- >subplot(1,2,1 ) , plot(fc ) ; -- >subplot(1,2,2 ) , plot(c ) ; ....the previous example shows how scilab is really an easy and powerful for numerical programming and array manipulation. it would be great to use scilab s power and convenience to process digital images , since any image is an array of pixels . to do this ,the sip ( scilab image processing toolbox ) was created ( cf . section [ sec : intro ] ) .it extends scilab with functions to read and write images stored in almost any popular format ( over 80 ) , including png , jpeg , bmp , and tiff .sip also provides a rich set of ready - to - use operations for digital image enhancement and analysis , useful for many practical problems .it is straightforward to install sip under linux .binary packages are provided for intel pentium and compatible processors . to install them ,the user first downloads and unpacks the tarball . inside scilab ,one types :  ....  ./configure --enable - shared      make install      ./configure      make install      ./configure      make install ....  sip is by default installed under scilab s directory at `` contrib / sip ` ' . nowthe toolbox may be loaded just like the binary version .alternatively , one may type :  ....      exec(sipdemo ) ; ....  which shows the basics of image structure and manipulation .to read an image into a scilab variable , one must type , for example :  .... -- > i m = imread('myimage.png ' ) ; ....  for grayscale or truecolor images . or  .... -- >[ im , map ] = imread('myimage.png ' ) ; ....  for pseudocolor images .the file format is automatically detected . from now on the image is in memory , stored as an array of pixels .we call _ grayscale _ those images represented as a 2d array with values from to  . _truecolor _ images are made of three grayscale images , one for each channel ( red , green and blue ) , represented in a 3d array ._ pseudocolor _ images , also known as paletted or indexed images , are made of two arrays : index and map .the map is an array with colors , while the index array is a 2d array whose entries point to a color in the colormap .further details are in the introductory demo that comes with sip .  to show a truecolor or grayscale .+  to find the edges , we use the `` edge '' command :  .... -- > b = edge(a,'sobel',0.15 ) ;   -- > imshow(b,2 ) ; ....  the parameters means to find edges using the sobel filter and a threshold at intensity level .figure [ fig : edges ] shows the result of this technique .another common operation with images is rotation and scaling .the ` mogrify ` command wraps many functionalities from the imagemagick library , and may be used to rotate the image .we must first put the image in the  range , because mogrify and other routines such as imwrite assumes 16bit graylevels .we just multiply the image by , since :  .... -- > a = a*257 ;  // normalizes image to 0 - 65535 range -- > c = mogrify(a , ' -rotate 30 ' ) ;  //rotates 30 degrees -- > imshow(c , [ ] ) ;  // "[ ] " stands for  rescaled  ....figure [ fig : rotated ] shows the color image rotated in 30 degrees clockwise . to rotate the color image ,the same steps may be repeated to each image channel .let us now move on to more interesting operations . figure [ fig : ocr : a ] shows an image of the letter a. to follow this example , the input image can be obtained from the following address :  ` http://siptoolbox.sourceforge.net/tutorial/images/a.png `  read the image with the following commands :  ....  a = imread('a.png ' ) ;  a = im2gray(a ) ;   // converts to grayscale  imshow(a ) ; ....   +  +  let us show a sequence of operations to help the computer recognize this letter . as the input , we have a noisy image , typically obtained from cheap ccd s .we first gaussian - blur  the image as to filter out the low - scale noise and leave our letter ` a ' in clear evidence :  ....  b = gsm2d(a,2 ) ;  //gaussian smoothing with sigma = 2  imshow(b , [ ] ) ;   // the [ ] parameter rescales b to 0 - 1 ....  this is shown in figure [ fig : ocr : smooth ] .we may now perform thresholding with ease :  ....  c = im2bw(b,0.8 ) ; //threshold at the 80% level  imshow(c,2 ) ;   // figure ( c ) ....  as shown in figure [ fig : ocr : bin ] .this a much simpler representation for the letter a , with only two intensities. however , we can make it even simpler .the width of the letter is of no use to recognize it , so let us filter it out .we do this using a skeletonization algorithm , which finds a medial line of a given shape . in sip, there is a novel fast implementation of a useul skeletonization algorithm  which is extremely easy to use :  ....  c = 1 - c ;      // inverts the image  t = skel(c ) ; ....  the image ` t ' contains skeletons in every level of detail .we select the level of detail for our application by thresholding this variable :  ....  d = im2bw(t , 0.1 ) ;  // threshold at the 10% level  imshow(d,2 ) ;     // figure ( d ) ....  we now have a thin representation for ` a ' ( figure [ fig : ocr : skl1 ] ) , but there are unwanted spurs in the image . to filter them out ,select a higher threshold :  ....  d = im2bw(t,0.5 ) ;  // threshold at the 50% graylevel  imshow(d,2 ) ;     //figure ( e ) ; ....  this a clear - cut representation for the shape of the letter ` a ' ( figure [ fig : ocr : skl2 ] ) .it is now straightforward to make some measures on this shape in order to characterize it , a process called `` feature extraction ''  .the computer can recognize the object as a letter a by doing statistics on these measures or by applying techniques from artificial intelligence and machine learning such as neural networks .some measures useful to characterize the shape is the number of holes , the width - to - height ratio , orientation of the branch points , and more  .[ sec : blobs ] another task frequently found when solving practical problems is the automatic separation of overlapping objects .suppose we have an image of many round or oval objects , such the a microscope image of blood cells .if we want to count the number of cells , there are problems with cases such as in figure [ fig : blood ] , with two overlying blood cells .they must count not as one , but two .+  the input image is downloadable at :  ` http://siptoolbox.sourceforge.net/tutorial/images/cells.png `  start by reading the image and threshold it :  ....  a = gray_imread('cells.png ' ) ;  // reads in grayscale  imshow(a ) ;  b = im2bw(a , 0.9 ) ;  imshow(b,2 ) ; ....  figure [ fig : cells : bin ] shows the result .we now calculate the distance transform of the inverse  = size(d ) ;  figure(2 ) ; // use another window  setcmap ( ) ;     // chose the ' hot ' colormap  set(gcf(),'pixmap',1 ) ;  // double - buffering mode ( faster )  shadesurf2(1:nrows , 1:ncols , d * 200 ) ; // comp .the surface  xset('wshow ' ) ;  // shows the surface ....  you may click on the button 3drot. to rotate the surface .the above commands render the distance transform as a surface ( figure [ fig : cells : dt ] ) .the higher the surface , the greater the distance of the corresponding pixel to the image background .note that the peaks of the distance transform are in the middle of each blob .the idea is to run watershed segmentation  using those peaks as markers . for this , complement the distance transform so that the peaks become minima :  .... d = 1-d ; ....  apply a slight median filter  to eliminate spurious minima :  .... dm = mogrify(d,['-median','2 ' ] ) ; ....  force pixels that do nt belong to the objects to be at zero distance :  .... dm = dm . *b ; ....  and finally perform watershed segmentation :  .... w = watershed(dm ) ; clf ; imshow(w , rand(10,3 ) ) ;  // use 10 colors at most ....  variable w is an image with a unique number for each watershed region .the imshow with a random colormap displays each region with a unique arbitrary color .note how the regions were correctly separated by watershed , except for the hardest cases .we can use this procedure for automatic counting objects in an image with many cells , and it s robust to overlaps .this is specially useful to deal with bigger images at a large scale .  if the image had many cells , by the same procedure it would be straightforward to count the regions :  ....n = maxi(w ) - 1 ;  // subtract 1 for background ....scilab and sip constitute a powerful and easy - to - use environment for rapid development of image processing solutions .the expressiveness of the scilab interpreted language allows image manipulation in a natural way . together with the sip toolbox , we showed how simple it is to carry out complex operations such as the fft , watershed segmentation , and multiscale skeletonization , in this environment .  as authors of the sip toolbox, we attest that the free software  model an open source model  which is guaranteed to always remain free has been essential to its development and success .first of all , the wide visibility of any free software easily sustains its development after once it is born .the feedback provided by direct contact with users and many co - developers also copes for the stability and usability of the toolbox .furthermore , all the third - party packages used by sip are open source : external libraries such as imagemagick , animal and opencv , as well as scilab itself .this provides an excellent development environment , where any bugs in the third - party components may be reported directly to their authors , or even fixed by ourselves without bureaucracy .in addition , the community benefits a lot .many scientists have replaced expensive proprietary software even big companies ca nt afford .they also benefit from the sourcecode of many algorithms , by studying , evaluating and comparing them .there is a clear demand in the computer vision community for software packages like sip .currently there is no other free software that provides easy scripting for image analysis together with the advanced techniques available in sip .the number of supported file formats supersedes many proprietary software , such as matlab . as a consequence ,many people in universities and some industries have been using sip , specially researchers and image processing students .the toolbox has reportedly been used in countries such as germany , usa , brazil , greece , and france .                   p. soille and l. vincent , `` watersheds in digital spaces : an efficient algorithm based on imersion simmulations , '' _ ieee trans . on pattern analysis and machine intelligence _, vol . 13 , no . 6 , pp .583598 , 1991 .

Abstract: this paper is an overview of image processing and analysis using scilab , a free prototyping environment for numerical calculations similar to matlab . we demonstrate the capabilities of sip the scilab image processing toolbox which extends scilab with many functions to read and write images in over 100 major file formats , including png , jpeg , bmp , and tiff . it also provides routines for image filtering , edge detection , blurring , segmentation , shape analysis , and image recognition . basic directions to install scilab and sip are given , and also a mini - tutorial on scilab . three practical examples of image analysis are presented , in increasing degrees of complexity , showing how advanced image analysis techniques seem uncomplicated in this environment .