Reference of all functions of Siglab - panel B functions.

These functions are generation, buffer related and complex functions.
The buffer is a memory place where you can store values for further use.

Buttons Shortcut Result and Explanation
  
  copy a signal part to the buffer. When clicking on this button, the following dialog appears :

You select from the combobox, the signal from which you wish to copy. You select or type the abscisse of first and the last point copied. As usual, if you try to copy a portion of the signal that is not in memory, it will not work.
  
  Create a new signal with the content of the buffer.
  
  This one is funny. %a is the abscisse. Here y=x. You may think that it has no use, but you are wrong. Each time, you wish to generate a signal, it is very useful.
You want to create a sinusoide : sin ( 2 * %pi * %a / 100 ) (period of one hundred point). All generated signals make an extensive use of %a. They are poor formulas around this animal.
  
  you get a graphical dialog allowing you to generate different signals (square, triangle, sinusoide, complex sinusoide, dirac, ramp, constant, sery of dirac).


Square signals


if modulo(x+phase,period) < (period*cyclique)
y=max
else
y=min
In other terms, if you need something precise, try. It allows also to have dirac series (we speak of "peigne de Dirac" in french, but I am sure that Dirac had not a single remaining hair).

Triangle signal


During cycle portion of the period, it raises from moyenne-amplitude/2 to moyenne+amplitude/2. During the rest of the period it goes down the other direction.
if (modulo(x+phase,period))<(period*cyclique)
y=(modulo(x+phase,period)/period/cyclique-0.5)*amplitude+mean_value
else
y=mean_value-amplitude*((modulo(x+phase,period)/period-cyclique)/(1-cyclique)-0.5)

Sinusoidal signal


While for other signals, the phase is in points, here it is absolute ; 2*PI will introduce a full period.
y=mean_value+amplitude*sin(2*%pi*x/period+phase)

Complex sinusoide


y=mean_value+amplitude*exp(%i*2*%pi*x/period+phase);

Ramp


y=a*x+b
Basically, it is the graphical interface above something trivial to do directly with siglab. Really a function for lazy boys (mail to me, we will create a club).

Dirac


Generate a impulse at the abscisse given between the maximum and the minimum value.

Sery of Dirac


Generate impulses each period between the maximum and the minimum value. The first impulse is at the abscisse given in phase.

Constant signal


Generate a constant signal y=c .

IMPORTANT REMARKS :

  • these functions are formulas over the abscisse value. The generated functions are then available anywhere. If you generated a sinusoide and place your cursor at the point 10000000, you will have a signal.
  • However, I needed to give a length to these values for a reason or another. Then, normally it is the length of the first signal. It does not matter, as you may go after the length of the signal. If this is the first signal used, I force a length of 10000.
  
  There is a window function in a scilab. It gives you a window either rectangular, triangular, Hamming, Hanning, Kaiser or Chebichev. I had an empty button and then implemented it.


Rectangle, triangle, Hamming and Hanning window have the same parameters :

  • the abscisse of the first point,
  • the width of the window.


Kaiser window has a parameter : beta. I suppose it means something for those who know. You may find information in the window command documentation of scilab.



Chebichev window has 2 parameters : main lobe width and side lobe height. There are restrictions on the values ( main > 0, and 0< lobe < 0.5). I never succeeded to generate any signal with chebichev. You are warned.


  
  With noise generation, it is possible to generate an uniform noise, a gaussian one or a random serie of bits. Noise generation corresponds to the generation of values. It is not a function. Hence, the first point and the width (the number of points) that will be generated will always be asked. The values are then stored in a matrix. This kind of signal are called "matrix file". They are treated as a file, except that the values are in memory. It is only possible to apply delays to matrix file signals.

Uniform noise


Parameters are the following :
  • first point : the abscisse of the first point of the noise,
  • width : the nber of samples that is generated,
  • amplitude : the amplitude of the noise,
  • mean : the average value of the noise.

Gaussian noise


Parameters are the following :
  • first point : look at uniform noise above,
  • width : look at uniform noise above,
  • variance : the variance,
  • mean : the average value.

I used the following formula :

y = mean + variance * gaussian random signal(with 0 mean, and variance 1)

Complex uniform noise


Parameters are the same as those of a uniform noise. The real part is a uniform noise with an amplitude the amplitude which is given divide by sqrt(2) and a mean the real part of the mean given. The imaginary part is a uniform noise with an amplitude the amplitude which is given divide by sqrt(2) and a mean the imaginary part of the mean given.

Complex gaussian noise


Parameters are the same as those of a gaussian noise.
In fact 2 noises are generated one for the real  and one for the imaginary part, and then both are added. The variance is treated as being the amplitude, and is then stored in the 2 signals.

Random bits


Parameters are the following :
  • first point : look at uniform noise above,
  • width : look at uniform noise above,
  • bit width : the nber of samples used for representing a bit.
  • proba of 0 : the probability of having 0

Values of bits will be 0, 1. If you wish to have other values for 1 and 0 just do operations on this signal.

  
  Filtering of a signal. The filter coefficients are in the buffer memory. You will only filter the signal which is visible in the graphic window and nothing else. The result is a new memory file signal.

The parameters are the following :
  • Abs or Rel : the first point in the buffer was taken at a given abscisse (for example 1000). Abs means that the coordinates that are provided under are related to the real abscisse of the point. Rel, means the first point value will be related to the buffer. So 1 will mean the first point of the buffer, whatever is its real abscisse. In 99% of the cases, you will choose relative. (I wonder if I should not remove the abs option).
  • first point : the first point of the buffer (please look on abs or rel explanation to know what that means) that will be used as the first filter point.
  • width : the width of the filter.
  • Signal 2 : the signal on which the filter will be aplied.

  
  Filtering of a signal in using part of another one as a filter. The filtering is only done on the Signal 2 portion which is displayed. The result is a matrix file signal.

The parameters are the following :
  • Filter : the signal to be used as a filter,
  • First point : the abscisse of the first filter point,
  • Width : the width of the filter,
  • Signal 2 : the signal on which the filtering will be applied.

  
  fft of a part of a signal

A fft is applied on the signal choosed in the combobox between the value start and end,with a width 'width fft'. The window type applied is chosen from the Window combobox. The choices are the window ones : rectangular, triangular, Hamming, Hanning, Kaiser, Chebichev.

  
  inverse Fast Fourier (préfet de l'Isère) Transform on a part of signal.
As with fft, a window may be applied to the signal.
  
  Correlation between 2 signals

Allow to process the correlation of 2 signals. The parameters are the following :
  • Signal 1 : first signal,
  • First point : abscisse start of the correlation,
  • Width : width of the correlation,
  • Signal 2 : second signal,
  • Correlation coefficients nber : nber of correlation coefficient that will be put in the result signals.

Please refer to the correlation man page of scilab to learn more.

  
  Convolution of 2 signals.

Convolution of 2 signals. The user interface allows to choose the 2 signals. The convolution is done on the signal portions that are displayed in the graphic window.

   05/03/2000   SigLab