summaryrefslogtreecommitdiff
path: root/modules/signal_processing
diff options
context:
space:
mode:
authorShashank2017-05-29 12:40:26 +0530
committerShashank2017-05-29 12:40:26 +0530
commit0345245e860375a32c9a437c4a9d9cae807134e9 (patch)
treead51ecbfa7bcd3cc5f09834f1bb8c08feaa526a4 /modules/signal_processing
downloadscilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.tar.gz
scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.tar.bz2
scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.zip
CMSCOPE changed
Diffstat (limited to 'modules/signal_processing')
-rwxr-xr-xmodules/signal_processing/.libs/libscisignal_processing-algo.abin0 -> 536606 bytes
l---------modules/signal_processing/.libs/libscisignal_processing-algo.la1
l---------modules/signal_processing/.libs/libscisignal_processing.la1
-rwxr-xr-xmodules/signal_processing/.libs/libscisignal_processing.lai41
l---------modules/signal_processing/.libs/libscisignal_processing.so1
l---------modules/signal_processing/.libs/libscisignal_processing.so.51
-rwxr-xr-xmodules/signal_processing/.libs/libscisignal_processing.so.5.5.2bin0 -> 435048 bytes
-rwxr-xr-xmodules/signal_processing/Makefile1747
-rwxr-xr-xmodules/signal_processing/Makefile.am130
-rwxr-xr-xmodules/signal_processing/Makefile.in1747
-rwxr-xr-xmodules/signal_processing/demos/arma/arma1.dem.sce60
-rwxr-xr-xmodules/signal_processing/demos/arma/arma2.dem.sce35
-rwxr-xr-xmodules/signal_processing/demos/arma/arma3.dem.sce58
-rwxr-xr-xmodules/signal_processing/demos/bode.dem.sce60
-rwxr-xr-xmodules/signal_processing/demos/conv.dem.sce40
-rwxr-xr-xmodules/signal_processing/demos/conv2.dem.sce43
-rwxr-xr-xmodules/signal_processing/demos/iir.dem.sce32
-rwxr-xr-xmodules/signal_processing/demos/iirfilt.dem.sce38
-rwxr-xr-xmodules/signal_processing/demos/image.datbin0 -> 844840 bytes
-rwxr-xr-xmodules/signal_processing/demos/remezfilt.dem.sce64
-rwxr-xr-xmodules/signal_processing/demos/signal_processing.dem.gateway.sce30
-rwxr-xr-xmodules/signal_processing/demos/spect.dem.sce78
-rwxr-xr-xmodules/signal_processing/demos/wiener.dem.sce99
-rwxr-xr-xmodules/signal_processing/demos/winfilt.dem.sce65
-rwxr-xr-xmodules/signal_processing/etc/signal_processing.quit12
-rwxr-xr-xmodules/signal_processing/etc/signal_processing.start13
-rwxr-xr-xmodules/signal_processing/help/en_US/addchapter.sce11
-rwxr-xr-xmodules/signal_processing/help/en_US/cepstrum.xml67
-rwxr-xr-xmodules/signal_processing/help/en_US/conv.xml140
-rwxr-xr-xmodules/signal_processing/help/en_US/conv2.xml161
-rwxr-xr-xmodules/signal_processing/help/en_US/convol2d.xml88
-rwxr-xr-xmodules/signal_processing/help/en_US/detrend.xml108
-rwxr-xr-xmodules/signal_processing/help/en_US/fft2.xml100
-rwxr-xr-xmodules/signal_processing/help/en_US/fftshift.xml112
-rwxr-xr-xmodules/signal_processing/help/en_US/filt_sinc.xml58
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/CHAPTERS2
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/analpf.xml220
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/buttmag.xml61
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/casc.xml48
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/cheb1mag.xml88
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/cheb2mag.xml97
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/convol.xml144
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/ell1mag.xml93
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/eqfir.xml65
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/eqiir.xml123
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/faurre.xml82
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/ffilt.xml87
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/filter.xml135
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/find_freq.xml64
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/frmag.xml117
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/fsfirlin.xml104
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/group.xml100
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/iir.xml163
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/iirgroup.xml66
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/iirlp.xml75
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/kalm.xml189
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/lev.xml73
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/levin.xml184
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/lindquist.xml95
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/remez.xml144
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/remezb.xml159
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/srfaur.xml106
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/srkf.xml82
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/sskf.xml95
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/syredi.xml167
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/system.xml108
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/trans.xml163
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/wfir.xml89
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/wiener.xml252
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/wigner.xml96
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/window.xml296
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/yulewalk.xml103
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/zpbutt.xml57
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/zpch1.xml67
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/zpch2.xml74
-rwxr-xr-xmodules/signal_processing/help/en_US/filters/zpell.xml80
-rwxr-xr-xmodules/signal_processing/help/en_US/frfit.xml110
-rwxr-xr-xmodules/signal_processing/help/en_US/hilbert.xml83
-rwxr-xr-xmodules/signal_processing/help/en_US/howto/CHAPTER1
-rwxr-xr-xmodules/signal_processing/help/en_US/howto/DesignEllipticFilter.xml290
-rwxr-xr-xmodules/signal_processing/help/en_US/identification/CHAPTERS1
-rwxr-xr-xmodules/signal_processing/help/en_US/identification/lattn.xml129
-rwxr-xr-xmodules/signal_processing/help/en_US/identification/lattp.xml88
-rwxr-xr-xmodules/signal_processing/help/en_US/identification/phc.xml105
-rwxr-xr-xmodules/signal_processing/help/en_US/identification/rpem.xml300
-rwxr-xr-xmodules/signal_processing/help/en_US/ifftshift.xml93
-rwxr-xr-xmodules/signal_processing/help/en_US/miscellaneous/CHAPTERS2
-rwxr-xr-xmodules/signal_processing/help/en_US/miscellaneous/bilt.xml101
-rwxr-xr-xmodules/signal_processing/help/en_US/miscellaneous/sincd.xml48
-rwxr-xr-xmodules/signal_processing/help/en_US/mrfit.xml107
-rwxr-xr-xmodules/signal_processing/help/en_US/spectral_estimation/CHAPTERS1
-rwxr-xr-xmodules/signal_processing/help/en_US/spectral_estimation/corr.xml243
-rwxr-xr-xmodules/signal_processing/help/en_US/spectral_estimation/cspect.xml342
-rwxr-xr-xmodules/signal_processing/help/en_US/spectral_estimation/czt.xml92
-rwxr-xr-xmodules/signal_processing/help/en_US/spectral_estimation/intdec.xml65
-rwxr-xr-xmodules/signal_processing/help/en_US/spectral_estimation/mese.xml105
-rwxr-xr-xmodules/signal_processing/help/en_US/spectral_estimation/pspect.xml359
-rwxr-xr-xmodules/signal_processing/help/en_US/transforms/CHAPTERS2
-rwxr-xr-xmodules/signal_processing/help/en_US/transforms/dct.xml443
-rwxr-xr-xmodules/signal_processing/help/en_US/transforms/dst.xml363
-rwxr-xr-xmodules/signal_processing/help/en_US/transforms/fft.xml426
-rwxr-xr-xmodules/signal_processing/help/en_US/transforms/hank.xml89
-rwxr-xr-xmodules/signal_processing/help/en_US/transforms/hilb.xml88
-rwxr-xr-xmodules/signal_processing/help/en_US/wfir_gui.xml114
-rwxr-xr-xmodules/signal_processing/help/en_US/xcorr.xml244
-rwxr-xr-xmodules/signal_processing/help/en_US/xcov.xml246
-rwxr-xr-xmodules/signal_processing/help/fr_FR/addchapter.sce11
-rwxr-xr-xmodules/signal_processing/help/fr_FR/ifftshift.xml93
-rwxr-xr-xmodules/signal_processing/help/fr_FR/transforms/fft.xml473
-rwxr-xr-xmodules/signal_processing/help/images/analog_elliptic_filter.pngbin0 -> 7186 bytes
-rwxr-xr-xmodules/signal_processing/help/images/analog_filtered_noise.pngbin0 -> 9775 bytes
-rwxr-xr-xmodules/signal_processing/help/images/analog_filtered_noise_csim.pngbin0 -> 9712 bytes
-rwxr-xr-xmodules/signal_processing/help/images/digital_elliptic_filter.pngbin0 -> 4584 bytes
-rwxr-xr-xmodules/signal_processing/help/images/digital_filtered_noise.pngbin0 -> 10230 bytes
-rwxr-xr-xmodules/signal_processing/help/images/wfir_gui_dialog.pngbin0 -> 29101 bytes
-rwxr-xr-xmodules/signal_processing/help/images/wfir_gui_view.svg96
-rwxr-xr-xmodules/signal_processing/help/ja_JP/addchapter.sce11
-rwxr-xr-xmodules/signal_processing/help/ja_JP/cepstrum.xml134
-rwxr-xr-xmodules/signal_processing/help/ja_JP/conv.xml280
-rwxr-xr-xmodules/signal_processing/help/ja_JP/conv2.xml317
-rwxr-xr-xmodules/signal_processing/help/ja_JP/convol2d.xml89
-rwxr-xr-xmodules/signal_processing/help/ja_JP/detrend.xml220
-rwxr-xr-xmodules/signal_processing/help/ja_JP/fft2.xml177
-rwxr-xr-xmodules/signal_processing/help/ja_JP/fftshift.xml204
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filt_sinc.xml114
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/CHAPTERS2
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/analpf.xml418
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/buttmag.xml121
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/casc.xml101
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/cheb1mag.xml167
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/cheb2mag.xml159
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/convol.xml238
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/ell1mag.xml160
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/eqfir.xml122
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/eqiir.xml243
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/faurre.xml159
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/ffilt.xml174
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/filter.xml182
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/find_freq.xml128
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/frmag.xml218
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/fsfirlin.xml162
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/group.xml190
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/iir.xml262
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/iirgroup.xml136
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/iirlp.xml158
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/kalm.xml366
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/lev.xml139
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/levin.xml268
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/lindquist.xml169
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/remez.xml267
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/remezb.xml268
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/srfaur.xml190
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/srkf.xml161
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/sskf.xml176
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/syredi.xml339
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/system.xml185
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/trans.xml319
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/wfir.xml178
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/wiener.xml468
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/wigner.xml170
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/window.xml453
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/yulewalk.xml183
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/zpbutt.xml110
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/zpch1.xml127
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/zpch2.xml139
-rwxr-xr-xmodules/signal_processing/help/ja_JP/filters/zpell.xml160
-rwxr-xr-xmodules/signal_processing/help/ja_JP/frfit.xml213
-rwxr-xr-xmodules/signal_processing/help/ja_JP/hilbert.xml165
-rwxr-xr-xmodules/signal_processing/help/ja_JP/howto/CHAPTER1
-rwxr-xr-xmodules/signal_processing/help/ja_JP/howto/DesignEllipticFilter.xml484
-rwxr-xr-xmodules/signal_processing/help/ja_JP/identification/CHAPTERS1
-rwxr-xr-xmodules/signal_processing/help/ja_JP/identification/lattn.xml238
-rwxr-xr-xmodules/signal_processing/help/ja_JP/identification/lattp.xml172
-rwxr-xr-xmodules/signal_processing/help/ja_JP/identification/phc.xml167
-rwxr-xr-xmodules/signal_processing/help/ja_JP/identification/rpem.xml544
-rwxr-xr-xmodules/signal_processing/help/ja_JP/ifftshift.xml95
-rwxr-xr-xmodules/signal_processing/help/ja_JP/miscellaneous/CHAPTERS2
-rwxr-xr-xmodules/signal_processing/help/ja_JP/miscellaneous/bilt.xml187
-rwxr-xr-xmodules/signal_processing/help/ja_JP/miscellaneous/sincd.xml104
-rwxr-xr-xmodules/signal_processing/help/ja_JP/mrfit.xml206
-rwxr-xr-xmodules/signal_processing/help/ja_JP/spectral_estimation/CHAPTERS1
-rwxr-xr-xmodules/signal_processing/help/ja_JP/spectral_estimation/corr.xml438
-rwxr-xr-xmodules/signal_processing/help/ja_JP/spectral_estimation/cspect.xml578
-rwxr-xr-xmodules/signal_processing/help/ja_JP/spectral_estimation/czt.xml163
-rwxr-xr-xmodules/signal_processing/help/ja_JP/spectral_estimation/intdec.xml128
-rwxr-xr-xmodules/signal_processing/help/ja_JP/spectral_estimation/mese.xml105
-rwxr-xr-xmodules/signal_processing/help/ja_JP/spectral_estimation/pspect.xml685
-rwxr-xr-xmodules/signal_processing/help/ja_JP/transforms/CHAPTERS2
-rwxr-xr-xmodules/signal_processing/help/ja_JP/transforms/dct.xml451
-rwxr-xr-xmodules/signal_processing/help/ja_JP/transforms/dst.xml376
-rwxr-xr-xmodules/signal_processing/help/ja_JP/transforms/fft.xml740
-rwxr-xr-xmodules/signal_processing/help/ja_JP/transforms/hank.xml178
-rwxr-xr-xmodules/signal_processing/help/ja_JP/transforms/hilb.xml190
-rwxr-xr-xmodules/signal_processing/help/ja_JP/wfir_gui.xml113
-rwxr-xr-xmodules/signal_processing/help/ja_JP/xcorr.xml388
-rwxr-xr-xmodules/signal_processing/help/ja_JP/xcov.xml392
-rwxr-xr-xmodules/signal_processing/help/pt_BR/addchapter.sce11
-rwxr-xr-xmodules/signal_processing/help/ru_RU/addchapter.sce11
-rwxr-xr-xmodules/signal_processing/includes/dynlib_signal_processing.h29
-rwxr-xr-xmodules/signal_processing/includes/gw_signal.h34
-rwxr-xr-xmodules/signal_processing/libscisignal_processing-algo.la41
-rwxr-xr-xmodules/signal_processing/libscisignal_processing.la41
-rwxr-xr-xmodules/signal_processing/license.txt14
-rwxr-xr-xmodules/signal_processing/locales/ca_ES.po617
-rwxr-xr-xmodules/signal_processing/locales/cs_CZ.po614
-rwxr-xr-xmodules/signal_processing/locales/de_DE.po607
-rwxr-xr-xmodules/signal_processing/locales/es_ES.po626
-rwxr-xr-xmodules/signal_processing/locales/fr_FR.po655
-rwxr-xr-xmodules/signal_processing/locales/it_IT.po663
-rwxr-xr-xmodules/signal_processing/locales/ja_JP.po620
-rwxr-xr-xmodules/signal_processing/locales/pl_PL.po617
-rwxr-xr-xmodules/signal_processing/locales/pt_BR.po630
-rwxr-xr-xmodules/signal_processing/locales/ru_RU.po651
-rwxr-xr-xmodules/signal_processing/locales/signal_processing.pot1022
-rwxr-xr-xmodules/signal_processing/locales/uk_UA.po666
-rwxr-xr-xmodules/signal_processing/locales/zh_CN.po572
-rwxr-xr-xmodules/signal_processing/locales/zh_TW.po572
-rwxr-xr-xmodules/signal_processing/macros/%k.binbin0 -> 3580 bytes
-rwxr-xr-xmodules/signal_processing/macros/%k.sci39
-rwxr-xr-xmodules/signal_processing/macros/%sn.binbin0 -> 4772 bytes
-rwxr-xr-xmodules/signal_processing/macros/%sn.sci36
-rwxr-xr-xmodules/signal_processing/macros/analpf.binbin0 -> 9240 bytes
-rwxr-xr-xmodules/signal_processing/macros/analpf.sci62
-rwxr-xr-xmodules/signal_processing/macros/bilt.binbin0 -> 20912 bytes
-rwxr-xr-xmodules/signal_processing/macros/bilt.sci100
-rwxr-xr-xmodules/signal_processing/macros/buildmacros.bat1
-rwxr-xr-xmodules/signal_processing/macros/buildmacros.sce9
-rwxr-xr-xmodules/signal_processing/macros/buttmag.binbin0 -> 3148 bytes
-rwxr-xr-xmodules/signal_processing/macros/buttmag.sci31
-rwxr-xr-xmodules/signal_processing/macros/casc.binbin0 -> 4456 bytes
-rwxr-xr-xmodules/signal_processing/macros/casc.sci44
-rwxr-xr-xmodules/signal_processing/macros/cepstrum.binbin0 -> 17596 bytes
-rwxr-xr-xmodules/signal_processing/macros/cepstrum.sci89
-rwxr-xr-xmodules/signal_processing/macros/cheb1mag.binbin0 -> 3324 bytes
-rwxr-xr-xmodules/signal_processing/macros/cheb1mag.sci30
-rwxr-xr-xmodules/signal_processing/macros/cheb2mag.binbin0 -> 3352 bytes
-rwxr-xr-xmodules/signal_processing/macros/cheb2mag.sci30
-rwxr-xr-xmodules/signal_processing/macros/cleanmacros.bat3
-rwxr-xr-xmodules/signal_processing/macros/conv.binbin0 -> 4524 bytes
-rwxr-xr-xmodules/signal_processing/macros/conv.sci34
-rwxr-xr-xmodules/signal_processing/macros/convol.binbin0 -> 8472 bytes
-rwxr-xr-xmodules/signal_processing/macros/convol.sci57
-rwxr-xr-xmodules/signal_processing/macros/convol2d.binbin0 -> 7412 bytes
-rwxr-xr-xmodules/signal_processing/macros/convol2d.sci56
-rwxr-xr-xmodules/signal_processing/macros/cspect.binbin0 -> 16244 bytes
-rwxr-xr-xmodules/signal_processing/macros/cspect.sci110
-rwxr-xr-xmodules/signal_processing/macros/czt.binbin0 -> 7292 bytes
-rwxr-xr-xmodules/signal_processing/macros/czt.sci57
-rwxr-xr-xmodules/signal_processing/macros/detrend.binbin0 -> 14840 bytes
-rwxr-xr-xmodules/signal_processing/macros/detrend.sci97
-rwxr-xr-xmodules/signal_processing/macros/ell1mag.binbin0 -> 2048 bytes
-rwxr-xr-xmodules/signal_processing/macros/ell1mag.sci23
-rwxr-xr-xmodules/signal_processing/macros/eqfir.binbin0 -> 10616 bytes
-rwxr-xr-xmodules/signal_processing/macros/eqfir.sci79
-rwxr-xr-xmodules/signal_processing/macros/eqiir.binbin0 -> 10212 bytes
-rwxr-xr-xmodules/signal_processing/macros/eqiir.sci81
-rwxr-xr-xmodules/signal_processing/macros/faurre.binbin0 -> 3920 bytes
-rwxr-xr-xmodules/signal_processing/macros/faurre.sci32
-rwxr-xr-xmodules/signal_processing/macros/ffilt.binbin0 -> 7356 bytes
-rwxr-xr-xmodules/signal_processing/macros/ffilt.sci74
-rwxr-xr-xmodules/signal_processing/macros/fft2.binbin0 -> 9392 bytes
-rwxr-xr-xmodules/signal_processing/macros/fft2.sci59
-rwxr-xr-xmodules/signal_processing/macros/fftshift.binbin0 -> 2212 bytes
-rwxr-xr-xmodules/signal_processing/macros/fftshift.sci22
-rwxr-xr-xmodules/signal_processing/macros/filt_sinc.binbin0 -> 2596 bytes
-rwxr-xr-xmodules/signal_processing/macros/filt_sinc.sci30
-rwxr-xr-xmodules/signal_processing/macros/filter.binbin0 -> 22196 bytes
-rwxr-xr-xmodules/signal_processing/macros/filter.sci148
-rwxr-xr-xmodules/signal_processing/macros/find_freq.binbin0 -> 2500 bytes
-rwxr-xr-xmodules/signal_processing/macros/find_freq.sci28
-rwxr-xr-xmodules/signal_processing/macros/findm.binbin0 -> 4844 bytes
-rwxr-xr-xmodules/signal_processing/macros/findm.sci47
-rwxr-xr-xmodules/signal_processing/macros/frfit.binbin0 -> 37868 bytes
-rwxr-xr-xmodules/signal_processing/macros/frfit.sci220
-rwxr-xr-xmodules/signal_processing/macros/frmag.binbin0 -> 12408 bytes
-rwxr-xr-xmodules/signal_processing/macros/frmag.sci79
-rwxr-xr-xmodules/signal_processing/macros/fsfirlin.binbin0 -> 4564 bytes
-rwxr-xr-xmodules/signal_processing/macros/fsfirlin.sci28
-rwxr-xr-xmodules/signal_processing/macros/group.binbin0 -> 18232 bytes
-rwxr-xr-xmodules/signal_processing/macros/group.sci140
-rwxr-xr-xmodules/signal_processing/macros/hank.binbin0 -> 9736 bytes
-rwxr-xr-xmodules/signal_processing/macros/hank.sci65
-rwxr-xr-xmodules/signal_processing/macros/hilb.binbin0 -> 8376 bytes
-rwxr-xr-xmodules/signal_processing/macros/hilb.sci61
-rwxr-xr-xmodules/signal_processing/macros/hilbert.binbin0 -> 4300 bytes
-rwxr-xr-xmodules/signal_processing/macros/hilbert.sci46
-rwxr-xr-xmodules/signal_processing/macros/idct.binbin0 -> 1432 bytes
-rwxr-xr-xmodules/signal_processing/macros/idct.sci15
-rwxr-xr-xmodules/signal_processing/macros/idst.binbin0 -> 1432 bytes
-rwxr-xr-xmodules/signal_processing/macros/idst.sci15
-rwxr-xr-xmodules/signal_processing/macros/ifft.binbin0 -> 1432 bytes
-rwxr-xr-xmodules/signal_processing/macros/ifft.sci15
-rwxr-xr-xmodules/signal_processing/macros/ifftshift.binbin0 -> 1960 bytes
-rwxr-xr-xmodules/signal_processing/macros/ifftshift.sci27
-rwxr-xr-xmodules/signal_processing/macros/iir.binbin0 -> 15844 bytes
-rwxr-xr-xmodules/signal_processing/macros/iir.sci81
-rwxr-xr-xmodules/signal_processing/macros/iirgroup.binbin0 -> 13008 bytes
-rwxr-xr-xmodules/signal_processing/macros/iirgroup.sci52
-rwxr-xr-xmodules/signal_processing/macros/iirlp.binbin0 -> 7084 bytes
-rwxr-xr-xmodules/signal_processing/macros/iirlp.sci49
-rwxr-xr-xmodules/signal_processing/macros/iirmod.binbin0 -> 10728 bytes
-rwxr-xr-xmodules/signal_processing/macros/iirmod.sci49
-rwxr-xr-xmodules/signal_processing/macros/intdec.binbin0 -> 16824 bytes
-rwxr-xr-xmodules/signal_processing/macros/intdec.sci112
-rwxr-xr-xmodules/signal_processing/macros/kalm.binbin0 -> 4696 bytes
-rwxr-xr-xmodules/signal_processing/macros/kalm.sci35
-rwxr-xr-xmodules/signal_processing/macros/lattn.binbin0 -> 20072 bytes
-rwxr-xr-xmodules/signal_processing/macros/lattn.sci116
-rwxr-xr-xmodules/signal_processing/macros/lattp.binbin0 -> 4464 bytes
-rwxr-xr-xmodules/signal_processing/macros/lattp.sci33
-rwxr-xr-xmodules/signal_processing/macros/lev.binbin0 -> 5744 bytes
-rwxr-xr-xmodules/signal_processing/macros/lev.sci48
-rwxr-xr-xmodules/signal_processing/macros/levin.binbin0 -> 11428 bytes
-rwxr-xr-xmodules/signal_processing/macros/levin.sci89
-rwxr-xr-xmodules/signal_processing/macros/libbin0 -> 2008 bytes
-rwxr-xr-xmodules/signal_processing/macros/lindquist.binbin0 -> 5144 bytes
-rwxr-xr-xmodules/signal_processing/macros/lindquist.sci45
-rwxr-xr-xmodules/signal_processing/macros/mese.binbin0 -> 3872 bytes
-rwxr-xr-xmodules/signal_processing/macros/mese.sci43
-rwxr-xr-xmodules/signal_processing/macros/mrfit.binbin0 -> 11936 bytes
-rwxr-xr-xmodules/signal_processing/macros/mrfit.sci80
-rwxr-xr-xmodules/signal_processing/macros/names71
-rwxr-xr-xmodules/signal_processing/macros/phc.binbin0 -> 4104 bytes
-rwxr-xr-xmodules/signal_processing/macros/phc.sci32
-rwxr-xr-xmodules/signal_processing/macros/pspect.binbin0 -> 20860 bytes
-rwxr-xr-xmodules/signal_processing/macros/pspect.sci126
-rwxr-xr-xmodules/signal_processing/macros/remezb.binbin0 -> 7024 bytes
-rwxr-xr-xmodules/signal_processing/macros/remezb.sci61
-rwxr-xr-xmodules/signal_processing/macros/sincd.binbin0 -> 5396 bytes
-rwxr-xr-xmodules/signal_processing/macros/sincd.sci42
-rwxr-xr-xmodules/signal_processing/macros/srfaur.binbin0 -> 7152 bytes
-rwxr-xr-xmodules/signal_processing/macros/srfaur.sci51
-rwxr-xr-xmodules/signal_processing/macros/srkf.binbin0 -> 4860 bytes
-rwxr-xr-xmodules/signal_processing/macros/srkf.sci39
-rwxr-xr-xmodules/signal_processing/macros/sskf.binbin0 -> 2992 bytes
-rwxr-xr-xmodules/signal_processing/macros/sskf.sci30
-rwxr-xr-xmodules/signal_processing/macros/system.binbin0 -> 4172 bytes
-rwxr-xr-xmodules/signal_processing/macros/system.sci43
-rwxr-xr-xmodules/signal_processing/macros/trans.binbin0 -> 20284 bytes
-rwxr-xr-xmodules/signal_processing/macros/trans.sci105
-rwxr-xr-xmodules/signal_processing/macros/wfir.binbin0 -> 16696 bytes
-rwxr-xr-xmodules/signal_processing/macros/wfir.sci105
-rwxr-xr-xmodules/signal_processing/macros/wfir_gui.binbin0 -> 103420 bytes
-rwxr-xr-xmodules/signal_processing/macros/wfir_gui.sci843
-rwxr-xr-xmodules/signal_processing/macros/wiener.binbin0 -> 11968 bytes
-rwxr-xr-xmodules/signal_processing/macros/wiener.sci82
-rwxr-xr-xmodules/signal_processing/macros/wigner.binbin0 -> 5328 bytes
-rwxr-xr-xmodules/signal_processing/macros/wigner.sci44
-rwxr-xr-xmodules/signal_processing/macros/window.binbin0 -> 24188 bytes
-rwxr-xr-xmodules/signal_processing/macros/window.sci148
-rwxr-xr-xmodules/signal_processing/macros/xcorr.binbin0 -> 19268 bytes
-rwxr-xr-xmodules/signal_processing/macros/xcorr.sci124
-rwxr-xr-xmodules/signal_processing/macros/xcov.binbin0 -> 12136 bytes
-rwxr-xr-xmodules/signal_processing/macros/xcov.sci76
-rwxr-xr-xmodules/signal_processing/macros/yulewalk.binbin0 -> 26080 bytes
-rwxr-xr-xmodules/signal_processing/macros/yulewalk.sci147
-rwxr-xr-xmodules/signal_processing/macros/zpbutt.binbin0 -> 2596 bytes
-rwxr-xr-xmodules/signal_processing/macros/zpbutt.sci26
-rwxr-xr-xmodules/signal_processing/macros/zpch1.binbin0 -> 4040 bytes
-rwxr-xr-xmodules/signal_processing/macros/zpch1.sci34
-rwxr-xr-xmodules/signal_processing/macros/zpch2.binbin0 -> 5580 bytes
-rwxr-xr-xmodules/signal_processing/macros/zpch2.sci42
-rwxr-xr-xmodules/signal_processing/macros/zpell.binbin0 -> 8744 bytes
-rwxr-xr-xmodules/signal_processing/macros/zpell.sci55
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.deps/.dirstamp0
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-gw_signal.Plo283
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_amell.Plo62
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_conv2.Plo294
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_corr.Plo62
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_delip.Plo62
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_ffir.Plo62
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_fft.Plo61
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_fiir.Plo62
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_remez.Plo62
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_rpem.Plo62
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_syredi.Plo62
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.dirstamp0
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-gw_signal.obin0 -> 6776 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_amell.obin0 -> 3904 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_conv2.obin0 -> 27264 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_corr.obin0 -> 3896 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_delip.obin0 -> 3904 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_ffir.obin0 -> 3896 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_fft.obin0 -> 3896 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_fiir.obin0 -> 3896 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_remez.obin0 -> 3904 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_rpem.obin0 -> 3896 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_syredi.obin0 -> 3912 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/gw_signal.c45
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/libscisignal_processing_la-gw_signal.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_amell.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_conv2.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_corr.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_delip.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_ffir.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_fft.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_fiir.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_remez.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_rpem.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_syredi.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/sci_amell.c23
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/sci_conv2.c521
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/sci_corr.c23
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/sci_delip.c23
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/sci_ffir.c23
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/sci_fft.c23
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/sci_fiir.c23
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/sci_remez.c23
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/sci_rpem.c23
-rwxr-xr-xmodules/signal_processing/sci_gateway/c/sci_syredi.c23
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/.deps/.dirstamp0
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/.dirstamp0
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/.libs/Ex-corr.obin0 -> 5408 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/.libs/bgetx.obin0 -> 23800 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/.libs/bgety.obin0 -> 23800 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/.libs/sci_f_amell.obin0 -> 18080 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/.libs/sci_f_corr.obin0 -> 36944 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/.libs/sci_f_delip.obin0 -> 20920 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/.libs/sci_f_fft.obin0 -> 25384 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/.libs/sci_f_fiir.obin0 -> 10664 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/.libs/sci_f_remez.obin0 -> 22336 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/.libs/sci_f_rpem.obin0 -> 23864 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/.libs/sci_f_syredi.obin0 -> 35544 bytes
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/Ex-corr.f28
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/Ex-corr.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/bgetx.f101
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/bgetx.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/bgety.f101
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/bgety.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_amell.f57
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_amell.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_corr.f242
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_corr.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_delip.f104
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_delip.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_fft.f223
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_fft.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_fiir.f18
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_fiir.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_remez.f85
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_remez.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_rpem.f147
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_rpem.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_syredi.f266
-rwxr-xr-xmodules/signal_processing/sci_gateway/fortran/sci_f_syredi.lo12
-rwxr-xr-xmodules/signal_processing/sci_gateway/signal_processing_gateway.xml41
-rwxr-xr-xmodules/signal_processing/signal_processing.iss42
-rwxr-xr-xmodules/signal_processing/src/c/.deps/.dirstamp0
-rwxr-xr-xmodules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-conv2.Plo152
-rwxr-xr-xmodules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-corrtable.Plo16
-rwxr-xr-xmodules/signal_processing/src/c/.dirstamp0
-rwxr-xr-xmodules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-conv2.obin0 -> 31328 bytes
-rwxr-xr-xmodules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-corrtable.obin0 -> 6936 bytes
-rwxr-xr-xmodules/signal_processing/src/c/DllmainSignal_processing.c75
-rwxr-xr-xmodules/signal_processing/src/c/conv2.c285
-rwxr-xr-xmodules/signal_processing/src/c/conv2.h78
-rwxr-xr-xmodules/signal_processing/src/c/core_Import.def11
-rwxr-xr-xmodules/signal_processing/src/c/corrtable.c90
-rwxr-xr-xmodules/signal_processing/src/c/libscisignal_processing_algo_la-conv2.lo12
-rwxr-xr-xmodules/signal_processing/src/c/libscisignal_processing_algo_la-corrtable.lo12
-rwxr-xr-xmodules/signal_processing/src/c/signal_processing.rc96
-rwxr-xr-xmodules/signal_processing/src/c/signal_processing.vcxproj247
-rwxr-xr-xmodules/signal_processing/src/c/signal_processing.vcxproj.filters99
-rwxr-xr-xmodules/signal_processing/src/c/signal_processing_f_Import.def17
-rwxr-xr-xmodules/signal_processing/src/fortran/.deps/.dirstamp0
-rwxr-xr-xmodules/signal_processing/src/fortran/.dirstamp0
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/amell.obin0 -> 10784 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/bldenz.obin0 -> 5968 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/blnumz.obin0 -> 5664 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/bounn.obin0 -> 8376 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/cheby.obin0 -> 9808 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/cmpse2.obin0 -> 13184 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/cmpse3.obin0 -> 13136 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/coeft.obin0 -> 4640 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/compel.obin0 -> 5824 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/degree.obin0 -> 6184 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/deli1.obin0 -> 8072 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/deli11.obin0 -> 7160 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/deli2.obin0 -> 12088 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/delip.obin0 -> 7456 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/dellk.obin0 -> 5664 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi00.obin0 -> 4600 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi01.obin0 -> 5864 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi11.obin0 -> 7096 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi12.obin0 -> 9768 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi14.obin0 -> 11416 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi21.obin0 -> 7528 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi22.obin0 -> 10008 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi24.obin0 -> 9424 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desia.obin0 -> 9048 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desib.obin0 -> 8296 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/dfft2.obin0 -> 4400 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/dfftbi.obin0 -> 9536 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/dfftmx.obin0 -> 27488 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/dgee01.obin0 -> 5208 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/dsn2.obin0 -> 6592 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/dsqrtc.obin0 -> 5472 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/fft842.obin0 -> 15888 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/filbut.obin0 -> 5744 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/freque.obin0 -> 5976 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/gee.obin0 -> 5632 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/hammin.obin0 -> 5208 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/ino.obin0 -> 4328 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/nstabl.obin0 -> 4856 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/ouch.obin0 -> 14880 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/parcha.obin0 -> 7176 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/poles.obin0 -> 4696 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/r2tx.obin0 -> 3752 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/r4tx.obin0 -> 4760 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/r8tx.obin0 -> 24904 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/remez.obin0 -> 24096 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/romeg.obin0 -> 5120 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/rpem.obin0 -> 11072 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/sn.obin0 -> 6784 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/snell.obin0 -> 6888 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/syredi.obin0 -> 8472 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/tg02ad.obin0 -> 7920 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/tranpo.obin0 -> 9296 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/transn.obin0 -> 8192 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/tranze.obin0 -> 11672 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/trbipo.obin0 -> 6432 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/trbize.obin0 -> 7544 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/tscccf.obin0 -> 6552 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/Elementary_functions_Import.def6
-rwxr-xr-xmodules/signal_processing/src/fortran/Elementary_functions_f_Import.def13
-rwxr-xr-xmodules/signal_processing/src/fortran/amell.f93
-rwxr-xr-xmodules/signal_processing/src/fortran/amell.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/bldenz.f36
-rwxr-xr-xmodules/signal_processing/src/fortran/bldenz.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/blnumz.f48
-rwxr-xr-xmodules/signal_processing/src/fortran/blnumz.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/bounn.f54
-rwxr-xr-xmodules/signal_processing/src/fortran/bounn.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/cheby.f96
-rwxr-xr-xmodules/signal_processing/src/fortran/cheby.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/cmpse2.f143
-rwxr-xr-xmodules/signal_processing/src/fortran/cmpse2.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/cmpse3.f107
-rwxr-xr-xmodules/signal_processing/src/fortran/cmpse3.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/coeft.f41
-rwxr-xr-xmodules/signal_processing/src/fortran/coeft.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/compel.f37
-rwxr-xr-xmodules/signal_processing/src/fortran/compel.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/core_Import.def33
-rwxr-xr-xmodules/signal_processing/src/fortran/core_f_Import.def14
-rwxr-xr-xmodules/signal_processing/src/fortran/degree.f32
-rwxr-xr-xmodules/signal_processing/src/fortran/degree.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/deli1.f85
-rwxr-xr-xmodules/signal_processing/src/fortran/deli1.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/deli11.f72
-rwxr-xr-xmodules/signal_processing/src/fortran/deli11.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/deli2.f120
-rwxr-xr-xmodules/signal_processing/src/fortran/deli2.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/delip.f46
-rwxr-xr-xmodules/signal_processing/src/fortran/delip.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/dellk.f36
-rwxr-xr-xmodules/signal_processing/src/fortran/dellk.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi00.f14
-rwxr-xr-xmodules/signal_processing/src/fortran/desi00.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi01.f26
-rwxr-xr-xmodules/signal_processing/src/fortran/desi01.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi11.f46
-rwxr-xr-xmodules/signal_processing/src/fortran/desi11.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi12.f90
-rwxr-xr-xmodules/signal_processing/src/fortran/desi12.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi14.f101
-rwxr-xr-xmodules/signal_processing/src/fortran/desi14.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi21.f36
-rwxr-xr-xmodules/signal_processing/src/fortran/desi21.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi22.f76
-rwxr-xr-xmodules/signal_processing/src/fortran/desi22.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi24.f70
-rwxr-xr-xmodules/signal_processing/src/fortran/desi24.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desia.f38
-rwxr-xr-xmodules/signal_processing/src/fortran/desia.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desib.f35
-rwxr-xr-xmodules/signal_processing/src/fortran/desib.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/dfft2.f21
-rwxr-xr-xmodules/signal_processing/src/fortran/dfft2.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/dfftbi.f187
-rwxr-xr-xmodules/signal_processing/src/fortran/dfftbi.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/dfftmx.f537
-rwxr-xr-xmodules/signal_processing/src/fortran/dfftmx.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/dgee01.f27
-rwxr-xr-xmodules/signal_processing/src/fortran/dgee01.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/dsn2.f51
-rwxr-xr-xmodules/signal_processing/src/fortran/dsn2.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/dsqrtc.f26
-rwxr-xr-xmodules/signal_processing/src/fortran/dsqrtc.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/fft842.f132
-rwxr-xr-xmodules/signal_processing/src/fortran/fft842.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/filbut.f61
-rwxr-xr-xmodules/signal_processing/src/fortran/filbut.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/freque.f40
-rwxr-xr-xmodules/signal_processing/src/fortran/freque.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/gee.f25
-rwxr-xr-xmodules/signal_processing/src/fortran/gee.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/hammin.f43
-rwxr-xr-xmodules/signal_processing/src/fortran/hammin.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/ino.f51
-rwxr-xr-xmodules/signal_processing/src/fortran/ino.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/nstabl.f37
-rwxr-xr-xmodules/signal_processing/src/fortran/nstabl.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/ouch.f40
-rwxr-xr-xmodules/signal_processing/src/fortran/ouch.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/output_stream_Import.def9
-rwxr-xr-xmodules/signal_processing/src/fortran/parcha.f36
-rwxr-xr-xmodules/signal_processing/src/fortran/parcha.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/poles.f36
-rwxr-xr-xmodules/signal_processing/src/fortran/poles.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/r2tx.f17
-rwxr-xr-xmodules/signal_processing/src/fortran/r2tx.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/r4tx.f29
-rwxr-xr-xmodules/signal_processing/src/fortran/r4tx.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/r8tx.f110
-rwxr-xr-xmodules/signal_processing/src/fortran/r8tx.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/remez.f309
-rwxr-xr-xmodules/signal_processing/src/fortran/remez.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/romeg.f31
-rwxr-xr-xmodules/signal_processing/src/fortran/romeg.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/rpem.f202
-rwxr-xr-xmodules/signal_processing/src/fortran/rpem.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/sci_ffir.f18
-rwxr-xr-xmodules/signal_processing/src/fortran/signal_processing_Import.def17
-rwxr-xr-xmodules/signal_processing/src/fortran/signal_processing_f.rc96
-rwxr-xr-xmodules/signal_processing/src/fortran/signal_processing_f.vfproj178
-rwxr-xr-xmodules/signal_processing/src/fortran/signal_processing_f2c.vcxproj422
-rwxr-xr-xmodules/signal_processing/src/fortran/signal_processing_f2c.vcxproj.filters457
-rwxr-xr-xmodules/signal_processing/src/fortran/sn.f21
-rwxr-xr-xmodules/signal_processing/src/fortran/sn.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/snell.f53
-rwxr-xr-xmodules/signal_processing/src/fortran/snell.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/syredi.f92
-rwxr-xr-xmodules/signal_processing/src/fortran/syredi.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/tg02ad.f113
-rwxr-xr-xmodules/signal_processing/src/fortran/tg02ad.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/tranpo.f73
-rwxr-xr-xmodules/signal_processing/src/fortran/tranpo.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/transn.f84
-rwxr-xr-xmodules/signal_processing/src/fortran/transn.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/tranze.f122
-rwxr-xr-xmodules/signal_processing/src/fortran/tranze.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/trbipo.f37
-rwxr-xr-xmodules/signal_processing/src/fortran/trbipo.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/trbize.f42
-rwxr-xr-xmodules/signal_processing/src/fortran/trbize.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/tscccf.f56
-rwxr-xr-xmodules/signal_processing/src/fortran/tscccf.lo12
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_10856.dia.ref28
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_10856.tst31
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_11802.dia.ref20
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_11802.tst22
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_12715.dia.ref19
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_12715.tst22
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_13205.dia.ref23
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_13205.tst25
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_13346.dia.ref20
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_13346.tst24
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_13527.dia.ref25
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_13527.tst25
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_13692.dia.ref27
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_13692.tst30
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_1635.dia.ref39
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_1635.tst42
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_2076.dia.ref19
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_2076.tst25
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_279.dia.ref30
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_279.tst42
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_3546.dia.ref16
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_3546.tst17
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_4065.dia.ref16
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_4065.tst18
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_4120.dia.ref17
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_4120.tst20
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_4229.dia.ref20
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_4229.tst21
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_4249.dia.ref15
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_4249.tst17
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_4481.dia.ref19
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_4481.tst20
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_4504.dia.ref32
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_4504.tst33
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_4618.dia.ref14
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_4618.tst16
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_6512.dia.ref61
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_6512.tst67
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_6861.dia.ref20
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_6861.tst21
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_768.dia.ref19
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_768.tst21
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_7849.dia.ref18
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_7849.tst20
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_7881.dia.ref23
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_7881.tst32
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_7895.dia.ref15
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_7895.tst18
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_8684.tst23
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_9675.dia.ref23
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_9675.tst24
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_9851.dia.ref22
-rwxr-xr-xmodules/signal_processing/tests/nonreg_tests/bug_9851.tst23
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/amell.dia.ref9
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/amell.tst10
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/conv.dia.ref17
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/conv.tst18
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/conv2.dia.ref49
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/conv2.tst59
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/convol2d.dia.ref18
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/convol2d.tst22
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/corr.dia.ref33
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/corr.tst36
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/delip.dia.ref11
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/delip.tst12
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/fft.dia.ref18
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/fft.tst23
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/filter.dia.ref129
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/filter.tst155
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/hank.dia.ref9
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/hank.tst10
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/ifftshift.dia.ref30
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/ifftshift.tst39
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/kalm.dia.ref42
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/kalm.tst46
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/lattn.dia.ref81
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/lattn.tst104
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/lattp.dia.ref21
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/lattp.tst27
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/lev.dia.ref14
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/lev.tst16
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/lindquist.dia.ref27
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/lindquist.tst34
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/remez.dia.ref21
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/remez.tst17
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/rpem.dia.ref40
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/rpem.tst47
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/srkf.dia.ref19
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/srkf.tst21
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/syredi.dia.ref18
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/syredi.tst20
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/xcorr.dia.ref46
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/xcorr.tst54
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/xcov.dia.ref16
-rwxr-xr-xmodules/signal_processing/tests/unit_tests/xcov.tst22
743 files changed, 61126 insertions, 0 deletions
diff --git a/modules/signal_processing/.libs/libscisignal_processing-algo.a b/modules/signal_processing/.libs/libscisignal_processing-algo.a
new file mode 100755
index 000000000..6a4e9db1e
--- /dev/null
+++ b/modules/signal_processing/.libs/libscisignal_processing-algo.a
Binary files differ
diff --git a/modules/signal_processing/.libs/libscisignal_processing-algo.la b/modules/signal_processing/.libs/libscisignal_processing-algo.la
new file mode 120000
index 000000000..992afc859
--- /dev/null
+++ b/modules/signal_processing/.libs/libscisignal_processing-algo.la
@@ -0,0 +1 @@
+../libscisignal_processing-algo.la \ No newline at end of file
diff --git a/modules/signal_processing/.libs/libscisignal_processing.la b/modules/signal_processing/.libs/libscisignal_processing.la
new file mode 120000
index 000000000..a991a5109
--- /dev/null
+++ b/modules/signal_processing/.libs/libscisignal_processing.la
@@ -0,0 +1 @@
+../libscisignal_processing.la \ No newline at end of file
diff --git a/modules/signal_processing/.libs/libscisignal_processing.lai b/modules/signal_processing/.libs/libscisignal_processing.lai
new file mode 100755
index 000000000..02162bf5b
--- /dev/null
+++ b/modules/signal_processing/.libs/libscisignal_processing.lai
@@ -0,0 +1,41 @@
+# libscisignal_processing.la - a libtool library file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libscisignal_processing.so.5'
+
+# Names of this library.
+library_names='libscisignal_processing.so.5.5.2 libscisignal_processing.so.5 libscisignal_processing.so'
+
+# The name of the static archive.
+old_library=''
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -lpthread -ldl -lcurses -lm'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libscisignal_processing.
+current=10
+age=5
+revision=2
+
+# Is this an already installed library?
+installed=yes
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/local/lib/scilab'
diff --git a/modules/signal_processing/.libs/libscisignal_processing.so b/modules/signal_processing/.libs/libscisignal_processing.so
new file mode 120000
index 000000000..1c592633d
--- /dev/null
+++ b/modules/signal_processing/.libs/libscisignal_processing.so
@@ -0,0 +1 @@
+libscisignal_processing.so.5.5.2 \ No newline at end of file
diff --git a/modules/signal_processing/.libs/libscisignal_processing.so.5 b/modules/signal_processing/.libs/libscisignal_processing.so.5
new file mode 120000
index 000000000..1c592633d
--- /dev/null
+++ b/modules/signal_processing/.libs/libscisignal_processing.so.5
@@ -0,0 +1 @@
+libscisignal_processing.so.5.5.2 \ No newline at end of file
diff --git a/modules/signal_processing/.libs/libscisignal_processing.so.5.5.2 b/modules/signal_processing/.libs/libscisignal_processing.so.5.5.2
new file mode 100755
index 000000000..cada13c92
--- /dev/null
+++ b/modules/signal_processing/.libs/libscisignal_processing.so.5.5.2
Binary files differ
diff --git a/modules/signal_processing/Makefile b/modules/signal_processing/Makefile
new file mode 100755
index 000000000..5d6ac555d
--- /dev/null
+++ b/modules/signal_processing/Makefile
@@ -0,0 +1,1747 @@
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# modules/signal_processing/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+# Copyright (C) 2006 - INRIA - Sylvestre LEDRU
+#
+# This file is distributed under the same license as the Scilab package.
+
+# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+# Copyright (C) 2006-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@inria.fr>
+# Copyright (C) 2008 - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr>
+#
+# This file must be used under the terms of the CeCILL.
+# This source file is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at
+# http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+#
+
+##########
+### Makefile included stuff
+### Target, variable, suffixes which are supposed to be useful in every makefile.am
+##########
+
+
+
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/scilab
+pkgincludedir = $(includedir)/scilab
+pkglibdir = $(libdir)/scilab
+pkglibexecdir = $(libexecdir)/scilab
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-unknown-linux-gnu
+host_triplet = x86_64-unknown-linux-gnu
+DIST_COMMON = $(top_srcdir)/Makefile.incl.am $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/config/mkinstalldirs \
+ $(top_srcdir)/config/depcomp
+am__append_1 = java
+subdir = modules/signal_processing
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/backtrace.m4 \
+ $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/curl.m4 \
+ $(top_srcdir)/m4/docbook.m4 $(top_srcdir)/m4/doxygen.m4 \
+ $(top_srcdir)/m4/fftw.m4 $(top_srcdir)/m4/fortran.m4 \
+ $(top_srcdir)/m4/giws.m4 $(top_srcdir)/m4/hdf5.m4 \
+ $(top_srcdir)/m4/intel_compiler.m4 \
+ $(top_srcdir)/m4/java-thirdparty.m4 $(top_srcdir)/m4/java.m4 \
+ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/libsmath.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/libxml2.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/macosx.m4 \
+ $(top_srcdir)/m4/mpi.m4 $(top_srcdir)/m4/ocaml.m4 \
+ $(top_srcdir)/m4/pcre.m4 $(top_srcdir)/m4/pkg.m4 \
+ $(top_srcdir)/m4/relocatable.m4 $(top_srcdir)/m4/swig.m4 \
+ $(top_srcdir)/m4/symlinks.m4 $(top_srcdir)/m4/tcltk.m4 \
+ $(top_srcdir)/m4/umfpack.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/modules/core/includes/machine.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(pkglibdir)" \
+ "$(DESTDIR)$(libscisignal_processing_la_etcdir)" \
+ "$(DESTDIR)$(libscisignal_processing_la_rootdir)" \
+ "$(DESTDIR)$(libscisignal_processing_la_sci_gatewaydir)"
+LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES)
+libscisignal_processing_algo_la_LIBADD =
+am__dirstamp = $(am__leading_dot)dirstamp
+am__objects_1 = src/fortran/degree.lo src/fortran/parcha.lo \
+ src/fortran/ouch.lo src/fortran/dfftbi.lo \
+ src/fortran/dsqrtc.lo src/fortran/tranze.lo \
+ src/fortran/tscccf.lo src/fortran/dsn2.lo \
+ src/fortran/hammin.lo src/fortran/bounn.lo \
+ src/fortran/nstabl.lo src/fortran/ino.lo src/fortran/desia.lo \
+ src/fortran/desi11.lo src/fortran/cmpse3.lo \
+ src/fortran/cheby.lo src/fortran/trbize.lo src/fortran/r2tx.lo \
+ src/fortran/deli2.lo src/fortran/gee.lo src/fortran/r4tx.lo \
+ src/fortran/transn.lo src/fortran/r8tx.lo \
+ src/fortran/deli11.lo src/fortran/compel.lo \
+ src/fortran/filbut.lo src/fortran/desi01.lo \
+ src/fortran/desi22.lo src/fortran/amell.lo \
+ src/fortran/desi24.lo src/fortran/dellk.lo \
+ src/fortran/syredi.lo src/fortran/coeft.lo \
+ src/fortran/tranpo.lo src/fortran/blnumz.lo src/fortran/sn.lo \
+ src/fortran/bldenz.lo src/fortran/desib.lo \
+ src/fortran/freque.lo src/fortran/desi12.lo \
+ src/fortran/cmpse2.lo src/fortran/desi14.lo \
+ src/fortran/delip.lo src/fortran/deli1.lo \
+ src/fortran/trbipo.lo src/fortran/rpem.lo src/fortran/dfft2.lo \
+ src/fortran/dgee01.lo src/fortran/romeg.lo \
+ src/fortran/snell.lo src/fortran/fft842.lo \
+ src/fortran/tg02ad.lo src/fortran/remez.lo \
+ src/fortran/poles.lo src/fortran/desi00.lo \
+ src/fortran/desi21.lo src/fortran/dfftmx.lo
+am__objects_2 = src/c/libscisignal_processing_algo_la-corrtable.lo \
+ src/c/libscisignal_processing_algo_la-conv2.lo
+am_libscisignal_processing_algo_la_OBJECTS = $(am__objects_1) \
+ $(am__objects_2)
+libscisignal_processing_algo_la_OBJECTS = \
+ $(am_libscisignal_processing_algo_la_OBJECTS)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+am__v_lt_1 =
+libscisignal_processing_la_DEPENDENCIES = \
+ libscisignal_processing-algo.la
+am__objects_3 = sci_gateway/c/libscisignal_processing_la-sci_remez.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_rpem.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_corr.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_ffir.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_fiir.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_amell.lo \
+ sci_gateway/c/libscisignal_processing_la-gw_signal.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_delip.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_fft.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_syredi.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_conv2.lo
+am__objects_4 = sci_gateway/fortran/sci_f_delip.lo \
+ sci_gateway/fortran/sci_f_fft.lo \
+ sci_gateway/fortran/sci_f_syredi.lo \
+ sci_gateway/fortran/sci_f_remez.lo \
+ sci_gateway/fortran/sci_f_rpem.lo \
+ sci_gateway/fortran/sci_f_corr.lo \
+ sci_gateway/fortran/sci_f_fiir.lo \
+ sci_gateway/fortran/sci_f_amell.lo \
+ sci_gateway/fortran/bgetx.lo sci_gateway/fortran/bgety.lo \
+ sci_gateway/fortran/Ex-corr.lo
+am_libscisignal_processing_la_OBJECTS = $(am__objects_3) \
+ $(am__objects_4)
+libscisignal_processing_la_OBJECTS = \
+ $(am_libscisignal_processing_la_OBJECTS)
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I. -I$(top_builddir)/modules/core/includes
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS)
+LTF77COMPILE = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS)
+AM_V_F77 = $(am__v_F77_$(V))
+am__v_F77_ = $(am__v_F77_$(AM_DEFAULT_VERBOSITY))
+am__v_F77_0 = @echo " F77 " $@;
+am__v_F77_1 =
+F77LD = $(F77)
+F77LINK = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(F77LD) $(AM_FFLAGS) $(FFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_F77LD = $(am__v_F77LD_$(V))
+am__v_F77LD_ = $(am__v_F77LD_$(AM_DEFAULT_VERBOSITY))
+am__v_F77LD_0 = @echo " F77LD " $@;
+am__v_F77LD_1 =
+SOURCES = $(libscisignal_processing_algo_la_SOURCES) \
+ $(libscisignal_processing_la_SOURCES)
+DIST_SOURCES = $(libscisignal_processing_algo_la_SOURCES) \
+ $(libscisignal_processing_la_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+DATA = $(libscisignal_processing_la_etc_DATA) \
+ $(libscisignal_processing_la_root_DATA) \
+ $(libscisignal_processing_la_sci_gateway_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing aclocal-1.14
+ALL_LINGUAS = en_US fr_FR zh_CN zh_TW ru_RU ca_ES de_DE es_ES pt_BR ja_JP it_IT uk_UA pl_PL cs_CZ
+ALL_LINGUAS_DOC = en_US fr_FR pt_BR ja_JP ru_RU
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+ANT = /usr/bin/ant
+ANTLR = /usr/share/java/antlr.jar
+AR = ar
+ARPACK_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -larpack
+ASM3 = /usr/share/java/asm3-3.3.2.jar
+AUTOCONF = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing autoconf
+AUTOHEADER = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing autoheader
+AUTOMAKE = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing automake-1.14
+AVALON_FRAMEWORK = /home/shashank/scilab-master_5.5.2/thirdparty/avalon-framework.jar
+AWK = mawk
+BATIK = /home/shashank/scilab-master_5.5.2/thirdparty/batik-all-1.7.jar
+BLAS_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lblas
+CC = gcc
+CCACHE =
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CHECKSTYLE =
+COBERTURA = /usr/share/java/cobertura.jar
+COMMONS_BEANUTILS =
+COMMONS_IO = /home/shashank/scilab-master_5.5.2/thirdparty/commons-io.jar
+COMMONS_LOGGING = /home/shashank/scilab-master_5.5.2/thirdparty/commons-logging.jar
+CPP = gcc -E
+CPPFLAGS =
+CURL_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include
+CURL_CONFIG = /home/shashank/scilab-master_5.5.2/usr/bin/curl-config
+CURL_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lcurl -L/home/scilab/work/linux-prerequisites-sources/trunk/Dev-Tools/SE/Prerequirements/linux_x64/usr/lib -L/home/scilab/work/linux-prerequisites-sources/trunk/Dev-Tools/SE/Prerequirements/linux_x64/usr/lib -lssl -lcrypto -lrt -lz
+CURL_VERSION = libcurl 7.19.7
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEMOTOOLS_ENABLE = yes
+DEPDIR = .deps
+DLLTOOL = false
+DOCBOOK_ROOT = /home/shashank/scilab-master_5.5.2/thirdparty/docbook/
+DOXYGEN_BIN =
+DSYMUTIL =
+DUMPBIN =
+ECHO_C =
+ECHO_N = -n
+ECHO_T =
+ECJ = /home/shashank/scilab-master_5.5.2/thirdparty/ecj.jar
+EGREP = /bin/grep -E
+EXEEXT =
+F77 = gfortran
+FFLAGS = -g -O2
+FFTW3_LIB = -L/home/shashank/scilab-master_5.5.2/usr/lib -lfftw3
+FFTW_ENABLE = yes
+FGREP = /bin/grep -F
+FLEXDOCK = /home/shashank/scilab-master_5.5.2/thirdparty/flexdock-1.2.4.jar
+FLIBS = -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. -lpthread -ldl -lcurses -lgfortran -lm -lquadmath
+FOP = /home/shashank/scilab-master_5.5.2/thirdparty/fop.jar
+FREEHEP_GRAPHICS2D = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-graphics2d.jar
+FREEHEP_GRAPHICSIO = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-graphicsio.jar
+FREEHEP_GRAPHICSIO_EMF = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-graphicsio-emf.jar
+FREEHEP_IO = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-io.jar
+FREEHEP_UTIL = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-util.jar
+GENHTML =
+GETTEXT_MACRO_VERSION = 0.19
+GIWS_BIN =
+GLUEGEN2_RT = /home/shashank/scilab-master_5.5.2/thirdparty/gluegen2-rt.jar
+GMSGFMT = /usr/bin/msgfmt
+GMSGFMT_015 = /usr/bin/msgfmt
+GRAPHICS_ENABLE = yes
+GREP = /bin/grep
+GUI_ENABLE = yes
+HDF5_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include
+HDF5_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lhdf5 -lhdf5_hl
+HELP_ENABLE = yes
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+INTLLIBS =
+INTL_MACOSX_LIBS =
+JAR = /usr/lib/jvm/java-8-openjdk-amd64/bin/jar
+JAVA = /usr/lib/jvm/java-8-openjdk-amd64/bin/java
+JAVAC = /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
+JAVAC_DEBUG = off
+JAVADOC = /usr/lib/jvm/java-8-openjdk-amd64/bin/javadoc
+JAVAH = /usr/lib/jvm/java-8-openjdk-amd64/bin/javah
+JAVASCI_ENABLE = yes
+JAVA_ENABLE = yes
+JAVA_G = /usr/lib/jvm/java-8-openjdk-amd64/bin/java
+JAVA_HOME = /usr/lib/jvm/java-8-openjdk-amd64
+JAVA_JNI_INCLUDE = -I/usr/lib/jvm/java-8-openjdk-amd64/include -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux
+JAVA_JNI_LIBS = -L/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64 -ljava -lverify -L/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server -ljvm
+JDB = /usr/lib/jvm/java-8-openjdk-amd64/bin/jdb
+JEUCLID_CORE = /home/shashank/scilab-master_5.5.2/thirdparty/jeuclid-core.jar
+JGRAPHX = /home/shashank/scilab-master_5.5.2/thirdparty/jgraphx.jar
+JHALL = /home/shashank/scilab-master_5.5.2/thirdparty/jhall.jar
+JLATEXMATH = /home/shashank/scilab-master_5.5.2/thirdparty/jlatexmath-1.0.3.jar
+JLATEXMATH_FOP = /home/shashank/scilab-master_5.5.2/thirdparty/jlatexmath-fop-1.0.3.jar
+JOGL2 = /home/shashank/scilab-master_5.5.2/thirdparty/jogl2.jar
+JROSETTA_API = /home/shashank/scilab-master_5.5.2/thirdparty/jrosetta-API.jar
+JROSETTA_ENGINE = /home/shashank/scilab-master_5.5.2/thirdparty/jrosetta-engine.jar
+JUNIT4 = /usr/share/java/junit4.jar
+LAPACK_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -llapack
+LCOV =
+LD = /usr/bin/ld -m elf_x86_64
+LDFLAGS = -Wl,--no-as-needed
+LIBICONV = -liconv
+LIBINTL =
+LIBM = -lm
+LIBOBJS =
+LIBS = -lpthread -ldl -lcurses -lm
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO =
+LN_S = ln -s
+LOGGING_LEVEL = SEVERE
+LOOKS = /home/shashank/scilab-master_5.5.2/thirdparty/looks-2.1.1.jar
+LTLIBICONV = -liconv
+LTLIBINTL =
+LTLIBOBJS =
+MAINT = #
+MAKEINFO = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing makeinfo
+MANIFEST_TOOL = :
+MATIO_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include
+MATIO_ENABLE = yes
+MATIO_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lm -lz -lmatio -lhdf5
+MKDIR_P = /bin/mkdir -p
+MPI_ENABLE = no
+MSGCAT = /usr/bin/msgcat
+MSGFMT = /usr/bin/msgfmt
+MSGFMT_015 = /usr/bin/msgfmt
+MSGMERGE = /usr/bin/msgmerge
+NM = nm
+NMEDIT =
+OBJDUMP = objdump
+OBJEXT = o
+OCAMLC = ocamlc
+OCAMLDEP = ocamldep
+OCAMLLEX = ocamllex
+OCAMLOPT = ocamlopt
+OCAMLYACC = ocamlyacc
+OPENMPI_CC =
+OPENMPI_CFLAGS =
+OPENMPI_CXX =
+OPENMPI_CXXFLAGS =
+OPENMPI_LIBS =
+OPENMP_CFLAGS = -fopenmp
+OPENMP_CXXFLAGS = -fopenmp
+OPENMP_ENABLE = yes
+OPENMP_LIBS = -lgomp -lstdc++
+OTOOL =
+OTOOL64 =
+PACKAGE = scilab
+PACKAGE_BUGREPORT = http://bugzilla.scilab.org/
+PACKAGE_NAME = Scilab
+PACKAGE_STRING = Scilab 5
+PACKAGE_TARNAME = scilab
+PACKAGE_URL =
+PACKAGE_VERSION = 5
+PATH_SEPARATOR = :
+PCRE_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include
+PCRE_CONFIG = /home/shashank/scilab-master_5.5.2/usr/bin/pcre-config
+PCRE_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lpcreposix -lpcre
+PCRE_VERSION = 8.35
+PKG_CONFIG = /usr/bin/pkg-config
+POSUB = po
+POW_LIB =
+PYTHON =
+RANLIB = ranlib
+RELOCATABLE = no
+RT_LIB = -lrt
+SAXON = /home/shashank/scilab-master_5.5.2/thirdparty/saxon9he.jar
+SCILAB_BINARY_VERSION = 5.5.2
+SCILAB_LIBRARY_VERSION = 5:5:2
+SCILAB_VERSION_MAINTENANCE = 2
+SCILAB_VERSION_MAJOR = 5
+SCILAB_VERSION_MINOR = 5
+SCIRENDERER = ${modules.dir}/scirenderer/${build.jar.dir}/scirenderer.jar
+SCIRENDERER_CP = $SCILAB/modules/scirenderer/jar/scirenderer.jar
+SCI_CFLAGS = -D_LARGEFILE64_SOURCE -DNDEBUG -m64 -fno-stack-protector
+SCI_CXXFLAGS = -DNDEBUG -fno-stack-protector
+SCI_FFLAGS = -DNDEBUG -m64 -fPIC
+SCI_LDFLAGS =
+SED = /bin/sed
+SET_MAKE =
+SET_RELOCATABLE =
+SHELL = /bin/bash
+SKINLF = /home/shashank/scilab-master_5.5.2/thirdparty/skinlf.jar
+SPLINT = no
+STRIP = strip
+SWIG_BIN =
+SWIG_JAVA =
+SWIG_RUNTIME_LIBS_DIR =
+SWIG_SCILAB =
+TCLTK_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -ltk8.5 -L/home/shashank/scilab-master_5.5.2/usr/lib -ltcl8.5 -ldl
+TCL_INC_PATH = -I/home/shashank/scilab-master_5.5.2/usr/include
+TK_INC_PATH = -I/home/shashank/scilab-master_5.5.2/usr/include
+UMFPACK_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include
+UMFPACK_ENABLE = yes
+UMFPACK_LIB = -L/home/shashank/scilab-master_5.5.2/usr/lib -lumfpack -lamd
+USE_NLS = yes
+VERSION = 5
+WITH_OCAML =
+WITH_TKSCI = yes
+XCOS_ENABLE = yes
+XGETTEXT = /usr/bin/xgettext
+XGETTEXT_015 = /usr/bin/xgettext
+XGETTEXT_EXTRA_OPTIONS =
+XMKMF =
+XMLGRAPHICS_COMMONS = /home/shashank/scilab-master_5.5.2/thirdparty/xmlgraphics-commons-1.4.jar
+XML_APIS_EXT = /home/shashank/scilab-master_5.5.2/thirdparty/xml-apis-ext.jar
+XML_CONFIG = /home/shashank/scilab-master_5.5.2/usr/bin/xml2-config
+XML_FLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include/libxml2
+XML_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lxml2 -L/home/scilab/work/linux-prerequisites-sources/trunk/Dev-Tools/SE/Prerequirements/linux_x64/usr/lib -lz -lm -ldl
+XML_VERSION = 2.9.1
+X_CFLAGS =
+X_EXTRA_LIBS =
+X_LIBS =
+X_PRE_LIBS =
+abs_builddir = /home/shashank/scilab-master_5.5.2/modules/signal_processing
+abs_srcdir = /home/shashank/scilab-master_5.5.2/modules/signal_processing
+abs_top_builddir = /home/shashank/scilab-master_5.5.2
+abs_top_srcdir = /home/shashank/scilab-master_5.5.2
+ac_ct_AR = ar
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_DUMPBIN =
+ac_ct_F77 = gfortran
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = $${TAR-tar} chof - "$$tardir"
+am__untar = $${TAR-tar} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-unknown-linux-gnu
+build_alias =
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = unknown
+builddir = .
+cxx_present = yes
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-unknown-linux-gnu
+host_alias =
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = unknown
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/shashank/scilab-master_5.5.2/config/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias =
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
+SIGNAL_PROCESSING_C_SOURCES = src/c/corrtable.c \
+src/c/conv2.c
+
+SIGNAL_PROCESSING_FORTRAN_SOURCES = src/fortran/degree.f \
+src/fortran/parcha.f \
+src/fortran/ouch.f \
+src/fortran/dfftbi.f \
+src/fortran/dsqrtc.f \
+src/fortran/tranze.f \
+src/fortran/tscccf.f \
+src/fortran/dsn2.f \
+src/fortran/hammin.f \
+src/fortran/bounn.f \
+src/fortran/nstabl.f \
+src/fortran/ino.f \
+src/fortran/desia.f \
+src/fortran/desi11.f \
+src/fortran/cmpse3.f \
+src/fortran/cheby.f \
+src/fortran/trbize.f \
+src/fortran/r2tx.f \
+src/fortran/deli2.f \
+src/fortran/gee.f \
+src/fortran/r4tx.f \
+src/fortran/transn.f \
+src/fortran/r8tx.f \
+src/fortran/deli11.f \
+src/fortran/compel.f \
+src/fortran/filbut.f \
+src/fortran/desi01.f \
+src/fortran/desi22.f \
+src/fortran/amell.f \
+src/fortran/desi24.f \
+src/fortran/dellk.f \
+src/fortran/syredi.f \
+src/fortran/coeft.f \
+src/fortran/tranpo.f \
+src/fortran/blnumz.f \
+src/fortran/sn.f \
+src/fortran/bldenz.f \
+src/fortran/desib.f \
+src/fortran/freque.f \
+src/fortran/desi12.f \
+src/fortran/cmpse2.f \
+src/fortran/desi14.f \
+src/fortran/delip.f \
+src/fortran/deli1.f \
+src/fortran/trbipo.f \
+src/fortran/rpem.f \
+src/fortran/dfft2.f \
+src/fortran/dgee01.f \
+src/fortran/romeg.f \
+src/fortran/snell.f \
+src/fortran/fft842.f \
+src/fortran/tg02ad.f \
+src/fortran/remez.f \
+src/fortran/poles.f \
+src/fortran/desi00.f \
+src/fortran/desi21.f \
+src/fortran/dfftmx.f
+
+GATEWAY_C_SOURCES = sci_gateway/c/sci_remez.c \
+sci_gateway/c/sci_rpem.c \
+sci_gateway/c/sci_corr.c \
+sci_gateway/c/sci_ffir.c \
+sci_gateway/c/sci_fiir.c \
+sci_gateway/c/sci_amell.c \
+sci_gateway/c/gw_signal.c \
+sci_gateway/c/sci_delip.c \
+sci_gateway/c/sci_fft.c \
+sci_gateway/c/sci_syredi.c \
+sci_gateway/c/sci_conv2.c
+
+GATEWAY_FORTRAN_SOURCES = sci_gateway/fortran/sci_f_delip.f \
+sci_gateway/fortran/sci_f_fft.f \
+sci_gateway/fortran/sci_f_syredi.f \
+sci_gateway/fortran/sci_f_remez.f \
+sci_gateway/fortran/sci_f_rpem.f \
+sci_gateway/fortran/sci_f_corr.f \
+sci_gateway/fortran/sci_f_fiir.f \
+sci_gateway/fortran/sci_f_amell.f \
+sci_gateway/fortran/bgetx.f \
+sci_gateway/fortran/bgety.f \
+sci_gateway/fortran/Ex-corr.f
+
+libscisignal_processing_la_CPPFLAGS = -I$(srcdir)/includes/ \
+-I$(srcdir)/src/c/ \
+-I$(top_srcdir)/modules/api_scilab/includes/ \
+-I$(top_srcdir)/modules/localization/includes/ \
+-I$(top_srcdir)/modules/output_stream/includes/ \
+-I$(top_srcdir)/modules/dynamic_link/includes/ \
+$(AM_CPPFLAGS)
+
+pkglib_LTLIBRARIES = libscisignal_processing.la
+noinst_LTLIBRARIES = libscisignal_processing-algo.la
+libscisignal_processing_algo_la_SOURCES = $(SIGNAL_PROCESSING_FORTRAN_SOURCES) $(SIGNAL_PROCESSING_C_SOURCES)
+libscisignal_processing_la_SOURCES = $(GATEWAY_C_SOURCES) $(GATEWAY_FORTRAN_SOURCES)
+libscisignal_processing_algo_la_CPPFLAGS = $(libscisignal_processing_la_CPPFLAGS)
+
+# For the code check (splint)
+CHECK_SRC = $(SIGNAL_PROCESSING_C_SOURCES) $(GATEWAY_C_SOURCES)
+INCLUDE_FLAGS = $(libscisignal_processing_la_CPPFLAGS)
+libscisignal_processing_la_LIBADD = libscisignal_processing-algo.la
+
+#### Target ######
+modulename = signal_processing
+
+#### signal_processing : Conf files ####
+libscisignal_processing_la_rootdir = $(mydatadir)
+libscisignal_processing_la_root_DATA = license.txt
+
+####�signal_processing : init scripts ####
+libscisignal_processing_la_etcdir = $(mydatadir)/etc
+libscisignal_processing_la_etc_DATA = etc/signal_processing.quit etc/signal_processing.start
+
+####�signal_processing : gateway declaration ####
+libscisignal_processing_la_sci_gatewaydir = $(mydatadir)/sci_gateway
+libscisignal_processing_la_sci_gateway_DATA = sci_gateway/signal_processing_gateway.xml
+
+# Where all the Scilab stuff is installed (macros, help, ...)
+mydatadir = $(pkgdatadir)/modules/$(modulename)
+
+# Set AM_* SCI detected settings
+AM_CPPFLAGS = $(SCI_CPPFLAGS)
+AM_CFLAGS = $(SCI_CFLAGS)
+AM_CXXFLAGS = $(SCI_CXXFLAGS)
+# append includes to AM_FFLAGS to manage fortran includes
+AM_FFLAGS = $(SCI_FFLAGS) -I$(top_srcdir)/modules/core/includes/
+
+# Tag shared libraries with the Scilab version
+AM_LDFLAGS = $(SCI_LDFLAGS) -version-number $(SCILAB_LIBRARY_VERSION)
+
+# splint options
+SPLINT_OPTIONS = -weak -booltype BOOL
+
+########################### JAVA ######################################
+#### We are delegating java compilation to ant... Thanks to that
+#### the procedure will be the same with Microsoft Windows (C)
+#### and Linux/Unix
+#######################################################################
+TARGETS_ALL = $(am__append_1)
+
+################ MACROS ######################
+# Rule to build a macro
+# NOT USED AT THE MOMENT
+SUFFIXES = .sci
+
+########### INSTALL DOCUMENTATION ###################
+
+# Install documentation files into the right target
+# We do not use the automake mechanism (libxxxx_la_help_fr_DATA) because
+# automake needs the html files to be present which is not the case when
+# we are building Scilab
+
+# Where it should be installed
+pkgdocdir = $(mydatadir)
+
+# What is the mask of the help source
+DOCMASKXML = *.xml
+
+# What is the mask of the MathML sources
+DOCMASKMML = *.mml
+
+########### INSTALL DATA ###################
+# Install macros, help & demos
+# Where it should be installed
+pkgmacrosdir = $(mydatadir)
+# Which directory we process
+MACRODIRS = macros/
+# Mask of the Scilab sources macros
+MACROMASK = *.sci
+# Mask of the Scilab executable sources macros
+MACROBUILDMASK = *.sce
+# Mask of the Scilab compiled macros
+MACROBINMASK = *.bin
+# List of the standard directory for tests
+TESTS_DIR = tests/benchmarks tests/nonreg_tests tests/unit_tests tests/java
+# Where the demos should be installed
+pkgdemosdir = $(mydatadir)
+# List of the standard directory for demos
+DEMOS_DIR = demos
+# List of the standard directory for examples
+EXAMPLES_DIR = examples
+# Where to export JAVA archives (.jar)
+JARDIR = jar/
+# JAR files mask
+JARMASK = *.jar
+# Chapter file
+HELP_CHAPTERDIR = help/
+HELP_CHAPTERFILE = addchapter.sce
+HELP_CHAPTERLANG = en_US fr_FR pt_BR
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .sci .bin .c .f .lo .o .obj
+$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(top_srcdir)/Makefile.incl.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign modules/signal_processing/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign modules/signal_processing/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+$(top_srcdir)/Makefile.incl.am:
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: # $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ }
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+src/fortran/$(am__dirstamp):
+ @$(MKDIR_P) src/fortran
+ @: > src/fortran/$(am__dirstamp)
+src/fortran/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/fortran/$(DEPDIR)
+ @: > src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/degree.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/parcha.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/ouch.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/dfftbi.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/dsqrtc.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/tranze.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/tscccf.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/dsn2.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/hammin.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/bounn.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/nstabl.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/ino.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desia.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi11.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/cmpse3.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/cheby.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/trbize.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/r2tx.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/deli2.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/gee.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/r4tx.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/transn.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/r8tx.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/deli11.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/compel.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/filbut.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi01.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi22.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/amell.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi24.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/dellk.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/syredi.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/coeft.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/tranpo.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/blnumz.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/sn.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/bldenz.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desib.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/freque.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi12.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/cmpse2.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi14.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/delip.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/deli1.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/trbipo.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/rpem.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/dfft2.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/dgee01.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/romeg.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/snell.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/fft842.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/tg02ad.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/remez.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/poles.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi00.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi21.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/dfftmx.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/c/$(am__dirstamp):
+ @$(MKDIR_P) src/c
+ @: > src/c/$(am__dirstamp)
+src/c/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/c/$(DEPDIR)
+ @: > src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscisignal_processing_algo_la-corrtable.lo: \
+ src/c/$(am__dirstamp) src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscisignal_processing_algo_la-conv2.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+
+libscisignal_processing-algo.la: $(libscisignal_processing_algo_la_OBJECTS) $(libscisignal_processing_algo_la_DEPENDENCIES) $(EXTRA_libscisignal_processing_algo_la_DEPENDENCIES)
+ $(AM_V_F77LD)$(F77LINK) $(libscisignal_processing_algo_la_OBJECTS) $(libscisignal_processing_algo_la_LIBADD) $(LIBS)
+sci_gateway/c/$(am__dirstamp):
+ @$(MKDIR_P) sci_gateway/c
+ @: > sci_gateway/c/$(am__dirstamp)
+sci_gateway/c/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) sci_gateway/c/$(DEPDIR)
+ @: > sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_remez.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_rpem.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_corr.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_ffir.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_fiir.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_amell.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-gw_signal.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_delip.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_fft.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_syredi.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_conv2.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/$(am__dirstamp):
+ @$(MKDIR_P) sci_gateway/fortran
+ @: > sci_gateway/fortran/$(am__dirstamp)
+sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) sci_gateway/fortran/$(DEPDIR)
+ @: > sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_delip.lo: \
+ sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_fft.lo: sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_syredi.lo: \
+ sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_remez.lo: \
+ sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_rpem.lo: \
+ sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_corr.lo: \
+ sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_fiir.lo: \
+ sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_amell.lo: \
+ sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/bgetx.lo: sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/bgety.lo: sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/Ex-corr.lo: sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+
+libscisignal_processing.la: $(libscisignal_processing_la_OBJECTS) $(libscisignal_processing_la_DEPENDENCIES) $(EXTRA_libscisignal_processing_la_DEPENDENCIES)
+ $(AM_V_F77LD)$(F77LINK) -rpath $(pkglibdir) $(libscisignal_processing_la_OBJECTS) $(libscisignal_processing_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+ -rm -f sci_gateway/c/*.$(OBJEXT)
+ -rm -f sci_gateway/c/*.lo
+ -rm -f sci_gateway/fortran/*.$(OBJEXT)
+ -rm -f sci_gateway/fortran/*.lo
+ -rm -f src/c/*.$(OBJEXT)
+ -rm -f src/c/*.lo
+ -rm -f src/fortran/*.$(OBJEXT)
+ -rm -f src/fortran/*.lo
+
+distclean-compile:
+ -rm -f *.tab.c
+
+include sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-gw_signal.Plo
+include sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_amell.Plo
+include sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_conv2.Plo
+include sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_corr.Plo
+include sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_delip.Plo
+include sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_ffir.Plo
+include sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fft.Plo
+include sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fiir.Plo
+include sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_remez.Plo
+include sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_rpem.Plo
+include sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_syredi.Plo
+include src/c/$(DEPDIR)/libscisignal_processing_algo_la-conv2.Plo
+include src/c/$(DEPDIR)/libscisignal_processing_algo_la-corrtable.Plo
+
+.c.o:
+ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ $(am__mv) $$depbase.Tpo $$depbase.Po
+# $(AM_V_CC)source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+ $(am__mv) $$depbase.Tpo $$depbase.Po
+# $(AM_V_CC)source='$<' object='$@' libtool=no \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ $(am__mv) $$depbase.Tpo $$depbase.Plo
+# $(AM_V_CC)source='$<' object='$@' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $<
+
+src/c/libscisignal_processing_algo_la-corrtable.lo: src/c/corrtable.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscisignal_processing_algo_la-corrtable.lo -MD -MP -MF src/c/$(DEPDIR)/libscisignal_processing_algo_la-corrtable.Tpo -c -o src/c/libscisignal_processing_algo_la-corrtable.lo `test -f 'src/c/corrtable.c' || echo '$(srcdir)/'`src/c/corrtable.c
+ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscisignal_processing_algo_la-corrtable.Tpo src/c/$(DEPDIR)/libscisignal_processing_algo_la-corrtable.Plo
+# $(AM_V_CC)source='src/c/corrtable.c' object='src/c/libscisignal_processing_algo_la-corrtable.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscisignal_processing_algo_la-corrtable.lo `test -f 'src/c/corrtable.c' || echo '$(srcdir)/'`src/c/corrtable.c
+
+src/c/libscisignal_processing_algo_la-conv2.lo: src/c/conv2.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscisignal_processing_algo_la-conv2.lo -MD -MP -MF src/c/$(DEPDIR)/libscisignal_processing_algo_la-conv2.Tpo -c -o src/c/libscisignal_processing_algo_la-conv2.lo `test -f 'src/c/conv2.c' || echo '$(srcdir)/'`src/c/conv2.c
+ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscisignal_processing_algo_la-conv2.Tpo src/c/$(DEPDIR)/libscisignal_processing_algo_la-conv2.Plo
+# $(AM_V_CC)source='src/c/conv2.c' object='src/c/libscisignal_processing_algo_la-conv2.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscisignal_processing_algo_la-conv2.lo `test -f 'src/c/conv2.c' || echo '$(srcdir)/'`src/c/conv2.c
+
+sci_gateway/c/libscisignal_processing_la-sci_remez.lo: sci_gateway/c/sci_remez.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_remez.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_remez.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_remez.lo `test -f 'sci_gateway/c/sci_remez.c' || echo '$(srcdir)/'`sci_gateway/c/sci_remez.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_remez.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_remez.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_remez.c' object='sci_gateway/c/libscisignal_processing_la-sci_remez.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_remez.lo `test -f 'sci_gateway/c/sci_remez.c' || echo '$(srcdir)/'`sci_gateway/c/sci_remez.c
+
+sci_gateway/c/libscisignal_processing_la-sci_rpem.lo: sci_gateway/c/sci_rpem.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_rpem.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_rpem.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_rpem.lo `test -f 'sci_gateway/c/sci_rpem.c' || echo '$(srcdir)/'`sci_gateway/c/sci_rpem.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_rpem.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_rpem.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_rpem.c' object='sci_gateway/c/libscisignal_processing_la-sci_rpem.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_rpem.lo `test -f 'sci_gateway/c/sci_rpem.c' || echo '$(srcdir)/'`sci_gateway/c/sci_rpem.c
+
+sci_gateway/c/libscisignal_processing_la-sci_corr.lo: sci_gateway/c/sci_corr.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_corr.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_corr.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_corr.lo `test -f 'sci_gateway/c/sci_corr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_corr.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_corr.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_corr.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_corr.c' object='sci_gateway/c/libscisignal_processing_la-sci_corr.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_corr.lo `test -f 'sci_gateway/c/sci_corr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_corr.c
+
+sci_gateway/c/libscisignal_processing_la-sci_ffir.lo: sci_gateway/c/sci_ffir.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_ffir.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_ffir.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_ffir.lo `test -f 'sci_gateway/c/sci_ffir.c' || echo '$(srcdir)/'`sci_gateway/c/sci_ffir.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_ffir.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_ffir.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_ffir.c' object='sci_gateway/c/libscisignal_processing_la-sci_ffir.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_ffir.lo `test -f 'sci_gateway/c/sci_ffir.c' || echo '$(srcdir)/'`sci_gateway/c/sci_ffir.c
+
+sci_gateway/c/libscisignal_processing_la-sci_fiir.lo: sci_gateway/c/sci_fiir.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_fiir.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fiir.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_fiir.lo `test -f 'sci_gateway/c/sci_fiir.c' || echo '$(srcdir)/'`sci_gateway/c/sci_fiir.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fiir.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fiir.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_fiir.c' object='sci_gateway/c/libscisignal_processing_la-sci_fiir.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_fiir.lo `test -f 'sci_gateway/c/sci_fiir.c' || echo '$(srcdir)/'`sci_gateway/c/sci_fiir.c
+
+sci_gateway/c/libscisignal_processing_la-sci_amell.lo: sci_gateway/c/sci_amell.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_amell.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_amell.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_amell.lo `test -f 'sci_gateway/c/sci_amell.c' || echo '$(srcdir)/'`sci_gateway/c/sci_amell.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_amell.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_amell.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_amell.c' object='sci_gateway/c/libscisignal_processing_la-sci_amell.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_amell.lo `test -f 'sci_gateway/c/sci_amell.c' || echo '$(srcdir)/'`sci_gateway/c/sci_amell.c
+
+sci_gateway/c/libscisignal_processing_la-gw_signal.lo: sci_gateway/c/gw_signal.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-gw_signal.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-gw_signal.Tpo -c -o sci_gateway/c/libscisignal_processing_la-gw_signal.lo `test -f 'sci_gateway/c/gw_signal.c' || echo '$(srcdir)/'`sci_gateway/c/gw_signal.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-gw_signal.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-gw_signal.Plo
+# $(AM_V_CC)source='sci_gateway/c/gw_signal.c' object='sci_gateway/c/libscisignal_processing_la-gw_signal.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-gw_signal.lo `test -f 'sci_gateway/c/gw_signal.c' || echo '$(srcdir)/'`sci_gateway/c/gw_signal.c
+
+sci_gateway/c/libscisignal_processing_la-sci_delip.lo: sci_gateway/c/sci_delip.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_delip.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_delip.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_delip.lo `test -f 'sci_gateway/c/sci_delip.c' || echo '$(srcdir)/'`sci_gateway/c/sci_delip.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_delip.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_delip.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_delip.c' object='sci_gateway/c/libscisignal_processing_la-sci_delip.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_delip.lo `test -f 'sci_gateway/c/sci_delip.c' || echo '$(srcdir)/'`sci_gateway/c/sci_delip.c
+
+sci_gateway/c/libscisignal_processing_la-sci_fft.lo: sci_gateway/c/sci_fft.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_fft.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fft.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_fft.lo `test -f 'sci_gateway/c/sci_fft.c' || echo '$(srcdir)/'`sci_gateway/c/sci_fft.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fft.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fft.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_fft.c' object='sci_gateway/c/libscisignal_processing_la-sci_fft.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_fft.lo `test -f 'sci_gateway/c/sci_fft.c' || echo '$(srcdir)/'`sci_gateway/c/sci_fft.c
+
+sci_gateway/c/libscisignal_processing_la-sci_syredi.lo: sci_gateway/c/sci_syredi.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_syredi.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_syredi.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_syredi.lo `test -f 'sci_gateway/c/sci_syredi.c' || echo '$(srcdir)/'`sci_gateway/c/sci_syredi.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_syredi.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_syredi.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_syredi.c' object='sci_gateway/c/libscisignal_processing_la-sci_syredi.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_syredi.lo `test -f 'sci_gateway/c/sci_syredi.c' || echo '$(srcdir)/'`sci_gateway/c/sci_syredi.c
+
+sci_gateway/c/libscisignal_processing_la-sci_conv2.lo: sci_gateway/c/sci_conv2.c
+ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_conv2.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_conv2.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_conv2.lo `test -f 'sci_gateway/c/sci_conv2.c' || echo '$(srcdir)/'`sci_gateway/c/sci_conv2.c
+ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_conv2.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_conv2.Plo
+# $(AM_V_CC)source='sci_gateway/c/sci_conv2.c' object='sci_gateway/c/libscisignal_processing_la-sci_conv2.lo' libtool=yes \
+# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_conv2.lo `test -f 'sci_gateway/c/sci_conv2.c' || echo '$(srcdir)/'`sci_gateway/c/sci_conv2.c
+
+.f.o:
+ $(AM_V_F77)$(F77COMPILE) -c -o $@ $<
+
+.f.obj:
+ $(AM_V_F77)$(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.f.lo:
+ $(AM_V_F77)$(LTF77COMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+ -rm -rf sci_gateway/c/.libs sci_gateway/c/_libs
+ -rm -rf sci_gateway/fortran/.libs sci_gateway/fortran/_libs
+ -rm -rf src/c/.libs src/c/_libs
+ -rm -rf src/fortran/.libs src/fortran/_libs
+install-libscisignal_processing_la_etcDATA: $(libscisignal_processing_la_etc_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(libscisignal_processing_la_etc_DATA)'; test -n "$(libscisignal_processing_la_etcdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libscisignal_processing_la_etcdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libscisignal_processing_la_etcdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscisignal_processing_la_etcdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(libscisignal_processing_la_etcdir)" || exit $$?; \
+ done
+
+uninstall-libscisignal_processing_la_etcDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(libscisignal_processing_la_etc_DATA)'; test -n "$(libscisignal_processing_la_etcdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(libscisignal_processing_la_etcdir)'; $(am__uninstall_files_from_dir)
+install-libscisignal_processing_la_rootDATA: $(libscisignal_processing_la_root_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(libscisignal_processing_la_root_DATA)'; test -n "$(libscisignal_processing_la_rootdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libscisignal_processing_la_rootdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libscisignal_processing_la_rootdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscisignal_processing_la_rootdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(libscisignal_processing_la_rootdir)" || exit $$?; \
+ done
+
+uninstall-libscisignal_processing_la_rootDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(libscisignal_processing_la_root_DATA)'; test -n "$(libscisignal_processing_la_rootdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(libscisignal_processing_la_rootdir)'; $(am__uninstall_files_from_dir)
+install-libscisignal_processing_la_sci_gatewayDATA: $(libscisignal_processing_la_sci_gateway_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(libscisignal_processing_la_sci_gateway_DATA)'; test -n "$(libscisignal_processing_la_sci_gatewaydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libscisignal_processing_la_sci_gatewaydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libscisignal_processing_la_sci_gatewaydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscisignal_processing_la_sci_gatewaydir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(libscisignal_processing_la_sci_gatewaydir)" || exit $$?; \
+ done
+
+uninstall-libscisignal_processing_la_sci_gatewayDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(libscisignal_processing_la_sci_gateway_DATA)'; test -n "$(libscisignal_processing_la_sci_gatewaydir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(libscisignal_processing_la_sci_gatewaydir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-local
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA) all-local
+installdirs:
+ for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(libscisignal_processing_la_etcdir)" "$(DESTDIR)$(libscisignal_processing_la_rootdir)" "$(DESTDIR)$(libscisignal_processing_la_sci_gatewaydir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -rm -f sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+ -rm -f sci_gateway/c/$(am__dirstamp)
+ -rm -f sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+ -rm -f sci_gateway/fortran/$(am__dirstamp)
+ -rm -f src/c/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/c/$(am__dirstamp)
+ -rm -f src/fortran/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/fortran/$(am__dirstamp)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local \
+ clean-noinstLTLIBRARIES clean-pkglibLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf sci_gateway/c/$(DEPDIR) src/c/$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-local distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local \
+ install-libscisignal_processing_la_etcDATA \
+ install-libscisignal_processing_la_rootDATA \
+ install-libscisignal_processing_la_sci_gatewayDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pkglibLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am: install-html-local
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf sci_gateway/c/$(DEPDIR) src/c/$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libscisignal_processing_la_etcDATA \
+ uninstall-libscisignal_processing_la_rootDATA \
+ uninstall-libscisignal_processing_la_sci_gatewayDATA \
+ uninstall-pkglibLTLIBRARIES
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am \
+ check-local clean clean-generic clean-libtool clean-local \
+ clean-noinstLTLIBRARIES clean-pkglibLTLIBRARIES cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-local distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-local install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-html-local install-info \
+ install-info-am install-libscisignal_processing_la_etcDATA \
+ install-libscisignal_processing_la_rootDATA \
+ install-libscisignal_processing_la_sci_gatewayDATA install-man \
+ install-pdf install-pdf-am install-pkglibLTLIBRARIES \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am \
+ uninstall-libscisignal_processing_la_etcDATA \
+ uninstall-libscisignal_processing_la_rootDATA \
+ uninstall-libscisignal_processing_la_sci_gatewayDATA \
+ uninstall-pkglibLTLIBRARIES
+
+
+# This target enables tests for Scilab
+check-local: $(top_builddir)/scilab-bin test
+ if test -d $(mydatadir)/tests; then \
+ @COMMAND="try test_run('$(modulename)');catch exit(-1);end;exit(0)"; export LANG=C; $(top_builddir)/bin/scilab -nwni -nb -e "$$COMMAND"; \
+ fi
+check-code:
+ if test -f build.xml; then \
+ $(ANT) checkstyle; \
+ fi
+ if test -x "$(SPLINT)"; then \
+ $(SPLINT) $(SPLINT_OPTIONS) -I$(top_srcdir)/modules/core/includes/ -I$(top_srcdir)/libs/MALLOC/includes/ -I$(top_srcdir)/modules/localization/includes/ $(INCLUDE_FLAGS) $(CHECK_SRC); \
+ fi
+java:
+# Some configurations needs to export JAVA_HOME in the current env
+ @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
+ if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
+ if test -f build.xml -a $$USEANT -eq 1; then \
+ $(ANT); \
+ fi
+
+clean-java:
+# Some configurations needs to export JAVA_HOME in the current env
+ @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
+ if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
+ if test -f build.xml -a $$USEANT -eq 1; then \
+ $(ANT) clean; \
+ fi;
+
+# If the user request for the SWIG generation of the wrappers Java => C/C++
+# We call the target swig-build on the variable SWIG_WRAPPERS
+
+#swig: $(SWIG_WRAPPERS)
+# @SWIG_PACKAGENAME=org.scilab.modules.$(modulename); \
+# SWIG_OUTDIR=src/java/org/scilab/modules/$(modulename)/; \
+# if test -n "$(SWIG_WRAPPERS)"; then \
+# for file in $(SWIG_WRAPPERS) ; do \
+# echo "Swig process of $$file (Java) ..."; \
+# $(SWIG_BIN) $(SWIG_JAVA) -package $$SWIG_PACKAGENAME -outdir $$SWIG_OUTDIR $$file; \
+# done; \
+# fi
+
+#swig-scilab: $(SWIG_SCILAB_WRAPPERS)
+# @SWIG_OUTDIR=src/swig/; \
+# if test -n "$(SWIG_SCILAB_WRAPPERS)"; then \
+# for file in $(SWIG_SCILAB_WRAPPERS) ; do \
+# echo "Swig process of $$file (Scilab) ..."; \
+# $(SWIG_BIN) $(SWIG_SCILAB) -outdir $$SWIG_OUTDIR $$file; \
+# done; \
+# fi
+
+# If the user request for the SWIG generation of the wrappers Java => C/C++
+# We call the target swig-build on the variable SWIG_WRAPPERS
+
+#giws: $(GIWS_WRAPPERS)
+# @GIWS_OUTPUTDIR=src/jni/; \
+# MANDATORY_OPTIONS="--throws-exception-on-error --description-file"; \
+# if test -n "$(GIWS_WRAPPERS)"; then \
+# for file in $(GIWS_WRAPPERS) ; do \
+# echo "GIWS process of $$file ..."; \
+# if test -z "$(GIWS_OPTIONS)"; then \
+# $(GIWS_BIN) --disable-return-size-array --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \
+# else \
+# echo "Custom GIWS call with '$$GIWS_OPTIONS'"; \
+# $(GIWS_BIN) $$GIWS_OPTIONS --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \
+# fi \
+# done; \
+# fi
+
+#giws-exception:
+# @GIWS_OUTPUTDIR=src/jni/;\
+# echo "GIWS: Generation of exception class ..."; \
+# $(GIWS_BIN) --generate-exception-class --output-dir $$GIWS_OUTPUTDIR
+
+macros:
+ -@( if test ! -x $(top_builddir)/scilab-bin; then \
+ echo "Error : Cannot build $< : Scilab has not been built"; \
+ else \
+ $(top_builddir)/bin/scilab -ns -nwni -e "exec('macros/buildmacros.sce');quit;";\
+ fi)
+
+# Removes the macros
+clean-macros:
+# Removes macros (*.bin generated from .sci)
+ @for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
+ echo "rm -f $(builddir)/$$dir/$(MACROBINMASK)"; \
+ rm -f $(builddir)/$$dir/$(MACROBINMASK); \
+ done
+
+test:
+# More tests could be added here
+ @if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
+ if test -f build.xml -a $$USEANT -eq 1; then \
+ $(ANT) test; \
+ fi
+
+all-local: $(TARGETS_ALL)
+
+.sci.bin:
+ -@( if test ! -x $(top_builddir)/scilab-bin; then \
+ echo "Error : Cannot build $< : Scilab has not been build"; \
+ else \
+ echo "Creating $@"; \
+ $(top_builddir)/bin/scilab -ns -nwni -e "exec('$(abs_srcdir)/$<');save('$(abs_srcdir)/$@');exit;"; \
+ fi )
+
+install-html-local:
+
+install-data-local-local:
+# Mainly for javasci
+ @if test -d $(srcdir)/javadoc; then \
+ cp -R $(srcdir)/javadoc $(DESTDIR)/$(mydatadir)/; \
+ fi
+# If the user wants the help sources to be installed
+ @echo "-------- Install of XML sources of help files --------"; \
+ for lang in $(ALL_LINGUAS); do \
+ if test -d $(srcdir)/help/$$lang; then \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/$$lang && \
+ if ls -lLd $(srcdir)/help/$$lang/$(DOCMASKXML) >/dev/null 2>&1; then \
+ for file in $(srcdir)/help/$$lang/$(DOCMASKXML) ; do \
+ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/$$lang" ; \
+ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/$$lang ; \
+ done ; \
+ fi; \
+ fi; \
+ done; \
+ @echo "-------- Install of MathML sources --------"; \
+ if test -d $(srcdir)/help/mml/; then \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/mml/ && \
+ if ls -lLd $(srcdir)/help/mml/$(DOCMASKMML) >/dev/null 2>&1; then \
+ for file in $(srcdir)/help/mml/$(DOCMASKMML) ; do \
+ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/mml" ; \
+ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/mml ; \
+ done ; \
+ fi; \
+ fi
+install-data-local:
+# Install the tests
+ @echo "-------- Install tests (if any) --------"; \
+ for dir in $(TESTS_DIR) $(TESTS_DIREXT) ; do \
+ if test -d $(srcdir)/$$dir/; then \
+ $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
+ for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \
+ if test -d "$(srcdir)/$$dir/$$file"; then \
+ echo $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir/$$file; \
+ $(mkinstalldirs) "$(DESTDIR)$(pkgmacrosdir)/$$dir/$$file"; \
+ else \
+ echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
+ $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
+ fi \
+ done; \
+ fi; \
+ done
+# Install the help chapter
+ @echo "-------- Install the help chapter (if any) --------"; \
+ for lang in $(HELP_CHAPTERLANG); do \
+ HELPFILE=$(srcdir)/$(HELP_CHAPTERDIR)$$lang/$(HELP_CHAPTERFILE); \
+ if test -f $$HELPFILE; then \
+ echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \
+ echo $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \
+ $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \
+ fi; \
+ done
+# Install the demos & examples
+ @echo "-------- Install demos & examples (if any) --------"; \
+ for dir in $(DEMOS_DIR) $(DEMOS_DIREXT) $(EXAMPLES_DIR) $(EXAMPLES_DIREXT) ; do \
+ if test -d $(srcdir)/$$dir/; then \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \
+ for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \
+ if test -d "$(srcdir)/$$dir/$$file"; then \
+ echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir/$$file; \
+ $(mkinstalldirs) "$(DESTDIR)$(pkgdocdir)/$$dir/$$file"; \
+ else \
+ echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \
+ $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \
+ fi \
+ done; \
+ fi; \
+ done
+# Install the macros
+ @echo "-------- Install macros (if any) --------"; \
+ for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
+ $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
+ if test -d $(srcdir)/$$dir/; then \
+ FILELIST="$(srcdir)/$$dir/$(MACROMASK) $(srcdir)/$$dir/$(MACROBINMASK) $(srcdir)/$$dir/$(MACROBUILDMASK) $(srcdir)/$$dir/names $(srcdir)/$$dir/lib";\
+ if test -n "$(MACROSSPECIALEXT)"; then \
+ specialExtDir=""; \
+ for specialExt in $(MACROSSPECIALEXT); do \
+ specialExtDir="$$specialExtDir $(srcdir)/$$dir/$$specialExt"; \
+ done; \
+ FILELIST="$$FILELIST $$specialExtDir"; \
+ fi; \
+ for file in `ls -1 $$FILELIST 2>/dev/null`; do \
+ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgmacrosdir)/$$dir" ; \
+ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgmacrosdir)/$$dir ; \
+ done; \
+ fi; \
+ done
+# Install java files (.jar)
+ @if ls -lLd $(srcdir)/$(JARDIR)$(JARMASK) >/dev/null 2>&1; then \
+ echo "-------- Install jar files --------"; \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(JARDIR); \
+ for file in $(srcdir)/$(JARDIR)$(JARMASK); do\
+ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$(JARDIR)" ; \
+ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$(JARDIR) ; \
+ done ; \
+ fi
+
+########### CLEAN ###################
+# Clean help (generated automatically by Scilab)
+# It used to clean the macro (clean-macros) but this was causing
+# make clean && make to fail Scilab startup
+clean-local: clean-java
+#clean-local:
+
+distclean-local:
+ rm -f $(builddir)/help/*/.last_successful_build_javaHelp $(builddir)/help/*/.list_*
+
+.PHONY: macros java swig giws
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/modules/signal_processing/Makefile.am b/modules/signal_processing/Makefile.am
new file mode 100755
index 000000000..f00803d8e
--- /dev/null
+++ b/modules/signal_processing/Makefile.am
@@ -0,0 +1,130 @@
+# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+# Copyright (C) 2006 - INRIA - Sylvestre LEDRU
+#
+# This file is distributed under the same license as the Scilab package.
+
+SIGNAL_PROCESSING_C_SOURCES = src/c/corrtable.c \
+src/c/conv2.c
+
+SIGNAL_PROCESSING_FORTRAN_SOURCES = src/fortran/degree.f \
+src/fortran/parcha.f \
+src/fortran/ouch.f \
+src/fortran/dfftbi.f \
+src/fortran/dsqrtc.f \
+src/fortran/tranze.f \
+src/fortran/tscccf.f \
+src/fortran/dsn2.f \
+src/fortran/hammin.f \
+src/fortran/bounn.f \
+src/fortran/nstabl.f \
+src/fortran/ino.f \
+src/fortran/desia.f \
+src/fortran/desi11.f \
+src/fortran/cmpse3.f \
+src/fortran/cheby.f \
+src/fortran/trbize.f \
+src/fortran/r2tx.f \
+src/fortran/deli2.f \
+src/fortran/gee.f \
+src/fortran/r4tx.f \
+src/fortran/transn.f \
+src/fortran/r8tx.f \
+src/fortran/deli11.f \
+src/fortran/compel.f \
+src/fortran/filbut.f \
+src/fortran/desi01.f \
+src/fortran/desi22.f \
+src/fortran/amell.f \
+src/fortran/desi24.f \
+src/fortran/dellk.f \
+src/fortran/syredi.f \
+src/fortran/coeft.f \
+src/fortran/tranpo.f \
+src/fortran/blnumz.f \
+src/fortran/sn.f \
+src/fortran/bldenz.f \
+src/fortran/desib.f \
+src/fortran/freque.f \
+src/fortran/desi12.f \
+src/fortran/cmpse2.f \
+src/fortran/desi14.f \
+src/fortran/delip.f \
+src/fortran/deli1.f \
+src/fortran/trbipo.f \
+src/fortran/rpem.f \
+src/fortran/dfft2.f \
+src/fortran/dgee01.f \
+src/fortran/romeg.f \
+src/fortran/snell.f \
+src/fortran/fft842.f \
+src/fortran/tg02ad.f \
+src/fortran/remez.f \
+src/fortran/poles.f \
+src/fortran/desi00.f \
+src/fortran/desi21.f \
+src/fortran/dfftmx.f
+
+GATEWAY_C_SOURCES = sci_gateway/c/sci_remez.c \
+sci_gateway/c/sci_rpem.c \
+sci_gateway/c/sci_corr.c \
+sci_gateway/c/sci_ffir.c \
+sci_gateway/c/sci_fiir.c \
+sci_gateway/c/sci_amell.c \
+sci_gateway/c/gw_signal.c \
+sci_gateway/c/sci_delip.c \
+sci_gateway/c/sci_fft.c \
+sci_gateway/c/sci_syredi.c \
+sci_gateway/c/sci_conv2.c
+
+GATEWAY_FORTRAN_SOURCES = sci_gateway/fortran/sci_f_delip.f \
+sci_gateway/fortran/sci_f_fft.f \
+sci_gateway/fortran/sci_f_syredi.f \
+sci_gateway/fortran/sci_f_remez.f \
+sci_gateway/fortran/sci_f_rpem.f \
+sci_gateway/fortran/sci_f_corr.f \
+sci_gateway/fortran/sci_f_fiir.f \
+sci_gateway/fortran/sci_f_amell.f \
+sci_gateway/fortran/bgetx.f \
+sci_gateway/fortran/bgety.f \
+sci_gateway/fortran/Ex-corr.f
+
+libscisignal_processing_la_CPPFLAGS = -I$(srcdir)/includes/ \
+-I$(srcdir)/src/c/ \
+-I$(top_srcdir)/modules/api_scilab/includes/ \
+-I$(top_srcdir)/modules/localization/includes/ \
+-I$(top_srcdir)/modules/output_stream/includes/ \
+-I$(top_srcdir)/modules/dynamic_link/includes/ \
+$(AM_CPPFLAGS)
+
+pkglib_LTLIBRARIES = libscisignal_processing.la
+noinst_LTLIBRARIES = libscisignal_processing-algo.la
+
+
+libscisignal_processing_algo_la_SOURCES = $(SIGNAL_PROCESSING_FORTRAN_SOURCES) $(SIGNAL_PROCESSING_C_SOURCES)
+libscisignal_processing_la_SOURCES = $(GATEWAY_C_SOURCES) $(GATEWAY_FORTRAN_SOURCES)
+libscisignal_processing_algo_la_CPPFLAGS = $(libscisignal_processing_la_CPPFLAGS)
+
+# For the code check (splint)
+CHECK_SRC= $(SIGNAL_PROCESSING_C_SOURCES) $(GATEWAY_C_SOURCES)
+INCLUDE_FLAGS = $(libscisignal_processing_la_CPPFLAGS)
+
+libscisignal_processing_la_LIBADD = libscisignal_processing-algo.la
+
+#### Target ######
+modulename=signal_processing
+
+
+#### signal_processing : Conf files ####
+libscisignal_processing_la_rootdir = $(mydatadir)
+libscisignal_processing_la_root_DATA = license.txt
+
+
+####�signal_processing : init scripts ####
+libscisignal_processing_la_etcdir = $(mydatadir)/etc
+libscisignal_processing_la_etc_DATA = etc/signal_processing.quit etc/signal_processing.start
+
+####�signal_processing : gateway declaration ####
+libscisignal_processing_la_sci_gatewaydir = $(mydatadir)/sci_gateway
+libscisignal_processing_la_sci_gateway_DATA = sci_gateway/signal_processing_gateway.xml
+
+include $(top_srcdir)/Makefile.incl.am
diff --git a/modules/signal_processing/Makefile.in b/modules/signal_processing/Makefile.in
new file mode 100755
index 000000000..d644e7067
--- /dev/null
+++ b/modules/signal_processing/Makefile.in
@@ -0,0 +1,1747 @@
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+# Copyright (C) 2006 - INRIA - Sylvestre LEDRU
+#
+# This file is distributed under the same license as the Scilab package.
+
+# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+# Copyright (C) 2006-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@inria.fr>
+# Copyright (C) 2008 - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr>
+#
+# This file must be used under the terms of the CeCILL.
+# This source file is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at
+# http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+#
+
+##########
+### Makefile included stuff
+### Target, variable, suffixes which are supposed to be useful in every makefile.am
+##########
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(top_srcdir)/Makefile.incl.am $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(top_srcdir)/config/mkinstalldirs \
+ $(top_srcdir)/config/depcomp
+@NEED_JAVA_TRUE@am__append_1 = java
+subdir = modules/signal_processing
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/backtrace.m4 \
+ $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/curl.m4 \
+ $(top_srcdir)/m4/docbook.m4 $(top_srcdir)/m4/doxygen.m4 \
+ $(top_srcdir)/m4/fftw.m4 $(top_srcdir)/m4/fortran.m4 \
+ $(top_srcdir)/m4/giws.m4 $(top_srcdir)/m4/hdf5.m4 \
+ $(top_srcdir)/m4/intel_compiler.m4 \
+ $(top_srcdir)/m4/java-thirdparty.m4 $(top_srcdir)/m4/java.m4 \
+ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/libsmath.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/libxml2.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/macosx.m4 \
+ $(top_srcdir)/m4/mpi.m4 $(top_srcdir)/m4/ocaml.m4 \
+ $(top_srcdir)/m4/pcre.m4 $(top_srcdir)/m4/pkg.m4 \
+ $(top_srcdir)/m4/relocatable.m4 $(top_srcdir)/m4/swig.m4 \
+ $(top_srcdir)/m4/symlinks.m4 $(top_srcdir)/m4/tcltk.m4 \
+ $(top_srcdir)/m4/umfpack.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/modules/core/includes/machine.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(pkglibdir)" \
+ "$(DESTDIR)$(libscisignal_processing_la_etcdir)" \
+ "$(DESTDIR)$(libscisignal_processing_la_rootdir)" \
+ "$(DESTDIR)$(libscisignal_processing_la_sci_gatewaydir)"
+LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES)
+libscisignal_processing_algo_la_LIBADD =
+am__dirstamp = $(am__leading_dot)dirstamp
+am__objects_1 = src/fortran/degree.lo src/fortran/parcha.lo \
+ src/fortran/ouch.lo src/fortran/dfftbi.lo \
+ src/fortran/dsqrtc.lo src/fortran/tranze.lo \
+ src/fortran/tscccf.lo src/fortran/dsn2.lo \
+ src/fortran/hammin.lo src/fortran/bounn.lo \
+ src/fortran/nstabl.lo src/fortran/ino.lo src/fortran/desia.lo \
+ src/fortran/desi11.lo src/fortran/cmpse3.lo \
+ src/fortran/cheby.lo src/fortran/trbize.lo src/fortran/r2tx.lo \
+ src/fortran/deli2.lo src/fortran/gee.lo src/fortran/r4tx.lo \
+ src/fortran/transn.lo src/fortran/r8tx.lo \
+ src/fortran/deli11.lo src/fortran/compel.lo \
+ src/fortran/filbut.lo src/fortran/desi01.lo \
+ src/fortran/desi22.lo src/fortran/amell.lo \
+ src/fortran/desi24.lo src/fortran/dellk.lo \
+ src/fortran/syredi.lo src/fortran/coeft.lo \
+ src/fortran/tranpo.lo src/fortran/blnumz.lo src/fortran/sn.lo \
+ src/fortran/bldenz.lo src/fortran/desib.lo \
+ src/fortran/freque.lo src/fortran/desi12.lo \
+ src/fortran/cmpse2.lo src/fortran/desi14.lo \
+ src/fortran/delip.lo src/fortran/deli1.lo \
+ src/fortran/trbipo.lo src/fortran/rpem.lo src/fortran/dfft2.lo \
+ src/fortran/dgee01.lo src/fortran/romeg.lo \
+ src/fortran/snell.lo src/fortran/fft842.lo \
+ src/fortran/tg02ad.lo src/fortran/remez.lo \
+ src/fortran/poles.lo src/fortran/desi00.lo \
+ src/fortran/desi21.lo src/fortran/dfftmx.lo
+am__objects_2 = src/c/libscisignal_processing_algo_la-corrtable.lo \
+ src/c/libscisignal_processing_algo_la-conv2.lo
+am_libscisignal_processing_algo_la_OBJECTS = $(am__objects_1) \
+ $(am__objects_2)
+libscisignal_processing_algo_la_OBJECTS = \
+ $(am_libscisignal_processing_algo_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+libscisignal_processing_la_DEPENDENCIES = \
+ libscisignal_processing-algo.la
+am__objects_3 = sci_gateway/c/libscisignal_processing_la-sci_remez.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_rpem.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_corr.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_ffir.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_fiir.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_amell.lo \
+ sci_gateway/c/libscisignal_processing_la-gw_signal.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_delip.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_fft.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_syredi.lo \
+ sci_gateway/c/libscisignal_processing_la-sci_conv2.lo
+am__objects_4 = sci_gateway/fortran/sci_f_delip.lo \
+ sci_gateway/fortran/sci_f_fft.lo \
+ sci_gateway/fortran/sci_f_syredi.lo \
+ sci_gateway/fortran/sci_f_remez.lo \
+ sci_gateway/fortran/sci_f_rpem.lo \
+ sci_gateway/fortran/sci_f_corr.lo \
+ sci_gateway/fortran/sci_f_fiir.lo \
+ sci_gateway/fortran/sci_f_amell.lo \
+ sci_gateway/fortran/bgetx.lo sci_gateway/fortran/bgety.lo \
+ sci_gateway/fortran/Ex-corr.lo
+am_libscisignal_processing_la_OBJECTS = $(am__objects_3) \
+ $(am__objects_4)
+libscisignal_processing_la_OBJECTS = \
+ $(am_libscisignal_processing_la_OBJECTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/modules/core/includes
+depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS)
+LTF77COMPILE = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS)
+AM_V_F77 = $(am__v_F77_@AM_V@)
+am__v_F77_ = $(am__v_F77_@AM_DEFAULT_V@)
+am__v_F77_0 = @echo " F77 " $@;
+am__v_F77_1 =
+F77LD = $(F77)
+F77LINK = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(F77LD) $(AM_FFLAGS) $(FFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_F77LD = $(am__v_F77LD_@AM_V@)
+am__v_F77LD_ = $(am__v_F77LD_@AM_DEFAULT_V@)
+am__v_F77LD_0 = @echo " F77LD " $@;
+am__v_F77LD_1 =
+SOURCES = $(libscisignal_processing_algo_la_SOURCES) \
+ $(libscisignal_processing_la_SOURCES)
+DIST_SOURCES = $(libscisignal_processing_algo_la_SOURCES) \
+ $(libscisignal_processing_la_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+DATA = $(libscisignal_processing_la_etc_DATA) \
+ $(libscisignal_processing_la_root_DATA) \
+ $(libscisignal_processing_la_sci_gateway_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+ALL_LINGUAS_DOC = @ALL_LINGUAS_DOC@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+ANT = @ANT@
+ANTLR = @ANTLR@
+AR = @AR@
+ARPACK_LIBS = @ARPACK_LIBS@
+ASM3 = @ASM3@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AVALON_FRAMEWORK = @AVALON_FRAMEWORK@
+AWK = @AWK@
+BATIK = @BATIK@
+BLAS_LIBS = @BLAS_LIBS@
+CC = @CC@
+CCACHE = @CCACHE@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECKSTYLE = @CHECKSTYLE@
+COBERTURA = @COBERTURA@
+COMMONS_BEANUTILS = @COMMONS_BEANUTILS@
+COMMONS_IO = @COMMONS_IO@
+COMMONS_LOGGING = @COMMONS_LOGGING@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURL_CFLAGS = @CURL_CFLAGS@
+CURL_CONFIG = @CURL_CONFIG@
+CURL_LIBS = @CURL_LIBS@
+CURL_VERSION = @CURL_VERSION@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEMOTOOLS_ENABLE = @DEMOTOOLS_ENABLE@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DOCBOOK_ROOT = @DOCBOOK_ROOT@
+DOXYGEN_BIN = @DOXYGEN_BIN@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+ECJ = @ECJ@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FFTW3_LIB = @FFTW3_LIB@
+FFTW_ENABLE = @FFTW_ENABLE@
+FGREP = @FGREP@
+FLEXDOCK = @FLEXDOCK@
+FLIBS = @FLIBS@
+FOP = @FOP@
+FREEHEP_GRAPHICS2D = @FREEHEP_GRAPHICS2D@
+FREEHEP_GRAPHICSIO = @FREEHEP_GRAPHICSIO@
+FREEHEP_GRAPHICSIO_EMF = @FREEHEP_GRAPHICSIO_EMF@
+FREEHEP_IO = @FREEHEP_IO@
+FREEHEP_UTIL = @FREEHEP_UTIL@
+GENHTML = @GENHTML@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GIWS_BIN = @GIWS_BIN@
+GLUEGEN2_RT = @GLUEGEN2_RT@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GRAPHICS_ENABLE = @GRAPHICS_ENABLE@
+GREP = @GREP@
+GUI_ENABLE = @GUI_ENABLE@
+HDF5_CFLAGS = @HDF5_CFLAGS@
+HDF5_LIBS = @HDF5_LIBS@
+HELP_ENABLE = @HELP_ENABLE@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+JAR = @JAR@
+JAVA = @JAVA@
+JAVAC = @JAVAC@
+JAVAC_DEBUG = @JAVAC_DEBUG@
+JAVADOC = @JAVADOC@
+JAVAH = @JAVAH@
+JAVASCI_ENABLE = @JAVASCI_ENABLE@
+JAVA_ENABLE = @JAVA_ENABLE@
+JAVA_G = @JAVA_G@
+JAVA_HOME = @JAVA_HOME@
+JAVA_JNI_INCLUDE = @JAVA_JNI_INCLUDE@
+JAVA_JNI_LIBS = @JAVA_JNI_LIBS@
+JDB = @JDB@
+JEUCLID_CORE = @JEUCLID_CORE@
+JGRAPHX = @JGRAPHX@
+JHALL = @JHALL@
+JLATEXMATH = @JLATEXMATH@
+JLATEXMATH_FOP = @JLATEXMATH_FOP@
+JOGL2 = @JOGL2@
+JROSETTA_API = @JROSETTA_API@
+JROSETTA_ENGINE = @JROSETTA_ENGINE@
+JUNIT4 = @JUNIT4@
+LAPACK_LIBS = @LAPACK_LIBS@
+LCOV = @LCOV@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBM = @LIBM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LOGGING_LEVEL = @LOGGING_LEVEL@
+LOOKS = @LOOKS@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MATIO_CFLAGS = @MATIO_CFLAGS@
+MATIO_ENABLE = @MATIO_ENABLE@
+MATIO_LIBS = @MATIO_LIBS@
+MKDIR_P = @MKDIR_P@
+MPI_ENABLE = @MPI_ENABLE@
+MSGCAT = @MSGCAT@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OCAMLC = @OCAMLC@
+OCAMLDEP = @OCAMLDEP@
+OCAMLLEX = @OCAMLLEX@
+OCAMLOPT = @OCAMLOPT@
+OCAMLYACC = @OCAMLYACC@
+OPENMPI_CC = @OPENMPI_CC@
+OPENMPI_CFLAGS = @OPENMPI_CFLAGS@
+OPENMPI_CXX = @OPENMPI_CXX@
+OPENMPI_CXXFLAGS = @OPENMPI_CXXFLAGS@
+OPENMPI_LIBS = @OPENMPI_LIBS@
+OPENMP_CFLAGS = @OPENMP_CFLAGS@
+OPENMP_CXXFLAGS = @OPENMP_CXXFLAGS@
+OPENMP_ENABLE = @OPENMP_ENABLE@
+OPENMP_LIBS = @OPENMP_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCRE_CFLAGS = @PCRE_CFLAGS@
+PCRE_CONFIG = @PCRE_CONFIG@
+PCRE_LIBS = @PCRE_LIBS@
+PCRE_VERSION = @PCRE_VERSION@
+PKG_CONFIG = @PKG_CONFIG@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+PYTHON = @PYTHON@
+RANLIB = @RANLIB@
+RELOCATABLE = @RELOCATABLE@
+RT_LIB = @RT_LIB@
+SAXON = @SAXON@
+SCILAB_BINARY_VERSION = @SCILAB_BINARY_VERSION@
+SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
+SCILAB_VERSION_MAINTENANCE = @SCILAB_VERSION_MAINTENANCE@
+SCILAB_VERSION_MAJOR = @SCILAB_VERSION_MAJOR@
+SCILAB_VERSION_MINOR = @SCILAB_VERSION_MINOR@
+SCIRENDERER = @SCIRENDERER@
+SCIRENDERER_CP = @SCIRENDERER_CP@
+SCI_CFLAGS = @SCI_CFLAGS@
+SCI_CXXFLAGS = @SCI_CXXFLAGS@
+SCI_FFLAGS = @SCI_FFLAGS@
+SCI_LDFLAGS = @SCI_LDFLAGS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SET_RELOCATABLE = @SET_RELOCATABLE@
+SHELL = @SHELL@
+SKINLF = @SKINLF@
+SPLINT = @SPLINT@
+STRIP = @STRIP@
+SWIG_BIN = @SWIG_BIN@
+SWIG_JAVA = @SWIG_JAVA@
+SWIG_RUNTIME_LIBS_DIR = @SWIG_RUNTIME_LIBS_DIR@
+SWIG_SCILAB = @SWIG_SCILAB@
+TCLTK_LIBS = @TCLTK_LIBS@
+TCL_INC_PATH = @TCL_INC_PATH@
+TK_INC_PATH = @TK_INC_PATH@
+UMFPACK_CFLAGS = @UMFPACK_CFLAGS@
+UMFPACK_ENABLE = @UMFPACK_ENABLE@
+UMFPACK_LIB = @UMFPACK_LIB@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WITH_OCAML = @WITH_OCAML@
+WITH_TKSCI = @WITH_TKSCI@
+XCOS_ENABLE = @XCOS_ENABLE@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XMKMF = @XMKMF@
+XMLGRAPHICS_COMMONS = @XMLGRAPHICS_COMMONS@
+XML_APIS_EXT = @XML_APIS_EXT@
+XML_CONFIG = @XML_CONFIG@
+XML_FLAGS = @XML_FLAGS@
+XML_LIBS = @XML_LIBS@
+XML_VERSION = @XML_VERSION@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+cxx_present = @cxx_present@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SIGNAL_PROCESSING_C_SOURCES = src/c/corrtable.c \
+src/c/conv2.c
+
+SIGNAL_PROCESSING_FORTRAN_SOURCES = src/fortran/degree.f \
+src/fortran/parcha.f \
+src/fortran/ouch.f \
+src/fortran/dfftbi.f \
+src/fortran/dsqrtc.f \
+src/fortran/tranze.f \
+src/fortran/tscccf.f \
+src/fortran/dsn2.f \
+src/fortran/hammin.f \
+src/fortran/bounn.f \
+src/fortran/nstabl.f \
+src/fortran/ino.f \
+src/fortran/desia.f \
+src/fortran/desi11.f \
+src/fortran/cmpse3.f \
+src/fortran/cheby.f \
+src/fortran/trbize.f \
+src/fortran/r2tx.f \
+src/fortran/deli2.f \
+src/fortran/gee.f \
+src/fortran/r4tx.f \
+src/fortran/transn.f \
+src/fortran/r8tx.f \
+src/fortran/deli11.f \
+src/fortran/compel.f \
+src/fortran/filbut.f \
+src/fortran/desi01.f \
+src/fortran/desi22.f \
+src/fortran/amell.f \
+src/fortran/desi24.f \
+src/fortran/dellk.f \
+src/fortran/syredi.f \
+src/fortran/coeft.f \
+src/fortran/tranpo.f \
+src/fortran/blnumz.f \
+src/fortran/sn.f \
+src/fortran/bldenz.f \
+src/fortran/desib.f \
+src/fortran/freque.f \
+src/fortran/desi12.f \
+src/fortran/cmpse2.f \
+src/fortran/desi14.f \
+src/fortran/delip.f \
+src/fortran/deli1.f \
+src/fortran/trbipo.f \
+src/fortran/rpem.f \
+src/fortran/dfft2.f \
+src/fortran/dgee01.f \
+src/fortran/romeg.f \
+src/fortran/snell.f \
+src/fortran/fft842.f \
+src/fortran/tg02ad.f \
+src/fortran/remez.f \
+src/fortran/poles.f \
+src/fortran/desi00.f \
+src/fortran/desi21.f \
+src/fortran/dfftmx.f
+
+GATEWAY_C_SOURCES = sci_gateway/c/sci_remez.c \
+sci_gateway/c/sci_rpem.c \
+sci_gateway/c/sci_corr.c \
+sci_gateway/c/sci_ffir.c \
+sci_gateway/c/sci_fiir.c \
+sci_gateway/c/sci_amell.c \
+sci_gateway/c/gw_signal.c \
+sci_gateway/c/sci_delip.c \
+sci_gateway/c/sci_fft.c \
+sci_gateway/c/sci_syredi.c \
+sci_gateway/c/sci_conv2.c
+
+GATEWAY_FORTRAN_SOURCES = sci_gateway/fortran/sci_f_delip.f \
+sci_gateway/fortran/sci_f_fft.f \
+sci_gateway/fortran/sci_f_syredi.f \
+sci_gateway/fortran/sci_f_remez.f \
+sci_gateway/fortran/sci_f_rpem.f \
+sci_gateway/fortran/sci_f_corr.f \
+sci_gateway/fortran/sci_f_fiir.f \
+sci_gateway/fortran/sci_f_amell.f \
+sci_gateway/fortran/bgetx.f \
+sci_gateway/fortran/bgety.f \
+sci_gateway/fortran/Ex-corr.f
+
+libscisignal_processing_la_CPPFLAGS = -I$(srcdir)/includes/ \
+-I$(srcdir)/src/c/ \
+-I$(top_srcdir)/modules/api_scilab/includes/ \
+-I$(top_srcdir)/modules/localization/includes/ \
+-I$(top_srcdir)/modules/output_stream/includes/ \
+-I$(top_srcdir)/modules/dynamic_link/includes/ \
+$(AM_CPPFLAGS)
+
+pkglib_LTLIBRARIES = libscisignal_processing.la
+noinst_LTLIBRARIES = libscisignal_processing-algo.la
+libscisignal_processing_algo_la_SOURCES = $(SIGNAL_PROCESSING_FORTRAN_SOURCES) $(SIGNAL_PROCESSING_C_SOURCES)
+libscisignal_processing_la_SOURCES = $(GATEWAY_C_SOURCES) $(GATEWAY_FORTRAN_SOURCES)
+libscisignal_processing_algo_la_CPPFLAGS = $(libscisignal_processing_la_CPPFLAGS)
+
+# For the code check (splint)
+CHECK_SRC = $(SIGNAL_PROCESSING_C_SOURCES) $(GATEWAY_C_SOURCES)
+INCLUDE_FLAGS = $(libscisignal_processing_la_CPPFLAGS)
+libscisignal_processing_la_LIBADD = libscisignal_processing-algo.la
+
+#### Target ######
+modulename = signal_processing
+
+#### signal_processing : Conf files ####
+libscisignal_processing_la_rootdir = $(mydatadir)
+libscisignal_processing_la_root_DATA = license.txt
+
+####�signal_processing : init scripts ####
+libscisignal_processing_la_etcdir = $(mydatadir)/etc
+libscisignal_processing_la_etc_DATA = etc/signal_processing.quit etc/signal_processing.start
+
+####�signal_processing : gateway declaration ####
+libscisignal_processing_la_sci_gatewaydir = $(mydatadir)/sci_gateway
+libscisignal_processing_la_sci_gateway_DATA = sci_gateway/signal_processing_gateway.xml
+
+# Where all the Scilab stuff is installed (macros, help, ...)
+mydatadir = $(pkgdatadir)/modules/$(modulename)
+
+# Set AM_* SCI detected settings
+AM_CPPFLAGS = $(SCI_CPPFLAGS)
+AM_CFLAGS = $(SCI_CFLAGS)
+AM_CXXFLAGS = $(SCI_CXXFLAGS)
+# append includes to AM_FFLAGS to manage fortran includes
+AM_FFLAGS = $(SCI_FFLAGS) -I$(top_srcdir)/modules/core/includes/
+
+# Tag shared libraries with the Scilab version
+AM_LDFLAGS = $(SCI_LDFLAGS) -version-number $(SCILAB_LIBRARY_VERSION)
+
+# splint options
+SPLINT_OPTIONS = -weak -booltype BOOL
+
+########################### JAVA ######################################
+#### We are delegating java compilation to ant... Thanks to that
+#### the procedure will be the same with Microsoft Windows (C)
+#### and Linux/Unix
+#######################################################################
+TARGETS_ALL = $(am__append_1)
+
+################ MACROS ######################
+# Rule to build a macro
+# NOT USED AT THE MOMENT
+SUFFIXES = .sci
+
+########### INSTALL DOCUMENTATION ###################
+
+# Install documentation files into the right target
+# We do not use the automake mechanism (libxxxx_la_help_fr_DATA) because
+# automake needs the html files to be present which is not the case when
+# we are building Scilab
+
+# Where it should be installed
+pkgdocdir = $(mydatadir)
+
+# What is the mask of the help source
+DOCMASKXML = *.xml
+
+# What is the mask of the MathML sources
+DOCMASKMML = *.mml
+
+########### INSTALL DATA ###################
+# Install macros, help & demos
+# Where it should be installed
+pkgmacrosdir = $(mydatadir)
+# Which directory we process
+MACRODIRS = macros/
+# Mask of the Scilab sources macros
+MACROMASK = *.sci
+# Mask of the Scilab executable sources macros
+MACROBUILDMASK = *.sce
+# Mask of the Scilab compiled macros
+MACROBINMASK = *.bin
+# List of the standard directory for tests
+TESTS_DIR = tests/benchmarks tests/nonreg_tests tests/unit_tests tests/java
+# Where the demos should be installed
+pkgdemosdir = $(mydatadir)
+# List of the standard directory for demos
+DEMOS_DIR = demos
+# List of the standard directory for examples
+EXAMPLES_DIR = examples
+# Where to export JAVA archives (.jar)
+JARDIR = jar/
+# JAR files mask
+JARMASK = *.jar
+# Chapter file
+HELP_CHAPTERDIR = help/
+HELP_CHAPTERFILE = addchapter.sce
+HELP_CHAPTERLANG = en_US fr_FR pt_BR
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .sci .bin .c .f .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.incl.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign modules/signal_processing/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign modules/signal_processing/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+$(top_srcdir)/Makefile.incl.am:
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstLTLIBRARIES:
+ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ @list='$(noinst_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+ }
+
+uninstall-pkglibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+ done
+
+clean-pkglibLTLIBRARIES:
+ -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
+ @list='$(pkglib_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+src/fortran/$(am__dirstamp):
+ @$(MKDIR_P) src/fortran
+ @: > src/fortran/$(am__dirstamp)
+src/fortran/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/fortran/$(DEPDIR)
+ @: > src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/degree.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/parcha.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/ouch.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/dfftbi.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/dsqrtc.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/tranze.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/tscccf.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/dsn2.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/hammin.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/bounn.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/nstabl.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/ino.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desia.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi11.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/cmpse3.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/cheby.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/trbize.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/r2tx.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/deli2.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/gee.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/r4tx.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/transn.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/r8tx.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/deli11.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/compel.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/filbut.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi01.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi22.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/amell.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi24.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/dellk.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/syredi.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/coeft.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/tranpo.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/blnumz.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/sn.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/bldenz.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desib.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/freque.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi12.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/cmpse2.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi14.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/delip.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/deli1.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/trbipo.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/rpem.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/dfft2.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/dgee01.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/romeg.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/snell.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/fft842.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/tg02ad.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/remez.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/poles.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi00.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/desi21.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/fortran/dfftmx.lo: src/fortran/$(am__dirstamp) \
+ src/fortran/$(DEPDIR)/$(am__dirstamp)
+src/c/$(am__dirstamp):
+ @$(MKDIR_P) src/c
+ @: > src/c/$(am__dirstamp)
+src/c/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/c/$(DEPDIR)
+ @: > src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscisignal_processing_algo_la-corrtable.lo: \
+ src/c/$(am__dirstamp) src/c/$(DEPDIR)/$(am__dirstamp)
+src/c/libscisignal_processing_algo_la-conv2.lo: src/c/$(am__dirstamp) \
+ src/c/$(DEPDIR)/$(am__dirstamp)
+
+libscisignal_processing-algo.la: $(libscisignal_processing_algo_la_OBJECTS) $(libscisignal_processing_algo_la_DEPENDENCIES) $(EXTRA_libscisignal_processing_algo_la_DEPENDENCIES)
+ $(AM_V_F77LD)$(F77LINK) $(libscisignal_processing_algo_la_OBJECTS) $(libscisignal_processing_algo_la_LIBADD) $(LIBS)
+sci_gateway/c/$(am__dirstamp):
+ @$(MKDIR_P) sci_gateway/c
+ @: > sci_gateway/c/$(am__dirstamp)
+sci_gateway/c/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) sci_gateway/c/$(DEPDIR)
+ @: > sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_remez.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_rpem.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_corr.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_ffir.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_fiir.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_amell.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-gw_signal.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_delip.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_fft.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_syredi.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/c/libscisignal_processing_la-sci_conv2.lo: \
+ sci_gateway/c/$(am__dirstamp) \
+ sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/$(am__dirstamp):
+ @$(MKDIR_P) sci_gateway/fortran
+ @: > sci_gateway/fortran/$(am__dirstamp)
+sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) sci_gateway/fortran/$(DEPDIR)
+ @: > sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_delip.lo: \
+ sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_fft.lo: sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_syredi.lo: \
+ sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_remez.lo: \
+ sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_rpem.lo: \
+ sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_corr.lo: \
+ sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_fiir.lo: \
+ sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/sci_f_amell.lo: \
+ sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/bgetx.lo: sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/bgety.lo: sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+sci_gateway/fortran/Ex-corr.lo: sci_gateway/fortran/$(am__dirstamp) \
+ sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+
+libscisignal_processing.la: $(libscisignal_processing_la_OBJECTS) $(libscisignal_processing_la_DEPENDENCIES) $(EXTRA_libscisignal_processing_la_DEPENDENCIES)
+ $(AM_V_F77LD)$(F77LINK) -rpath $(pkglibdir) $(libscisignal_processing_la_OBJECTS) $(libscisignal_processing_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+ -rm -f sci_gateway/c/*.$(OBJEXT)
+ -rm -f sci_gateway/c/*.lo
+ -rm -f sci_gateway/fortran/*.$(OBJEXT)
+ -rm -f sci_gateway/fortran/*.lo
+ -rm -f src/c/*.$(OBJEXT)
+ -rm -f src/c/*.lo
+ -rm -f src/fortran/*.$(OBJEXT)
+ -rm -f src/fortran/*.lo
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-gw_signal.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_amell.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_conv2.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_corr.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_delip.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_ffir.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fft.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fiir.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_remez.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_rpem.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_syredi.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscisignal_processing_algo_la-conv2.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscisignal_processing_algo_la-corrtable.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+src/c/libscisignal_processing_algo_la-corrtable.lo: src/c/corrtable.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscisignal_processing_algo_la-corrtable.lo -MD -MP -MF src/c/$(DEPDIR)/libscisignal_processing_algo_la-corrtable.Tpo -c -o src/c/libscisignal_processing_algo_la-corrtable.lo `test -f 'src/c/corrtable.c' || echo '$(srcdir)/'`src/c/corrtable.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscisignal_processing_algo_la-corrtable.Tpo src/c/$(DEPDIR)/libscisignal_processing_algo_la-corrtable.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/corrtable.c' object='src/c/libscisignal_processing_algo_la-corrtable.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscisignal_processing_algo_la-corrtable.lo `test -f 'src/c/corrtable.c' || echo '$(srcdir)/'`src/c/corrtable.c
+
+src/c/libscisignal_processing_algo_la-conv2.lo: src/c/conv2.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscisignal_processing_algo_la-conv2.lo -MD -MP -MF src/c/$(DEPDIR)/libscisignal_processing_algo_la-conv2.Tpo -c -o src/c/libscisignal_processing_algo_la-conv2.lo `test -f 'src/c/conv2.c' || echo '$(srcdir)/'`src/c/conv2.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscisignal_processing_algo_la-conv2.Tpo src/c/$(DEPDIR)/libscisignal_processing_algo_la-conv2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/conv2.c' object='src/c/libscisignal_processing_algo_la-conv2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscisignal_processing_algo_la-conv2.lo `test -f 'src/c/conv2.c' || echo '$(srcdir)/'`src/c/conv2.c
+
+sci_gateway/c/libscisignal_processing_la-sci_remez.lo: sci_gateway/c/sci_remez.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_remez.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_remez.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_remez.lo `test -f 'sci_gateway/c/sci_remez.c' || echo '$(srcdir)/'`sci_gateway/c/sci_remez.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_remez.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_remez.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_remez.c' object='sci_gateway/c/libscisignal_processing_la-sci_remez.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_remez.lo `test -f 'sci_gateway/c/sci_remez.c' || echo '$(srcdir)/'`sci_gateway/c/sci_remez.c
+
+sci_gateway/c/libscisignal_processing_la-sci_rpem.lo: sci_gateway/c/sci_rpem.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_rpem.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_rpem.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_rpem.lo `test -f 'sci_gateway/c/sci_rpem.c' || echo '$(srcdir)/'`sci_gateway/c/sci_rpem.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_rpem.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_rpem.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_rpem.c' object='sci_gateway/c/libscisignal_processing_la-sci_rpem.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_rpem.lo `test -f 'sci_gateway/c/sci_rpem.c' || echo '$(srcdir)/'`sci_gateway/c/sci_rpem.c
+
+sci_gateway/c/libscisignal_processing_la-sci_corr.lo: sci_gateway/c/sci_corr.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_corr.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_corr.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_corr.lo `test -f 'sci_gateway/c/sci_corr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_corr.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_corr.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_corr.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_corr.c' object='sci_gateway/c/libscisignal_processing_la-sci_corr.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_corr.lo `test -f 'sci_gateway/c/sci_corr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_corr.c
+
+sci_gateway/c/libscisignal_processing_la-sci_ffir.lo: sci_gateway/c/sci_ffir.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_ffir.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_ffir.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_ffir.lo `test -f 'sci_gateway/c/sci_ffir.c' || echo '$(srcdir)/'`sci_gateway/c/sci_ffir.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_ffir.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_ffir.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_ffir.c' object='sci_gateway/c/libscisignal_processing_la-sci_ffir.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_ffir.lo `test -f 'sci_gateway/c/sci_ffir.c' || echo '$(srcdir)/'`sci_gateway/c/sci_ffir.c
+
+sci_gateway/c/libscisignal_processing_la-sci_fiir.lo: sci_gateway/c/sci_fiir.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_fiir.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fiir.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_fiir.lo `test -f 'sci_gateway/c/sci_fiir.c' || echo '$(srcdir)/'`sci_gateway/c/sci_fiir.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fiir.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fiir.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_fiir.c' object='sci_gateway/c/libscisignal_processing_la-sci_fiir.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_fiir.lo `test -f 'sci_gateway/c/sci_fiir.c' || echo '$(srcdir)/'`sci_gateway/c/sci_fiir.c
+
+sci_gateway/c/libscisignal_processing_la-sci_amell.lo: sci_gateway/c/sci_amell.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_amell.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_amell.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_amell.lo `test -f 'sci_gateway/c/sci_amell.c' || echo '$(srcdir)/'`sci_gateway/c/sci_amell.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_amell.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_amell.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_amell.c' object='sci_gateway/c/libscisignal_processing_la-sci_amell.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_amell.lo `test -f 'sci_gateway/c/sci_amell.c' || echo '$(srcdir)/'`sci_gateway/c/sci_amell.c
+
+sci_gateway/c/libscisignal_processing_la-gw_signal.lo: sci_gateway/c/gw_signal.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-gw_signal.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-gw_signal.Tpo -c -o sci_gateway/c/libscisignal_processing_la-gw_signal.lo `test -f 'sci_gateway/c/gw_signal.c' || echo '$(srcdir)/'`sci_gateway/c/gw_signal.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-gw_signal.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-gw_signal.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/gw_signal.c' object='sci_gateway/c/libscisignal_processing_la-gw_signal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-gw_signal.lo `test -f 'sci_gateway/c/gw_signal.c' || echo '$(srcdir)/'`sci_gateway/c/gw_signal.c
+
+sci_gateway/c/libscisignal_processing_la-sci_delip.lo: sci_gateway/c/sci_delip.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_delip.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_delip.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_delip.lo `test -f 'sci_gateway/c/sci_delip.c' || echo '$(srcdir)/'`sci_gateway/c/sci_delip.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_delip.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_delip.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_delip.c' object='sci_gateway/c/libscisignal_processing_la-sci_delip.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_delip.lo `test -f 'sci_gateway/c/sci_delip.c' || echo '$(srcdir)/'`sci_gateway/c/sci_delip.c
+
+sci_gateway/c/libscisignal_processing_la-sci_fft.lo: sci_gateway/c/sci_fft.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_fft.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fft.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_fft.lo `test -f 'sci_gateway/c/sci_fft.c' || echo '$(srcdir)/'`sci_gateway/c/sci_fft.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fft.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_fft.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_fft.c' object='sci_gateway/c/libscisignal_processing_la-sci_fft.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_fft.lo `test -f 'sci_gateway/c/sci_fft.c' || echo '$(srcdir)/'`sci_gateway/c/sci_fft.c
+
+sci_gateway/c/libscisignal_processing_la-sci_syredi.lo: sci_gateway/c/sci_syredi.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_syredi.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_syredi.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_syredi.lo `test -f 'sci_gateway/c/sci_syredi.c' || echo '$(srcdir)/'`sci_gateway/c/sci_syredi.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_syredi.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_syredi.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_syredi.c' object='sci_gateway/c/libscisignal_processing_la-sci_syredi.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_syredi.lo `test -f 'sci_gateway/c/sci_syredi.c' || echo '$(srcdir)/'`sci_gateway/c/sci_syredi.c
+
+sci_gateway/c/libscisignal_processing_la-sci_conv2.lo: sci_gateway/c/sci_conv2.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscisignal_processing_la-sci_conv2.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_conv2.Tpo -c -o sci_gateway/c/libscisignal_processing_la-sci_conv2.lo `test -f 'sci_gateway/c/sci_conv2.c' || echo '$(srcdir)/'`sci_gateway/c/sci_conv2.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_conv2.Tpo sci_gateway/c/$(DEPDIR)/libscisignal_processing_la-sci_conv2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_conv2.c' object='sci_gateway/c/libscisignal_processing_la-sci_conv2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisignal_processing_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscisignal_processing_la-sci_conv2.lo `test -f 'sci_gateway/c/sci_conv2.c' || echo '$(srcdir)/'`sci_gateway/c/sci_conv2.c
+
+.f.o:
+ $(AM_V_F77)$(F77COMPILE) -c -o $@ $<
+
+.f.obj:
+ $(AM_V_F77)$(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.f.lo:
+ $(AM_V_F77)$(LTF77COMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+ -rm -rf sci_gateway/c/.libs sci_gateway/c/_libs
+ -rm -rf sci_gateway/fortran/.libs sci_gateway/fortran/_libs
+ -rm -rf src/c/.libs src/c/_libs
+ -rm -rf src/fortran/.libs src/fortran/_libs
+install-libscisignal_processing_la_etcDATA: $(libscisignal_processing_la_etc_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(libscisignal_processing_la_etc_DATA)'; test -n "$(libscisignal_processing_la_etcdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libscisignal_processing_la_etcdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libscisignal_processing_la_etcdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscisignal_processing_la_etcdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(libscisignal_processing_la_etcdir)" || exit $$?; \
+ done
+
+uninstall-libscisignal_processing_la_etcDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(libscisignal_processing_la_etc_DATA)'; test -n "$(libscisignal_processing_la_etcdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(libscisignal_processing_la_etcdir)'; $(am__uninstall_files_from_dir)
+install-libscisignal_processing_la_rootDATA: $(libscisignal_processing_la_root_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(libscisignal_processing_la_root_DATA)'; test -n "$(libscisignal_processing_la_rootdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libscisignal_processing_la_rootdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libscisignal_processing_la_rootdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscisignal_processing_la_rootdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(libscisignal_processing_la_rootdir)" || exit $$?; \
+ done
+
+uninstall-libscisignal_processing_la_rootDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(libscisignal_processing_la_root_DATA)'; test -n "$(libscisignal_processing_la_rootdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(libscisignal_processing_la_rootdir)'; $(am__uninstall_files_from_dir)
+install-libscisignal_processing_la_sci_gatewayDATA: $(libscisignal_processing_la_sci_gateway_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(libscisignal_processing_la_sci_gateway_DATA)'; test -n "$(libscisignal_processing_la_sci_gatewaydir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libscisignal_processing_la_sci_gatewaydir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libscisignal_processing_la_sci_gatewaydir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscisignal_processing_la_sci_gatewaydir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(libscisignal_processing_la_sci_gatewaydir)" || exit $$?; \
+ done
+
+uninstall-libscisignal_processing_la_sci_gatewayDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(libscisignal_processing_la_sci_gateway_DATA)'; test -n "$(libscisignal_processing_la_sci_gatewaydir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(libscisignal_processing_la_sci_gatewaydir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-local
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA) all-local
+installdirs:
+ for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(libscisignal_processing_la_etcdir)" "$(DESTDIR)$(libscisignal_processing_la_rootdir)" "$(DESTDIR)$(libscisignal_processing_la_sci_gatewaydir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -rm -f sci_gateway/c/$(DEPDIR)/$(am__dirstamp)
+ -rm -f sci_gateway/c/$(am__dirstamp)
+ -rm -f sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp)
+ -rm -f sci_gateway/fortran/$(am__dirstamp)
+ -rm -f src/c/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/c/$(am__dirstamp)
+ -rm -f src/fortran/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/fortran/$(am__dirstamp)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local \
+ clean-noinstLTLIBRARIES clean-pkglibLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf sci_gateway/c/$(DEPDIR) src/c/$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-local distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local \
+ install-libscisignal_processing_la_etcDATA \
+ install-libscisignal_processing_la_rootDATA \
+ install-libscisignal_processing_la_sci_gatewayDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-pkglibLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am: install-html-local
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf sci_gateway/c/$(DEPDIR) src/c/$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libscisignal_processing_la_etcDATA \
+ uninstall-libscisignal_processing_la_rootDATA \
+ uninstall-libscisignal_processing_la_sci_gatewayDATA \
+ uninstall-pkglibLTLIBRARIES
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am \
+ check-local clean clean-generic clean-libtool clean-local \
+ clean-noinstLTLIBRARIES clean-pkglibLTLIBRARIES cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-local distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-local install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-html-local install-info \
+ install-info-am install-libscisignal_processing_la_etcDATA \
+ install-libscisignal_processing_la_rootDATA \
+ install-libscisignal_processing_la_sci_gatewayDATA install-man \
+ install-pdf install-pdf-am install-pkglibLTLIBRARIES \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am \
+ uninstall-libscisignal_processing_la_etcDATA \
+ uninstall-libscisignal_processing_la_rootDATA \
+ uninstall-libscisignal_processing_la_sci_gatewayDATA \
+ uninstall-pkglibLTLIBRARIES
+
+
+# This target enables tests for Scilab
+check-local: $(top_builddir)/scilab-bin test
+ if test -d $(mydatadir)/tests; then \
+ @COMMAND="try test_run('$(modulename)');catch exit(-1);end;exit(0)"; export LANG=C; $(top_builddir)/bin/scilab -nwni -nb -e "$$COMMAND"; \
+ fi
+check-code:
+ if test -f build.xml; then \
+ $(ANT) checkstyle; \
+ fi
+ if test -x "$(SPLINT)"; then \
+ $(SPLINT) $(SPLINT_OPTIONS) -I$(top_srcdir)/modules/core/includes/ -I$(top_srcdir)/libs/MALLOC/includes/ -I$(top_srcdir)/modules/localization/includes/ $(INCLUDE_FLAGS) $(CHECK_SRC); \
+ fi
+@NEED_JAVA_TRUE@java:
+# Some configurations needs to export JAVA_HOME in the current env
+@NEED_JAVA_TRUE@ @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
+@NEED_JAVA_TRUE@ if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
+@NEED_JAVA_TRUE@ if test -f build.xml -a $$USEANT -eq 1; then \
+@NEED_JAVA_TRUE@ $(ANT); \
+@NEED_JAVA_TRUE@ fi
+
+@NEED_JAVA_TRUE@clean-java:
+# Some configurations needs to export JAVA_HOME in the current env
+@NEED_JAVA_TRUE@ @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
+@NEED_JAVA_TRUE@ if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
+@NEED_JAVA_TRUE@ if test -f build.xml -a $$USEANT -eq 1; then \
+@NEED_JAVA_TRUE@ $(ANT) clean; \
+@NEED_JAVA_TRUE@ fi;
+
+# If the user request for the SWIG generation of the wrappers Java => C/C++
+# We call the target swig-build on the variable SWIG_WRAPPERS
+
+@SWIG_TRUE@swig: $(SWIG_WRAPPERS)
+@SWIG_TRUE@ @SWIG_PACKAGENAME=org.scilab.modules.$(modulename); \
+@SWIG_TRUE@ SWIG_OUTDIR=src/java/org/scilab/modules/$(modulename)/; \
+@SWIG_TRUE@ if test -n "$(SWIG_WRAPPERS)"; then \
+@SWIG_TRUE@ for file in $(SWIG_WRAPPERS) ; do \
+@SWIG_TRUE@ echo "Swig process of $$file (Java) ..."; \
+@SWIG_TRUE@ $(SWIG_BIN) $(SWIG_JAVA) -package $$SWIG_PACKAGENAME -outdir $$SWIG_OUTDIR $$file; \
+@SWIG_TRUE@ done; \
+@SWIG_TRUE@ fi
+
+@SWIG_TRUE@swig-scilab: $(SWIG_SCILAB_WRAPPERS)
+@SWIG_TRUE@ @SWIG_OUTDIR=src/swig/; \
+@SWIG_TRUE@ if test -n "$(SWIG_SCILAB_WRAPPERS)"; then \
+@SWIG_TRUE@ for file in $(SWIG_SCILAB_WRAPPERS) ; do \
+@SWIG_TRUE@ echo "Swig process of $$file (Scilab) ..."; \
+@SWIG_TRUE@ $(SWIG_BIN) $(SWIG_SCILAB) -outdir $$SWIG_OUTDIR $$file; \
+@SWIG_TRUE@ done; \
+@SWIG_TRUE@ fi
+
+# If the user request for the SWIG generation of the wrappers Java => C/C++
+# We call the target swig-build on the variable SWIG_WRAPPERS
+
+@GIWS_TRUE@giws: $(GIWS_WRAPPERS)
+@GIWS_TRUE@ @GIWS_OUTPUTDIR=src/jni/; \
+@GIWS_TRUE@ MANDATORY_OPTIONS="--throws-exception-on-error --description-file"; \
+@GIWS_TRUE@ if test -n "$(GIWS_WRAPPERS)"; then \
+@GIWS_TRUE@ for file in $(GIWS_WRAPPERS) ; do \
+@GIWS_TRUE@ echo "GIWS process of $$file ..."; \
+@GIWS_TRUE@ if test -z "$(GIWS_OPTIONS)"; then \
+@GIWS_TRUE@ $(GIWS_BIN) --disable-return-size-array --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \
+@GIWS_TRUE@ else \
+@GIWS_TRUE@ echo "Custom GIWS call with '$$GIWS_OPTIONS'"; \
+@GIWS_TRUE@ $(GIWS_BIN) $$GIWS_OPTIONS --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \
+@GIWS_TRUE@ fi \
+@GIWS_TRUE@ done; \
+@GIWS_TRUE@ fi
+
+@GIWS_TRUE@giws-exception:
+@GIWS_TRUE@ @GIWS_OUTPUTDIR=src/jni/;\
+@GIWS_TRUE@ echo "GIWS: Generation of exception class ..."; \
+@GIWS_TRUE@ $(GIWS_BIN) --generate-exception-class --output-dir $$GIWS_OUTPUTDIR
+
+macros:
+ -@( if test ! -x $(top_builddir)/scilab-bin; then \
+ echo "Error : Cannot build $< : Scilab has not been built"; \
+ else \
+ $(top_builddir)/bin/scilab -ns -nwni -e "exec('macros/buildmacros.sce');quit;";\
+ fi)
+
+# Removes the macros
+clean-macros:
+# Removes macros (*.bin generated from .sci)
+ @for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
+ echo "rm -f $(builddir)/$$dir/$(MACROBINMASK)"; \
+ rm -f $(builddir)/$$dir/$(MACROBINMASK); \
+ done
+
+test:
+# More tests could be added here
+ @if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
+ if test -f build.xml -a $$USEANT -eq 1; then \
+ $(ANT) test; \
+ fi
+
+all-local: $(TARGETS_ALL)
+
+.sci.bin:
+ -@( if test ! -x $(top_builddir)/scilab-bin; then \
+ echo "Error : Cannot build $< : Scilab has not been build"; \
+ else \
+ echo "Creating $@"; \
+ $(top_builddir)/bin/scilab -ns -nwni -e "exec('$(abs_srcdir)/$<');save('$(abs_srcdir)/$@');exit;"; \
+ fi )
+
+install-html-local:
+
+install-data-local-local:
+# Mainly for javasci
+ @if test -d $(srcdir)/javadoc; then \
+ cp -R $(srcdir)/javadoc $(DESTDIR)/$(mydatadir)/; \
+ fi
+# If the user wants the help sources to be installed
+@INSTALL_HELP_XML_TRUE@ @echo "-------- Install of XML sources of help files --------"; \
+@INSTALL_HELP_XML_TRUE@ for lang in $(ALL_LINGUAS); do \
+@INSTALL_HELP_XML_TRUE@ if test -d $(srcdir)/help/$$lang; then \
+@INSTALL_HELP_XML_TRUE@ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/$$lang && \
+@INSTALL_HELP_XML_TRUE@ if ls -lLd $(srcdir)/help/$$lang/$(DOCMASKXML) >/dev/null 2>&1; then \
+@INSTALL_HELP_XML_TRUE@ for file in $(srcdir)/help/$$lang/$(DOCMASKXML) ; do \
+@INSTALL_HELP_XML_TRUE@ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/$$lang" ; \
+@INSTALL_HELP_XML_TRUE@ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/$$lang ; \
+@INSTALL_HELP_XML_TRUE@ done ; \
+@INSTALL_HELP_XML_TRUE@ fi; \
+@INSTALL_HELP_XML_TRUE@ fi; \
+@INSTALL_HELP_XML_TRUE@ done; \
+@INSTALL_HELP_XML_TRUE@ @echo "-------- Install of MathML sources --------"; \
+@INSTALL_HELP_XML_TRUE@ if test -d $(srcdir)/help/mml/; then \
+@INSTALL_HELP_XML_TRUE@ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/mml/ && \
+@INSTALL_HELP_XML_TRUE@ if ls -lLd $(srcdir)/help/mml/$(DOCMASKMML) >/dev/null 2>&1; then \
+@INSTALL_HELP_XML_TRUE@ for file in $(srcdir)/help/mml/$(DOCMASKMML) ; do \
+@INSTALL_HELP_XML_TRUE@ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/mml" ; \
+@INSTALL_HELP_XML_TRUE@ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/mml ; \
+@INSTALL_HELP_XML_TRUE@ done ; \
+@INSTALL_HELP_XML_TRUE@ fi; \
+@INSTALL_HELP_XML_TRUE@ fi
+install-data-local:
+# Install the tests
+ @echo "-------- Install tests (if any) --------"; \
+ for dir in $(TESTS_DIR) $(TESTS_DIREXT) ; do \
+ if test -d $(srcdir)/$$dir/; then \
+ $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
+ for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \
+ if test -d "$(srcdir)/$$dir/$$file"; then \
+ echo $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir/$$file; \
+ $(mkinstalldirs) "$(DESTDIR)$(pkgmacrosdir)/$$dir/$$file"; \
+ else \
+ echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
+ $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
+ fi \
+ done; \
+ fi; \
+ done
+# Install the help chapter
+ @echo "-------- Install the help chapter (if any) --------"; \
+ for lang in $(HELP_CHAPTERLANG); do \
+ HELPFILE=$(srcdir)/$(HELP_CHAPTERDIR)$$lang/$(HELP_CHAPTERFILE); \
+ if test -f $$HELPFILE; then \
+ echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \
+ echo $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \
+ $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \
+ fi; \
+ done
+# Install the demos & examples
+ @echo "-------- Install demos & examples (if any) --------"; \
+ for dir in $(DEMOS_DIR) $(DEMOS_DIREXT) $(EXAMPLES_DIR) $(EXAMPLES_DIREXT) ; do \
+ if test -d $(srcdir)/$$dir/; then \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \
+ for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \
+ if test -d "$(srcdir)/$$dir/$$file"; then \
+ echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir/$$file; \
+ $(mkinstalldirs) "$(DESTDIR)$(pkgdocdir)/$$dir/$$file"; \
+ else \
+ echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \
+ $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \
+ fi \
+ done; \
+ fi; \
+ done
+# Install the macros
+ @echo "-------- Install macros (if any) --------"; \
+ for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
+ $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
+ if test -d $(srcdir)/$$dir/; then \
+ FILELIST="$(srcdir)/$$dir/$(MACROMASK) $(srcdir)/$$dir/$(MACROBINMASK) $(srcdir)/$$dir/$(MACROBUILDMASK) $(srcdir)/$$dir/names $(srcdir)/$$dir/lib";\
+ if test -n "$(MACROSSPECIALEXT)"; then \
+ specialExtDir=""; \
+ for specialExt in $(MACROSSPECIALEXT); do \
+ specialExtDir="$$specialExtDir $(srcdir)/$$dir/$$specialExt"; \
+ done; \
+ FILELIST="$$FILELIST $$specialExtDir"; \
+ fi; \
+ for file in `ls -1 $$FILELIST 2>/dev/null`; do \
+ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgmacrosdir)/$$dir" ; \
+ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgmacrosdir)/$$dir ; \
+ done; \
+ fi; \
+ done
+# Install java files (.jar)
+ @if ls -lLd $(srcdir)/$(JARDIR)$(JARMASK) >/dev/null 2>&1; then \
+ echo "-------- Install jar files --------"; \
+ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(JARDIR); \
+ for file in $(srcdir)/$(JARDIR)$(JARMASK); do\
+ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$(JARDIR)" ; \
+ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$(JARDIR) ; \
+ done ; \
+ fi
+
+########### CLEAN ###################
+# Clean help (generated automatically by Scilab)
+# It used to clean the macro (clean-macros) but this was causing
+# make clean && make to fail Scilab startup
+@NEED_JAVA_TRUE@clean-local: clean-java
+@NEED_JAVA_FALSE@clean-local:
+
+distclean-local:
+ rm -f $(builddir)/help/*/.last_successful_build_javaHelp $(builddir)/help/*/.list_*
+
+.PHONY: macros java swig giws
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/modules/signal_processing/demos/arma/arma1.dem.sce b/modules/signal_processing/demos/arma/arma1.dem.sce
new file mode 100755
index 000000000..90aeef345
--- /dev/null
+++ b/modules/signal_processing/demos/arma/arma1.dem.sce
@@ -0,0 +1,60 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) - ENPC
+// Copyright (C) - DIGITEO - 2010 - Allan CORNET
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+
+// An example of arma simulation and identification
+// form ( K.J. Astrom)
+// The armax process with the following characteristics
+// a=[1,-2.851,2.717,-0.865]
+// b=[0,1,1,1]
+// d=[1,0.7,0.2]
+// is simulated with an input u of a pseudo random binary type
+//
+// We use the simulated trajectory zd
+// as an input to the armax identification macro
+// The noise in the armax is colored and armax
+// will give a biaised estimator
+
+function demo_arm1()
+ l = lines();
+ lines(0);
+
+ a = [1, -2.851, 2.717, -0.865];
+ b = [0, 1, 1, 1];
+ d = [1, 0.7, 0.2];
+ ar = armac(a, b, d, 1, 1, 1);
+ disp(_("Simulation of an ARMAX process:"));
+ disp(ar);
+ // The input
+ n = 300;
+ u = -prbs_a(n, 1, int([2.5,5,10,17.5,20,22,27,35]*100/12));
+ // simulation
+ zd = narsimul(ar, u);
+
+ // visualization
+ my_handle = scf(100001);
+ clf(my_handle,"reset");
+ plot2d(1:n,[zd',1000*u'],style=[1,3]);curves = gce();
+ legend(["Simulated output";"Input [scaled]"])
+ curves.children(1:2).polyline_style = 2 ;
+ demo_viewCode("arma1.dem.sce");
+
+ disp(_("Identification ARX (least square):"));
+ [arc,la,lb,sig,resid] = armax(3,3,zd,u,1,1);
+ disp(arc);
+
+ // using now armax1 : colored noise identification
+ // you can test the same example with
+ // n=1000; u=rand(1,n,'g') zd=narsimul(ar,u);
+ [arc1, resid] = armax1(3,3,2,zd(1:n),u,1);
+ disp(arc1);
+
+ lines(l(2), l(1));
+
+endfunction
+
+demo_arm1()
+clear demo_arm1;
diff --git a/modules/signal_processing/demos/arma/arma2.dem.sce b/modules/signal_processing/demos/arma/arma2.dem.sce
new file mode 100755
index 000000000..285a7761f
--- /dev/null
+++ b/modules/signal_processing/demos/arma/arma2.dem.sce
@@ -0,0 +1,35 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ENPC
+// Copyright (C) DIGITEO - 2010 - Allan CORNET
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+
+function demo_arma2()
+
+ editor SCI/modules/signal_processing/demos/arma/arma2.dem.sce;
+ l = lines();
+ lines(0);
+
+ // A bidimensional version of demo one.
+ a = [1,-2.851,2.717,-0.865].*.eye(2,2);
+ b = [0,1,1,1].*.[1;1];
+ d = [1,0.7,0.2].*.eye(2,2);
+ sig = eye(2,2);
+ ar = armac(a,b,d,2,1,sig);
+ disp(_("Simulation of an ARMAX process: "));
+ disp(ar);
+
+ u = -prbs_a(300,1,int([2.5,5,10,17.5,20,22,27,35]*100/12));
+ zd = narsimul(a,b,d,sig,u);
+ z = narsimul(a,b,d,0.0*sig,u);
+ disp(_("Identification ARX (least square): "));
+ [archap,la,lb,sig,resid]=armax(3,3,zd,u,1,1);
+ disp(archap);
+
+ lines(l(2), l(1));
+
+endfunction
+
+demo_arma2();
+clear demo_arma2;
diff --git a/modules/signal_processing/demos/arma/arma3.dem.sce b/modules/signal_processing/demos/arma/arma3.dem.sce
new file mode 100755
index 000000000..6f9a39804
--- /dev/null
+++ b/modules/signal_processing/demos/arma/arma3.dem.sce
@@ -0,0 +1,58 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ENPC
+// Copyright (C) DIGITEO - 2010 - Allan CORNET
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+function demo_arma3()
+
+ mprintf("\n")
+ mprintf(_("Arma Spectral power estimation:"))
+ mprintf("\n")
+
+ // Spectral power estimation
+ // ( form Sawaragi et all)
+ m = 18;
+ a = [1,-1.3136,1.4401,-1.0919,+0.83527];
+ b = [0.0,0.13137,0.023543,0.10775,0.03516];
+ u = rand(1,1000,"n");
+ z = arsimul(a,b,[0],0,u);
+
+ //----Using macro mese
+ [sm, fr] = mese(z, m);
+
+ //----The theorical result
+ function gx = gxx(z,a,b)
+ w = exp(-%i*2*%pi*z*(0:4))'
+ gx = abs(b*w)^2/(abs(a*w)^2);
+ endfunction
+
+ res = [];
+ for x = fr,
+ res = [ res, gxx(x,a,b)];
+ end;
+
+ //----using armax estimation of order (4,4)
+ // it's a bit tricky because we are not supposed to know the order
+ [arc, la, lb, sig, resid] = armax(4, 4, z, u);
+ res1 = [];
+ for x = fr,
+ res1 = [ res1, gxx(x,la(1),lb(1))];
+ end;
+
+
+ //-- visualization of the results
+
+ my_handle = scf(100001);
+ if is_handle_valid(my_handle) then
+ clf(my_handle, "reset");
+ plot2d([fr;fr;fr]', [20*log10(sm/sm(1));20*log10(res/res(1));20*log10(res1/res1(1))]', [2,1,-1])
+ legend([_("Using macro mese"); _("Theoretical value"); _("Arma identification")])
+ xtitle(_("Spectral power"), _("frequency"), _("spectral estimate"))
+ demo_viewCode("arma3.dem.sce");
+ end
+
+endfunction
+
+demo_arma3();
+clear demo_arma3;
diff --git a/modules/signal_processing/demos/bode.dem.sce b/modules/signal_processing/demos/bode.dem.sce
new file mode 100755
index 000000000..8f614515f
--- /dev/null
+++ b/modules/signal_processing/demos/bode.dem.sce
@@ -0,0 +1,60 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+function demo_bode()
+
+ //////////////////
+ //BODE PLOTS//////
+ //////////////////
+
+ //First plot using state space representation
+ //
+ // xd=-2*%pi*x+u
+ // y=18*%pi*x+u
+ //
+ // h(s)=18*%pi/(s+2*%pi)
+ //
+ a = -2*%pi;
+ b = 1;
+ c = 18*%pi;
+ d = 1;
+ sl = syslin("c",a,b,c,d);
+
+ my_handle = scf(100001);
+ if is_handle_valid(my_handle) then
+ clf(my_handle,"reset");
+ bode(sl,.1,100)
+ halt(_("Press Return to continue ... \n"));
+ end
+
+ //Second plot using poly
+ s=poly(0,"s");
+ h1=1/real((s+2*%pi*(15+100*%i))*(s+2*%pi*(15-100*%i)));
+ h1=syslin("c",h1)
+ if is_handle_valid(my_handle) then
+ clf(my_handle,"reset");
+ bode(h1,10,1000,.01),
+ halt(_("Press Return to continue ... \n"));
+ end
+
+ //Third plot which combines the first two plots
+ if is_handle_valid(my_handle) then
+ clf(my_handle,"reset");
+ bode([h1;sl],.1,1000,.01);
+ halt(_("Press Return to continue ... \n"));
+ end
+
+ // series connection
+ if is_handle_valid(my_handle) then
+ clf(my_handle,"reset");
+ demo_viewCode("bode.dem.sce");
+ bode(h1*sl,.1,1000,.01);
+ end
+
+endfunction
+
+demo_bode();
+clear demo_bode;
diff --git a/modules/signal_processing/demos/conv.dem.sce b/modules/signal_processing/demos/conv.dem.sce
new file mode 100755
index 000000000..e6248bb96
--- /dev/null
+++ b/modules/signal_processing/demos/conv.dem.sce
@@ -0,0 +1,40 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - INRIA - Serge STEER
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function demo_conv()
+
+ //create a signal
+ dt=0.02;
+ t=0:dt:1;
+ f=1;// frequency in Hertz
+ y=sin(2*%pi*f*t)+0.1*rand(t);
+ scf(1000);clf;
+ demo_viewCode("conv.dem.sce");
+ drawlater()
+
+ subplot(211)
+ plot(t,y) //given signal
+ //low pass 8 points wfir filter
+ Smooth=[0.1197912,0.1242239,0.1272323,0.1287527,0.1287527,0.1272323,0.1242239,0.1197912];
+ ys=conv(y,Smooth,"same");
+ plot(t,ys,"r")// filtered signal
+ legend([_("given noisy signal"),_("filtered signal")])
+ title(_("Signal"))
+
+ subplot(212)
+ //2 points derivative using convolution
+ plot(t(1:$-1),conv(ys,[1,-1],"valid")/dt,"r")
+ //3 points derivative using convolution
+ plot(t(1:$-2),conv(ys,[1, 0,-1]/2,"valid")/dt,"g")
+ legend([_("2 points convolution"),_("3 points convolution")])
+ title(_("Signal derivative estimate"))
+ drawnow()
+endfunction
+demo_conv()
+clear demo_conv
diff --git a/modules/signal_processing/demos/conv2.dem.sce b/modules/signal_processing/demos/conv2.dem.sce
new file mode 100755
index 000000000..d55b8ae61
--- /dev/null
+++ b/modules/signal_processing/demos/conv2.dem.sce
@@ -0,0 +1,43 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - INRIA - Serge STEER
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function demo_conv2()
+ //blur filter example
+ function H=gaussian2d(radius,sigma)
+ x=linspace(-1,1,10)*radius
+ H=exp(-(ones(x')*x.^2+(x').^2*ones(x))/(2*sigma.^2))/(2*%pi*sigma.^2);
+ endfunction
+
+ load(get_absolute_file_path("conv2.dem.sce")+"image.dat")
+
+ f=scf(1000);clf;
+ f.axes_size=[800 400];
+ demo_viewCode("conv2.dem.sce");
+
+ f.color_map=graycolormap(128);
+ drawlater()
+ subplot(121)
+ Matplot(I*128);
+ a=gca();a.margins=[0 0 0.125 0];
+ a.tight_limits="on";
+ a.axes_visible="off";
+ title("Original image")
+
+ subplot(122)
+ I1=conv2(I,gaussian2d(3,0.84),"same");
+ I1=I1*128/max(I1);
+ Matplot(I1);
+ a=gca();a.margins=[0 0 0.125 0]
+ a.tight_limits="on";
+ a.axes_visible="off";
+ title("Blurred image")
+ drawnow()
+endfunction
+demo_conv2()
+clear demo_conv2
diff --git a/modules/signal_processing/demos/iir.dem.sce b/modules/signal_processing/demos/iir.dem.sce
new file mode 100755
index 000000000..8a47cd4db
--- /dev/null
+++ b/modules/signal_processing/demos/iir.dem.sce
@@ -0,0 +1,32 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+function demo_iir()
+
+ ystr=[ "type (lp, hp, bp, sb) ";
+ "order (integer)";
+ "design (butt, cheb1, cheb2 , ellip)" ;
+ "cut-off frequencies (2-vector in [0, 0.5])";
+ "error values 0 delta(1),delta(2) 1 "];
+
+ w = x_mdialog(_("Choose filter type and parameters"), ..
+ ystr, ["bp";"3";"ellip";"0.15 0.25";"0.08 0.035"]);
+ if w <> [] then
+ hz = iir(evstr(w(2)),w(1),w(3),evstr(w(4)),evstr(w(5)));
+ [hzm,fr] = frmag(hz, 256);
+
+ my_handle = scf(100001);
+ if is_handle_valid(my_handle) then
+ clf(my_handle, "reset");
+ plot2d(fr', hzm');
+ xtitle(_("Discrete IIR filter ") + "( "+ w(3)+" ) ", " ", " ");
+ end
+ end
+
+endfunction
+
+demo_iir();
+clear demo_iir;
diff --git a/modules/signal_processing/demos/iirfilt.dem.sce b/modules/signal_processing/demos/iirfilt.dem.sce
new file mode 100755
index 000000000..91d07ee1b
--- /dev/null
+++ b/modules/signal_processing/demos/iirfilt.dem.sce
@@ -0,0 +1,38 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+function demo_irrfilter()
+
+ ////////////////////////
+ //DISCRETE IIR FILTERS//
+ ////////////////////////
+
+ //Low pass filter (length 5, type cheb1, cut-off .2)
+ hz = iir(5, "lp", "cheb1", [.2 0], [.05 .05]);
+ [hzm,fr] = frmag(hz,256);
+
+ my_handle = scf(100001);
+ if is_handle_valid(my_handle) then
+ clf(my_handle, "reset");
+ plot2d(fr', hzm');
+ xtitle(_("Discrete IIR filter: low pass fr < 0.2"), " ", " ");
+ halt(_("Press Return to continue ... \n"));
+ end
+
+ //Band pass filter (length 3, type ellip, cut-offs .15 and .25)
+ hz = iir(3, "bp", "ellip", [.15 .25], [.08 .03]);
+ [hzm,fr] = frmag(hz,256);
+ if is_handle_valid(my_handle) then
+ clf(my_handle, "reset");
+ demo_viewCode("iirfilt.dem.sce");
+ plot2d(fr',hzm');
+ xtitle(_("Discrete IIR filter: band pass 0.15 < fr < 0.25"), " ", " ");
+ end
+
+endfunction
+
+demo_irrfilter();
+clear demo_irrfilter;
diff --git a/modules/signal_processing/demos/image.dat b/modules/signal_processing/demos/image.dat
new file mode 100755
index 000000000..b730a3054
--- /dev/null
+++ b/modules/signal_processing/demos/image.dat
Binary files differ
diff --git a/modules/signal_processing/demos/remezfilt.dem.sce b/modules/signal_processing/demos/remezfilt.dem.sce
new file mode 100755
index 000000000..4be466304
--- /dev/null
+++ b/modules/signal_processing/demos/remezfilt.dem.sce
@@ -0,0 +1,64 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+////////////////////////
+//MINIMAX FIR FILTERS///
+////////////////////////
+
+
+function demo_remezfilter()
+
+ // Low pass filter (length 33, cut-off in [.23,.27], weight 1/.1)
+
+ hn = eqfir(33,[0 .23;.27 .5],[1 0],[1 .1]);
+ [hm, fr] = frmag(hn, 256);
+
+ my_handle = scf(100001);
+ if is_handle_valid(my_handle) then
+ clf(my_handle, "reset");
+ plot2d(fr', hm')
+ title_c = [_("Minimax FIR filter");
+ _("low pass cut-off in [.23,.27]");
+ _("length 33")];
+ ax = gca();
+ ax.margins(3) = 0.2;
+ title(title_c);
+
+ halt(_("Press Return to continue ... \n"));
+ end
+
+ //Triangular filter created using remezb
+ nc = 21;
+ ngrid = nc * 16;
+ fg = .5*(0:(ngrid-1))/(ngrid-1);
+ ds(1:ngrid/2) = (0:-1+ngrid/2)*2/(ngrid-2);
+ ds(ngrid/2+1:ngrid) = ds(ngrid/2:-1:1);
+ wt = ones(fg);
+ [an] = remezb(nc, fg, ds, wt);
+ hn(1:nc-1) = an(nc:-1:2)/2;
+ hn(nc) = an(1);
+ hn(nc+1:2*nc-1) = an(2:nc)/2;
+ [hm, fr] = frmag(hn, max(size(ds)));
+
+ if is_handle_valid(my_handle) then
+ clf(my_handle, "reset");
+ plot2d(fr', hm'),
+ xtitle(_("Remez Triangular filter"), _("frequency"), ("magnitude"));
+
+ halt(_("Press Return to continue ... \n"));
+ end
+
+ if is_handle_valid(my_handle) then
+ clf(my_handle, "reset");
+ demo_viewCode("remezfilt.dem.sce");
+ plot2d(fr',( hm-ds)')
+ xtitle(" ", _("frequency"), _("magnitude error"));
+ end
+
+endfunction
+
+demo_remezfilter();
+clear demo_remezfilter;
diff --git a/modules/signal_processing/demos/signal_processing.dem.gateway.sce b/modules/signal_processing/demos/signal_processing.dem.gateway.sce
new file mode 100755
index 000000000..99c7cd12d
--- /dev/null
+++ b/modules/signal_processing/demos/signal_processing.dem.gateway.sce
@@ -0,0 +1,30 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+// Copyright (C) 2010-2011 - DIGITEO - Allan CORNET
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+function subdemolist = demo_gateway()
+
+ demopath = get_absolute_file_path("signal_processing.dem.gateway.sce");
+ add_demo(gettext("Signal Processing"), demopath + "signal_processing.dem.gateway.sce");
+
+ subdemolist = [_("Spectral Estimation") , "spect.dem.sce"
+ _("IIR filter design") , "iir.dem.sce"
+ _("Minimax FIR filter design") , "remezfilt.dem.sce"
+ _("Discrete IIR filter") , "iirfilt.dem.sce"
+ _("Wiener filter") , "wiener.dem.sce"
+ _("Bode plots") , "bode.dem.sce"
+ _("Window FIR filters") , "winfilt.dem.sce"
+ _("1-D convolution") , "conv.dem.sce"
+ _("2-D convolution") , "conv2.dem.sce"
+ _("Arma simulation and identification"), "arma/arma1.dem.sce"
+ _("Arma, bidimensional version") , "arma/arma2.dem.sce"
+ _("Arma, Spectral power estimation") , "arma/arma3.dem.sce"];
+
+ subdemolist(:,2) = demopath + subdemolist(:,2);
+
+endfunction
+
+subdemolist = demo_gateway();
+clear demo_gateway;
diff --git a/modules/signal_processing/demos/spect.dem.sce b/modules/signal_processing/demos/spect.dem.sce
new file mode 100755
index 000000000..ba1f48e90
--- /dev/null
+++ b/modules/signal_processing/demos/spect.dem.sce
@@ -0,0 +1,78 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+////////////////////////
+//SPECTRAL ESTIMATION///
+////////////////////////
+
+function demo_spectral()
+
+ // generate white data
+ rand("normal");
+ rand("seed", 0);
+ x = rand(1:1024-33+1);
+
+ // make low-pass filter with eqfir
+ nf = 33;
+ bedge = [0 .1;.125 .5];
+ des = [1 0];
+ wate = [1 1];
+ h = eqfir(nf, bedge, des, wate);
+
+ //filter white data to obtain colored data
+ h1 = [h 0*ones(1:max(size(x))-1)];
+ x1 = [x 0*ones(1:max(size(h))-1)];
+ hf = fft(h1, -1);
+ xf = fft(x1, -1);
+ yf = hf.*xf;
+ y = real(fft(yf, 1));
+
+ // plot magnitude of filter
+ h2 = [h 0*ones(1:167)];
+ hf2 = fft(h2, -1);
+ hf2 = real(hf2.*conj(hf2));
+ hsize = max(size(hf2));
+ fr = (1:hsize)/hsize;
+
+ my_handle = scf(100001);
+ clf(my_handle, "reset");
+
+ plot2d(fr', log(hf2)');
+ xtitle(_("Data spectrum"), _("frequency"), _("magnitude"));
+ halt(_("Press Return to continue ... \n"));
+
+ if is_handle_valid(my_handle) == %f then
+ return
+ end
+
+ // pspect example
+ [sm1] = pspect(100, 200, "tr", y);
+ smsize = max(size(sm1));
+ fr = (1:smsize)/smsize;
+ clf(my_handle, "reset");
+ plot2d(fr', log(sm1)');
+ xtitle(_("Spectral estimation"), _("frequency"), _("spectral power"));
+ halt(_("Press Return to continue ... \n"));
+
+ if is_handle_valid(my_handle) == %f then
+ return
+ end
+
+ // cspect example
+ [sm2] = cspect(100, 200, "tr", y);
+ smsize = max(size(sm2));
+ fr = (1:smsize)/smsize;
+ clf(my_handle, "reset");
+ demo_viewCode("spect.dem.sce");
+ plot2d(fr', log(sm2)');
+ xtitle(["Spectral estimation ; periodogram method"], " " , " ")
+
+
+endfunction
+
+demo_spectral()
+clear demo_spectral;
diff --git a/modules/signal_processing/demos/wiener.dem.sce b/modules/signal_processing/demos/wiener.dem.sce
new file mode 100755
index 000000000..2f5c2342d
--- /dev/null
+++ b/modules/signal_processing/demos/wiener.dem.sce
@@ -0,0 +1,99 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+////////////////////////
+//WIENER FILTERING//////
+////////////////////////
+
+function demo_wiener()
+
+ // define system macro which generates the next
+ // observation given the old state
+
+ function [x1,y] = systemForWiener(x0,f,g,h,q,r)
+ rand("normal");
+ q2 = chol(q);
+ r2 = chol(r);
+ u = q2'*rand(ones(x0));
+ v = r2'*rand(ones(x0));
+ x1 = f*x0+g*u;
+ y = h*x1+v;
+ endfunction
+
+ // initialize state statistics (mean and error variance)
+
+ m0 = [10;10];
+ p0 = [100 0;0 100];
+
+ // create system
+
+ f = [1.15 .1;0 .8];
+ g = [1 0;0 1];
+ h = [1 0;0 1];
+ [hi, hj] = size(h);
+
+ // noise statistics
+
+ q = [.01 0;0 .01];
+ r = 20*eye(2,2);
+
+ // initialize system process
+
+ rand("seed",66);
+ rand("normal");
+ p0c = chol(p0);
+ x0 = m0 + p0c'*rand(ones(m0));
+ y = h*x0+chol(r)'*rand(ones(1:hi))';
+ yt = y;
+
+ //initialize plotted variables
+
+ x = x0; ft = f; gt = g; ht = h; qt = q; rt = r;
+
+ n = 10;
+ for k = 1:n,
+ // generate the state and observation at time k (i.e. xk and yk)
+ [x1, y] = systemForWiener(x0, f, g, h, q, r);
+ x = [x x1];
+ x0 = x1;
+ yt = [yt y];
+ ft = [ft f];
+ gt =[gt g];
+ ht = [ht h];
+ qt = [qt q];
+ rt = [rt r];
+ end
+
+ // get the wiener filter estimate
+
+ [xs, ps, xf, pf] = wiener(yt, m0, p0, ft, gt, ht, qt, rt);
+
+ // plot result
+
+ my_handle = scf(100001);
+ clf(my_handle, "reset");
+ demo_viewCode("wiener.dem.sce");
+
+ // plot frame, real state (x), and estimates (xf, and xs)
+
+ plot2d([x(1,:)', xf(1,:)', xs(1,:)'], ..
+ [x(2,:)', xf(2,:)', xs(2,:)'], [1 2 3]);
+ curves = get(gce(), "children");
+
+ // mark data points (* for real data, o for estimates)
+ curves(1).mark_mode = "on";
+ curves(1).mark_style = 3;
+ curves(2).mark_mode = "on";
+ curves(2).mark_style = 2;
+ curves(3).mark_mode = "on";
+ curves(3).mark_style = 1;
+
+ legend([_("real state"); _("estimates xf"); _("estimates xs")]);
+
+endfunction
+
+demo_wiener();
+clear demo_wiener;
diff --git a/modules/signal_processing/demos/winfilt.dem.sce b/modules/signal_processing/demos/winfilt.dem.sce
new file mode 100755
index 000000000..fc9f0070b
--- /dev/null
+++ b/modules/signal_processing/demos/winfilt.dem.sce
@@ -0,0 +1,65 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) ????-2008 - INRIA
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+// This file is released under the 3-clause BSD license. See COPYING-BSD.
+
+function demo_winfilt()
+
+ ////////////////////////
+ //WINDOWED FIR FILTERS//
+ ////////////////////////
+
+ // Low pass filter (length 33, Kaiser window, cut-off .2)
+ [wft, wfm, fr] = wfir("lp",33,[.2 0],"kr",[5.6 0]);
+
+ my_handle = scf(100001);
+ if is_handle_valid(my_handle) then
+ clf(my_handle,"reset");
+ demo_viewCode("winfilt.dem.sce");
+ plot2d(fr', log(wfm)')
+ xtitle(" ", _("frequency"), _("magnitude"));
+ xtitle([_("Windowed FIR Low pass Filter"); ..
+ _("Kaiser window, cut-off: 0.2"); ..
+ _("length 33")]);
+
+ halt(_("Press Return to continue ... \n"));
+
+ end
+
+ // Stop band filter (length 127, Hamming window, cut-offs .2 and .3)
+ [wft, wfm, fr] = wfir("sb",127,[.2 .3],"hm",[0 0]);
+ if is_handle_valid(my_handle) then
+ clf(my_handle,"reset");
+ demo_viewCode("winfilt.dem.sce");
+ plot2d(fr',log(wfm)')
+ xtitle(" ", _("frequency"), _("magnitude"));
+ xtitle([_("Windowed FIR Low pass Filter"); ..
+ _("Hamming window, cut-off: 0.2, 0.3"); ..
+ _("length 127")]);
+
+ halt(_("Press Return to continue ... \n"));
+
+
+ end
+
+ // Band pass filter (length 55, Chebyshev window, cut-offs .15 and .35)
+ [wft, wfm, fr] = wfir("bp",55,[.15 .35],"ch",[.001 -1]);
+ if is_handle_valid(my_handle) then
+ clf(my_handle,"reset");
+ demo_viewCode("winfilt.dem.sce");
+ plot2d(fr',log(wfm)')
+ xtitle(" ", _("frequency"), _("magnitude"));
+ xtitle([_("Windowed FIR Band pass Filter"); ..
+ _("Chebyshev window, cut-off: 0.15, 0.35"); ..
+ _("length 55")]);
+
+ halt(_("Press Return to continue ... \n"));
+
+ delete(my_handle);
+ end
+
+endfunction
+
+demo_winfilt();
+clear demo_winfilt;
diff --git a/modules/signal_processing/etc/signal_processing.quit b/modules/signal_processing/etc/signal_processing.quit
new file mode 100755
index 000000000..b8f545411
--- /dev/null
+++ b/modules/signal_processing/etc/signal_processing.quit
@@ -0,0 +1,12 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2007-2008 - INRIA
+// Copyright (C) 2009 - DIGITEO
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+// Delete help chapter
+// =============================================================================
diff --git a/modules/signal_processing/etc/signal_processing.start b/modules/signal_processing/etc/signal_processing.start
new file mode 100755
index 000000000..d56cdde5b
--- /dev/null
+++ b/modules/signal_processing/etc/signal_processing.start
@@ -0,0 +1,13 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2006-2008 - INRIA
+// Copyright (C) 2009 - DIGITEO
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+//Load functions libraries
+// =============================================================================
+load('SCI/modules/signal_processing/macros/lib');
diff --git a/modules/signal_processing/help/en_US/addchapter.sce b/modules/signal_processing/help/en_US/addchapter.sce
new file mode 100755
index 000000000..09077ac48
--- /dev/null
+++ b/modules/signal_processing/help/en_US/addchapter.sce
@@ -0,0 +1,11 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+add_help_chapter("Signal Processing",SCI+"/modules/signal_processing/help/en_US",%T);
+
diff --git a/modules/signal_processing/help/en_US/cepstrum.xml b/modules/signal_processing/help/en_US/cepstrum.xml
new file mode 100755
index 000000000..8016493fc
--- /dev/null
+++ b/modules/signal_processing/help/en_US/cepstrum.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="cepstrum">
+ <refnamediv>
+ <refname>cepstrum</refname>
+ <refpurpose>cepstrum calculation</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>fresp = cepstrum(w,mag)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>w</term>
+ <listitem>
+ <para>positive real vector of frequencies (rad/sec)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>mag</term>
+ <listitem>
+ <para>
+ real vector of magnitudes (same size as <literal>w</literal>)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fresp</term>
+ <listitem>
+ <para>complex vector</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ <literal>fresp = cepstrum(w,mag)</literal> returns a frequency response <literal>fresp(i)</literal>
+ whose magnitude at frequency <literal>w(i)</literal> equals <literal>mag(i)</literal> and such
+ that the phase of <literal>freq</literal> corresponds to a stable and minimum phase
+ system. <literal>w</literal> needs not to be sorted, but minimal entry should not be
+ close to zero and all the entries of <literal>w</literal> should be different.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+w=0.1:0.1:5;mag=1+abs(sin(w));
+fresp=cepstrum(w,mag);
+plot2d([w',w'],[mag(:),abs(fresp)])
+ ]]></programlisting>
+ <scilab:image>
+ w=0.1:0.1:5;mag=1+abs(sin(w));
+ fresp=cepstrum(w,mag);
+ plot2d([w',w'],[mag(:),abs(fresp)])
+ </scilab:image>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="frfit">frfit</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/conv.xml b/modules/signal_processing/help/en_US/conv.xml
new file mode 100755
index 000000000..8a9d655d2
--- /dev/null
+++ b/modules/signal_processing/help/en_US/conv.xml
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en_US" xml:id="conv">
+ <refnamediv>
+ <refname>conv</refname>
+ <refpurpose>discrete 1-D convolution. </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>C = conv(A,B [,shape])</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>
+ a real or complex vector.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>B</term>
+ <listitem>
+ <para>
+ a real or complex vector.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>shape</term>
+ <listitem>
+ <para>
+ an optional character string with possible values:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <literal>"full"</literal>, <literal>conv</literal>
+ computes the full convolution. It is the
+ default value.
+ </listitem>
+ <listitem>
+ <literal>"same"</literal>, <literal>conv</literal>
+ computes the central part of the convolution of the same
+ size as <literal>A</literal>.
+ </listitem>
+ <listitem>
+ <literal>"valid"</literal>, <literal>conv</literal>
+ computes the convolution parts without the zero-padding
+ of <literal>A</literal>.
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>C</term>
+ <listitem>
+ <para>
+ a real or complex vector.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ <literal>conv</literal> uses a straightforward formal
+ implementation of the one-dimensional convolution equation in
+ spatial form.
+ </para>
+ <para>
+ <literal>C=conv(A,B [,shape])</literal> computes the
+ one-dimensional convolution of the vectors <literal>A</literal>
+ and <literal>B</literal>:
+ </para>
+ <itemizedlist>
+ <listitem>
+ With <literal>shape=="full"</literal> the
+ dimensions of the result<literal>C</literal> are given by
+ <literal>size(A,'*')+size(B,'*')+1</literal>. The indices of the
+ center element of <literal>B</literal> are defined as
+ <literal>floor((size(B,'*')+1)/2)</literal>.
+ </listitem>
+ <listitem>
+ With <literal>shape=="same"</literal> the
+ dimensions of the result<literal>C</literal> are given by
+ <literal>size(A)</literal>. The indices of the
+ center element of <literal>B</literal> are defined as
+ <literal>floor((size(B,'*')+1)/2)</literal>.
+ </listitem>
+ <listitem>
+ With <literal>shape=="valid"</literal> the dimensions
+ of the result <literal>C</literal> are given by
+ <literal>size(A,'*')-size(B,'*')+1)</literal> if
+ <literal>and(size(A,'*')-size(B,'*'))&gt;=0</literal> else
+ <literal>C</literal> is empty . The indices of the center
+ element of <literal>B</literal> are defined as
+ <literal>1</literal>.
+ </listitem>
+ </itemizedlist>
+ <para>
+ Note that <link linkend="convol">convol</link> can be more efficient for large arrays.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+ A=1:10;
+ B=[1 -1];
+ conv(A,B)
+ ]]></programlisting>
+ </refsection>
+ <refsection>
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="convol">convol</link>
+ </member>
+ <member>
+ <link linkend="conv2">conv2</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Used Functions</title>
+ <para>
+ The conv function is based on the <link linkend="conv2">conv2</link> builtin.
+ </para>
+ </refsection>
+ <refsection>
+ <title>History</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>Function conv introduced.</revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/conv2.xml b/modules/signal_processing/help/en_US/conv2.xml
new file mode 100755
index 000000000..156f1fb31
--- /dev/null
+++ b/modules/signal_processing/help/en_US/conv2.xml
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en_US" xml:id="conv2">
+ <refnamediv>
+ <refname>conv2</refname>
+ <refpurpose>discrete 2-D convolution. </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ C = conv2(A,B [,shape])
+ C = conv2(hrow,hcol,B [,shape])
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term>hrow</term>
+ <listitem>
+ <para>
+ a real or complex vector.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>hcol</term>
+ <listitem>
+ <para>
+ a real or complex vector.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>
+ a real or complex 2-D array.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>B</term>
+ <listitem>
+ <para>
+ a real or complex 2-D array.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>shape</term>
+ <listitem>
+ <para>
+ an optional character string with possible values:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <literal>"full"</literal>, <literal>conv2</literal>
+ computes the full two-dimensional convolution. It is the
+ default value.
+ </listitem>
+ <listitem>
+ <literal>"same"</literal>, <literal>conv2</literal>
+ computes the central part of the convolution of the same
+ size as <literal>A</literal>.
+ </listitem>
+ <listitem>
+ <literal>"valid"</literal>, <literal>conv2</literal>
+ computes the convolution parts without the zero-padding of <literal>A</literal>.
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>C</term>
+ <listitem>
+ <para>
+ a real or complex 2-D array.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ <literal>conv2</literal> uses a straightforward formal
+ implementation of the two-dimensional convolution equation in
+ spatial form.
+ </para>
+ <para>
+ <literal>C=conv2(A,B [,shape])</literal> computes the
+ two-dimensional convolution of the arrays <literal>A</literal>
+ and <literal>B</literal>:
+ </para>
+ <itemizedlist><listitem>
+ With <literal>shape=="full"</literal> the
+ dimensions of the result<literal>C</literal> are given by
+ <literal>size(A)+size(B)+1</literal>. The indices of the
+ center element of <literal>B</literal> are defined as
+ <literal>floor((size(B)+1)/2)</literal>.
+ </listitem>
+ <listitem>
+ With <literal>shape=="same"</literal> the dimensions
+ of the result<literal>C</literal> are given by
+ <literal>size(A)</literal>. The indices of the center element of
+ <literal>B</literal> are defined as
+ <literal>floor((size(B)+1)/2)</literal>.
+ </listitem>
+ <listitem>
+ With <literal>shape=="valid"</literal> the dimensions
+ of the result <literal>C</literal> are given by
+ <literal>size(A)-size(B)+1)</literal> if
+ <literal>and(size(A)-size(B))&gt;=0</literal> else
+ <literal>C</literal> is empty . The indices of the center
+ element of <literal>B</literal> are defined as <literal>[1
+ 1]
+ </literal>
+ .
+ </listitem>
+ </itemizedlist>
+ <para>
+ The separable form <literal>C=conv2(hrow,hcol,B [,shape])</literal>is equivalent to <literal>C=conv2(hrow(:)*hcol(:).',B [,shape])</literal>
+ </para>
+ .
+ <para>
+ Note that <link linkend="convol2d">convol2d</link> can be more efficient for large arrays.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+ s = [1 2 1; 0 0 0; -1 -2 -1];//Sobel horizontal edge kernel
+ A = zeros(10,10);A(3:7,3:7) = 1;
+ conv2(s,A);
+
+ //separable form
+ u=[1;0;-1];v=[1 2 1];// u*v=s
+ conv2(u,v,A)
+ ]]></programlisting>
+ </refsection>
+ <refsection>
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="convol2d">convol2d</link>
+ </member>
+ <member>
+ <link linkend="conv">conv</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>History</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>Function conv2 introduced.</revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/convol2d.xml b/modules/signal_processing/help/en_US/convol2d.xml
new file mode 100755
index 000000000..1018ea360
--- /dev/null
+++ b/modules/signal_processing/help/en_US/convol2d.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Add some comments about XML file
+-->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en_US" xml:id="convol2d">
+ <refnamediv>
+ <refname>convol2d</refname>
+ <refpurpose>discrete 2-D convolution, using fft. </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>C = convol2d(A,B)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>
+ a real or complex 2-D array.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>B</term>
+ <listitem>
+ <para>
+ a real or complex 2-D array.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>C</term>
+ <listitem>
+ <para>
+ a real or complex 2-D array.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ <literal>convol2d</literal> uses fft to compute the full
+ two-dimensional discrete convolution. The
+ dimensions of the result<literal>C</literal> are given by
+ <literal>size(A)+size(B)+1</literal>. The indices of the
+ center element of <literal>B</literal> are defined as
+ <literal>floor((size(B)+1)/2)</literal>.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+ s = [1 2 1; 0 0 0; -1 -2 -1];//Sobel horizontal edge kernel
+ A = zeros(10,10);A(3:7,3:7) = 1;
+ convol2d(s,A);
+ ]]></programlisting>
+ </refsection>
+ <refsection>
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="conv2">conv2</link>
+ </member>
+ <member>
+ <link linkend="convol">convol</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Used Functions</title>
+ <para>
+ The <literal>convol2d</literal> function is based on the <link linkend="fft">fft</link> builtin.
+ </para>
+ </refsection>
+ <refsection>
+ <title>History</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>Function convol2d introduced.</revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/detrend.xml b/modules/signal_processing/help/en_US/detrend.xml
new file mode 100755
index 000000000..7002128ff
--- /dev/null
+++ b/modules/signal_processing/help/en_US/detrend.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="detrend">
+ <refnamediv>
+ <refname>detrend</refname>
+ <refpurpose>remove constant, linear or piecewise linear trend from a vector</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>y = detrend(x)
+ y = detrend(x,flag)
+ y = detrend(x,flag,bp)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>vector or matrix of real or complex numbers (the signal to treat)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>flag</term>
+ <listitem>
+ <para>a string equal to "linear" (or "l") for linear or piecewise linear treatment
+ or "constant" (or "c") for constant treatment.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>bp</term>
+ <listitem>
+ <para>the breakpoints to provide if you want a piecewise linear treatment.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>output, the signal x with the trend removed from it.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ This function removes the constant or linear or
+ piecewise linear trend from a vector <literal>x</literal>. In general
+ this can be useful before a fourier analysis. If <literal>x</literal> is
+ matrix this function removes the trend of each column of x.
+ </para>
+ <para>
+ When <literal>flag</literal> = "constant" or "c" <literal>detrend</literal> removes the constant trend
+ (simply the mean of the signal) and when <literal>flag</literal> = "linear" or "l" the function
+ removes the linear trend. By adding a third argument <literal>bp</literal> it is possible to
+ remove a continuous <emphasis>piecewise linear</emphasis> trend. Note that the "instants" of the signal
+ <literal>x</literal> goes from 0 to m-1 (m = length(x) if x is a vector and m = size(x,1) in case
+ x is a matrix). So the breakpoints <literal>bp(i)</literal> must be reals in <emphasis>[0 m-1]</emphasis>
+ (breakpoints outside are simply removed from <literal>bp</literal> vector).
+ </para>
+ <para>
+ The trend is got by a least square fit of <literal>x</literal> on the appropriate function space.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+t = linspace(0,16*%pi,1000)';
+x = -20 + t + 0.3*sin(0.5*t) + sin(t) + 2*sin(2*t) + 0.5*sin(3*t);
+y = detrend(x);
+clf()
+plot2d(t,[x y],style=[2 5])
+legend(["before detrend","after detrend"]);
+xgrid()
+ ]]></programlisting>
+ <scilab:image>
+ t = linspace(0,16*%pi,1000)';
+ x = -20 + t + 0.3*sin(0.5*t) + sin(t) + 2*sin(2*t) + 0.5*sin(3*t);
+ y = detrend(x);
+ clf()
+ plot2d(t,[x y],style=[2 5])
+ legend(["before detrend","after detrend"]);
+ xgrid()
+ </scilab:image>
+ <programlisting role="example"><![CDATA[
+t = linspace(0,32*%pi,2000)';
+x = abs(t-16*%pi) + 0.3*sin(0.5*t) + sin(t) + 2*sin(2*t) + 0.5*sin(3*t);
+y = detrend(x,"linear",1000);
+clf()
+plot2d(t,[x y],style=[2 5])
+legend(["before detrend","after detrend"]);
+xgrid()
+ ]]></programlisting>
+ <scilab:image>
+ t = linspace(0,32*%pi,2000)';
+ x = abs(t-16*%pi) + 0.3*sin(0.5*t) + sin(t) + 2*sin(2*t) + 0.5*sin(3*t);
+ y = detrend(x,"linear",1000);
+ clf()
+ plot2d(t,[x y],style=[2 5])
+ legend(["before detrend","after detrend"]);
+ xgrid()
+ </scilab:image>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/fft2.xml b/modules/signal_processing/help/en_US/fft2.xml
new file mode 100755
index 000000000..f26ea803e
--- /dev/null
+++ b/modules/signal_processing/help/en_US/fft2.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="fft2">
+ <refnamediv>
+ <refname>fft2</refname>
+ <refpurpose>two-dimension fast Fourier
+ transform
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>y=fft2(x)
+ y=fft2(x,n,m)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>a vector/matrix/array (Real or Complex)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>a vector/matrix/array (Real or Complex)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>m</term>
+ <listitem>
+ <para>integer, number of rows.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>integer, number of columns.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <programlisting role=""><![CDATA[
+This functions performs the two-dimension discrete Fourier transform.
+ ]]></programlisting>
+ <para>
+ <literal>y=fft2(x)</literal>y and x have the same size
+ </para>
+ <para>
+ <literal>y=fft2(x,m,n):</literal> If <literal>m</literal> (respectively
+ <literal>n</literal>) is less than the rows number (respectively columns) of
+ <literal>x</literal> then the <literal>x</literal> rows number (resp. columns) is
+ truncated, else if m (resp. <literal>n</literal>) is more than the rows number
+ (resp. columns) of <literal>x</literal> then <literal>x</literal> rows are completed
+ by zero (resp. columns) .
+ </para>
+ <para>
+ if <literal>x</literal> is a matrix then <literal>y</literal> is a matrix, if
+ <literal>x</literal> is a hypermatrix then <literal>y</literal> is a hypermatrix, with
+ the size of the first dimension of <literal>y</literal> is equal to
+ <literal>m</literal>, the size of the second dimension of <literal>y</literal> is
+ equal to <literal>n</literal>, the size of the ith dimension of <literal>y</literal>
+ (for i&gt;2, case hypermatrix) equal to the size of the ith dimension of
+ <literal>x</literal>. (i.e size(y,1)=m, size(y,2)=n and size(y,i)=size(x,i) for
+ i&gt;2)
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+//Comparison with explicit formula
+a=[1 2 3 ;4 5 6 ;7 8 9 ;10 11 12]
+m=size(a,1)
+n=size(a,2)
+
+// fourier transform along the rows
+for i=1:n
+a1(:,i)=exp(-2*%i*%pi*(0:m-1)'.*.(0:m-1)/m)*a(:,i)
+end
+
+// fourier transform along the columns
+for j=1:m
+a2temp=exp(-2*%i*%pi*(0:n-1)'.*.(0:n-1)/n)*(a1(j,:)).'
+a2(j,:)=a2temp.'
+end
+norm(a2-fft2(a))
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="fft">fft</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/fftshift.xml b/modules/signal_processing/help/en_US/fftshift.xml
new file mode 100755
index 000000000..163ff4ad6
--- /dev/null
+++ b/modules/signal_processing/help/en_US/fftshift.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="fftshift">
+ <refnamediv>
+ <refname>fftshift</refname>
+ <refpurpose>rearranges the fft output, moving the zero frequency to the center of the spectrum</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>y=fftshift(x [,job])</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>real or complex vector or matrix.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>real or complex vector or matrix.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>job</term>
+ <listitem>
+ <para>integer, dimension selection, or string 'all'</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ If <literal>x</literal> results of an fft computation <literal>y=fftshift(x)</literal> or <literal>y=fftshift(x,"all")</literal> moves the zero frequency component to the center
+ of the spectrum, which is sometimes a more convenient form.
+ </para>
+ <para>
+ If <literal>x</literal> is a vector of size n, y is the vector <literal>x([n/2+1:n,1:n/2])</literal>
+ </para>
+ <para>
+ If <literal>x</literal> is an <literal>m</literal> by <literal>n</literal> matrix <literal>y</literal> is the matrix
+ <literal>x([m/2+1:n,1:m/2],[n/2+1:n,1:n/2])</literal>.
+ </para>
+ <programlisting role="no-scilab-exec"><![CDATA[
+ [x11 x12] [x22 x21]
+x=[ ] gives y=[ ]
+ [x21 x22] [x12 x11]
+ ]]></programlisting>
+ <para>
+ <literal>y=fftshift(x,n)</literal> makes the swap only along the <literal>n</literal>th dimension
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+// Make a signal
+t=0:0.1:1000;
+x=3*sin(t)+8*sin(3*t)+0.5*sin(5*t)+3*rand(t);
+// Compute the fft
+y=fft(x,-1);
+
+// Display
+clf();
+subplot(2,1,1);plot2d(abs(y))
+subplot(2,1,2);plot2d(fftshift(abs(y)))
+ ]]></programlisting>
+ <scilab:image>
+ t=0:0.1:1000;
+ x=3*sin(t)+8*sin(3*t)+0.5*sin(5*t)+3*rand(t);
+ y=fft(x,-1);
+ subplot(2,1,1);plot2d(abs(y))
+ subplot(2,1,2);plot2d(fftshift(abs(y)))
+ </scilab:image>
+ <programlisting role="example"><![CDATA[
+// Make a 2D image
+t=0:0.1:30;
+x=3*sin(t')*cos(2*t)+8*sin(3*t')*sin(5*t)+..
+ 0.5*sin(5*t')*sin(5*t)+3*rand(t')*rand(t);
+// Compute the fft
+y=fft(x,-1);
+
+// Display
+clf();
+xset('colormap',hotcolormap(256))
+subplot(2,1,1);Matplot(abs(y))
+subplot(2,1,2);Matplot(fftshift(abs(y)))
+ ]]></programlisting>
+ <scilab:image>
+ t=0:0.1:30;
+ x=3*sin(t')*cos(2*t)+8*sin(3*t')*sin(5*t)+..
+ 0.5*sin(5*t')*sin(5*t)+3*rand(t')*rand(t);
+ y=fft(x,-1);
+ xset('colormap',hotcolormap(256))
+ subplot(2,1,1);Matplot(abs(y))
+ subplot(2,1,2);Matplot(fftshift(abs(y)))
+ </scilab:image>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="fft">fft</link>
+ </member>
+ <member>
+ <link linkend="ifftshift">ifftshift</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filt_sinc.xml b/modules/signal_processing/help/en_US/filt_sinc.xml
new file mode 100755
index 000000000..8eb0770ed
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filt_sinc.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="filt_sinc">
+ <refnamediv>
+ <refname>filt_sinc</refname>
+ <refpurpose>samples of sinc function</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[x]=filt_sinc(n,fl)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>number of samples</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fl</term>
+ <listitem>
+ <para>cut-off frequency of the associated low-pass filter in Hertz.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>samples of the sinc function</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Calculate n samples of the function <literal>sin(2*pi*fl*t)/(pi*t)</literal>
+ for <literal>t=-(n-1)/2:(n-1)/2</literal> (i.e. centred around the origin).
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+plot(filt_sinc(100,0.1))
+ ]]></programlisting>
+ <scilab:image>
+ plot(filt_sinc(100,0.1))
+ </scilab:image>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="sincd">sincd</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/CHAPTERS b/modules/signal_processing/help/en_US/filters/CHAPTERS
new file mode 100755
index 000000000..75dda6658
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/CHAPTERS
@@ -0,0 +1,2 @@
+title = Filters
+
diff --git a/modules/signal_processing/help/en_US/filters/analpf.xml b/modules/signal_processing/help/en_US/filters/analpf.xml
new file mode 100755
index 000000000..e17a655e4
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/analpf.xml
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xml:lang="en" xmlns:scilab="http://www.scilab.org" xml:id="analpf">
+ <refnamediv>
+ <refname>analpf</refname>
+ <refpurpose>create analog low-pass filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ [hs,pols,zers,gain]=analpf(n,fdesign,rp,omega)
+ hs=analpf(n,fdesign,rp,omega)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>positive integer: filter order</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fdesign</term>
+ <listitem>
+ <para>a string: that indicated the filter design method: </para>
+ <itemizedlist mark="bullet">
+ <listitem>
+ <para>"butt" is for Butterworth filter.</para>
+ </listitem>
+ <listitem>
+ <para>"cheb1" is for Chebyshev type I filter.</para>
+ </listitem>
+ <listitem>
+ <para>"cheb2" is for Chebyshev type II filter (also called inverse Chebyshev filter).</para>
+ </listitem>
+ <listitem>
+ <para>"ellip" is for elliptic filter.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>rp</term>
+ <listitem>
+ <para>a 2-vector of ripples values for "cheb1", "cheb2" and
+ "ellip" filters. It's elements value must respect
+ <literal>0&lt;rp(1),rp(2)&lt;1</literal>.
+ </para>
+ <itemizedlist mark="bullet">
+ <listitem>
+ <para>
+ For "cheb1" filters only <literal>rp(1)</literal>
+ is used. The passband ripple is between
+ <literal>1-rp(1)</literal> and <literal>1</literal>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ For "cheb2" filters only <literal>rp(2)</literal>
+ is used. The stopband ripple is between
+ <literal>0</literal> and
+ <literal>rp(2)</literal>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ For "ellip" filters <literal>rp(1)</literal> and
+ <literal>rp(2)</literal> are both used. The passband
+ ripple is between <literal>1-rp(1)</literal> and
+ <literal>1</literal> while the stopband ripple is
+ between <literal>0</literal> and
+ <literal>rp(2)</literal>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>omega</term>
+ <listitem>
+ <para>cut-off frequency of low-pass filter in rad/s</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>hs</term>
+ <listitem>
+ <para>
+ the rational polynomial transfer function (see <link linkend="syslin">syslin</link>). Is is
+ <literal>hs = gain*syslin("c", real(poly(zers, "s")), real(poly(pols, "s")))
+ </literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pols</term>
+ <listitem>
+ <para>a row vector: the poles of transfer function</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>zers</term>
+ <listitem>
+ <para>a row vector: zeros of transfer function</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>gain</term>
+ <listitem>
+ <para>a scalar: the gain of transfer function</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ This Creates analog low-pass filter with cut-off pulsation at
+ omega. It is a driver over the <link linkend="zpbutt">zpbutt</link>, <link linkend="zpch1">zpch1</link>, <link linkend="zpch2">zpch2</link>
+ and <link linkend="zpell">zpell</link> functions.
+ </para>
+ <para>
+ The Butterworth filter has no ripples in the passband and slowly
+ rolls off towards zero in the stopband. Butterworth filters
+ have a monotonically changing magnitude function with omega,
+ unlike other filter types that have non-monotonic ripple in the
+ passband and/or the stopband. Butterworth filters have a more
+ linear phase response in the pass-band than the others.
+ </para>
+ <para>
+ Chebyshev filters have a steeper roll-off and more passband ripple
+ (type I) or stopband ripple (type II) than Butterworth
+ filters. Chebyshev filters have the property that they minimize
+ the error between the idealized and the actual filter
+ characteristic over the range of the filter, but with ripples in
+ the passband.
+ </para>
+ <para>
+ Elliptic filter have equalized ripple behavior in both the
+ passband and the stopband. The amount of ripple in each band is
+ independently adjustable, and no other filter of equal order can
+ have a faster transition in gain between the passband and the
+ stopband, for the given values of ripple.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+// Evaluate magnitude response of the filter
+fcut = 5; //hz
+n = 7; // Filter order
+hc1 = analpf(n, 'cheb1', [0.1 0], fcut*2*%pi);
+hc2 = analpf(n, 'cheb2', [0 0.1], fcut*2*%pi);
+he = analpf(n, 'ellip', [0.1 0.1], fcut*2*%pi);
+hb = analpf(n, 'butt', [0 0], fcut*2*%pi);
+hc1.dt = 'c';
+hc2.dt = 'c';
+he.dt = 'c';
+hb.dt = 'c';
+clf();
+[fr, hf] = repfreq(hc1, 0, 15);
+plot(fr, abs(hf), 'b')
+[fr, hf] = repfreq(hc2, 0, 15);
+plot(fr,abs(hf),'g')
+[fr, hf] = repfreq(he, 0, 15);
+plot(fr,abs(hf),'r')
+[fr, hf] = repfreq(hb, 0, 15);
+plot(fr, abs(hf), 'c')
+
+legend(["Chebyshev I", "Chebyshev II", "Elliptic", "Butterworth"]);
+xgrid()
+xlabel("Frequency (Hz)")
+ylabel("Gain")
+title("Analog filters of order 7")
+ ]]></programlisting>
+ <para>
+ <scilab:image>
+ fcut=5; //hz
+ n=7;//filter order
+ hc1=analpf(n,'cheb1',[0.1 0],fcut*2*%pi);
+ hc2=analpf(n,'cheb2',[0 0.1],fcut*2*%pi);
+ he=analpf(n,'ellip',[0.1 0.1],fcut*2*%pi);
+ hb=analpf(n,'butt',[0 0],fcut*2*%pi);
+ hc1.dt='c';hc2.dt='c';he.dt='c';hb.dt='c';
+ clf();
+ [fr, hf]=repfreq(hc1,0,15);
+ plot(fr,abs(hf),'b')
+ [fr, hf]=repfreq(hc2,0,15);
+ plot(fr,abs(hf),'g')
+ [fr, hf]=repfreq(he,0,15);
+ plot(fr,abs(hf),'r')
+ [fr, hf]=repfreq(hb,0,15);
+ plot(fr,abs(hf),'c')
+
+ legend(["Chebyshev I","Chebyshev II","Elliptic","Butterworth"]);
+ xgrid()
+ xlabel("Frequency (Hz)")
+ ylabel("Gain")
+ title("Analog filters of order 7")
+ </scilab:image>
+ </para>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="repfreq">repfreq</link>
+ </member>
+ <member>
+ <link linkend="bode">bode</link>
+ </member>
+ <member>
+ <link linkend="csim">csim</link>
+ </member>
+ <member>
+ <link linkend="syslin">syslin</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/buttmag.xml b/modules/signal_processing/help/en_US/filters/buttmag.xml
new file mode 100755
index 000000000..63ad3b5cb
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/buttmag.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="buttmag">
+ <refnamediv>
+ <refname>buttmag</refname>
+ <refpurpose>Power transmission of a Butterworth filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[h]=buttmag(order,omegac,sample)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>order</term>
+ <listitem>
+ <para>integer : filter order</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>omegac</term>
+ <listitem>
+ <para>real : cut-off angular frequency (in rad/s)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sample</term>
+ <listitem>
+ <para>real vector of angular frequencies (in rad/s), where the transmission must be evaluated.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>h</term>
+ <listitem>
+ <para>Butterworth filter values at sample points</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ squared magnitude response of a Butterworth filter
+ <literal>omegac</literal> = cutoff frequency ; <literal>sample</literal> = sample of frequencies
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+//squared magnitude response of Butterworth filter
+h=buttmag(13,300,1:1000);
+mag=20*log(h)'/log(10);
+plot2d((1:1000)',mag,[2],"011"," ",[0,-180,1000,20])
+ ]]></programlisting>
+ <scilab:image><![CDATA[
+h=buttmag(13,300,1:1000);
+mag=20*log(h)'/log(10);
+plot2d((1:1000)',mag,[2],"011"," ",[0,-180,1000,20])
+]]> </scilab:image>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/casc.xml b/modules/signal_processing/help/en_US/filters/casc.xml
new file mode 100755
index 000000000..4f02aa0ff
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/casc.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="casc">
+ <refnamediv>
+ <refname>casc</refname>
+ <refpurpose>cascade realization of filter from coefficients</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[cels]=casc(x,z)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>(4xN)-matrix where each column is a cascade element, the first two column entries being the numerator coefficients and the second two column entries being the denominator coefficients</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>z</term>
+ <listitem>
+ <para>string representing the cascade variable</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cels</term>
+ <listitem>
+ <para>resulting cascade representation</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Creates cascade realization of filter from a matrix of coefficients
+ (utility function).
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+x=[1,2,3;4,5,6;7,8,9;10,11,12]
+cels=casc(x,'z')
+ ]]></programlisting>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/cheb1mag.xml b/modules/signal_processing/help/en_US/filters/cheb1mag.xml
new file mode 100755
index 000000000..9eeedeb06
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/cheb1mag.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="cheb1mag">
+ <refnamediv>
+ <refname>cheb1mag</refname>
+ <refpurpose>response of Chebyshev type 1 filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[h2]=cheb1mag(n,omegac,epsilon,sample)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>integer : filter order</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>omegac</term>
+ <listitem>
+ <para>real : cut-off frequency</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>epsilon</term>
+ <listitem>
+ <para>real : ripple in pass band</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sample</term>
+ <listitem>
+ <para>
+ vector of frequencies where <literal>cheb1mag</literal> is evaluated
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>h2</term>
+ <listitem>
+ <para>Chebyshev I filter values at sample points</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Square magnitude response of a type 1 Chebyshev filter.
+ </para>
+ <para>
+ <literal>omegac</literal>=passband edge.
+ </para>
+ <para>
+ <literal>epsilon</literal>such that <literal>1/(1+epsilon^2)</literal>=passband ripple.
+ </para>
+ <para>
+ <literal>sample</literal>vector of frequencies where the square magnitude
+ is desired.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+//Chebyshev; ripple in the passband
+n=13;epsilon=0.2;omegac=3;samples=0:0.05:10;
+h=cheb1mag(n,omegac,epsilon,samples);
+plot2d(samples,h)
+xtitle('','frequencies','magnitude')
+ ]]></programlisting>
+ <scilab:image><![CDATA[
+n=13;epsilon=0.2;omegac=3;samples=0:0.05:10;
+h=cheb1mag(n,omegac,epsilon,samples);
+plot2d(samples,h)
+xtitle('','frequencies','magnitude')
+]]> </scilab:image>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="buttmag">buttmag</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/cheb2mag.xml b/modules/signal_processing/help/en_US/filters/cheb2mag.xml
new file mode 100755
index 000000000..cae5adfcb
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/cheb2mag.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="cheb2mag">
+ <refnamediv>
+ <refname>cheb2mag</refname>
+ <refpurpose>response of type 2 Chebyshev filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[h2]=cheb2mag(n,omegar,A,sample)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>integer ; filter order</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>omegar</term>
+ <listitem>
+ <para>real scalar : cut-off frequency</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>attenuation in stop band</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sample</term>
+ <listitem>
+ <para>vector of frequencies where cheb2mag is evaluated</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>h2</term>
+ <listitem>
+ <para>vector of Chebyshev II filter values at sample points</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Square magnitude response of a type 2 Chebyshev filter.
+ </para>
+ <para>
+ <literal>omegar</literal> = stopband edge, <literal>sample</literal> = vector of
+ frequencies where the square magnitude <literal>h2</literal> is desired.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+//Chebyshev; ripple in the stopband
+n=10;
+omegar=6;
+A=1/0.2;
+Samples=0.0001:0.05:10;
+h2=cheb2mag(n,omegar,A,Samples);
+plot(Samples,log(h2)/log(10))
+xtitle("", "frequencies", "magnitude in dB");
+
+//Plotting of frequency edges
+minval=(-max(-log(h2)))/log(10);
+plot2d([omegar;omegar],[minval;0],[2],"000");
+
+//Computation of the attenuation in dB at the stopband edge
+attenuation=-log(A*A)/log(10);
+plot2d(Samples',attenuation*ones(Samples)',[5],"000")
+ ]]></programlisting>
+ <scilab:image><![CDATA[
+n=10;omegar=6;A=1/0.2;Samples=0.0001:0.05:10;
+h2=cheb2mag(n,omegar,A,Samples);
+plot(Samples,log(h2)/log(10))
+xtitle("", "frequencies", "magnitude in dB");
+
+minval=(-max(-log(h2)))/log(10);
+plot2d([omegar;omegar],[minval;0],[2],"000");
+
+attenuation=-log(A*A)/log(10);
+plot2d(Samples',attenuation*ones(Samples)',[5],"000")
+]]> </scilab:image>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="cheb1mag">cheb1mag</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/convol.xml b/modules/signal_processing/help/en_US/filters/convol.xml
new file mode 100755
index 000000000..b6af0b0df
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/convol.xml
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="convol" xml:lang="en">
+ <refnamediv>
+ <refname>convol</refname>
+ <refpurpose>convolution</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ [y]=convol(h,x)
+ [y,e1]=convol(h,x,e0)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>h</term>
+ <listitem>
+ <para>a vector, first input sequence ("short" one) </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>a vector, second input sequence ( "long" one)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>e0</term>
+ <listitem>
+ <para>a vector,old tail to overlap add (not used in first
+ call)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>a vector, the convolution. </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>e1</term>
+ <listitem>
+ <para>new tail to overlap add (not used in last call)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Calculates the convolution <literal>y= h*x</literal> of two discrete
+ sequences by using the fft. The convolution is defined as follow:
+ </para>
+ <para>
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata>
+ <mml:math>
+ <mml:semantics>
+ <mml:mrow>
+ <mml:msub>
+ <mml:mi>y</mml:mi>
+ <mml:mi>k</mml:mi>
+ </mml:msub>
+ <mml:mo mml:stretchy="false">=</mml:mo>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:msub>
+ <mml:mo mml:stretchy="false">∑</mml:mo>
+ <mml:mi>j</mml:mi>
+ </mml:msub>
+ <mml:msub>
+ <mml:mi>h</mml:mi>
+ <mml:mi>j</mml:mi>
+ </mml:msub>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">∗</mml:mo>
+ <mml:msub>
+ <mml:mi>x</mml:mi>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:mi>k</mml:mi>
+ <mml:mo mml:stretchy="false">+</mml:mo>
+ <mml:mn>1</mml:mn>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">−</mml:mo>
+ <mml:mi>j</mml:mi>
+ </mml:mrow>
+ </mml:msub>
+ </mml:mrow>
+ </mml:mrow>
+ <mml:annotation mml:encoding="StarMath 5.0">y_k=sum_j h_j*x_{k+1-j}
+ </mml:annotation>
+ </mml:semantics>
+ </mml:math>
+ </imagedata>
+ </imageobject>
+ </inlinemediaobject>
+ </para>
+ <para>Overlap add method can be used.</para>
+ <para>USE OF OVERLAP ADD METHOD: For
+ <literal>x=[x1,x2,...,xNm1,xN]</literal> First call is
+ <literal>[y1,e1]=convol(h,x1);</literal> Subsequent calls :
+ <literal>[yk,ek]=convol(h,xk,ekm1)</literal>; Final call :
+ <literal>[yN]=convol(h,xN,eNm1);</literal> Finally
+ <literal>y=[y1,y2,...,yNm1,yN]</literal>.
+ </para>
+ <para>The algorithm based on the convolution definition is
+ implemented for polynomial
+ product: <literal>y=convol(h,x)</literal> is equivalent
+ to <literal>y=coeff(poly(h,'z','c')*poly(x,'z','c')</literal> but
+ much more efficient if <literal>x</literal> is a "long" array.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+x=1:3;
+h1=[1,0,0,0,0];h2=[0,1,0,0,0];h3=[0,0,1,0,0];
+x1=convol(h1,x),x2=convol(h2,x),x3=convol(h3,x),
+convol(h1+h2+h3,x)
+p1=poly(x,'x','coeff')
+p2=poly(h1+h2+h3,'x','coeff')
+p1*p2
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="corr">corr</link>
+ </member>
+ <member>
+ <link linkend="fft">fft</link>
+ </member>
+ <member>
+ <link linkend="pspect">pspect</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/ell1mag.xml b/modules/signal_processing/help/en_US/filters/ell1mag.xml
new file mode 100755
index 000000000..b54bf1c26
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/ell1mag.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="ell1mag">
+ <refnamediv>
+ <refname>ell1mag</refname>
+ <refpurpose>magnitude of elliptic filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[v]=ell1mag(eps,m1,z)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>eps</term>
+ <listitem>
+ <para>
+ passband ripple=<literal>1/(1+eps^2)</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>m1</term>
+ <listitem>
+ <para>
+ stopband ripple=<literal>1/(1+(eps^2)/m1)</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>z</term>
+ <listitem>
+ <para>sample vector of values in the complex plane</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>v</term>
+ <listitem>
+ <para>elliptic filter values at sample points</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Function used for squared magnitude of an elliptic filter.
+ Usually <literal>m1=eps*eps/(a*a-1)</literal>. Returns
+ <literal>v=real(ones(z)./(ones(z)+eps*eps*s.*s))</literal> for <literal>s=%sn(z,m1)</literal>.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+deff('[alpha,BeTa]=alpha_beta(n,m,m1)',...
+'if 2*int(n/2)==n then, BeTa=K1; else, BeTa=0;end;...
+alpha=%k(1-m1)/%k(1-m);')
+epsilon=0.1;A=10; //ripple parameters
+m1=(epsilon*epsilon)/(A*A-1);n=5;omegac=6;
+m=find_freq(epsilon,A,n);omegar = omegac/sqrt(m)
+%k(1-m1)*%k(m)/(%k(m1)*%k(1-m))-n //Check...
+[alpha,Beta]=alpha_beta(n,m,m1)
+alpha*delip(1,sqrt(m))-n*%k(m1) //Check
+samples=0:0.01:20;
+//Now we map the positive real axis into the contour...
+z=alpha*delip(samples/omegac,sqrt(m))+Beta*ones(samples);
+plot(samples,ell1mag(epsilon,m1,z))
+ ]]></programlisting>
+ <scilab:image><![CDATA[
+deff('[alpha,BeTa]=alpha_beta(n,m,m1)',...
+'if 2*int(n/2)==n then, BeTa=K1; else, BeTa=0;end;...
+alpha=%k(1-m1)/%k(1-m);')
+epsilon=0.1;A=10; //ripple parameters
+m1=(epsilon*epsilon)/(A*A-1);n=5;omegac=6;
+m=find_freq(epsilon,A,n);omegar = omegac/sqrt(m)
+%k(1-m1)*%k(m)/(%k(m1)*%k(1-m))-n //Check...
+[alpha,Beta]=alpha_beta(n,m,m1)
+alpha*delip(1,sqrt(m))-n*%k(m1) //Check
+samples=0:0.01:20;
+//Now we map the positive real axis into the contour...
+z=alpha*delip(samples/omegac,sqrt(m))+Beta*ones(samples);
+plot(samples,ell1mag(epsilon,m1,z))
+]]> </scilab:image>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="buttmag">buttmag</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/eqfir.xml b/modules/signal_processing/help/en_US/filters/eqfir.xml
new file mode 100755
index 000000000..dec9aca25
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/eqfir.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="eqfir">
+ <refnamediv>
+ <refname>eqfir</refname>
+ <refpurpose>minimax approximation of FIR filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[hn]=eqfir(nf,bedge,des,wate)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>nf</term>
+ <listitem>
+ <para>number of output filter points desired</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>bedge</term>
+ <listitem>
+ <para>Mx2 matrix giving a pair of edges for each band</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>des</term>
+ <listitem>
+ <para>M-vector giving desired magnitude for each band</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>wate</term>
+ <listitem>
+ <para>M-vector giving relative weight of error in each band</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>hn</term>
+ <listitem>
+ <para>output of linear-phase FIR filter coefficients</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Minimax approximation of multi-band, linear phase, FIR filter
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+hn=eqfir(33,[0 .2;.25 .35;.4 .5],[0 1 0],[1 1 1]);
+[hm,fr]=frmag(hn,256);
+plot(fr,hm),
+ ]]></programlisting>
+ <scilab:image><![CDATA[
+hn=eqfir(33,[0 .2;.25 .35;.4 .5],[0 1 0],[1 1 1]);
+[hm,fr]=frmag(hn,256);
+plot(fr,hm),
+]]> </scilab:image>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/eqiir.xml b/modules/signal_processing/help/en_US/filters/eqiir.xml
new file mode 100755
index 000000000..97dc2cb5d
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/eqiir.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="eqiir" xml:lang="en">
+ <refnamediv>
+ <refname>eqiir</refname>
+ <refpurpose>Design of iir filters</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[cells,fact,zzeros,zpoles]=eqiir(ftype,approx,om,deltap,deltas)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>ftype</term>
+ <listitem>
+ <para>
+ filter type (<literal>'lp','hp','sb','bp'</literal>)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>approx</term>
+ <listitem>
+ <para>design approximation
+ (<literal>'butt','cheb1','cheb2','ellip'</literal>)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>om</term>
+ <listitem>
+ <para>4-vector of cutoff frequencies (in radians)
+ <literal>om=[om1,om2,om3,om4]</literal>, <literal>0 &lt;= om1 &lt;=
+ om2 &lt;= om3 &lt;= om4 &lt;= pi
+ </literal>
+ .When
+ <literal>ftype</literal>='lp' or 'hp', <literal>om3</literal> and
+ <literal>om4</literal> are not used and may be set to 0.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>deltap</term>
+ <listitem>
+ <para>
+ ripple in the passband. <literal>0&lt;= deltap
+ &lt;=1
+ </literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>deltas</term>
+ <listitem>
+ <para>
+ ripple in the stopband. <literal>0&lt;= deltas
+ &lt;=1
+ </literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cells</term>
+ <listitem>
+ <para>realization of the filter as second order cells</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fact</term>
+ <listitem>
+ <para>normalization constant</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>zzeros</term>
+ <listitem>
+ <para>zeros in the z-domain</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>zpoles</term>
+ <listitem>
+ <para>poles in the z-domain</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Design of iir filter based on <link linkend="syredi">syredi</link>.
+ </para>
+ <para>
+ The filter obtained is <literal>h(z)=fact</literal>*product of the
+ elements of <literal>cells</literal>.
+ </para>
+ <para>That is
+ <literal>hz=fact*prod(cells.num)./prod(cells.den).</literal>
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+[cells,fact,zzeros,zpoles]=eqiir('lp','ellip',[2*%pi/10,4*%pi/10],0.02,0.001)
+h=fact*poly(zzeros,'z')/poly(zpoles,'z')
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="eqfir">eqfir</link>
+ </member>
+ <member>
+ <link linkend="iir">iir</link>
+ </member>
+ <member>
+ <link linkend="syredi">syredi</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/faurre.xml b/modules/signal_processing/help/en_US/filters/faurre.xml
new file mode 100755
index 000000000..1fa2b4da9
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/faurre.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="faurre">
+ <refnamediv>
+ <refname>faurre</refname>
+ <refpurpose>filter computation by simple Faurre algorithm</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[P,R,T]=faurre(n,H,F,G,R0)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>number of iterations.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>H, F, G</term>
+ <listitem>
+ <para>
+ estimated triple from the covariance sequence of <literal>y</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>R0</term>
+ <listitem>
+ <para>E(yk*yk')</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>P</term>
+ <listitem>
+ <para>solution of the Riccati equation after n iterations.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>R, T</term>
+ <listitem>
+ <para>gain matrix of the filter.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ This function computes iteratively the minimal solution of the algebraic
+ Riccati equation and gives the matrices <literal>R</literal> and <literal>T</literal> of the
+ filter model.
+ The algorithm tries to compute the solution P as the growing limit of a
+ sequence of matrices Pn such that
+ </para>
+ <programlisting role=""><![CDATA[
+ -1
+Pn+1=F*Pn*F'+(G-F*Pn*h')*(R0-H*Pn*H') *(G'-H*Pn*F')
+ -1
+P0=G*R0 *G'
+ ]]></programlisting>
+ <para>
+ Note that this method may not converge,especially when F has poles
+ near the unit circle. Use preferably the srfaur function.
+ </para>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="srfaur">srfaur</link>
+ </member>
+ <member>
+ <link linkend="lindquist">lindquist</link>
+ </member>
+ <member>
+ <link linkend="phc">phc</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/ffilt.xml b/modules/signal_processing/help/en_US/filters/ffilt.xml
new file mode 100755
index 000000000..6c9aba24c
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/ffilt.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="ffilt">
+ <refnamediv>
+ <refname>ffilt</refname>
+ <refpurpose>coefficients of FIR low-pass</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[x]=ffilt(ft,n,fl,fh)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>ft</term>
+ <listitem>
+ <para>
+ filter type where <literal>ft</literal> can take the values
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>"lp" </term>
+ <listitem>
+ <para>for low-pass filter</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>"hp" </term>
+ <listitem>
+ <para>for high-pass filter</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>"bp" </term>
+ <listitem>
+ <para>for band-pass filter</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>"sb" </term>
+ <listitem>
+ <para>for stop-band filter</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>integer (number of filter samples desired)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fl</term>
+ <listitem>
+ <para>real (low frequency cut-off)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fh</term>
+ <listitem>
+ <para>real (high frequency cut-off)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>vector of filter coefficients</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Get <literal>n</literal> coefficients of a FIR low-pass,
+ high-pass, band-pass, or stop-band filter.
+ For low and high-pass filters one cut-off
+ frequency must be specified whose value is
+ given in <literal>fl</literal>. For band-pass and stop-band
+ filters two cut-off frequencies must be
+ specified for which the lower value is in
+ <literal>fl</literal> and the higher value is in <literal>fh</literal>
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/filter.xml b/modules/signal_processing/help/en_US/filters/filter.xml
new file mode 100755
index 000000000..ee20428ee
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/filter.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2004-2007 - INRIA - Vincent COUVERT
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="filter">
+ <refnamediv>
+ <refname>filter</refname>
+ <refpurpose>filters a data sequence using a digital filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[y,zf] = filter(B, A, x [,zi])</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>B</term>
+ <listitem>
+ <para>real vector : the coefficients of the filter numerator in decreasing power order, or a polynomial.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>real vector : the coefficients of the filter denominator in decreasing power order, or a polynomial.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>real row vector : the input signal</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>zi</term>
+ <listitem>
+ <para>real row vector of length
+ <literal>max(length(a),length(b))-1</literal>: the initial
+ condition relative to a "direct form II transposed" state
+ space representation. The default value is a vector filled
+ with zeros.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>real row vector : the filtered signal. </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>zf</term>
+ <listitem>
+ <para>real row vector : the final state. It can be used to
+ filter a next batch of the input signal.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ This function filters a data sequence using a digital
+ filter using a "direct form II transposed"
+ implementation.
+ </para>
+ <para>
+ The filter canonical form is :
+ </para>
+ <para>
+ <latex>
+ \[
+ H(z) = \frac{B(z)}{A(z)} = \frac{b_0 + b_1 z^{-1} + \dots + b_n z^{-n}}{a_0 + a_1 z^{-1} + \dots + a_n z^{-n}}
+ \]
+ </latex>
+ </para>
+ <para>
+ The algorithm uses the highest degree between <literal>degree(a)</literal> and <literal>degree(b)</literal> as value for <literal>n</literal>.
+ </para>
+ <para>
+ If the polynomial form is used for <varname>B</varname> (resp. for <varname>A</varname>) then a polynomial or a scalar must be used for <varname>A</varname> (resp. <varname>B</varname>).
+ </para>
+ </refsection>
+ <refsection>
+ <title>References</title>
+ <para>
+ Oppenheim, A. V. and R.W. Schafer. Discrete-Time Signal Processing, Englewood Cliffs, NJ: Prentice-Hall, 1989, pp. 311-312.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+ x = [1 zeros(1,9)]
+ h = [0 0 1];
+ res = filter(h, 1, x) //This creates a delay of 2 elements
+
+ z = poly(0, "z");
+ B = 1;
+ A = z^2;
+ // B/A is z^(-2)
+ // the resulting filter is also a delay of 2 elements
+ res = filter(B, A, x)
+
+ //Integrator filter
+ x = ones(1,10)
+ B = 1;
+ A = [1 -1];
+ res = filter(B, A, x)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="flts">flts</link>
+ </member>
+ <member>
+ <link linkend="rtitr">rtitr</link>
+ </member>
+ <member>
+ <link linkend="ltitr">ltitr</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/find_freq.xml b/modules/signal_processing/help/en_US/filters/find_freq.xml
new file mode 100755
index 000000000..cf081d2f8
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/find_freq.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="find_freq">
+ <refnamediv>
+ <refname>find_freq</refname>
+ <refpurpose>parameter compatibility for elliptic filter design</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[m]=find_freq(epsilon,A,n)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>epsilon</term>
+ <listitem>
+ <para>passband ripple</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>stopband attenuation</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>filter order</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>m</term>
+ <listitem>
+ <para>frequency needed for construction of elliptic filter</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Search for m such that <literal>n=K(1-m1)K(m)/(K(m1)K(1-m))</literal>
+ with
+ </para>
+ <para>
+ <literal>m1=(epsilon*epsilon)/(A*A-1)</literal>;
+ </para>
+ <para>
+ If <literal>m = omegar^2/omegac^2</literal>, the parameters
+ <literal>epsilon,A,omegac,omegar</literal> and <literal>n</literal> are then
+ compatible for defining a prototype elliptic filter.
+ Here, <literal>K=%k(m)</literal> is the complete elliptic integral with parameter <literal>m</literal>.
+ </para>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="percentk">%k</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/frmag.xml b/modules/signal_processing/help/en_US/filters/frmag.xml
new file mode 100755
index 000000000..0c614a8f9
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/frmag.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="frmag">
+ <refnamediv>
+ <refname>frmag</refname>
+ <refpurpose>magnitude of FIR and IIR filters</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ [xm,fr]=frmag(sys,npts)
+ [xm,fr]=frmag(num,den,npts)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>sys</term>
+ <listitem>
+ <para>a single input,
+ single output discrete transfer function, or a polynomial or
+ the vector of polynomial coefficients, the filter.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>num</term>
+ <listitem>
+ <para>a polynomial or the vector of polynomial coefficients,
+ the numerator of the filter
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>den</term>
+ <listitem>
+ <para>a polynomial or the vector of polynomial coefficients,
+ the denominator of the filter (the default value is 1).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>npts</term>
+ <listitem>
+ <para>integer, the number of points in frequency response.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>xm</term>
+ <listitem>
+ <para>vector of magnitude of frequency response at the
+ points <literal>fr</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fr</term>
+ <listitem>
+ <para>points in the normalized frequency domain where magnitude is
+ evaluated.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ calculates the magnitude of the frequency responses of
+ FIR and IIR filters. The filter description can be
+ one or two vectors of coefficients, one or two polynomials,
+ or a single output discrete transfer function.
+ </para>
+ <para> the frequency discretization is given by
+ <literal>fr=linspace(0,1/2,npts)</literal>.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+hz=iir(3,'bp','cheb1',[.15 .25],[.08 .03]);
+[hzm,fr]=frmag(hz,256);
+plot(fr,hzm)
+hz=iir(3,'bp','ellip',[.15 .25],[.08 .03]);
+[hzm,fr]=frmag(hz,256);
+plot(fr,hzm,'r')
+ ]]></programlisting>
+ <scilab:image><![CDATA[
+hz=iir(3,'bp','cheb1',[.15 .25],[.08 .03]);
+[hzm,fr]=frmag(hz,256);
+plot(fr,hzm)
+hz=iir(3,'bp','ellip',[.15 .25],[.08 .03]);
+[hzm,fr]=frmag(hz,256);
+plot(fr,hzm,'r')
+]]> </scilab:image>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="iir">iir</link>
+ </member>
+ <member>
+ <link linkend="eqfir">eqfir</link>
+ </member>
+ <member>
+ <link linkend="repfreq">repfreq</link>
+ </member>
+ <member>
+ <link linkend="calfrq">calfrq</link>
+ </member>
+ <member>
+ <link linkend="phasemag">phasemag</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/fsfirlin.xml b/modules/signal_processing/help/en_US/filters/fsfirlin.xml
new file mode 100755
index 000000000..ad55103db
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/fsfirlin.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="fsfirlin">
+ <refnamediv>
+ <refname>fsfirlin</refname>
+ <refpurpose>design of FIR, linear phase filters, frequency sampling technique</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[hst]=fsfirlin(hd,flag)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>hd</term>
+ <listitem>
+ <para>vector of desired frequency response samples</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>flag</term>
+ <listitem>
+ <para>is equal to 1 or 2, according to the choice of type 1 or type 2 design</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>hst</term>
+ <listitem>
+ <para>vector giving the approximated continuous response on a dense grid of frequencies</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ function for the design of FIR, linear phase filters
+ using the frequency sampling technique
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+//
+//Example of how to use the fsfirlin macro for the design
+//of an FIR filter by a frequency sampling technique.
+//
+//Two filters are designed : the first (response hst1) with
+//abrupt transitions from 0 to 1 between passbands and stop
+//bands; the second (response hst2) with one sample in each
+//transition band (amplitude 0.5) for smoothing.
+//
+hd=[zeros(1,15) ones(1,10) zeros(1,39)];//desired samples
+hst1=fsfirlin(hd,1);//filter with no sample in the transition
+hd(15)=.5;hd(26)=.5;//samples in the transition bands
+hst2=fsfirlin(hd,1);//corresponding filter
+pas=1/prod(size(hst1))*.5;
+fg=0:pas:.5;//normalized frequencies grid
+plot2d([1 1].*.fg(1:257)',[hst1' hst2']);
+
+// 2nd example
+hd=[0*ones(1,15) ones(1,10) 0*ones(1,39)];//desired samples
+hst1=fsfirlin(hd,1);//filter with no sample in the transition
+hd(15)=.5;hd(26)=.5;//samples in the transition bands
+hst2=fsfirlin(hd,1);//corresponding filter
+pas=1/prod(size(hst1))*.5;
+fg=0:pas:.5;//normalized frequencies grid
+n=prod(size(hst1))
+plot(fg(1:n),hst1);
+plot2d(fg(1:n)',hst2',[3],"000");
+ ]]></programlisting>
+ <scilab:image><![CDATA[
+hd=[zeros(1,15) ones(1,10) zeros(1,39)];//desired samples
+hst1=fsfirlin(hd,1);//filter with no sample in the transition
+hd(15)=.5;hd(26)=.5;//samples in the transition bands
+hst2=fsfirlin(hd,1);//corresponding filter
+pas=1/prod(size(hst1))*.5;
+fg=0:pas:.5;//normalized frequencies grid
+plot2d([1 1].*.fg(1:257)',[hst1' hst2']);
+
+// 2nd example
+hd=[0*ones(1,15) ones(1,10) 0*ones(1,39)];//desired samples
+hst1=fsfirlin(hd,1);//filter with no sample in the transition
+hd(15)=.5;hd(26)=.5;//samples in the transition bands
+hst2=fsfirlin(hd,1);//corresponding filter
+pas=1/prod(size(hst1))*.5;
+fg=0:pas:.5;//normalized frequencies grid
+n=prod(size(hst1))
+plot(fg(1:n),hst1);
+plot2d(fg(1:n)',hst2',[3],"000");
+]]> </scilab:image>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="ffilt">ffilt</link>
+ </member>
+ <member>
+ <link linkend="wfir">wfir</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/group.xml b/modules/signal_processing/help/en_US/filters/group.xml
new file mode 100755
index 000000000..ba50fa08a
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/group.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="group">
+ <refnamediv>
+ <refname>group</refname>
+ <refpurpose>group delay for digital filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ [tg [,fr]] = group(npts, H) (call with a siso transfert function)
+ [tg [,fr]] = group(npts, C) (call with a vector of transfert functions, cascaded second order representation)
+
+ [tg [,fr]] = group(npts, F) (call with the vector of an FIR filter coefficients)
+ [tg [,fr]] = group(npts, a1i, a2i, b1i, b2i) (call with 4 vectors of numbers, cascaded second order Deczky representation)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>npts</term>
+ <listitem>
+ <para>integer : number of points desired in calculation of group delay</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>a1i</term>
+ <listitem>
+ <para>in coefficient, polynomial, rational polynomial, or cascade polynomial form this variable is the transfer function of the filter. In coefficient polynomial form this is a vector of coefficients (see below).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>a2i</term>
+ <listitem>
+ <para>in coeff poly form this is a vector of coeffs</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>b1i</term>
+ <listitem>
+ <para>in coeff poly form this is a vector of coeffs</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>b2i</term>
+ <listitem>
+ <para>in coeff poly form this is a vector of coeffs</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>tg</term>
+ <listitem>
+ <para>values of group delay evaluated on the grid fr</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fr</term>
+ <listitem>
+ <para>grid of normalized frequency values where group delay is evaluated</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Calculate the group delay of a digital filter
+ with transfer function h(z).
+ </para>
+ <para>
+ The filter specification can be in coefficient form,
+ polynomial form, rational polynomial form, cascade
+ polynomial form, or in coefficient polynomial form.
+ </para>
+ <para>
+ In the coefficient polynomial form the transfer function is
+ formulated by the following expression
+ </para>
+ <para>
+ <literal>h(z)=prod(a1i+a2i*z+z**2)/prod(b1i+b2i*z+z^2)</literal>
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+ s = poly(0, "s");
+ h_cont = syslin("c", 1/(s-10));
+ h = ss2tf(cls2dls(tf2ss(h_cont), 0.1));
+ [tg, fr] = group(100, h);
+ plot(fr, tg)
+ ]]></programlisting>
+ <scilab:image><![CDATA[
+s = poly(0, "s");
+h_cont = syslin("c", 1/(s-10));
+h = ss2tf(cls2dls(tf2ss(h_cont), 0.1));
+[tg, fr] = group(100, h);
+plot(fr, tg)
+]]> </scilab:image>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/iir.xml b/modules/signal_processing/help/en_US/filters/iir.xml
new file mode 100755
index 000000000..9e437afcc
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/iir.xml
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="iir" xml:lang="en">
+ <refnamediv>
+ <refname>iir</refname>
+ <refpurpose>iir digital filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ hz=iir(n,ftype,fdesign,frq,delta)
+ [p,z,g]=iir(n,ftype,fdesign,frq,delta)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>positive number witn integer value, the filter order.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ftype</term>
+ <listitem>
+ <para>string specifying the filter type, the possible values are:
+ <literal>'lp'</literal> for low-pass,<literal>'hp'</literal> for
+ high pass,<literal>'bp'</literal> for band pass and
+ <literal>'sb'</literal> for stop band.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fdesign</term>
+ <listitem>
+ <para>string specifying the analog filter design, the
+ possible values are: <literal>'butt'</literal>,
+ <literal>'cheb1'</literal>, <literal>'cheb2'</literal> and
+ <literal>'ellip'</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>frq</term>
+ <listitem>
+ <para>2-vector of discrete cut-off frequencies (i.e.,
+ <literal>0&lt;frq&lt;.5</literal>). For <literal>'lp'</literal> and
+ <literal>'hp'</literal> filters only <literal>frq(1)</literal> is
+ used (in this case, <varname>frq</varname> can be a scalar).
+ For <literal>'bp'</literal> and <literal>'sb'</literal> filters
+ <literal>frq(1)</literal> is the upper cut-off frequency and
+ <literal>frq(2)</literal> is the lower cut-off frequency.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>delta</term>
+ <listitem>
+ <para>
+ 2-vector of error values for <literal>cheb1</literal>,
+ <literal>cheb2</literal>, and <literal>ellip</literal> filters where
+ only <literal>delta(1)</literal> is used for
+ <literal>cheb1</literal> case, only <literal>delta(2)</literal> is
+ used for <literal>cheb2</literal> case, and
+ <literal>delta(1)</literal> and <literal>delta(2)</literal> are both
+ used for <literal>ellip</literal> case.
+ <literal>0&lt;delta(1),delta(2)&lt;1</literal>
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ for <literal>cheb1</literal> filters
+ <literal>1-delta(1)&lt;ripple&lt;1</literal> in passband
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ for <literal>cheb2</literal> filters
+ <literal>0&lt;ripple&lt;delta(2)</literal> in stopband
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ for <literal>ellip</literal> filters
+ <literal>1-delta(1)&lt;ripple&lt;1</literal> in passband and
+ <literal>0&lt;ripple&lt;delta(2)</literal> in stopband
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>hz</term>
+ <listitem>
+ <para>a single input single output discrete transfer function, the low pass filter</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>p</term>
+ <listitem>
+ <para>vector of transformed filter zeros.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>z</term>
+ <listitem>
+ <para>vector of transformed filter poles.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>g </term>
+ <listitem>
+ <para>a scalar: transformed filter gain.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ function which designs an iir digital filter using <link linkend="analpf">analog filter</link> designs and <link linkend="bilt">bilinear transformation</link> .
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+hz=iir(3,'bp','ellip',[.15 .25],[.08 .03]);
+[hzm,fr]=frmag(hz,256);
+plot2d(fr',hzm')
+xtitle('Discrete IIR filter: band pass 0.15 < fr < 0.25 ',' ',' ');
+q=poly(0,'q'); //to express the result in terms of the delay operator q=z^-1
+hzd=horner(hz,1/q)
+]]> </programlisting>
+ <scilab:image><![CDATA[
+hz=iir(3,'bp','ellip',[.15 .25],[.08 .03]);
+[hzm,fr]=frmag(hz,256);
+plot2d(fr',hzm')
+xtitle('Discrete IIR filter: band pass 0.15 < fr < 0.25 ',' ',' ');
+]]> </scilab:image>
+ <programlisting role="example"><![CDATA[
+//Poles Zeros Gain filter representation
+[p,z,g]=iir(3,'bp','ellip',[.15 .25],[.08 .03]);
+g*poly(z,'z')/poly(p,'z')
+ ]]> </programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="eqfir">eqfir</link>
+ </member>
+ <member>
+ <link linkend="eqiir">eqiir</link>
+ </member>
+ <member>
+ <link linkend="analpf">analpf</link>
+ </member>
+ <member>
+ <link linkend="bilt">bilt</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/iirgroup.xml b/modules/signal_processing/help/en_US/filters/iirgroup.xml
new file mode 100755
index 000000000..a97ad3008
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/iirgroup.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="iirgroup">
+ <refnamediv>
+ <refname>iirgroup</refname>
+ <refpurpose>group delay Lp IIR filter optimization</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[lt,grad]=iirgroup(p,r,theta,omega,wt,td)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>p</term>
+ <listitem>
+ <para>Lp criterion</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>r</term>
+ <listitem>
+ <para>vector of the module of the poles and the zeros of the filters</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>theta</term>
+ <listitem>
+ <para>vector of the argument of the poles and the zeros of the filters</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>omega</term>
+ <listitem>
+ <para>frequencies where the filter specifications are given</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>wt</term>
+ <listitem>
+ <para>weighting function for and the group delay</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>td</term>
+ <listitem>
+ <para>desired group delay</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>lt, grad</term>
+ <listitem>
+ <para>criterium and gradient values</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ optimization of IIR filters for the Lp criterium for the
+ the group delay. (Rabiner &amp; Gold pp270-273).
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/iirlp.xml b/modules/signal_processing/help/en_US/filters/iirlp.xml
new file mode 100755
index 000000000..90df18284
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/iirlp.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="iirlp">
+ <refnamediv>
+ <refname>iirlp</refname>
+ <refpurpose>Lp IIR filter optimization</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[cost,grad,ind]=iirlp(x,ind,p,[flag],lambda,omega,ad,wa,td,wt)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>p</term>
+ <listitem>
+ <para>Lp criterion</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>1X2 vector of the module and argument of the poles and the zeros of the filters</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>flag</term>
+ <listitem>
+ <para>
+ string : <literal>'a'</literal> for amplitude, 'gd' for group delay; default case for amplitude and group delay.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>omega</term>
+ <listitem>
+ <para>frequencies where the filter specifications are given</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>wa,wt</term>
+ <listitem>
+ <para>weighting functions for the amplitude and the group delay</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>lambda</term>
+ <listitem>
+ <para>
+ weighting (with <literal>1-lambda</literal>) of the costs (<literal>'a'</literal> and <literal>'gd'</literal> for getting the global cost.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ad, td</term>
+ <listitem>
+ <para>desired amplitude and group delay</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cost, grad</term>
+ <listitem>
+ <para>criterium and gradient values</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ optimization of IIR filters for the Lp criterium for the
+ amplitude and/or the group delay. (Rabiner &amp; Gold pp270-273).
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/kalm.xml b/modules/signal_processing/help/en_US/filters/kalm.xml
new file mode 100755
index 000000000..b94e10904
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/kalm.xml
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="kalm">
+ <refnamediv>
+ <refname>kalm</refname>
+ <refpurpose>Kalman update</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[x1,p1,x,p]=kalm(y,x0,p0,f,g,h,q,r)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>f,g,h</term>
+ <listitem>
+ <para>current system matrices</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>q, r</term>
+ <listitem>
+ <para>covariance matrices of dynamics and observation noise</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x0,p0</term>
+ <listitem>
+ <para>state estimate and error variance at t=0 based on data up to t=-1</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>current observation Output</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x1,p1</term>
+ <listitem>
+ <para>updated estimate and error covariance at t=1 based on data up to t=0</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x,p</term>
+ <listitem>
+ <para>updated estimate and error covariance at t=0 based on data up to t=0</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ This function gives the Kalman update and error covariance. To do this, we have to enter <varname>f</varname>,
+ <varname>g</varname>, <varname>h</varname> which are based on the state space model:
+ </para>
+ <para>
+ <literal>
+ x(k+1)=<varname>f</varname>*x(k)+<varname>g</varname>*u(k)+v(k)
+ </literal>
+ </para>
+ <para>
+ <literal>
+ y(k)=<varname>h</varname>*x(k)+w(k)
+ </literal>
+ </para>
+ <para>
+ with <literal>v(k)</literal> (resp. <literal>w(k)</literal>) is the process noise (resp. the observation noise)
+ supposed to be drawn from a zero mean Gaussian white noise with the covariance <varname>q</varname> (resp. <varname>r</varname>).
+ </para>
+ <para>
+ Precisely, Kalman filter is a recursive estimator which gives the estimate of the current state and the error covariance.
+ Its advantage is the fact that it only needs the estimated state from the previous step and the current measurement.
+ </para>
+ <para>
+ Algorithm:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Innovation (output error):
+ <literal>
+ E=<varname>y</varname>-<varname>h</varname>*<varname>x0</varname>
+ </literal>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Output Error covariance:
+ <literal>
+ S=<varname>h</varname>*<varname>p0</varname>*<varname>h</varname>'+<varname>r</varname>
+ </literal>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Kalman gain:
+ <literal>
+ K=<varname>p0</varname>*<varname>h</varname>'*S^-1
+ </literal>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Correction of state estimation:
+ <literal>
+ <varname>x</varname>=<varname>x0</varname>+K*E
+ </literal>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Correction of estimation of error covariance:
+ <literal>
+ <varname>p</varname>=<varname>p0</varname>-K*<varname>h</varname>*<varname>p0</varname>
+ </literal>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ State prediction:
+ <literal>
+ <varname>x1</varname>=<varname>f</varname>*<varname>x</varname>
+ </literal>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Error covariance prediction:
+ <literal>
+ <varname>p1</varname>=<varname>f</varname>*<varname>p</varname>*<varname>f</varname>'+<varname>g</varname>*<varname>q</varname>*<varname>g</varname>'
+ </literal>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </refsection>
+ <refsection>
+ <title>Example: Extraction of a sinusoid from noise with Kalman filter</title>
+ <programlisting role="Example"><![CDATA[
+// Construction of the sinusoid
+w=%pi/4; // angular frequency
+T=0.1; // period
+t=0:T:500;
+signal=cos(w*t);
+// Sinusoid with noise
+v=rand(t,"normal");
+y=signal+v;
+// Plot the sinusoid with noise
+subplot(2,1,1);
+plot(t,y);
+xtitle("sinusoid with noise","t");
+// System
+n=2; // system order
+f=[cos(w*T) -sin(w*T); sin(w*T) cos(w*T)];
+g=0;
+h=[1 0];
+p0=[1000 0; 0 0];
+R=1;
+Q=0;
+x0=zeros(n,1);
+// Initialize for loop
+x1=x0;
+p1=p0;
+// Kalman filter
+for i=1:length(t)-1
+ [x1(:,i+1),p1,x,p]=kalm(y(i),x1(:,i),p1,f,g,h,Q,R);
+end
+// Plot the results (in red) to compare with the sinusoid (in green)
+subplot(2,1,2);
+plot(t,signal,"color","green");
+plot(t,x1(1,:),"color","red");
+xtitle("Comparison between sinusoid (green) and extraction with Kalman filter (red)","t");
+]]>
+ </programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="srkf">srkf</link>
+ </member>
+ <member>
+ <link linkend="sskf">sskf</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/lev.xml b/modules/signal_processing/help/en_US/filters/lev.xml
new file mode 100755
index 000000000..5777f2817
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/lev.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="lev">
+ <refnamediv>
+ <refname>lev</refname>
+ <refpurpose>Yule-Walker equations (Levinson's algorithm) </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[ar, sigma2, rc]=lev(r)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>r</term>
+ <listitem>
+ <para>correlation coefficients</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ar</term>
+ <listitem>
+ <para>auto-Regressive model parameters</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sigma2</term>
+ <listitem>
+ <para>scale constant</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>rc</term>
+ <listitem>
+ <para>reflection coefficients</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ This function resolves the Yule-Walker equations using Levinson's algorithm. Generally, it is used to estimate the coefficients of an autoregressive process.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Example</title>
+ <programlisting role="Example"><![CDATA[
+b=1; //numerator
+a=[1 -0.7 0.8]; //denominator
+x=[1 zeros(1,99)]; //input=impulse
+data=filter(b,a,x); //real data
+a2=lev(data); //modelized data
+a2=a2/a2(1); //normalization
+m_data=filter(1,a2,x);
+// Compare real data and modelized data
+plot(data,"color","blue","lineStyle","none","marker","d");
+plot(m_data,"color","red","lineStyle","none","marker","d");
+]]>
+ </programlisting>
+ <scilab:image>
+ b=1;
+ a=[1 -0.7 0.8];
+ x=[1 zeros(1,99)];
+ data=filter(b,a,x);
+ a2=lev(data);
+ a2=a2/a2(1);
+ m_data=filter(1,a2,x);
+ plot(data,"color","blue","lineStyle","none","marker","d");
+ plot(m_data,"color","red","lineStyle","none","marker","d");
+ </scilab:image>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/levin.xml b/modules/signal_processing/help/en_US/filters/levin.xml
new file mode 100755
index 000000000..426a62e8e
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/levin.xml
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="levin" xml:lang="en">
+ <refnamediv>
+ <refname>levin</refname>
+ <refpurpose>Toeplitz system solver by Levinson algorithm
+ (multidimensional)
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[la,sig]=levin(n,cov)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>A scalar with integer value: the maximum order of the
+ filter
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cov</term>
+ <listitem>
+ <para>
+ A <literal>(nlag*d) x d</literal> matrix. It contains the
+ <literal>Rk</literal> (<literal>d x d</literal> matrices for a
+ <literal>d</literal>-dimensional process) stored in the following
+ way :
+ </para>
+ <para>
+ <latex>
+ \begin{eqnarray}
+ \begin{pmatrix}
+ R_0\\R_1\\R_2\\ \vdots \\R_{nlags}
+ \end{pmatrix}
+ \end{eqnarray}
+ </latex>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>la</term>
+ <listitem>
+ <para>A list, the successively calculated Levinson polynomials
+ (degree 1 to <literal>n</literal>), with coefficients
+ <literal>Ak</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sig</term>
+ <listitem>
+ <para>A list, the successive mean-square errors.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>function which solves recursively on n the following Toeplitz system
+ (normal equations)
+ </para>
+ <para>
+ <latex>
+ \begin{eqnarray}
+ \begin{pmatrix}
+ I&amp;-A_1&amp;\cdots&amp;-A_n
+ \end{pmatrix}
+ \ast
+ \begin{pmatrix}
+ R_1&amp;R_2&amp;\cdots&amp;R_n \\
+ R_0&amp;R_1&amp;\cdots&amp;R_{n-1} \\
+ R_{-1}&amp;R_0&amp;\cdots&amp;R_{n-2} \\
+ \vdots&amp;\vdots&amp;\cdots&amp;\vdots \\
+ R_{2-n}&amp;R_{3-n}&amp;\cdots&amp;R_1 \\
+ R_{1-n}&amp;R_{2-n}&amp;\cdots&amp;R_0
+ \end{pmatrix}
+ = 0
+ \end{eqnarray}
+ </latex>
+ </para>
+ <para>
+ where {<literal>Rk;k=1:nlag</literal>} is the sequence of
+ <literal>nlag</literal> empirical covariances
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+//We use the 'levin' macro for solving the normal equations
+//on two examples: a one-dimensional and a two-dimensional process.
+//We need the covariance sequence of the stochastic process.
+//This example may usefully be compared with the results from
+//the 'phc' macro (see the corresponding help and example in it)
+//
+//
+//1) A one-dimensional process
+// -------------------------
+//
+//We generate the process defined by two sinusoids (1Hz and 2 Hz)
+//in additive Gaussian noise (this is the observed process);
+//the simulated process is sampled at 10 Hz (step 0.1 in t, underafter).
+
+t1=0:.1:100;rand('normal');
+y1=sin(2*%pi*t1)+sin(2*%pi*2*t1);y1=y1+rand(y1);plot(t1,y1);
+
+//covariance of y1
+
+nlag=128;
+c1=corr(y1,nlag);
+c1=c1';//c1 needs to be given columnwise (see the section PARAMETERS of this help)
+
+//compute the filter for a maximum order of n=10
+//la is a list-type variable each element of which
+//containing the filters of order ranging from 1 to n; (try varying n)
+//in the d-dimensional case this is a matrix polynomial (square, d X d)
+//sig gives, the same way, the mean-square error
+
+n=15;
+[la1,sig1]=levin(n,c1);
+
+//verify that the roots of 'la' contain the
+//frequency spectrum of the observed process y
+//(remember that y is sampled -in our example
+//at 10Hz (T=0.1s) so that we need to retrieve
+//the original frequencies (1Hz and 2 Hz) through
+//the log and correct scaling by the frequency sampling)
+//we verify this for each filter order
+
+for i=1:n, s1=roots(la1(i));s1=log(s1)/2/%pi/.1;
+
+//now we get the estimated poles (sorted, positive ones only !)
+
+s1=gsort(imag(s1));s1=s1(1:i/2);end;
+
+//the last two frequencies are the ones really present in the observed
+//process ---> the others are "artifacts" coming from the used model size.
+//This is related to the rather difficult problem of order estimation.
+//
+//2) A 2-dimensional process
+// -----------------------
+//(4 frequencies 1, 2, 3, and 4 Hz, sampled at 0.1 Hz :
+// |y_1| y_1=sin(2*Pi*t)+sin(2*Pi*2*t)+Gaussian noise
+// y=| | with :
+// |y_2| y_2=sin(2*Pi*3*t)+sin(2*Pi*4*t)+Gaussian noise
+
+d=2;dt=0.1;
+nlag=64;
+t2=0:2*%pi*dt:100;
+y2=[sin(t2)+sin(2*t2)+rand(t2);sin(3*t2)+sin(4*t2)+rand(t2)];
+c2=[];
+for j=1:2, for k=1:2, c2=[c2;corr(y2(k,:),y2(j,:),nlag)];end;end;
+c2=matrix(c2,2,128);cov=[];
+for j=1:64,cov=[cov;c2(:,(j-1)*d+1:j*d)];end;//covar. columnwise
+c2=cov;
+
+//in the multidimensional case, we have to compute the
+//roots of the determinant of the matrix polynomial
+//(easy in the 2-dimensional case but tricky if d>=3 !).
+//We just do that here for the maximum desired
+//filter order (n); mp is the matrix polynomial of degree n
+
+[la2,sig2]=levin(n,c2);
+mp=la2(n);determinant=mp(1,1)*mp(2,2)-mp(1,2)*mp(2,1);
+s2=roots(determinant);s2=log(s2)/2/%pi/0.1;//same trick as above for 1D process
+s2=gsort(imag(s2));s2=s2(1:d*n/2);//just the positive ones !
+
+//There the order estimation problem is seen to be much more difficult !
+//many artifacts ! The 4 frequencies are in the estimated spectrum
+//but beneath many non relevant others.
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="phc">phc</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/lindquist.xml b/modules/signal_processing/help/en_US/filters/lindquist.xml
new file mode 100755
index 000000000..980a3ae25
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/lindquist.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="lindquist">
+ <refnamediv>
+ <refname>lindquist</refname>
+ <refpurpose>Lindquist's algorithm</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[P,R,T]=lindquist(n,H,F,G,R0)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>number of iterations.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>H, F, G</term>
+ <listitem>
+ <para>
+ estimated triple from the covariance sequence of <literal>y</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>R0</term>
+ <listitem>
+ <para>E(yk*yk')</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>P</term>
+ <listitem>
+ <para>solution of the Riccati equation after n iterations.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>R, T</term>
+ <listitem>
+ <para>gain matrices of the filter.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ computes iteratively the minimal solution of the algebraic
+ Riccati equation and gives the matrices <literal>R</literal> and <literal>T</literal> of the
+ filter model, by the Lindquist's algorithm.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Example</title>
+ <programlisting role="example"><![CDATA[
+//Generate signal
+x=%pi/10:%pi/10:102.4*%pi;
+y=[1; 1] * sin(x) + [sin(2*x); sin(1.9*x)] + rand(2,1024,"normal");
+
+//Compute correlations
+c=[];
+for j=1:2
+ for k=1:2
+ c=[c;corr(y(k,:),y(j,:),64)];
+ end
+end
+c=matrix(c,2,128);
+
+//Find H,F,G with 6 states
+hk=hank(20,20,c);
+[H,F,G]=phc(hk,2,6);
+
+//Solve Riccati equation
+R0=c(1:2,1:2);
+[P,R,T]=lindquist(100,H,F,G,R0);
+]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="srfaur">srfaur</link>
+ </member>
+ <member>
+ <link linkend="faurre">faurre</link>
+ </member>
+ <member>
+ <link linkend="phc">phc</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/remez.xml b/modules/signal_processing/help/en_US/filters/remez.xml
new file mode 100755
index 000000000..894e4320a
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/remez.xml
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="remez" xml:lang="en">
+ <refnamediv>
+ <refname>remez</refname>
+ <refpurpose>Remez exchange algorithm for the weighted chebyshev
+ approximation of a continuous function with a sum of cosines.
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>an=remez(guess,mag,fgrid,weight)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>guess</term>
+ <listitem>
+ <para>
+ real array of size <literal>n+2 the </literal>initial
+ guess
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fgrid</term>
+ <listitem>
+ <para>
+ real array of size <literal>ng</literal>: the grid of
+ normalized frequency points in [0,.5[
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>mag</term>
+ <listitem>
+ <para>
+ real array of size <literal>ng</literal>: the desired
+ magnitude on grid <literal>fg</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>weight</term>
+ <listitem>
+ <para>
+ real array of size <literal>ng</literal>: weighting function
+ on error on grid <literal>fg</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>an</term>
+ <listitem>
+ <para>
+ real array of size <literal>n</literal>: cosine
+ coefficients
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>Minimax approximation of a frequency domain magnitude response. The
+ approximation takes the form
+ </para>
+ <programlisting role=""><![CDATA[
+h = sum[a(i)*cos(weight)], i=1:n
+ ]]></programlisting>
+ <para>An FIR, linear-phase filter can be obtained from the output of
+ <literal>remez</literal> by using the following commands:
+ </para>
+ <programlisting role=""><![CDATA[
+hn(1:nc-1)=an(nc:-1:2)/2;
+hn(nc)=an(1);
+hn(nc+1:2*nc-1)=an(2:nc)/2;
+ ]]></programlisting>
+ <para>
+ This function is mainly intended to be called by the <link linkend="remezb">remezb function</link>.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Bibliography</title>
+ <para>E.W. Cheney, Introduction to Approximation Theory, McGraw-Hill,
+ 1966
+ </para>
+ <para>
+ <ulink url="http://en.wikipedia.org/wiki/Remez_algorithm">http://en.wikipedia.org/wiki/Remez_algorithm</ulink>
+ </para>
+ </refsection>
+ <refsection>
+ <title>References</title>
+ <para>
+ This function is based on the fortran code <literal>remez.f
+ </literal>
+ written by:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>James H. Mcclellan, department of electrical engineering and
+ computer science, Massachusetts Institute of Technology, Cambridge,
+ Massachussets. 02139
+ </para>
+ </listitem>
+ <listitem>
+ <para>Thomas W. Parks, department of electrical engineering, Rice
+ university, Houston, Texas 77001
+ </para>
+ </listitem>
+ <listitem>
+ <para>Thomas W. Parks, department of electrical engineering, Rice
+ university, Houston, Texas 77001
+ </para>
+ </listitem>
+ </itemizedlist>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+nc=21;
+ngrid=nc*250;
+fgrid=.5*(0:(ngrid-1))/(ngrid-1);
+mag(1:ngrid/2)=ones(1:ngrid/2);
+mag(ngrid/2+1:ngrid)=0*ones(1:ngrid/2);
+weight=ones(fgrid);
+guess=round(1:ngrid/nc:ngrid);
+guess(nc+1)=ngrid;
+guess(nc+2)=ngrid;
+an=remez(guess,mag,fgrid,weight);
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="remezb">remezb</link>
+ </member>
+ <member>
+ <link linkend="eqfir">eqfir</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/remezb.xml b/modules/signal_processing/help/en_US/filters/remezb.xml
new file mode 100755
index 000000000..0c3226f5d
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/remezb.xml
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="remezb">
+ <refnamediv>
+ <refname>remezb</refname>
+ <refpurpose>Minimax approximation of magnitude response</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[an]=remezb(nc,fg,ds,wt)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>nc</term>
+ <listitem>
+ <para>Number of cosine functions</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fg</term>
+ <listitem>
+ <para>Grid of frequency points in [0,.5)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ds</term>
+ <listitem>
+ <para>
+ Desired magnitude on grid <literal>fg</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>wt</term>
+ <listitem>
+ <para>
+ Weighting function on error on grid <literal>fg</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>an</term>
+ <listitem>
+ <para>Cosine filter coefficients</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Minimax approximation of a frequency domain
+ magnitude response. The approximation takes
+ the form <literal>h = sum[a(n)*cos(wn)]</literal>
+ for n=0,1,...,nc. An FIR, linear-phase filter
+ can be obtained from the output of the function
+ by using the following commands
+ </para>
+ <programlisting role="no-scilab-exec"><![CDATA[
+hn(1:nc-1)=an(nc:-1:2)/2;
+hn(nc)=an(1);
+hn(nc+1:2*nc-1)=an(2:nc)/2;
+ ]]></programlisting>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+// Choose the number of cosine functions and create a dense grid
+// in [0,.24) and [.26,.5)
+nc=21;ngrid=nc*16;
+fg=.24*(0:ngrid/2-1)/(ngrid/2-1);
+fg(ngrid/2+1:ngrid)=fg(1:ngrid/2)+.26*ones(1:ngrid/2);
+
+// Specify a low pass filter magnitude for the desired response
+ds(1:ngrid/2)=ones(1:ngrid/2);
+ds(ngrid/2+1:ngrid)=zeros(1:ngrid/2);
+
+// Specify a uniform weighting function
+wt=ones(fg);
+
+// Run remezb
+an=remezb(nc,fg,ds,wt)
+
+// Make a linear phase FIR filter
+hn(1:nc-1)=an(nc:-1:2)/2;
+hn(nc)=an(1);
+hn(nc+1:2*nc-1)=an(2:nc)/2;
+
+// Plot the filter's magnitude response
+plot(.5*(0:255)/256,frmag(hn,256));
+
+// Choose the number of cosine functions and create a dense grid in [0,.5)
+nc=21; ngrid=nc*16;
+fg=.5*(0:(ngrid-1))/ngrid;
+
+// Specify a triangular shaped magnitude for the desired response
+ds(1:ngrid/2)=(0:ngrid/2-1)/(ngrid/2-1);
+ds(ngrid/2+1:ngrid)=ds(ngrid/2:-1:1);
+
+// Specify a uniform weighting function
+wt=ones(fg);
+
+// Run remezb
+an=remezb(nc,fg,ds,wt)
+
+// Make a linear phase FIR filter
+hn(1:nc-1)=an(nc:-1:2)/2;
+hn(nc)=an(1);
+hn(nc+1:2*nc-1)=an(2:nc)/2;
+
+// Plot the filter's magnitude response
+plot(.5*(0:255)/256,frmag(hn,256));
+ ]]></programlisting>
+
+ <scilab:image>
+ nc=21;ngrid=nc*16;
+ fg=.24*(0:ngrid/2-1)/(ngrid/2-1);
+ fg(ngrid/2+1:ngrid)=fg(1:ngrid/2)+.26*ones(1:ngrid/2);
+
+ ds(1:ngrid/2)=ones(1:ngrid/2);
+ ds(ngrid/2+1:ngrid)=zeros(1:ngrid/2);
+
+ wt=ones(fg);
+
+ an=remezb(nc,fg,ds,wt)
+
+ hn(1:nc-1)=an(nc:-1:2)/2;
+ hn(nc)=an(1);
+ hn(nc+1:2*nc-1)=an(2:nc)/2;
+
+ plot(.5*(0:255)/256,frmag(hn,256));
+
+ nc=21; ngrid=nc*16;
+ fg=.5*(0:(ngrid-1))/ngrid;
+
+ ds(1:ngrid/2)=(0:ngrid/2-1)/(ngrid/2-1);
+ ds(ngrid/2+1:ngrid)=ds(ngrid/2:-1:1);
+
+ wt=ones(fg);
+
+ an=remezb(nc,fg,ds,wt)
+
+ hn(1:nc-1)=an(nc:-1:2)/2;
+ hn(nc)=an(1);
+ hn(nc+1:2*nc-1)=an(2:nc)/2;
+
+ plot(.5*(0:255)/256,frmag(hn,256));
+ </scilab:image>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="eqfir">eqfir</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/srfaur.xml b/modules/signal_processing/help/en_US/filters/srfaur.xml
new file mode 100755
index 000000000..3f8c5fa98
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/srfaur.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="srfaur">
+ <refnamediv>
+ <refname>srfaur</refname>
+ <refpurpose>square-root algorithm</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[p,s,t,l,rt,tt]=srfaur(h,f,g,r0,n,p,s,t,l)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>h, f, g</term>
+ <listitem>
+ <para>convenient matrices of the state-space model.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>r0</term>
+ <listitem>
+ <para>E(yk*yk').</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>number of iterations.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>p</term>
+ <listitem>
+ <para>estimate of the solution after n iterations.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>s, t, l</term>
+ <listitem>
+ <para>intermediate matrices for successive iterations;</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>rt, tt</term>
+ <listitem>
+ <para>
+ gain matrices of the filter model after <literal>n</literal> iterations.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>p, s, t, l</term>
+ <listitem>
+ <para>
+ may be given as input if more than one recursion is desired (evaluation of intermediate values of <literal>p</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ square-root algorithm for the algebraic Riccati equation.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+//GENERATE SIGNAL
+x=%pi/10:%pi/10:102.4*%pi;
+rand('seed',0);rand('normal');
+y=[1;1]*sin(x)+[sin(2*x);sin(1.9*x)]+rand(2,1024);
+
+//COMPUTE CORRELATIONS
+c=[];for j=1:2,for k=1:2,c=[c;corr(y(k,:),y(j,:),64)];end;end
+c=matrix(c,2,128);
+
+//FINDING H,F,G with 6 states
+hk=hank(20,20,c);
+[H,F,G]=phc(hk,2,6);
+
+//SOLVING RICCATI EQN
+r0=c(1:2,1:2);
+[P,s,t,l,Rt,Tt]=srfaur(H,F,G,r0,200);
+
+//Make covariance matrix exactly symmetric
+Rt=(Rt+Rt')/2
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="phc">phc</link>
+ </member>
+ <member>
+ <link linkend="faurre">faurre</link>
+ </member>
+ <member>
+ <link linkend="lindquist">lindquist</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/srkf.xml b/modules/signal_processing/help/en_US/filters/srkf.xml
new file mode 100755
index 000000000..5bcefd31e
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/srkf.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="srkf">
+ <refnamediv>
+ <refname>srkf</refname>
+ <refpurpose>square root Kalman filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[x1,p1]=srkf(y,x0,p0,f,h,q,r)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>f, h</term>
+ <listitem>
+ <para>current system matrices</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>q, r</term>
+ <listitem>
+ <para>covariance matrices of dynamics and observation noise</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x0, p0</term>
+ <listitem>
+ <para>state estimate and error variance at t=0 based on data up to t=-1</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>current observation Output</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x1, p1</term>
+ <listitem>
+ <para>updated estimate and error covariance at t=1 based on data up to t=0</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ This function is the square root form of Kalman filter. It is more efficient than the simple Kalman filter in term of numerical stability,
+ especially if dynamic noise covariance <varname>q</varname> is small. In effect, that can provock an indefinite numerical representation
+ of the state covariance matrix <literal>p</literal>, whereas <literal>p</literal> is positive definite. So, the goal of <function>srkf</function>
+ is to propagate <literal>p</literal> using a Cholesky factorization algorithm. These factors can be updated at each step of the algorithm, which
+ allows to keep <literal>p</literal> in its basic form.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Example</title>
+ <programlisting role="example"><![CDATA[
+f=[0 0 1; 0 1 0; 2 3 4]; //State matrix
+g=[1;-1;1]; //Input matrix
+h=[1 1 0; 0 1 0; 0 0 0]; //Output matrix
+Q=[3 2 1; 2 2 1; 1 1 1]; //Covariance matrix of dynamic noise
+R=[2 1 1; 1 1 1; 1 1 2]; //Covariance matrix of observation noise
+// Initialisation
+p0=[6 3 2; 3 5 2; 2 2 4];
+x0=[1;1;1];
+y=[2 8 7]'; // Current observation output matrix
+[x1,p1]=srkf(y,x0,p0,f,h,Q,R)
+]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="kalm">kalm</link>
+ </member>
+ <member>
+ <link linkend="sskf">sskf</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/sskf.xml b/modules/signal_processing/help/en_US/filters/sskf.xml
new file mode 100755
index 000000000..892766055
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/sskf.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="sskf">
+ <refnamediv>
+ <refname>sskf</refname>
+ <refpurpose>steady-state Kalman filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ xe = sskf(y,f,h,q,r,x0)
+ [xe, pe]=sskf(y,f,h,q,r,x0)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>
+ data in form <literal>[y0,y1,...,yn]</literal>, <literal>yk</literal> a column vector
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>f</term>
+ <listitem>
+ <para>system matrix dim(NxN)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>h</term>
+ <listitem>
+ <para>observations matrix dim(MxN)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>q</term>
+ <listitem>
+ <para>dynamics noise matrix dim(NxN)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>r</term>
+ <listitem>
+ <para>observations noise matrix dim(MxM)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x0</term>
+ <listitem>
+ <para>initial state estimate</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>xe</term>
+ <listitem>
+ <para>estimated state</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pe</term>
+ <listitem>
+ <para>steady-state error covariance</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ steady-state Kalman filter
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+rand("seed",5);
+rand("normal");
+q=[.03 0.01;.01 0.03];
+u=rand(2,11);
+f=[1.1 0.1;0 0.8];
+g=(chol(q))';
+m0=[10 10]';
+p0=[2 0;0 2];
+x0=m0+(chol(p0))'*rand(2,1);
+x=ltitr(f,g,u,x0);
+r=[2 0;0 2];
+v=(chol(r))'*rand(2,11);
+y=x+v;
+h=eye(2,2);
+[xe pe]=sskf(y,f,h,q,r,m0)
+ ]]></programlisting>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/syredi.xml b/modules/signal_processing/help/en_US/filters/syredi.xml
new file mode 100755
index 000000000..094a24030
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/syredi.xml
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="syredi" xml:lang="en">
+ <refnamediv>
+ <refname>syredi</refname>
+ <refpurpose>Design of iir filters, syredi code interface</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[fact,b2,b1,b0,c1,c0,zzeros,zpoles]=syredi(ityp,iapro,om,deltap,deltas)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>itype</term>
+ <listitem>
+ <para>integer, the filter type: 1 stands for low-pass, 2 for
+ high-pass, 3 for band-pass, 4 for stop-band.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>iappro</term>
+ <listitem>
+ <para>integer, the design approximation type: 1 stands for
+ butterworth, 2 for elliptic, 3 for Chebytchev1, 4 for
+ Chebytchev2.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>om</term>
+ <listitem>
+ <para>4-vector of cutoff frequencies (in radians)
+ <literal>om=[om1,om2,om3,om4]</literal>, <literal/>
+ </para>
+ <para>
+ <literal>0&lt;= om1 &lt;= om2 &lt;= om3 &lt;= om4 &lt;=
+ pi
+ </literal>
+ .
+ </para>
+ <para>
+ When <literal>ftype</literal>='lp' or <literal>'hp'</literal>,
+ <literal>om3</literal> and <literal>om4</literal> are not used and
+ may be set to 0.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>deltap</term>
+ <listitem>
+ <para>
+ a real scalar, the ripple in the passband. <literal>0&lt;
+ deltap &lt;1
+ </literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>deltas</term>
+ <listitem>
+ <para>
+ a real scalar, the ripple in the stopband. <literal>0&lt;
+ deltas &lt;1
+ </literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>gain</term>
+ <listitem>
+ <para>scalar, the filter gain</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>b2</term>
+ <listitem>
+ <para>real row vector, degree 2 coefficients of numerators.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>b1</term>
+ <listitem>
+ <para>real row vector, degree 1 coefficients of numerators.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>b0</term>
+ <listitem>
+ <para>real row vector, degree 0 coefficients of numerators.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>c1</term>
+ <listitem>
+ <para>real row vector, degree 1 coefficients of denominators.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>c0</term>
+ <listitem>
+ <para>real row vector, degree 0 coefficients of denominators.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>zzeros</term>
+ <listitem>
+ <para>complex row vector, filter zeros in the z-domain</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>zpoles</term>
+ <listitem>
+ <para>complex row vector, filter poles in the z-domain</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>Computes iir filter approximation. The result is given as a set of
+ second order transfer functions
+ <literal>Hi=(b0(i)+b1(i)*z+b2(i)*z^2)/(c0(i)+c1(i)*z+z^2)</literal> and
+ also as a poles, zeros, gain representation.
+ </para>
+ <para>
+ The filter obtained is <literal>h=fact*H1*...*Hn</literal>.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Remark</title>
+ <para>
+ This built-in function is mainly intended to be used by the <link linkend="eqiir">eqiir</link> function.
+ </para>
+ </refsection>
+ <refsection>
+ <title>References</title>
+ <para>The syredi code is derived from doredi package written by Guenter F.
+ Dehner, Institut fuer Nachrichtentechnik Universitaet Erlangen-Nuernberg,
+ Germany.
+ </para>
+ <para>Dehner,G.F. 1979, DOREDI: Program for Design and Optimization of
+ REcursive DIgital filters-Programs for Digital Signal Processing,
+ ed:Digital Signal Processing committee of IEEE Acoustics, Speech and
+ Signal Processing Society.
+ </para>
+ <para>For DOREDI.f source code see
+ http://michaelgellis.tripod.com/dsp/pgm25.html
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+[fact,b2,b1,b0,c1,c0,zzeros,zpoles]=syredi(1,4,[2*%pi/10,4*%pi/10,0,0],0.02,0.001);
+h=fact*(b0+b1*%z+b2*%z^2)./(c0+c1*%z+%z^2)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="eqiir">eqiir</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/system.xml b/modules/signal_processing/help/en_US/filters/system.xml
new file mode 100755
index 000000000..4453b8085
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/system.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="system">
+ <refnamediv>
+ <refname>system</refname>
+ <refpurpose>observation update</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[x1,y]=system(x0,f,g,h,q,r)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>x0</term>
+ <listitem>
+ <para>input state vector</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>f</term>
+ <listitem>
+ <para>system matrix</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>g</term>
+ <listitem>
+ <para>input matrix</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>h</term>
+ <listitem>
+ <para>Output matrix</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>q</term>
+ <listitem>
+ <para>input noise covariance matrix</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>r</term>
+ <listitem>
+ <para>output noise covariance matrix</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x1</term>
+ <listitem>
+ <para>output state vector</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>output observation</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ define system function which generates the next
+ observation given the old state.
+ System recursively calculated
+ </para>
+ <programlisting role=""><![CDATA[
+x1=f*x0+g*u
+y=h*x0+v
+ ]]></programlisting>
+ <para>
+ where <literal>u</literal> is distributed <literal>N(0,q)</literal>
+ and <literal>v</literal> is distribute <literal>N(0,r)</literal>.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+// initialize state statistics
+// (mean and err. variance)
+m0=[10 10]';
+p0=[2 0;0 2];
+// create system
+f=[1.1 0.1;0 0.8];
+g=[1 0;0 1];
+h=[1 0;0 1];
+// noise statistics
+q=[.03 0.01;.01 0.03];
+r=2*eye(2);
+// initialize system process
+rand("seed",2);
+rand("normal");
+p0c=chol(p0);
+x0=m0+p0c'*rand(ones(m0));
+yt=[];
+//initialize kalman filter
+xke0=m0;pk0=p0;
+// initialize err. variance
+ecv=[pk0(1,1) pk0(2,2)]';
+[x1,y]=system(x0,f,g,h,q,r)
+ ]]></programlisting>
+ </refsection>
+
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/trans.xml b/modules/signal_processing/help/en_US/filters/trans.xml
new file mode 100755
index 000000000..6b92bc716
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/trans.xml
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="trans">
+ <refnamediv>
+ <refname>trans</refname>
+ <refpurpose>low-pass to other filter transform</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ hzt=trans(hz,tr_type,frq)
+ hzt=trans(pd,zd,gd,tr_type,frq)
+ [pt,zt,gt]=trans(hz,tr_type,frq)
+ [pt,zt,gt]=trans(pd,zd,gd,tr_type,frq)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>hz</term>
+ <listitem>
+ <para>a single input single output discrete transfer function, the low pass filter</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pd</term>
+ <listitem>
+ <para>Vector of given filter poles</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>zd</term>
+ <listitem>
+ <para>Vector of given filter zeros</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>gd</term>
+ <listitem>
+ <para>scalar: the given filter gain</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>tr_type</term>
+ <listitem>
+ <para>string, the type of transformation, see description for possible values </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>frq</term>
+ <listitem>
+ <para>2-vector of discrete cut-off frequencies
+ (i.e.,<literal>0&lt;frq&lt;.5</literal>). see description
+ for details.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>hzt</term>
+ <listitem>
+ <para>transformed filter transfert function.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pt</term>
+ <listitem>
+ <para>vector of transformed filter zeros.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>zt</term>
+ <listitem>
+ <para>vector of transformed filter poles.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>gt</term>
+ <listitem>
+ <para>a scalar: transformed filter gain.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>function for transforming standardized low-pass filter given its
+ poles-zeros_gain representation into
+ one of the following filters:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>tr_type='lp'</term>
+ <listitem>
+ <para>low pass filter, the cutoff frequency is given by the
+ first entry of <literal>frq</literal>, the second one is ignored.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>tr_type='hp'</term>
+ <listitem>
+ <para>high pass filter, the cutoff frequency is given by the
+ first entry of <literal>frq</literal>, the second one is ignored.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>tr_type='bp'</term>
+ <listitem>
+ <para>
+ band pass filter, the frequency range is given by <literal>frq(1)</literal> and <literal>frq(2)</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>tr_type='sb'</term>
+ <listitem>
+ <para>
+ stop band filter, the frequency range is given by <literal>frq(1)</literal> and <literal>frq(2)</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Used functions</title>
+ <para>
+ <link linkend="bilt">bilt</link>
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+Hlp=iir(3,'lp','ellip',[0.1 0],[.08 .03]);
+Hbp=trans(Hlp,'bp',[0.01 0.1]);
+Hsb=trans(Hlp,'sb',[0.01 0.1])
+
+clf();gainplot([Hlp;Hbp;Hsb],1d-3,0.48);
+l=legend(['original low pass';'band pass';'stop band']);
+l.legend_location="in_lower_left";
+ ]]></programlisting>
+ <scilab:image><![CDATA[
+Hlp=iir(3,'lp','ellip',[0.1 0],[.08 .03]);
+Hbp=trans(Hlp,'bp',[0.01 0.1]);
+Hsb=trans(Hlp,'sb',[0.01 0.1])
+
+clf();gainplot([Hlp;Hbp;Hsb],1d-3,0.48);
+l=legend(['original low pass';'band pass';'stop band']);
+l.legend_location="in_lower_left";
+]]> </scilab:image>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="iir">iir</link>
+ </member>
+ <member>
+ <link linkend="bilt">bilt</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/wfir.xml b/modules/signal_processing/help/en_US/filters/wfir.xml
new file mode 100755
index 000000000..6424c22de
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/wfir.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xml:lang="en" xmlns:scilab="http://www.scilab.org" xml:id="wfir">
+ <refnamediv>
+ <refname>wfir</refname>
+ <refpurpose>linear-phase FIR filters</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[wft,wfm,fr]=wfir(ftype,forder,cfreq,wtype,fpar)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>ftype</term>
+ <listitem>
+ <para>
+ string : <literal>'lp','hp','bp','sb'</literal> (filter type)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>forder</term>
+ <listitem>
+ <para>
+ Filter order (pos integer)(odd for <literal>ftype='hp'</literal> or <literal>'sb'</literal>)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cfreq</term>
+ <listitem>
+ <para>
+ 2-vector of cutoff frequencies (<literal>0&lt;cfreq(1),cfreq(2)&lt;.5</literal>) only <literal>cfreq(1)</literal> is used when <literal>ftype='lp'</literal> or <literal>'hp'</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>wtype</term>
+ <listitem>
+ <para>
+ Window type (<literal>'re','tr','hm','hn','kr','ch'</literal>)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fpar</term>
+ <listitem>
+ <para>
+ 2-vector of window parameters. Kaiser window <literal>fpar(1)&gt;0 fpar(2)=0</literal>. Chebyshev window <literal>fpar(1)&gt;0, fpar(2)&lt;0</literal> or <literal>fpar(1)&lt;0, 0&lt;fpar(2)&lt;.5</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>wft</term>
+ <listitem>
+ <para>time domain filter coefficients</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>wfm</term>
+ <listitem>
+ <para>frequency domain filter response on the grid fr</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fr</term>
+ <listitem>
+ <para>Frequency grid</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Function which makes linear-phase, FIR low-pass, band-pass,
+ high-pass, and stop-band filters
+ using the windowing technique.
+ Works interactively if called with no arguments.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+[h,hm,fr]=wfir("lp",33,[.2 0],"hm",[0 0])
+ ]]></programlisting>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/wiener.xml b/modules/signal_processing/help/en_US/filters/wiener.xml
new file mode 100755
index 000000000..cc959779a
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/wiener.xml
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="wiener">
+ <refnamediv>
+ <refname>wiener</refname>
+ <refpurpose>Wiener estimate</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[xs,ps,xf,pf]=wiener(y,x0,p0,f,g,h,q,r)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>f, g, h</term>
+ <listitem>
+ <para>
+ system matrices in the interval <literal>[t0,tf]</literal>
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>f</term>
+ <listitem>
+ <para>
+ =<literal>[f0,f1,...,ff]</literal>, and <literal>fk</literal> is a nxn matrix
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>g</term>
+ <listitem>
+ <para>
+ =<literal>[g0,g1,...,gf]</literal>, and <literal>gk</literal> is a nxn matrix
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>h</term>
+ <listitem>
+ <para>
+ =<literal>[h0,h1,...,hf]</literal>, and <literal>hk</literal> is a mxn matrix
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>q, r</term>
+ <listitem>
+ <para>covariance matrices of dynamics and observation noise</para>
+ <variablelist>
+ <varlistentry>
+ <term>q</term>
+ <listitem>
+ <para>
+ =<literal>[q0,q1,...,qf]</literal>, and <literal>qk</literal> is a nxn matrix
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>r</term>
+ <listitem>
+ <para>
+ =<literal>[r0,r1,...,rf]</literal>, and <literal>gk</literal> is a mxm matrix
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x0, p0</term>
+ <listitem>
+ <para>initial state estimate and error variance</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>
+ observations in the interval <literal>[t0,tf]</literal>. <literal>y=[y0,y1,...,yf]</literal>, and <literal>yk</literal> is a column m-vector
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>xs</term>
+ <listitem>
+ <para>
+ Smoothed state estimate <literal>xs= [xs0,xs1,...,xsf]</literal>, and <literal>xsk</literal> is a column n-vector
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ps</term>
+ <listitem>
+ <para>
+ Error covariance of smoothed estimate <literal>ps=[p0,p1,...,pf]</literal>, and <literal>pk</literal> is a nxn matrix
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>xf</term>
+ <listitem>
+ <para>
+ Filtered state estimate <literal>xf= [xf0,xf1,...,xff]</literal>, and <literal>xfk</literal> is a column n-vector
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pf</term>
+ <listitem>
+ <para>
+ Error covariance of filtered estimate <literal>pf=[p0,p1,...,pf]</literal>, and <literal>pk</literal> is a nxn matrix
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ function which gives the Wiener estimate using
+ the forward-backward Kalman filter formulation
+ </para>
+ </refsection>
+ <refsection>
+ <title>Sample</title>
+ <scilab:image>
+ m0=[10 10]';
+ p0=[100 0;0 100];
+ f2=[1.1 50.1;0 0.8];
+ g=[1 0;0 1];
+ h=[1 0;0 1];
+ [hi,hj]=size(h);
+ q=[.01 0;0 0.01];
+ r=20*eye(2,2);
+ rand("seed",66);
+ rand("normal");
+ p0c=chol(p0);
+ x0=m0+p0c'*rand(ones(m0));
+ y=h*x0+chol(r)'*rand(ones(1:hi))';
+ yt=y;
+ x=x0;
+ ft=[f2];
+ gt=[g];
+ ht=[h];
+ qt=[q];
+ rt=[r];
+ n=10;
+ for k=1:n
+ [x1,y]=system(x0,f2,g,h,q,r);
+ x=[x x1];
+ yt=[yt y];
+ x0=x1;
+ ft=[ft f2];
+ gt=[gt g];
+ ht=[ht h];
+ qt=[qt q];
+ rt=[rt r];
+ end
+ [xs,ps,xf,pf]=wiener(yt,m0,p0,ft,gt,ht,qt,rt);
+ a=min([x(1,:)-2*sqrt(ps(1,1:2:2*(n+1))),xf(1,:),xs(1,:)]);
+ b=max([x(1,:)+2*sqrt(ps(1,1:2:2*(n+1))),xf(1,:),xs(1,:)]);
+ c=min([x(2,:)-2*sqrt(ps(2,2:2:2*(n+1))),xf(2,:),xs(2,:)]);
+ d=max([x(2,:)+2*sqrt(ps(2,2:2:2*(n+1))),xf(2,:),xs(2,:)]);
+ xmargin=max([abs(a),abs(b)]);
+ ymargin=max([abs(c),abs(d)]);
+ a=-0.1*xmargin+a;
+ b=.1*xmargin+b;
+ c=-0.1*ymargin+c;
+ d=.1*ymargin+d;
+ scf();
+ plot([a a b],[d c c]);
+ plot2d(x(1,:)',x(2,:)',[2],"000")
+ plot2d(xf(1,:)',xf(2,:)',[2],"000")
+ plot2d(xs(1,:)',xs(2,:)',[2],"000")
+ plot2d(xs(1,:)',xs(2,:)',[-2],"000")
+ plot2d(xf(1,:)',xf(2,:)',[-3],"000")
+ plot2d(x(1,:)',x(2,:)',[-4],"000")
+ </scilab:image>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+// initialize state statistics (mean and er. variance)
+m0=[10 10]';
+p0=[100 0;0 100];
+// create system
+f2=[1.1 50.1;0 0.8];
+g=[1 0;0 1];
+h=[1 0;0 1];
+[hi,hj]=size(h);
+// noise statistics
+q=[.01 0;0 0.01];
+r=20*eye(2,2);
+// initialize system process
+rand("seed",66);
+rand("normal");
+p0c=chol(p0);
+x0=m0+p0c'*rand(ones(m0));
+y=h*x0+chol(r)'*rand(ones(1:hi))';
+yt=y;
+// initialize plotted variables
+x=x0;
+// loop
+ft=[f2];
+gt=[g];
+ht=[h];
+qt=[q];
+rt=[r];
+n=10;
+for k=1:n
+ // generate the state and observation
+ // at time k (i.e. xk and yk)
+ [x1,y]=system(x0,f2,g,h,q,r);
+ x=[x x1];
+ yt=[yt y];
+ x0=x1;
+ ft=[ft f2];
+ gt=[gt g];
+ ht=[ht h];
+ qt=[qt q];
+ rt=[rt r];
+end
+// get the wiener filter estimate
+[xs,ps,xf,pf]=wiener(yt,m0,p0,ft,gt,ht,qt,rt);
+// plot result
+a=min([x(1,:)-2*sqrt(ps(1,1:2:2*(n+1))),xf(1,:),xs(1,:)]);
+b=max([x(1,:)+2*sqrt(ps(1,1:2:2*(n+1))),xf(1,:),xs(1,:)]);
+c=min([x(2,:)-2*sqrt(ps(2,2:2:2*(n+1))),xf(2,:),xs(2,:)]);
+d=max([x(2,:)+2*sqrt(ps(2,2:2:2*(n+1))),xf(2,:),xs(2,:)]);
+xmargin=max([abs(a),abs(b)]);
+ymargin=max([abs(c),abs(d)]);
+a=-0.1*xmargin+a;
+b=.1*xmargin+b;
+c=-0.1*ymargin+c;
+d=.1*ymargin+d;
+// plot frame, real state (x), and estimates (xf, and xs)
+scf();
+plot([a a b],[d c c]);
+plot2d(x(1,:)',x(2,:)',[2],"000")
+plot2d(xf(1,:)',xf(2,:)',[2],"000")
+plot2d(xs(1,:)',xs(2,:)',[2],"000")
+// mark data points (* for real data, o for estimates)
+plot2d(xs(1,:)',xs(2,:)',[-2],"000")
+plot2d(xf(1,:)',xf(2,:)',[-3],"000")
+plot2d(x(1,:)',x(2,:)',[-4],"000")
+ ]]></programlisting>
+ </refsection>
+
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/wigner.xml b/modules/signal_processing/help/en_US/filters/wigner.xml
new file mode 100755
index 000000000..a770c2b73
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/wigner.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="wigner">
+ <refnamediv>
+ <refname>wigner</refname>
+ <refpurpose>'time-frequency' wigner spectrum</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[tab]=wigner(x,h,deltat,zp)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>tab</term>
+ <listitem>
+ <para>wigner spectrum (lines correspond to the time variable)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>analyzed signal</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>h</term>
+ <listitem>
+ <para>data window</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>deltat</term>
+ <listitem>
+ <para>analysis time increment (in samples)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>zp</term>
+ <listitem>
+ <para>
+ length of FFT's. <literal>%pi/zp</literal> gives the frequency increment.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ function which computes the 'time-frequency' wigner
+ spectrum of a signal.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Sample</title>
+ <scilab:image>
+ a=[488^2 488 1;408^2 408 1;568^2 568 1];
+ b=[1.28;0;0];
+ x=a\b;
+ t=408:568;
+ p=x'*[t.*t;t;ones(t)];
+ u=[0*ones(408:487) ones(488:568)];
+ s=p.*sin(2*%pi/16*t+u*%pi);
+ s=[0*ones(0:407) s 0*ones(569:951)];
+ h=ones(1,64);
+ w=wigner(s,h,12,128);
+ scf();
+ plot3d(1:69,1:64,abs(w(1:69,1:64)));
+ </scilab:image>
+ </refsection>
+
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+a=[488^2 488 1;408^2 408 1;568^2 568 1];
+b=[1.28;0;0];
+x=a\b;
+t=408:568;
+p=x'*[t.*t;t;ones(t)];
+// unit step function
+u=[0*ones(408:487) ones(488:568)];
+// finite duration sinusoid
+s=p.*sin(2*%pi/16*t+u*%pi);
+// signal to be analyzed
+s=[0*ones(0:407) s 0*ones(569:951)];
+// 64-point rectangular window
+h=ones(1,64);
+// wigner spectrum
+w=wigner(s,h,12,128);
+scf();
+plot3d(1:69,1:64,abs(w(1:69,1:64)));
+ ]]></programlisting>
+ </refsection>
+
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/window.xml b/modules/signal_processing/help/en_US/filters/window.xml
new file mode 100755
index 000000000..f6320f01c
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/window.xml
@@ -0,0 +1,296 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xml:lang="en" xmlns:scilab="http://www.scilab.org" xml:id="window">
+ <refnamediv>
+ <refname>window</refname>
+ <refpurpose>compute symmetric window of various type</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>win_l=window('re',n)
+ win_l=window('tr',n)
+ win_l=window('hn',n)
+ win_l=window('hm',n)
+ win_l=window('kr',n,Beta)
+ [win_l,cwp]=window('ch',n,par)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>window length</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>par</term>
+ <listitem>
+ <para>
+ parameter 2-vector <literal>par=[dp,df])</literal>, where
+ <literal>dp</literal> (<literal>0&lt;dp&lt;.5</literal>) rules the main lobe
+ width and <literal>df</literal> rules the side lobe height
+ (<literal>df&gt;0</literal>).
+ </para>
+ <para>Only one of these two value should be specified, the other one
+ must be equal to a nonpositive value.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Beta</term>
+ <listitem>
+ <para>
+ Kaiser window parameter <literal>Beta &gt;0</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>win</term>
+ <listitem>
+ <para>window</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cwp</term>
+ <listitem>
+ <para>unspecified Chebyshev window parameter</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ function which calculates various symmetric window for Digital signal processing.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The Kaiser window is a nearly optimal window function. <literal>Beta</literal>
+ is an arbitrary positive real number that determines the shape of the
+ window, and the integer <literal>n</literal> is the length of the window.
+ </para>
+ <para>
+ By construction, this function peaks at unity for <literal> k = n/2</literal> ,
+ i.e. at the center of the window, and decays exponentially towards the
+ window edges. The larger the value of <literal>Beta</literal>, the narrower
+ the window becomes; <literal>Beta = 0</literal> corresponds to a rectangular window.
+ Conversely, for larger <literal>Beta</literal> the width of the main lobe
+ increases in the Fourier transform, while the side lobes decrease in
+ amplitude.
+ Thus, this parameter controls the tradeoff between main-lobe width and
+ side-lobe area.
+ </para>
+ <informaltable border="1">
+ <tr>
+ <td>Beta</td>
+ <td>window shape</td>
+ </tr>
+ <tr>
+ <td>0</td>
+ <td>Rectangular shape</td>
+ </tr>
+ <tr>
+ <td>5</td>
+ <td>Similar to the Hamming window</td>
+ </tr>
+ <tr>
+ <td>6</td>
+ <td>Similar to the Hann window</td>
+ </tr>
+ <tr>
+ <td>8.6</td>
+ <td>Similar to the Blackman window</td>
+ </tr>
+ </informaltable>
+ </listitem>
+ <listitem>
+ <para>
+ The Chebyshev window minimizes the mainlobe width, given a particular sidelobe
+ height. It is characterized by an equiripple behavior, that is, its
+ sidelobes all have the same height.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The Hann and Hamming windows are quite similar, they only differ in
+ the choice of one parameter <literal>alpha</literal>:
+ <literal> w=alpha+(1 - alpha)*cos(2*%pi*x/(n-1))</literal>
+ <literal>alpha</literal> is equal to 1/2 in Hann window and to 0.54 in
+ Hamming window.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+ clf()
+ N = 24;
+ whm = window('hm', N); // Hamming window
+ wkr = window('kr', N, 6); // Hamming Kaiser window
+ wch = window('ch', N, [0.005 -1]); // Chebychev window
+
+ // Plot the window profile
+ subplot(121);
+ plot((1:N)', [whm; wkr; wch]')
+ set(gca(), 'grid', [1 1]*color('gray'))
+ xlabel("n")
+ ylabel("w_n")
+ title(gettext("Profile plot"))
+
+ // Plot the magnitude of the frequency responses
+ n = 256;
+ [Whm,fr] = frmag(whm, n);
+ [Wkr,fr] = frmag(wkr, n);
+ [Wch,fr] = frmag(wch, n);
+ subplot(122);
+ plot(fr', 20*log10([Whm; Wkr; Wch]'))
+ set(gca(), 'grid', [1 1]*color('gray'))
+ xlabel(gettext("Pulsation (rad/s)"))
+ ylabel(gettext("Magnitude (dB)"))
+ legend(["Hamming N=24"; "Kaiser N=24, Beta=6"; "Chebychev N=24, dp=0.005"]);
+ title(gettext("Magnitude plot"))
+ ]]></programlisting>
+ <para>
+ <scilab:image>
+ clf()
+ N=24;
+ whm=window('hm',N);//Hamming window
+ wkr=window('kr',N,6);//Hamming Kaiser window
+ wch=window('ch',N,[0.005,-1]);//Chebychev window
+ //plot the window profile
+ subplot(121);plot((1:N)',[whm;wkr;wch]')
+ set(gca(),'grid',[1 1]*color('gray'))
+ xlabel("n")
+ ylabel("w_n")
+ title(gettext("Profile plot"))
+ //plot the magnitude of the frequency responses
+ n=256;
+ [Whm,fr]=frmag(whm,n);
+ [Wkr,fr]=frmag(wkr,n);
+ [Wch,fr]=frmag(wch,n);
+ subplot(122);plot(fr',20*log10([Whm;Wkr;Wch]'))
+ set(gca(),'grid',[1 1]*color('gray'))
+ xlabel(gettext("Pulsation (rad/s)"))
+ ylabel(gettext("Magnitude (dB)"))
+ legend(["Hamming N=24";"Kaiser N=24, Beta=6";"Chebychev N=24, dp=0.005"]);
+ title(gettext("Magnitude plot"))
+ </scilab:image>
+ </para>
+ <programlisting role="example"><![CDATA[
+ clf()
+ N = 140;
+ w1 = window('kr', N, 1);
+ w2 = window('kr', N, 2);
+ w4 = window('kr', N, 4);
+ w8 = window('kr', N, 8);
+ w16 = window('kr', N, 16);
+
+ // Plot the window profile
+ plot((1:N)', [w1; w2; w4; w8; w16]')
+ set(gca(), 'grid', [1 1]*color('gray'))
+ legend("$\beta = "+string([1;2;4;8;16])+'$',[55,0.3])
+ xlabel("n")
+ ylabel("w_n")
+ title(gettext("Comparison of Kaiser window profiles"))
+ ]]></programlisting>
+ <para>
+ <scilab:image>
+ clf()
+ N=140;
+ w1=window('kr',N,1);
+ w2=window('kr',N,2);
+ w4=window('kr',N,4);
+ w8=window('kr',N,8);
+ w16=window('kr',N,16);
+
+ //plot the window profile
+ plot((1:N)',[w1;w2;w4;w8;w16]')
+ set(gca(),'grid',[1 1]*color('gray'))
+ legend("$\beta="+string([1;2;4;8;16])+'$',[55,0.3])
+ xlabel("n")
+ ylabel("w_n")
+ title(gettext("Comparison of Kaiser window profiles"))
+ </scilab:image>
+ </para>
+ <programlisting role="example"><![CDATA[
+ clf()
+ N = 140;
+ w1 = window('ch', N, [0.001 -1]);
+ w2 = window('ch', N, [0.05 -1]);
+ w3 = window('ch', N, [-1 0.4]);
+
+ // Plot the window profile
+ subplot(121);
+ plot((1:N)', [w1; w2; w3]')
+ set(gca(), 'grid', [1 1]*color('gray'))
+ //legend("$\beta = "+string([1;2;4;8;16])+'$',[55,0.3])
+ xlabel("n")
+ ylabel("w_n")
+ title(gettext("Comparison of Chebychev window profiles"))
+
+ // Plot the magnitude of the frequency responses
+ n = 256;
+ [W1,fr] = frmag(w1, n);
+ [W2,fr] = frmag(w2, n);
+ [W3,fr] = frmag(w3, n);
+ subplot(122);
+ plot(fr', 20*log10([W1; W2; W3]'))
+ set(gca(), 'grid', [1 1]*color('gray'))
+ xlabel(gettext("Pulsation (rad/s)"))
+ ylabel(gettext("Magnitude (dB)"))
+ legend(["Chebychef dp=0.001"; "Chebychef dp=0.05"; "Chebychef df=0.4"]);
+ title(gettext("Chebychev window Magnitude plot"))
+ ]]></programlisting>
+ <para>
+ <scilab:image>
+ N=140;
+ w1=window('ch',N,[0.001,-1]);
+ w2=window('ch',N,[0.05,-1]);
+ w3=window('ch',N,[-1,0.4]);
+
+ //plot the window profile
+ subplot(121);plot((1:N)',[w1;w2;w3]')
+ set(gca(),'grid',[1 1]*color('gray'))
+ //legend("$\beta="+string([1;2;4;8;16])+'$',[55,0.3])
+ xlabel("n")
+ ylabel("w_n")
+ title(gettext("Comparison of Chebychev window profiles"))
+ //plot the magnitude of the frequency responses
+ n=256;
+ [W1,fr]=frmag(w1,n);
+ [W2,fr]=frmag(w2,n);
+ [W3,fr]=frmag(w3,n);
+ subplot(122);plot(fr',20*log10([W1;W2;W3]'))
+ set(gca(),'grid',[1 1]*color('gray'))
+ xlabel(gettext("Pulsation (rad/s)"))
+ ylabel(gettext("Magnitude (dB)"))
+ legend(["Chebychef dp=0.001";"Chebychef dp=0.05";"Chebychef df=0.4"]);
+ title(gettext("Chebychev window Magnitude plot"))
+ </scilab:image>
+
+ </para>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="wfir">wfir</link>
+ </member>
+ <member>
+ <link linkend="frmag">frmag</link>
+ </member>
+ <member>
+ <link linkend="ffilt">ffilt</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Bibliography</title>
+ <para>IEEE. Programs for Digital Signal Processing. IEEE Press. New York: John
+ Wiley and Sons, 1979. Program 5.2.
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/yulewalk.xml b/modules/signal_processing/help/en_US/filters/yulewalk.xml
new file mode 100755
index 000000000..c0c201a2b
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/yulewalk.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="yulewalk">
+ <refnamediv>
+ <refname>yulewalk</refname>
+ <refpurpose>least-square filter design</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>Hz = yulewalk(N,frq,mag)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>N</term>
+ <listitem>
+ <para>integer (order of desired filter)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>frq</term>
+ <listitem>
+ <para>real row vector (non-decreasing order), frequencies.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>mag</term>
+ <listitem>
+ <para>non negative real row vector (same size as frq), desired magnitudes.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Hz</term>
+ <listitem>
+ <para>
+ filter <literal>B(z)/A(z)</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Hz = yulewalk(N,frq,mag) finds the N-th order iir filter
+ </para>
+ <programlisting role="no-scilab-exec"><![CDATA[
+ n-1 n-2
+ B(z) b(1)z + b(2)z + .... + b(n)
+H(z)= ---- = ---------------------------------
+ n-1 n-2
+ A(z) z + a(2)z + .... + a(n)
+ ]]></programlisting>
+ <para>
+ which matches the magnitude frequency response given by vectors frq and mag.
+ Vectors frq and mag specify the frequency and magnitude of the desired
+ frequency response. The frequencies in frq must be between 0.0 and 1.0,
+ with 1.0 corresponding to half the sample rate. They must be in
+ increasing order and start with 0.0 and end with 1.0.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+f=[0,0.4,0.4,0.6,0.6,1];
+H=[0,0,1,1,0,0];
+Hz=yulewalk(8,f,H);
+fs=1000;
+fhz = f*fs/2;
+clf(0);
+xset('window',0);
+plot2d(fhz',H');
+xtitle('Desired Frequency Response (Magnitude)')
+[frq,repf]=repfreq(Hz,0:0.001:0.5);
+clf(1);
+xset('window',1);
+plot2d(fs*frq',abs(repf'));
+xtitle('Obtained Frequency Response (Magnitude)')
+ ]]></programlisting>
+ <scilab:image>
+ f=[0,0.4,0.4,0.6,0.6,1];
+ H=[0,0,1,1,0,0];
+ Hz=yulewalk(8,f,H);
+ fs=1000;
+ fhz = f*fs/2;
+ clf(0);
+ xset('window',0);
+ plot2d(fhz',H');
+ xtitle('Desired Frequency Response (Magnitude)')
+ [frq,repf]=repfreq(Hz,0:0.001:0.5);
+ </scilab:image>
+ <scilab:image>
+ f=[0,0.4,0.4,0.6,0.6,1];
+ H=[0,0,1,1,0,0];
+ Hz=yulewalk(8,f,H);
+ fs=1000;
+ fhz = f*fs/2;
+ [frq,repf]=repfreq(Hz,0:0.001:0.5);
+ plot2d(fs*frq',abs(repf'));
+ xtitle('Obtained Frequency Response (Magnitude)')
+ </scilab:image>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/zpbutt.xml b/modules/signal_processing/help/en_US/filters/zpbutt.xml
new file mode 100755
index 000000000..1aa914a63
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/zpbutt.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="zpbutt">
+ <refnamediv>
+ <refname>zpbutt</refname>
+ <refpurpose>Butterworth analog filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[pols,gain]=zpbutt(n,omegac)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>integer (filter order)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>omegac</term>
+ <listitem>
+ <para>real (cut-off angular frequency in radians per second)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pols</term>
+ <listitem>
+ <para>resulting poles of filter</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>gain</term>
+ <listitem>
+ <para>resulting gain of filter</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ computes the poles of a Butterworth analog
+ filter of order <literal>n</literal> and cutoff frequency omegac
+ transfer function H(s) is calculated by <literal>H(s)=gain/real(poly(pols,'s'))</literal>
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+n=7;
+omegac=3;
+[pols,gain]=zpbutt(n,omegac)
+ ]]></programlisting>
+ </refsection>
+
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/zpch1.xml b/modules/signal_processing/help/en_US/filters/zpch1.xml
new file mode 100755
index 000000000..d78ff70bb
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/zpch1.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="zpch1">
+ <refnamediv>
+ <refname>zpch1</refname>
+ <refpurpose>Chebyshev analog filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[poles,gain]=zpch1(n,epsilon,omegac)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>integer (filter order)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>epsilon</term>
+ <listitem>
+ <para>
+ real : ripple in the pass band (<literal>0&lt;epsilon&lt;1</literal>)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>omegac</term>
+ <listitem>
+ <para>real : cut-off angular frequency in radians per second</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>poles</term>
+ <listitem>
+ <para>resulting filter poles</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>gain</term>
+ <listitem>
+ <para>resulting filter gain</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Poles of a Type 1 Chebyshev analog filter. The transfer function is given by :
+ </para>
+ <programlisting role="no-scilab-exec"><![CDATA[
+H(s)=gain/poly(poles,'s')
+ ]]></programlisting>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+n = 13;
+epsilon = 0.2;
+omegac = 3;
+[p,gain] = zpch1(n,epsilon,omegac)
+ ]]></programlisting>
+ </refsection>
+
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/zpch2.xml b/modules/signal_processing/help/en_US/filters/zpch2.xml
new file mode 100755
index 000000000..361880012
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/zpch2.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="zpch2">
+ <refnamediv>
+ <refname>zpch2</refname>
+ <refpurpose>Chebyshev analog filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[zeros,poles,gain]=zpch2(n,A,omegar)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>integer : filter order</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>
+ real : attenuation in stop band (<literal>A&gt;1</literal>)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>omegar</term>
+ <listitem>
+ <para>real : cut-off angular frequency in radians per second</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>zeros</term>
+ <listitem>
+ <para>resulting filter zeros</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>poles</term>
+ <listitem>
+ <para>resulting filter poles</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>gain</term>
+ <listitem>
+ <para>Resulting filter gain</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Poles and zeros of a type 2 Chebyshev analog filter
+ gain is the gain of the filter
+ </para>
+ <programlisting role="no-scilab-exec"><![CDATA[
+H(s)=gain*poly(zeros,'s')/poly(poles,'s')
+ ]]></programlisting>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+n=10;
+A=1/0.2;
+omegar=6;
+[z,p,gain]=zpch2(n,A,omegar)
+ ]]></programlisting>
+ </refsection>
+
+</refentry>
diff --git a/modules/signal_processing/help/en_US/filters/zpell.xml b/modules/signal_processing/help/en_US/filters/zpell.xml
new file mode 100755
index 000000000..fb7233b97
--- /dev/null
+++ b/modules/signal_processing/help/en_US/filters/zpell.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="zpell">
+ <refnamediv>
+ <refname>zpell</refname>
+ <refpurpose>lowpass elliptic filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[zeros,poles,gain]=zpell(epsilon,A,omegac,omegar)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>epsilon</term>
+ <listitem>
+ <para>
+ real : ripple of filter in pass band (<literal>0&lt;epsilon&lt;1</literal>)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>
+ real : attenuation of filter in stop band (<literal>A&gt;1</literal>)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>omegac</term>
+ <listitem>
+ <para>real : pass band cut-off angular frequency in radians per second</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>omegar</term>
+ <listitem>
+ <para>real : stop band cut-off angular frequency in radians per second</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>zeros</term>
+ <listitem>
+ <para>resulting zeros of filter</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>poles</term>
+ <listitem>
+ <para>resulting poles of filter</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>gain</term>
+ <listitem>
+ <para>resulting gain of filter</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Poles and zeros of prototype lowpass elliptic filter.
+ <literal>gain</literal> is the gain of the filter
+ </para>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="ell1mag">ell1mag</link>
+ </member>
+ <member>
+ <link linkend="eqiir">eqiir</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/frfit.xml b/modules/signal_processing/help/en_US/frfit.xml
new file mode 100755
index 000000000..ab0ea9d7f
--- /dev/null
+++ b/modules/signal_processing/help/en_US/frfit.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="frfit">
+ <refnamediv>
+ <refname>frfit</refname>
+ <refpurpose>frequency response fit</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>sys=frfit(w,fresp,order)
+ [num,den]=frfit(w,fresp,order)
+ sys=frfit(w,fresp,order,weight)
+ [num,den]=frfit(w,fresp,order,weight)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>w</term>
+ <listitem>
+ <para>positive real vector of frequencies (Hz)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fresp</term>
+ <listitem>
+ <para>
+ complex vector of frequency responses (same size as <literal>w</literal>)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>order</term>
+ <listitem>
+ <para>
+ integer (required order, degree of <literal>den</literal>)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>weight</term>
+ <listitem>
+ <para>
+ positive real vector (default value <literal>ones(w)</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>num,den</term>
+ <listitem>
+ <para>stable polynomials</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ <literal>sys=frfit(w,fresp,order,weight)</literal> returns a bi-stable transfer function
+ <literal>G(s)=sys=num/den</literal>, of of given <literal>order</literal> such that
+ its frequency response <literal>G(w(i))</literal> matches <literal>fresp(i)</literal>, i.e.
+ <literal>freq(num,den,%i*w)</literal> should be close to <literal>fresp</literal>.
+ <literal>weight(i)</literal> is the weight given to <literal>w(i)</literal>.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+w=0.01:0.01:2;
+s=poly(0,'s');
+G=syslin('c',2*(s.^2+0.1*s+2), (s.^2+s+1)*(s.^2+0.3*s+1));
+fresp=repfreq(G,w);
+Gid=frfit(w,fresp,4);
+frespfit=repfreq(Gid,w);
+bode(w,[fresp;frespfit])
+ ]]></programlisting>
+ <scilab:image>
+ w=0.01:0.01:2;
+ s=poly(0,'s');
+ G=syslin('c',2*(s.^2+0.1*s+2), (s.^2+s+1)*(s.^2+0.3*s+1));
+ fresp=repfreq(G,w);
+ Gid=frfit(w,fresp,4);
+ frespfit=repfreq(Gid,w);
+ bode(w,[fresp;frespfit])
+ </scilab:image>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="frep2tf">frep2tf</link>
+ </member>
+ <member>
+ <link linkend="factors">factors</link>
+ </member>
+ <member>
+ <link linkend="cepstrum">cepstrum</link>
+ </member>
+ <member>
+ <link linkend="mrfit">mrfit</link>
+ </member>
+ <member>
+ <link linkend="freq">freq</link>
+ </member>
+ <member>
+ <link linkend="calfrq">calfrq</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/hilbert.xml b/modules/signal_processing/help/en_US/hilbert.xml
new file mode 100755
index 000000000..7be19578a
--- /dev/null
+++ b/modules/signal_processing/help/en_US/hilbert.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="hilbert">
+ <refnamediv>
+ <refname>hilbert</refname>
+ <refpurpose>Discrete-time analytic signal computation of a real signal using Hilbert transform </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>x=hilbert(xr)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>xr</term>
+ <listitem>
+ <para>real vector : the real signal samples</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>Complex vector: the discrete-time analytic signal.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>Returns theanalytic signal, from a real data sequence.</para>
+ <para>
+ The analytic signal <literal>x= xr + i*xi</literal> has a real part, <literal>xr</literal>, which
+ is the original data, and an imaginary part, <literal>xi</literal>, which contains
+ the Hilbert transform. The imaginary part is a version of the
+ original real sequence with a 90° phase shift.
+ </para>
+ </refsection>
+ <refsection>
+ <title>References</title>
+ <para>
+ <literal>
+ <ulink url="http://ieeexplore.ieee.org/iel5/78/16975/00782222.pdf?arnumber=782222">http://ieeexplore.ieee.org/iel5/78/16975/00782222.pdf?arnumber=782222</ulink>
+ </literal>
+ </para>
+ <para>
+ Marple, S.L., "Computing the discrete-time analytic signal via FFT,"
+ IEEE Transactions on Signal Processing, Vol. 47, No.9 (September
+ 1999), pp.2600-2603
+ </para>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="window">window</link>
+ </member>
+ <member>
+ <link linkend="hilb">hil</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+//compare the discrete-time analytic signal imaginary part of the impulse real signal
+// with the FIR approximation of the Hilbert transform filter
+m=25;
+n=2*m+1;
+y=hilbert(eye(n,1));
+h=hilb(n)';
+h=[h((m+1):$);h(1:m)];
+plot([imag(y) h])
+ ]]></programlisting>
+ <scilab:image>
+ m=25;
+ n=2*m+1;
+ y=hilbert(eye(n,1));
+ h=hilb(n)';
+ h=[h((m+1):$);h(1:m)];
+ plot([imag(y) h])
+ </scilab:image>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/howto/CHAPTER b/modules/signal_processing/help/en_US/howto/CHAPTER
new file mode 100755
index 000000000..c59f6c35c
--- /dev/null
+++ b/modules/signal_processing/help/en_US/howto/CHAPTER
@@ -0,0 +1 @@
+title = How to
diff --git a/modules/signal_processing/help/en_US/howto/DesignEllipticFilter.xml b/modules/signal_processing/help/en_US/howto/DesignEllipticFilter.xml
new file mode 100755
index 000000000..7d596825a
--- /dev/null
+++ b/modules/signal_processing/help/en_US/howto/DesignEllipticFilter.xml
@@ -0,0 +1,290 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="DesignEllipticFilter">
+ <refnamediv>
+ <refname>How to design an elliptic filter</refname>
+ <refpurpose>How to design an elliptic filter (analog and
+ digital)
+ </refpurpose>
+ </refnamediv>
+ <refsection>
+ <title>Description</title>
+ <para>The goal is to design a simple analog and digital elliptic
+ filter.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Designing an analog elliptic filter</title>
+ <para>There are several possibilities to design an elliptic lowpass
+ filter. We can use <link linkend="analpf">analpf</link> or <link linkend="zpell">zpell</link>. We will use zpell to produce the poles and
+ zeros of the filter. Once we have got these poles and zeros, we will have
+ to translate this representation into a <link linkend="syslin">syslin</link> one.
+ </para>
+ <para>And then, the filter can be represented in bode plot.</para>
+ <programlisting role=""><![CDATA[
+// analog elliptic (Bessel), order 2, cutoff 1 Hz
+Epsilon = 3; // ripple of filter in pass band (0<epsilon<1)
+A = 60; // attenuation of filter in stop band (A<1)
+OmegaC = 10; // pass band cut-off frequency in Hertz
+OmegaR = 50; // stop band cut-off frequency in Hertz
+
+// Generate the filter
+[_zeros,pols,gain] = zpell(3,60,10,50);
+
+// Generate the equivalent linear system of the filter
+num = gain * real(poly(_zeros,'s'));;
+den = real(poly(pols,'s'));
+elatf = syslin('c',num,den);
+
+// Plot the resulting filter
+bode(elatf,0.01,100);
+title('Analog Elliptic filter');
+ ]]></programlisting>
+ <para>Bode plot is only suited for analog filters.</para>
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="../../images/analog_elliptic_filter.png"/>
+ </imageobject>
+ </mediaobject>
+ <para>If you want to design a highpass, bandpass or bandstop filter, you
+ can first design a lowpass and then transfrom this lowpass filter using
+ the <link linkend="trans">trans</link> function.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Designing a digital elliptic filter</title>
+ <para>Now, let's focus on how to produce a digital lowpass elliptic
+ filter.
+ </para>
+ <para>We can produce two kinds of digital filters:</para>
+ <itemizedlist>
+ <listitem>
+ <para>an IIR (Infinite Impulse Response).</para>
+ <para>To compute such a filter, we can use the following
+ functions:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <link linkend="iir">iir</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="eqiir">eqiir</link>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>a FIR (Finite Impulse Response).</para>
+ <para>To compute such a filter, we can use the following
+ functions:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <link linkend="eqfir">eqfir</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="ffilt">ffilt</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="wfir">wfir</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="fsfirlin">fsfirlin</link>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ <para>
+ For our demonstration, we will use the <link linkend="iir">iir</link> function.
+ </para>
+ <programlisting role="example"><![CDATA[
+Order = 2; // The order of the filter
+Fs = 1000; // The sampling frequency
+Fcutoff = 40; // The cutoff frequency
+
+// We design a low pass elliptic filter
+hz = iir(Order,'lp','ellip',[Fcutoff/Fs/2 0],[0.1 0.1]);
+
+// We compute the frequency response of the filter
+[frq,repf]=repfreq(hz,0:0.001:0.5);
+[db_repf, phi_repf] = dbphi(repf);
+
+// And plot the bode like representation of the digital filter
+subplot(2,1,1);
+plot2d(Fs*frq,db_repf);
+xtitle('Obtained Frequency Response (Magnitude)');
+subplot(2,1,2);
+plot2d(Fs*frq,phi_repf);
+xtitle('Obtained Frequency Response (Phase in degree)');
+ ]]></programlisting>
+ <para>Here is the representation of the digital elliptic filter.</para>
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="../../images/digital_elliptic_filter.png"/>
+ </imageobject>
+ </mediaobject>
+ <para>To represent the filter in phase and magnitude, we need first to
+ convert the discrete impulse response into magnitude and phase using the
+ <link linkend="dbphi">dbphi</link> function. This convertion is done using
+ a set of normalized frequencies.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Filtering a signal using the digital filter</title>
+ <para>Designing a filter is a first step. Once done, this filter will be
+ used to transform a signal. To get rid of some noise for example.
+ </para>
+ <para>In the following examples, we will filter a gaussian noise.</para>
+ <programlisting role=""><![CDATA[
+rand('normal');
+Input = rand(1,1000); // Produce a random gaussian noise
+t = 1:1000;
+
+sl= tf2ss(hz); // From transfert function to syslin representation
+y = flts(Input,sl); // Filter the signal
+
+subplot(2,1,1);
+plot(t,Input);
+xtitle('The gaussian noise','t','y');
+subplot(2,1,2);
+plot(t,y);
+xtitle('The filtered gaussian noise','t','y');
+ ]]></programlisting>
+ <para>Here is the representation of the signal before and after
+ filtering.
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/digital_filtered_noise.png"/>
+ </imageobject>
+ </mediaobject>
+ <para>As we can see in the result, the high frequencies of the noise have
+ been removed and it remains only the low frequencies. The signal is still
+ noisy, but it contains mainly low frequencies.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Filtering a signal using the analog filter</title>
+ <para>To filter a signal using an analog filter, we have two
+ strategies:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ transform the analog filter into a discrete one using the <link linkend="dscr">dscr</link> function
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ apply the <link linkend="csim">csim</link> function to filter
+ the signal
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ First, we try using the <link linkend="dscr">dscr</link> + <link linkend="flts">flts</link> functions.
+ </para>
+ <programlisting role=""><![CDATA[
+rand('normal');
+Input = rand(1,1000); // Produce a random gaussian noise
+n = 1:1000; // The sample index
+
+eldtf = dscr(elatf,1/100); // Discretization of the linear filter
+y = flts(Input,eldtf); // Filter the signal
+
+subplot(2,1,1);
+plot(n,Input);
+xtitle('The gaussian noise','n','y');
+subplot(2,1,2);
+plot(n,y);
+xtitle('The filtered gaussian noise','n','y');
+ ]]></programlisting>
+ <para>Here is the representation of the signal before and after filtering
+ using the <link linkend="dscr">dscr</link> + <link linkend="flts">flts</link> approach.
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/analog_filtered_noise.png"/>
+ </imageobject>
+ </mediaobject>
+ <para>
+ Next, we use the <link linkend="csim">csim</link> function.
+ </para>
+ <programlisting role=""><![CDATA[
+rand('normal');
+Input = rand(1,1000); // Produce a random gaussian noise
+t = 1:1000;
+t = t*0.01; // Convert sample index into time steps
+
+y = csim(Input,t,elatf); // Filter the signal
+
+subplot(2,1,1);
+plot(t,Input);
+xtitle('The gaussian noise','t','y');
+subplot(2,1,2);
+plot(t,y);
+xtitle('The filtered gaussian noise','t','y');
+ ]]></programlisting>
+ <para>Here is the representation of the signal before and after filtering
+ using the <link linkend="csim">csim</link> approach.
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="../../images/analog_filtered_noise_csim.png"/>
+ </imageobject>
+ </mediaobject>
+ <para>
+ The main difference between the <link linkend="dscr">dscr</link> +
+ <link linkend="flts">flts</link> approach and the <link linkend="csim">csim</link> approach: the <link linkend="dscr">dscr</link>
+ + <link linkend="flts">flts</link> uses samples whereas the <link linkend="csim">csim</link> functions uses time steps.
+ </para>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="bode">bode</link>
+ </member>
+ <member>
+ <link linkend="iir">iir</link>
+ </member>
+ <member>
+ <link linkend="poly">poly</link>
+ </member>
+ <member>
+ <link linkend="syslin">syslin</link>
+ </member>
+ <member>
+ <link linkend="zpell">zpell</link>
+ </member>
+ <member>
+ <link linkend="flts">flts</link>
+ </member>
+ <member>
+ <link linkend="tf2ss">tf2ss</link>
+ </member>
+ <member>
+ <link linkend="dscr">dscr</link>
+ </member>
+ <member>
+ <link linkend="csim">csim</link>
+ </member>
+ <member>
+ <link linkend="trans">trans</link>
+ </member>
+ <member>
+ <link linkend="analpf">analpf</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/identification/CHAPTERS b/modules/signal_processing/help/en_US/identification/CHAPTERS
new file mode 100755
index 000000000..85dd5f7bf
--- /dev/null
+++ b/modules/signal_processing/help/en_US/identification/CHAPTERS
@@ -0,0 +1 @@
+title = Identification
diff --git a/modules/signal_processing/help/en_US/identification/lattn.xml b/modules/signal_processing/help/en_US/identification/lattn.xml
new file mode 100755
index 000000000..0f465e9b3
--- /dev/null
+++ b/modules/signal_processing/help/en_US/identification/lattn.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="lattn">
+ <refnamediv>
+ <refname>lattn</refname>
+ <refpurpose>recursive solution of normal equations</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[la,lb]=lattn(n,p,cov)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>maximum order of the filter</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>p</term>
+ <listitem>
+ <para>
+ fixed dimension of the MA part. If <literal>p= -1</literal>, the algorithm reduces to the classical Levinson recursions.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cov</term>
+ <listitem>
+ <para>
+ matrix containing the <literal>Rk</literal>'s (<literal>d*d</literal> matrices for a d-dimensional process).It must be given the following way
+ </para>
+ <para>
+ <latex>
+ \begin{eqnarray}
+ \begin{pmatrix}
+ R_0\\R_1\\R_2\\ \vdots \\R_{nlags}
+ \end{pmatrix}
+ \end{eqnarray}
+ </latex>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>la</term>
+ <listitem>
+ <para>list-type variable, giving the successively calculated polynomials (degree 1 to degree n),with coefficients Ak</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ solves recursively on <literal>n</literal> (<literal>p</literal> being fixed)
+ the following system (normal equations), i.e. identifies
+ the AR part (poles) of a vector ARMA(n,p) process,
+ </para>
+ <latex>
+ \begin{eqnarray}
+ \begin{pmatrix}
+ I&amp;-A_1&amp;\cdots&amp;-A_n
+ \end{pmatrix}
+ \ast
+ \begin{pmatrix}
+ R_{p+1}&amp;R_{p+2}&amp;\cdots&amp;R_{p+n} \\
+ R_p&amp;R_{p+1}&amp;\cdots&amp;R_{p+n-1} \\
+ R_{p+n-1}&amp;R_p&amp;\cdots&amp;R_{p+n-2} \\
+ \vdots&amp;\vdots&amp;\cdots&amp;\vdots \\
+ R_{p+1-n}&amp;R_{p+2-n}&amp;\cdots&amp;R_p
+ \end{pmatrix}
+ = 0
+ \end{eqnarray}
+ </latex>
+ <para>
+
+ </para>
+
+ <para>
+ where {<literal>Rk;k=1,nlag</literal>} is the sequence of empirical covariances.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Example</title>
+ <programlisting role="Example"><![CDATA[
+//Generate the process
+t1=0:0.1:100;
+y1=sin(2*%pi*t1)+sin(2*%pi*2*t1);
+y1=y1+rand(y1,"normal");
+
+//Covariance of y1
+nlag=128;
+c1=corr(y1,nlag);
+c1=c1';
+
+//Compute the filter with maximum order=15 and p=1
+n=15;
+[la1,sig1]=lattn(n,1,c1);
+
+//Compare result of poles with p=-1 and with levin function
+[la2,sig2]=lattn(n,-1,c1);
+for i=1:n
+ s2=roots(la2(i));
+ s2=log(s2)/2/%pi/.1; //estimated poles
+ s2=gsort(imag(s2));
+ s2=s2(1:i/2);
+end;
+[la3,sig3]=levin(n,c1);
+for i=1:n
+ s3=roots(la3(i));
+ s3=log(s3)/2/%pi/.1; //estimated poles
+ s3=gsort(imag(s3));
+ s3=s3(1:i/2);
+end;
+]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="levin">levin</link>
+ </member>
+ <member>
+ <link linkend="lattp">lattp</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/identification/lattp.xml b/modules/signal_processing/help/en_US/identification/lattp.xml
new file mode 100755
index 000000000..541f67e84
--- /dev/null
+++ b/modules/signal_processing/help/en_US/identification/lattp.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="lattp">
+ <refnamediv>
+ <refname>lattp</refname>
+ <refpurpose>Identification of MA part of a vector ARMA process</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[la,lb]=lattp(n,p,cov)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>maximum order of the filter</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>p</term>
+ <listitem>
+ <para>
+ fixed dimension of the MA part. If <literal>p= -1</literal>, the algorithm reduces to the classical Levinson recursions.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cov</term>
+ <listitem>
+ <para>
+ matrix containing the <literal>Rk</literal>'s (<literal>d*d</literal> matrices for a d-dimensional process).It must be given the following way
+ </para>
+ <para>
+ <latex>
+ \begin{eqnarray}
+ \begin{pmatrix}
+ R_0\\R_1\\R_2\\ \vdots \\R_{nlags}
+ \end{pmatrix}
+ \end{eqnarray}
+ </latex>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>la</term>
+ <listitem>
+ <para>list-type variable, giving the successively calculated polynomials (degree 1 to degree p),with coefficients Ak</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ This function identifies the MA part of a vector ARMA(n,p) process.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Example</title>
+ <programlisting role="Example"><![CDATA[
+//Generate the process
+t1=0:0.1:100;
+y1=sin(2*%pi*t1)+sin(2*%pi*2*t1);
+y1=y1+rand(y1,"normal");
+
+//Covariance of y1
+nlag=128;
+c1=corr(y1,nlag);
+c1=c1';
+
+//Compute the filter with maximum order=15 and p=5
+n=5; p=2;
+[la1,sig1]=lattp(n,p,c1);
+]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="levin">levin</link>
+ </member>
+ <member>
+ <link linkend="lattn">lattn</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/identification/phc.xml b/modules/signal_processing/help/en_US/identification/phc.xml
new file mode 100755
index 000000000..cf0aa72b2
--- /dev/null
+++ b/modules/signal_processing/help/en_US/identification/phc.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="phc">
+ <refnamediv>
+ <refname>phc</refname>
+ <refpurpose>Markovian representation</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[H,F,G]=phc(hk,d,r)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>hk</term>
+ <listitem>
+ <para>hankel matrix</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>d</term>
+ <listitem>
+ <para>dimension of the observation</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>r</term>
+ <listitem>
+ <para>desired dimension of the state vector for the approximated model</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>H, F, G</term>
+ <listitem>
+ <para>relevant matrices of the Markovian model</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Function which computes the matrices <literal>H, F, G</literal> of a Markovian
+ representation by the principal hankel
+ component approximation method, from the hankel matrix built
+ from the covariance sequence of a stochastic process.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+//This example may usefully be compared with the results from
+//the 'levin' macro (see the corresponding help and example)
+//
+//We consider the process defined by two sinusoids (1Hz and 2 Hz)
+//in additive Gaussian noise (this is the observation);
+//the simulated process is sampled at 10 Hz.
+
+t=0:.1:100;rand('normal');
+y=sin(2*%pi*t)+sin(2*%pi*2*t);y=y+rand(y);plot(t,y)
+
+//covariance of y
+
+nlag=128;
+c=corr(y,nlag);
+
+//hankel matrix from the covariance sequence
+//(we can choose to take more information from covariance
+//by taking greater n and m; try it to compare the results !
+
+n=20;m=20;
+h=hank(n,m,c);
+
+//compute the Markov representation (mh,mf,mg)
+//We just take here a state dimension equal to 4 :
+//this is the rather difficult problem of estimating the order !
+//Try varying ns !
+//(the observation dimension is here equal to one)
+
+ns=4;
+[mh,mf,mg]=phc(h,1,ns);
+
+//verify that the spectrum of mf contains the
+//frequency spectrum of the observed process y
+//(remember that y is sampled -in our example
+//at 10Hz (T=0.1s) so that we need
+//to retrieve the original frequencies through the log
+//and correct scaling by the frequency sampling)
+
+s=spec(mf);s=log(s);
+s=s/2/%pi/.1;
+
+//now we get the estimated spectrum
+imag(s),
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="levin">levin</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/identification/rpem.xml b/modules/signal_processing/help/en_US/identification/rpem.xml
new file mode 100755
index 000000000..769a051f4
--- /dev/null
+++ b/modules/signal_processing/help/en_US/identification/rpem.xml
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="rpem">
+ <refnamediv>
+ <refname>rpem</refname>
+ <refpurpose>Recursive Prediction-Error Minimization estimation</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[w1,[v]]=rpem(w0,u0,y0,[lambda,[k,[c]]])</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>w0</term>
+ <listitem>
+ <para>
+ <literal>list(theta,p,l,phi,psi)</literal> where:
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>theta</term>
+ <listitem>
+ <para>
+ [a,b,c] is a real vector of order <literal>3*n</literal>
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>a,b,c</term>
+ <listitem>
+ <para>
+ <literal>a=[a(1),...,a(n)], b=[b(1),...,b(n)], c=[c(1),...,c(n)]</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>p</term>
+ <listitem>
+ <para>(3*n x 3*n) real matrix.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>phi,psi,l</term>
+ <listitem>
+ <para>
+ real vector of dimension <literal>3*n</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ Applicable values for the first call:
+ </para>
+ <programlisting role=""><![CDATA[
+theta=phi=psi=l=0*ones(1,3*n). p=eye(3*n,3*n)
+ ]]></programlisting>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>u0</term>
+ <listitem>
+ <para>
+ real vector of inputs (arbitrary size). (<literal>u0($)</literal> is not used by rpem)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y0</term>
+ <listitem>
+ <para>
+ vector of outputs (same dimension as <literal>u0</literal>). (<literal>y0(1)</literal> is not used by rpem).
+ </para>
+ <para>
+ If the time domain is <literal>(t0,t0+k-1)</literal> the <literal>u0</literal> vector contains the inputs
+ </para>
+ <para>
+ <literal>u(t0),u(t0+1),..,u(t0+k-1)</literal> and <literal>y0</literal> the outputs
+ </para>
+ <para>
+ <literal>y(t0),y(t0+1),..,y(t0+k-1)</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Optional arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>lambda</term>
+ <listitem>
+ <para>optional argument (forgetting constant) choosed close to 1 as convergence occur:</para>
+ <para>
+ <literal>lambda=[lambda0,alfa,beta]</literal> evolves according to :
+ </para>
+ <programlisting role=""><![CDATA[
+lambda(t)=alfa*lambda(t-1)+beta
+ ]]></programlisting>
+ <para>
+ with <literal>lambda(0)=lambda0</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>k</term>
+ <listitem>
+ <para>contraction factor to be chosen close to 1 as convergence occurs.</para>
+ <para>
+ <literal>k=[k0,mu,nu]</literal> evolves according to:
+ </para>
+ <programlisting role=""><![CDATA[
+k(t)=mu*k(t-1)+nu
+ ]]></programlisting>
+ <para>
+ with <literal>k(0)=k0</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>c</term>
+ <listitem>
+ <para>
+ Large argument.(<literal>c=1000</literal> is the default value).
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Outputs:</title>
+ <variablelist>
+ <varlistentry>
+ <term>w1</term>
+ <listitem>
+ <para>
+ Update for <literal>w0</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>v</term>
+ <listitem>
+ <para>
+ sum of squared prediction errors on <literal>u0, y0</literal>.(optional).
+ </para>
+ <para>
+ In particular <literal>w1(1)</literal> is the new
+ estimate of <literal>theta</literal>. If a new
+ sample <literal>u1, y1</literal> is available the update is
+ obtained by:
+ </para>
+ <para>
+ <literal>[w2,[v]]=rpem(w1,u1,y1,[lambda,[k,[c]]])</literal>. Arbitrary
+ large series can thus be treated.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Recursive estimation of arguments in an ARMAX model.
+ Uses Ljung-Soderstrom recursive prediction error method.
+ Model considered is the following:
+ </para>
+ <programlisting role=""><![CDATA[
+y(t)+a(1)*y(t-1)+...+a(n)*y(t-n)=
+b(1)*u(t-1)+...+b(n)*u(t-n)+e(t)+c(1)*e(t-1)+...+c(n)*e(t-n)
+ ]]></programlisting>
+ <para>
+ </para>
+ <para>
+ The effect of this command is to update the estimation of
+ unknown argument <literal>theta=[a,b,c]</literal> with
+ </para>
+ <para>
+ <literal>a=[a(1),...,a(n)], b=[b(1),...,b(n)], c=[c(1),...,c(n)]</literal>.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Example</title>
+ <programlisting role="Example"><![CDATA[
+nbPoints = 50; // Number of points computed
+
+// Real parameters a,b,c: here, y=u
+a=cat(2,1,zeros(1,nbPoints - 1));
+b=cat(2,1,zeros(1,nbPoints - 1));
+c=zeros(1,nbPoints);
+
+// Generate input signal
+t=linspace(0,50,600);
+w=%pi/3;
+u=cos(w*t);
+
+// Generate output signal
+Arma=armac(a,b,c,1,1,0);
+y=arsimul(Arma,u);
+
+f1=figure("figure_name","figure1","backgroundColor",[1 1 1]);
+subplot(3,1,1);
+plot(t, u, "b+");
+xtitle("Input");
+subplot(3,1,2);
+plot(t, y);
+
+// Arguments of rpem
+phi=zeros(1,nbPoints*3);
+psi=zeros(1,nbPoints*3);
+l=zeros(1,nbPoints*3);
+p=1*eye(nbPoints*3,nbPoints*3);
+theta=[0*a 0*b 0*c];
+w0=list(theta,p,l,phi,psi);
+[w0, v]=rpem(w0,u,y);
+
+// Get estimated parameters:
+a_est=w0(1)(1);
+b_est=w0(1)(nbPoints + 1);
+c_est=w0(1)(2 * nbPoints + 1);
+for i=2:nbPoints
+ a_est=cat(2,a_est,w0(1)(i));
+ b_est=cat(2,b_est,w0(1)(i+nbPoints));
+ c_est=cat(2,c_est,w0(1)(i+2*nbPoints));
+end
+
+// Generate and plot output estimated
+Arma_est=armac(a_est,b_est,c_est,1,1,0);
+y_est=arsimul(Arma_est,u);
+plot(t, y_est,"color","red");
+xtitle("Real output(blue), Estimated output (red)");
+
+// Plot estimated parameters
+subplot(3,1,3);
+xtitle("a,b,c estimated");
+plot(a_est(1,:),"color","red");
+plot(b_est(1,:),"color","green");
+plot(c_est(1,:),"color","blue");
+]]>
+ </programlisting>
+ <scilab:image>
+ nbPoints = 50; // Number of points computed
+
+ // Real parameters a,b,c: here, y=u
+ a=cat(2,1,zeros(1,nbPoints - 1));
+ b=cat(2,1,zeros(1,nbPoints - 1));
+ c=zeros(1,nbPoints);
+
+ // Generate input signal
+ t=linspace(0,50,600);
+ w=%pi/3;
+ u=cos(w*t);
+
+ // Generate output signal
+ Arma=armac(a,b,c,1,1,0);
+ y=arsimul(Arma,u);
+
+ f1=figure("figure_name","figure1","backgroundColor",[1 1 1]);
+ subplot(3,1,1);
+ plot(t, u, "b+");
+ xtitle("Input");
+ subplot(3,1,2);
+ plot(t, y);
+
+ // Arguments of rpem
+ phi=zeros(1,nbPoints*3);
+ psi=zeros(1,nbPoints*3);
+ l=zeros(1,nbPoints*3);
+ p=1*eye(nbPoints*3,nbPoints*3);
+ theta=[0*a 0*b 0*c];
+ w0=list(theta,p,l,phi,psi);
+ [w0, v]=rpem(w0,u,y);
+
+ // Get estimated parameters:
+ a_est=w0(1)(1);
+ b_est=w0(1)(nbPoints + 1);
+ c_est=w0(1)(2 * nbPoints + 1);
+ for i=2:nbPoints
+ a_est=cat(2,a_est,w0(1)(i));
+ b_est=cat(2,b_est,w0(1)(i+nbPoints));
+ c_est=cat(2,c_est,w0(1)(i+2*nbPoints));
+ end
+
+ // Generate and plot output estimated
+ Arma_est=armac(a_est,b_est,c_est,1,1,0);
+ y_est=arsimul(Arma_est,u);
+ plot(t, y_est,"color","red");
+ xtitle("Real output(blue), Estimated output (red)");
+
+ // Plot estimated parameters
+ subplot(3,1,3);
+ xtitle("a,b,c estimated");
+ plot(a_est(1,:),"color","red");
+ plot(b_est(1,:),"color","green");
+ plot(c_est(1,:),"color","blue");
+ </scilab:image>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/ifftshift.xml b/modules/signal_processing/help/en_US/ifftshift.xml
new file mode 100755
index 000000000..7e1cec181
--- /dev/null
+++ b/modules/signal_processing/help/en_US/ifftshift.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.
+ * The terms are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="ifftshift">
+ <refnamediv>
+ <refname>ifftshift</refname>
+ <refpurpose>inverse of fftshift</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>y=ifftshift(x)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>x, y</term>
+ <listitem>
+ <para>real or complex vector or matrix.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ <literal>ifftshift(x)</literal> swaps the left and right halves of the vector <literal>x</literal>.
+ </para>
+ <para>
+ For matrices, <literal>ifftshift(x)</literal> swaps the first quadrant with the third and the second quadrant with the fourth.
+ </para>
+ <para>
+ If <literal>x</literal> is a multidimensional array,
+ <literal>ifftshift(x)</literal> swaps "half-spaces" of <literal>x</literal> along each dimension.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <para>
+ Example #1:
+ </para>
+ <programlisting role="example"><![CDATA[
+// Make a signal
+t = 0:0.1:1000;
+x = 3*sin(t)+8*sin(3*t)+0.5*sin(5*t)+3*rand(t);
+// Compute the fft
+y = fft(x, -1);
+// Invert the result
+shift = fftshift(y);
+// Invert the inverted result
+invShift = ifftshift(shift);
+// Check that we recreated the original result
+and(y == invShift)
+ ]]></programlisting>
+ <para>
+ Example #2:
+ </para>
+ <programlisting role="example"><![CDATA[
+// Make a 2D image
+t = 0:0.1:30;
+x = 3*sin(t')*cos(2*t)+8*sin(3*t')*sin(5*t)+..
+ 0.5*sin(5*t')*sin(5*t)+3*rand(t')*rand(t);
+// Compute the fft
+y = fft(x,-1);
+
+// Invert the result
+shift = fftshift(y);
+// Invert the inverted result
+invShift = ifftshift(shift);
+// Check that we recreated the original result
+and(y == invShift)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="fftshift">fftshift</link>
+ </member>
+ <member>
+ <link linkend="fft">fft</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/miscellaneous/CHAPTERS b/modules/signal_processing/help/en_US/miscellaneous/CHAPTERS
new file mode 100755
index 000000000..0af07295a
--- /dev/null
+++ b/modules/signal_processing/help/en_US/miscellaneous/CHAPTERS
@@ -0,0 +1,2 @@
+title = Miscellaneous
+
diff --git a/modules/signal_processing/help/en_US/miscellaneous/bilt.xml b/modules/signal_processing/help/en_US/miscellaneous/bilt.xml
new file mode 100755
index 000000000..3298dd8b8
--- /dev/null
+++ b/modules/signal_processing/help/en_US/miscellaneous/bilt.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="bilt">
+ <refnamediv>
+ <refname>bilt</refname>
+ <refpurpose>bilinear or biquadratic transform SISO system given by a zero/poles representation</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[npl,nzr,ngn] = bilt(pl,zr,gn,num,den)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>pl</term>
+ <listitem>
+ <para>a vector, the poles of the given system.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>zr</term>
+ <listitem>
+ <para>a vector, the zeros of the given system.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>num</term>
+ <listitem>
+ <para>a polynomial with degree equal to the degree of
+ <literal>den</literal>, the numerator of the
+ transform.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>den</term>
+ <listitem>
+ <para>a polynomial with degree 1 or 2, the denominator of the transform.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>npl</term>
+ <listitem>
+ <para>a vector, the poles of the transformed system.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>nzr</term>
+ <listitem>
+ <para>a vector, the zeros of the transformed system.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ngn</term>
+ <listitem>
+ <para>a scalar, the gain of the transformed system.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>function for calculating the gain poles and zeros which
+ result from a bilinear transform or from a biquadratic transform.
+ Used by the functions <link linkend="iir">iir</link> and <link linkend="trans">trans</link>.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+Hlp=iir(3,'lp','ellip',[0.1 0],[.08 .03]);
+pl=roots(Hlp.den);
+zr=roots(Hlp.num);
+gn=coeff(Hlp.num,degree(Hlp.num))/coeff(Hlp.den,degree(Hlp.den));
+z=poly(0,'z');
+a=0.3;
+num=z-a;
+den=1-a*z;
+[npl,nzr,ngn] = bilt(pl,zr,gn,num,den)
+
+Hlpt=ngn*poly(nzr,'z','r')/poly(npl,'z','r')
+
+//comparison with horner
+horner(Hlp,num/den)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="iir">iir</link>
+ </member>
+ <member>
+ <link linkend="trans">trans</link>
+ </member>
+ <member>
+ <link linkend="horner">horner</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/miscellaneous/sincd.xml b/modules/signal_processing/help/en_US/miscellaneous/sincd.xml
new file mode 100755
index 000000000..99b25070a
--- /dev/null
+++ b/modules/signal_processing/help/en_US/miscellaneous/sincd.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="sincd">
+ <refnamediv>
+ <refname>sincd</refname>
+ <refpurpose>digital sinc function or Direchlet kernel</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[s]=sincd(n,flag)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>integer</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>flag</term>
+ <listitem>
+ <para>
+ if <literal>flag = 1</literal> the function is centred around the origin; if <literal>flag = 2</literal> the function is delayed by <literal>%pi/(2*n)</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>s</term>
+ <listitem>
+ <para>vector of values of the function on a dense grid of frequencies</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ function which calculates the function <literal>Sin(N*x)/N*Sin(x)</literal>
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+plot(sincd(10,1))
+ ]]></programlisting>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/mrfit.xml b/modules/signal_processing/help/en_US/mrfit.xml
new file mode 100755
index 000000000..a1fb505e3
--- /dev/null
+++ b/modules/signal_processing/help/en_US/mrfit.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="mrfit">
+ <refnamediv>
+ <refname>mrfit</refname>
+ <refpurpose>frequency response fit</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>sys=mrfit(w,mag,order)
+ [num,den]=mrfit(w,mag,order)
+ sys=mrfit(w,mag,order,weight)
+ [num,den]=mrfit(w,mag,order,weight)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>w</term>
+ <listitem>
+ <para>positive real vector of frequencies (Hz)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>mag</term>
+ <listitem>
+ <para>
+ real vector of frequency responses magnitude (same size as <literal>w</literal>)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>order</term>
+ <listitem>
+ <para>
+ integer (required order, degree of <literal>den</literal>)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>weight</term>
+ <listitem>
+ <para>
+ positive real vector (default value <literal>ones(w)</literal>).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>num,den</term>
+ <listitem>
+ <para>stable polynomials</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ <literal>sys=mrfit(w,mag,order,weight)</literal> returns a bi-stable transfer function
+ <literal>G(s)=sys=num/den</literal>, of of given <literal>order</literal> such that
+ its frequency response magnitude <literal>abs(G(w(i)))</literal>
+ matches <literal>mag(i)</literal> i.e. <literal>abs(freq(num,den,%i*w))</literal> should be
+ close to <literal>mag</literal>.
+ <literal>weight(i)</literal> is the weigth given to <literal>w(i)</literal>.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+w=0.01:0.01:2;
+s=poly(0,'s');
+G=syslin('c',2*(s^2+0.1*s+2),(s^2+s+1)*(s^2+0.3*s+1)); // syslin('c',Num,Den);
+fresp=repfreq(G,w);
+mag=abs(fresp);
+Gid=mrfit(w,mag,4);
+frespfit=repfreq(Gid,w);
+plot2d([w',w'],[mag(:),abs(frespfit(:))])
+ ]]></programlisting>
+ <scilab:image>
+ w=0.01:0.01:2;
+ s=poly(0,'s');
+ G=syslin('c',2*(s^2+0.1*s+2),(s^2+s+1)*(s^2+0.3*s+1));
+ fresp=repfreq(G,w);
+ mag=abs(fresp);
+ Gid=mrfit(w,mag,4);
+ frespfit=repfreq(Gid,w);
+ plot2d([w',w'],[mag(:),abs(frespfit(:))])
+ </scilab:image>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="cepstrum">cepstrum</link>
+ </member>
+ <member>
+ <link linkend="frfit">frfit</link>
+ </member>
+ <member>
+ <link linkend="freq">freq</link>
+ </member>
+ <member>
+ <link linkend="calfrq">calfrq</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/spectral_estimation/CHAPTERS b/modules/signal_processing/help/en_US/spectral_estimation/CHAPTERS
new file mode 100755
index 000000000..442ab0747
--- /dev/null
+++ b/modules/signal_processing/help/en_US/spectral_estimation/CHAPTERS
@@ -0,0 +1 @@
+title = Spectral estimation
diff --git a/modules/signal_processing/help/en_US/spectral_estimation/corr.xml b/modules/signal_processing/help/en_US/spectral_estimation/corr.xml
new file mode 100755
index 000000000..752e64652
--- /dev/null
+++ b/modules/signal_processing/help/en_US/spectral_estimation/corr.xml
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="corr">
+ <refnamediv>
+ <refname>corr</refname>
+ <refpurpose>correlation, covariance</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[cov,Mean]=corr(x,[y],nlags)
+ [cov,Mean]=corr('fft',xmacro,[ymacro],n,sect)
+
+ [w,xu]=corr('updt',x1,[y1],w0)
+ [w,xu]=corr('updt',x2,[y2],w,xu)
+ ...
+ [wk]=corr('updt',xk,[yk],w,xu)
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>a real vector</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>a real vector, default value x.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>nlags</term>
+ <listitem>
+ <para>integer, number of correlation coefficients desired.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>xmacro</term>
+ <listitem>
+ <para>a scilab external (see below).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ymacro</term>
+ <listitem>
+ <para>a scilab external (see below), default value xmacro</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>an integer, total size of the sequence (see below).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sect</term>
+ <listitem>
+ <para>size of sections of the sequence (see below).</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>xi</term>
+ <listitem>
+ <para>a real vector</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>yi</term>
+ <listitem>
+ <para>a real vector,default value xi.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cov</term>
+ <listitem>
+ <para>real vector, the correlation coefficients</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Mean</term>
+ <listitem>
+ <para>real number or vector, the mean of x and if given y</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Computes
+ </para>
+ <programlisting role=""><![CDATA[
+ n - m
+ ====
+ \ 1
+cov(m) = > (x(k) - xmean) (y(m+k) - ymean) * ---
+ / n
+ ====
+ k = 1
+ ]]></programlisting>
+ <para>
+ for m=0,..,<literal>nlag-1</literal> and two vectors <literal>x=[x(1),..,x(n)]</literal>
+ <literal>y=[y(1),..,y(n)]</literal>
+ </para>
+ <para>
+ Note that if x and y sequences are differents corr(x,y,...) is
+ different with corr(y,x,...)
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>Short sequences</term>
+ <listitem>
+ <para>
+ <literal>[cov,Mean]=corr(x,[y],nlags)</literal> returns the first nlags
+ correlation coefficients and Mean = <literal>mean(x)</literal>
+ (mean of <literal>[x,y]</literal> if <literal>y</literal> is an argument).
+ The sequence <literal>x</literal> (resp. <literal>y</literal>) is assumed real, and <literal>x</literal>
+ and <literal>y</literal> are of same dimension n.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Long sequences</term>
+ <listitem>
+ <para>
+ <literal>[cov,Mean]=corr('fft',xmacro,[ymacro],n,sect)</literal> Here <literal>xmacro</literal> is either
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ a function of type <literal>[xx]=xmacro(sect,istart)</literal> which
+ returns a vector <literal>xx</literal> of dimension
+ <literal>nsect</literal> containing the part of the sequence with
+ indices from <literal>istart</literal> to
+ <literal>istart+sect-1</literal>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ a fortran subroutine or C procedure which performs the same
+ calculation. (See the source code of <literal>dgetx</literal> for an
+ example). <literal>n</literal> = total size of the
+ sequence. <literal>sect</literal> = size of sections of the
+ sequence. <literal>sect</literal> must be a power of
+ 2. <literal>cov</literal> has dimension
+ <literal>sect</literal>. Calculation is performed by FFT.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Updating method</term>
+ <listitem>
+ <programlisting role=""><![CDATA[
+[w,xu]=corr('updt',x1,[y1],w0)
+[w,xu]=corr('updt',x2,[y2],w,xu)
+ ...
+wk=corr('updt',xk,[yk],w,xu)
+ ]]></programlisting>
+ <para>
+ With this calling sequence the calculation is updated at each
+ call to <literal>corr</literal>.
+ </para>
+ <programlisting role=""><![CDATA[
+w0 = 0*ones(1,2*nlags);
+nlags = power of 2.
+ ]]></programlisting>
+ <para>
+ <literal>x1,x2,...</literal> are parts of <literal>x</literal> such that
+ <literal>x=[x1,x2,...]</literal> and sizes of <literal>xi</literal> a power of
+ 2. To get <literal>nlags</literal> coefficients a final fft must be
+ performed <literal>c=fft(w,1)/n</literal>; <literal>cov=c(1nlags)</literal>
+ (<literal>n</literal> is the size of <literal>x (y)</literal>). Caution: this
+ calling sequence assumes that <literal>xmean = ymean = 0</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+x=%pi/10:%pi/10:102.4*%pi;
+rand('seed');rand('normal');
+y=[.8*sin(x)+.8*sin(2*x)+rand(x);.8*sin(x)+.8*sin(1.99*x)+rand(x)];
+c=[];
+for j=1:2,for k=1:2,c=[c;corr(y(k,:),y(j,:),64)];end;end;
+c=matrix(c,2,128);cov=[];
+for j=1:64,cov=[cov;c(:,(j-1)*2+1:2*j)];end;
+rand('unif')
+
+rand('normal');x=rand(1,256);y=-x;
+deff('[z]=xx(inc,is)','z=x(is:is+inc-1)');
+deff('[z]=yy(inc,is)','z=y(is:is+inc-1)');
+[c,mxy]=corr(x,y,32);
+x=x-mxy(1)*ones(x);y=y-mxy(2)*ones(y); //centring
+c1=corr(x,y,32);c2=corr(x,32);
+norm(c1+c2,1)
+[c3,m3]=corr('fft',xx,yy,256,32);
+norm(c1-c3,1)
+[c4,m4]=corr('fft',xx,256,32);
+norm(m3,1),norm(m4,1)
+norm(c3-c1,1),norm(c4-c2,1)
+x1=x(1:128);x2=x(129:256);
+y1=y(1:128);y2=y(129:256);
+w0=0*ones(1:64); //32 coeffs
+[w1,xu]=corr('u',x1,y1,w0);w2=corr('u',x2,y2,w1,xu);
+zz=real(fft(w2,1))/256;c5=zz(1:32);
+norm(c5-c1,1)
+[w1,xu]=corr('u',x1,w0);w2=corr('u',x2,w1,xu);
+zz=real(fft(w2,1))/256;c6=zz(1:32);
+norm(c6-c2,1)
+rand('unif')
+
+// test for Fortran or C external
+//
+deff('[y]=xmacro(sec,ist)','y=sin(ist:(ist+sec-1))');
+x=xmacro(100,1);
+[cc1,mm1]=corr(x,2^3);
+[cc,mm]=corr('fft',xmacro,100,2^3);
+[cc2,mm2]=corr('fft','corexx',100,2^3);
+[max(abs(cc-cc1)),max(abs(mm-mm1)),max(abs(cc-cc2)),max(abs(mm-mm2))]
+
+deff('[y]=ymacro(sec,ist)','y=cos(ist:(ist+sec-1))');
+y=ymacro(100,1);
+[cc1,mm1]=corr(x,y,2^3);
+[cc,mm]=corr('fft',xmacro,ymacro,100,2^3);
+[cc2,mm2]=corr('fft','corexx','corexy',100,2^3);
+[max(abs(cc-cc1)),max(abs(mm-mm1)),max(abs(cc-cc2)),max(abs(mm-mm2))]
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="fft">fft</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/spectral_estimation/cspect.xml b/modules/signal_processing/help/en_US/spectral_estimation/cspect.xml
new file mode 100755
index 000000000..bfa9b40bf
--- /dev/null
+++ b/modules/signal_processing/help/en_US/spectral_estimation/cspect.xml
@@ -0,0 +1,342 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="cspect" xml:lang="en">
+ <refnamediv>
+ <refname>cspect</refname>
+ <refpurpose>two sided cross-spectral estimate between 2 discrete time signals using
+ the correlation method
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ [sm [,cwp]]=cspect(nlags,npoints,wtype,x [,y] [,wpar])
+ [sm [,cwp]]=cspect(nlags,npoints,wtype,nx [,ny] [,wpar])
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>vector, the data of the first signal.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>
+ vector, the data of the second signal. If <literal>y</literal>
+ is omitted it is supposed to be equal to <literal>x</literal>
+ (auto-correlation). If it is present, it must have the same numer of
+ element than <literal>x.</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>nx</term>
+ <listitem>
+ <para>
+ a scalar : the number of points in the <literal>x</literal>
+ signal. In this case the segments of the x signal are loaded by a
+ user defined function named <literal>getx</literal> (see
+ below).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ny</term>
+ <listitem>
+ <para>a scalar : the number of points in the
+ <literal>y</literal> signal. In this case the segments of
+ the <literal>y</literal> signal are loaded by a user defined
+ function named <literal>gety</literal> (see below). If
+ present <literal>ny</literal> must be equal to
+ <literal>nx</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>nlags</term>
+ <listitem>
+ <para>number of correlation lags (positive integer)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>npoints</term>
+ <listitem>
+ <para>number of transform points (positive integer)</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>wtype</term>
+ <listitem>
+ <para>The window type</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>'re'</literal>: rectangular
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>'tr'</literal>: triangular
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>'hm'</literal>: Hamming
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>'hn'</literal>: Hann
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>'kr'</literal>: Kaiser,in this case the wpar
+ argument must be given
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>'ch'</literal>: Chebyshev, in this case the wpar
+ argument must be given
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>wpar</term>
+ <listitem>
+ <para>
+ optional parameters for <literal>Kaiser and Chebyshev
+ windows:
+ </literal>
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ 'kr': <literal>wpar must be a strictly positive
+ number
+ </literal>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ 'ch': <literal>wpar</literal> must be a 2 element vector
+ <literal> [main_lobe_width,side_lobe_height]with
+ </literal>
+ <literal>0&lt;main_lobe_width&lt;.5</literal>, and
+ <literal>side_lobe_height&gt;0</literal>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sm</term>
+ <listitem>
+ <para>The power spectral estimate in the interval
+ <literal>[0,1]</literal> of the normalized frequencies. It
+ is a row array of size <literal>npoints</literal>. The array
+ is real in case of auto-correlation and complex in case of
+ cross-correlation.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cwp</term>
+ <listitem>
+ <para>the unspecified Chebyshev window parameter in case of Chebyshev
+ windowing, or an empty matrix.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>Computes the cross-spectrum estimate of two signals
+ <literal>x</literal> and <literal>y</literal> if both are given and the
+ auto-spectral estimate of <literal>x</literal> otherwise. Spectral
+ estimate obtained using the correlation method.
+ </para>
+ <para>The cross spectrum of two signal x and y is defined to be</para>
+ <para>
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata>
+ <mml:math>
+ <mml:semantics>
+ <mml:mrow>
+ <mml:msub>
+ <mml:mi>S</mml:mi>
+ <mml:mi mml:fontstyle="italic">xy</mml:mi>
+ </mml:msub>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">(</mml:mo>
+ <mml:mo mml:stretchy="false">ω</mml:mo>
+ <mml:mo mml:stretchy="false">)</mml:mo>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">=</mml:mo>
+ <mml:mfrac>
+ <mml:mn>1</mml:mn>
+ <mml:mi>N</mml:mi>
+ </mml:mfrac>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">(</mml:mo>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:munderover>
+ <mml:mo mml:stretchy="false">∑</mml:mo>
+ <mml:mrow>
+ <mml:mi>n</mml:mi>
+ <mml:mo mml:stretchy="false">=</mml:mo>
+ <mml:mn>0</mml:mn>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mi>N</mml:mi>
+ <mml:mo mml:stretchy="false">−</mml:mo>
+ <mml:mn>1</mml:mn>
+ </mml:mrow>
+ </mml:munderover>
+ <mml:mi>x</mml:mi>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">(</mml:mo>
+ <mml:mi>n</mml:mi>
+ <mml:mo mml:stretchy="false">)</mml:mo>
+ </mml:mrow>
+ <mml:msup>
+ <mml:mi>e</mml:mi>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">−</mml:mo>
+ <mml:mi>i</mml:mi>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">ω</mml:mo>
+ <mml:mi>n</mml:mi>
+ </mml:mrow>
+ </mml:msup>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">)</mml:mo>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">(</mml:mo>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:munderover>
+ <mml:mo mml:stretchy="false">∑</mml:mo>
+ <mml:mrow>
+ <mml:mi>n</mml:mi>
+ <mml:mo mml:stretchy="false">=</mml:mo>
+ <mml:mn>0</mml:mn>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mi>N</mml:mi>
+ <mml:mo mml:stretchy="false">−</mml:mo>
+ <mml:mn>1</mml:mn>
+ </mml:mrow>
+ </mml:munderover>
+ <mml:mover mml:accent="true">
+ <mml:mi>y</mml:mi>
+ <mml:mo mml:stretchy="false">ˉ</mml:mo>
+ </mml:mover>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">(</mml:mo>
+ <mml:mi>n</mml:mi>
+ <mml:mo mml:stretchy="false">)</mml:mo>
+ </mml:mrow>
+ <mml:msup>
+ <mml:mi>e</mml:mi>
+ <mml:mrow>
+ <mml:mi>i</mml:mi>
+ <mml:mo mml:stretchy="false">ω</mml:mo>
+ <mml:mi>n</mml:mi>
+ </mml:mrow>
+ </mml:msup>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">)</mml:mo>
+ </mml:mrow>
+ </mml:mrow>
+ <mml:annotation mml:encoding="StarMath 5.0"> S_{xy}(%omega)={1}
+ over {N} (sum from{n=0} to{N-1} x(n)e^{-i %omega n}) ( sum
+ from{n=0} to{N-1} bar y(n)e^{i %omega n})
+ </mml:annotation>
+ </mml:semantics>
+ </mml:math>
+ </imagedata>
+ </imageobject>
+ </inlinemediaobject>
+ </para>
+ <para>The correlation method calculates the spectral estimate as the
+ Fourier transform of a modified estimate of the auto/cross correlation
+ function. This auto/cross correlation modified estimate consist of
+ repeatedly calculating estimates of the autocorrelation function from
+ overlapping sub-segments if the data, and then averaging these estimates
+ to obtain the result.
+ </para>
+ <para>The number of points of the window is
+ <literal>2*nlags-1.</literal>
+ </para>
+ <para>
+ For batch processing, the<literal> x</literal> and
+ <literal>y</literal> data may be read segment by segment using the
+ <literal>getx </literal>and <literal>gety</literal> user defined
+ functions. These functions have the following calling sequence:
+ </para>
+ <para>
+ <literal>xk=getx(ns,offset)</literal> and
+ <literal>yk=gety(ns,offset)</literal> where <literal>ns</literal> is the
+ segment size and <literal>offset</literal> is the index of the first
+ element of the segment in the full signal.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Warning</title>
+ <para>For Scilab version up to 5.0.2 the returned value was the modulus of the current one.</para>
+ </refsection>
+ <refsection>
+ <title>Reference</title>
+ <para>Oppenheim, A.V., and R.W. Schafer. Discrete-Time Signal Processing,
+ Upper Saddle River, NJ: Prentice-Hall, 1999
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+rand('normal');rand('seed',0);
+x=rand(1:1024-33+1);
+//make low-pass filter with eqfir
+nf=33;bedge=[0 .1;.125 .5];des=[1 0];wate=[1 1];
+h=eqfir(nf,bedge,des,wate);
+//filter white data to obtain colored data
+h1=[h 0*ones(1:max(size(x))-1)];
+x1=[x 0*ones(1:max(size(h))-1)];
+hf=fft(h1,-1); xf=fft(x1,-1);yf=hf.*xf;y=real(fft(yf,1));
+sm=cspect(100,200,'tr',y);
+smsize=max(size(sm));fr=(1:smsize)/smsize;
+plot(fr,log(sm))
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="pspect">pspect</link>
+ </member>
+ <member>
+ <link linkend="mese">mese</link>
+ </member>
+ <member>
+ <link linkend="corr">corr</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/spectral_estimation/czt.xml b/modules/signal_processing/help/en_US/spectral_estimation/czt.xml
new file mode 100755
index 000000000..50941c3cf
--- /dev/null
+++ b/modules/signal_processing/help/en_US/spectral_estimation/czt.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="czt">
+ <refnamediv>
+ <refname>czt</refname>
+ <refpurpose>chirp z-transform algorithm</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[czx]=czt(x,m,w,phi,a,theta)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>input data sequence</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>m</term>
+ <listitem>
+ <para>
+ czt is evaluated at <literal>m</literal> points in z-plane
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>w</term>
+ <listitem>
+ <para>magnitude multiplier</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>phi</term>
+ <listitem>
+ <para>phase increment</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>a</term>
+ <listitem>
+ <para>initial magnitude</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>theta</term>
+ <listitem>
+ <para>initial phase</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>czx</term>
+ <listitem>
+ <para>chirp z-transform output</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ chirp z-transform algorithm which calcultes the z-transform on a
+ spiral in the z-plane at the points
+ <literal>[a*exp(j*theta)][w^kexp(j*k*phi)] </literal> for
+ <literal>k=0,1,...,m-1</literal>.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+a=.7*exp(%i*%pi/6);
+[ffr,bds]=xgetech(); //preserve current context
+rect=[-1.2,-1.2*sqrt(2),1.2,1.2*sqrt(2)];
+t=2*%pi*(0:179)/179;xsetech([0,0,0.5,1]);
+plot2d(sin(t)',cos(t)',[2],"012",' ',rect)
+plot2d([0 real(a)]',[0 imag(a)]',[3],"000")
+xsegs([-1.0,0;1.0,0],[0,-1.0;0,1.0])
+w0=.93*exp(-%i*%pi/15);w=exp(-(0:9)*log(w0));z=a*w;
+zr=real(z);zi=imag(z);
+plot2d(zr',zi',[5],"000")
+xsetech([0.5,0,0.5,1]);
+plot2d(sin(t)',cos(t)',[2],"012",' ',rect)
+plot2d([0 real(a)]',[0 imag(a)]',[-1],"000")
+xsegs([-1.0,0;1.0,0],[0,-1.0;0,1.0])
+w0=w0/(.93*.93);w=exp(-(0:9)*log(w0));z=a*w;
+zr=real(z);zi=imag(z);
+plot2d(zr',zi',[5],"000")
+xsetech(ffr,bds); //restore context
+ ]]></programlisting>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/spectral_estimation/intdec.xml b/modules/signal_processing/help/en_US/spectral_estimation/intdec.xml
new file mode 100755
index 000000000..013504018
--- /dev/null
+++ b/modules/signal_processing/help/en_US/spectral_estimation/intdec.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="intdec">
+ <refnamediv>
+ <refname>intdec</refname>
+ <refpurpose>Changes sampling rate of a signal</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[y]=intdec(x,lom)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>input sampled signal</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>lom</term>
+ <listitem>
+ <para>
+ For a 1D signal this is a scalar which gives the rate change. For a 2D signal this is a 2-Vector of sampling rate changes <literal>lom</literal>=(col rate change,row rate change)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>Output sampled signal</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Changes the sampling rate of a 1D or 2D signal by the rates in lom
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+Fs1 = 10000;
+Fs2 = 14000;
+t1 = 0:1/Fs1:10;
+t2 = 0:1/Fs2:10;
+F0 = 500;
+u1 = sin(2*%pi*F0*t1);
+u2 = sin(2*%pi*F0*t2);
+u2b = intdec(u1, Fs2/Fs1)
+plot(u2b, u2);
+ ]]></programlisting>
+ <scilab:image>
+
+ Fs1 = 10000; Fs2 = 14000;
+ t1 = 0:1/Fs1:10; t2 = 0:1/Fs2:10;
+ F0 = 500;
+ u1 = sin(2*%pi*F0*t1); u2 = sin(2*%pi*F0*t2);
+ u2b = intdec(u1, Fs2/Fs1);
+ plot(u2b, u2);
+ </scilab:image>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/spectral_estimation/mese.xml b/modules/signal_processing/help/en_US/spectral_estimation/mese.xml
new file mode 100755
index 000000000..fad5aed3a
--- /dev/null
+++ b/modules/signal_processing/help/en_US/spectral_estimation/mese.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="mese">
+ <refnamediv>
+ <refname>mese</refname>
+ <refpurpose>maximum entropy spectral estimation</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[sm,fr]=mese(x [,npts]);</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>Input sampled data sequence</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>npts</term>
+ <listitem>
+ <para>
+ Optional parameter giving number of points of <literal>fr</literal> and <literal>sm</literal> (default is 256)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sm</term>
+ <listitem>
+ <para>
+ Samples of spectral estimate on the frequency grid <literal>fr</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fr</term>
+ <listitem>
+ <para>
+ npts equally spaced frequency samples in <literal>[0,.5)</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ Calculate the maximum entropy spectral estimate of <literal>x</literal>
+ </para>
+ </refsection>
+ <refsection>
+ <title>Sample</title>
+ <scilab:image>
+ rand("seed",12345),
+ y = (0:10);
+ x1 = sin(2*%pi*y/20);
+ x2 = sin(3.5*%pi*y/20);
+ w = .4*(rand(y)-.5*ones(y));
+ x = x1+2*x2+w;
+ [sm,fr1] = mese(x,10)
+ function [xm,fr] = bt(x)
+ xsize = max(size(x))
+ [xf,fr] = frmag(x,256)
+ xm = xf.*conj(xf)/xsize
+ endfunction
+ [xm,fr] = bt(x);
+ scf();
+ subplot(3,1,1);
+ plot(x);
+ subplot(3,1,2);
+ plot(fr1,sm)
+ subplot(3,1,3);
+ plot(fr,xm)
+ </scilab:image>
+ </refsection>
+
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+rand("seed",12345),
+y = (0:10);
+x1 = sin(2*%pi*y/20);
+x2 = sin(3.5*%pi*y/20);
+w = .4*(rand(y)-.5*ones(y));
+x = x1+2*x2+w;
+[sm,fr1] = mese(x,10)
+// Define macro which computes the
+// Blackman-Tukey periodogram
+function [xm,fr] = bt(x)
+ xsize = max(size(x))
+ [xf,fr] = frmag(x,256)
+ xm = xf.*conj(xf)/xsize
+endfunction
+[xm,fr] = bt(x);
+scf();
+subplot(3,1,1);
+plot(x);
+subplot(3,1,2);
+plot(fr1,sm)
+subplot(3,1,3);
+plot(fr,xm)
+ ]]></programlisting>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/spectral_estimation/pspect.xml b/modules/signal_processing/help/en_US/spectral_estimation/pspect.xml
new file mode 100755
index 000000000..4360b4151
--- /dev/null
+++ b/modules/signal_processing/help/en_US/spectral_estimation/pspect.xml
@@ -0,0 +1,359 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="pspect" xml:lang="en">
+ <refnamediv>
+ <refname>pspect</refname>
+ <refpurpose>two sided cross-spectral estimate between 2 discrete time signals using
+ the Welch's average periodogram method.
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ [sm [,cwp]]=pspect(sec_step,sec_leng,wtype,x [,y] [,wpar])
+ [sm [,cwp]]=pspect(sec_step,sec_leng,wtype,nx [,ny] [,wpar])
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>vector, the time-domain samples of the first signal.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>
+ vector, the time-domain samples of the second signal. If <literal>y</literal>
+ is omitted it is supposed to be equal to <literal>x</literal>
+ (auto-correlation). If it is present, it must have the same numer of
+ element than <literal>x</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>nx</term>
+ <listitem>
+ <para>
+ a scalar : the number of samples in the <literal>x</literal>
+ signal. In this case the segments of the <literal>x</literal> signal are loaded by a
+ user defined function named <literal>getx</literal> (see
+ below).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ny</term>
+ <listitem>
+ <para>a scalar : the number of samples in the
+ <literal>y</literal> signal. In this case the segments of
+ the y signal are loaded by a user defined function named
+ <literal>gety</literal> (see below). If present
+ <literal>ny</literal> must be equal to
+ <literal>nx</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sec_step</term>
+ <listitem>
+ <para>
+ offset of each data window. The overlap <literal>D
+ </literal>
+ is given by sec_leng -sec_step<literal>. if
+ sec_step==sec_leng/2
+ </literal>
+ 50% overlap is made. The
+ overlap
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sec_leng</term>
+ <listitem>
+ <para>Number of points of the window.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>wtype</term>
+ <listitem>
+ <para>The window type</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>'re'</literal>: rectangular
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>'tr'</literal>: triangular
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>'hm'</literal>: Hamming
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>'hn'</literal>: Hann
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>'kr'</literal>: Kaiser,in this case the wpar
+ argument must be given
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>'ch'</literal>: Chebyshev, in this case the wpar
+ argument must be given
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>wpar</term>
+ <listitem>
+ <para>
+ optional parameters for <literal>Kaiser and Chebyshev
+ windows:
+ </literal>
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ 'kr': <literal>wpar must be a strictly positive
+ number
+ </literal>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ 'ch': <literal>wpar</literal> must be a 2 element vector
+ <literal> [main_lobe_width,side_lobe_height]with
+ </literal>
+ <literal>0&lt;main_lobe_width&lt;.5</literal>, and
+ <literal>side_lobe_height&gt;0</literal>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sm</term>
+ <listitem>
+ <para>
+ Two sided power spectral estimate in the interval <literal>[0,1]</literal> of the
+ normalized frequencies. It is a row array with <literal>sec_len</literal>
+ elements . The array is real in case of auto-correlation and
+ complex in case of cross-correlation.
+ </para>
+ <para>The associated normalized frequencies array is
+ <literal>linspace(0,1,sec_len)</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cwp</term>
+ <listitem>
+ <para>unspecified Chebyshev window parameter in case of Chebyshev
+ windowing, or an empty matrix.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>Computes the cross-spectrum estimate of two signals
+ <literal>x</literal> and <literal>y</literal> if both are given and the
+ auto-spectral estimate of <literal>x</literal> otherwise. Spectral
+ estimate obtained using the modified periodogram method.
+ </para>
+ <para>
+ The cross spectrum of two signal <literal>x</literal> and <literal>y</literal> is defined to be
+ </para>
+ <para>
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata>
+ <mml:math>
+ <mml:semantics>
+ <mml:mrow>
+ <mml:msub>
+ <mml:mi>S</mml:mi>
+ <mml:mi mml:fontstyle="italic">xy</mml:mi>
+ </mml:msub>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">(</mml:mo>
+ <mml:mo mml:stretchy="false">ω</mml:mo>
+ <mml:mo mml:stretchy="false">)</mml:mo>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">=</mml:mo>
+ <mml:mfrac>
+ <mml:mn>1</mml:mn>
+ <mml:mi>N</mml:mi>
+ </mml:mfrac>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">(</mml:mo>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:munderover>
+ <mml:mo mml:stretchy="false">∑</mml:mo>
+ <mml:mrow>
+ <mml:mi>n</mml:mi>
+ <mml:mo mml:stretchy="false">=</mml:mo>
+ <mml:mn>0</mml:mn>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mi>N</mml:mi>
+ <mml:mo mml:stretchy="false">−</mml:mo>
+ <mml:mn>1</mml:mn>
+ </mml:mrow>
+ </mml:munderover>
+ <mml:mi>x</mml:mi>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">(</mml:mo>
+ <mml:mi>n</mml:mi>
+ <mml:mo mml:stretchy="false">)</mml:mo>
+ </mml:mrow>
+ <mml:msup>
+ <mml:mi>e</mml:mi>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">−</mml:mo>
+ <mml:mi>i</mml:mi>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">ω</mml:mo>
+ <mml:mi>n</mml:mi>
+ </mml:mrow>
+ </mml:msup>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">)</mml:mo>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">(</mml:mo>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:munderover>
+ <mml:mo mml:stretchy="false">∑</mml:mo>
+ <mml:mrow>
+ <mml:mi>n</mml:mi>
+ <mml:mo mml:stretchy="false">=</mml:mo>
+ <mml:mn>0</mml:mn>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mi>N</mml:mi>
+ <mml:mo mml:stretchy="false">−</mml:mo>
+ <mml:mn>1</mml:mn>
+ </mml:mrow>
+ </mml:munderover>
+ <mml:mover mml:accent="true">
+ <mml:mi>y</mml:mi>
+ <mml:mo mml:stretchy="false">ˉ</mml:mo>
+ </mml:mover>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">(</mml:mo>
+ <mml:mi>n</mml:mi>
+ <mml:mo mml:stretchy="false">)</mml:mo>
+ </mml:mrow>
+ <mml:msup>
+ <mml:mi>e</mml:mi>
+ <mml:mrow>
+ <mml:mi>i</mml:mi>
+ <mml:mo mml:stretchy="false">ω</mml:mo>
+ <mml:mi>n</mml:mi>
+ </mml:mrow>
+ </mml:msup>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">)</mml:mo>
+ </mml:mrow>
+ </mml:mrow>
+ <mml:annotation mml:encoding="StarMath 5.0"> S_{xy}(%omega)={1}
+ over {N} (sum from{n=0} to{N-1} x(n)e^{-i %omega n}) ( sum
+ from{n=0} to{N-1} bar y(n)e^{i %omega n})
+ </mml:annotation>
+ </mml:semantics>
+ </mml:math>
+ </imagedata>
+ </imageobject>
+ </inlinemediaobject>
+ </para>
+ <para>The modified periodogram method of spectral estimation repeatedly
+ calculates the periodogram of windowed sub-sections of the data containes
+ in <literal>x</literal> and <literal>y</literal> . These periodograms are
+ then averaged together and normalized by an appropriate constant to obtain
+ the final spectral estimate. It is the averaging process which reduces the
+ variance in the estimate.
+ </para>
+ <para>
+ For batch processing, the <literal>x</literal> and
+ <literal>y</literal> data may be read segment by segment using the
+ <literal>getx </literal>and <literal>gety</literal> user defined
+ functions. These functions have the following calling sequence:
+ </para>
+ <para>
+ <literal>xk=getx(ns,offset)</literal> and
+ <literal>yk=gety(ns,offset)</literal> where <literal>ns</literal> is the
+ segment size and <literal>offset</literal> is the index of the first
+ element of the segment in the full signal.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Reference</title>
+ <para>Oppenheim, A.V., and R.W. Schafer. Discrete-Time Signal Processing,
+ Upper Saddle River, NJ: Prentice-Hall, 1999
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+rand('normal');rand('seed',0);
+x=rand(1:1024-33+1);
+
+//make low-pass filter with eqfir
+nf=33;bedge=[0 .1;.125 .5];des=[1 0];wate=[1 1];
+h=eqfir(nf,bedge,des,wate);
+
+//filter white data to obtain colored data
+h1=[h 0*ones(1:max(size(x))-1)];
+x1=[x 0*ones(1:max(size(h))-1)];
+hf=fft(h1,-1); xf=fft(x1,-1);y=real(fft(hf.*xf,1));
+
+//plot magnitude of filter
+h2=[h 0*ones(1:968)];hf2=fft(h2,-1);hf2=real(hf2.*conj(hf2));
+hsize=max(size(hf2));fr=(1:hsize)/hsize;plot(fr,log(hf2));
+
+//pspect example
+sm=pspect(100,200,'tr',y);smsize=max(size(sm));fr=(1:smsize)/smsize;
+plot(fr,log(sm));
+rand('unif');
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="cspect">cspect</link>
+ </member>
+ <member>
+ <link linkend="pspect">pspect</link>
+ </member>
+ <member>
+ <link linkend="mese">mese</link>
+ </member>
+ <member>
+ <link linkend="window">window</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/transforms/CHAPTERS b/modules/signal_processing/help/en_US/transforms/CHAPTERS
new file mode 100755
index 000000000..a9603334d
--- /dev/null
+++ b/modules/signal_processing/help/en_US/transforms/CHAPTERS
@@ -0,0 +1,2 @@
+title = Transforms
+
diff --git a/modules/signal_processing/help/en_US/transforms/dct.xml b/modules/signal_processing/help/en_US/transforms/dct.xml
new file mode 100755
index 000000000..c7bac984a
--- /dev/null
+++ b/modules/signal_processing/help/en_US/transforms/dct.xml
@@ -0,0 +1,443 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 1997 - INRIA
+* Copyright (C) 2012 - Serge Steer - INRIA
+*
+* This file must be used under the terms of the CeCILL.
+* This source file is licensed as described in the file COPYING, which
+* you should have received as part of this distribution. The terms
+* are also available at
+* http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+*
+-->
+<refentry xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:db="http://docbook.org/ns/docbook"
+ xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="dct">
+ <refnamediv>
+ <refname>dct</refname>
+ <refpurpose>Discrete cosine transform.</refpurpose>
+ </refnamediv>
+ <refnamediv xml:id="idct">
+ <refname>idct</refname>
+ <refpurpose>Inverse discrete cosine transform.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>X=dct(A [,sign] [,option])
+ X=dct(A,sign,selection [,option])
+ X=dct(A,sign,dims,incr [,option])
+ X=idct(A [,option])
+ X=idct(A,selection [,option])
+ X=idct(A,dims,incr [,option])
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>a real or complex vector or real or complex array
+ (vector, matrix or N-D array.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>X</term>
+ <listitem>
+ a real or complex array with same shape as <literal>A</literal>.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sign</term>
+ <listitem>
+ an integer. with possible values <literal>1</literal> or
+ <literal>-1</literal>. Select direct or inverse
+ transform. The default value is <literal>-1</literal>
+ (direct transform).
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>selection</term>
+ <listitem>
+ a vector containing index on <literal>A</literal> array
+ dimensions. See the Description part for details.
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>dims</term>
+ <listitem>
+ a vector of positive numbers with integer values, or a
+ vector of positive integers. See the Description part for details.
+ <para>
+ Each element must be a divisor
+ of the total number of elements of <literal>A</literal>.
+ </para>
+ <para>
+ The product of the elements must be less than the total
+ number of elements of <literal>A</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>incr</term>
+ <listitem>
+ a vector of positive numbers with integer values, or a
+ vector of positive integers. See the Description part for
+ details.
+ <para>
+ <literal>incr</literal> must have the same number of
+ elements than <literal>dims</literal>.
+ </para>
+ <para>
+ Each element must be a divisor of the total number of
+ elements of <literal>A</literal>.
+ </para>
+ <para>
+ The <literal>incr</literal> elements must be in strictly
+ increasing order.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>option</term>
+ <listitem>
+ a character string. with possible values
+ <literal>"dct1"</literal>, <literal>"dct2"</literal>,
+ <literal>"dct4"</literal> or <literal>"dct"</literal> for
+ direct transform and <literal>"dct1"</literal>,
+ <literal>"dct3"</literal>, <literal>"dct4"</literal> or
+ <literal>"idct"</literal> for inverse transform. The
+ default value is <literal>"dct"</literal> for direct
+ transform and <literal>"idct"</literal> for inverse
+ transform. See the Description part for details.
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <refsection>
+ <title>Transform description</title>
+ <para>
+ This function realizes direct or
+ inverse 1-D or N-D Discrete Cosine Transforms with shift depending on the <literal>option</literal> parameter value. For a 1-D array <latex>$A$</latex> of length <latex>$n$</latex>:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ For <literal>"dct1"</literal> the function computes the unnormalized DCT-I transform:
+ </para>
+ <para>
+ <latex>
+ $X(k) = A(1) + (-1)^{k-1}A(n) + 2\sum_{i=2}^{n-1} {A(i)
+ \cos\frac{\pi (i -1)(k-1)}{n-1}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ For <literal>"dct2"</literal> the function computes the unnormalized DCT-II transform:
+ </para>
+ <para>
+ <latex>
+ $X(k) = 2 \sum_{i=1}^{n} {A(i) \cos\frac{\pi (i
+ -1/2)(k-1)}{n}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ For <literal>"dct3"</literal> the function computes the unnormalized DCT-III transform:
+ </para>
+ <para>
+ <latex>
+ $X(k) = A(1) + 2 \sum_{i=2}^{n} {A(i) \cos\frac{\pi (i
+ -1)(k-1/2)}{n}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+
+
+ <listitem>
+ <para>
+ For <literal>"dct4"</literal> the function computes the unnormalized DCT-IV transform:
+ </para>
+ <para>
+ <latex>
+ $X(k) = 2 \sum_{i=1}^{n} {A(i) \cos\frac{\pi (i
+ -1/2)(k-1/2)}{n}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ For <literal>"dct"</literal> the function computes the normalized DCT-II transform:
+ </para>
+ <para>
+ <latex>
+ $X(k) = \omega(k)
+ \sum_{i=1}^n {A(i) \cos\frac{\pi (i
+ -1/2)(k-1)}{n}}, k=1\ldots n \quad\text{with }
+ \omega(1)=\frac{1}{\sqrt{n}} \quad\text{and }
+ \omega(k)=\sqrt{\frac{2}{n}} , k>1$
+ </latex>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ For <literal>"idct"</literal> the function computes the normalized DCT-III transform:
+ </para>
+ <para>
+ <latex>
+ $X(i) = \sum_{k=1}^n {\omega(k) A(k) \cos\frac{\pi (i
+ -1/2)(k-1)}{n}}, k=1\ldots n \quad\text{with }
+ \omega(1)=\frac{1}{\sqrt{n}} \quad\text{and }
+ \omega(k)=\sqrt{\frac{2}{n}} , k>1$
+ </latex>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ The multi-dimensional DCT transforms , in general, are the
+ separable product of the given 1d transform along each dimension
+ of the array. For unnormalized transforms , computing the
+ forward followed by the backward/inverse multi-dimensional
+ transform will result in the original array scaled by the
+ product of the dimension sizes.
+ </para>
+ <para>
+ The normalized multi-dimensional DCT transform of an array
+ <literal>A</literal> with dimensions <latex>$n_1, n_2, \ldots, n_p$</latex>
+ is given by
+ </para>
+ <para>
+ <latex>
+ $\begin{array} \\X(k_1, \dots, k_p) =
+ \omega_1(k_1) \ldots \omega_p(k_p)
+ \sum_{i_1=1}^{n_1} \ldots \sum_{i_p=1}^{n_p}
+ {A(i_1,\ldots ,i_p) \cos\frac{\pi (2 i_1
+ -1)(k_1-1)}{2 n} \ldots \cos\frac{\pi (2 i_p
+ -1)(k_p-1)}{2 n}}, k_j=1\ldots n_j\\
+ \text{with}\\
+ \omega_j(1)=\frac{1}{\sqrt{n_j}}\\
+ \omega_j(k)=\sqrt{\frac{2}{n_j}} , k>1
+ \end{array}$
+ </latex>
+ </para>
+ <para>
+ The normalized multi-dimensional DCT inverse transform of an
+ array <literal>A</literal> with dimensions <latex>$n_1, n_2, \ldots, n_p$</latex>is given by
+ </para>
+ <para>
+ <latex>
+ $\begin{array} \\X(i_1, \dots, i_p) = \sum_{k_1=1}^{n_1}
+ \ldots \sum_{k_p=1}^{n_p} {\omega_1(i_1) \ldots \omega_p(i_p)
+ A(k_1,\ldots ,k_p) \cos\frac{\pi (2 k_1 -1)(i_1-1)}{2 n}
+ \ldots \cos\frac{\pi (2 k_p -1)(i_p-1)}{2 n}}, i_j=1\ldots
+ n_j\\
+ \text{with}\\
+ \omega_j(1)=\frac{1}{\sqrt{n_j}}\\
+ \omega_j(k)=\sqrt{\frac{2}{n_j}} , k>1 \end{array}$
+ </latex>
+ </para>
+
+ </refsection>
+ <refsection>
+ <title>Syntax description</title>
+ <variablelist>
+ <varlistentry>
+ <term>Short syntax </term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>direct</term>
+ <listitem>
+ <para>
+ <literal>X=dct(A,-1 [,option])</literal> or
+ <literal>X=dct(A [,option])</literal> gives a direct
+ transform according to the option value. The default is normalized DCT-II direct transform.
+ </para>
+ <para>
+ If <literal>A</literal> is a vector (only one
+ dimension greater than 1) a 1-d transform is performed
+ and in the other cases a n-dimensional transform is
+ done.
+ </para>
+ <para>
+ (the <literal>-1</literal> argument refers
+ to the sign of the exponent..., NOT to
+ "inverse"),
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>inverse</term>
+ <listitem>
+ <para>
+ <literal>X=dct(A,1 [,option])</literal> or
+ <literal>X=idct(A [,option])</literal>performs the inverse
+ transform.
+ </para>
+ <para>
+ If <literal>A</literal> is a vector (only one
+ dimension greater than 1) a 1-d transform is performed
+ and in the other cases a n-dimensional transform is
+ done.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Long syntax for DCT along specified dimensions</term>
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>X=dct(A,sign,selection [,option])</literal>
+ allows to perform efficiently all direct or inverse
+ dct of the "slices" of <literal>A</literal> along
+ selected dimensions.
+ </para>
+ <para>
+ For example, if <literal>A</literal> is a 3-D array
+ <literal>X=dct(A,-1,2)</literal> is equivalent to:
+ </para>
+ <programlisting role=""><![CDATA[
+ for i1=1:size(A,1),
+ for i3=1:size(A,3),
+ X(i1,:,i3)=dct(A(i1,:,i3),-1);
+ end
+ end
+ ]]></programlisting>
+ <para>
+ and <literal>X=dct(A,-1,[1 3])</literal> is equivalent to:
+ </para>
+ <programlisting role=""><![CDATA[
+ for i2=1:size(A,2),
+ X(:,i2,:)=dct(A(:,i2,:),-1);
+ end
+ ]]></programlisting>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>X=dct(A,sign,dims,incr)</literal> is
+ an old syntax that also allows to perform all direct or
+ inverse dct of the slices of <literal>A</literal> along
+ selected dimensions.
+ </para>
+ <para>
+ For example, if <literal>A</literal> is an array with
+ <literal>n1*n2*n3</literal> elements
+ <literal>X=dct(A,-1,n1,1)</literal> is equivalent to
+ <literal>X=dct(matrix(A,[n1,n2,n3]),-1,1)</literal>.
+ and <literal>X=dct(A,-1,[n1 n3],[1 n1*n2])</literal>
+ is equivalent to
+ <literal>X=dct(matrix(A,[n1,n2,n3]),-1,[1,3])</literal>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Optimizing dct</title>
+ <para>
+ Remark: function automatically stores his last parameters in
+ memory to re-use it in a second time. This improves greatly
+ the time computation when consecutives calls (with same
+ parameters) are performed.
+ </para>
+ <para>
+ It is possible to go further in dct optimization using
+ <link linkend="get_fftw_wisdom">get_fftw_wisdom</link>, <link
+ linkend="set_fftw_wisdom">set_fftw_wisdom</link> functions.
+ </para>
+ </refsection>
+ </refsection>
+ <refsection>
+ <title>Algorithms</title>
+ <para>
+ This function uses the <ulink url="http://www.fftw.org/">fftw3</ulink> library.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <para>1-D dct</para>
+ <programlisting role="example"><![CDATA[
+ //Frequency components of a signal
+ //----------------------------------
+ // build a sampled at 1000hz containing pure frequencies
+ // at 50 and 70 Hz
+ sample_rate=1000;
+ t = 0:1/sample_rate:0.6;
+ N=size(t,'*'); //number of samples
+ s=sin(2*%pi*50*t)+sin(2*%pi*70*t+%pi/4)+grand(1,N,'nor',0,1);
+ d=dct(s);
+ // zero low energy components
+ d(abs(d)<1)=0;
+ size(find(y1<>0),'*') //only 30 non zero coefficients out of 600
+ clf;plot(s,'b'),plot(dct(d,1),'r')
+
+ ]]></programlisting>
+
+ <para>2-D dct</para>
+ <programlisting role="example"><![CDATA[
+ function [z]=__milk_drop(x,y)
+ sq=x.^2+y.^2;
+ z= exp( exp(-sq).*(exp(cos(sq).^20)+8*sin(sq).^20+2*sin(2*(sq)).^8) );
+ endfunction
+ x=-2:0.1:2;
+ A=eval3d(__milk_drop,x,x);
+ d=dct(A);
+ d(abs(d)<1)=0;
+ size(find(d<>0),'*')
+ A1=dct(d,1);
+ clf();fig=gcf();fig.color_map=graycolormap(128);
+ subplot(121),grayplot(x,x,A)
+ subplot(122),grayplot(x,x,A1)
+ ]]></programlisting>
+
+
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="fft">fft</link>
+ </member>
+ <member>
+ <link linkend="dst">dst</link>
+ </member>
+ <member>
+ <link linkend="fftw_flags">fftw_flags</link>
+ </member>
+ <member>
+ <link linkend="get_fftw_wisdom">get_fftw_wisdom</link>
+ </member>
+ <member>
+ <link linkend="set_fftw_wisdom">set_fftw_wisdom</link>
+ </member>
+ <member>
+ <link linkend="fftw_forget_wisdom">fftw_forget_wisdom</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Bibliography</title>
+ <para>
+ Matteo Frigo and Steven G. Johnson, "FFTW Documentation" <ulink
+ url="http://www.fftw.org/#documentation">http://www.fftw.org/#documentation</ulink>
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/transforms/dst.xml b/modules/signal_processing/help/en_US/transforms/dst.xml
new file mode 100755
index 000000000..d70a0b863
--- /dev/null
+++ b/modules/signal_processing/help/en_US/transforms/dst.xml
@@ -0,0 +1,363 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 1997 - INRIA
+* Copyright (C) 2012 - Serge Steer - INRIA
+*
+* This file must be used under the terms of the CeCILL.
+* This source file is licensed as described in the file COPYING, which
+* you should have received as part of this distribution. The terms
+* are also available at
+* http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+*
+-->
+<refentry xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:db="http://docbook.org/ns/docbook"
+ xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="dst">
+ <refnamediv>
+ <refname>dst</refname>
+ <refpurpose>Discrete sine transform.</refpurpose>
+ </refnamediv>
+ <refnamediv xml:id="idst">
+ <refname>idst</refname>
+ <refpurpose>Inverse discrete sine transform.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>X=dst(A [,sign] [,option])
+ X=dst(A,sign,selection [,option])
+ X=dst(A,sign,dims,incr [,option])
+ X=idst(A [,option])
+ X=idst(A,selection [,option])
+ X=idst(A,dims,incr [,option])
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>a real or complex vector or real or complex array
+ (vector, matrix or N-D array.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>X</term>
+ <listitem>
+ a real or complex array with same shape as <literal>A</literal>.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sign</term>
+ <listitem>
+ an integer. with possible values <literal>1</literal> or
+ <literal>-1</literal>. Select direct or inverse
+ transform. The default value is <literal>-1</literal>
+ (direct transform).
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>selection</term>
+ <listitem>
+ a vector containing index on <literal>A</literal> array
+ dimensions. See the Description part for details.
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>dims</term>
+ <listitem>
+ a vector of positive numbers with integer values, or a
+ vector of positive integers. See the Description part for details.
+ <para>
+ Each element must be a divisor
+ of the total number of elements of <literal>A</literal>.
+ </para>
+ <para>
+ The product of the elements must be less than the total
+ number of elements of <literal>A</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>incr</term>
+ <listitem>
+ a vector of positive numbers with integer values, or a
+ vector of positive integers. See the Description part for
+ details.
+ <para>
+ <literal>incr</literal> must have the same number of
+ elements than <literal>dims</literal>.
+ </para>
+ <para>
+ Each element must be a divisor of the total number of
+ elements of <literal>A</literal>.
+ </para>
+ <para>
+ The <literal>incr</literal> elements must be in strictly
+ increasing order.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>option</term>
+ <listitem>
+ a character string. with possible values
+ <literal>"dst1"</literal>, <literal>"dst2"</literal>,
+ <literal>"dst4"</literal> or <literal>"dst"</literal> for
+ direct transform and <literal>"dst1"</literal>,
+ <literal>"dst3"</literal>, <literal>"dst4"</literal> or
+ <literal>"idst"</literal> for inverse transform. The
+ default value is <literal>"dst"</literal> for direct
+ transform and <literal>"idst"</literal> for inverse
+ transform. See the Description part for details.
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <refsection>
+ <title>Transform description</title>
+ <para>
+ This function realizes direct or
+ inverse 1-D or N-D Discrete Sine Transforms with shift depending on the <literal>option</literal> parameter value:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ For <literal>"dst1"</literal> the function computes the unnormalized DST-I transform. The 1-D transform of a vector of length <latex>$n$</latex> is:
+ </para>
+ <para>
+ <latex>
+ $X(k) = 2 \sum_{i=1}^{n} {A(i) \cos\frac{\pi i k}{n+1}},
+ k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ For <literal>"dst2"</literal> the function computes the unnormalized DST-II transform. the 1-D transform of a vector of length <latex>$n$</latex> is:
+ </para>
+ <para>
+ <latex>
+ $X(k) = 2 \sum_{i=1}^{n} {A(i) \cos\frac{\pi ( i
+ -1/2) k}{n}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ For <literal>"dst3"</literal> the function computes the unnormalized DST-III transform. The 1-D transform of a vector of length <latex>$n$</latex> is:
+ </para>
+ <para>
+ <latex>
+ $X(k) = (-1)^{k-1}A(n) + 2 \sum_{i=1}^{n-1} {A(i) \cos\frac{\pi i (k-1/2)}{n}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+
+
+ <listitem>
+ <para>
+ For <literal>"dst4"</literal> the function computes the unnormalized DST-IV transform. the 1-D transform of a vector of length <latex>$n$</latex> is:
+ </para>
+ <para>
+ <latex>
+ $X(k) = 2 \sum_{i=1}^{n} {A(i) \cos\frac{\pi (i
+ -1/2)(k-1/2)}{n}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ For <literal>"dst"</literal> the function computes the normalized DST-I transform. The 1-D transform of a vector of length <latex>$n$</latex> is:
+ </para>
+ <para>
+ <latex>
+ $X(k) = \sum_{i=1}^n {A(i) \cos\frac{\pi i k} {n+1}},
+ k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ For <literal>"idst"</literal> the function computes the normalized DST-I transform. The 1-D transform of a vector of length <latex>$n$</latex> is:
+ </para>
+ <para>
+ <latex>
+ $X(k) = \frac{2}{n+1} \sum_{i=1}^n {A(i) \cos\frac{\pi i k}
+ {n+1}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ The multi-dimensional DST transforms , in general, are the
+ separable product of the given 1d transform along each dimension
+ of the array. For unnormalized transforms , computing the
+ forward followed by the backward/inverse multi-dimensional
+ transform will result in the original array scaled by the
+ product of the dimension sizes.
+ </para>
+
+ </refsection>
+ <refsection>
+ <title>Syntax description</title>
+ <variablelist>
+ <varlistentry>
+ <term>Short syntax </term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>direct</term>
+ <listitem>
+ <para>
+ <literal>X=dst(A,-1 [,option])</literal> or
+ <literal>X=dst(A [,option])</literal> gives a direct
+ transform according to the <literal>option</literal> value. The default is normalized DST-I direct transform.
+ </para>
+ <para>
+ If <literal>A</literal> is a vector (only one
+ dimension greater than 1) a 1-d transform is performed
+ and in the other cases a n-dimensional transform is
+ done.
+ </para>
+ <para>
+ (the <literal>-1</literal> argument refers
+ to the sign of the exponent..., NOT to
+ "inverse"),
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>inverse</term>
+ <listitem>
+ <para>
+ <literal>X=dst(A,1 [,option])</literal> or
+ <literal>X=idst(A [,option])</literal>performs the inverse
+ transform.
+ </para>
+ <para>
+ If <literal>A</literal> is a vector (only one
+ dimension greater than 1) a 1-d transform is performed
+ and in the other cases a n-dimensional transform is
+ done.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Long syntax for DST along specified dimensions</term>
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>X=dst(A,sign,selection [,option])</literal>
+ allows to perform efficiently all direct or inverse
+ dst of the "slices" of <literal>A</literal> along
+ selected dimensions.
+ </para>
+ <para>
+ For example, if <literal>A</literal> is a 3-D array
+ <literal>X=dst(A,-1,2)</literal> is equivalent to:
+ </para>
+ <programlisting role=""><![CDATA[
+ for i1=1:size(A,1),
+ for i3=1:size(A,3),
+ X(i1,:,i3)=dst(A(i1,:,i3),-1);
+ end
+ end
+ ]]></programlisting>
+ <para>
+ and <literal>X=dst(A,-1,[1 3])</literal> is equivalent to:
+ </para>
+ <programlisting role=""><![CDATA[
+ for i2=1:size(A,2),
+ X(:,i2,:)=dst(A(:,i2,:),-1);
+ end
+ ]]></programlisting>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>X=dst(A,sign,dims,incr)</literal> is
+ an old syntax that also allows to perform all direct or
+ inverse dst of the slices of <literal>A</literal> along
+ selected dimensions.
+ </para>
+ <para>
+ For example, if <literal>A</literal> is an array with
+ <literal>n1*n2*n3</literal> elements
+ <literal>X=dst(A,-1,n1,1)</literal> is equivalent to
+ <literal>X=dst(matrix(A,[n1,n2,n3]),-1,1)</literal>.
+ and <literal>X=dst(A,-1,[n1 n3],[1 n1*n2])</literal>
+ is equivalent to
+ <literal>X=dst(matrix(A,[n1,n2,n3]),-1,[1,3])</literal>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Optimizing dst</title>
+ <para>
+ Remark: fftw function automatically stores his last
+ parameters in memory to re-use it in a second time. This
+ improves greatly the time computation when consecutives
+ calls (with same parameters) are performed.
+ </para>
+ <para>
+ It is possible to go further in dst optimization using
+ <link linkend="get_fftw_wisdom">get_fftw_wisdom</link>, <link
+ linkend="set_fftw_wisdom">set_fftw_wisdom</link> functions.
+ </para>
+ </refsection>
+ </refsection>
+ <refsection>
+ <title>Algorithms</title>
+ <para>
+ This function is based on the <ulink url="http://www.fftw.org/">fftw3</ulink> library.
+ </para>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="fft">fft</link>
+ </member>
+ <member>
+ <link linkend="dct">dct</link>
+ </member>
+ <member>
+ <link linkend="fftw_flags">fftw_flags</link>
+ </member>
+ <member>
+ <link linkend="get_fftw_wisdom">get_fftw_wisdom</link>
+ </member>
+ <member>
+ <link linkend="set_fftw_wisdom">set_fftw_wisdom</link>
+ </member>
+ <member>
+ <link linkend="fftw_forget_wisdom">fftw_forget_wisdom</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Bibliography</title>
+ <para>
+ Matteo Frigo and Steven G. Johnson, "FFTW Documentation" <ulink
+ url="http://www.fftw.org/#documentation">http://www.fftw.org/#documentation</ulink>
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/transforms/fft.xml b/modules/signal_processing/help/en_US/transforms/fft.xml
new file mode 100755
index 000000000..b49fd6e74
--- /dev/null
+++ b/modules/signal_processing/help/en_US/transforms/fft.xml
@@ -0,0 +1,426 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 1997 - INRIA
+ * Copyright (C) 2012 - Serge Steer - INRIA
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:db="http://docbook.org/ns/docbook"
+ xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="fft">
+ <refnamediv>
+ <refname>fft</refname>
+ <refpurpose>fast Fourier transform.</refpurpose>
+ </refnamediv>
+ <refnamediv xml:id="ifft">
+ <refname>ifft</refname>
+ <refpurpose>fast Fourier transform.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>X=fft(A [,sign] [,option])
+ X=fft(A,sign,selection [,option])
+ X=fft(A,sign,dims,incr [,option] )
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>a real or complex vector or real or complex array
+ (vector, matrix or N-D array).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>X</term>
+ <listitem>
+ a real or complex array with same shape as <literal>A</literal>.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sign</term>
+ <listitem>
+ an integer. with possible values <literal>1</literal> or
+ <literal>-1</literal>. Select direct or inverse
+ transform. The default value is <literal>-1</literal>
+ (direct transform).
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>option</term>
+ <listitem>
+ a character string. with possible values
+ <literal>"symmetric"</literal> or
+ <literal>"nonsymmetric"</literal>. Indicates if
+ <literal>A</literal> is symmetric or not. If this argument
+ is omitted the algorithm automatically determines if
+ <literal>A</literal> is symmetric or not. See the
+ Description part for details.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>selection</term>
+ <listitem>
+ a vector containing index on <literal>A</literal> array
+ dimensions. See the Description part for details.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>dims</term>
+ <listitem>
+ a vector of positive numbers with integer values, or a
+ vector of positive integers. See the Description part for details.
+ <para>
+ Each element must be a divisor
+ of the total number of elements of <literal>A</literal>.
+ </para>
+ <para>
+ The product of the elements must be less than the total
+ number of elements of <literal>A</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>incr</term>
+ <listitem>
+ a vector of positive numbers with integer values, or a
+ vector of positive integers. See the Description part for
+ details.
+ <para>
+ <literal>incr</literal> must have the same number of
+ elements than <literal>dims</literal>.
+ </para>
+ <para>
+ Each element must be a divisor of the total number of
+ elements of <literal>A</literal>.
+ </para>
+ <para>
+ The <literal>incr</literal> elements must be in strictly
+ increasing order.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title> This function realizes direct or
+ inverse 1-D or N-D Discrete Fourier Transforms.
+ <variablelist>
+ <varlistentry>
+ <term>Short syntax </term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>direct</term>
+ <listitem>
+ <literal>X=fft(A,-1 [,option])</literal> or
+ <literal>X=fft(A [,option])</literal> gives a direct
+ transform.
+ <variablelist>
+ <varlistentry>
+ <term>single variate</term>
+ <listitem>
+ <para>
+ If <literal>A</literal> is a vector a
+ single variate direct FFT is computed that
+ is:
+ </para>
+ <para>
+ <latex>
+ $x(k) = \sum_{m=1}^n {a(m)*e^{-\frac{2i*\pi}{n}(m-1) (k-1)}$
+ </latex>
+ </para>
+ <para>
+ (the <literal>-1</literal> argument refers
+ to the sign of the exponent..., NOT to
+ "inverse"),
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>multivariate</term>
+ <listitem>
+ <para>
+ If <literal>A</literal> is a matrix or
+ a multidimensional array a multivariate direct
+ FFT is performed.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>inverse</term>
+ <listitem>
+ <para>
+ <literal>X=fft(A,1)</literal> or
+ <literal>X=ifft(A)</literal>performs the inverse
+ normalized transform, such
+ that<literal>A==ifft(fft(A))</literal>.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>single variate</term>
+ <listitem>
+ If <literal>A</literal> is a vector a single
+ variate inverse FFT is computed
+ <para>
+ <latex>
+ $x(k) = \sum_{m=1}^n
+ {a(m)*e^{+\frac{2i*\pi}{n} (m-1) (k-1)}$
+ </latex>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>multivariate</term>
+ <listitem>
+ <para>
+ If <literal>a</literal> is a matrix or or
+ a multidimensional array a multivariate inverse
+ FFT is performed.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Long syntax for FFT along specified dimensions</term>
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>X=fft(A,sign,selection [,option])</literal>
+ allows to perform efficiently all direct or inverse
+ fft of the "slices" of <literal>A</literal> along
+ selected dimensions.
+ </para>
+ <para>
+ For example, if <literal>A</literal> is a 3-D array
+ <literal>X=fft(A,-1,2)</literal> is equivalent to:
+ </para>
+ <programlisting role=""><![CDATA[
+for i1=1:size(A,1)
+ for i3=1:size(A,3)
+ X(i1,:,i3)=fft(A(i1,:,i3),-1);
+ end
+end
+ ]]></programlisting>
+ <para>
+ and <literal>X=fft(A,-1,[1 3])</literal> is equivalent to:
+ </para>
+ <programlisting role=""><![CDATA[
+for i2=1:size(A,2)
+ X(:,i2,:)=fft(A(:,i2,:),-1);
+end
+ ]]></programlisting>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>X=fft(A,sign,dims,incr [,option])</literal> is
+ a previous syntax that also allows to perform all direct or
+ inverse fft of the slices of <literal>A</literal> along
+ selected dimensions.
+ </para>
+ <para>
+ For example, if <literal>A</literal> is an array with
+ <literal>n1*n2*n3</literal> elements
+ <literal>X=fft(A,-1,n1,1)</literal> is equivalent to
+ <literal>X=fft(matrix(A,[n1,n2,n3]),-1,1)</literal>.
+ and <literal>X=fft(A,-1,[n1 n3],[1 n1*n2])</literal>
+ is equivalent to
+ <literal>X=fft(matrix(A,[n1,n2,n3]),-1,[1,3])</literal>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Using option argument</term> This argument can be used
+ to inform the fft algorithm about the symmetry of
+ <literal>A</literal> or of all its "slices". An N-D array
+ <literal>B</literal> with dimensions <literal>n1</literal>,
+ ..., <literal>np</literal> is conjugate symmetric for the fft
+ if and only if <literal>B==conj(B([1 n1:-1:2],[1
+ n2:-1:2],...,[1 np:-1:2]))
+ </literal>
+ .In such a case the
+ result <literal>X</literal> is real and an efficient specific
+ algorithm can be used.
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <term>"symmetric"</term> that value causes fft to treat
+ <literal>A</literal> or all its "slices" conjugate
+ symmetric. This option is useful to avoid automatic
+ determination of symmetry or if <literal>A</literal> or
+ all its "slices" are not exactly symmetric because of
+ round-off errors.
+ </listitem>
+ <listitem>
+ <term>"nonsymmetric"</term> that value causes fft not to
+ take care of symmetry. This option is useful to avoid
+ automatic determination of symmetry.
+ </listitem>
+ <listitem>
+ <term>unspecified</term> If the option is omitted the
+ fft algorithm automatically checks for exact symmetry.
+ </listitem>
+
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Optimizing fft</term>
+ <listitem>
+ <para>
+ Remark: fftw function automatically stores his last
+ parameters in memory to re-use it in a second time. This
+ improves greatly the time computation when consecutives
+ calls (with same parameters) are performed.
+ </para>
+ <para>
+ It is possible to go further in fft optimization using
+ <link linkend="get_fftw_wisdom">get_fftw_wisdom</link>, <link
+ linkend="set_fftw_wisdom">set_fftw_wisdom</link> functions.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Algorithms</title>
+ <para>
+ This function uses the <ulink url="http://www.fftw.org/">fftw3</ulink> library.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <para>1-D fft</para>
+ <programlisting role="example"><![CDATA[
+//Frequency components of a signal
+//----------------------------------
+// build a noised signal sampled at 1000hz containing pure frequencies
+// at 50 and 70 Hz
+sample_rate=1000;
+t = 0:1/sample_rate:0.6;
+N=size(t,'*'); //number of samples
+s=sin(2*%pi*50*t)+sin(2*%pi*70*t+%pi/4)+grand(1,N,'nor',0,1);
+
+y=fft(s);
+
+//s is real so the fft response is conjugate symmetric and we retain only the first N/2 points
+f=sample_rate*(0:(N/2))/N; //associated frequency vector
+n=size(f,'*')
+clf()
+plot(f,abs(y(1:n)))
+ ]]></programlisting>
+ <para>2-D fft</para>
+ <programlisting role="example"><![CDATA[
+----------------------------------
+A = zeros(256,256);
+A(5:24,13:17) = 1;
+X = fftshift(fft(A));
+set(gcf(),"color_map",jetcolormap(128));
+clf;grayplot(0:255,0:255,abs(X)')
+ ]]></programlisting>
+ <para>mupliple fft</para>
+ <programlisting role="example"><![CDATA[
+//simple case, 3 1-D fft at a time
+N=2048;
+t=linspace(0,10,2048);
+A=[2*sin(2*%pi*3*t)+ sin(2*%pi*3.5*t)
+ 10*sin(2*%pi*8*t)
+ sin(2*%pi*0.5*t)+4*sin(2*%pi*0.8*t)];
+X=fft(A,-1,2);
+
+fs=1/(t(2)-t(1));
+f=fs*(0:(N/2))/N; //associated frequency vector
+clf;plot(f(1:100)',abs(X(:,1:100))')
+legend(["3 and 3.5 Hz","8 Hz","0.5 and 0.8 Hz"],"in_upper_left")
+
+// 45 3-D fft at a time
+Dims=[5 4 9 5 6];
+A=matrix(rand(1,prod(Dims)),Dims);
+
+y=fft(A,-1,[2 4 5]);
+
+//equivalent (but less efficient code)
+y1=zeros(A);
+for i1=1:Dims(1)
+ for i3=1:Dims(3)
+ ind=list(i1,:,i3,:,:);
+ y1(ind(:))=fft(A(ind(:)),-1);
+ end
+end
+ ]]></programlisting>
+ <programlisting role="example"><![CDATA[
+//Using explicit formula for 1-D discrete Fourier transform
+//------------------------------------------------
+function xf=DFT(x,flag);
+ n=size(x,'*');
+ //Compute the n by n Fourier matrix
+ if flag==1 then,//backward transformation
+ am=exp(2*%pi*%i*(0:n-1)'*(0:n-1)/n);
+ else //forward transformation
+ am=exp(-2*%pi*%i*(0:n-1)'*(0:n-1)/n);
+ end
+ xf=am*matrix(x,n,1);//dft
+ xf=matrix(xf,size(x));//reshape
+ if flag==1 then,xf=xf/n;end
+endfunction
+
+//Comparison with the fast Fourier algorithm
+a=rand(1,1000);
+norm(DFT(a,1) - fft(a,1))
+norm(DFT(a,-1) - fft(a,-1))
+
+timer();DFT(a,-1);timer()
+timer();fft(a,-1);timer()
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="corr">corr</link>
+ </member>
+ <member>
+ <link linkend="fftw_flags">fftw_flags</link>
+ </member>
+ <member>
+ <link linkend="get_fftw_wisdom">get_fftw_wisdom</link>
+ </member>
+ <member>
+ <link linkend="set_fftw_wisdom">set_fftw_wisdom</link>
+ </member>
+ <member>
+ <link linkend="fftw_forget_wisdom">fftw_forget_wisdom</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Bibliography</title>
+ <para>
+ Matteo Frigo and Steven G. Johnson, "FFTW Documentation" <ulink url="http://www.fftw.org/#documentation">http://www.fftw.org/#documentation</ulink>
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/transforms/hank.xml b/modules/signal_processing/help/en_US/transforms/hank.xml
new file mode 100755
index 000000000..a8dfdeda6
--- /dev/null
+++ b/modules/signal_processing/help/en_US/transforms/hank.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="hank" xml:lang="en">
+ <refnamediv>
+ <refname>hank</refname>
+ <refpurpose>covariance to hankel matrix</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>hk =hank(m, n, cov)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>m</term>
+ <listitem>
+ <para>number of bloc-rows</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>number of bloc-columns</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cov</term>
+ <listitem>
+ <para>sequence of covariances; it must be given as :[R0 R1
+ R2...Rk]
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>hk</term>
+ <listitem>
+ <para>computed hankel matrix</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>This function builds the hankel matrix of size
+ <literal>(m*d,n*d)</literal> from the covariance sequence of a vector
+ process. More precisely:
+ </para>
+ <para>
+ This function builds the hankel matrix of size <literal>(m*d,n*d)</literal>
+ from the covariance sequence of a vector process. More precisely:
+ </para>
+ <para>
+ <latex><![CDATA[ \mathrm{hank}(m, n, [R_0, R_1, R_2, \ldots])=m\mbox{ blocks}\left\{\vphantom{\begin{matrix}R_0\cr R_1\cr R_2\cr\vdots\end{matrix}}\right.\left(\vphantom{\begin{matrix}R_0\cr R_1\cr R_2\cr\vdots\end{matrix}}\right.\overbrace{\begin{matrix}R_0 & R_1 & R_2 & \cdots\cr R_1 & R_2 & \cdots &\cr R_2 & \cdots &&\cr \vdots&&&\cr\end{matrix}}^{n \mbox{ blocks}}\left.\vphantom{\begin{matrix}R_0\cr R_1\cr R_2\cr\vdots\end{matrix}}\right) ]]></latex>
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example">//Example of how to use the hank macro for
+ //building a Hankel matrix from multidimensional
+ //data (covariance or Markov parameters e.g.)
+ //
+ //This is used e.g. in the solution of normal equations
+ //by classical identification methods (Instrumental Variables e.g.)
+ //
+ //1)let's generate the multidimensional data under the form :
+ // C=[c_0 c_1 c_2 .... c_n]
+ //where each bloc c_k is a d-dimensional matrix (e.g. the k-th correlation
+ //of a d-dimensional stochastic process X(t) [c_k = E(X(t) X'(t+k)], '
+ //being the transposition in scilab)
+ //
+ //we take here d=2 and n=64
+
+ c = rand(2, 2 * 64)
+
+ //generate the hankel matrix H (with 4 bloc-rows and 5 bloc-columns)
+ //from the data in c
+
+ H = hank(4, 5, c);
+ </programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="toeplitz">toeplitz</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/transforms/hilb.xml b/modules/signal_processing/help/en_US/transforms/hilb.xml
new file mode 100755
index 000000000..ce8366c0c
--- /dev/null
+++ b/modules/signal_processing/help/en_US/transforms/hilb.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="hilb">
+ <refnamediv>
+ <refname>hilb</refname>
+ <refpurpose>FIR approximation to a Hilbert transform filter</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>xh=hilb(n [,wtype [,par]])</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>n</term>
+ <listitem>
+ <para>odd integer : number of points in filter</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>wtype</term>
+ <listitem>
+ <para>
+ string : window type <literal>('re','tr','hn','hm','kr','ch')</literal> (default <literal>='re'</literal>)
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>par</term>
+ <listitem>
+ <para>
+ window parameter for <literal>wtype='kr' or 'ch'</literal> default <literal>par=[0 0]</literal> see the function window for more help
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>xh</term>
+ <listitem>
+ <para>Hilbert transform</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>Returns the first n points of an FIR approximation to a Hilbert transform filter centred around the origin.</para>
+ <para> The FIR filter is designed by appropraitely windowing the ideal impulse response
+
+ <literal>h(n)=(2/(n*pi))*(sin(n*pi/2))^2</literal> for <literal>n</literal> not equal 0 and <literal>h(0)=0</literal>.
+ </para>
+ <para>
+ An approximation to an analytic signal generator can be built by
+ designing an FIR (Finite Impulse Response) filter approximation to
+ the Hilbert transform operator. The analytic signal can then be computed
+ by adding the appropriately time-shifted real signal to the imaginary
+ part generated by the Hilbert filter.
+ </para>
+ </refsection>
+ <refsection>
+ <title>References</title>
+ <para>
+ <literal>
+ <ulink url="http://ieeexplore.ieee.org/iel4/78/7823/00330385.pdf?tp=&amp;arnumber=330385&amp;isnumber=7823">http://ieeexplore.ieee.org/iel4/78/7823/00330385.pdf?tp=&amp;arnumber=330385&amp;isnumber=7823</ulink>
+ </literal>
+ </para>
+ <para>
+ A. Reilly, G. Frazer, and B. Boashash, "Analytic signal generation Tips and traps", IEEE Trans. Signal Processing, vol. 42,
+ pp.3241-3245, Nov. 1994.
+ </para>
+ </refsection>
+ <refsection role="see also">
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="window">window</link>
+ </member>
+ <member>
+ <link linkend="hilbert">hilbert</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+plot(hilb(51))
+ ]]></programlisting>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/wfir_gui.xml b/modules/signal_processing/help/en_US/wfir_gui.xml
new file mode 100755
index 000000000..ddbabc484
--- /dev/null
+++ b/modules/signal_processing/help/en_US/wfir_gui.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en_US" xml:id="wfir_gui">
+ <refnamediv>
+ <refname>wfir_gui</refname>
+ <refpurpose>Graphical user interface that can be used to interactively design wfir filters</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[ftype,forder,cfreq,wtype,fpar] = wfir_gui()</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term>ftype</term>
+ <listitem>
+ <para>
+ a string: the selected filter type.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>forder</term>
+ <listitem>
+ <para>
+ a scalar with positive integer value: the selected filter order
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cfreq</term>
+ <listitem>
+ <para>
+ a 2 vector: the cut-off frequencies in normalized frequencies
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>wtype</term>
+ <listitem>
+ <para>
+ a string: the selected window type.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fpar</term>
+ <listitem>
+ <para>
+ 2-vector of window parameters.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ This function proposes a graphical user interface to allow user
+ interactively select the design parameteres of windowed
+ finite impluse response filters (see <link linkend="wfir">wfir</link>). It is called by
+ <literal>wfir</literal> when no input arguments are given.
+ </para>
+ <para>
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="../images/wfir_gui_dialog.png"/>
+ </imageobject>
+ </inlinemediaobject>
+ </para>
+ <para>
+ If requested, the frequency response of the filter is
+ automatically updated according to the parameters set in the
+ dialog window:
+ </para>
+ <para>
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="../images/wfir_gui_view.svg"/>
+ </imageobject>
+ </inlinemediaobject>
+ </para>
+ </refsection>
+ <refsection>
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="wfir">wfir</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Used Functions</title>
+ <para>
+ Based on <link linkend="uicontrol">uicontrol</link> functions.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+wfir_gui()
+ ]]></programlisting>
+ </refsection>
+
+ <refsection>
+ <title>History</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>Function wfir_gui is redesigned from scratch to provide a better user experience.</revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/xcorr.xml b/modules/signal_processing/help/en_US/xcorr.xml
new file mode 100755
index 000000000..204afe285
--- /dev/null
+++ b/modules/signal_processing/help/en_US/xcorr.xml
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+This file is part Scilab
+Copyright (C) 2012 - INRIA - Serge Steer
+This file must be used under the terms of the CeCILL.
+This source file is licensed as described in the file COPYING, which
+you should have received as part of this distribution. The terms
+are also available at
+http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+-->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="xcorr" xml:lang="en">
+ <refnamediv>
+ <refname>xcorr</refname>
+ <refpurpose>Computes discrete auto or cross correlation</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[c [,lagindex]] = xcorr(x [,maxlags [,scaling]])
+ [c [,lagindex]] = xcorr(x,y [,maxlags [,scaling]])
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>a vector of real or complex floating point numbers.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>a vector of real or complex floating point numbers. The
+ default value is <literal>x</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>maxlags</term>
+ <listitem>
+ <para>a scalar with integer value greater than 1. The default value
+ is <literal>n</literal>. Where <literal>n</literal> is the maximum
+ of the <literal>x</literal> and <literal>y</literal> vector
+ length.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>scaling</term>
+ <listitem>
+ <para>a character string with possible value:
+ <literal>"biased"</literal>, <literal>"unbiased"</literal>,
+ <literal>"coeff"</literal>, <literal>"none"</literal>. The default
+ value is <literal>"none"</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>c</term>
+ <listitem>
+ <para>a vector of real or complex floating point numbers with same
+ orientation as <literal>x</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>lagindex</term>
+ <listitem>
+ <para>a row vector, containing the lags index corresponding to the
+ <literal>c</literal> values.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <itemizedlist>
+ <listitem>
+ <literal>c=xcorr(x)</literal>
+
+ computes the un-normalized discrete auto correlation:
+
+ <latex>{\begin{matrix}C_k = \sum_{i=1}^{n-k}
+ {x_{i+k}*x^{*}_i}, k \geq 0 \\ C_k = C^{*}_{-k}, k \leq
+ -1\end{matrix}.$
+ </latex>
+
+ and return in
+
+ <literal>c</literal>
+
+ the sequence of auto correlation lags
+
+ <latex>$C_k,k=-n:n$</latex>
+
+ with
+
+ <literal>n</literal>
+
+ is the length of
+
+ <literal>x</literal>
+
+
+ </listitem>
+ <listitem>
+ <literal>xcorr(x,y)</literal>
+
+ computes the un-normalized discrete cross correlation:
+
+ <latex>{\begin{matrix}C_k = \sum_{i=1}^{n-k}
+ {x_{i+k}*y^{*}_i}, k \geq 0 \\ C_k = C^{*}_{-k}, k \leq
+ -1\end{matrix}}.$
+ </latex>
+
+ and return in
+
+ <literal>c</literal>
+
+ the sequence of auto correlation lags
+
+ <latex>$C_k,k=-n:n$</latex>
+
+ with
+
+ <literal>n</literal>
+
+ is the maximum of
+
+ <literal>x</literal>
+
+ and
+
+ <literal>y</literal>
+
+ length's.
+ </listitem>
+ </itemizedlist>
+ <para>
+ If the <literal>maxlags</literal> argument is given
+ <literal>xcorr</literal> returns in <literal>c</literal> the sequence of
+ auto correlation lags <latex>$C_k,k=-maxlags:maxlags$</latex>. If
+ <literal>maxlags</literal> is greater than <literal>length(x)</literal>,
+ the first and last values of <literal>c</literal> are zero.
+ </para>
+ <para>
+ The <literal>scaling</literal> argument decribes how
+ <latex>C(k)</latex> is normalized before being returned in
+ <literal>c</literal>:
+ <itemizedlist>
+ <listitem>
+ <term>"biased"</term>:<literal>c=</literal><latex>$C$</latex><literal>/n</literal>.
+ </listitem>
+ <listitem>
+ <term>"unbiased"</term>:<literal>c=</literal><latex>$C$</latex><literal>./(n-(-maxlags:maxlags))</literal>.
+ </listitem>
+ <listitem>
+ <term>"coeff"</term>:<literal>c=</literal><latex>$C$</latex><literal>/(norm(x)*norm(y))</literal>.
+ </listitem>
+ </itemizedlist>
+ </para>
+ </refsection>
+ <refsection>
+ <title>Remark</title>
+
+ The
+
+ <link linkend="corr">corr</link>
+
+ function computes the "biased" covariance of
+
+ <literal>x</literal>
+
+ and
+
+ <literal>y</literal>
+
+ and only return in
+
+ <literal>c</literal>
+
+ the sequence of auto correlation lags
+
+ <latex>$C_k,k \geq 0$</latex>
+
+ .
+ </refsection>
+ <refsection>
+ <refsection>
+ <title>Method</title> This function computes
+ <latex>$C$</latex> using
+ <literal>ifft(fft(x).*conj(fft(y)))</literal>.
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example">t = linspace(0, 100, 2000);
+ y = 0.8 * sin(t) + 0.8 * sin(2 * t);
+ [c, ind] = xcorr(y, "biased");
+ plot(ind, c)
+ </programlisting>
+ <scilab:image>
+ t = linspace(0, 100, 2000);
+ y = 0.8 * sin(t) + 0.8 * sin(2 * t);
+ [c, ind] = xcorr(y, "biased");
+ plot(ind, c)
+ </scilab:image>
+ </refsection>
+ <refsection>
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="xcov">xcov</link>
+ </member>
+ <member>
+ <link linkend="corr">corr</link>
+ </member>
+ <member>
+ <link linkend="fft">fft</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Authors</title>
+ <simplelist type="vert">
+ <member>Serge Steer, INRIA</member>
+ </simplelist>
+ </refsection>
+ <title>Used Functions</title>
+ <para>
+ <link linkend="fft">fft</link>
+ </para>
+ </refsection>
+ <refsection>
+ <title>History</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>xcorr added.</revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/en_US/xcov.xml b/modules/signal_processing/help/en_US/xcov.xml
new file mode 100755
index 000000000..462b8f6cc
--- /dev/null
+++ b/modules/signal_processing/help/en_US/xcov.xml
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+This file is part Scilab
+Copyright (C) 2012 - INRIA - Serge Steer
+This file must be used under the terms of the CeCILL.
+This source file is licensed as described in the file COPYING, which
+you should have received as part of this distribution. The terms
+are also available at
+http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+-->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="xcov" xml:lang="en">
+ <refnamediv>
+ <refname>xcov</refname>
+ <refpurpose>Computes discrete auto or cross covariance</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>[c [,lagindex]] = xcov(x [,maxlags [,scaling]])
+ [c [,lagindex]] = xcov(x,y [,maxlags [,scaling]])
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Parameters</title>
+ <variablelist>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>a vector of real or complex floating point numbers.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>y</term>
+ <listitem>
+ <para>a vector of real or complex floating point numbers. The
+ default value is <literal>x</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>maxlags</term>
+ <listitem>
+ <para>a scalar with integer value greater than 1. The default value
+ is <literal>n</literal>. Where <literal>n</literal> is the maximum
+ of the <literal>x</literal> and <literal>y</literal> vector
+ length.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>scaling</term>
+ <listitem>
+ <para>a character string with possible value:
+ <literal>"biased"</literal>, <literal>"unbiased"</literal>,
+ <literal>"coeff"</literal>, <literal>"none"</literal>. The default
+ value is <literal>"none"</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>c</term>
+ <listitem>
+ <para>a vector of real or complex floating point numbers with same
+ orientation as <literal>x</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>lagindex</term>
+ <listitem>
+ <para>a row vector, containing the lags index corresponding to the
+ <literal>c</literal> values.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <itemizedlist>
+ <listitem>
+ <literal>c=xcov(x)</literal>
+
+ computes the un-normalized discrete covariance:
+
+ <latex>{\begin{matrix}C_k = \sum_{i=0}^{n-k-1}
+ {(x_{i+k}-\mu_x})({x_i-\mu_x})^{*} , k \geq 0
+ \mu_x=\sum_{i=0}^{n-1}{x_i} C_k = C^{*}_{-k}, k \leq
+ -1\end{matrix}.}$
+ </latex>
+
+ and return in
+
+ <literal>c</literal>
+
+ the sequence of covariance lags
+
+ <latex>$C_k,k=-n:n$</latex>
+
+ with
+
+ <literal>n</literal>
+
+ is the length of
+
+ <literal>x</literal>
+
+
+ </listitem>
+ <listitem>
+ <literal>xcov(x,y)</literal>
+
+ computes the un-normalized discrete cross covariance:
+
+ <latex>${\begin{matrix}C_k = \sum_{i=1}^{n-k}
+ {(x_{i+k}-\mu_x})*({y_i}-\mu_y)^{*}, k \geq 0
+ \mu_x=\sum_{i=0}^{n-1}{x_i} \mu_y=\sum_{i=0}^{n-1}{y_i} C_k =
+ C^{*}_{-k}, k \leq -1\end{matrix}.}$
+ </latex>
+
+ and return in
+
+ <literal>c</literal>
+
+ the sequence of cross covariance lags
+
+ <latex>$C_k,k=-n:n$</latex>
+
+ with
+
+ <literal>n</literal>
+
+ is the maximum of
+
+ <literal>x</literal>
+
+ and
+
+ <literal>y</literal>
+
+ length's.
+ </listitem>
+ </itemizedlist>
+ <para>
+ If the <literal>maxlags</literal> argument is given
+ <literal>xcov</literal> returns in <literal>c</literal> the sequence of
+ covariance lags <latex>$C_k,k=-maxlags:maxlags$</latex>. If
+ <literal>maxlags</literal> is greater than <literal>length(x)</literal>,
+ the first and last values of <literal>c</literal> are zero.
+ </para>
+ <para>
+ The <literal>scaling</literal> argument decribes how
+ <latex>C(k)</latex> is normalized before being returned in
+ <literal>c</literal>:
+ <itemizedlist>
+ <listitem>
+ <term>"biased"</term>:<literal>c=</literal><latex>$C$</latex><literal>/n</literal>.
+ </listitem>
+ <listitem>
+ <term>"unbiased"</term>:<literal>c=</literal><latex>$C$</latex><literal>./(n-(-maxlags:maxlags))</literal>.
+ </listitem>
+ <listitem>
+ <term>"coeff"</term>:<literal>c=</literal><latex>$C$</latex><literal>/(norm(x)*norm(y))</literal>.
+ </listitem>
+ </itemizedlist>
+ </para>
+ </refsection>
+ <refsection>
+ <title>Remark</title>
+
+ The
+
+ <link linkend="corr">corr</link>
+
+ function computes the "biased" covariance of
+
+ <literal>x</literal>
+
+ and
+
+ <literal>y</literal>
+
+ and only return in
+
+ <literal>c</literal>
+
+ the sequence of covariance lags
+
+ <latex>$C_k,k \geq 0$</latex>
+
+ .
+ </refsection>
+ <refsection>
+ <refsection>
+ <title>Method</title> This function computes
+ <latex>$C$</latex> using
+ <literal>xcorr(x-mean(x),y-mean(y),...)</literal>.
+ </refsection>
+ <refsection>
+ <title>Examples</title>
+ <programlisting role="example">t = linspace(0, 100, 2000);
+ y = 0.8 * sin(t) + 0.8 * sin(2 * t);
+ [c, ind] = xcov(y, "biased");
+ plot(ind, c)
+ </programlisting>
+ <scilab:image>
+ t = linspace(0, 100, 2000);
+ y = 0.8 * sin(t) + 0.8 * sin(2 * t);
+ [c, ind] = xcov(y, "biased");
+ plot(ind, c)
+ </scilab:image>
+ </refsection>
+ <refsection>
+ <title>See Also</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="xcorr">xcorr</link>
+ </member>
+ <member>
+ <link linkend="corr">corr</link>
+ </member>
+ <member>
+ <link linkend="fft">fft</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Authors</title>
+ <simplelist type="vert">
+ <member>Serge Steer, INRIA</member>
+ </simplelist>
+ </refsection>
+ <title>Used Functions</title>
+ <para>
+ <link linkend="xcorr">xcorr</link>
+ </para>
+ </refsection>
+ <refsection>
+ <title>History</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>xcov added.</revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/fr_FR/addchapter.sce b/modules/signal_processing/help/fr_FR/addchapter.sce
new file mode 100755
index 000000000..419cfd0e1
--- /dev/null
+++ b/modules/signal_processing/help/fr_FR/addchapter.sce
@@ -0,0 +1,11 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+add_help_chapter("Traitement du Signal",SCI+"/modules/signal_processing/help/fr_FR",%T);
+
diff --git a/modules/signal_processing/help/fr_FR/ifftshift.xml b/modules/signal_processing/help/fr_FR/ifftshift.xml
new file mode 100755
index 000000000..caeb65c0a
--- /dev/null
+++ b/modules/signal_processing/help/fr_FR/ifftshift.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.
+ * The terms are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="ifftshift">
+ <refnamediv>
+ <refname>ifftshift</refname>
+ <refpurpose>inverse de fftshift</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Séquence d'appel</title>
+ <synopsis>y=ifftshift(x)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Paramètres</title>
+ <variablelist>
+ <varlistentry>
+ <term>x, y</term>
+ <listitem>
+ <para>vecteurs ou matrices réel(le)s ou complexes.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title>
+ <para>
+ <literal>ifftshift(x)</literal> échange les moitiés gauche et droite du vecteur <literal>x</literal>.
+ </para>
+ <para>
+ Pour les matrices, <literal>ifftshift(x)</literal> échange le premier quadrant avec le troisième et le second avec le quatrième.
+ </para>
+ <para>
+ Si <literal>x</literal> est un tableau multidimensionnel,
+ <literal>ifftshift(x)</literal> échange les "mi-espaces" de <literal>x</literal> selon chaque dimension.
+ </para>
+ </refsection>
+ <refsection>
+ <title>Exemples</title>
+ <para>
+ Exemple #1:
+ </para>
+ <programlisting role="example"><![CDATA[
+// Création d'un signal
+t = 0:0.1:1000;
+x = 3*sin(t)+8*sin(3*t)+0.5*sin(5*t)+3*rand(t);
+// Calcul de sa fft
+y = fft(x, -1);
+// Inversion du résultat
+shift = fftshift(y);
+// Inversion du résultat inversé
+invShift = ifftshift(shift);
+// On vérifie qu'on a bien recréé le résultat de départ
+and(y == invShift)
+ ]]></programlisting>
+ <para>
+ Example #2:
+ </para>
+ <programlisting role="example"><![CDATA[
+// Création d'une image 2D
+t = 0:0.1:30;
+x = 3*sin(t')*cos(2*t)+8*sin(3*t')*sin(5*t)+..
+ 0.5*sin(5*t')*sin(5*t)+3*rand(t')*rand(t);
+// Calcul de la fft
+y = fft(x,-1);
+
+// Inversion du résultat
+shift = fftshift(y);
+// Inversion du résultat inversé
+invShift = ifftshift(shift);
+// On vérifie qu'on a bien recréé le résultat de départ
+and(y == invShift)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>Voir aussi</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="fftshift">fftshift</link>
+ </member>
+ <member>
+ <link linkend="fft">fft</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/fr_FR/transforms/fft.xml b/modules/signal_processing/help/fr_FR/transforms/fft.xml
new file mode 100755
index 000000000..73b9394e0
--- /dev/null
+++ b/modules/signal_processing/help/fr_FR/transforms/fft.xml
@@ -0,0 +1,473 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 1997 - INRIA
+ * Copyright (C) 2012 - Serge Steer - INRIA
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:db="http://docbook.org/ns/docbook"
+ xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="fft">
+ <refnamediv>
+ <refname>fft</refname>
+ <refpurpose>Transformée de Fourier discrète rapide.</refpurpose>
+ </refnamediv>
+ <refnamediv xml:id="ifft">
+ <refname>ifft</refname>
+ <refpurpose>Transformée de Fourier discrète rapide inverse.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Séquence d'appel</title>
+ <synopsis>X=fft(A [,sign] [,option])
+ X=fft(A,sign,selection [,option])
+ X=fft(A,sign,dims,incr [,option] )
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>Arguments</title>
+ <variablelist>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>un tableau de nombres réels ou complexes (vecteur,
+ matrice, ou tableau N-dimensionnel).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>X</term>
+ <listitem>
+ <para>un tableau de nombres réels ou complexes ayant les
+ mêmes dimensions que <literal>A</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sign</term>
+ <listitem>
+ un entier. qui peut prendre les valeurs <literal>1</literal>
+ ou <literal>-1</literal>. Détermine le sens de la
+ transformation. La valeur par défaut est
+ <literal>-1</literal> (transformée directe).
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>option</term>
+ <listitem>
+ une chaîne de caratères. qui peut prendre les valeurs
+ <literal>"symmetric"</literal> ou
+ <literal>"nonsymmetric"</literal>. Permet d'indiquer à
+ l'algorithme si <literal>A</literal> est symmétrique ou
+ non. Si cet argument est omis l'algorithme determine
+ automatiquement si <literal>A</literal> est symmétrique ou
+ non. Voir la partie "Description" pour plus de détails.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>selection</term>
+ <listitem>
+ un vecteur contenant des index sur les dimensions de
+ <literal>A</literal>. Voir la partie "Description" pour plus
+ de détails.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>dims</term>
+ <listitem>
+ <para>
+ un vecteur de nombres positifs à valeurs entières, ou un
+ vecteur d'entiers positifs. Voir la partie "Description"
+ pour plus de détails.
+ </para>
+ <para>
+ Chaque élément doit être un diviseur du nombre total
+ d'éléments de <literal>A</literal>.
+ </para>
+ <para>
+ Le produit des éléments de <literal>dims</literal> doit
+ être strictement inférieur au nombre total d'éléments de
+ <literal>A</literal>.
+ </para>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>incr</term>
+ <listitem>
+ <para>
+ un vecteur de nombres positifs à valeurs entières, ou un
+ vecteur d'entiers positifs. Voir la partie "Description"
+ pour plus de détails.
+ </para>
+ <para>
+ Le nombre d'éléments de <literal>incr</literal> doit être
+ égal au nombre d'éléments de <literal>dims</literal>.
+ </para>
+ <para>
+ Chaque élément doit être un diviseur du nombre total
+ d'éléments de <literal>A</literal>.
+ </para>
+ <para>
+ Les éléments de <literal>incr</literal> doivent être en
+ ordre strictement croissant.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Description</title> Cette fonction calcule la transformée
+ de Fourier discrete directe ou inverse, mono ou multi
+ dimensionnelle
+ <variablelist>
+ <varlistentry>
+ <term>Syntaxe courte</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>direct</term>
+ <listitem>
+ <literal>X=fft(A,-1 [,option])</literal> ou
+ <literal>X=fft(A [,option])</literal> calcule la
+ transformée de Fourier discrète directe
+ de <literal>A</literal>
+ <variablelist>
+ <varlistentry>
+ <term>monovariable</term>
+ <listitem>
+ <para>
+ Si <literal>A</literal> est un vecteur
+ <literal>x=fft(a,-1)</literal> ou
+ <literal>x=fft(a)</literal> calcule une
+ transformée monovariable, c'est à dire:
+ </para>
+ <para>
+ <latex>
+ $x(k) = \sum_{m=1}^n {a(m)*e^{-\frac{2i*\pi}{n}(m-1) (k-1)}$
+ </latex>
+ </para>
+
+ <para>
+ A noter: (l'argument <literal>-1</literal>
+ argument de la fonction
+ <literal>fft</literal> représente le signe
+ de l'exposant de l'exponentielle.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>multivariable</term>
+ <listitem>
+ <para>
+ Si <literal>A</literal> est une matrice, ou un
+ tableau multi-diemnsionnel,
+ <literal>X=fft(A,-1)</literal> ou
+ <literal>X=fft(A)</literal> calcule la
+ transformée de Fourier discrète directe
+ multivariable de <literal>A</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>inverse</term>
+ <listitem>
+ <para>
+ <literal>X=fft(A,1)</literal> or
+ <literal>X=ifft(A)</literal> calcule la
+ transformée inverse normalisée, telle que
+ <literal>A==ifft(fft(A))</literal>.
+ </para>
+ <variablelist>
+ <varlistentry>
+ <term>mono-variable</term>
+
+ <listitem>
+ <para>
+ Si <literal>A</literal> est un vecteur
+ <literal>X=fft(A,+1)</literal> ou
+ <literal>X=ifft(A)</literal> calcule une
+ transformée monovariable inverse, c'est à
+ dire:
+ </para>
+ <para>
+ <latex>
+ $x(k) = \sum_{m=1}^n
+ {a(m)*e^{+\frac{2i*\pi}{n} (m-1) (k-1)}$
+ </latex>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>multi variable</term>
+ <listitem>
+ <para>
+ <literal>X=fft(A,+1)</literal> ou
+ <literal>X=ifft(A)</literal> calcule la
+ transformée de Fourier discrète inverse
+ multivariable de <literal>A</literal>
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Syntaxe longue pour la FFT mutidimensionnelle</term>
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>X=fft(A,sign,selection [,option])</literal>
+ permet de calculer efficacement les transformées directes
+ ou inverses de toutes les "tranches" de
+ <literal>A</literal> correspondant à la selection de
+ dimensions.
+ </para>
+ <para>
+ Par exemple si, <literal>A</literal> est un tableau 3-D,
+ <literal>X=fft(A,-1,2)</literal> est équivalent à:
+ </para>
+ <programlisting role=""><![CDATA[
+ for i1=1:size(A,1)
+ for i3=1:size(A,3)
+ X(i1,:,i3)=fft(A(i1,:,i3),-1);
+ end
+ end
+ ]]></programlisting>
+ <para>
+ et <literal>X=fft(A,-1,[1 3])</literal> est équivalent à:
+ </para>
+ <programlisting role=""><![CDATA[
+ for i2=1:size(A,2)
+ X(:,i2,:)=fft(A(:,i2,:),-1);
+ end
+ ]]></programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>X=fft(A,sign,dims,incr [,option])</literal>
+ est une syntaxe ancienne qui permet aussi de
+ calculer efficacement les transformées directes ou
+ inverses de toutes les "tranches" de
+ <literal>A</literal> La sélection des "tranches" se
+ faisant par la donnée des dimensions et des incréments
+ associés à chacune des dimensions. Avec cette syntaxe
+ les dimensions effectives de <literal>A</literal> ne
+ sont pas prises en compte.
+ </para>
+ <para>
+ Par example si <literal>A</literal> est un tableau ayant
+ <literal>n1*n2*n3</literal> éléments
+ <literal>X=fft(A,-1,n1,1)</literal> est équivalent à
+ <literal>X=fft(matrix(A,[n1,n2,n3]),-1,1)</literal>.
+ et <literal>X=fft(A,-1,[n1 n3],[1 n1*n2])</literal>
+ est équivalent à
+ <literal>X=fft(matrix(A,[n1,n2,n3]),-1,[1,3])</literal>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>utilisation de l'argument option</term> Cet argument
+ peut être utilisé pour informer l'algorithme de fft au sujet
+ de la symétrie de <literal>A</literal> ou de toutes ses
+ "tranches". Un tableau multi-dimensionnel <literal>B</literal>
+ qui a pour dimensions <literal>n1</literal>, ...,
+ <literal>np</literal> est symétrique conjugué pour la fft si
+ et seulement si <literal>B==conj(B([1 n1:-1:2],[1
+ n2:-1:2],...,[1 np:-1:2]))
+ </literal>
+ .Dans un tel cas le
+ résultat de la fft est réel et un algorithme spécifique
+ peut-être utilisé pour amélioer l'éfficacité et réduire le
+ coût mémoire.
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <term>"symmetric"</term> Cette valeur indique à
+ l'algorithme de considérer que <literal>A</literal> ou
+ toutes ses "tranches" est symétrique conjugué. Cette
+ option est utile pour éviter le surcoùt de la
+ détermination automatique de la symétrie et pour gérer
+ les cas où <literal>A</literal> n'est pas exactement
+ symmétrique du fait par exemple d'erreurs d'arrondis.
+ </listitem>
+ <listitem>
+ <term>"nonsymmetric"</term> Cette valeur force
+ l'algorithme à ne pas prendre en compte une éventuelle
+ symétrie.
+ </listitem>
+ <listitem>
+ <term>non spécifié</term> Si l'argument
+ <literal>option</literal> est omis l'algorithme va
+ réaliser automatiquement un test de symmétrie exacte.
+ </listitem>
+
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Optimisation de l'efficacité de la fft</term>
+ <listitem>
+ <para>
+ Remarque: la fonction <literal>fft</literal> sauve
+ automatiquement des paramêtres en mémoire
+ (<literal>wisdom</literal>) pour accélérer les calculs de
+ fft suivants correspondants aux mêmes dimensions et mêmes
+ options.
+ </para>
+ <para>
+ Les fonctions <link
+ linkend="get_fftw_wisdom">get_fftw_wisdom</link>, <link
+ linkend="set_fftw_wisdom">set_fftw_wisdom</link>
+ permettent de récupérer et recharger ces paramètres pour
+ amélioer l'efficacité de calcul de fft lorsque l'on
+ alterne plusieurs types de fft.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>Algorithmes</title>
+ <para>
+ Cette fonction est basée sur la bibliothèque <ulink
+ url="http://www.fftw.org/">fftw3</ulink>.
+ </para>
+
+ </refsection>
+
+ <refsection>
+ <title>Examples</title>
+ <para>1-D fft</para>
+ <programlisting role="example"><![CDATA[
+//Composantes fréquentielles d'un signal
+//----------------------------------
+// Construction d'un signal bruité échantilloné à 1000hz
+// contenant deux fréquences pures à 50 et 70 Hz.
+sample_rate=1000;
+t = 0:1/sample_rate:0.6;
+N=size(t,'*'); //nombre d'échantillons
+s=sin(2*%pi*50*t)+sin(2*%pi*70*t+%pi/4)+grand(1,N,'nor',0,1);
+
+y=fft(s);
+//y est symétrique, on ne garde que N/2 points
+f=sample_rate*(0:(N/2))/N; //vecteur de fréquences associé
+n=size(f,'*')
+clf()
+plot(f,abs(y(1:n)))
+ ]]></programlisting>
+
+ <para>2-D fft</para>
+ <programlisting role="example"><![CDATA[
+----------------------------------
+A = zeros(256,256);
+A(5:24,13:17) = 1;
+X = fftshift(fft(A));
+set(gcf(),"color_map",jetcolormap(128));
+clf;grayplot(0:255,0:255,abs(X)')
+ ]]></programlisting>
+ <para>mupliple fft</para>
+ <programlisting role="example"><![CDATA[
+//simple case, 3 1-D fft at a time
+N=2048;
+t=linspace(0,10,2048);
+A=[2*sin(2*%pi*3*t)+ sin(2*%pi*3.5*t)
+ 10*sin(2*%pi*8*t)
+ sin(2*%pi*0.5*t)+4*sin(2*%pi*0.8*t)];
+X=fft(A,-1,2);
+
+fs=1/(t(2)-t(1));
+f=fs*(0:(N/2))/N; //associated frequency vector
+clf;plot(f(1:100)',abs(X(:,1:100))')
+legend(["3 and 3.5 Hz","8 Hz","0.5 and 0.8 Hz"],"in_upper_left")
+
+// 45 3-D fft at a time
+Dims=[5 4 9 5 6];
+A=matrix(rand(1,prod(Dims)),Dims);
+
+y=fft(A,-1,[2 4 5]);
+
+//equivalent (but less efficient code)
+y1=zeros(A);
+for i1=1:Dims(1)
+ for i3=1:Dims(3)
+ ind=list(i1,:,i3,:,:);
+ y1(ind(:))=fft(A(ind(:)),-1);
+ end
+end
+ ]]></programlisting>
+
+ <programlisting role="example"><![CDATA[
+//Définition directe de la transformée de Fourier discrete
+//--------------------------------------------------------
+function xf=DFT(x,flag);
+ n=size(x,'*');
+ //Calcul de la matrice de Fourier (n by n !)
+ if flag==1 then,//transformation inverse
+ am=exp(2*%pi*%i*(0:n-1)'*(0:n-1)/n);
+ else //transformation directe
+ am=exp(-2*%pi*%i*(0:n-1)'*(0:n-1)/n);
+ end
+ xf=am*matrix(x,n,1);//dft
+ xf=matrix(xf,size(x));//mise en formz
+ if flag==1 then,xf=xf/n;end
+endfunction
+
+//Comparaison avec l'algorithme de la transformée rapide:
+a=rand(1,1000);
+norm(DFT(a,1) - fft(a,1))
+norm(DFT(a,-1) - fft(a,-1))
+
+timer();DFT(a,-1);timer()
+timer();fft(a,-1);timer()
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>Voir aussi</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="corr">corr</link>
+ </member>
+ <member>
+ <link linkend="fftw_flags">fftw_flags</link>
+ </member>
+ <member>
+ <link linkend="get_fftw_wisdom">get_fftw_wisdom</link>
+ </member>
+ <member>
+ <link linkend="set_fftw_wisdom">set_fftw_wisdom</link>
+ </member>
+ <member>
+ <link linkend="fftw_forget_wisdom">fftw_forget_wisdom</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>Bibliographie</title>
+ <para>
+ Matteo Frigo and Steven G. Johnson, "FFTW Documentation" <ulink
+ url="http://www.fftw.org/#documentation">http://www.fftw.org/#documentation</ulink>
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/images/analog_elliptic_filter.png b/modules/signal_processing/help/images/analog_elliptic_filter.png
new file mode 100755
index 000000000..90210d2af
--- /dev/null
+++ b/modules/signal_processing/help/images/analog_elliptic_filter.png
Binary files differ
diff --git a/modules/signal_processing/help/images/analog_filtered_noise.png b/modules/signal_processing/help/images/analog_filtered_noise.png
new file mode 100755
index 000000000..37ac4b2ec
--- /dev/null
+++ b/modules/signal_processing/help/images/analog_filtered_noise.png
Binary files differ
diff --git a/modules/signal_processing/help/images/analog_filtered_noise_csim.png b/modules/signal_processing/help/images/analog_filtered_noise_csim.png
new file mode 100755
index 000000000..f5b4344e0
--- /dev/null
+++ b/modules/signal_processing/help/images/analog_filtered_noise_csim.png
Binary files differ
diff --git a/modules/signal_processing/help/images/digital_elliptic_filter.png b/modules/signal_processing/help/images/digital_elliptic_filter.png
new file mode 100755
index 000000000..9117e4eaa
--- /dev/null
+++ b/modules/signal_processing/help/images/digital_elliptic_filter.png
Binary files differ
diff --git a/modules/signal_processing/help/images/digital_filtered_noise.png b/modules/signal_processing/help/images/digital_filtered_noise.png
new file mode 100755
index 000000000..9ae81c7ef
--- /dev/null
+++ b/modules/signal_processing/help/images/digital_filtered_noise.png
Binary files differ
diff --git a/modules/signal_processing/help/images/wfir_gui_dialog.png b/modules/signal_processing/help/images/wfir_gui_dialog.png
new file mode 100755
index 000000000..768ed4750
--- /dev/null
+++ b/modules/signal_processing/help/images/wfir_gui_dialog.png
Binary files differ
diff --git a/modules/signal_processing/help/images/wfir_gui_view.svg b/modules/signal_processing/help/images/wfir_gui_view.svg
new file mode 100755
index 000000000..2f3e3282c
--- /dev/null
+++ b/modules/signal_processing/help/images/wfir_gui_view.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="448px" height="279px" viewBox="0 0 448 279"
+ style="stroke:none">
+<title>Figure n°2</title>
+<desc>
+Creator: GL2PS 1.3.2, (C) 1999-2006 Christophe Geuzaine (geuz@geuz.org)
+For: Scilab
+CreationDate: Wed Nov 30 18:04:55 2011
+</desc>
+<defs>
+</defs>
+<polygon fill="#ffffff" points="0,0 448,0 448,279 0,279"/>
+<g>
+<polygon fill="#ffffff" points="56,244.125 56,34.875 56,34.875"/>
+<polygon fill="#ffffff" points="56,244.125 56,34.875 56,244.125"/>
+<polygon fill="#ffffff" points="56,244.125 392,244.125 392,244.125"/>
+<polygon fill="#ffffff" points="56,244.125 392,244.125 56,244.125"/>
+<polygon fill="#ffffff" points="56,244.125 392,244.125 392,34.875"/>
+<polygon fill="#ffffff" points="56,244.125 392,34.875 56,34.875"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56.0005,160.375 56.7021,160.617 57.4038,161.365 58.105,162.698 58.8066,164.792 59.5078,168.027 60.2095,173.43 60.9106,185.904 61.6123,184.822 62.314,172.6 63.0151,166.958 63.7168,163.404 64.418,160.952 65.1196,159.225 65.8213,158.044 66.5225,157.318 67.2241,157.004 67.9253,157.091 68.627,157.602 69.3286,158.593 70.0298,160.183 70.7314,162.607 71.4326,166.401 72.1343,173.194 72.8354,198.582 73.5371,175.25 74.2388,166.543 74.9399,161.713 75.6416,158.459 76.3428,156.108 77.0444,154.375 77.7461,153.114 78.4473,152.245 79.1489,151.725 79.8501,151.537 80.5518,151.681 81.2534,152.18 81.9546,153.083 82.6562,154.477 83.3574,156.529 84.0591,159.578 84.7603,164.463 85.4619,174.543 86.1636,182.067 86.8647,166.234 87.5664,159.853 88.2676,155.88 88.9692,153.087 89.6709,151.029 90.3721,149.498 91.0737,148.382 91.7749,147.617 92.4766,147.171 93.1782,147.028 93.8794,147.19 94.5811,147.677 95.2822,148.53 95.9839,149.823 96.6851,151.688 97.3867,154.382 98.0884,158.484 98.7896,165.818 99.4912,203.212 100.192,166.316 100.894,158.191 101.596,153.583 102.297,150.452 102.999,148.175 103.7,146.481 104.401,145.23 105.103,144.343 105.804,143.776 106.506,143.505 107.207,143.524 107.909,143.843 108.61,144.485 109.312,145.501 110.013,146.976 110.714,149.064 111.416,152.071 112.117,156.728 112.819,165.667 113.521,181.358 114.222,160.865 114.923,154.002 115.625,149.871 116.326,147.009 117.027,144.916 117.729,143.359 118.431,142.219 119.132,141.425 119.833,140.938 120.535,140.737 121.236,140.818 121.938,141.189 122.639,141.876 123.341,142.925 124.042,144.417 124.744,146.498 125.445,149.448 126.146,153.922 126.848,162.123 127.549,188.621 128.251,159.997 128.952,152.668 129.654,148.396 130.355,145.481 131.057,143.368 131.758,141.806 132.459,140.666 133.161,139.871 133.863,139.377 134.564,139.158 135.266,139.204 135.967,139.513 136.668,140.099 137.37,140.987 138.071,142.221 138.773,143.876 139.474,146.085 140.176,149.095 140.877,153.456 141.579,160.846 142.28,188.586 142.981,163.381 143.683,155.224 144.384,150.823 145.086,147.943 145.788,145.917 146.489,144.449 147.19,143.382 147.892,142.615 148.593,142.076 149.294,141.707 149.996,141.454 150.698,141.266 151.399,141.09 152.101,140.875 152.802,140.574 153.503,140.146 154.205,139.567 154.906,138.833 155.608,137.958 156.309,136.976 157.011,135.93 157.712,134.871 158.414,133.853 159.115,132.929 159.816,132.153 160.518,131.586 161.219,131.302 161.921,131.402 162.623,132.048 163.324,133.54 164.025,136.565 164.727,143.478 165.428,163.423 166.13,137.165 166.831,128.376 167.533,122.479 168.234,117.864 168.936,113.994 169.637,110.619 170.338,107.604 171.04,104.866 171.741,102.351 172.443,100.022 173.144,97.8506 173.846,95.8169 174.547,93.9043 175.249,92.0996 175.95,90.3931 176.651,88.7759 177.353,87.2412 178.055,85.7827 178.756,84.395 179.458,83.0737 180.159,81.8145 180.86,80.6143 181.562,79.4697 182.263,78.3779 182.965,77.3369 183.666,76.3438 184.368,75.3965 185.069,74.4932 185.771,73.6323 186.472,72.812 187.173,72.0308 187.875,71.2871 188.576,70.5796 189.278,69.9072 189.979,69.269 190.681,68.6631 191.382,68.0889 192.083,67.5454 192.785,67.0312 193.486,66.5459 194.188,66.0884 194.89,65.6572 195.591,65.252 196.292,64.8716 196.994,64.5156 197.695,64.1831 198.397,63.8726 199.098,63.5835 199.8,63.3154 200.501,63.0674 201.203,62.8389 201.904,62.6279 202.605,62.4351 203.307,62.2588 204.008,62.0981 204.71,61.9526 205.411,61.8213 206.113,61.7036 206.814,61.5986 207.516,61.5054 208.217,61.4229 208.918,61.3511 209.62,61.2881 210.322,61.2344 211.023,61.1885 211.725,61.1494 212.426,61.1167 213.127,61.0903 213.829,61.0684 214.53,61.0508 215.232,61.0376 215.933,61.0269 216.635,61.019 217.336,61.0137 218.038,61.0098 218.739,61.0068 219.44,61.0049 220.142,61.0034 220.843,61.0024 221.545,61.0015 222.247,61.0005 222.948,60.999 223.649,60.9976 224.351,60.9956 225.052,60.9937 225.753,60.9917 226.455,60.9893 227.157,60.9873 227.858,60.9858 228.56,60.9854 229.261,60.9854 229.962,60.9868 230.664,60.9902 231.365,60.9961 232.067,61.0044 232.768,61.0161 233.47,61.0312 234.171,61.0508 234.873,61.0752 235.574,61.105 236.275,61.1406 236.977,61.1831 237.678,61.2324 238.38,61.29 239.082,61.3564 239.783,61.4321 240.484,61.5181 241.186,61.6147 241.887,61.7227 242.589,61.8428 243.29,61.9761 243.992,62.123 244.693,62.2847 245.395,62.4614 246.096,62.6543 246.797,62.8638 247.499,63.0913 248.2,63.3374 248.902,63.6025 249.603,63.8882 250.305,64.1943 251.006,64.5229 251.708,64.874 252.409,65.249 253.11,65.6489 253.812,66.0742 254.514,66.5259 255.215,67.0054 255.917,67.5137 256.618,68.0518 257.319,68.6206 258.021,69.2217 258.722,69.8564 259.424,70.5254 260.125,71.231 260.827,71.9736 261.528,72.7559 262.229,73.5786 262.931,74.4438 263.632,75.3535 264.334,76.3096 265.035,77.3145 265.737,78.3706 266.438,79.4805 267.14,80.6465 267.841,81.8726 268.542,83.1611 269.244,84.5171 269.945,85.9443 270.647,87.4478 271.349,89.0327 272.05,90.7046 272.751,92.4717 273.453,94.3408 274.154,96.3223 274.856,98.4263 275.557,100.666 276.259,103.057 276.96,105.617 277.662,108.37 278.363,111.343 279.064,114.573 279.766,118.107 280.467,122.007 281.169,126.357 281.87,131.281 282.572,136.958 283.273,143.67 283.975,151.862 284.676,162.148 285.377,173.812 286.079,176.855 286.781,169.784 287.482,163.751 288.184,160.223 288.885,158.881 289.586,159.871 290.288,164.798 290.989,210.579 291.691,160.927 292.392,151.431 293.094,145.553 293.795,141.281 294.497,137.971 295.198,135.331 295.899,133.198 296.601,131.477 297.302,130.104 298.004,129.038 298.706,128.252 299.407,127.731 300.108,127.467 300.81,127.462 301.511,127.726 302.212,128.281 302.914,129.167 303.616,130.448 304.317,132.235 305.019,134.731 305.72,138.36 306.421,144.271 307.123,158.535 307.824,153.469 308.526,142.475 309.227,137.125 309.929,133.68 310.63,131.243 311.332,129.459 312.033,128.151 312.734,127.225 313.436,126.622 314.137,126.311 314.839,126.279 315.541,126.523 316.242,127.059 316.943,127.913 317.645,129.139 318.346,130.829 319.048,133.146 319.749,136.42 320.451,141.454 321.152,151.338 321.854,161.477 322.555,144.618 323.256,138.276 323.958,134.433 324.659,131.788 325.361,129.88 326.062,128.492 326.764,127.509 327.465,126.865 328.167,126.522 328.868,126.462 329.569,126.681 330.271,127.188 330.973,128.012 331.674,129.2 332.375,130.838 333.077,133.078 333.778,136.22 334.479,140.974 335.181,149.854 335.883,167.824 336.584,146.014 337.286,139.173 337.987,135.138 338.688,132.391 339.39,130.417 340.091,128.984 340.793,127.966 341.494,127.292 342.196,126.925 342.897,126.841 343.599,127.038 344.3,127.523 345.001,128.322 345.703,129.481 346.404,131.084 347.106,133.275 347.808,136.342 348.509,140.948 349.21,149.355 349.912,173.695 350.613,147.018 351.315,139.863 352.016,135.708 352.718,132.896 353.419,130.879 354.121,129.413 354.822,128.369 355.523,127.673 356.225,127.285 356.926,127.183 357.628,127.361 358.329,127.827 359.031,128.605 359.732,129.742 360.434,131.318 361.135,133.474 361.836,136.487 362.538,140.996 363.24,149.112 363.941,180.075 364.643,147.753 365.344,140.37 366.045,136.129 366.747,133.268 367.448,131.219 368.15,129.727 368.851,128.662 369.553,127.948 370.254,127.542 370.956,127.424 371.657,127.585 372.358,128.035 373.06,128.796 373.761,129.914 374.463,131.467 375.165,133.594 375.866,136.566 376.567,141 377.269,148.905 377.97,189.138 378.672,148.285 379.373,140.716 380.075,136.406 380.776,133.505 381.478,131.428 382.179,129.915 382.88,128.831 383.582,128.101 384.283,127.68 384.985,127.547 385.686,127.694 386.388,128.128 387.089,128.874 387.791,129.974 388.492,131.506 389.193,133.608 389.895,136.543 390.596,140.912 391.298,148.641 392,227.561"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,244.125 56,34.875"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,244.125 50.96,244.125"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,217.969 50.96,217.969"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,191.812 50.96,191.812"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,165.656 50.96,165.656"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,139.5 50.96,139.5"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,113.344 50.96,113.344"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,87.1875 50.96,87.1875"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,61.0312 50.96,61.0312"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,34.875 50.96,34.875"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,231.047 52.9761,231.047"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,204.891 52.9761,204.891"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,178.734 52.9761,178.734"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,152.578 52.9761,152.578"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,126.422 52.9761,126.422"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,100.266 52.9761,100.266"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,74.1094 52.9761,74.1094"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,47.9531 52.9761,47.9531"/>
+<text fill="#000000" style="stroke:none" x="25" y="249" transform="rotate(-0, 25, 249)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">-140</text>
+<text fill="#000000" style="stroke:none" x="25" y="223" transform="rotate(-0, 25, 223)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">-120</text>
+<text fill="#000000" style="stroke:none" x="25" y="197" transform="rotate(-0, 25, 197)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">-100</text>
+<text fill="#000000" style="stroke:none" x="31" y="171" transform="rotate(-0, 31, 171)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">-80</text>
+<text fill="#000000" style="stroke:none" x="31" y="145" transform="rotate(-0, 31, 145)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">-60</text>
+<text fill="#000000" style="stroke:none" x="31" y="118" transform="rotate(-0, 31, 118)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">-40</text>
+<text fill="#000000" style="stroke:none" x="31" y="92" transform="rotate(-0, 31, 92)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">-20</text>
+<text fill="#000000" style="stroke:none" x="42" y="66" transform="rotate(-0, 42, 66)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">0</text>
+<text fill="#000000" style="stroke:none" x="37" y="40" transform="rotate(-0, 37, 40)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">20</text>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="56,244.125 392,244.125 392,244.125"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="56,217.969 392,217.969 392,217.969"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="56,191.812 392,191.812 392,191.812"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="56,165.656 392,165.656 392,165.656"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="56,139.5 392,139.5 392,139.5"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="56,113.344 392,113.344 392,113.344"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="56,87.1875 392,87.1875 392,87.1875"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="56,61.0312 392,61.0312 392,61.0312"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="56,34.875 392,34.875 392,34.875"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,244.125 392,244.125"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="56,244.125 56,247.26"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="89.6001,244.125 89.6001,247.26"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="123.2,244.125 123.2,247.26"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="156.8,244.125 156.8,247.26"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="190.4,244.125 190.4,247.26"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="224,244.125 224,247.26"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="257.6,244.125 257.6,247.26"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="291.2,244.125 291.2,247.26"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="324.8,244.125 324.8,247.26"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="358.4,244.125 358.4,247.26"/>
+<polyline fill="none" stroke="#000000" stroke-width="0.5" points="392,244.125 392,247.26"/>
+<text fill="#000000" style="stroke:none" x="48" y="258" transform="rotate(-0, 48, 258)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">0.0</text>
+<text fill="#000000" style="stroke:none" x="82" y="258" transform="rotate(-0, 82, 258)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">0.5</text>
+<text fill="#000000" style="stroke:none" x="115" y="258" transform="rotate(-0, 115, 258)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">1.0</text>
+<text fill="#000000" style="stroke:none" x="149" y="258" transform="rotate(-0, 149, 258)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">1.5</text>
+<text fill="#000000" style="stroke:none" x="182" y="258" transform="rotate(-0, 182, 258)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">2.0</text>
+<text fill="#000000" style="stroke:none" x="216" y="258" transform="rotate(-0, 216, 258)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">2.5</text>
+<text fill="#000000" style="stroke:none" x="250" y="258" transform="rotate(-0, 250, 258)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">3.0</text>
+<text fill="#000000" style="stroke:none" x="283" y="258" transform="rotate(-0, 283, 258)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">3.5</text>
+<text fill="#000000" style="stroke:none" x="316" y="258" transform="rotate(-0, 316, 258)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">4.0</text>
+<text fill="#000000" style="stroke:none" x="350" y="258" transform="rotate(-0, 350, 258)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">4.5</text>
+<text fill="#000000" style="stroke:none" x="384" y="258" transform="rotate(-0, 384, 258)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">5.0</text>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="56,244.125 56,34.875 56,34.875"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="89.6001,244.125 89.6001,34.875 89.6001,34.875"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="123.2,244.125 123.2,34.875 123.2,34.875"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="156.8,244.125 156.8,34.875 156.8,34.875"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="190.4,244.125 190.4,34.875 190.4,34.875"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="224,244.125 224,34.875 224,34.875"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="257.6,244.125 257.6,34.875 257.6,34.875"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="291.2,244.125 291.2,34.875 291.2,34.875"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="324.8,244.125 324.8,34.875 324.8,34.875"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="358.4,244.125 358.4,34.875 358.4,34.875"/>
+<polyline fill="none" stroke="#bebebe" stroke-width="0.5" stroke-dasharray="4,4,4,4" points="392,244.125 392,34.875 392,34.875"/>
+<text fill="#000000" style="stroke:none" x="185" y="273" transform="rotate(0, 185, 273)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">frequency (Hz)</text>
+<text fill="#000000" style="stroke:none" x="16" y="179" transform="rotate(270, 16, 179)" font-size="10" font-family="SansSerif" font-style="normal" font-weight="normal">Magnitude (dB)</text>
+</g>
+</svg>
diff --git a/modules/signal_processing/help/ja_JP/addchapter.sce b/modules/signal_processing/help/ja_JP/addchapter.sce
new file mode 100755
index 000000000..d8d85a213
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/addchapter.sce
@@ -0,0 +1,11 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+add_help_chapter("Signal Processing",SCI+"/modules/signal_processing/help/ja_JP",%T);
+
diff --git a/modules/signal_processing/help/ja_JP/cepstrum.xml b/modules/signal_processing/help/ja_JP/cepstrum.xml
new file mode 100755
index 000000000..7380bf60c
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/cepstrum.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="cepstrum">
+
+ <refnamediv>
+
+ <refname>cepstrum</refname>
+
+ <refpurpose>ケプストラム計算</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>fresp = cepstrum(w,mag)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>w</term>
+
+ <listitem>
+
+ <para>周波数の実数ベクトル(正) (rad/sec)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>mag</term>
+
+ <listitem>
+
+ <para>
+
+ 振幅の実数ベクトル (<literal>w</literal>と同じ大きさ)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fresp</term>
+
+ <listitem>
+
+ <para>複素ベクトル</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ <literal>fresp = cepstrum(w,mag)</literal> は,
+
+ 周波数<literal>w(i)</literal>における振幅が<literal>mag(i)</literal>で,
+
+ <literal>freq</literal>の位相が安定な最小位相システムとなる
+
+ 周波数応答<literal>fresp(i)</literal>を返します.
+
+ <literal>w</literal> はソートされている必要はありませんが,
+
+ エントリの最小値がゼロに近くなることはできず,
+
+ <literal>w</literal>のエントリは全て異なる必要があります.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+w=0.1:0.1:5;mag=1+abs(sin(w));
+fresp=cepstrum(w,mag);
+plot2d([w',w'],[mag(:),abs(fresp)])
+ ]]></programlisting>
+
+ <scilab:image>
+
+ w=0.1:0.1:5;mag=1+abs(sin(w));
+
+ fresp=cepstrum(w,mag);
+
+ plot2d([w',w'],[mag(:),abs(fresp)])
+
+ </scilab:image>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="frfit">frfit</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/conv.xml b/modules/signal_processing/help/ja_JP/conv.xml
new file mode 100755
index 000000000..51c3baa0b
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/conv.xml
@@ -0,0 +1,280 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * Add some comments about XML file
+-->
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja_JP" xml:id="conv">
+
+ <refnamediv>
+
+ <refname>conv</refname>
+
+ <refpurpose>離散一次元畳み込み</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>C = conv(A,B [,shape])</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>パラメータ</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>A</term>
+
+ <listitem>
+
+ <para>
+
+ 実数または複素数ベクトル.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>B</term>
+
+ <listitem>
+
+ <para>
+
+ 実数または複素数ベクトル.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>shape</term>
+
+ <listitem>
+
+ <para>
+
+ オプション文字列で値は以下のどれか:
+
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <literal>"full"</literal>, <literal>conv</literal>
+
+ は完全な畳み込みを計算します. これがデフォルト値です.
+
+ </listitem>
+
+ <listitem>
+
+ <literal>"same"</literal>, <literal>conv</literal>
+
+ は<literal>A</literal>と同じ大きさの畳み込みの
+
+ 中央部を計算します.
+
+ </listitem>
+
+ <listitem>
+
+ <literal>"valid"</literal>, <literal>conv</literal>
+
+ は<literal>A</literal>のゼロパディングなしの畳み込み部分を計算します.
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>C</term>
+
+ <listitem>
+
+ <para>
+
+ 実数または複素数ベクトル.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ <literal>conv</literal>は空間的な1次元畳み込み方程式の
+
+ 一般的な実装を使用します.
+
+ </para>
+
+ <para>
+
+ <literal>C=conv(A,B [,shape])</literal> はベクトル
+
+ <literal>A</literal>および <literal>B</literal>の一次元畳み込みを
+
+ 計算します:
+
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <literal>shape=="full"</literal>を指定した場合、
+
+ 結果<literal>C</literal>の次元は
+
+ <literal>size(A,'*')+size(B,'*')+1</literal>となります.
+
+ <literal>B</literal>の中心要素の添字は
+
+ <literal>floor((size(B,'*')+1)/2)</literal>となります.
+
+ </listitem>
+
+ <listitem>
+
+ <literal>shape=="same"</literal> を指定した場合,
+
+ 結果<literal>C</literal>の次元は
+
+ <literal>size(A)</literal>となります.
+
+ <literal>B</literal>の中心要素の添字は
+
+ <literal>floor((size(B,'*')+1)/2)</literal>となります.
+
+ </listitem>
+
+ <listitem>
+
+ <literal>shape=="valid"</literal> を指定した場合,
+
+ 結果<literal>C</literal>の次元は
+
+ <literal>and(size(A,'*')-size(B,'*'))&gt;=0</literal>の場合
+
+ <literal>size(A,'*')-size(B,'*')+1)</literal>,
+
+ それ以外は
+
+ <literal>C</literal>が空となります.
+
+ <literal>B</literal>の中心要素の添字は
+
+ <literal>1</literal>となります.
+
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+
+ 大きな配列に対しては,
+
+ <link linkend="convol">convol</link> の方がより効率的
+
+ となる可能性があることに注意してください.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+ A=1:10;
+ B=[1 -1];
+ conv(A,B)
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection>
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="convol">convol</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="conv2">conv2</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>使用される関数</title>
+
+ <para>
+
+ conv関数は組込み関数<link linkend="conv2">conv2</link>に基づいています.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>履歴</title>
+
+ <revhistory>
+
+ <revision>
+
+ <revnumber>5.4.0</revnumber>
+
+ <revremark>関数convが導入されました.</revremark>
+
+ </revision>
+
+ </revhistory>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/conv2.xml b/modules/signal_processing/help/ja_JP/conv2.xml
new file mode 100755
index 000000000..53859b9e9
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/conv2.xml
@@ -0,0 +1,317 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * Add some comments about XML file
+-->
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja_JP" xml:id="conv2">
+
+ <refnamediv>
+
+ <refname>conv2</refname>
+
+ <refpurpose>離散 2-D 畳み込み. </refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>
+
+ C = conv2(A,B [,shape])
+
+ C = conv2(hrow,hcol,B [,shape])
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>パラメータ</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>hrow</term>
+
+ <listitem>
+
+ <para>
+
+ 実数または複素数ベクトル.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>hcol</term>
+
+ <listitem>
+
+ <para>
+
+ 実数または複素数ベクトル.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>A</term>
+
+ <listitem>
+
+ <para>
+
+ 実数または複素数二次元配列.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>B</term>
+
+ <listitem>
+
+ <para>
+
+ 実数または複素数二次元配列.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>shape</term>
+
+ <listitem>
+
+ <para>
+
+ オプション文字列で値は以下のどれか:
+
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <literal>"full"</literal>, <literal>conv2</literal>
+
+ は完全な2次元畳み込みを計算します. これがデフォルト値です.
+
+ </listitem>
+
+ <listitem>
+
+ <literal>"same"</literal>, <literal>conv2</literal>
+
+ は<literal>A</literal>と同じ大きさの畳み込みの
+
+ 中央部を計算します.
+
+ </listitem>
+
+ <listitem>
+
+ <literal>"valid"</literal>, <literal>conv2</literal>
+
+ は<literal>A</literal>のゼロパディングなしの畳み込み部分を計算します.
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>C</term>
+
+ <listitem>
+
+ <para>
+
+ 実数または複素数二次元配列.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ <literal>conv2</literal>は空間的な2次元畳み込み方程式の
+
+ 一般的な実装を使用します.
+
+ </para>
+
+ <para>
+
+ <literal>C=conv2(A,B [,shape])</literal>
+
+ はベクトル
+
+ <literal>A</literal>および <literal>B</literal>の2次元畳み込みを
+
+ 計算します:
+
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <literal>shape=="full"</literal>
+
+ を指定した場合、結果<literal>C</literal>の次元は
+
+ <literal>size(A)+size(B)+1</literal>となります.
+
+ <literal>B</literal>の中心要素の添字は
+
+ <literal>floor((size(B)+1)/2)</literal>となります.
+
+ </listitem>
+
+ <listitem>
+
+ <literal>shape=="same"</literal> を指定した場合、
+
+ 結果<literal>C</literal>の次元は <literal>size(A)</literal>となります.
+
+ <literal>B</literal>の中心要素の添字は
+
+ <literal>floor((size(B)+1)/2)</literal>となります.
+
+ </listitem>
+
+ <listitem>
+
+ <literal>shape=="valid"</literal>を指定した場合、
+
+ 結果<literal>C</literal>の次元は,
+
+ <literal>and(size(A)-size(B))&gt;=0</literal>の場合に
+
+ <literal>size(A)-size(B)+1)</literal>,それ以外の場合に
+
+ <literal>C</literal>は空となります.
+
+ <literal>B</literal> の中心要素の添字は
+
+ <literal>[1 1]</literal>となります.
+
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+
+ The separable form
+
+ 可分割形式 <literal>C=conv2(hrow,hcol,B [,shape])</literal>は
+
+ <literal>C=conv2(hrow(:)*hcol(:).',B [,shape])</literal>と等価です.
+
+ </para>
+
+ <para>
+
+ 大きな配列に対しては,
+
+ <link linkend="convol2d">convol2d</link> の方がより効率的
+
+ となる可能性があることに注意してください.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+ s = [1 2 1; 0 0 0; -1 -2 -1];//Sobel horizontal edge kernel
+ A = zeros(10,10);A(3:7,3:7) = 1;
+ conv2(s,A);
+ //separable form
+ u=[1;0;-1];v=[1 2 1];// u*v=s
+ conv2(u,v,A)
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection>
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="convol2d">convol2d</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="conv">conv</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>履歴</title>
+
+ <revhistory>
+
+ <revision>
+
+ <revnumber>5.4.0</revnumber>
+
+ <revremark>関数 conv2 が導入されました.</revremark>
+
+ </revision>
+
+ </revhistory>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/convol2d.xml b/modules/signal_processing/help/ja_JP/convol2d.xml
new file mode 100755
index 000000000..b7741b1e5
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/convol2d.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Add some comments about XML file
+-->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja_JP" xml:id="convol2d">
+ <refnamediv>
+ <refname>convol2d</refname>
+ <refpurpose>離散 2-D 畳み込み, fftを使用. </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>呼び出し手順</title>
+ <synopsis>C = convol2d(A,B)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>パラメータ</title>
+ <variablelist>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>
+ 実数または複素数二次元配列.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>B</term>
+ <listitem>
+ <para>
+ 実数または複素数二次元配列.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>C</term>
+ <listitem>
+ <para>
+ 実数または複素数二次元配列.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>説明</title>
+ <para>
+ <literal>convol2d</literal> は
+ 完全な二次元離散畳み込みを計算するためにfftを使用します.
+ 結果 <literal>C</literal> の次元は
+ <literal>size(A)+size(B)+1</literal>で指定されます.
+ <literal>B</literal>の中心要素の添字は
+ <literal>floor((size(B)+1)/2)</literal>で定義されます.
+ </para>
+ </refsection>
+ <refsection>
+ <title>例</title>
+ <programlisting role="example"><![CDATA[
+ s = [1 2 1; 0 0 0; -1 -2 -1];//Sobel horizontal edge kernel
+ A = zeros(10,10);A(3:7,3:7) = 1;
+ convol2d(s,A);
+ ]]></programlisting>
+ </refsection>
+ <refsection>
+ <title>参照</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="conv2">conv2</link>
+ </member>
+ <member>
+ <link linkend="convol">convol</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>使用する関数</title>
+ <para>
+ <literal>convol2d</literal> 関数は組込み関数
+ <link linkend="fft">fft</link> に基づいています.
+ </para>
+ </refsection>
+ <refsection>
+ <title>履歴</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>関数convol2dが導入されました.</revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/ja_JP/detrend.xml b/modules/signal_processing/help/ja_JP/detrend.xml
new file mode 100755
index 000000000..3fd5a9d26
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/detrend.xml
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="detrend">
+
+ <refnamediv>
+
+ <refname>detrend</refname>
+
+ <refpurpose>
+
+ ベクトルから定数, 線形または区分線形トレンドを削除する
+
+ </refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>y = detrend(x)
+
+ y = detrend(x,flag)
+
+ y = detrend(x,flag,bp)
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>実数または複素数のベクトルまたは行列 (扱う信号)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>flag</term>
+
+ <listitem>
+
+ <para>
+
+ 線形または区分線形処理の場合は "linear" (または "l"),
+
+ 定数処理の場合は "constant" (または "c") に等しい文字列.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>bp</term>
+
+ <listitem>
+
+ <para>
+
+ 区分線形処理を行う場合に使用する区切点.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>出力, 信号x からトレンドを除いたもの.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ この関数は,ベクトル<literal>x</literal>から定数または線形または
+
+ 区分線形トレンドを削除します. 一般に
+
+ この関数はフーリエ解析の前に使うと便利です.
+
+ <literal>x</literal> が行列の場合, この関数は
+
+ x の各列のトレンドを除去します.
+
+ </para>
+
+ <para>
+
+ <literal>flag</literal> = "constant" or "c" <literal>detrend</literal>
+
+ が定数トレンドを削除する場合,
+
+ そして,<literal>flag</literal> = "linear"または"l"の場合,
+
+ この関数は線形トレンドを削除します.
+
+ 3番目の引数<literal>bp</literal>を追加することにより,
+
+ 連続<emphasis>区分線形</emphasis>トレンドを削除することができます.
+
+ 信号 <literal>x</literal>の"instants" は 0 から m-1 となることに注意してください
+
+ (xがベクトルの場合は m = length(x), x が行列の場合はm = size(x,1)).
+
+ このため,区切点<literal>bp(i)</literal>は,
+
+ <emphasis>[0 m-1]</emphasis> の範囲の実数とする必要があります
+
+ (範囲外の区切点は<literal>bp</literal>ベクトルから除かれます).
+
+ </para>
+
+ <para>
+
+ トレンドは,適当な関数空間における<literal>x</literal>の最小二乗フィッティング
+
+ により取得されます.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+t = linspace(0,16*%pi,1000)';
+x = -20 + t + 0.3*sin(0.5*t) + sin(t) + 2*sin(2*t) + 0.5*sin(3*t);
+y = detrend(x);
+clf()
+plot2d(t,[x y],style=[2 5])
+legend(["before detrend","after detrend"]);
+xgrid()
+ ]]></programlisting>
+
+ <scilab:image>
+
+ t = linspace(0,16*%pi,1000)';
+
+ x = -20 + t + 0.3*sin(0.5*t) + sin(t) + 2*sin(2*t) + 0.5*sin(3*t);
+
+ y = detrend(x);
+
+ clf()
+
+ plot2d(t,[x y],style=[2 5])
+
+ legend(["before detrend","after detrend"]);
+
+ xgrid()
+
+ </scilab:image>
+
+ <programlisting role="example"><![CDATA[
+t = linspace(0,32*%pi,2000)';
+x = abs(t-16*%pi) + 0.3*sin(0.5*t) + sin(t) + 2*sin(2*t) + 0.5*sin(3*t);
+y = detrend(x,"linear",1000);
+clf()
+plot2d(t,[x y],style=[2 5])
+legend(["before detrend","after detrend"]);
+xgrid()
+ ]]></programlisting>
+
+ <scilab:image>
+
+ t = linspace(0,32*%pi,2000)';
+
+ x = abs(t-16*%pi) + 0.3*sin(0.5*t) + sin(t) + 2*sin(2*t) + 0.5*sin(3*t);
+
+ y = detrend(x,"linear",1000);
+
+ clf()
+
+ plot2d(t,[x y],style=[2 5])
+
+ legend(["before detrend","after detrend"]);
+
+ xgrid()
+
+ </scilab:image>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/fft2.xml b/modules/signal_processing/help/ja_JP/fft2.xml
new file mode 100755
index 000000000..23192f483
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/fft2.xml
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="fft2">
+
+ <refnamediv>
+
+ <refname>fft2</refname>
+
+ <refpurpose>2次元高速フーリエ変換</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>y=fft2(x)
+
+ y=fft2(x,n,m)
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>ベクトル/行列/配列 (実数または複素数)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>ベクトル/行列/配列 (実数または複素数)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>m</term>
+
+ <listitem>
+
+ <para>整数, 行の数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>整数, 列の数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <programlisting role=""><![CDATA[
+この関数は2次元離散フーリエ変換を行ないます.
+ ]]></programlisting>
+
+ <para>
+
+ <literal>y=fft2(x)</literal>y および x は同じ大きさとなります.
+
+ </para>
+
+ <para>
+
+ <literal>y=fft2(x,m,n):</literal><literal>m</literal> (もしくは
+
+ <literal>n</literal>) が<literal>x</literal>の行(もしくは列)の数よりも小さい場合,
+
+ <literal>x</literal> の行(もしくは列)の数が丸められます.
+
+ また, m (もしくは <literal>n</literal>) が<literal>x</literal>
+
+ の行(もしくは列)の数よりも大きい場合,
+
+ <literal>x</literal>の行(もしくは列)は 0 で補完されます.
+
+ </para>
+
+ <para>
+
+ <literal>x</literal> が行列の場合, <literal>y</literal> も行列となります.
+
+ <literal>x</literal>がハイパー行列の場合,<literal>y</literal>もハイパー行列となります.
+
+ この際,
+
+ <literal>y</literal>の最初の次元の大きさは<literal>m</literal>,
+
+ <literal>y</literal>の2番目の次元の大きさは<literal>n</literal>,
+
+ (i&gt;2のハイパー行列の場合,)
+
+ <literal>y</literal>のi番目の次元の大きさは<literal>x</literal>の
+
+ i番目の次元の大きさとなります.
+
+ (すなわち, size(y,1)=m, size(y,2)=n ,そして,i&gt;2 の場合,size(y,i)=size(x,i))
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+//明示的な計算との比較
+a=[1 2 3 ;4 5 6 ;7 8 9 ;10 11 12]
+m=size(a,1)
+n=size(a,2)
+// 行方向のフーリエ変換
+for i=1:n
+a1(:,i)=exp(-2*%i*%pi*(0:m-1)'.*.(0:m-1)/m)*a(:,i)
+end
+// 列方向のフーリエ変換
+for j=1:m
+a2temp=exp(-2*%i*%pi*(0:n-1)'.*.(0:n-1)/n)*(a1(j,:)).'
+a2(j,:)=a2temp.'
+end
+norm(a2-fft2(a))
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="fft">fft</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/fftshift.xml b/modules/signal_processing/help/ja_JP/fftshift.xml
new file mode 100755
index 000000000..d86feb114
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/fftshift.xml
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="fftshift">
+
+ <refnamediv>
+
+ <refname>fftshift</refname>
+
+ <refpurpose>fft出力を再配置し,スペクトルの中心に周波数0を移動する</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>y=fftshift(x [,job])</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>実数または複素数のベクトルまたは行列.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>実数または複素数のベクトルまたは行列.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>job</term>
+
+ <listitem>
+
+ <para>整数, 選択する次元, または文字列 'all'</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ <literal>x</literal>がFFT計算の結果の場合,
+
+ <literal>y= fftshift(x)</literal> または <literal>y= fftshift(x,"all")</literal>
+
+ は,扱いが容易な形式である,周波数0要素をよりスペクトルの中心に移動します.
+
+ </para>
+
+ <para>
+
+ <literal>x</literal> が大きさnのベクトルの場合,y はiベクトル
+
+ <literal>x([n/2+1:n,1:n/2])</literal>となります
+
+ </para>
+
+ <para>
+
+ <literal>x</literal>が <literal>m</literal> 行 <literal>n</literal> 列行列の場合,
+
+ <literal>y</literal> は行列
+
+ <literal>x([m/2+1:n,1:m/2],[n/2+1:n,1:n/2])</literal>となります.
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+ [x11 x12] [x22 x21]
+x=[ ] gives y=[ ]
+ [x21 x22] [x12 x11]
+ ]]></programlisting>
+
+ <para>
+
+ <literal>y= fftshift(x,n)</literal> は<literal>n</literal>番目の次元
+
+ のみについて配置換えを行ないます.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+//信号を作成
+t=0:0.1:1000;
+x=3*sin(t)+8*sin(3*t)+0.5*sin(5*t)+3*rand(t);
+//compute the fft
+y=fft(x,-1);
+
+//表示
+clf();
+subplot(2,1,1);plot2d(abs(y))
+subplot(2,1,2);plot2d(fftshift(abs(y)))
+ ]]></programlisting>
+
+ <scilab:image>
+
+ t=0:0.1:1000;
+
+ x=3*sin(t)+8*sin(3*t)+0.5*sin(5*t)+3*rand(t);
+
+ y=fft(x,-1);
+
+ subplot(2,1,1);plot2d(abs(y))
+
+ subplot(2,1,2);plot2d(fftshift(abs(y)))
+
+ </scilab:image>
+
+ <programlisting role="example"><![CDATA[
+//2次元画像を作成
+t=0:0.1:30;
+x=3*sin(t')*cos(2*t)+8*sin(3*t')*sin(5*t)+..
+ 0.5*sin(5*t')*sin(5*t)+3*rand(t')*rand(t);
+//fftを計算
+y=fft(x,-1);
+
+//表示
+clf();
+xset('colormap',hotcolormap(256))
+subplot(2,1,1);Matplot(abs(y))
+subplot(2,1,2);Matplot(fftshift(abs(y)))
+ ]]></programlisting>
+
+ <scilab:image>
+
+ t=0:0.1:30;
+
+ x=3*sin(t')*cos(2*t)+8*sin(3*t')*sin(5*t)+..
+
+ 0.5*sin(5*t')*sin(5*t)+3*rand(t')*rand(t);
+
+ y=fft(x,-1);
+
+ xset('colormap',hotcolormap(256))
+
+ subplot(2,1,1);Matplot(abs(y))
+
+ subplot(2,1,2);Matplot(fftshift(abs(y)))
+
+ </scilab:image>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="fft">fft</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="ifftshift">ifftshift</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filt_sinc.xml b/modules/signal_processing/help/ja_JP/filt_sinc.xml
new file mode 100755
index 000000000..3da6487e8
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filt_sinc.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="filt_sinc">
+
+ <refnamediv>
+
+ <refname>filt_sinc</refname>
+
+ <refpurpose>sinc関数の標本</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[x]=filt_sinc(n,fl)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>標本の数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fl</term>
+
+ <listitem>
+
+ <para>ローパスフィルタのカットオフ周波数(単位:Hz).</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>sinc関数の標本</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ <literal>t=-(n-1)/2:(n-1)/2</literal> (つまし,原点が中心)について,
+
+ 関数<literal>sin(2*pi*fl*t)/(pi*t)</literal>の標本をn個計算します.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+plot(filt_sinc(100,0.1))
+ ]]></programlisting>
+
+ <scilab:image>
+
+ plot(filt_sinc(100,0.1))
+
+ </scilab:image>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="sincd">sincd</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/CHAPTERS b/modules/signal_processing/help/ja_JP/filters/CHAPTERS
new file mode 100755
index 000000000..75dda6658
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/CHAPTERS
@@ -0,0 +1,2 @@
+title = Filters
+
diff --git a/modules/signal_processing/help/ja_JP/filters/analpf.xml b/modules/signal_processing/help/ja_JP/filters/analpf.xml
new file mode 100755
index 000000000..bc2910952
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/analpf.xml
@@ -0,0 +1,418 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="analpf">
+
+ <refnamediv>
+
+ <refname>analpf</refname>
+
+ <refpurpose>アナログローパスフィルタを作成する</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>
+
+ [hs,pols,zers,gain]=analpf(n,fdesign,rp,omega)
+
+ hs=analpf(n,fdesign,rp,omega)
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>正の整数 : フィルタ次数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fdesign</term>
+
+ <listitem>
+
+ <para>
+
+ 文字列 : 以下のようにフィルタ設計手法を示します:
+
+ </para>
+
+ <itemizedlist mark="bullet">
+
+ <listitem>
+
+ <para>"butt" は,バターワースフィルタ用です.</para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>"cheb1" は,チェビシェフI型フィルタ用です.</para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>"cheb2" は,チェビシェフII型フィルタ用
+
+ (逆チェビシェフフィルタとも呼ばれます)です.
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>"ellip" は,楕円フィルタ用です.</para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>rp</term>
+
+ <listitem>
+
+ <para>
+
+ "cheb1", "cheb2"および"ellip"フィルタ用の
+
+ リップル値の2要素ベクトル.
+
+ この要素は以下の関係を満たす必要があります:
+
+ <literal>0&lt;rp(1),rp(2)&lt;1</literal>.
+
+ </para>
+
+ <itemizedlist mark="bullet">
+
+ <listitem>
+
+ <para>
+
+ "cheb1"フィルタの場合, <literal>rp(1)</literal>のみが
+
+ 使用されます. 通過域のリップルは,
+
+ <literal>1-rp(1)</literal> および <literal>1</literal>
+
+ の間です.
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ "cheb2" フィルタの場合, <literal>rp(2)</literal>のみが
+
+ 使用されます. 阻止域のリップルは,
+
+ <literal>0</literal> および
+
+ <literal>rp(2)</literal>の間です.
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ "ellip" フィルタの場合, <literal>rp(1)</literal> および
+
+ <literal>rp(2)</literal> が共に使用されます. 通過域の
+
+ リップルは<literal>1-rp(1)</literal>および<literal>1</literal>の
+
+ 間, 一方, 阻止域のリップルは,
+
+ <literal>0</literal> および <literal>rp(2)</literal>の間です.
+
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>omega</term>
+
+ <listitem>
+
+ <para>ローパスフィルタのカットオフ周波数(単位:rad/s)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>hs</term>
+
+ <listitem>
+
+ <para>
+
+ 有理数多項式伝達関数
+
+ (<link linkend="syslin">syslin</link>参照).
+
+ これは,以下となります:
+
+ <literal>hs=gain*syslin("c",real(poly(zers,"s")),
+
+ real(poly(pols,"s")))
+
+ </literal>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>pols</term>
+
+ <listitem>
+
+ <para>行ベクトル: 伝達関数の極</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>zers</term>
+
+ <listitem>
+
+ <para>行ベクトル: 伝達関数のゼロ</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>gain</term>
+
+ <listitem>
+
+ <para>スカラー: 伝達関数のゲイン</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ omegaをカットオフ周波数とするアナログローパスフィルタを作成します.
+
+ この関数は,
+
+ <link linkend="zpbutt">zpbutt</link>,
+
+ <link linkend="zpch1">zpch1</link>,
+
+ <link linkend="zpch2">zpch2</link>
+
+ および<link linkend="zpell">zpell</link>関数のドライバです.
+
+ </para>
+
+ <para>
+
+ バターワースフィルタは通過域にリップルを有さず,
+
+ 阻止域においてゼロ方向に緩やかにロールオフします.
+
+ 他のフィルタ型は通過域または阻止域に非単調リップルを
+
+ 有するのに対して,
+
+ バターワースフィルタは,omegaについてゲインが単調に
+
+ 変換する関数を有します.
+
+ バターワースフィルタは,他のフィルタよりも
+
+ 通過域でより線形な位相応答を有します.
+
+ </para>
+
+ <para>
+
+ チェビシェフフィルタは,バターワースフィルタに比べ,
+
+ より急なロールオフと,より大きな通過域リップル(I型)または
+
+ 阻止域リップル(II型)を有します.
+
+ チェビシェフフィルタは,フィルタの範囲において
+
+ 理想化されたフィルタと実際のフィルタの間の
+
+ 誤差を最小化する特性を有しますが,
+
+ 通過域にリップルを有します.
+
+ </para>
+
+ <para>
+
+ 楕円フィルタは通過域と阻止域の両方で
+
+ 均一化したリップル特性を有します.
+
+ 各バンドにおけるリップルの量は独立に調整でき,
+
+ リップルの値を指定された場合,
+
+ 同じ次数の他のフィルタでは,
+
+ 通過域と阻止域の間で,より速いゲインの遷移を実現できません.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+//Evaluate magnitude response of the filter
+fcut=5; //hz
+n=7;//filter order
+hc1=analpf(n,'cheb1',[0.1 0],fcut*2*%pi);
+hc2=analpf(n,'cheb2',[0 0.1],fcut*2*%pi);
+he=analpf(n,'ellip',[0.1 0.1],fcut*2*%pi);
+hb=analpf(n,'butt',[0 0],fcut*2*%pi);
+hc1.dt='c';hc2.dt='c';he.dt='c';hb.dt='c';
+clf();
+[fr, hf]=repfreq(hc1,0,15);
+plot(fr,abs(hf),'b')
+[fr, hf]=repfreq(hc2,0,15);
+plot(fr,abs(hf),'y')
+[fr, hf]=repfreq(he,0,15);
+plot(fr,abs(hf),'r')
+[fr, hf]=repfreq(hb,0,15);
+plot(fr,abs(hf),'c')
+
+legend(["Chebyshev I","Chebyshev II","Elliptic","Butterworth"]);
+xgrid()
+xlabel("Frequency (Hz)")
+ylabel("Gain")
+title("Analog filters of order 7")
+ ]]></programlisting>
+
+ <para>
+
+ <scilab:image>
+ fcut=5; //hz
+ n=7;//filter order
+ hc1=analpf(n,'cheb1',[0.1 0],fcut*2*%pi);
+ hc2=analpf(n,'cheb2',[0 0.1],fcut*2*%pi);
+ he=analpf(n,'ellip',[0.1 0.1],fcut*2*%pi);
+ hb=analpf(n,'butt',[0 0],fcut*2*%pi);
+ hc1.dt='c';hc2.dt='c';he.dt='c';hb.dt='c';
+ clf();
+ [fr, hf]=repfreq(hc1,0,15);
+ plot(fr,abs(hf),'b')
+ [fr, hf]=repfreq(hc2,0,15);
+ plot(fr,abs(hf),'g')
+ [fr, hf]=repfreq(he,0,15);
+ plot(fr,abs(hf),'r')
+ [fr, hf]=repfreq(hb,0,15);
+ plot(fr,abs(hf),'c')
+
+ legend(["Chebyshev I","Chebyshev II","Elliptic","Butterworth"]);
+ xgrid()
+ xlabel("Frequency (Hz)")
+ ylabel("Gain")
+ title("Analog filters of order 7")
+ </scilab:image>
+
+ </para>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="repfreq">repfreq</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="bode">bode</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="csim">csim</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="syslin">syslin</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/buttmag.xml b/modules/signal_processing/help/ja_JP/filters/buttmag.xml
new file mode 100755
index 000000000..cb460595d
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/buttmag.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="buttmag">
+
+ <refnamediv>
+
+ <refname>buttmag</refname>
+
+ <refpurpose>バターワースフィルタの応答</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[h]=buttmag(order,omegac,sample)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>order</term>
+
+ <listitem>
+
+ <para>整数: フィルタ次数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>omegac</term>
+
+ <listitem>
+
+ <para>実数 : カットオフ周波数(単位:rad/s)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>sample</term>
+
+ <listitem>
+
+ <para>
+
+ 角周波数の実数ベクトル(単位:rad/s),
+
+ ただし,伝送を評価する必要があります.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>h</term>
+
+ <listitem>
+
+ <para>サンプル点におけるバターワースフィルタの値</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ バターワースフィルタの二乗振幅応答
+
+ <literal>omegac</literal> = カットオフ周波数 ;
+
+ <literal>sample</literal> = サンプル周波数
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+//バターワースフィルタの二乗振幅応答
+h=buttmag(13,300,1:1000);
+mag=20*log(h)'/log(10);
+plot2d((1:1000)',mag,[2],"011"," ",[0,-180,1000,20])
+ ]]></programlisting>
+
+ <scilab:image><![CDATA[
+h=buttmag(13,300,1:1000);
+mag=20*log(h)'/log(10);
+plot2d((1:1000)',mag,[2],"011"," ",[0,-180,1000,20])
+]]> </scilab:image>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/casc.xml b/modules/signal_processing/help/ja_JP/filters/casc.xml
new file mode 100755
index 000000000..55db2f2c8
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/casc.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="casc">
+
+ <refnamediv>
+
+ <refname>casc</refname>
+
+ <refpurpose>係数からフィルタのカスケード実現を作成</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[cels]=casc(x,z)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>
+
+ (4xN)-行列. この各列は1つのカスケード要素で,
+
+ その最初の2列のエントリは分子の係数,次の2列のエントリは
+
+ 分母の係数です
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>z</term>
+
+ <listitem>
+
+ <para>カスケード変数を表す文字列</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>cels</term>
+
+ <listitem>
+
+ <para>結果のカスケード表現</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 係数の行列からフィルタのカスケード実現を作成します
+
+ (ユーティリティ関数).
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+x=[1,2,3;4,5,6;7,8,9;10,11,12]
+cels=casc(x,'z')
+ ]]></programlisting>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/cheb1mag.xml b/modules/signal_processing/help/ja_JP/filters/cheb1mag.xml
new file mode 100755
index 000000000..dfe66c938
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/cheb1mag.xml
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="cheb1mag">
+
+ <refnamediv>
+
+ <refname>cheb1mag</refname>
+
+ <refpurpose>1型チェビシェフフィルタの応答</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[h2]=cheb1mag(n,omegac,epsilon,sample)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>整数 : フィルタ次数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>omegac</term>
+
+ <listitem>
+
+ <para>実数 :カットオフ周波数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>epsilon</term>
+
+ <listitem>
+
+ <para>実数 : 通過域のリップル</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>sample</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>cheb1mag</literal>を評価する周波数のベクトル
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>h2</term>
+
+ <listitem>
+
+ <para>サンプル点におけるチェビシェフI型フィルタ</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ I型チェビシェフフィルタの二乗振幅応答.
+
+ </para>
+
+ <para>
+
+ <literal>omegac</literal>=通過域のエッジ.
+
+ </para>
+
+ <para>
+
+ <literal>epsilon</literal>は,
+
+ <literal>1/(1+epsilon^2)</literal>=通過域のリップル,となるような
+
+ 値です.
+
+ </para>
+
+ <para>
+
+ <literal>sample</literal>は二乗振幅応答を求める周波数のベクトルです.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+//チェビシェフ; 通過域のリップル
+n=13;epsilon=0.2;omegac=3;sample=0:0.05:10;
+h=cheb1mag(n,omegac,epsilon,sample);
+plot2d(sample,h)
+xtitle('','frequencies','magnitude')
+ ]]></programlisting>
+
+ <scilab:image><![CDATA[
+n=13;epsilon=0.2;omegac=3;samples=0:0.05:10;
+h=cheb1mag(n,omegac,epsilon,samples);
+plot2d(samples,h)
+xtitle('','frequencies','magnitude')
+]]> </scilab:image>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="buttmag">buttmag</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/cheb2mag.xml b/modules/signal_processing/help/ja_JP/filters/cheb2mag.xml
new file mode 100755
index 000000000..dee2478cb
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/cheb2mag.xml
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="cheb2mag">
+
+ <refnamediv>
+
+ <refname>cheb2mag</refname>
+
+ <refpurpose>2型チェビシェフフィルタの応答</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[h2]=cheb2mag(n,omegar,A,sample)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>整数 ;フィルタの次数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>omegar</term>
+
+ <listitem>
+
+ <para>実数スカラー : カットオフ周波数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>A</term>
+
+ <listitem>
+
+ <para>阻止域における減衰</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>sample</term>
+
+ <listitem>
+
+ <para>cheb2mag を評価する周波数のベクトル</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>h2</term>
+
+ <listitem>
+
+ <para>サンプル点におけるチェビシェフ II型フィルタの値のベクトル</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 2型チェビシェフフィルタの二乗振幅応答.
+
+ </para>
+
+ <para>
+
+ <literal>omegar</literal> = 阻止域のエッジ, <literal>sample</literal> =
+
+ 二乗振幅<literal>h2</literal>を取得する周波数のベクトル.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+//チェビシェフ; 阻止域のリップル
+n=10;omegar=6;A=1/0.2;Samples=0.0001:0.05:10;
+h2=cheb2mag(n,omegar,A,Samples);
+plot(Samples,log(h2)/log(10))
+xtitle("", "frequencies", "magnitude in dB");
+//周波数のエッジをプロット
+minval=(-max(-log(h2)))/log(10);
+plot2d([omegar;omegar],[minval;0],[2],"000");
+//阻止域のエッジにおける減衰(単位:dB)を計算
+attenuation=-log(A*A)/log(10);
+plot2d(Samples',attenuation*ones(Samples)',[5],"000")
+ ]]></programlisting>
+
+ <scilab:image><![CDATA[
+n=10;omegar=6;A=1/0.2;Samples=0.0001:0.05:10;
+h2=cheb2mag(n,omegar,A,Samples);
+plot(Samples,log(h2)/log(10))
+xtitle("", "frequencies", "magnitude in dB");
+minval=(-max(-log(h2)))/log(10);
+plot2d([omegar;omegar],[minval;0],[2],"000");
+attenuation=-log(A*A)/log(10);
+plot2d(Samples',attenuation*ones(Samples)',[5],"000")
+]]> </scilab:image>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="cheb1mag">cheb1mag</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/convol.xml b/modules/signal_processing/help/ja_JP/filters/convol.xml
new file mode 100755
index 000000000..3768a391e
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/convol.xml
@@ -0,0 +1,238 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="convol" xml:lang="ja">
+
+ <refnamediv>
+
+ <refname>convol</refname>
+
+ <refpurpose>畳込み(コンボリューション)</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>
+
+ [y]=convol(h,x)
+
+ [y,e1]=convol(h,x,e0)
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>h</term>
+
+ <listitem>
+
+ <para>ベクトル, 最初の入力シーケンス ("短い" シーケンス) </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>ベクトル, 第2の入力シーケンス ( "長い" シーケンス)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>e0</term>
+
+ <listitem>
+
+ <para>ベクトル,オーバーラップ加算のための前の結果の末尾 (最初のコールでは使用されません)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>ベクトル, 畳込み. </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>e1</term>
+
+ <listitem>
+
+ <para>オーバーラップ加算のための新規結果の末尾 (最後のコールでは使用されません)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ fftを用いて2つの離散シーケンスの畳込み <literal>y= h*x</literal>
+
+ を計算します.
+
+ 畳込みは以下のように定義されます:
+
+ </para>
+
+ <para>
+
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata>
+ <mml:math>
+ <mml:semantics>
+ <mml:mrow>
+ <mml:msub>
+ <mml:mi>y</mml:mi>
+ <mml:mi>k</mml:mi>
+ </mml:msub>
+ <mml:mo mml:stretchy="false">=</mml:mo>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:msub>
+ <mml:mo mml:stretchy="false">∑</mml:mo>
+ <mml:mi>j</mml:mi>
+ </mml:msub>
+ <mml:msub>
+ <mml:mi>h</mml:mi>
+ <mml:mi>j</mml:mi>
+ </mml:msub>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">∗</mml:mo>
+ <mml:msub>
+ <mml:mi>x</mml:mi>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:mi>k</mml:mi>
+ <mml:mo mml:stretchy="false">+</mml:mo>
+ <mml:mn>1</mml:mn>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">−</mml:mo>
+ <mml:mi>j</mml:mi>
+ </mml:mrow>
+ </mml:msub>
+ </mml:mrow>
+ </mml:mrow>
+ <mml:annotation mml:encoding="StarMath 5.0">y_k=sum_j h_j*x_{k+1-j}
+ </mml:annotation>
+ </mml:semantics>
+ </mml:math>
+ </imagedata>
+ </imageobject>
+ </inlinemediaobject>
+ </para>
+
+ <para>オーバーラップ加算法を使用できます.</para>
+
+ <para>オーバーラップ加算の使用例:
+
+ <literal>x=[x1,x2,...,xNm1,xN]</literal>の時,
+
+ 最初のコールは,
+
+ <literal>[y1,e1]=convol(h,x1);</literal>
+
+ その後のコール :
+
+ <literal>[yk,ek]=convol(h,xk,ekm1)</literal>; 最後のコール :
+
+ <literal>[yN]=convol(h,xN,eNm1);</literal> 結果は,
+
+ <literal>y=[y1,y2,...,yNm1,yN]</literal>.
+
+ </para>
+
+ <para>
+
+ 畳込みの定義に基づくアルゴリズムは,多項式の積として実装されます:
+
+ <literal>y=convol(h,x)</literal>は,
+
+ <literal>y=coeff(poly(h,'z','c')*poly(x,'z','c')</literal>と等価ですが、
+
+ <literal>x</literal>が"長い"配列の場合には,はるかに効率的です.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+x=1:3;
+h1=[1,0,0,0,0];h2=[0,1,0,0,0];h3=[0,0,1,0,0];
+x1=convol(h1,x),x2=convol(h2,x),x3=convol(h3,x),
+convol(h1+h2+h3,x)
+p1=poly(x,'x','coeff')
+p2=poly(h1+h2+h3,'x','coeff')
+p1*p2
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="corr">corr</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="fft">fft</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="pspect">pspect</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/ell1mag.xml b/modules/signal_processing/help/ja_JP/filters/ell1mag.xml
new file mode 100755
index 000000000..0fb37bde6
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/ell1mag.xml
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="ell1mag">
+
+ <refnamediv>
+
+ <refname>ell1mag</refname>
+
+ <refpurpose>楕円フィルタの振幅</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[v]=ell1mag(eps,m1,z)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>eps</term>
+
+ <listitem>
+
+ <para>
+
+ 通過域のリップル=<literal>1/(1+eps^2)</literal>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>m1</term>
+
+ <listitem>
+
+ <para>
+
+ 阻止域のリップル=<literal>1/(1+(eps^2)/m1)</literal>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>z</term>
+
+ <listitem>
+
+ <para>複素平面上の標本ベクトルの値</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>v</term>
+
+ <listitem>
+
+ <para>標本点における楕円フィルタの値</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 楕円フィルタの二乗振幅を得る際に使用される関数.
+
+ 通常は,<literal>m1=eps*eps/(a*a-1)</literal>です.
+
+ <literal>s=%sn(z,m1)</literal>として,
+
+ <literal>v=real(ones(z)./(ones(z)+eps*eps*s.*s))</literal>を返します.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+deff('[alpha,BeTa]=alpha_beta(n,m,m1)',...
+'if 2*int(n/2)==n then, BeTa=K1; else, BeTa=0;end;...
+alpha=%k(1-m1)/%k(1-m);')
+epsilon=0.1;A=10; //リップルパラメータ
+m1=(epsilon*epsilon)/(A*A-1);n=5;omegac=6;
+m=find_freq(epsilon,A,n);omegar = omegac/sqrt(m)
+%k(1-m1)*%k(m)/(%k(m1)*%k(1-m))-n //チェック...
+[alpha,Beta]=alpha_beta(n,m,m1)
+alpha*delip(1,sqrt(m))-n*%k(m1) //チェック
+sample=0:0.01:20;
+//等高線に正の実軸をマップ...
+z=alpha*delip(sample/omegac,sqrt(m))+Beta*ones(sample);
+plot(sample,ell1mag(epsilon,m1,z))
+ ]]></programlisting>
+
+ <scilab:image><![CDATA[
+deff('[alpha,BeTa]=alpha_beta(n,m,m1)',...
+'if 2*int(n/2)==n then, BeTa=K1; else, BeTa=0;end;...
+alpha=%k(1-m1)/%k(1-m);')
+epsilon=0.1;A=10; //ripple parameters
+m1=(epsilon*epsilon)/(A*A-1);n=5;omegac=6;
+m=find_freq(epsilon,A,n);omegar = omegac/sqrt(m)
+%k(1-m1)*%k(m)/(%k(m1)*%k(1-m))-n //Check...
+[alpha,Beta]=alpha_beta(n,m,m1)
+alpha*delip(1,sqrt(m))-n*%k(m1) //Check
+samples=0:0.01:20;
+//Now we map the positive real axis into the contour...
+z=alpha*delip(samples/omegac,sqrt(m))+Beta*ones(samples);
+plot(samples,ell1mag(epsilon,m1,z))
+]]> </scilab:image>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="buttmag">buttmag</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/eqfir.xml b/modules/signal_processing/help/ja_JP/filters/eqfir.xml
new file mode 100755
index 000000000..1ce06831d
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/eqfir.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="eqfir">
+
+ <refnamediv>
+
+ <refname>eqfir</refname>
+
+ <refpurpose>FIRフィルタのミニマックス近似</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[hn]=eqfir(nf,bedge,des,wate)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>nf</term>
+
+ <listitem>
+
+ <para>指定する出力フィルタ点の数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>bedge</term>
+
+ <listitem>
+
+ <para>Mx2 行列で, 各バンドの境界の組を指定</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>des</term>
+
+ <listitem>
+
+ <para>M次ベクトルで,各バンドで指定する振幅を指定</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>wate</term>
+
+ <listitem>
+
+ <para>M次ベクトルで,各バンドの誤差の相対重みを指定</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>hn</term>
+
+ <listitem>
+
+ <para>出力:線形位相FIRフィルタの係数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ マルチバンド,線形位相,FIRフィルタのミニマックス近似
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+hn=eqfir(33,[0 .2;.25 .35;.4 .5],[0 1 0],[1 1 1]);
+[hm,fr]=frmag(hn,256);
+plot(fr,hm),
+ ]]></programlisting>
+
+ <scilab:image><![CDATA[
+hn=eqfir(33,[0 .2;.25 .35;.4 .5],[0 1 0],[1 1 1]);
+[hm,fr]=frmag(hn,256);
+plot(fr,hm),
+]]> </scilab:image>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/eqiir.xml b/modules/signal_processing/help/ja_JP/filters/eqiir.xml
new file mode 100755
index 000000000..a023dfa1f
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/eqiir.xml
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="eqiir" xml:lang="ja">
+
+ <refnamediv>
+
+ <refname>eqiir</refname>
+
+ <refpurpose>IIRフィルタの設計</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[cells,fact,zzeros,zpoles]=eqiir(ftype,approx,om,deltap,deltas)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>ftype</term>
+
+ <listitem>
+
+ <para>
+
+ フィルタの型(<literal>'lp','hp','sb','bp'</literal>)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>approx</term>
+
+ <listitem>
+
+ <para>設計近似
+
+ (<literal>'butt','cheb1','cheb2','ellip'</literal>)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>om</term>
+
+ <listitem>
+
+ <para>カットオフ周波数のベクトル(要素数4,単位:rad)
+
+ <literal>om=[om1,om2,om3,om4]</literal>, <literal>0 &lt;= om1 &lt;=
+
+ om2 &lt;= om3 &lt;= om4 &lt;= pi
+
+ </literal>
+
+ .
+
+ <literal>ftype</literal>='lp' または 'hp'の場合,
+
+ <literal>om3</literal> および
+
+ <literal>om4</literal> は使用されず,0に設定することができます.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>deltap</term>
+
+ <listitem>
+
+ <para>
+
+ 通過域のリップル. <literal>0&lt;= deltap
+
+ &lt;=1
+
+ </literal>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>deltas</term>
+
+ <listitem>
+
+ <para>
+
+ 阻止域のリップル. <literal>0&lt;= deltas
+
+ &lt;=1
+
+ </literal>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>cells</term>
+
+ <listitem>
+
+ <para>2次セルとしてのフィルタの実現</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fact</term>
+
+ <listitem>
+
+ <para>正規化定数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>zzeros</term>
+
+ <listitem>
+
+ <para>z領域におけるゼロ</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>zpoles</term>
+
+ <listitem>
+
+ <para>z領域における極</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ <link linkend="syredi">syredi</link>に基づくIIRフィルタの設計.
+
+ </para>
+
+ <para>得られるフィルタは,
+
+ <literal>h(z)=fact</literal>*(<literal>cells</literal>) です.
+
+ </para>
+
+ <para>つまり,
+
+ <literal>hz=fact*prod(cells.num)./prod(cells.den)</literal>です.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+[cells,fact,zzeros,zpoles]=eqiir('lp','ellip',[2*%pi/10,4*%pi/10],0.02,0.001)
+h=fact*poly(zzeros,'z')/poly(zpoles,'z')
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="eqfir">eqfir</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="iir">iir</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="syredi">syredi</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/faurre.xml b/modules/signal_processing/help/ja_JP/filters/faurre.xml
new file mode 100755
index 000000000..604d8bbc9
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/faurre.xml
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="faurre">
+
+ <refnamediv>
+
+ <refname>faurre</refname>
+
+ <refpurpose>Faurreアルゴリズムによりフィルタの計算</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[P,R,T]=faurre(n,H,F,G,R0)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>反復回数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>H, F, G</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>y</literal>系列の共分散から推定.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>R0</term>
+
+ <listitem>
+
+ <para>E(yk*yk')</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>P</term>
+
+ <listitem>
+
+ <para>n回の反復後のリカッチ方程式の解.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>R, T</term>
+
+ <listitem>
+
+ <para>フィルタのゲイン行列.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ この関数は代数リカッチ方程式の最小解を反復計算により求め,
+
+ フィルタモデルの行列<literal>R</literal> および <literal>T</literal>を
+
+ 出力します.
+
+ このアルゴリズムは解Pを以下のような行列Pnの系列の上限値として計算します
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+ -1
+Pn+1=F*Pn*F'+(G-F*Pn*h')*(R0-H*Pn*H') *(G'-H*Pn*F')
+ -1
+P0=G*R0 *G'
+ ]]></programlisting>
+
+ <para>
+
+ この手法は特にFが単位円の近傍に極を有する時に
+
+ 収束しないことに注意してください.
+
+ この場合には,srfaur関数を使用する方が良いでしょう.
+
+ </para>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="srfaur">srfaur</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="lindquist">lindquist</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="phc">phc</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/ffilt.xml b/modules/signal_processing/help/ja_JP/filters/ffilt.xml
new file mode 100755
index 000000000..39aecf5b3
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/ffilt.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="ffilt">
+
+ <refnamediv>
+
+ <refname>ffilt</refname>
+
+ <refpurpose>FIRローパスフィルタの係数</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[x]=ffilt(ft,n,fl,fh)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>ft</term>
+
+ <listitem>
+
+ <para>
+
+ フィルタの型.ただし,<literal>ft</literal>の値には以下の値を指定できます
+
+ </para>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>"lp" </term>
+
+ <listitem>
+
+ <para>ローパスフィルタの場合</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>"hp" </term>
+
+ <listitem>
+
+ <para>ハイパスフィルタの場合</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>"bp" </term>
+
+ <listitem>
+
+ <para>バンドパスフィルタの場合</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>"sb" </term>
+
+ <listitem>
+
+ <para>ストップバンドフィルタの場合</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>整数 (指定するフィルタ標本の数)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fl</term>
+
+ <listitem>
+
+ <para>実数 (低周波数カットオフ)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fh</term>
+
+ <listitem>
+
+ <para>実数 (高周波数カットオフ)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>フィルタ係数のベクトル</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ FIRローパス, ハイパス, バンドパス, またはストップバンドフィルタの
+
+ <literal>n</literal>個の係数を取得します.
+
+ ローパスおよびハイパスフィルタの場合,<literal>fl</literal>に
+
+ カットオフ周波数を1つ指定する必要があります.
+
+ バンドパスおよびストップバンドフィルタの場合,2つのカットオフ周波数を
+
+ 指定する必要があり,
+
+ 低域側を<literal>fl</literal>,高域側を<literal>fh</literal>
+
+ に指定します.
+
+ </para>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/filter.xml b/modules/signal_processing/help/ja_JP/filters/filter.xml
new file mode 100755
index 000000000..ad3ab1e0d
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/filter.xml
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2004-2007 - INRIA - Vincent COUVERT
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="filter">
+
+ <refnamediv>
+
+ <refname>filter</refname>
+
+ <refpurpose>デジタルフィルタによりデータ系列のフィルタ処理を行う</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼出し手順</title>
+
+ <synopsis>[y,zf] = filter(num,den,x [,zi])</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>num</term>
+
+ <listitem>
+
+ <para>実数ベクトル : フィルタの分子の係数(降順)または多項式.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>den</term>
+
+ <listitem>
+
+ <para>実数ベクトル : フィルタの分母の係数(降順)または多項式.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>実数行ベクトル : 入力信号</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>zi</term>
+
+ <listitem>
+
+ <para>実数行ベクトルの長さ
+
+ <literal>max(length(a),length(b))-1</literal>:
+
+ "直接型 II 転置"状態空間表現に関連した初期条件.
+
+ デフォルト値はゼロを要素とするベクトルです.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>実数行ベクトル : フィルタ処理された信号. </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>zf</term>
+
+ <listitem>
+
+ <para>実数行ベクトル : 終端状態量.
+
+ フィルタの次のバッチ処理で入力信号として使用できます.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ この関数は"直接型 II 転置"実装によるデジタルフィルタを用いて
+
+ データ系列をフィルタ処理します.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>参考文献</title>
+
+ <para>
+
+ Oppenheim, A. V. and R.W. Schafer. Discrete-Time Signal Processing, Englewood Cliffs, NJ: Prentice-Hall, 1989, pp. 311-312.
+
+ </para>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="flts">flts</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="rtitr">rtitr</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="ltitr">ltitr</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/find_freq.xml b/modules/signal_processing/help/ja_JP/filters/find_freq.xml
new file mode 100755
index 000000000..a3a17c1db
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/find_freq.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="find_freq">
+
+ <refnamediv>
+
+ <refname>find_freq</refname>
+
+ <refpurpose>楕円フィルタ設計用に互換パラメータを得る</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[m]=find_freq(epsilon,A,n)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>epsilon</term>
+
+ <listitem>
+
+ <para>通過域のリップル</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>A</term>
+
+ <listitem>
+
+ <para>阻止域の減衰</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>フィルタ次数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>m</term>
+
+ <listitem>
+
+ <para>楕円フィルタの構築を行う周波数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ <literal>m1=(epsilon*epsilon)/(A*A-1)</literal>として,
+
+ <literal>n=K(1-m1)K(m)/(K(m1)K(1-m))</literal>となるような
+
+ mを探します.
+
+ </para>
+
+ <para>
+
+ <literal>m= omegar^2/omegac^2</literal>の場合, パラメータ
+
+ <literal>epsilon,A,omegac,omegar</literal> および <literal>n</literal>は
+
+ 楕円フィルタの雛形の定義と互換になります.
+
+ ここで,
+
+ <literal>K=%k(m)</literal> は,パラメータ<literal>m</literal>を指定した
+
+ 完全楕円積分です.
+
+ </para>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="percentk">%k</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/frmag.xml b/modules/signal_processing/help/ja_JP/filters/frmag.xml
new file mode 100755
index 000000000..6577f7b6e
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/frmag.xml
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="frmag">
+
+ <refnamediv>
+
+ <refname>frmag</refname>
+
+ <refpurpose>FIRおよびIIRフィルタの振幅</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>
+
+ [xm,fr]=frmag(sys,npts)
+
+ [xm,fr]=frmag(num,den,npts)
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>sys</term>
+
+ <listitem>
+
+ <para>
+
+ 1入力,1出力離散伝達関数,または多項式または
+
+ 多項式係数のベクトル,フィルタ.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>num</term>
+
+ <listitem>
+
+ <para>
+
+ 多項式または多項式係数のベクトル,
+
+ フィルタの分子.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>den</term>
+
+ <listitem>
+
+ <para>多項式または多項式係数のベクトル,
+
+ フィルタの分母(デフォルト値は1).
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>npts</term>
+
+ <listitem>
+
+ <para>整数, 周波数応答の点数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>xm</term>
+
+ <listitem>
+
+ <para>
+
+ 点 <literal>fr</literal>における周波数応答の振幅のベクトル.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fr</term>
+
+ <listitem>
+
+ <para>振幅を評価する正規化周波数範囲における点.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ FIRおよびIIRフィルタの周波数応答の振幅を計算します.
+
+ フィルタは1または2個の係数のベクトル,
+
+ 1また2つの多項式,または離散伝達関数の出力
+
+ で記述することができます.
+
+ </para>
+
+ <para>周波数刻みは
+
+ <literal>fr=linspace(0,1/2,npts)</literal>で指定されます.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+hz=iir(3,'bp','cheb1',[.15 .25],[.08 .03]);
+[hzm,fr]=frmag(hz,256);
+plot(fr,hzm)
+hz=iir(3,'bp','ellip',[.15 .25],[.08 .03]);
+[hzm,fr]=frmag(hz,256);
+plot(fr,hzm,'r')
+ ]]></programlisting>
+
+ <scilab:image><![CDATA[
+hz=iir(3,'bp','cheb1',[.15 .25],[.08 .03]);
+[hzm,fr]=frmag(hz,256);
+plot(fr,hzm)
+hz=iir(3,'bp','ellip',[.15 .25],[.08 .03]);
+[hzm,fr]=frmag(hz,256);
+plot(fr,hzm,'r')
+]]> </scilab:image>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="iir">iir</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="eqfir">eqfir</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="repfreq">repfreq</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="calfrq">calfrq</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="phasemag">phasemag</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/fsfirlin.xml b/modules/signal_processing/help/ja_JP/filters/fsfirlin.xml
new file mode 100755
index 000000000..4b2a3dff3
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/fsfirlin.xml
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="fsfirlin">
+
+ <refnamediv>
+
+ <refname>fsfirlin</refname>
+
+ <refpurpose>周波数標本法によるFIR, 線形位相フィルタの設計</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[hst]=fsfirlin(hd,flag)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>hd</term>
+
+ <listitem>
+
+ <para>指定する周波数応答標本のベクトル</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>flag</term>
+
+ <listitem>
+
+ <para>値は1または 2で, 1型または2型設計を選択します</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>hst</term>
+
+ <listitem>
+
+ <para>
+
+ 周波数グリッドにおける近似的な連続応答を指定するベクトル
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 周波数標本法による
+
+ FIR,線形位相フィルタの設計用関数です.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+// fsfirlinマクロの周波数標本法によるFIRフィルタ設計への適用例
+//
+// 2つのフィルタを設計します: 最初のフィルタ(応答 hst1)は
+// 通過域と阻止域の間で0から1までの急峻な遷移を有します;
+// 2番目のフィルタ(応答 hst2)は平滑化のために各遷移域に1個の
+// 標本(振幅 0.5)を有します.
+//
+hd=[zeros(1,15) ones(1,10) zeros(1,39)];// 目標とする標本
+hst1=fsfirlin(hd,1);// 遷移域に標本がないフィルタ
+hd(15)=.5;hd(26)=.5;// 遷移域の標本
+hst2=fsfirlin(hd,1);// 対応するフィルタ
+pas=1/prod(size(hst1))*.5;
+fg=0:pas:.5;// 正規化した周波数グリッド
+plot2d([1 1].*.fg(1:257)',[hst1' hst2']);
+
+// 2番目の例
+hd=[0*ones(1,15) ones(1,10) 0*ones(1,39)];// 目標とする標本
+hst1=fsfirlin(hd,1);// 遷移域に標本がないフィルタ
+hd(15)=.5;hd(26)=.5;// 遷移域の標本
+hst2=fsfirlin(hd,1);// 対応するフィルタ
+pas=1/prod(size(hst1))*.5;
+fg=0:pas:.5;// 正規化した周波数グリッド
+n=prod(size(hst1))
+plot(fg(1:n),hst1);
+plot2d(fg(1:n)',hst2',[3],"000");
+ ]]></programlisting>
+
+ <scilab:image><![CDATA[
+hd=[zeros(1,15) ones(1,10) zeros(1,39)];//desired samples
+hst1=fsfirlin(hd,1);//filter with no sample in the transition
+hd(15)=.5;hd(26)=.5;//samples in the transition bands
+hst2=fsfirlin(hd,1);//corresponding filter
+pas=1/prod(size(hst1))*.5;
+fg=0:pas:.5;//normalized frequencies grid
+plot2d([1 1].*.fg(1:257)',[hst1' hst2']);
+// 2nd example
+hd=[0*ones(1,15) ones(1,10) 0*ones(1,39)];//desired samples
+hst1=fsfirlin(hd,1);//filter with no sample in the transition
+hd(15)=.5;hd(26)=.5;//samples in the transition bands
+hst2=fsfirlin(hd,1);//corresponding filter
+pas=1/prod(size(hst1))*.5;
+fg=0:pas:.5;//normalized frequencies grid
+n=prod(size(hst1))
+plot(fg(1:n),hst1);
+plot2d(fg(1:n)',hst2',[3],"000");
+]]> </scilab:image>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="ffilt">ffilt</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="wfir">wfir</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/group.xml b/modules/signal_processing/help/ja_JP/filters/group.xml
new file mode 100755
index 000000000..c80c4a915
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/group.xml
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="group">
+
+ <refnamediv>
+
+ <refname>group</refname>
+
+ <refpurpose>デジタルフィルタの群遅延</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>
+
+ [tg [,fr]] = group(npts, H) (SISO伝達関数を指定してコール)
+
+ [tg [,fr]] = group(npts, C) (伝達関数, カスケードした2次表現のベクトルを指定してコール)
+
+
+
+ [tg [,fr]] = group(npts, F) (FIRフィルタ係数のベクトルを指定してコール)
+
+ [tg [,fr]] = group(npts, a1i, a2i, b1i, b2i) (4要素ベクトル, カスケードした2次Deczky表現を指定してコール)
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>npts</term>
+
+ <listitem>
+
+ <para>整数 : 群遅延の計算を行う点の数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>a1i</term>
+
+ <listitem>
+
+ <para>
+
+ この変数はフィルタの伝達関数で,係数, 多項式, 有理多項式, またはカスケード
+
+ 多項式形式で指定します(下記参照).
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>a2i</term>
+
+ <listitem>
+
+ <para>多項式係数形式の場合,これは係数のベクトルです</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>b1i</term>
+
+ <listitem>
+
+ <para>多項式係数形式の場合,これは係数のベクトルです</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>b2i</term>
+
+ <listitem>
+
+ <para>多項式係数形式の場合,これは係数のベクトルです</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>tg</term>
+
+ <listitem>
+
+ <para>グリッドfrで評価された群遅延の値</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fr</term>
+
+ <listitem>
+
+ <para>群遅延が評価される周波数の値のグリッド</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 伝達関数h(z)のデジタルフィルタの群遅延を計算します.
+
+ </para>
+
+ <para>
+
+ フィルタの仕様は,係数形式,多項式形式,有理多項式形式,
+
+ カスケード多項式形式,または多項式係数形式とすることが
+
+ できます.
+
+ </para>
+
+ <para>
+
+ 多項式係数形式の場合,伝達関数は以下の式で定式化されます.
+
+ </para>
+
+ <para>
+
+ <literal>h(z)=prod(a1i+a2i*z+z**2)/prod(b1i+b2i*z+z^2)</literal>
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+ s = poly(0, "s");
+ h_cont = syslin("c", 1/(s-10));
+ h = ss2tf(cls2dls(tf2ss(h_cont), 0.1));
+ [tg, fr] = group(100, h);
+ plot(fr, tg)
+ ]]></programlisting>
+
+ <scilab:image><![CDATA[
+s = poly(0, "s");
+h_cont = syslin("c", 1/(s-10));
+h = ss2tf(cls2dls(tf2ss(h_cont), 0.1));
+[tg, fr] = group(100, h);
+plot(fr, tg)
+]]> </scilab:image>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/iir.xml b/modules/signal_processing/help/ja_JP/filters/iir.xml
new file mode 100755
index 000000000..4d40cc980
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/iir.xml
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="iir" xml:lang="ja">
+
+ <refnamediv>
+
+ <refname>iir</refname>
+
+ <refpurpose>iir デジタルフィルタ</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[hz]=iir(n,ftype,fdesign,frq,delta)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>正の整数値, フィルタの次数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>ftype</term>
+
+ <listitem>
+
+ <para>フィルタの型を指定する文字列, 以下の値を使用可能:
+
+ <literal>'lp'</literal> :ローパス(低域通過),<literal>'hp'</literal> : ハイパス(高域通過)
+
+ ,<literal>'bp'</literal>: バンドパス(帯域通過),
+
+ <literal>'sb'</literal> : ストップバンド(帯域阻止).
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fdesign</term>
+
+ <listitem>
+
+ <para>アナログフィルタ設計を指定する文字列, 以下の値を指定可能:
+
+ <literal>'butt'</literal>,
+
+ <literal>'cheb1'</literal>, <literal>'cheb2'</literal> および
+
+ <literal>'ellip'</literal>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>frq</term>
+
+ <listitem>
+
+ <para>離散カットオフ周波数の要素数2のベクトル
+
+ (すなわち,<literal>0&lt;frq&lt;.5</literal>).
+
+ <literal>'lp'</literal> および
+
+ <literal>'hp'</literal> フィルタの場合,
+
+ <literal>frq(1)</literal> が使用されます.
+
+ <literal>'bp'</literal> および <literal>'sb'</literal> フィルタの場合,
+
+ <literal>frq(1)</literal> が下限カットオフ周波数,
+
+ <literal>frq(2)</literal> が上限カットオフ周波数となります.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>delta</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>cheb1</literal>,
+
+ <literal>cheb2</literal>, および <literal>ellip</literal> フィルタ用
+
+ 誤差値のベクトル(要素数:2)です.
+
+ ただし,<literal>cheb1</literal>の場合には<literal>delta(1)</literal>のみが
+
+ 使用され,<literal>cheb2</literal>の場合には<literal>delta(2)</literal>のみが
+
+ 使用されます.<literal>ellip</literal>の場合には,
+
+ <literal>delta(1)</literal> および <literal>delta(2)</literal>の両方が
+
+ 使用されます.
+
+ <literal>0&lt;delta(1),delta(2)&lt;1</literal>
+
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <para>
+
+ <literal>cheb1</literal> フィルタの場合,通過域では,
+
+ <literal>1-delta(1)&lt;ripple&lt;1</literal> です.
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <literal>cheb2</literal> フィルタの場合,阻止域では
+
+ <literal>0&lt;ripple&lt;delta(2)</literal> です.
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <literal>ellip</literal> フィルタの場合,通過域では
+
+ <literal>1-delta(1)&lt;ripple&lt;1</literal> ,阻止域では
+
+ <literal>0&lt;ripple&lt;delta(2)</literal> です.
+
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ <link linkend="analpf">アナログフィルタ</link>設計および<link linkend="bilt">双一次変換</link>を用いて
+
+ IIRデジタルフィルタを設計する関数です.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+hz=iir(3,'bp','ellip',[.15 .25],[.08 .03]);
+[hzm,fr]=frmag(hz,256);
+plot2d(fr',hzm')
+xtitle('Discrete IIR filter: band pass 0.15 < fr < 0.25 ',' ',' ');
+q=poly(0,'q'); // 遅延演算子 q=z^-1 の項で結果を表わすため
+hzd=horner(hz,1/q)
+]]> </programlisting>
+
+ <scilab:image><![CDATA[
+hz=iir(3,'bp','ellip',[.15 .25],[.08 .03]);
+[hzm,fr]=frmag(hz,256);
+plot2d(fr',hzm')
+xtitle('Discrete IIR filter: band pass 0.15 < fr < 0.25 ',' ',' ');
+]]> </scilab:image>
+
+ <programlisting role="example"><![CDATA[
+//Poles Zeros Gain filter representation
+[p,z,g]=iir(3,'bp','ellip',[.15 .25],[.08 .03]);
+g*poly(z,'z')/poly(p,'z')
+ ]]> </programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="eqfir">eqfir</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="eqiir">eqiir</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="analpf">analpf</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="bilt">bilt</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/iirgroup.xml b/modules/signal_processing/help/ja_JP/filters/iirgroup.xml
new file mode 100755
index 000000000..7cc8a7d79
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/iirgroup.xml
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="iirgroup">
+
+ <refnamediv>
+
+ <refname>iirgroup</refname>
+
+ <refpurpose>IIRフィルタの群遅延Lp最適化</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[lt,grad]=iirgroup(p,r,theta,omega,wt,td)
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>p</term>
+
+ <listitem>
+
+ <para>Lp指標</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>r</term>
+
+ <listitem>
+
+ <para>
+
+ フィルタの極およびゼロの絶対値のベクトル
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>theta</term>
+
+ <listitem>
+
+ <para>フィルタの極およびゼロの偏角のベクトル</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>omega</term>
+
+ <listitem>
+
+ <para>フィルタ仕様を指定する周波数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>wt</term>
+
+ <listitem>
+
+ <para>関数および群遅延の重み</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>td</term>
+
+ <listitem>
+
+ <para>指定する群遅延</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>lt, grad</term>
+
+ <listitem>
+
+ <para>指標および傾きの値</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ IIRフィルタを群遅延に関するLp指標に基づき最適化します.
+
+ (Rabiner &amp; Gold pp270-273).
+
+ </para>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/iirlp.xml b/modules/signal_processing/help/ja_JP/filters/iirlp.xml
new file mode 100755
index 000000000..535a06a08
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/iirlp.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="iirlp">
+
+ <refnamediv>
+
+ <refname>iirlp</refname>
+
+ <refpurpose>IIRフィルタLp最適化</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[cost,grad,ind]=iirlp(x,ind,p,[flag],lambda,omega,ad,wa,td,wt)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>p</term>
+
+ <listitem>
+
+ <para>Lp指標</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>フィルタの極およびゼロの絶対値および偏角からなる1X2 ベクトル</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>flag</term>
+
+ <listitem>
+
+ <para>
+
+ 文字列 : 振幅の場合は<literal>'a'</literal> , 群遅延の場合は'gd';
+
+ 振幅および群遅延の場合のデフォルト値.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>omega</term>
+
+ <listitem>
+
+ <para>フィルタ仕様を指定する周波数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>wa,wt</term>
+
+ <listitem>
+
+ <para>振幅および群遅延に関する重み関数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>lambda</term>
+
+ <listitem>
+
+ <para>
+
+ コストの重み (<literal>1-lambda</literal>)
+
+ (グローバルなコストを得る場合は<literal>'a'</literal> および
+
+ <literal>'gd'</literal>).
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>ad, td</term>
+
+ <listitem>
+
+ <para>振幅および群遅延の指定値</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>cost, grad</term>
+
+ <listitem>
+
+ <para>評価値および傾斜の値</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 振幅および群遅延に関するLp基準に基づき
+
+ IIRフィルタを最適化します
+
+ (Rabiner &amp; Gold pp270-273).
+
+ </para>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/kalm.xml b/modules/signal_processing/help/ja_JP/filters/kalm.xml
new file mode 100755
index 000000000..7b2315a3b
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/kalm.xml
@@ -0,0 +1,366 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="kalm">
+
+ <refnamediv>
+
+ <refname>kalm</refname>
+
+ <refpurpose>カルマン更新</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼出し手順</title>
+
+ <synopsis>[x1,p1,x,p]=kalm(y,x0,p0,f,g,h,q,r)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>f,g,h</term>
+
+ <listitem>
+
+ <para>カレントのシステム行列</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>q, r</term>
+
+ <listitem>
+
+ <para>ダイナミクスの共分散行列と観測ノイズ</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>x0,p0</term>
+
+ <listitem>
+
+ <para>t=-1までのデータに基づくt=0における状態推定量および誤差共分散</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>カレントの観測出力</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>x1,p1</term>
+
+ <listitem>
+
+ <para>t=0までのデータに基づくt=1における
+
+ 更新後の推定状態量および誤差共分散
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>
+
+ t=0までのデータに基づくt=0における
+
+ 更新後の推定状態量および誤差共分散
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ この関数は,カルマン更新と誤差共分散計算を行います.
+
+ これを行うため, 以下の状態空間モデルに基づき
+
+ <varname>f</varname>,
+
+ <varname>g</varname>, <varname>h</varname> を入力する必要があります:
+
+ </para>
+
+ <para>
+
+ <literal>
+
+ x(k+1)=<varname>f</varname>*x(k)+<varname>g</varname>*u(k)+v(k)
+
+ </literal>
+
+ </para>
+
+ <para>
+
+ <literal>
+
+ y(k)=<varname>h</varname>*x(k)+w(k)
+
+ </literal>
+
+ </para>
+
+ <para>
+
+ ただし,<literal>v(k)</literal> (<literal>w(k)</literal>に関する) はプロセスノイズ
+
+ (観測ノイズに関する)であり,
+
+ 共分散<varname>q</varname> (<varname>r</varname>に基づく)のゼロ平均ガウス白色ノイズ
+
+ に起因すると仮定します.
+
+ </para>
+
+ <para>
+
+ 厳密に述べると, カルマンフィルタは,現在の状態と誤差共分散の推定値を出力する
+
+ 再帰的推定器です.
+
+ 必要なのが前ステップの状態量推定値と現在の観測量のみであるということが
+
+ 優れた点です.
+
+ </para>
+
+ <para>
+
+ アルゴリズム:
+
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <para>
+
+ イノベーション (出力誤差):
+
+ <literal>
+
+ E=<varname>y</varname>-<varname>h</varname>*<varname>x0</varname>
+
+ </literal>
+
+ </para>
+
+ </listitem>
+
+
+
+ <listitem>
+
+ <para>
+
+ 出力の誤差共分散:
+
+ <literal>
+
+ S=<varname>h</varname>*<varname>p0</varname>*<varname>h</varname>'+<varname>r</varname>
+
+ </literal>
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ カルマンゲイン:
+
+ <literal>
+
+ K=<varname>p0</varname>*<varname>h</varname>'*S^-1
+
+ </literal>
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ 状態量の推定値の修正:
+
+ <literal>
+
+ <varname>x</varname>=<varname>x0</varname>+K*E
+
+ </literal>
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ 誤差共分散の推定値の修正:
+
+ <literal>
+
+ <varname>p</varname>=<varname>p0</varname>-K*<varname>h</varname>*<varname>p0</varname>
+
+ </literal>
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ 状態量の予測:
+
+ <literal>
+
+ <varname>x1</varname>=<varname>f</varname>*<varname>x</varname>
+
+ </literal>
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ 誤差共分散の予測:
+
+ <literal>
+
+ <varname>p1</varname>=<varname>f</varname>*<varname>p</varname>*<varname>f</varname>'+<varname>g</varname>*<varname>q</varname>*<varname>g</varname>'
+
+ </literal>
+
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>カルマンフィルタによりノイズからサイン波を抽出</title>
+
+ <programlisting role="Example"><![CDATA[
+// サイン波を作成
+w=%pi/4; // 各周波数
+T=0.1; // 周期
+t=0:T:500;
+signal=cos(w*t);
+// ノイズを有するサイン波
+v=rand(t,"normal");
+y=signal+v;
+// ノイズを有するサイン波をプロット
+subplot(2,1,1);
+plot(t,y);
+xtitle("sinusoid with noise","t");
+// システム
+n=2; // システムの次数
+f=[cos(w*T) -sin(w*T); sin(w*T) cos(w*T)];
+g=0;
+h=[1 0];
+p0=[1000 0; 0 0];
+R=1;
+Q=0;
+x0=zeros(n,1);
+// ループを初期化
+x1=x0;
+p1=p0;
+// カルマンフィルタ
+for i=1:length(t)-1
+ [x1(:,i+1),p1,x,p]=kalm(y(i),x1(:,i),p1,f,g,h,Q,R);
+end
+// サイン波(緑)と比較するために,結果を(赤で)プロット
+subplot(2,1,2);
+plot(t,signal,"color","green");
+plot(t,x1(1,:),"color","red");
+xtitle("Comparison between sinusoid (green) and extraction with Kalman filter (red)","t");
+]]>
+
+ </programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="srkf">srkf</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="sskf">sskf</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/lev.xml b/modules/signal_processing/help/ja_JP/filters/lev.xml
new file mode 100755
index 000000000..58c827b34
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/lev.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="lev">
+
+ <refnamediv>
+
+ <refname>lev</refname>
+
+ <refpurpose>Yule-Walker方程式 (Levinsonのアルゴリズム) </refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[ar,sigma2,rc]=lev(r)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>r</term>
+
+ <listitem>
+
+ <para>相関係数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>ar</term>
+
+ <listitem>
+
+ <para>自己回帰モデルパラメータ</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>sigma2</term>
+
+ <listitem>
+
+ <para>スケール定数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>rc</term>
+
+ <listitem>
+
+ <para>反射係数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ この関数は,
+
+ LevinsonのアルゴリズムによりYule-Walker方程式を解きます.
+
+ 一般に, 自己回帰プロセスの係数を推定する際に使用されます.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="Example"><![CDATA[
+b=1; // 分子
+a=[1 -0.7 0.8]; // 分母
+x=[1 zeros(1,99)]; //入力=インパルス
+data=filter(b,a,x); //実際のデータ
+a2=lev(data); //モデル化されたデータ
+a2=a2/a2(1); //正規化
+m_data=filter(1,a2,x);
+// 実際のデータとモデル化されたデータを比較
+plot(data,"color","blue","lineStyle","none","marker","d");
+plot(m_data,"color","red","lineStyle","none","marker","d");
+]]>
+
+ </programlisting>
+
+ <scilab:image>
+
+ b=1;
+
+ a=[1 -0.7 0.8];
+
+ x=[1 zeros(1,99)];
+
+ data=filter(b,a,x);
+
+ a2=lev(data);
+
+ a2=a2/a2(1);
+
+ m_data=filter(1,a2,x);
+
+ plot(data,"color","blue","lineStyle","none","marker","d");
+
+ plot(m_data,"color","red","lineStyle","none","marker","d");
+
+ </scilab:image>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/levin.xml b/modules/signal_processing/help/ja_JP/filters/levin.xml
new file mode 100755
index 000000000..e40255a52
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/levin.xml
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="levin" xml:lang="ja">
+
+ <refnamediv>
+
+ <refname>levin</refname>
+
+ <refpurpose>(多次元)LevinsonアルゴリズムによりToeplitz システムを解く</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[la,sig]=levin(n,cov)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>整数値のスケール: フィルタの最大次数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>cov</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>(nlag*d) x d</literal> 行列.
+
+ <literal>Rk</literal>を有します
+
+ 以下のように保存された<literal>Rk</literal>
+
+ (<literal>d</literal>次の過程の場合は<literal>d x d</literal>行列)を有します:
+
+ </para>
+
+ <para>
+
+ <latex>
+
+ \begin{eqnarray}
+
+ \begin{pmatrix}
+
+ R_0\\R_1\\R_2\\ \vdots \\R_{nlags}
+
+ \end{pmatrix}
+
+ \end{eqnarray}
+
+ </latex>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>la</term>
+
+ <listitem>
+
+ <para>
+
+ リスト, 再帰的に計算された係数を<literal>Ak</literal>
+
+ とするLevinson多項式
+
+ (次数は1から<literal>n</literal>),
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>sig</term>
+
+ <listitem>
+
+ <para>リスト, 一連の二乗誤差平均.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 以下のToeplitzシステム(正規方程式)をnについて再帰的に
+
+ 解く関数
+
+ </para>
+
+ <para>
+
+ <latex>
+
+ \begin{eqnarray}
+
+ \begin{pmatrix}
+
+ I&amp;-A_1&amp;\cdots&amp;-A_n
+
+ \end{pmatrix}
+
+ \ast
+
+ \begin{pmatrix}
+
+ R_1&amp;R_2&amp;\cdots&amp;R_n \\
+
+ R_0&amp;R_1&amp;\cdots&amp;R_{n-1} \\
+
+ R_{-1}&amp;R_0&amp;\cdots&amp;R_{n-2} \\
+
+ \vdots&amp;\vdots&amp;\cdots&amp;\vdots \\
+
+ R_{2-n}&amp;R_{3-n}&amp;\cdots&amp;R_1 \\
+
+ R_{1-n}&amp;R_{2-n}&amp;\cdots&amp;R_0
+
+ \end{pmatrix}
+
+ = 0
+
+ \end{eqnarray}
+
+ </latex>
+
+ </para>
+
+ <para>
+
+ ただし, {<literal>Rk;k=1:nlag</literal>} は
+
+ <literal>nlag</literal>個の経験的共分散の系列です.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+//We use the 'levin' macro for solving the normal equations
+//on two examples: a one-dimensional and a two-dimensional process.
+//We need the covariance sequence of the stochastic process.
+//This example may usefully be compared with the results from
+//the 'phc' macro (see the corresponding help and example in it)
+//
+//
+//1) A one-dimensional process
+// -------------------------
+//
+//We generate the process defined by two sinusoids (1Hz and 2 Hz)
+//in additive Gaussian noise (this is the observed process);
+//the simulated process is sampled at 10 Hz (step 0.1 in t, underafter).
+t1=0:.1:100;rand('normal');
+y1=sin(2*%pi*t1)+sin(2*%pi*2*t1);y1=y1+rand(y1);plot(t1,y1);
+//covariance of y1
+nlag=128;
+c1=corr(y1,nlag);
+c1=c1';//c1 needs to be given columnwise (see the section PARAMETERS of this help)
+//compute the filter for a maximum order of n=10
+//la is a list-type variable each element of which
+//containing the filters of order ranging from 1 to n; (try varying n)
+//in the d-dimensional case this is a matrix polynomial (square, d X d)
+//sig gives, the same way, the mean-square error
+n=15;
+[la1,sig1]=levin(n,c1);
+//verify that the roots of 'la' contain the
+//frequency spectrum of the observed process y
+//(remember that y is sampled -in our example
+//at 10Hz (T=0.1s) so that we need to retrieve
+//the original frequencies (1Hz and 2 Hz) through
+//the log and correct scaling by the frequency sampling)
+//we verify this for each filter order
+for i=1:n, s1=roots(la1(i));s1=log(s1)/2/%pi/.1;
+//now we get the estimated poles (sorted, positive ones only !)
+s1=gsort(imag(s1));s1=s1(1:i/2);end;
+//the last two frequencies are the ones really present in the observed
+//process ---> the others are "artifacts" coming from the used model size.
+//This is related to the rather difficult problem of order estimation.
+//
+//2) A 2-dimensional process
+// -----------------------
+//(4 frequencies 1, 2, 3, and 4 Hz, sampled at 0.1 Hz :
+// |y_1| y_1=sin(2*Pi*t)+sin(2*Pi*2*t)+Gaussian noise
+// y=| | with :
+// |y_2| y_2=sin(2*Pi*3*t)+sin(2*Pi*4*t)+Gaussian noise
+d=2;dt=0.1;
+nlag=64;
+t2=0:2*%pi*dt:100;
+y2=[sin(t2)+sin(2*t2)+rand(t2);sin(3*t2)+sin(4*t2)+rand(t2)];
+c2=[];
+for j=1:2, for k=1:2, c2=[c2;corr(y2(k,:),y2(j,:),nlag)];end;end;
+c2=matrix(c2,2,128);cov=[];
+for j=1:64,cov=[cov;c2(:,(j-1)*d+1:j*d)];end;//covar. columnwise
+c2=cov;
+//in the multidimensional case, we have to compute the
+//roots of the determinant of the matrix polynomial
+//(easy in the 2-dimensional case but tricky if d>=3 !).
+//We just do that here for the maximum desired
+//filter order (n); mp is the matrix polynomial of degree n
+[la2,sig2]=levin(n,c2);
+mp=la2(n);determinant=mp(1,1)*mp(2,2)-mp(1,2)*mp(2,1);
+s2=roots(determinant);s2=log(s2)/2/%pi/0.1;//same trick as above for 1D process
+s2=gsort(imag(s2));s2=s2(1:d*n/2);//just the positive ones !
+//There the order estimation problem is seen to be much more difficult !
+//many artifacts ! The 4 frequencies are in the estimated spectrum
+//but beneath many non relevant others.
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="phc">phc</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/lindquist.xml b/modules/signal_processing/help/ja_JP/filters/lindquist.xml
new file mode 100755
index 000000000..07cc1c83d
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/lindquist.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="lindquist">
+
+ <refnamediv>
+
+ <refname>lindquist</refname>
+
+ <refpurpose>Lindquistのアルゴリズム</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[P,R,T]=lindquist(n,H,F,G,R0)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>反復回数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>H, F, G</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>y</literal>の共分散系列による推定値.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>R0</term>
+
+ <listitem>
+
+ <para>E(yk*yk')</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>P</term>
+
+ <listitem>
+
+ <para>n回の反復後のリカッチ方程式の解.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>R, T</term>
+
+ <listitem>
+
+ <para>フィルタのゲイン行列.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ Lindquistのアルゴリズムにより,
+
+ 代数リカッチ方程式の最小解を反復計算により求め,フィルタモデルの
+
+ 行列<literal>R</literal> および <literal>T</literal>を出力します.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+//Generate signal
+x=%pi/10:%pi/10:102.4*%pi;
+y=[1; 1] * sin(x) + [sin(2*x); sin(1.9*x)] + rand(2,1024,"normal");
+
+//Compute correlations
+c=[];
+for j=1:2
+ for k=1:2
+ c=[c;corr(y(k,:),y(j,:),64)];
+ end
+end
+c=matrix(c,2,128);
+
+//Find H,F,G with 6 states
+hk=hank(20,20,c);
+[H,F,G]=phc(hk,2,6);
+
+//Solve Riccati equation
+R0=c(1:2,1:2);
+[P,R,T]=lindquist(100,H,F,G,R0);
+]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="srfaur">srfaur</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="faurre">faurre</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="phc">phc</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/remez.xml b/modules/signal_processing/help/ja_JP/filters/remez.xml
new file mode 100755
index 000000000..7d1eb5bbf
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/remez.xml
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="remez" xml:lang="ja">
+
+ <refnamediv>
+
+ <refname>remez</refname>
+
+ <refpurpose>
+
+ 余弦の合計を行う連続関数の重み付きチェビシェフ近似に関する
+
+ remez交換アルゴリズム.
+
+ </refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>an=remez(guess,mag,fgrid,weight)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>guess</term>
+
+ <listitem>
+
+ <para>
+
+ 大きさ<literal>n+2</literal>の実数配列の初期推定値
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fgrid</term>
+
+ <listitem>
+
+ <para>
+
+ 大きさ <literal>ng</literal>の実数配列:
+
+ [0,.5[ の範囲にある正規化された周波数点のグリッド
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>mag</term>
+
+ <listitem>
+
+ <para>
+
+ 大きさ <literal>ng</literal>の実数配列:
+
+ グリッド<literal>fg</literal>における指定された振幅
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>weight</term>
+
+ <listitem>
+
+ <para>
+
+ 大きさ<literal>ng</literal>の実数配列:
+
+ グリッド<literal>fg</literal>における誤差の重み関数
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>an</term>
+
+ <listitem>
+
+ <para>
+
+ 大きさ<literal>n</literal>の実数配列: 余弦係数
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 周波数領域振幅応答のミニマックス近似.
+
+ 近似は次の形式となります
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+h = sum[a(i)*cos(weight)], i=1:n
+ ]]></programlisting>
+
+ <para>FIR, 線形位相フィルタは以下のコマンドにより得られた
+
+ <literal>remez</literal>の出力から得ることができます:
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+hn(1:nc-1)=an(nc:-1:2)/2;
+hn(nc)=an(1);
+hn(nc+1:2*nc-1)=an(2:nc)/2;
+ ]]></programlisting>
+
+ <para>
+
+ この関数は主に<link linkend="remezb">remezb関数</link>によりコールされることを
+
+ 意図しています.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>参考文献</title>
+
+ <para>E.W. Cheney, Introduction to Approximation Theory, McGraw-Hill,
+
+ 1966
+
+ </para>
+
+ <para>http://en.wikipedia.org/wiki/Remez_algorithm</para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>参考文献</title>
+
+ <para>
+
+ この関数は以下の文献で書かれたFortranコード<literal>remez.f</literal>
+
+ に基づいています:
+
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <para>James H. Mcclellan, department of electrical engineering and
+
+ computer science, Massachusetts Institute of Technology, Cambridge,
+
+ Massachussets. 02139
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>Thomas W. Parks, department of electrical engineering, Rice
+
+ university, Houston, Texas 77001
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>Thomas W. Parks, department of electrical engineering, Rice
+
+ university, Houston, Texas 77001
+
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+nc=21;
+ngrid=nc*250;
+fgrid=.5*(0:(ngrid-1))/(ngrid-1);
+mag(1:ngrid/2)=ones(1:ngrid/2);
+mag(ngrid/2+1:ngrid)=0*ones(1:ngrid/2);
+weight=ones(fgrid);
+guess=round(1:ngrid/nc:ngrid);
+guess(nc+1)=ngrid;
+guess(nc+2)=ngrid;
+an=remez(guess,mag,fgrid,weight);
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="remezb">remezb</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="eqfir">eqfir</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/remezb.xml b/modules/signal_processing/help/ja_JP/filters/remezb.xml
new file mode 100755
index 000000000..9def7e430
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/remezb.xml
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="remezb">
+
+ <refnamediv>
+
+ <refname>remezb</refname>
+
+ <refpurpose>振幅応答のミニマックス近似</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[an]=remezb(nc,fg,ds,wt)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>nc</term>
+
+ <listitem>
+
+ <para>余弦関数の数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fg</term>
+
+ <listitem>
+
+ <para>[0,.5)の範囲の周波数点のグリッド</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>ds</term>
+
+ <listitem>
+
+ <para>
+
+ グリッド<literal>fg</literal>の指定する振幅
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>wt</term>
+
+ <listitem>
+
+ <para>
+
+ グリッド<literal>fg</literal>の誤差の重み関数
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>an</term>
+
+ <listitem>
+
+ <para>余弦フィルタ係数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 周波数領域振幅応答のミニマックス近似.
+
+ この近似は,n=0,1,...,ncとして
+
+ <literal>h = sum[a(n)*cos(wn)]</literal>
+
+ の形式となります.
+
+ 以下のコマンドによりFIR, 線形位相フィルタを
+
+ 関数の出力から得ることができます.
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+hn(1:nc-1)=an(nc:-1:2)/2;
+hn(nc)=an(1);
+hn(nc+1:2*nc-1)=an(2:nc)/2;
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+// Choose the number of cosine functions and create a dense grid
+// in [0,.24) and [.26,.5)
+nc=21;ngrid=nc*16;
+fg=.24*(0:ngrid/2-1)/(ngrid/2-1);
+fg(ngrid/2+1:ngrid)=fg(1:ngrid/2)+.26*ones(1:ngrid/2);
+
+// Specify a low pass filter magnitude for the desired response
+ds(1:ngrid/2)=ones(1:ngrid/2);
+ds(ngrid/2+1:ngrid)=zeros(1:ngrid/2);
+
+// Specify a uniform weighting function
+wt=ones(fg);
+
+// Run remezb
+an=remezb(nc,fg,ds,wt)
+
+// Make a linear phase FIR filter
+hn(1:nc-1)=an(nc:-1:2)/2;
+hn(nc)=an(1);
+hn(nc+1:2*nc-1)=an(2:nc)/2;
+
+// Plot the filter's magnitude response
+plot(.5*(0:255)/256,frmag(hn,256));
+
+// Choose the number of cosine functions and create a dense grid in [0,.5)
+nc=21; ngrid=nc*16;
+fg=.5*(0:(ngrid-1))/ngrid;
+
+// Specify a triangular shaped magnitude for the desired response
+ds(1:ngrid/2)=(0:ngrid/2-1)/(ngrid/2-1);
+ds(ngrid/2+1:ngrid)=ds(ngrid/2:-1:1);
+
+// Specify a uniform weighting function
+wt=ones(fg);
+
+// Run remezb
+an=remezb(nc,fg,ds,wt)
+
+// Make a linear phase FIR filter
+hn(1:nc-1)=an(nc:-1:2)/2;
+hn(nc)=an(1);
+hn(nc+1:2*nc-1)=an(2:nc)/2;
+
+// Plot the filter's magnitude response
+plot(.5*(0:255)/256,frmag(hn,256));
+ ]]></programlisting>
+
+
+
+ <scilab:image>
+
+ nc=21;ngrid=nc*16;
+
+ fg=.24*(0:ngrid/2-1)/(ngrid/2-1);
+
+ fg(ngrid/2+1:ngrid)=fg(1:ngrid/2)+.26*ones(1:ngrid/2);
+
+
+
+ ds(1:ngrid/2)=ones(1:ngrid/2);
+
+ ds(ngrid/2+1:ngrid)=zeros(1:ngrid/2);
+
+
+
+ wt=ones(fg);
+
+
+
+ an=remezb(nc,fg,ds,wt)
+
+
+
+ hn(1:nc-1)=an(nc:-1:2)/2;
+
+ hn(nc)=an(1);
+
+ hn(nc+1:2*nc-1)=an(2:nc)/2;
+
+
+
+ plot(.5*(0:255)/256,frmag(hn,256));
+
+
+
+ nc=21; ngrid=nc*16;
+
+ fg=.5*(0:(ngrid-1))/ngrid;
+
+
+
+ ds(1:ngrid/2)=(0:ngrid/2-1)/(ngrid/2-1);
+
+ ds(ngrid/2+1:ngrid)=ds(ngrid/2:-1:1);
+
+
+
+ wt=ones(fg);
+
+
+
+ an=remezb(nc,fg,ds,wt)
+
+
+
+ hn(1:nc-1)=an(nc:-1:2)/2;
+
+ hn(nc)=an(1);
+
+ hn(nc+1:2*nc-1)=an(2:nc)/2;
+
+
+
+ plot(.5*(0:255)/256,frmag(hn,256));
+
+ </scilab:image>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="eqfir">eqfir</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/srfaur.xml b/modules/signal_processing/help/ja_JP/filters/srfaur.xml
new file mode 100755
index 000000000..a526c4859
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/srfaur.xml
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="srfaur">
+
+ <refnamediv>
+
+ <refname>srfaur</refname>
+
+ <refpurpose>平方根アルゴリズム</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>Calling Sequence</title>
+
+ <synopsis>[p,s,t,l,rt,tt]=srfaur(h,f,g,r0,n,p,s,t,l)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>h, f, g</term>
+
+ <listitem>
+
+ <para>状態空間モデルの共分散行列.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>r0</term>
+
+ <listitem>
+
+ <para>E(yk*yk').</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>反復回数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>p</term>
+
+ <listitem>
+
+ <para>n回の反復後の解の推定値.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>s, t, l</term>
+
+ <listitem>
+
+ <para>連続する反復の中間行列;</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>rt, tt</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>n</literal>回の反復後のフィルタモデルのゲイン行列.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>p, s, t, l</term>
+
+ <listitem>
+
+ <para>
+
+ 複数回の反復を行う場合,入力として指定できます
+
+ (<literal>p</literal>の中間値の評価).
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明n</title>
+
+ <para>
+
+ 代数リカッチ方程式の平方根アルゴリズム.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+//信号を生成
+x=%pi/10:%pi/10:102.4*%pi;
+rand('seed',0);rand('normal');
+y=[1;1]*sin(x)+[sin(2*x);sin(1.9*x)]+rand(2,1024);
+//相関を計算
+c=[];for j=1:2,for k=1:2,c=[c;corr(y(k,:),y(j,:),64)];end;end
+c=matrix(c,2,128);
+//状態量6の H,F,G を計算
+hk=hank(20,20,c);
+[H,F,G]=phc(hk,2,6);
+//リカッチ方程式を解く
+r0=c(1:2,1:2);
+[P,s,t,l,Rt,Tt]=srfaur(H,F,G,r0,200);
+//厳密に対称な共分散行列を作成
+Rt=(Rt+Rt')/2
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="phc">phc</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="faurre">faurre</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="lindquist">lindquist</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/srkf.xml b/modules/signal_processing/help/ja_JP/filters/srkf.xml
new file mode 100755
index 000000000..aa296a6cb
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/srkf.xml
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="srkf">
+
+ <refnamediv>
+
+ <refname>srkf</refname>
+
+ <refpurpose>平方根カルマンフィルタ</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼出し手順</title>
+
+ <synopsis>[x1,p1]=srkf(y,x0,p0,f,h,q,r)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>f, h</term>
+
+ <listitem>
+
+ <para>カレントのシステム行列</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>q, r</term>
+
+ <listitem>
+
+ <para>ダイナミクスおよび観測ノイズの共分散行列</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>x0, p0</term>
+
+ <listitem>
+
+ <para>t=-1までのデータに基づくt=0における状態量推定値および誤差共分散</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>カレントの観測出力</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>x1, p1</term>
+
+ <listitem>
+
+ <para>t=0までのデータに基づくt=1における状態量推定値および誤差共分散</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ この関数はカルマンフィルタの平方根型です.
+
+ このフィルタは,特に動的ノイズ共分散 <varname>q</varname> が小さい場合に,
+
+ 数値的安定性の点で通常のカルマンフィルタよりも効率的です.
+
+ 実際, 正定であるべき状態量の誤差共分散<literal>p</literal>の
+
+ 不定の数値表現が不定となることを防止します.
+
+ つまり, <function>srkf</function>の目的は,
+
+ コレスキー分解アルゴリズムにより<literal>p</literal>を伝播させることです.
+
+ これらの係数は,<literal>p</literal>をその基本形式に保ったままで ,
+
+ アルゴリズムの各ステップで更新できます.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+f=[0 0 1; 0 1 0; 2 3 4]; //状態行列
+g=[1;-1;1]; //Input matrix
+h=[1 1 0; 0 1 0; 0 0 0]; //出力行列
+Q=[3 2 1; 2 2 1; 1 1 1]; //動的ノイズの共分散行列
+R=[2 1 1; 1 1 1; 1 1 2]; //観測ノイズの共分散行列
+// 初期化
+p0=[6 3 2; 3 5 2; 2 2 4];
+x0=[1;1;1];
+y=[2 8 7]'; // カレントの観測出力行列
+[x1,p1]=srkf(y,x0,p0,f,h,Q,R)
+]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="kalm">kalm</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="sskf">sskf</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/sskf.xml b/modules/signal_processing/help/ja_JP/filters/sskf.xml
new file mode 100755
index 000000000..6a66bbfb5
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/sskf.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="sskf">
+
+ <refnamediv>
+
+ <refname>sskf</refname>
+
+ <refpurpose>定常状態カルマンフィルタ</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼出し手順</title>
+
+ <synopsis>
+
+ xe = sskf(y,f,h,q,r,x0)
+
+ [xe, pe]=sskf(y,f,h,q,r,x0)
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>[y0,y1,...,yn]</literal>, <literal>yk</literal>からのデータ,
+
+ 列ベクトル
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>f</term>
+
+ <listitem>
+
+ <para>システム行列の次元(NxN)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>h</term>
+
+ <listitem>
+
+ <para>観測行列の次元(MxN)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>q</term>
+
+ <listitem>
+
+ <para>ダイナミクスノイズ行列の次元(NxN)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>r</term>
+
+ <listitem>
+
+ <para>観測ノイズ行列の次元(MxM)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>x0</term>
+
+ <listitem>
+
+ <para>初期状態量の推定値</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>xe</term>
+
+ <listitem>
+
+ <para>状態量の推定値</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>pe</term>
+
+ <listitem>
+
+ <para>誤差共分散の定常値</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 定常状態カルマンフィルタ
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+rand("seed",5);
+rand("normal");
+q=[.03 0.01;.01 0.03];
+u=rand(2,11);
+f=[1.1 0.1;0 0.8];
+g=(chol(q))';
+m0=[10 10]';
+p0=[2 0;0 2];
+x0=m0+(chol(p0))'*rand(2,1);
+x=ltitr(f,g,u,x0);
+r=[2 0;0 2];
+v=(chol(r))'*rand(2,11);
+y=x+v;
+h=eye(2,2);
+[xe pe]=sskf(y,f,h,q,r,m0)
+ ]]></programlisting>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/syredi.xml b/modules/signal_processing/help/ja_JP/filters/syredi.xml
new file mode 100755
index 000000000..49cff0cf5
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/syredi.xml
@@ -0,0 +1,339 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="syredi" xml:lang="ja">
+
+ <refnamediv>
+
+ <refname>syredi</refname>
+
+ <refpurpose>IIRフィルタの設計, syrediコードインターフェイス</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[fact,b2,b1,b0,c1,c0,zzeros,zpoles]=syredi(ityp,iapro,om,deltap,deltas)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>itype</term>
+
+ <listitem>
+
+ <para>整数, フィルタの種類: 1 はローパス, 2 はハイパス,
+
+ 3 はバンドパス, 4 はストップバンドを意味します.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>iappro</term>
+
+ <listitem>
+
+ <para>整数, 設計近似の種類: 1 はバターワース,
+
+ 2 は楕円, 3 はチェビシェフ1, 4 は
+
+ チェビシェフ2を意味します.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>om</term>
+
+ <listitem>
+
+ <para>カットオフ周波数のベクトル(要素数:4) (単位:rad)
+
+ <literal>om=[om1,om2,om3,om4]</literal>, <literal/>
+
+ </para>
+
+ <para>
+
+ <literal>0&lt;= om1 &lt;= om2 &lt;= om3 &lt;= om4 &lt;=
+
+ pi
+
+ </literal>
+
+ .
+
+ </para>
+
+ <para>
+
+ <literal>ftype</literal>='lp' または <literal>'hp'</literal>の場合,
+
+ <literal>om3</literal> およびd <literal>om4</literal> は使用されず,
+
+ 0に設定することができます.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>deltap</term>
+
+ <listitem>
+
+ <para>
+
+ 実数スカラー, 通過域のリップル. <literal>0&lt;
+
+ deltap &lt;1
+
+ </literal>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>deltas</term>
+
+ <listitem>
+
+ <para>
+
+ 実数スカラー, 阻止域のリップル <literal>0&lt;
+
+ deltas &lt;1
+
+ </literal>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>gain</term>
+
+ <listitem>
+
+ <para>スカラ-, フィルタゲイン</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>b2</term>
+
+ <listitem>
+
+ <para>実数行ベクトル, 分子の2次の係数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>b1</term>
+
+ <listitem>
+
+ <para>実数行ベクトル, 分子の1次の係数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>b0</term>
+
+ <listitem>
+
+ <para>実数行ベクトル, 分子の0次の係数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>c1</term>
+
+ <listitem>
+
+ <para>実数行ベクトル, 分母の1次の係数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>c0</term>
+
+ <listitem>
+
+ <para>実数行ベクトル, 分母の0次の係数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>zzeros</term>
+
+ <listitem>
+
+ <para>複素数行ベクトル, z領域のフィルタのゼロ</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>zpoles</term>
+
+ <listitem>
+
+ <para>複素数行ベクトル, z領域のフィルタの極</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ IIRフィルタ近似を計算します.
+
+ 結果は,2次の伝達関数
+
+ <literal>Hi=(b0(i)+b1(i)*z+b2(i)*z^2)/(c0(i)+c1(i)*z+z^2)</literal>
+
+ および極/ゼロ/ゲイン表現の集合として得られます.
+
+ </para>
+
+ <para>
+
+ 得られるフィルタは,<literal>h=fact*H1*...*Hn</literal>です.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>注意</title>
+
+ <para>
+
+ この組み込み関数は,主に<link linkend="eqiir">eqiir</link>関数により使用されることを意図しています.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>参考文献</title>
+
+ <para>syrediコードは,Guenter F. Dehner,
+
+ Institut fuer Nachrichtentechnik Universitaet Erlangen-Nuernberg,
+
+ Germany
+
+ により書かれたdorediパッケージから
+
+ 派生したものです.
+
+ </para>
+
+ <para>Dehner,G.F. 1979, DOREDI:
+
+ Program for Design and Optimization of
+
+ REcursive DIgital filters-Programs for Digital Signal Processing,
+
+ ed:Digital Signal Processing committee of IEEE Acoustics, Speech and
+
+ Signal Processing Society.
+
+ </para>
+
+ <para>DOREDI.fのソースコードについては
+
+ http://michaelgellis.tripod.com/dsp/pgm25.html を参照ください
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+[fact,b2,b1,b0,c1,c0,zzeros,zpoles]=syredi(1,4,[2*%pi/10,4*%pi/10,0,0],0.02,0.001);
+h=fact*(b0+b1*%z+b2*%z^2)./(c0+c1*%z+%z^2)
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="eqiir">eqiir</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/system.xml b/modules/signal_processing/help/ja_JP/filters/system.xml
new file mode 100755
index 000000000..a5b54e091
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/system.xml
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="system">
+
+ <refnamediv>
+
+ <refname>system</refname>
+
+ <refpurpose>観測更新</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[x1,y]=system(x0,f,g,h,q,r)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>x0</term>
+
+ <listitem>
+
+ <para>入力状態ベクトル</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>f</term>
+
+ <listitem>
+
+ <para>システム行列</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>g</term>
+
+ <listitem>
+
+ <para>入力行列</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>h</term>
+
+ <listitem>
+
+ <para>出力行列</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>q</term>
+
+ <listitem>
+
+ <para>入力ノイズ共分散行列</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>r</term>
+
+ <listitem>
+
+ <para>出力ノイズ共分散行列x</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>x1</term>
+
+ <listitem>
+
+ <para>出力状態ベクトル</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>出力観測値</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 古い状態量を指定して次の観測量を生成するシステム関数を定義します.
+
+ システムは再帰的に計算されます
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+x1=f*x0+g*u
+y=h*x0+v
+ ]]></programlisting>
+
+ <para>
+
+ ただし, <literal>u</literal> の分布は <literal>N(0,q)</literal>,
+
+ <literal>v</literal> の分布は <literal>N(0,r)</literal>です.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+// 状態量の統計値(平均と誤差共分散)を初期化
+m0=[10 10]';
+p0=[2 0;0 2];
+// システムを作成
+f=[1.1 0.1;0 0.8];
+g=[1 0;0 1];
+h=[1 0;0 1];
+// ノイズ統計量
+q=[.03 0.01;.01 0.03];
+r=2*eye(2);
+// システムプロセスを初期化
+rand("seed",2);
+rand("normal");
+p0c=chol(p0);
+x0=m0+p0c'*rand(ones(m0));
+yt=[];
+// カルマンフィルタを初期化
+xke0=m0;pk0=p0;
+// 誤差共分散を初期化
+ecv=[pk0(1,1) pk0(2,2)]';
+[x1,y]=system(x0,f,g,h,q,r)
+ ]]></programlisting>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/trans.xml b/modules/signal_processing/help/ja_JP/filters/trans.xml
new file mode 100755
index 000000000..a6accfa48
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/trans.xml
@@ -0,0 +1,319 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="trans">
+
+ <refnamediv>
+
+ <refname>trans</refname>
+
+ <refpurpose>ローパスから他のフィルタに変換する</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>
+
+ hzt=trans(hz,tr_type,frq)
+
+ hzt=trans(pd,zd,gd,tr_type,frq)
+
+ [pt,zt,gt]=trans(hz,tr_type,frq)
+
+ [pt,zt,gt]=trans(pd,zd,gd,tr_type,frq)
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>hz</term>
+
+ <listitem>
+
+ <para>
+
+ 1入力1出力離散伝達関数,ローパスフィルタ
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>pd</term>
+
+ <listitem>
+
+ <para>指定するフィルタの極のベクトル</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>zd</term>
+
+ <listitem>
+
+ <para>指定するフィルタのゼロのベクトル</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>gd</term>
+
+ <listitem>
+
+ <para>スカラー: 指定するフィルタのゲイン</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>tr_type</term>
+
+ <listitem>
+
+ <para>文字列, 変換の種類, 使用可能な値については説明を参照ください </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>frq</term>
+
+ <listitem>
+
+ <para>離散カットオフ周波数の2要素のベクトル
+
+ (すなわち,<literal>0&lt;frq&lt;.5</literal>).詳細は説明を参照.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>hzt</term>
+
+ <listitem>
+
+ <para>変換後のフィルタ伝達関数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>pt</term>
+
+ <listitem>
+
+ <para>変換後のフィルタのゼロのベクトル.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>zt</term>
+
+ <listitem>
+
+ <para>変換後のフィルタの極のベクトル.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>gt</term>
+
+ <listitem>
+
+ <para>スカラー: 変換後のフィルタゲイン.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 極/ゼロ/ゲイン表現で指定した
+
+ 標準ローパスフィルタを以下のフィルタのどれかに変換する関数:
+
+ </para>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>tr_type='lp'</term>
+
+ <listitem>
+
+ <para>ローパスフィルタ, カットオフ周波数は
+
+ <literal>frq</literal>の最初のエントリで指定されます,
+
+ 2番目のエントリは無視されます.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>tr_type='hp'</term>
+
+ <listitem>
+
+ <para>ハイパスフィルタ, カットオフ周波数は
+
+ <literal>frq</literal>の最初のエントリで指定されます,
+
+ 2番目のエントリは無視されます.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>tr_type='bp'</term>
+
+ <listitem>
+
+ <para>
+
+ バンドパスフィルタ, 周波数範囲は <literal>frq(1)</literal> および
+
+ <literal>frq(2)</literal>で指定されます.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>tr_type='sb'</term>
+
+ <listitem>
+
+ <para>
+
+ バンドストップフィルタ,周波数範囲は <literal>frq(1)</literal> および
+
+ <literal>frq(2)</literal>で指定されます.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>使用される関数</title>
+
+ <para>
+
+ <link linkend="bilt">bilt</link>
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+Hlp=iir(3,'lp','ellip',[0.1 0],[.08 .03]);
+Hbp=trans(Hlp,'bp',[0.01 0.1]);
+Hsb=trans(Hlp,'sb',[0.01 0.1])
+clf();gainplot([Hlp;Hbp;Hsb],1d-3,0.48);
+l=legend(['original low pass';'band pass';'stop band']);
+l.legend_location="in_lower_left";
+ ]]></programlisting>
+
+ <scilab:image><![CDATA[
+Hlp=iir(3,'lp','ellip',[0.1 0],[.08 .03]);
+Hbp=trans(Hlp,'bp',[0.01 0.1]);
+Hsb=trans(Hlp,'sb',[0.01 0.1])
+
+clf();gainplot([Hlp;Hbp;Hsb],1d-3,0.48);
+l=legend(['original low pass';'band pass';'stop band']);
+l.legend_location="in_lower_left";
+]]> </scilab:image>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="iir">iir</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="bilt">bilt</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/wfir.xml b/modules/signal_processing/help/ja_JP/filters/wfir.xml
new file mode 100755
index 000000000..972fd9b97
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/wfir.xml
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="wfir">
+
+ <refnamediv>
+
+ <refname>wfir</refname>
+
+ <refpurpose>線形位相FIRフィルタ</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[wft,wfm,fr]=wfir(ftype,forder,cfreq,wtype,fpar)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>ftype</term>
+
+ <listitem>
+
+ <para>
+
+ 文字列 : <literal>'lp','hp','bp','sb'</literal> (フィルタの種類)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>forder</term>
+
+ <listitem>
+
+ <para>
+
+ フィルタの次数 (正の整数)( <literal>ftype='hp'</literal>または<literal>'sb'</literal>の場合は奇数)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>cfreq</term>
+
+ <listitem>
+
+ <para>
+
+ カットオフ周波数の要素数2のベクトル (<literal>0&lt;cfreq(1),cfreq(2)&lt;.5</literal>)
+
+ <literal>ftype='lp'</literal> または <literal>'hp'</literal>の時,<literal>cfreq(1)</literal>のみが使用されます
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>wtype</term>
+
+ <listitem>
+
+ <para>
+
+ ウインドウの種類 (<literal>'re','tr','hm','hn','kr','ch'</literal>)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fpar</term>
+
+ <listitem>
+
+ <para>
+
+ ウインドウパラメータの要素数2のベクトルs. カイザーウインドウ <literal>fpar(1)&gt;0 fpar(2)=0</literal>. チェビシェフウインドウ <literal>fpar(1)&gt;0, fpar(2)&lt;0</literal> または <literal>fpar(1)&lt;0, 0&lt;fpar(2)&lt;.5</literal>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>wft</term>
+
+ <listitem>
+
+ <para>時間領域フィルタ係数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>wfm</term>
+
+ <listitem>
+
+ <para>グリッド fr の周波数領域フィルタ応答</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fr</term>
+
+ <listitem>
+
+ <para>周波数グリッド</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ ウィンドウィング法により
+
+ 線形位相, FIRローパス, バンドパス, ハイパス, ストップバンドフィルタ
+
+ を作成する関数.
+
+ 引数を指定せずにコールした場合,対話的に動作します.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+[h,hm,fr]=wfir("lp",33,[.2 0],"hm",[0 0])
+ ]]></programlisting>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/wiener.xml b/modules/signal_processing/help/ja_JP/filters/wiener.xml
new file mode 100755
index 000000000..449f93e5a
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/wiener.xml
@@ -0,0 +1,468 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="wiener">
+
+ <refnamediv>
+
+ <refname>wiener</refname>
+
+ <refpurpose>ウイナー推定</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[xs,ps,xf,pf]=wiener(y,x0,p0,f,g,h,q,r)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>f, g, h</term>
+
+ <listitem>
+
+ <para>
+
+ 間隔 <literal>[t0,tf]</literal>におけるシステム行列
+
+ </para>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>f</term>
+
+ <listitem>
+
+ <para>
+
+ =<literal>[f0,f1,...,ff]</literal>, および <literal>fk</literal>は
+
+ nxn行列です
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>g</term>
+
+ <listitem>
+
+ <para>
+
+ =<literal>[g0,g1,...,gf]</literal>, および
+
+ <literal>gk</literal> は nxn 行列です
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>h</term>
+
+ <listitem>
+
+ <para>
+
+ =<literal>[h0,h1,...,hf]</literal>,および
+
+ <literal>hk</literal> は mxn 行列です
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>q, r</term>
+
+ <listitem>
+
+ <para>
+
+ ダイナミクスおよび観測ノイズの共分散行列
+
+ </para>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>q</term>
+
+ <listitem>
+
+ <para>
+
+ =<literal>[q0,q1,...,qf]</literal>,
+
+ ただし,<literal>qk</literal> は nxn 行列
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>r</term>
+
+ <listitem>
+
+ <para>
+
+ =<literal>[r0,r1,...,rf]</literal>,
+
+ ただし,<literal>rk</literal> は mxm 行列
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>x0, p0</term>
+
+ <listitem>
+
+ <para>
+
+ 初期状態量推定値および誤差共分散
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>
+
+ 間隔 <literal>[t0,tf]</literal>における観測量.
+
+ <literal>y=[y0,y1,...,yf]</literal>, および <literal>yk</literal> は
+
+ m次列ベクトルです
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>xs</term>
+
+ <listitem>
+
+ <para>
+
+ 平滑化された状態推定値 <literal>xs= [xs0,xs1,...,xsf]</literal>, および
+
+ <literal>xsk</literal> はn次列ベクトルです
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>ps</term>
+
+ <listitem>
+
+ <para>
+
+ 平滑化された推定値の誤差共分散 <literal>ps=[p0,p1,...,pf]</literal>, および
+
+ <literal>pk</literal> は nxn 行列です
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>xf</term>
+
+ <listitem>
+
+ <para>
+
+ 平滑化された状態推定値 <literal>xf= [xf0,xf1,...,xff]</literal>, および
+
+ <literal>xfk</literal> はn次列ベクトルです
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>pf</term>
+
+ <listitem>
+
+ <para>
+
+ 平滑化された推定値の誤差共分散 <literal>pf=[p0,p1,...,pf]</literal>,
+
+ および <literal>pk</literal> が nxn行列です
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ フォワード-バックワードカルマンフィルタ定式化により
+
+ ウイナー推定を出力する関数
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <scilab:image>
+
+ m0=[10 10]';
+
+ p0=[100 0;0 100];
+
+ f2=[1.1 50.1;0 0.8];
+
+ g=[1 0;0 1];
+
+ h=[1 0;0 1];
+
+ [hi,hj]=size(h);
+
+ q=[.01 0;0 0.01];
+
+ r=20*eye(2,2);
+
+ rand("seed",66);
+
+ rand("normal");
+
+ p0c=chol(p0);
+
+ x0=m0+p0c'*rand(ones(m0));
+
+ y=h*x0+chol(r)'*rand(ones(1:hi))';
+
+ yt=y;
+
+ x=x0;
+
+ ft=[f2];
+
+ gt=[g];
+
+ ht=[h];
+
+ qt=[q];
+
+ rt=[r];
+
+ n=10;
+
+ for k=1:n
+
+ [x1,y]=system(x0,f2,g,h,q,r);
+
+ x=[x x1];
+
+ yt=[yt y];
+
+ x0=x1;
+
+ ft=[ft f2];
+
+ gt=[gt g];
+
+ ht=[ht h];
+
+ qt=[qt q];
+
+ rt=[rt r];
+
+ end
+
+ [xs,ps,xf,pf]=wiener(yt,m0,p0,ft,gt,ht,qt,rt);
+
+ a=min([x(1,:)-2*sqrt(ps(1,1:2:2*(n+1))),xf(1,:),xs(1,:)]);
+
+ b=max([x(1,:)+2*sqrt(ps(1,1:2:2*(n+1))),xf(1,:),xs(1,:)]);
+
+ c=min([x(2,:)-2*sqrt(ps(2,2:2:2*(n+1))),xf(2,:),xs(2,:)]);
+
+ d=max([x(2,:)+2*sqrt(ps(2,2:2:2*(n+1))),xf(2,:),xs(2,:)]);
+
+ xmargin=max([abs(a),abs(b)]);
+
+ ymargin=max([abs(c),abs(d)]);
+
+ a=-0.1*xmargin+a;
+
+ b=.1*xmargin+b;
+
+ c=-0.1*ymargin+c;
+
+ d=.1*ymargin+d;
+
+ scf();
+
+ plot([a a b],[d c c]);
+
+ plot2d(x(1,:)',x(2,:)',[2],"000")
+
+ plot2d(xf(1,:)',xf(2,:)',[2],"000")
+
+ plot2d(xs(1,:)',xs(2,:)',[2],"000")
+
+ plot2d(xs(1,:)',xs(2,:)',[-2],"000")
+
+ plot2d(xf(1,:)',xf(2,:)',[-3],"000")
+
+ plot2d(x(1,:)',x(2,:)',[-4],"000")
+
+ </scilab:image>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+// 統計量(平均および誤差共分散)を初期化
+m0=[10 10]';
+p0=[100 0;0 100];
+// システムを生成
+f=[1.1 50.1;0 0.8];
+g=[1 0;0 1];
+h=[1 0;0 1];
+[hi,hj]=size(h);
+// ノイズの統計量
+q=[.01 0;0 0.01];
+r=20*eye(2,2);
+// システム過程を初期化
+rand("seed",66);
+rand("normal");
+p0c=chol(p0);
+x0=m0+p0c'*rand(ones(m0));
+y=h*x0+chol(r)'*rand(ones(1:hi))';
+yt=y;
+// プロットする変数を初期化
+x=x0;
+// ループ
+ft=[f];
+gt=[g];
+ht=[h];
+qt=[q];
+rt=[r];
+n=10;
+for k=1:n
+ // 状態変数と観測量を
+ // 時刻 k (すなわち xk および yk) で生成
+ [x1,y]=system(x0,f,g,h,q,r);
+ x=[x x1];
+ yt=[yt y];
+ x0=x1;
+ ft=[ft f];
+ gt=[gt g];
+ ht=[ht h];
+ qt=[qt q];
+ rt=[rt r];
+end
+// ウィナーフィルタ推定を得る
+[xs,ps,xf,pf]=wiener(yt,m0,p0,ft,gt,ht,qt,rt);
+// 結果をプロット
+a=min([x(1,:)-2*sqrt(ps(1,1:2:2*(n+1))),xf(1,:),xs(1,:)]);
+b=max([x(1,:)+2*sqrt(ps(1,1:2:2*(n+1))),xf(1,:),xs(1,:)]);
+c=min([x(2,:)-2*sqrt(ps(2,2:2:2*(n+1))),xf(2,:),xs(2,:)]);
+d=max([x(2,:)+2*sqrt(ps(2,2:2:2*(n+1))),xf(2,:),xs(2,:)]);
+xmargin=max([abs(a),abs(b)]);
+ymargin=max([abs(c),abs(d)]);
+a=-0.1*xmargin+a;
+b=.1*xmargin+b;
+c=-0.1*ymargin+c;
+d=.1*ymargin+d;
+// フレーム, 状態変数 (x), および推定値 (xf, および xs)をプロット
+scf();
+plot([a a b],[d c c]);
+plot2d(x(1,:)',x(2,:)',[2],"000")
+plot2d(xf(1,:)',xf(2,:)',[2],"000")
+plot2d(xs(1,:)',xs(2,:)',[2],"000")
+// データ点をマーク (実データ: * , 推定値: o)
+plot2d(xs(1,:)',xs(2,:)',[-2],"000")
+plot2d(xf(1,:)',xf(2,:)',[-3],"000")
+plot2d(x(1,:)',x(2,:)',[-4],"000")
+ ]]></programlisting>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/wigner.xml b/modules/signal_processing/help/ja_JP/filters/wigner.xml
new file mode 100755
index 000000000..eb7d7c47a
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/wigner.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="wigner">
+
+ <refnamediv>
+
+ <refname>wigner</refname>
+
+ <refpurpose>'時間-周波数' ウィグナースペクトラム</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[tab]=wigner(x,h,deltat,zp)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>tab</term>
+
+ <listitem>
+
+ <para>ウィグナースペクトラム (時間変数と同じ行数)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>解析後の信号</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>h</term>
+
+ <listitem>
+
+ <para>データウインドウ</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>deltat</term>
+
+ <listitem>
+
+ <para>解析用の時間ステップ (単位:サンプル)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>zp</term>
+
+ <listitem>
+
+ <para>
+
+ FFTの長さ. <literal>%pi/zp</literal> が周波数増分となります.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 信号の '時間-周波数' ウィグナースペクトラムを計算する関数です.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <scilab:image>
+
+ a=[488^2 488 1;408^2 408 1;568^2 568 1];
+
+ b=[1.28;0;0];
+
+ x=a\b;
+
+ t=408:568;
+
+ p=x'*[t.*t;t;ones(t)];
+
+ u=[0*ones(408:487) ones(488:568)];
+
+ s=p.*sin(2*%pi/16*t+u*%pi);
+
+ s=[0*ones(0:407) s 0*ones(569:951)];
+
+ h=ones(1,64);
+
+ w=wigner(s,h,12,128);
+
+ scf();
+
+ plot3d(1:69,1:64,abs(w(1:69,1:64)));
+
+ </scilab:image>
+
+ </refsection>
+
+
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+a=[488^2 488 1;408^2 408 1;568^2 568 1];
+b=[1.28;0;0];
+x=a\b;
+t=408:568;
+p=x'*[t.*t;t;ones(t)];
+// 単位ステップ関数
+u=[0*ones(408:487) ones(488:568)];
+// 有限時間サイン波
+s=p.*sin(2*%pi/16*t+u*%pi);
+// 解析する信号
+s=[0*ones(0:407) s 0*ones(569:951)];
+// 64点矩形ウインドウ
+h=ones(1,64);
+// ウィグナースペクトラム
+w=wigner(s,h,12,128);
+scf();
+plot3d(1:69,1:64,abs(w(1:69,1:64)));
+ ]]></programlisting>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/window.xml b/modules/signal_processing/help/ja_JP/filters/window.xml
new file mode 100755
index 000000000..c1fa8146a
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/window.xml
@@ -0,0 +1,453 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="window">
+
+ <refnamediv>
+
+ <refname>window</refname>
+
+ <refpurpose>様々な型の対称ウインドウを計算</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>win_l=window('re',n)
+
+ win_l=window('tr',n)
+
+ win_l=window('hn',n)
+
+ win_l=window('hm',n)
+
+ win_l=window('kr',n,Beta)
+
+ [win_l,cwp]=window('ch',n,par)
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>ウインドウの長さ</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>par</term>
+
+ <listitem>
+
+ <para>
+
+ 2要素のベクトル <literal>par=[dp,df])</literal>のパラメータで,
+
+ <literal>dp</literal>(<literal>0&lt;dp&lt;.5</literal>)
+
+ はメインローブの幅を規定し,<literal>df</literal>はサイドローブの高さ
+
+ (<literal>df&gt;0</literal>)を規定します.
+
+ </para>
+
+ <para>
+
+ これら2つの片方のみを指定することができ,
+
+ もう片方には <literal>-1</literal>を指定する必要があります.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>Beta</term>
+
+ <listitem>
+
+ <para>
+
+ カイザーウインドウのパラメータ <literal>Beta &gt;0</literal>).
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>win</term>
+
+ <listitem>
+
+ <para>ウインドウ</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>cwp</term>
+
+ <listitem>
+
+ <para>未定義のチェビシェフウインドウのパラメータ</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ デジタル信号処理用の様々な対称ウインドウを計算する関数です.
+
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <para>
+
+ カイザーウインドウは,準最適ウインドウ関数です.
+
+ <literal>Beta</literal>は任意の正の実数で,ウインドウの形状を定義します.
+
+ 整数 <literal>n</literal> はウインドウの長さです.
+
+ </para>
+
+ <para>
+
+ 構築の際,この関数は,<literal> k = n/2</literal>,すなわち,ウインドウの
+
+ 中央,における最大値を 1 にし,ウインドウの端に向かって減少させます.
+
+ <literal>Beta</literal>の大きさを大きくすると,ウインドはより狭くなります;
+
+ <literal>Beta = 0</literal> の場合,矩形ウインドウと同じになります.
+
+ 逆に,<literal>Beta</literal> を大きくすると,フーリエ変換における
+
+ メインローブの幅が増加し,振幅のサイドローブは減少します.
+
+ つまり,このパラメータはメインローブの幅とサイドローブの面積の
+
+ トレードオフを制御します.
+
+ </para>
+
+ <informaltable border="1">
+
+ <tr>
+
+ <td>Beta</td>
+
+ <td>ウインドウ形状</td>
+
+ </tr>
+
+ <tr>
+
+ <td>0</td>
+
+ <td>矩形形状</td>
+
+ </tr>
+
+ <tr>
+
+ <td>5</td>
+
+ <td>ハミングウインドウを近似</td>
+
+ </tr>
+
+ <tr>
+
+ <td>6</td>
+
+ <td>ハニングウインドウを近似</td>
+
+ </tr>
+
+ <tr>
+
+ <td>8.6</td>
+
+ <td>ブラックマンウインドウを近似</td>
+
+ </tr>
+
+ </informaltable>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ チェビシェフウインドウは,指定した特定のサイドローブの高さのもとで,
+
+ メインローブの幅を最小化します.
+
+ このウインドウの特徴は,等リプル特性であり,
+
+ 全てのサイドローブは同じ高さとなります.
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ ハニングおよびハミングウインドウは非常に似ており,
+
+ パラメータ <literal>Beta</literal>の選択のみが異なります:
+
+ <literal> w=Beta+(1 - Beta)*cos(2*%pi*x/(n-1))</literal>
+
+ <literal>Beta</literal> はハニングウインドでは 1/2 ,
+
+ ハミングウインドウでは 0.54 です.
+
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+ clf()
+ N=24;
+ whm=window('hm',N);//Hamming window
+ wkr=window('kr',N,6);//Hamming Kaiser window
+ wch=window('ch',N,[0.005,-1]);//Chebychev window
+ //plot the window profile
+ subplot(121);plot((1:N)',[whm;wkr;wch]')
+ set(gca(),'grid',[1 1]*color('gray'))
+ xlabel("n")
+ ylabel("w_n")
+ title(gettext("Profile plot"))
+ //plot the magnitude of the frequency responses
+ n=256;
+ [Whm,fr]=frmag(whm,n);
+ [Wkr,fr]=frmag(wkr,n);
+ [Wch,fr]=frmag(wch,n);
+ subplot(122);plot(fr',20*log10([Whm;Wkr;Wch]'))
+ set(gca(),'grid',[1 1]*color('gray'))
+ xlabel(gettext("Pulsation (rad/s)"))
+ ylabel(gettext("Magnitude (dB)"))
+ legend(["Hamming N=24";"Kaiser N=24, Beta=6";"Chebychev N=24, dp=0.005"]);
+ title(gettext("Magnitude plot"))
+ ]]></programlisting>
+
+ <para>
+
+ <scilab:image>
+ clf()
+ N=24;
+ whm=window('hm',N);//Hamming window
+ wkr=window('kr',N,6);//Hamming Kaiser window
+ wch=window('ch',N,[0.005,-1]);//Chebychev window
+ //plot the window profile
+ subplot(121);plot((1:N)',[whm;wkr;wch]')
+ set(gca(),'grid',[1 1]*color('gray'))
+ xlabel("n")
+ ylabel("w_n")
+ title(gettext("Profile plot"))
+ //plot the magnitude of the frequency responses
+ n=256;
+ [Whm,fr]=frmag(whm,n);
+ [Wkr,fr]=frmag(wkr,n);
+ [Wch,fr]=frmag(wch,n);
+ subplot(122);plot(fr',20*log10([Whm;Wkr;Wch]'))
+ set(gca(),'grid',[1 1]*color('gray'))
+ xlabel(gettext("Pulsation (rad/s)"))
+ ylabel(gettext("Magnitude (dB)"))
+ legend(["Hamming N=24";"Kaiser N=24, Beta=6";"Chebychev N=24, dp=0.005"]);
+ title(gettext("Magnitude plot"))
+ </scilab:image>
+
+ </para>
+
+ <programlisting role="example"><![CDATA[
+ clf()
+ N=140;
+ w1=window('kr',N,1);
+ w2=window('kr',N,2);
+ w4=window('kr',N,4);
+ w8=window('kr',N,8);
+ w16=window('kr',N,16);
+
+ //plot the window profile
+ plot((1:N)',[w1;w2;w4;w8;w16]')
+ set(gca(),'grid',[1 1]*color('gray'))
+ legend("$\beta="+string([1;2;4;8;16])+'$',[55,0.3])
+ xlabel("n")
+ ylabel("w_n")
+ title(gettext("Comparison of Kaiser window profiles"))
+ ]]></programlisting>
+
+ <para>
+
+ <scilab:image>
+ clf()
+ N=140;
+ w1=window('kr',N,1);
+ w2=window('kr',N,2);
+ w4=window('kr',N,4);
+ w8=window('kr',N,8);
+ w16=window('kr',N,16);
+
+ //plot the window profile
+ plot((1:N)',[w1;w2;w4;w8;w16]')
+ set(gca(),'grid',[1 1]*color('gray'))
+ legend("$\beta="+string([1;2;4;8;16])+'$',[55,0.3])
+ xlabel("n")
+ ylabel("w_n")
+ title(gettext("Comparison of Kaiser window profiles"))
+ </scilab:image>
+
+ </para>
+
+ <programlisting role="example"><![CDATA[
+ clf()
+ N=140;
+ w1=window('ch',N,[0.001,-1]);
+ w2=window('ch',N,[0.05,-1]);
+ w3=window('ch',N,[-1,0.4]);
+
+ //plot the window profile
+ subplot(121);plot((1:N)',[w1;w2;w3]')
+ set(gca(),'grid',[1 1]*color('gray'))
+ //legend("$\beta="+string([1;2;4;8;16])+'$',[55,0.3])
+ xlabel("n")
+ ylabel("w_n")
+ title(gettext("Comparison of Chebychev window profiles"))
+ //plot the magnitude of the frequency responses
+ n=256;
+ [W1,fr]=frmag(w1,n);
+ [W2,fr]=frmag(w2,n);
+ [W3,fr]=frmag(w3,n);
+ subplot(122);plot(fr',20*log10([W1;W2;W3]'))
+ set(gca(),'grid',[1 1]*color('gray'))
+ xlabel(gettext("Pulsation (rd/s)"))
+ ylabel(gettext("Magnitude (dB)"))
+ legend(["Chebychef dp=0.001";"Chebychef dp=0.05";"Chebychef df=0.4"]);
+ title(gettext("Chebychev window Magnitude plot"))
+ ]]></programlisting>
+
+ <para>
+
+ <scilab:image>
+ N=140;
+ w1=window('ch',N,[0.001,-1]);
+ w2=window('ch',N,[0.05,-1]);
+ w3=window('ch',N,[-1,0.4]);
+
+ //plot the window profile
+ subplot(121);plot((1:N)',[w1;w2;w3]')
+ set(gca(),'grid',[1 1]*color('gray'))
+ //legend("$\beta="+string([1;2;4;8;16])+'$',[55,0.3])
+ xlabel("n")
+ ylabel("w_n")
+ title(gettext("Comparison of Chebychev window profiles"))
+ //plot the magnitude of the frequency responses
+ n=256;
+ [W1,fr]=frmag(w1,n);
+ [W2,fr]=frmag(w2,n);
+ [W3,fr]=frmag(w3,n);
+ subplot(122);plot(fr',20*log10([W1;W2;W3]'))
+ set(gca(),'grid',[1 1]*color('gray'))
+ xlabel(gettext("Pulsation (rad/s)"))
+ ylabel(gettext("Magnitude (dB)"))
+ legend(["Chebychef dp=0.001";"Chebychef dp=0.05";"Chebychef df=0.4"]);
+ title(gettext("Chebychev window Magnitude plot"))
+ </scilab:image>
+
+
+
+ </para>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="wfir">wfir</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="frmag">frmag</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="ffilt">ffilt</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>参考文献</title>
+
+ <para>IEEE. Programs for Digital Signal Processing. IEEE Press. New York: John
+
+ Wiley and Sons, 1979. Program 5.2.
+
+ </para>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/yulewalk.xml b/modules/signal_processing/help/ja_JP/filters/yulewalk.xml
new file mode 100755
index 000000000..5c2d06200
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/yulewalk.xml
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="yulewalk">
+
+ <refnamediv>
+
+ <refname>yulewalk</refname>
+
+ <refpurpose>最小二乗フィルタを設計</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>Hz = yulewalk(N,frq,mag)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>呼び出し手順</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>N</term>
+
+ <listitem>
+
+ <para>整数 (指定するフィルタの次数)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>frq</term>
+
+ <listitem>
+
+ <para>実数行ベクトル (非降順), 周波数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>mag</term>
+
+ <listitem>
+
+ <para>非負の実数行ベクトル (frqと同じ大きさ), 指定する振幅.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>Hz</term>
+
+ <listitem>
+
+ <para>
+
+ フィルタ <literal>B(z)/A(z)</literal>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ Hz = yulewalk(N,frq,mag) は N次IIRフィルタを見つけます.
+
+ </para>
+
+ <programlisting role="no-scilab-exec"><![CDATA[
+ n-1 n-2
+ B(z) b(1)z + b(2)z + .... + b(n)
+H(z)= ---- = ---------------------------------
+ n-1 n-2
+ A(z) z + a(2)z + .... + a(n)
+ ]]></programlisting>
+
+ <para>
+
+ は,ベクトルfrqおよびmagで指定された周波数応答に振幅が一致します.
+
+ 周波数frqは,1.0がサンプルレートの半分に対応するとして,
+
+ 0.0および1.0の間とする必要があります.
+
+ これらは昇順で, 0.0 から始まり, 1.0で終わる必要があります.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+f=[0,0.4,0.4,0.6,0.6,1];
+H=[0,0,1,1,0,0];
+Hz=yulewalk(8,f,H);
+fs=1000;
+fhz = f*fs/2;
+clf(0);
+xset('window',0);
+plot2d(fhz',H');
+xtitle('Desired Frequency Response (Magnitude)')
+[frq,repf]=repfreq(Hz,0:0.001:0.5);
+clf(1);
+xset('window',1);
+plot2d(fs*frq',abs(repf'));
+xtitle('Obtained Frequency Response (Magnitude)')
+ ]]></programlisting>
+
+ <scilab:image>
+
+ f=[0,0.4,0.4,0.6,0.6,1];
+
+ H=[0,0,1,1,0,0];
+
+ Hz=yulewalk(8,f,H);
+
+ fs=1000;
+
+ fhz = f*fs/2;
+
+ clf(0);
+
+ xset('window',0);
+
+ plot2d(fhz',H');
+
+ xtitle('Desired Frequency Response (Magnitude)')
+
+ [frq,repf]=repfreq(Hz,0:0.001:0.5);
+
+ </scilab:image>
+
+ <scilab:image>
+
+ f=[0,0.4,0.4,0.6,0.6,1];
+
+ H=[0,0,1,1,0,0];
+
+ Hz=yulewalk(8,f,H);
+
+ fs=1000;
+
+ fhz = f*fs/2;
+
+ [frq,repf]=repfreq(Hz,0:0.001:0.5);
+
+ plot2d(fs*frq',abs(repf'));
+
+ xtitle('Obtained Frequency Response (Magnitude)')
+
+ </scilab:image>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/zpbutt.xml b/modules/signal_processing/help/ja_JP/filters/zpbutt.xml
new file mode 100755
index 000000000..5fd24024b
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/zpbutt.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="zpbutt">
+
+ <refnamediv>
+
+ <refname>zpbutt</refname>
+
+ <refpurpose>バターワースアナログフィルタ</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[pols,gain]=zpbutt(n,omegac)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>整数 (フィルタ次数)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>omegac</term>
+
+ <listitem>
+
+ <para>実数 (カットオフ周波数(単位:rad/s))</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>pols</term>
+
+ <listitem>
+
+ <para>フィルタの極</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>gain</term>
+
+ <listitem>
+
+ <para>フィルタのゲイン</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 次数<literal>n</literal>,カットオフ周波数 omegacの
+
+ バターワースアナログフィルタの極を計算します.
+
+ 伝達関数 H(s) は <literal>H(s)=gain/real(poly(pols,'s'))</literal>により
+
+ 計算されます.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+n=7;
+omegac=3;
+[pols,gain]=zpbutt(n,omegac)
+ ]]></programlisting>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/zpch1.xml b/modules/signal_processing/help/ja_JP/filters/zpch1.xml
new file mode 100755
index 000000000..f7c7df0b5
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/zpch1.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="zpch1">
+
+ <refnamediv>
+
+ <refname>zpch1</refname>
+
+ <refpurpose>チェビシェフアナログフィルタ</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[poles,gain]=zpch1(n,epsilon,omegac)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>パラメータ</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>整数 (フィルタ次数)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>epsilon</term>
+
+ <listitem>
+
+ <para>
+
+ 実数 : 通過域のリップル (<literal>0&lt;epsilon&lt;1</literal>)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>omegac</term>
+
+ <listitem>
+
+ <para>実数 : カットオフ周波数(Hz)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>poles</term>
+
+ <listitem>
+
+ <para>結果のフィルタ極</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>gain</term>
+
+ <listitem>
+
+ <para>結果のフィルタゲイン</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明n</title>
+
+ <para>
+
+ 1型チェビシェフフィルタの極.
+
+ 伝達関数は以下のように指定されます :
+
+ </para>
+
+ <programlisting role="no-scilab-exec"><![CDATA[
+H(s)=gain/poly(poles,'s')
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+n = 13;
+epsilon = 0.2;
+omegac = 3;
+[p,gain] = zpch1(n,epsilon,omegac)
+ ]]></programlisting>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/zpch2.xml b/modules/signal_processing/help/ja_JP/filters/zpch2.xml
new file mode 100755
index 000000000..1890df77f
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/zpch2.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="zpch2">
+
+ <refnamediv>
+
+ <refname>zpch2</refname>
+
+ <refpurpose>チェビシェフアナログフィルタ</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[zeros,poles,gain]=zpch2(n,A,omegar)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>整数 : フィルタ次数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>A</term>
+
+ <listitem>
+
+ <para>
+
+ 実数 : 阻止域の減衰 (<literal>A&gt;1</literal>)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>omegar</term>
+
+ <listitem>
+
+ <para>実数 : カットオフ周波数(Hz) </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>zeros</term>
+
+ <listitem>
+
+ <para>結果のフィルタのゼロ</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>poles</term>
+
+ <listitem>
+
+ <para>結果のフィルタの極</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>gain</term>
+
+ <listitem>
+
+ <para>結果のフィルタのゲイン</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 2型チェビシェフアナログフィルタの極およびゼロ.
+
+ gainはフィルタのゲインです.
+
+ </para>
+
+ <programlisting role="no-scilab-exec"><![CDATA[
+H(s)=gain*poly(zeros,'s')/poly(poles,'s')
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+n=10;
+A=1/0.2;
+omegar=6;
+[z,p,gain]=zpch2(n,A,omegar)
+ ]]></programlisting>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/filters/zpell.xml b/modules/signal_processing/help/ja_JP/filters/zpell.xml
new file mode 100755
index 000000000..f86f351f9
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/filters/zpell.xml
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="zpell">
+
+ <refnamediv>
+
+ <refname>zpell</refname>
+
+ <refpurpose>ローパス楕円フィルタ </refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[zeros,poles,gain]=zpell(epsilon,A,omegac,omegar)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>epsilon</term>
+
+ <listitem>
+
+ <para>
+
+ 実数 : 通過域のフィルタのリップル (<literal>0&lt;epsilon&lt;1</literal>)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>A</term>
+
+ <listitem>
+
+ <para>
+
+ 実数 : 阻止域のフィルタの減衰 (<literal>A&gt;1</literal>)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>omegac</term>
+
+ <listitem>
+
+ <para>実数 : 通過域のカットオフ周波数(Hz)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>omegar</term>
+
+ <listitem>
+
+ <para>実数 : 阻止域のカットオフ周波数(Hz)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>zeros</term>
+
+ <listitem>
+
+ <para>フィルタのゼロ</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>poles</term>
+
+ <listitem>
+
+ <para>フィルタの極</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>gain</term>
+
+ <listitem>
+
+ <para>フィルタのゲイン</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 基本ローパス楕円フィルタの極及びゼロ.
+
+ <literal>gain</literal>はフィルタのゲインです.
+
+ </para>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="ell1mag">ell1mag</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="eqiir">eqiir</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/frfit.xml b/modules/signal_processing/help/ja_JP/frfit.xml
new file mode 100755
index 000000000..2af530e82
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/frfit.xml
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="frfit">
+
+ <refnamediv>
+
+ <refname>frfit</refname>
+
+ <refpurpose>周波数応答フィッティング</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>sys=frfit(w,fresp,order)
+
+ [num,den]=frfit(w,fresp,order)
+
+ sys=frfit(w,fresp,order,weight)
+
+ [num,den]=frfit(w,fresp,order,weight)
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>w</term>
+
+ <listitem>
+
+ <para>周波数 (Hz)のベクトル(正の実数)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fresp</term>
+
+ <listitem>
+
+ <para>
+
+ 周波数応答の複素ベクトル (<literal>w</literal>と同じ大きさ)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>order</term>
+
+ <listitem>
+
+ <para>
+
+ 整数 (指定する次数, <literal>den</literal>の次数)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>weight</term>
+
+ <listitem>
+
+ <para>
+
+ 正の実数ベクトル (デフォルト値: <literal>ones(w)</literal>).
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>num,den</term>
+
+ <listitem>
+
+ <para>安定な多項式</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ <literal>sys=frfit(w,fresp,order,weight)</literal> は,
+
+ 周波数応答<literal>G(w(i))</literal>が<literal>fresp(i)</literal>に一致する,
+
+ すなわち,<literal>freq(num,den,%i*w)</literal>が<literal>fresp</literal>に
+
+ 近くなるような,指定した次数<literal>order</literal>の
+
+ 双安定の伝達関数 <literal>G(s)=sys=num/den</literal>を返します.
+
+ <literal>weight(i)</literal>は<literal>w(i)</literal>に関する重みです.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+w=0.01:0.01:2;s=poly(0,'s');
+G=syslin('c',2*(s^2+0.1*s+2), (s^2+s+1)*(s^2+0.3*s+1));
+fresp=repfreq(G,w);
+Gid=frfit(w,fresp,4);
+frespfit=repfreq(Gid,w);
+bode(w,[fresp;frespfit])
+ ]]></programlisting>
+
+ <scilab:image>
+
+ w=0.01:0.01:2;
+
+ s=poly(0,'s');
+
+ G=syslin('c',2*(s.^2+0.1*s+2), (s.^2+s+1)*(s.^2+0.3*s+1));
+
+ fresp=repfreq(G,w);
+
+ Gid=frfit(w,fresp,4);
+
+ frespfit=repfreq(Gid,w);
+
+ bode(w,[fresp;frespfit])
+
+ </scilab:image>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="frep2tf">frep2tf</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="factors">factors</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="cepstrum">cepstrum</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="mrfit">mrfit</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="freq">freq</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="calfrq">calfrq</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/hilbert.xml b/modules/signal_processing/help/ja_JP/hilbert.xml
new file mode 100755
index 000000000..dbb44752f
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/hilbert.xml
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="hilbert">
+
+ <refnamediv>
+
+ <refname>hilbert</refname>
+
+ <refpurpose>
+
+ ヒルバート変換により実信号の離散解析信号を計算する
+
+ </refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>x=hilbert(xr)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>xr</term>
+
+ <listitem>
+
+ <para>実数ベクトル : 実信号標本</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>複素ベクトル: 離散時間解析信号.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 実データ系列に基づく解析信号を返します.
+
+ </para>
+
+ <para>
+
+ 解析信号 <literal>x= xr + i*xi</literal> は元データを
+
+ 実部<literal>xr</literal>に有し,
+
+ 虚部<literal>xi</literal>にヒルバート変換を有します.
+
+ 虚部は元の実系列の90°位相シフトしたものです.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>参考文献</title>
+
+ <para>
+
+ <literal>
+
+ <ulink url="http://ieeexplore.ieee.org/iel5/78/16975/00782222.pdf?arnumber=782222">http://ieeexplore.ieee.org/iel5/78/16975/00782222.pdf?arnumber=782222</ulink>
+
+ </literal>
+
+ </para>
+
+ <para>
+
+ Marple, S.L., "Computing the discrete-time analytic signal via FFT,"
+
+ IEEE Transactions on Signal Processing, Vol. 47, No.9 (September
+
+ 1999), pp.2600-2603
+
+ </para>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="window">window</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="hilb">hil</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+// 実インパルス信号の離散時間解析信号の虚部を
+// ヒルバート変換フィルタのFIR近似と比較
+m=25;
+n=2*m+1;
+y=hilbert(eye(n,1));
+h=hilb(n)';
+h=[h((m+1):$);h(1:m)];
+plot([imag(y) h])
+ ]]></programlisting>
+
+ <scilab:image>
+
+ m=25;
+
+ n=2*m+1;
+
+ y=hilbert(eye(n,1));
+
+ h=hilb(n)';
+
+ h=[h((m+1):$);h(1:m)];
+
+ plot([imag(y) h])
+
+ </scilab:image>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/howto/CHAPTER b/modules/signal_processing/help/ja_JP/howto/CHAPTER
new file mode 100755
index 000000000..99ca87f73
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/howto/CHAPTER
@@ -0,0 +1 @@
+title = How to
diff --git a/modules/signal_processing/help/ja_JP/howto/DesignEllipticFilter.xml b/modules/signal_processing/help/ja_JP/howto/DesignEllipticFilter.xml
new file mode 100755
index 000000000..96e1f4b42
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/howto/DesignEllipticFilter.xml
@@ -0,0 +1,484 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="DesignEllipticFilter">
+
+ <refnamediv>
+
+ <refname>How to design an elliptic filter</refname>
+
+ <refpurpose>楕円フィルタの設計法 (アナログおよびデジタル)</refpurpose>
+
+ </refnamediv>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ このヘルプの目的は,アナログおよびデジタル楕円フィルタを簡単に設計することです.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>アナログ楕円フィルタを設計する</title>
+
+ <para>
+
+ 楕円ローパスフィルタを設計する複数の手法があります.
+
+ <link linkend="analpf">analpf</link> または <link linkend="zpell">zpell</link>を使用することができます.
+
+ フィルタの極およびゼロを得る際にzpellを使用します.
+
+ これらの極及びゼロを取得した後,この形式を<link linkend="syslin">syslin</link> の形式に変換する必要があります.
+
+ </para>
+
+ <para>次に,フィルタはボード線図に表すことができます.</para>
+
+ <programlisting role=""><![CDATA[
+// analog elliptic (Bessel), order 2, cutoff 1 Hz
+Epsilon = 3; // 通過域のフィルタのリップル (0<epsilon<1)
+A = 60; // 阻止域のフィルタの減衰 (A<1)
+OmegaC = 10; // 通過域カットオフ周波数 (Hz)
+OmegaR = 50; // 阻止域カットオフ周波数 (Hz)
+// フィルタを生成
+[_zeros,pols,gain] = zpell(3,60,10,50);
+
+// フィルタの等価な線形システムを生成
+num = gain * real(poly(_zeros,'s'));
+den = real(poly(pols,'s'));
+elatf = syslin('c',num,den);
+
+// 得られたフィルタをプロット
+bode(elatf,0.01,100);
+title('Analog Elliptic filter');
+ ]]></programlisting>
+
+ <para>ボード線図はアナログフィルタでのみ使用できます.</para>
+
+ <mediaobject>
+
+ <imageobject>
+
+ <imagedata align="center" fileref="../../images/analog_elliptic_filter.png"/>
+
+ </imageobject>
+
+ </mediaobject>
+
+ <para>ハイパス,バンドパスまたはバンドストップフィルタを設計したい場合,
+
+ ローパスフィルタをまず設計した後,このローパスフィルタを
+
+ <link linkend="trans">trans</link>関数により変換します.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>デジタル楕円フィルタを設計</title>
+
+ <para>次に,デジタル系ローパス楕円フィルタを作成する方法に着目します.</para>
+
+ <para>以下の2種類のデジタルフィルタを作成することができます:</para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <para>IIR (Infinite Impulse Response).</para>
+
+ <para>このようなフィルタを作成する際,以下の関数を使用できます:</para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <para>
+
+ <link linkend="iir">iir</link>
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <link linkend="eqiir">eqiir</link>
+
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ <listitem>
+
+ <para>FIR (Finite Impulse Response).</para>
+
+ <para>このようなフィルタを作成する際,以下の関数を使用できます:</para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <para>
+
+ <link linkend="eqfir">eqfir</link>
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <link linkend="ffilt">ffilt</link>
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <link linkend="wfir">wfir</link>
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <link linkend="fsfirlin">fsfirlin</link>
+
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+
+ 以下のデモでは,<link linkend="iir">iir</link> 関数を使用します.
+
+ </para>
+
+ <programlisting role="example"><![CDATA[
+Order = 2; // フィルタの次数
+Fs = 1000; // サンプル周期
+Fcutoff = 40; // カットオフ周波数
+
+// ローパス楕円フィルタを設計
+hz = iir(Order,'lp','ellip',[Fcutoff/Fs/2 0],[0.1 0.1]);
+
+// フィルタの周波数応用を計算
+[frq,repf]=repfreq(hz,0:0.001:0.5);
+[db_repf, phi_repf] = dbphi(repf);
+
+// デジタルフィルタのボード線図に類似の図をプロット
+subplot(2,1,1);
+plot2d(Fs*frq,db_repf);
+xtitle('Obtained Frequency Response (Magnitude)');
+subplot(2,1,2);
+plot2d(Fs*frq,phi_repf);
+xtitle('Obtained Frequency Response (Phase in degree)');
+ ]]></programlisting>
+
+ <para>以下にデジタル楕円フィルタの表現を示します.</para>
+
+ <mediaobject>
+
+ <imageobject>
+
+ <imagedata align="center" fileref="../../images/digital_elliptic_filter.png"/>
+
+ </imageobject>
+
+ </mediaobject>
+
+ <para>
+
+ フィルタを位相および振幅で表すには,
+
+ まず<link linkend="dbphi">dbphi</link>関数により離散インパルス応答を
+
+ 振幅および位相に変換する必要があります.
+
+ この変換は,正規化された周波数の集合を用いて行われます.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>デジタルフィルタにより信号をフィルタ処理する</title>
+
+ <para>
+
+ フィルタの設計は最初の一歩です.設計が完了した後,このフィルタは
+
+ 信号を変換する際に使用されます.
+
+ 例えば何らかのノイズを取り除くために使用されます.
+
+ </para>
+
+ <para>以下の例では、ガウスノイズをフィルタ処理します.</para>
+
+ <programlisting role=""><![CDATA[
+rand('normal');
+Input = rand(1,1000); // ランダムガウスノイズを生成
+t = 1:1000;
+
+sl= tf2ss(hz); // 伝達関数から状態空間表現に変換
+y = flts(Input,sl); // 信号をフィルタ
+
+subplot(2,1,1);
+plot(t,Input);
+xtitle('The gaussian noise','t','y');
+subplot(2,1,2);
+plot(t,y);
+xtitle('The filtered gaussian noise','t','y');
+ ]]></programlisting>
+
+ <para>以下にフィルタ処理の前後の信号をプロットします.</para>
+
+ <mediaobject>
+
+ <imageobject>
+
+ <imagedata fileref="../../images/digital_filtered_noise.png"/>
+
+ </imageobject>
+
+ </mediaobject>
+
+ <para>
+
+ 結果を見てわかるように,ノイズの高周波成分は取り除かれ,
+
+ 低周波成分のみが残っています.
+
+ この信号はまだノイジーですが,主に低周波域が含まれています.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>アナログフィルタにより信号をフィルタ処理</title>
+
+ <para>アナログフィルタにより信号をフィルタ処理するには,以下の2種類の方法があります:</para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <para>
+
+ アナログフィルタを<link linkend="dscr">dscr</link>関数により離散系に変換する
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ 信号をフィルタ処理するために<link linkend="csim">csim</link>関数を適用する
+
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+
+ まず,<link linkend="dscr">dscr</link> + <link linkend="flts">flts</link>関数を用います.
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+rand('normal');
+Input = rand(1,1000); // ランダムなガウスノイズを生成
+n = 1:1000; // 標本インデックス
+
+eldtf = dscr(elatf,1/100); //線形フィルタの離散化
+y = flts(Input,eldtf); // 信号をフィルタ処理
+
+subplot(2,1,1);
+plot(n,Input);
+xtitle('The gaussian noise','n','y');
+subplot(2,1,2);
+plot(n,y);
+xtitle('The filtered gaussian noise','n','y');
+ ]]></programlisting>
+
+ <para>
+
+ ここで, <link linkend="dscr">dscr</link> + <link linkend="flts">flts</link> の方法によりフィルタ処理する前後の信号を以下にプロットします.
+
+ </para>
+
+ <mediaobject>
+
+ <imageobject>
+
+ <imagedata fileref="../../images/analog_filtered_noise.png"/>
+
+ </imageobject>
+
+ </mediaobject>
+
+ <para>
+
+ 次に, <link linkend="csim">csim</link>関数を使用します.
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+rand('normal');
+Input = rand(1,1000); // Pランダムなガウスノイズを生成
+t = 1:1000;
+t = t*0.01; // 標本インデックスを時間刻みに変換
+
+y = csim(Input,t,elatf); // 信号をフィルタ処理
+
+subplot(2,1,1);
+plot(t,Input);
+xtitle('The gaussian noise','t','y');
+subplot(2,1,2);
+plot(t,y);
+xtitle('The filtered gaussian noise','t','y');
+ ]]></programlisting>
+
+ <para>以下に
+
+ <link linkend="csim">csim</link>の方法によりフィルタ処理する前後の信号を以下にプロットします.
+
+ </para>
+
+ <mediaobject>
+
+ <imageobject>
+
+ <imagedata fileref="../../images/analog_filtered_noise_csim.png"/>
+
+ </imageobject>
+
+ </mediaobject>
+
+ <para>
+
+ <link linkend="dscr">dscr</link> +
+
+ <link linkend="flts">flts</link> による方法を <link linkend="csim">csim</link> による方法の主な違いを以下に示します : <link linkend="dscr">dscr</link>
+
+ + <link linkend="flts">flts</link> は標本を使用しますが,<link linkend="csim">csim</link> 関数は時間刻みを使用します.
+
+ </para>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="bode">bode</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="iir">iir</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="poly">poly</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="syslin">syslin</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="zpell">zpell</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="flts">flts</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="tf2ss">tf2ss</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="dscr">dscr</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="csim">csim</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="trans">trans</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="analpf">analpf</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/identification/CHAPTERS b/modules/signal_processing/help/ja_JP/identification/CHAPTERS
new file mode 100755
index 000000000..85dd5f7bf
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/identification/CHAPTERS
@@ -0,0 +1 @@
+title = Identification
diff --git a/modules/signal_processing/help/ja_JP/identification/lattn.xml b/modules/signal_processing/help/ja_JP/identification/lattn.xml
new file mode 100755
index 000000000..21201eccf
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/identification/lattn.xml
@@ -0,0 +1,238 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="lattn">
+
+ <refnamediv>
+
+ <refname>lattn</refname>
+
+ <refpurpose>正規方程式の反復解 </refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[la,lb]=lattn(n,p,cov)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>フィルタの最大次数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>p</term>
+
+ <listitem>
+
+ <para>
+
+ MA部の次元(一定).
+
+ <literal>p= -1</literal>の場合, アルゴリズムは従来の
+
+ Levinson反復を使用します.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>cov</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>Rk</literal>(d次元過程の場合は<literal>d*d</literal>行列)を有する行列.
+
+ 以下のように指定します.
+
+ </para>
+
+ <para>
+
+ <latex>
+
+ \begin{eqnarray}
+
+ \begin{pmatrix}
+
+ R_0\\R_1\\R_2\\ \vdots \\R_{nlags}
+
+ \end{pmatrix}
+
+ \end{eqnarray}
+
+ </latex>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>la</term>
+
+ <listitem>
+
+ <para>リスト型の変数で, 連続的に計算されたAkを係数とする多項式(1次からn次)を
+
+ 出力します
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 以下のシステム (正規方程式)を<literal>n</literal>(<literal>p</literal>は固定)について
+
+ 再帰的に解きます,
+
+ つなわち, ARMA(n,p) 過程ベクトルのAR部(極)を同定します.
+
+ </para>
+
+ <latex>
+
+ \begin{eqnarray}
+
+ \begin{pmatrix}
+
+ I&amp;-A_1&amp;\cdots&amp;-A_n
+
+ \end{pmatrix}
+
+ \ast
+
+ \begin{pmatrix}
+
+ R_{p+1}&amp;R_{p+2}&amp;\cdots&amp;R_{p+n} \\
+
+ R_p&amp;R_{p+1}&amp;\cdots&amp;R_{p+n-1} \\
+
+ R_{p+n-1}&amp;R_p&amp;\cdots&amp;R_{p+n-2} \\
+
+ \vdots&amp;\vdots&amp;\cdots&amp;\vdots \\
+
+ R_{p+1-n}&amp;R_{p+2-n}&amp;\cdots&amp;R_p
+
+ \end{pmatrix}
+
+ = 0
+
+ \end{eqnarray}
+
+ </latex>
+
+ <para>
+
+
+
+ </para>
+
+ <para>
+
+ ただし,{<literal>Rk;k=1,nlag</literal>}
+
+ は経験的共分散の系列です.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="Example"><![CDATA[
+//プロセスを生成
+t1=0:0.1:100;
+y1=sin(2*%pi*t1)+sin(2*%pi*2*t1);
+y1=y1+rand(y1,"normal");
+
+//Covariance of y1
+nlag=128;
+c1=corr(y1,nlag);
+c1=c1';
+
+//最大次数=15, p=1 でフィルタ計算
+n=15;
+[la1,sig1]=lattn(n,1,c1);
+
+//p=-1,levin関数で極の結果を計算
+[la2,sig2]=lattn(n,-1,c1);
+for i=1:n
+ s2=roots(la2(i));
+ s2=log(s2)/2/%pi/.1; //推定された極
+ s2=gsort(imag(s2));
+ s2=s2(1:i/2);
+end;
+[la3,sig3]=levin(n,c1);
+for i=1:n
+ s3=roots(la3(i));
+ s3=log(s3)/2/%pi/.1; //推定された極
+ s3=gsort(imag(s3));
+ s3=s3(1:i/2);
+end;
+]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="levin">levin</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="lattp">lattp</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/identification/lattp.xml b/modules/signal_processing/help/ja_JP/identification/lattp.xml
new file mode 100755
index 000000000..2f0c2bb9e
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/identification/lattp.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="lattp">
+
+ <refnamediv>
+
+ <refname>lattp</refname>
+
+ <refpurpose>ARMAプロセスのMA部の同定</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[la,lb]=lattp(n,p,cov)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>フィルタの最大次数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>p</term>
+
+ <listitem>
+
+ <para>
+
+ MA部の次元(定数). <literal>p= -1</literal>の場合,
+
+ アルゴリズムは従来のLevinson反復を使用します.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>cov</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>Rk</literal>(d次元過程の場合は<literal>d*d</literal>行列)を有する行列.
+
+ 以下のように指定します.
+
+ </para>
+
+ <para>
+
+ <latex>
+
+ \begin{eqnarray}
+
+ \begin{pmatrix}
+
+ R_0\\R_1\\R_2\\ \vdots \\R_{nlags}
+
+ \end{pmatrix}
+
+ \end{eqnarray}
+
+ </latex>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>la</term>
+
+ <listitem>
+
+ <para>
+
+ リスト型の変数で,連続的に計算されたAkを係数とする多項式(1次からp次)を
+
+ 出力します
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ この関数は,ARMA(n,p) プロセスのMA部を同定します.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="Example"><![CDATA[
+//プロセス生成
+t1=0:0.1:100;
+y1=sin(2*%pi*t1)+sin(2*%pi*2*t1);
+y1=y1+rand(y1,"normal");
+
+//y1の共分散
+nlag=128;
+c1=corr(y1,nlag);
+c1=c1';
+
+//最大次数=15 および p=5 でフィルタを計算
+n=5; p=2;
+[la1,sig1]=lattp(n,p,c1);
+]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="levin">levin</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="lattn">lattn</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/identification/phc.xml b/modules/signal_processing/help/ja_JP/identification/phc.xml
new file mode 100755
index 000000000..2949d7dac
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/identification/phc.xml
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="phc">
+
+ <refnamediv>
+
+ <refname>phc</refname>
+
+ <refpurpose>マルコフ表現</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[H,F,G]=phc(hk,d,r)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>hk</term>
+
+ <listitem>
+
+ <para>ハンケル行列</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>d</term>
+
+ <listitem>
+
+ <para>観測量の次元</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>r</term>
+
+ <listitem>
+
+ <para>
+
+ 指定する近似モデルの状態量の次元
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>H, F, G</term>
+
+ <listitem>
+
+ <para>マルコフモデルの行列</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 確率過程の共分散系列から構築されたハンケル行列から
+
+ 主ハンケル要素近似法により
+
+ マルコフ表現の行列<literal>H, F, G</literal>を計算する関数.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+//この例は'levin'マクロ(対応するヘルプおよび例を参照)による
+//結果と比較する際に有用です
+//
+//サイン波(1Hzおよび2Hz)にガウスノイズを加算することにより
+//定義したプロセスを考えます(これが観測量です);
+//シミュレーションされるプロセスのサンプリング周波数は10Hzです.
+
+t=0:.1:100;rand('normal');
+y=sin(2*%pi*t)+sin(2*%pi*2*t);y=y+rand(y);plot(t,y)
+
+//yの共分散
+
+nlag=128;
+c=corr(y,nlag);
+
+//共分散系列からハンケル行列を計算
+// (より大きなnおよびmを指定することにより共分散からより多くの
+// 情報を得ることもできます; 試して結果を比較してみてください!
+
+n=20;m=20;
+h=hank(n,m,c);
+
+//マルコフ表現(mh,mf,mg)を計算
+//ここでは,状態量の次元(4)を選択 :
+//次元の推定の方がむしろ困難な問題です!
+//nsを変えてみてください!
+//(観測量の次元はここでは1にします)
+
+ns=4;
+[mh,mf,mg]=phc(h,1,ns);
+
+//mfのスペクトルが観測量プロセスyの周波数スペクトルを
+//有することを確認
+//(この例では,yは10Hz(T=0.1s)で標本化されたことを思い出してください.
+//このため,記録から元の周波数を回復し,周波数サンプリングにより正しく
+//スケーリングする必要があります)
+
+s=spec(mf);s=log(s);
+s=s/2/%pi/.1;
+
+//ここで,スペクトル推定値を得ました
+imag(s),
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="levin">levin</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/identification/rpem.xml b/modules/signal_processing/help/ja_JP/identification/rpem.xml
new file mode 100755
index 000000000..32115ee1c
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/identification/rpem.xml
@@ -0,0 +1,544 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="rpem">
+
+ <refnamediv>
+
+ <refname>rpem</refname>
+
+ <refpurpose>再帰的予測誤差最小推定</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[w1,[v]]=rpem(w0,u0,y0,[lambda,[k,[c]]])</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>w0</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>list(theta,p,l,phi,psi)</literal> ただし:
+
+ </para>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>theta</term>
+
+ <listitem>
+
+ <para>
+
+ [a,b,c] はi<literal>3*n</literal>次の実数ベクトルです
+
+ </para>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>a,b,c</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>a=[a(1),...,a(n)], b=[b(1),...,b(n)], c=[c(1),...,c(n)]</literal>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>p</term>
+
+ <listitem>
+
+ <para>(3*n x 3*n) 実数行列.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>phi,psi,l</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>3*n</literal>次の実数ベクトル
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ <para>
+
+ 最初のコールで適用可能な値を以下に示します:
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+theta=phi=psi=l=0*ones(1,3*n). p=eye(3*n,3*n)
+ ]]></programlisting>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>u0</term>
+
+ <listitem>
+
+ <para>
+
+ 入力の実数ベクトル (任意の大きさ). (<literal>u0($)</literal> は
+
+ rpemで使用されません)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y0</term>
+
+ <listitem>
+
+ <para>
+
+ 出力のベクトル (<literal>u0</literal>と同じ次元).
+
+ (<literal>y0(1)</literal>はrpemでは使用されません).
+
+ </para>
+
+ <para>
+
+ 時間領域が<literal>(t0,t0+k-1)</literal>の場合,
+
+ <literal>u0</literal>ベクトルは入力
+
+ </para>
+
+ <para>
+
+ <literal>u(t0),u(t0+1),..,u(t0+k-1)</literal> および
+
+ <literal>y0</literal>は出力
+
+ </para>
+
+ <para>
+
+ <literal>y(t0),y(t0+1),..,y(t0+k-1)</literal>を有します.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>オプションの引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>lambda</term>
+
+ <listitem>
+
+ <para>オプションの引数 (忘却定数) 収束した時に1に近くなるように選択:</para>
+
+ <para>
+
+ <literal>lambda=[lambda0,alfa,beta]</literal>は下式に基づき更新されます :
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+lambda(t)=alfa*lambda(t-1)+beta
+ ]]></programlisting>
+
+ <para>
+
+ ただし, <literal>lambda(0)=lambda0</literal>です.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>k</term>
+
+ <listitem>
+
+ <para>収束した際に1に近くなるように選択される縮小係数.</para>
+
+ <para>
+
+ <literal>k=[k0,mu,nu]</literal> は下式に基づき更新されます:
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+k(t)=mu*k(t-1)+nu
+ ]]></programlisting>
+
+ <para>
+
+ ただし, <literal>k(0)=k0</literal>です.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>c</term>
+
+ <listitem>
+
+ <para>
+
+ 大きな引数(<literal>c=1000</literal> がデフォルト値です).
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>出力:</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>w1</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>w0</literal>の更新.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>v</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>u0, y0</literal>における二乗予測誤差の合計(オプション).
+
+ </para>
+
+ <para>
+
+ 特に <literal>w1(1)</literal> は
+
+ <literal>theta</literal>の新しい推定値です.
+
+ 新しい標本<literal>u1, y1</literal>が利用できる時,
+
+ 以下のように更新が行われます:
+
+ </para>
+
+ <para>
+
+ <literal>[w2,[v]]=rpem(w1,u1,y1,[lambda,[k,[c]]])</literal>.
+
+ 任意の大きな級数を扱うことができます.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ ARMAXモデルの引数の再帰的推定.
+
+ Ljung-Soderstromの再帰的予測誤差法を使用します.
+
+ 考慮されるモデルを以下に示します:
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+y(t)+a(1)*y(t-1)+...+a(n)*y(t-n)=
+b(1)*u(t-1)+...+b(n)*u(t-n)+e(t)+c(1)*e(t-1)+...+c(n)*e(t-n)
+ ]]></programlisting>
+
+ <para>
+
+ </para>
+
+ <para>
+
+ このコマンドの効果は,未知の引数<literal>theta=[a,b,c]</literal>の
+
+ 推定値を更新することです.
+
+ </para>
+
+ <para>
+
+ ただし,<literal>a=[a(1),...,a(n)], b=[b(1),...,b(n)], c=[c(1),...,c(n)]</literal>です.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="Example"><![CDATA[
+nbPoints = 50; // Number of points computed
+
+// Real parameters a,b,c: here, y=u
+a=cat(2,1,zeros(1,nbPoints - 1));
+b=cat(2,1,zeros(1,nbPoints - 1));
+c=zeros(1,nbPoints);
+
+// Generate input signal
+t=linspace(0,50,600);
+w=%pi/3;
+u=cos(w*t);
+
+// Generate output signal
+Arma=armac(a,b,c,1,1,0);
+y=arsimul(Arma,u);
+
+f1=figure("figure_name","figure1","backgroundColor",[1 1 1]);
+subplot(3,1,1);
+plot(t, u, "b+");
+xtitle("Input");
+subplot(3,1,2);
+plot(t, y);
+
+// Arguments of rpem
+phi=zeros(1,nbPoints*3);
+psi=zeros(1,nbPoints*3);
+l=zeros(1,nbPoints*3);
+p=1*eye(nbPoints*3,nbPoints*3);
+theta=[0*a 0*b 0*c];
+w0=list(theta,p,l,phi,psi);
+[w0, v]=rpem(w0,u,y);
+
+// Get estimated parameters:
+a_est=w0(1)(1);
+b_est=w0(1)(nbPoints + 1);
+c_est=w0(1)(2 * nbPoints + 1);
+for i=2:nbPoints
+ a_est=cat(2,a_est,w0(1)(i));
+ b_est=cat(2,b_est,w0(1)(i+nbPoints));
+ c_est=cat(2,c_est,w0(1)(i+2*nbPoints));
+end
+
+// Generate and plot output estimated
+Arma_est=armac(a_est,b_est,c_est,1,1,0);
+y_est=arsimul(Arma_est,u);
+plot(t, y_est,"color","red");
+xtitle("Real output(blue), Estimated output (red)");
+
+// Plot estimated parameters
+subplot(3,1,3);
+xtitle("a,b,c estimated");
+plot(a_est(1,:),"color","red");
+plot(b_est(1,:),"color","green");
+plot(c_est(1,:),"color","blue");
+]]>
+
+ </programlisting>
+
+ <scilab:image>
+
+ nbPoints = 50; // Number of points computed
+
+
+
+ // Real parameters a,b,c: here, y=u
+
+ a=cat(2,1,zeros(1,nbPoints - 1));
+
+ b=cat(2,1,zeros(1,nbPoints - 1));
+
+ c=zeros(1,nbPoints);
+
+
+
+ // Generate input signal
+
+ t=linspace(0,50,600);
+
+ w=%pi/3;
+
+ u=cos(w*t);
+
+
+
+ // Generate output signal
+
+ Arma=armac(a,b,c,1,1,0);
+
+ y=arsimul(Arma,u);
+
+
+
+ f1=figure("figure_name","figure1","backgroundColor",[1 1 1]);
+
+ subplot(3,1,1);
+
+ plot(t, u, "b+");
+
+ xtitle("Input");
+
+ subplot(3,1,2);
+
+ plot(t, y);
+
+
+
+ // Arguments of rpem
+
+ phi=zeros(1,nbPoints*3);
+
+ psi=zeros(1,nbPoints*3);
+
+ l=zeros(1,nbPoints*3);
+
+ p=1*eye(nbPoints*3,nbPoints*3);
+
+ theta=[0*a 0*b 0*c];
+
+ w0=list(theta,p,l,phi,psi);
+
+ [w0, v]=rpem(w0,u,y);
+
+
+
+ // Get estimated parameters:
+
+ a_est=w0(1)(1);
+
+ b_est=w0(1)(nbPoints + 1);
+
+ c_est=w0(1)(2 * nbPoints + 1);
+
+ for i=2:nbPoints
+
+ a_est=cat(2,a_est,w0(1)(i));
+
+ b_est=cat(2,b_est,w0(1)(i+nbPoints));
+
+ c_est=cat(2,c_est,w0(1)(i+2*nbPoints));
+
+ end
+
+
+
+ // Generate and plot output estimated
+
+ Arma_est=armac(a_est,b_est,c_est,1,1,0);
+
+ y_est=arsimul(Arma_est,u);
+
+ plot(t, y_est,"color","red");
+
+ xtitle("Real output(blue), Estimated output (red)");
+
+
+
+ // Plot estimated parameters
+
+ subplot(3,1,3);
+
+ xtitle("a,b,c estimated");
+
+ plot(a_est(1,:),"color","red");
+
+ plot(b_est(1,:),"color","green");
+
+ plot(c_est(1,:),"color","blue");
+
+ </scilab:image>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/ifftshift.xml b/modules/signal_processing/help/ja_JP/ifftshift.xml
new file mode 100755
index 000000000..adb883fd5
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/ifftshift.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.
+ * The terms are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="ifftshift">
+ <refnamediv>
+ <refname>ifftshift</refname>
+ <refpurpose>fftshiftを反転する</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>呼び出し手順</title>
+ <synopsis>y=ifftshift(x)</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>引数</title>
+ <variablelist>
+ <varlistentry>
+ <term>x, y</term>
+ <listitem>
+ <para>実数または複素数のベクトルまたは行列.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>説明</title>
+ <para>
+ <literal>ifftshift(x)</literal> は,ベクトル<literal>x</literal>の
+ 左半分と右半分を交換します.
+ </para>
+ <para>
+ 行列の場合, <literal>ifftshift(x)</literal> は
+ 最初の4分の1を3番目の4分の1,2番目の4分の1を4番目の4分の1と交換します.
+ </para>
+ <para>
+ <literal>x</literal> が多次元配列の場合,
+ <literal>ifftshift(x)</literal> は各次元で<literal>x</literal>の
+ "半分の空間"を交換します.
+ </para>
+ </refsection>
+ <refsection>
+ <title>例</title>
+ <para>
+ 例 #1:
+ </para>
+ <programlisting role="example"><![CDATA[
+// 信号を生成
+t = 0:0.1:1000;
+x = 3*sin(t)+8*sin(3*t)+0.5*sin(5*t)+3*rand(t);
+// fftを計算
+y = fft(x, -1);
+// 結果を反転
+shift = fftshift(y);
+// 反転結果を反転
+invShift = ifftshift(shift);
+// 元の結果を再成したどうかを確認
+and(y == invShift)
+ ]]></programlisting>
+ <para>
+ 例 #2:
+ </para>
+ <programlisting role="example"><![CDATA[
+// 2次元画像を生成
+t = 0:0.1:30;
+x = 3*sin(t')*cos(2*t)+8*sin(3*t')*sin(5*t)+..
+ 0.5*sin(5*t')*sin(5*t)+3*rand(t')*rand(t);
+// fftを計算
+y = fft(x,-1);
+// 結果を反転
+shift = fftshift(y);
+// 反転結果を反転
+invShift = ifftshift(shift);
+// 元の結果を再成したどうかを確認
+and(y == invShift)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>参照</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="fftshift">fftshift</link>
+ </member>
+ <member>
+ <link linkend="fft">fft</link>
+ </member>
+ </simplelist>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/ja_JP/miscellaneous/CHAPTERS b/modules/signal_processing/help/ja_JP/miscellaneous/CHAPTERS
new file mode 100755
index 000000000..0af07295a
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/miscellaneous/CHAPTERS
@@ -0,0 +1,2 @@
+title = Miscellaneous
+
diff --git a/modules/signal_processing/help/ja_JP/miscellaneous/bilt.xml b/modules/signal_processing/help/ja_JP/miscellaneous/bilt.xml
new file mode 100755
index 000000000..e6a78fee0
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/miscellaneous/bilt.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="bilt">
+
+ <refnamediv>
+
+ <refname>bilt</refname>
+
+ <refpurpose>極/ゼロ表現で指定したSISO系の双一次または双二次変換</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[npl,nzr,ngn] = bilt(pl,zr,gn,num,den)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>pl</term>
+
+ <listitem>
+
+ <para>ベクトル, 指定したシステムの極.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>zr</term>
+
+ <listitem>
+
+ <para>ベクトル, 指定したシステムのゼロ.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>num</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>den</literal>の次数に等しい次数を有する多項式, 伝達関数の分子.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>den</term>
+
+ <listitem>
+
+ <para>1または2次の多項式, 伝達関数の分母.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>npl</term>
+
+ <listitem>
+
+ <para>ベクトル, 変換後のシステムの極.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>nzr</term>
+
+ <listitem>
+
+ <para>ベクトル, 変換後のシステムのゼロ.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>ngn</term>
+
+ <listitem>
+
+ <para>スカラー,変換後のシステムのゲイン.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 双一次変換または双二次変換に基づき
+
+ ゲインの極およびゼロを計算する関数.
+
+ <link linkend="iir">iir</link> および <link linkend="trans">trans</link>
+
+ で使用されます.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+Hlp=iir(3,'lp','ellip',[0.1 0],[.08 .03]);
+pl=roots(Hlp.den);
+zr=roots(Hlp.num);
+gn=coeff(Hlp.num,degree(Hlp.num))/coeff(Hlp.den,degree(Hlp.den));
+z=poly(0,'z');
+a=0.3;
+num=z-a;
+den=1-a*z;
+[npl,nzr,ngn] = bilt(pl,zr,gn,num,den)
+Hlpt=ngn*poly(nzr,'z','r')/poly(npl,'z','r')
+//hornerと比較
+horner(Hlp,num/den)
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="iir">iir</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="trans">trans</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="horner">horner</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/miscellaneous/sincd.xml b/modules/signal_processing/help/ja_JP/miscellaneous/sincd.xml
new file mode 100755
index 000000000..230e23ce4
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/miscellaneous/sincd.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="sincd">
+
+ <refnamediv>
+
+ <refname>sincd</refname>
+
+ <refpurpose>デジタル sinc関数または Direchlet カーネル</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[s]=sincd(n,flag)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>整数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>flag</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>flag = 1</literal>の場合,この関数は
+
+ 原点を中心とします;
+
+ <literal>flag = 2</literal>の場合,この関数は
+
+ <literal>%pi/(2*n)</literal>だけ遅れます
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>s</term>
+
+ <listitem>
+
+ <para>
+
+ 周波数の密なグリッド上の関数の値のベクトル
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ <literal>Sin(N*x)/N*Sin(x)</literal>を計算する関数
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+plot(sincd(10,1))
+ ]]></programlisting>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/mrfit.xml b/modules/signal_processing/help/ja_JP/mrfit.xml
new file mode 100755
index 000000000..3ab61eeb9
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/mrfit.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="mrfit">
+
+ <refnamediv>
+
+ <refname>mrfit</refname>
+
+ <refpurpose>周波数応答フィッティング</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>sys=mrfit(w,mag,order)
+
+ [num,den]=mrfit(w,mag,order)
+
+ sys=mrfit(w,mag,order,weight)
+
+ [num,den]=mrfit(w,mag,order,weight)
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>w</term>
+
+ <listitem>
+
+ <para>周波数ベクトルで正の実数(Hz)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>mag</term>
+
+ <listitem>
+
+ <para>
+
+ 周波数応答の振幅の実数ベクトル (<literal>w</literal>と同じ大きさ)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>order</term>
+
+ <listitem>
+
+ <para>
+
+ 整数 (必要な次数, <literal>den</literal>の次数)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>weight</term>
+
+ <listitem>
+
+ <para>
+
+ 正の実数ベクトル (デフォルト値: <literal>ones(w)</literal>).
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>num,den</term>
+
+ <listitem>
+
+ <para>安定な多項式</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ <literal>sys=mrfit(w,mag,order,weight)</literal> は,
+
+ 周波数応答の振幅<literal>abs(G(w(i)))</literal>が
+
+ <literal>mag(i)</literal>に一致する,すなわち,
+
+ <literal>abs(freq(num,den,%i*w))</literal>が<literal>mag</literal>に近い,
+
+ 指定された次数<literal>order</literal>の
+
+ 双安定伝達関数<literal>G(s)=sys=num/den</literal>を返します.
+
+ <literal>weight(i)</literal> は<literal>w(i)</literal>に関する重みです.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+w=0.01:0.01:2;s=poly(0,'s');
+G=syslin('c',2*(s^2+0.1*s+2),(s^2+s+1)*(s^2+0.3*s+1)); // syslin('c',Num,Den);
+fresp=repfreq(G,w);
+mag=abs(fresp);
+Gid=mrfit(w,mag,4);
+frespfit=repfreq(Gid,w);
+plot2d([w',w'],[mag(:),abs(frespfit(:))])
+ ]]></programlisting>
+
+ <scilab:image>
+
+ w=0.01:0.01:2;
+
+ s=poly(0,'s');
+
+ G=syslin('c',2*(s^2+0.1*s+2),(s^2+s+1)*(s^2+0.3*s+1));
+
+ fresp=repfreq(G,w);
+
+ mag=abs(fresp);
+
+ Gid=mrfit(w,mag,4);
+
+ frespfit=repfreq(Gid,w);
+
+ plot2d([w',w'],[mag(:),abs(frespfit(:))])
+
+ </scilab:image>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="cepstrum">cepstrum</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="frfit">frfit</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="freq">freq</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="calfrq">calfrq</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/spectral_estimation/CHAPTERS b/modules/signal_processing/help/ja_JP/spectral_estimation/CHAPTERS
new file mode 100755
index 000000000..442ab0747
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/spectral_estimation/CHAPTERS
@@ -0,0 +1 @@
+title = Spectral estimation
diff --git a/modules/signal_processing/help/ja_JP/spectral_estimation/corr.xml b/modules/signal_processing/help/ja_JP/spectral_estimation/corr.xml
new file mode 100755
index 000000000..a76cd02d3
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/spectral_estimation/corr.xml
@@ -0,0 +1,438 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="corr">
+
+ <refnamediv>
+
+ <refname>corr</refname>
+
+ <refpurpose>相関 , 共分散</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[cov,Mean]=corr(x,[y],nlags)
+
+ [cov,Mean]=corr('fft',xmacro,[ymacro],n,sect)
+
+
+
+ [w,xu]=corr('updt',x1,[y1],w0)
+
+ [w,xu]=corr('updt',x2,[y2],w,xu)
+
+ ...
+
+ [wk]=corr('updt',xk,[yk],w,xu)
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>実数ベクトル</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>実数ベクトル, デフォルト値 x.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>nlags</term>
+
+ <listitem>
+
+ <para>i整数, 指定した相関係数の数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>xmacro</term>
+
+ <listitem>
+
+ <para>scilab 外部ルーチン (下記参照).</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>ymacro</term>
+
+ <listitem>
+
+ <para>scilab 外部ルーチン (下記参照), デフォルト値: xmacro</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>整数, シーケンス全体の大きさ (下記参照).</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>sect</term>
+
+ <listitem>
+
+ <para>シーケンスのセクションの大きさ (下記参照).</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>xi</term>
+
+ <listitem>
+
+ <para>実数ベクトル</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>yi</term>
+
+ <listitem>
+
+ <para>実数ベクトル,デフォルト値: xi.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>cov</term>
+
+ <listitem>
+
+ <para>実数ベクトル, 相関係数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>Mean</term>
+
+ <listitem>
+
+ <para>実数または実数ベクトル, x (および y)の平均</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 以下を計算します.
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+ n - m
+ ====
+ \ 1
+cov(m) = > (x(k) - xmean) (y(m+k) - ymean) * ---
+ / n
+ ====
+ k = 1
+ ]]></programlisting>
+
+ <para>
+
+ ただし, m=0,..,<literal>nlag-1</literal> で,2つのベクトルは
+
+ <literal>x=[x(1),..,x(n)]</literal>,
+
+ <literal>y=[y(1),..,y(n)]</literal>です.
+
+ </para>
+
+ <para>
+
+ シーケンス x および y が異なる場合, corr(x,y,...)はcorr(y,x,...)
+
+ と異なることに注意してください.
+
+ </para>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>短いシーケンス</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>[cov,Mean]=corr(x,[y],nlags)</literal> は,
+
+ 最初の nlags 個の相関係数および Mean = <literal>mean(x)</literal>
+
+ (<literal>y</literal> が引数として指定された場合,<literal>[x,y]</literal> の平均)
+
+ を返します.
+
+ シーケンス <literal>x</literal> (または <literal>y</literal>) は実数,
+
+ <literal>x</literal>と<literal>y</literal>は同じ次元 n と仮定されます.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>長いシーケンス</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>[cov,Mean]=corr('fft',xmacro,[ymacro],n,sect)</literal>
+
+ ここで,<literal>xmacro</literal> は以下のどちらかです
+
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <para>
+
+ <literal>[xx]=xmacro(sect,istart)</literal> という型の関数で,
+
+ <literal>istart</literal> から
+
+ <literal>istart+sect-1</literal>までの添字を有するシーケンスの
+
+ 一部を含む
+
+ <literal>nsect</literal>次のベクトル<literal>xx</literal>を返します.
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ FortranサブルーチンまたはCプロシージャで,
+
+ 同じ計算を行ないます(例えば,<literal>dgetx</literal>の
+
+ ソースコードを参照ください).
+
+ <literal>n</literal> = シーケンスの総数.
+
+ <literal>sect</literal> = シーケンスのセクションの大きさ.
+
+ <literal>sect</literal> は 2の累乗とする必要があります.
+
+ <literal>cov</literal> は
+
+ <literal>sect</literal>次です.
+
+ 計算は FFT により行われます.
+
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>更新法</term>
+
+ <listitem>
+
+ <programlisting role=""><![CDATA[
+[w,xu]=corr('updt',x1,[y1],w0)
+[w,xu]=corr('updt',x2,[y2],w,xu)
+ ...
+wk=corr('updt',xk,[yk],w,xu)
+ ]]></programlisting>
+
+ <para>
+
+ この呼び出し手順では,計算結果が<literal>corr</literal>をコールする度に
+
+ 更新されます.
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+w0 = 0*ones(1,2*nlags);
+nlags = power of 2.
+ ]]></programlisting>
+
+ <para>
+
+ <literal>x1,x2,...</literal> は,
+
+ <literal>x=[x1,x2,...]</literal>で,<literal>xi</literal>の大きさが
+
+ 2の累乗となるような<literal>x</literal> の一部です.
+
+ <literal>nlags</literal>個の係数を得るには,
+
+ 最後の fft を <literal>c=fft(w,1)/n</literal>;
+
+ <literal>cov=c(1nlags)</literal>を実行する必要があります
+
+ (<literal>n</literal> は <literal>x (y)</literal>の大きさ).
+
+ 注意:
+
+ この呼び出し手順は <literal>xmean = ymean = 0</literal> を仮定します.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+x=%pi/10:%pi/10:102.4*%pi;
+rand('seed');rand('normal');
+y=[.8*sin(x)+.8*sin(2*x)+rand(x);.8*sin(x)+.8*sin(1.99*x)+rand(x)];
+c=[];
+for j=1:2,for k=1:2,c=[c;corr(y(k,:),y(j,:),64)];end;end;
+c=matrix(c,2,128);cov=[];
+for j=1:64,cov=[cov;c(:,(j-1)*2+1:2*j)];end;
+rand('unif')
+
+rand('normal');x=rand(1,256);y=-x;
+deff('[z]=xx(inc,is)','z=x(is:is+inc-1)');
+deff('[z]=yy(inc,is)','z=y(is:is+inc-1)');
+[c,mxy]=corr(x,y,32);
+x=x-mxy(1)*ones(x);y=y-mxy(2)*ones(y); //centring
+c1=corr(x,y,32);c2=corr(x,32);
+norm(c1+c2,1)
+[c3,m3]=corr('fft',xx,yy,256,32);
+norm(c1-c3,1)
+[c4,m4]=corr('fft',xx,256,32);
+norm(m3,1),norm(m4,1)
+norm(c3-c1,1),norm(c4-c2,1)
+x1=x(1:128);x2=x(129:256);
+y1=y(1:128);y2=y(129:256);
+w0=0*ones(1:64); //32 coeffs
+[w1,xu]=corr('u',x1,y1,w0);w2=corr('u',x2,y2,w1,xu);
+zz=real(fft(w2,1))/256;c5=zz(1:32);
+norm(c5-c1,1)
+[w1,xu]=corr('u',x1,w0);w2=corr('u',x2,w1,xu);
+zz=real(fft(w2,1))/256;c6=zz(1:32);
+norm(c6-c2,1)
+rand('unif')
+
+// Fortran または C 外部ルーチンのテスト
+//
+deff('[y]=xmacro(sec,ist)','y=sin(ist:(ist+sec-1))');
+x=xmacro(100,1);
+[cc1,mm1]=corr(x,2^3);
+[cc,mm]=corr('fft',xmacro,100,2^3);
+[cc2,mm2]=corr('fft','corexx',100,2^3);
+[max(abs(cc-cc1)),max(abs(mm-mm1)),max(abs(cc-cc2)),max(abs(mm-mm2))]
+
+deff('[y]=ymacro(sec,ist)','y=cos(ist:(ist+sec-1))');
+y=ymacro(100,1);
+[cc1,mm1]=corr(x,y,2^3);
+[cc,mm]=corr('fft',xmacro,ymacro,100,2^3);
+[cc2,mm2]=corr('fft','corexx','corexy',100,2^3);
+[max(abs(cc-cc1)),max(abs(mm-mm1)),max(abs(cc-cc2)),max(abs(mm-mm2))]
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="fft">fft</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/spectral_estimation/cspect.xml b/modules/signal_processing/help/ja_JP/spectral_estimation/cspect.xml
new file mode 100755
index 000000000..80ae9f6e7
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/spectral_estimation/cspect.xml
@@ -0,0 +1,578 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="cspect" xml:lang="ja">
+
+ <refnamediv>
+
+ <refname>cspect</refname>
+
+ <refpurpose>
+
+ 相関法により2つの離散時間信号の間で推定する
+
+ 両側相互スペクトル
+
+ </refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>
+
+ [sm [,cwp]]=cspect(nlags,npoints,wtype,x [,y] [,wpar])
+
+ [sm [,cwp]]=cspect(nlags,npoints,wtype,nx [,ny] [,wpar])
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>ベクトル, 最初の信号のデータ.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>
+
+ ベクトル, 二番目の信号のデータ. <literal>y</literal>を
+
+ 省略した場合,<literal>x</literal>に等しいと仮定されます(自己相関).
+
+ 指定された場合,<literal>x</literal>と同じ数の要素を有している必要が
+
+ あります.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>nx</term>
+
+ <listitem>
+
+ <para>
+
+ スカラー : <literal>x</literal>信号の点の数. この場合,
+
+ 信号xのセグメントは<literal>getx</literal>という名前のユーザ定義の関数
+
+ により読み込まれます (下記参照).
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>ny</term>
+
+ <listitem>
+
+ <para>スカラー :
+
+ <literal>y</literal>信号の点の数. この場合,
+
+ <literal>y</literal>のセグメントが <literal>gety</literal>
+
+ という名前のユーザ定義関数により読み込まれます (下記参照).
+
+ 指定された場合,<literal>ny</literal>は<literal>nx</literal>に
+
+ 等しくする必要があります.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>nlags</term>
+
+ <listitem>
+
+ <para>相関遅延の数 (正の整数)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>npoints</term>
+
+ <listitem>
+
+ <para>変換する点の数 (正の整数)</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>wtype</term>
+
+ <listitem>
+
+ <para>ウインドウ型</para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <para>
+
+ <literal>'re'</literal>: 矩形
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <literal>'tr'</literal>: 三角形
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <literal>'hm'</literal>: ハミング
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <literal>'hn'</literal> : ハニング
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <literal>'kr'</literal>: カイザー,この場合,wpar
+
+ 引数を指定する必要があります
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <literal>'ch'</literal>: チェビシェフ, この場合, wpar
+
+ 引数を指定する必要があります
+
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>wpar</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>カイザーおよびチェビシェフ
+
+ ウインドウに関するオプションパラメータ:
+
+ </literal>
+
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <para>
+
+ 'kr': <literal>wpar は厳密に正の数である必要があります</literal>
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ 'ch': <literal>wpar</literal> は要素数2のベクトル
+
+ <literal> [main_lobe_width,side_lobe_height]である必要があります.
+
+ ただし,
+
+ </literal>
+
+ <literal>0&lt;main_lobe_width&lt;.5</literal>, および
+
+ <literal>side_lobe_height&gt;0</literal>
+
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>sm</term>
+
+ <listitem>
+
+ <para>
+
+ 正規化された周波数の間隔<literal>[0,1]</literal>において
+
+ パワースペクトルを推定します.
+
+ 大きさ<literal>npoints</literal>の行配列です.
+
+ 自己相関関数の場合は実数,
+
+ 相互相関関数の場合は複素数の配列です.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>cwp</term>
+
+ <listitem>
+
+ <para>
+
+ チェビシェフウインドウの場合は,チェビシェフウインドウのパラメータ
+
+ の未指定のもの.
+
+ 指定されていないチェビシェフウインドウのパラメータ
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 2つの信号<literal>x</literal> および <literal>y</literal>の
+
+ 信号の相互スペクトル,そうでない場合は <literal>x</literal>を計算します.
+
+ スペクトル密度は相関法により得られます.
+
+ </para>
+
+ <para/>
+
+ <para>
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata>
+ <mml:math>
+ <mml:semantics>
+ <mml:mrow>
+ <mml:msub>
+ <mml:mi>S</mml:mi>
+ <mml:mi mml:fontstyle="italic">xy</mml:mi>
+ </mml:msub>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">(</mml:mo>
+ <mml:mo mml:stretchy="false">ω</mml:mo>
+ <mml:mo mml:stretchy="false">)</mml:mo>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">=</mml:mo>
+ <mml:mfrac>
+ <mml:mn>1</mml:mn>
+ <mml:mi>N</mml:mi>
+ </mml:mfrac>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">(</mml:mo>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:munderover>
+ <mml:mo mml:stretchy="false">∑</mml:mo>
+ <mml:mrow>
+ <mml:mi>n</mml:mi>
+ <mml:mo mml:stretchy="false">=</mml:mo>
+ <mml:mn>0</mml:mn>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mi>N</mml:mi>
+ <mml:mo mml:stretchy="false">−</mml:mo>
+ <mml:mn>1</mml:mn>
+ </mml:mrow>
+ </mml:munderover>
+ <mml:mi>x</mml:mi>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">(</mml:mo>
+ <mml:mi>n</mml:mi>
+ <mml:mo mml:stretchy="false">)</mml:mo>
+ </mml:mrow>
+ <mml:msup>
+ <mml:mi>e</mml:mi>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">−</mml:mo>
+ <mml:mi>i</mml:mi>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">ω</mml:mo>
+ <mml:mi>n</mml:mi>
+ </mml:mrow>
+ </mml:msup>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">)</mml:mo>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">(</mml:mo>
+ <mml:mrow>
+ <mml:mrow>
+ <mml:munderover>
+ <mml:mo mml:stretchy="false">∑</mml:mo>
+ <mml:mrow>
+ <mml:mi>n</mml:mi>
+ <mml:mo mml:stretchy="false">=</mml:mo>
+ <mml:mn>0</mml:mn>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mi>N</mml:mi>
+ <mml:mo mml:stretchy="false">−</mml:mo>
+ <mml:mn>1</mml:mn>
+ </mml:mrow>
+ </mml:munderover>
+ <mml:mover mml:accent="true">
+ <mml:mi>y</mml:mi>
+ <mml:mo mml:stretchy="false">ˉ</mml:mo>
+ </mml:mover>
+ </mml:mrow>
+ <mml:mrow>
+ <mml:mo mml:stretchy="false">(</mml:mo>
+ <mml:mi>n</mml:mi>
+ <mml:mo mml:stretchy="false">)</mml:mo>
+ </mml:mrow>
+ <mml:msup>
+ <mml:mi>e</mml:mi>
+ <mml:mrow>
+ <mml:mi>i</mml:mi>
+ <mml:mo mml:stretchy="false">ω</mml:mo>
+ <mml:mi>n</mml:mi>
+ </mml:mrow>
+ </mml:msup>
+ </mml:mrow>
+ <mml:mo mml:stretchy="false">)</mml:mo>
+ </mml:mrow>
+ </mml:mrow>
+ <mml:annotation mml:encoding="StarMath 5.0"> S_{xy}(%omega)={1}
+ over {N} (sum from{n=0} to{N-1} x(n)e^{-i %omega n}) ( sum
+ from{n=0} to{N-1} bar y(n)e^{i %omega n})
+ </mml:annotation>
+ </mml:semantics>
+ </mml:math>
+ </imagedata>
+ </imageobject>
+ </inlinemediaobject>
+ </para>
+
+ <para>
+
+ 相関法は自己/相互相関関数の修正された推定値の
+
+ フーリエ変換としてスペクトル推定を計算します.
+
+ この自己/相互相関修正推定は,
+
+ データの場合はオーバーラップしたサブ区間から
+
+ 反復的に計算する自己相関関数の推定値と,
+
+ この後,結果を得るためのこれらの推定値の平均化
+
+ からなります.
+
+ </para>
+
+ <para>ウインドウの点数は
+
+ <literal>2*nlags-1</literal>です.
+
+ </para>
+
+ <para>
+
+ バッチ処理の場合,
+
+ <literal>x</literal> と<literal>y</literal> のデータは,
+
+ ユーザ定義関数<literal>getx</literal>および<literal>gety</literal>
+
+ によりセグメント毎に読み込むことができます.
+
+ これらの関数は以下の呼び出し手順を有します:
+
+ </para>
+
+ <para>
+
+ <literal>xk=getx(ns,offset)</literal> および
+
+ <literal>yk=gety(ns,offset)</literal>
+
+ ただし, <literal>ns</literal> はセグメントの大きさ,
+
+ <literal>offset</literal> は信号全体の最初のセグメント要素の
+
+ 添字です.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>警告</title>
+
+ <para>5.0.2までのバージョンのScilabでは,返り値は
+
+ 現在の値の絶対値でした.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>参考文献</title>
+
+ <para>Oppenheim, A.V., and R.W. Schafer. Discrete-Time Signal Processing,
+
+ Upper Saddle River, NJ: Prentice-Hall, 1999
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+rand('normal');rand('seed',0);
+x=rand(1:1024-33+1);
+//eqfirでローパスフィルタを作成m
+nf=33;bedge=[0 .1;.125 .5];des=[1 0];wate=[1 1];
+h=eqfir(nf,bedge,des,wate);
+//有色のデータを得るために白色のデータをフィルタ処理
+h1=[h 0*ones(1:max(size(x))-1)];
+x1=[x 0*ones(1:max(size(h))-1)];
+hf=fft(h1,-1); xf=fft(x1,-1);yf=hf.*xf;y=real(fft(yf,1));
+sm=cspect(100,200,'tr',y);
+smsize=max(size(sm));fr=(1:smsize)/smsize;
+plot(fr,log(sm))
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="pspect">pspect</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="mese">mese</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="corr">corr</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/spectral_estimation/czt.xml b/modules/signal_processing/help/ja_JP/spectral_estimation/czt.xml
new file mode 100755
index 000000000..2fd535ff4
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/spectral_estimation/czt.xml
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="czt">
+
+ <refnamediv>
+
+ <refname>czt</refname>
+
+ <refpurpose>チャープz変換アルゴリズム</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[czx]=czt(x,m,w,phi,a,theta)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>入力データ</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>m</term>
+
+ <listitem>
+
+ <para>
+
+ cztはz平面の<literal>m</literal> 個の点で評価されます
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>w</term>
+
+ <listitem>
+
+ <para>振幅乗数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>phi</term>
+
+ <listitem>
+
+ <para>位相増分</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>a</term>
+
+ <listitem>
+
+ <para>振幅初期値</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>theta</term>
+
+ <listitem>
+
+ <para>位相初期値</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>czx</term>
+
+ <listitem>
+
+ <para>チャープz変換出力</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ <literal>k=0,1,...,m-1</literal>として
+
+ 点<literal>[a*exp(j*theta)][w^kexp(j*k*phi)] </literal>における
+
+ z平面の螺旋上でz変換を計算するチャープz変換アルゴリズム.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+a=.7*exp(%i*%pi/6);
+[ffr,bds]=xgetech(); //カレントのコンテキストを保存
+rect=[-1.2,-1.2*sqrt(2),1.2,1.2*sqrt(2)];
+t=2*%pi*(0:179)/179;xsetech([0,0,0.5,1]);
+plot2d(sin(t)',cos(t)',[2],"012",' ',rect)
+plot2d([0 real(a)]',[0 imag(a)]',[3],"000")
+xsegs([-1.0,0;1.0,0],[0,-1.0;0,1.0])
+w0=.93*exp(-%i*%pi/15);w=exp(-(0:9)*log(w0));z=a*w;
+zr=real(z);zi=imag(z);
+plot2d(zr',zi',[5],"000")
+xsetech([0.5,0,0.5,1]);
+plot2d(sin(t)',cos(t)',[2],"012",' ',rect)
+plot2d([0 real(a)]',[0 imag(a)]',[-1],"000")
+xsegs([-1.0,0;1.0,0],[0,-1.0;0,1.0])
+w0=w0/(.93*.93);w=exp(-(0:9)*log(w0));z=a*w;
+zr=real(z);zi=imag(z);
+plot2d(zr',zi',[5],"000")
+xsetech(ffr,bds); //コンテキストを回復
+ ]]></programlisting>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/spectral_estimation/intdec.xml b/modules/signal_processing/help/ja_JP/spectral_estimation/intdec.xml
new file mode 100755
index 000000000..f00dd36b4
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/spectral_estimation/intdec.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="intdec">
+
+ <refnamediv>
+
+ <refname>intdec</refname>
+
+ <refpurpose>信号のサンプリングレートを変更</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[y]=intdec(x,lom)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>入力標本信号</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>lom</term>
+
+ <listitem>
+
+ <para>1次元信号の場合, 変更するレートを指定するスカラー値です.
+
+ 2次元信号の場合,
+
+ 変更する
+
+ サンプリングレートのベクトル(要素数:2)
+
+ <literal>lom</literal>=(列方向の変更レート,行方向の変更レート) です.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>出力標本信号</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 1次元または2次元信号のサンプリングレートをlomで指定された
+
+ レートに変更します.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+Fs1 = 10000;
+Fs2 = 14000;
+t1 = 0:1/Fs1:10;
+t2 = 0:1/Fs2:10;
+F0 = 500;
+u1 = sin(2*%pi*F0*t1);
+u2 = sin(2*%pi*F0*t2);
+u2b = intdec(u1, Fs2/Fs1)
+plot(u2b, u2);
+ ]]></programlisting>
+
+ <scilab:image>
+
+
+
+ Fs1 = 10000; Fs2 = 14000;
+
+ t1 = 0:1/Fs1:10; t2 = 0:1/Fs2:10;
+
+ F0 = 500;
+
+ u1 = sin(2*%pi*F0*t1); u2 = sin(2*%pi*F0*t2);
+
+ u2b = intdec(u1, Fs2/Fs1);
+
+ plot(u2b, u2);
+
+ </scilab:image>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/spectral_estimation/mese.xml b/modules/signal_processing/help/ja_JP/spectral_estimation/mese.xml
new file mode 100755
index 000000000..050f1dd7a
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/spectral_estimation/mese.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="mese">
+ <refnamediv>
+ <refname>mese</refname>
+ <refpurpose>スペクトル推定の最大エントロピ</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>呼び出し手順</title>
+ <synopsis>[sm,fr]=mese(x [,npts]);</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>引数</title>
+ <variablelist>
+ <varlistentry>
+ <term>x</term>
+ <listitem>
+ <para>入力標本化データ系列</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>npts</term>
+ <listitem>
+ <para>
+ <literal>fr</literal> および <literal>sm</literal>の点の数
+ (デフォルトは256)を指定するオプションパラメータ
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sm</term>
+ <listitem>
+ <para>
+ 周波数グリッド<literal>fr</literal>における
+ スペクトル推定の標本
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fr</term>
+ <listitem>
+ <para>
+ <literal>[0,.5)</literal>の範囲のnpts個の等間隔周波数の標本
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>説明</title>
+ <para>
+ <literal>x</literal>の最大エントロピスペクトル推定値を計算します.
+ </para>
+ </refsection>
+ <refsection>
+ <title>例</title>
+ <scilab:image>
+ rand("seed",12345),
+ y = (0:10);
+ x1 = sin(2*%pi*y/20);
+ x2 = sin(3.5*%pi*y/20);
+ w = .4*(rand(y)-.5*ones(y));
+ x = x1+2*x2+w;
+ [sm,fr1] = mese(x,10)
+ function [xm,fr] = bt(x)
+ xsize = max(size(x))
+ [xf,fr] = frmag(x,256)
+ xm = xf.*conj(xf)/xsize
+ endfunction
+ [xm,fr] = bt(x);
+ scf();
+ subplot(3,1,1);
+ plot(x);
+ subplot(3,1,2);
+ plot(fr1,sm)
+ subplot(3,1,3);
+ plot(fr,xm)
+ </scilab:image>
+ </refsection>
+ <refsection>
+ <title>例</title>
+ <programlisting role="example"><![CDATA[
+rand("seed",12345),
+y = (0:10);
+x1 = sin(2*%pi*y/20);
+x2 = sin(3.5*%pi*y/20);
+w = .4*(rand(y)-.5*ones(y));
+x = x1+2*x2+w;
+[sm,fr1] = mese(x,10)
+// Blackman-Tukey ペリオドグラムを計算するマクロを定義
+function [xm,fr] = bt(x)
+ xsize = max(size(x))
+ [xf,fr] = frmag(x,256)
+ xm = xf.*conj(xf)/xsize
+endfunction
+[xm,fr] = bt(x);
+scf();
+subplot(3,1,1);
+plot(x);
+subplot(3,1,2);
+plot(fr1,sm)
+subplot(3,1,3);
+plot(fr,xm)
+ ]]></programlisting>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/ja_JP/spectral_estimation/pspect.xml b/modules/signal_processing/help/ja_JP/spectral_estimation/pspect.xml
new file mode 100755
index 000000000..b4b115c65
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/spectral_estimation/pspect.xml
@@ -0,0 +1,685 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="pspect" xml:lang="ja">
+
+ <refnamediv>
+
+ <refname>pspect</refname>
+
+ <refpurpose>
+
+ Welchの平均ペリオドグラム法による
+
+ 2つの離散時間信号の間の両面相互スペクトル推定.
+
+ </refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>
+
+ [sm [,cwp]]=pspect(sec_step,sec_leng,wtype,x [,y] [,wpar])
+
+ [sm [,cwp]]=pspect(sec_step,sec_leng,wtype,nx [,ny] [,wpar])
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>ベクトル, 最初の信号の時間領域標本.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>
+
+ ベクトル, 2番目の信号の時間領域標本. <literal>y</literal>が
+
+ 省略された場合,<literal>x</literal>に等しいと仮定されます(自己相関).
+
+ 指定された場合, <literal>x</literal>と同じ数の要素を有している必要があります.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>nx</term>
+
+ <listitem>
+
+ <para>
+
+ スカラー : <literal>x</literal>信号の標本数.
+
+ この場合,<literal>x</literal>信号のセグメントは<literal>getx</literal>という名前の
+
+ ユーザ定義の関数によりロードされます (下記参照).
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>ny</term>
+
+ <listitem>
+
+ <para>
+
+ スカラー : <literal>y</literal>信号の標本数.
+
+ この場合,<literal>x</literal>信号のセグメントは<literal>gety</literal>という名前の
+
+ ユーザ定義の関数によりロードされます (下記参照).
+
+ 指定された場合, <literal>ny</literal>は<literal>nx</literal>と等しい必要があります.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>sec_step</term>
+
+ <listitem>
+
+ <para>
+
+ 各データウインドウのオフセット.
+
+ オーバーラップ <literal>D</literal> はi <literal>sec_leng -sec_step</literal>により指定されます.
+
+ <literal>sec_step==sec_leng/2</literal>の場合, 50% オーバーラップとなります.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>sec_leng</term>
+
+ <listitem>
+
+ <para>ウインドウの点の数.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>wtype</term>
+
+ <listitem>
+
+ <para>ウインドウの種類</para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <para>
+
+ <literal>'re'</literal>: 矩形
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <literal>'tr'</literal>: 三角形
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <literal>'hm'</literal>: ハミング
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <literal>'hn'</literal> : ハニング
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <literal>'kr'</literal>: カイザー,この場合,wpar引数を指定する必要があります
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ <literal>'ch'</literal>: チェビシェフ, この場合,wpar引数を指定する必要があります
+
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>wpar</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>カイザーおよびチェビシェフウインドウ</literal>に関する
+
+ オプションのパラメータ:
+
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <para>
+
+ 'kr': <literal>wpar</literal>は厳密に正の数とする必要があります
+
+ </para>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ 'ch': <literal>wpar</literal> は要素数2のベクトル
+
+ <literal> [main_lobe_width,side_lobe_height]</literal>
+
+ とする必要があります.
+
+ ただし,<literal>0&lt;main_lobe_width&lt;.5</literal>, および
+
+ <literal>side_lobe_height&gt;0</literal>です.
+
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>sm</term>
+
+ <listitem>
+
+ <para>
+
+ 正規化された周波数の範囲 <literal>[0,1]</literal>における両面スペクトル推定.
+
+ これは,<literal>sec_len</literal>個の要素を有する行配列です.
+
+ この配列は自己相関の場合には実数,相互相関の場合には複素数となります.
+
+ </para>
+
+ <para>
+
+ 関係する正規化された周波数配列は
+
+ <literal>linspace(0,1,sec_len)</literal>です.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>cwp</term>
+
+ <listitem>
+
+ <para>
+
+ チェビシェフウインドの場合は
+
+ チェビシェフウインドウの未指定のパラメータ,
+
+ または空の行列.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 2つの信号<literal>x</literal> および <literal>y</literal>が両方共指定
+
+ された場合,相互スペクトル推定値,
+
+ そうでない場合に自己相関スペクトルを計算します.
+
+ 修正ペリオドグラム法により得られたスペクトル推定値.
+
+ </para>
+
+ <para>
+
+ 2つの信号<literal>x</literal> および <literal>y</literal>の
+
+ 相互スペクトルは以下のように定義されます
+
+ </para>
+
+ <para>
+
+ <inlinemediaobject>
+
+ <imageobject>
+
+ <imagedata>
+
+ <mml:math>
+
+ <mml:semantics>
+
+ <mml:mrow>
+
+ <mml:msub>
+
+ <mml:mi>S</mml:mi>
+
+ <mml:mi mml:fontstyle="italic">xy</mml:mi>
+
+ </mml:msub>
+
+ <mml:mrow>
+
+ <mml:mrow>
+
+ <mml:mo mml:stretchy="false">(</mml:mo>
+
+ <mml:mo mml:stretchy="false">ω</mml:mo>
+
+ <mml:mo mml:stretchy="false">)</mml:mo>
+
+ </mml:mrow>
+
+ <mml:mo mml:stretchy="false">=</mml:mo>
+
+ <mml:mfrac>
+
+ <mml:mn>1</mml:mn>
+
+ <mml:mi>N</mml:mi>
+
+ </mml:mfrac>
+
+ </mml:mrow>
+
+ <mml:mrow>
+
+ <mml:mo mml:stretchy="false">(</mml:mo>
+
+ <mml:mrow>
+
+ <mml:mrow>
+
+ <mml:munderover>
+
+ <mml:mo mml:stretchy="false">∑</mml:mo>
+
+ <mml:mrow>
+
+ <mml:mi>n</mml:mi>
+
+ <mml:mo mml:stretchy="false">=</mml:mo>
+
+ <mml:mn>0</mml:mn>
+
+ </mml:mrow>
+
+ <mml:mrow>
+
+ <mml:mi>N</mml:mi>
+
+ <mml:mo mml:stretchy="false">−</mml:mo>
+
+ <mml:mn>1</mml:mn>
+
+ </mml:mrow>
+
+ </mml:munderover>
+
+ <mml:mi>x</mml:mi>
+
+ </mml:mrow>
+
+ <mml:mrow>
+
+ <mml:mo mml:stretchy="false">(</mml:mo>
+
+ <mml:mi>n</mml:mi>
+
+ <mml:mo mml:stretchy="false">)</mml:mo>
+
+ </mml:mrow>
+
+ <mml:msup>
+
+ <mml:mi>e</mml:mi>
+
+ <mml:mrow>
+
+ <mml:mrow>
+
+ <mml:mo mml:stretchy="false">−</mml:mo>
+
+ <mml:mi>i</mml:mi>
+
+ </mml:mrow>
+
+ <mml:mo mml:stretchy="false">ω</mml:mo>
+
+ <mml:mi>n</mml:mi>
+
+ </mml:mrow>
+
+ </mml:msup>
+
+ </mml:mrow>
+
+ <mml:mo mml:stretchy="false">)</mml:mo>
+
+ </mml:mrow>
+
+ <mml:mrow>
+
+ <mml:mo mml:stretchy="false">(</mml:mo>
+
+ <mml:mrow>
+
+ <mml:mrow>
+
+ <mml:munderover>
+
+ <mml:mo mml:stretchy="false">∑</mml:mo>
+
+ <mml:mrow>
+
+ <mml:mi>n</mml:mi>
+
+ <mml:mo mml:stretchy="false">=</mml:mo>
+
+ <mml:mn>0</mml:mn>
+
+ </mml:mrow>
+
+ <mml:mrow>
+
+ <mml:mi>N</mml:mi>
+
+ <mml:mo mml:stretchy="false">−</mml:mo>
+
+ <mml:mn>1</mml:mn>
+
+ </mml:mrow>
+
+ </mml:munderover>
+
+ <mml:mover mml:accent="true">
+
+ <mml:mi>y</mml:mi>
+
+ <mml:mo mml:stretchy="false">ˉ</mml:mo>
+
+ </mml:mover>
+
+ </mml:mrow>
+
+ <mml:mrow>
+
+ <mml:mo mml:stretchy="false">(</mml:mo>
+
+ <mml:mi>n</mml:mi>
+
+ <mml:mo mml:stretchy="false">)</mml:mo>
+
+ </mml:mrow>
+
+ <mml:msup>
+
+ <mml:mi>e</mml:mi>
+
+ <mml:mrow>
+
+ <mml:mi>i</mml:mi>
+
+ <mml:mo mml:stretchy="false">ω</mml:mo>
+
+ <mml:mi>n</mml:mi>
+
+ </mml:mrow>
+
+ </mml:msup>
+
+ </mml:mrow>
+
+ <mml:mo mml:stretchy="false">)</mml:mo>
+
+ </mml:mrow>
+
+ </mml:mrow>
+
+ <mml:annotation mml:encoding="StarMath 5.0"> S_{xy}(%omega)={1}
+
+ over {N} (sum from{n=0} to{N-1} x(n)e^{-i %omega n}) ( sum
+
+ from{n=0} to{N-1} bar y(n)e^{i %omega n})
+
+ </mml:annotation>
+
+ </mml:semantics>
+
+ </mml:math>
+
+ </imagedata>
+
+ </imageobject>
+
+ </inlinemediaobject>
+
+ </para>
+
+ <para>
+
+ スペクトル推定の修正ペリオドグラム法は,
+
+ <literal>x</literal> および <literal>y</literal>に含まれる
+
+ データのウインドウ処理されたサブセクションのペリオドグラムを
+
+ 繰り返し計算します.
+
+ これらのペリオドグラムは,最終的なスペクトル推定値を得るために平均化され,
+
+ 適当な定数により正規化されます.
+
+ これは推定値の分散を減らすための平均化処理です.
+
+ </para>
+
+ <para>
+
+ バッチ処理の場合, <literal>x</literal> および
+
+ <literal>y</literal> データはユーザ定義関数
+
+ <literal>getx</literal> および <literal>gety</literal>により
+
+ セグメント毎に読まれます.
+
+ これらの関数の呼び出し手順は以下のようになります:
+
+ </para>
+
+ <para>
+
+ <literal>xk=getx(ns,offset)</literal> および
+
+ <literal>yk=gety(ns,offset)</literal>. ただし,<literal>ns</literal> は
+
+ セグメントの大きさ, <literal>offset</literal> は
+
+ 完全な信号のセグメントの最初の要素のインデックスです.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>参考文献</title>
+
+ <para>Oppenheim, A.V., and R.W. Schafer. Discrete-Time Signal Processing,
+
+ Upper Saddle River, NJ: Prentice-Hall, 1999
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+rand('normal');rand('seed',0);
+x=rand(1:1024-33+1);
+//make low-pass filter with eqfir
+nf=33;bedge=[0 .1;.125 .5];des=[1 0];wate=[1 1];
+h=eqfir(nf,bedge,des,wate);
+//filter white data to obtain colored data
+h1=[h 0*ones(1:max(size(x))-1)];
+x1=[x 0*ones(1:max(size(h))-1)];
+hf=fft(h1,-1); xf=fft(x1,-1);y=real(fft(hf.*xf,1));
+//plot magnitude of filter
+h2=[h 0*ones(1:968)];hf2=fft(h2,-1);hf2=real(hf2.*conj(hf2));
+hsize=max(size(hf2));fr=(1:hsize)/hsize;plot(fr,log(hf2));
+//pspect example
+sm=pspect(100,200,'tr',y);smsize=max(size(sm));fr=(1:smsize)/smsize;
+plot(fr,log(sm));
+rand('unif');
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="cspect">cspect</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="pspect">pspect</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="mese">mese</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="window">window</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/transforms/CHAPTERS b/modules/signal_processing/help/ja_JP/transforms/CHAPTERS
new file mode 100755
index 000000000..a9603334d
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/transforms/CHAPTERS
@@ -0,0 +1,2 @@
+title = Transforms
+
diff --git a/modules/signal_processing/help/ja_JP/transforms/dct.xml b/modules/signal_processing/help/ja_JP/transforms/dct.xml
new file mode 100755
index 000000000..a4cc64cc1
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/transforms/dct.xml
@@ -0,0 +1,451 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 1997 - INRIA
+* Copyright (C) 2012 - Serge Steer - INRIA
+*
+* This file must be used under the terms of the CeCILL.
+* This source file is licensed as described in the file COPYING, which
+* you should have received as part of this distribution. The terms
+* are also available at
+* http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+*
+-->
+<refentry xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:db="http://docbook.org/ns/docbook"
+ xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="dct">
+ <refnamediv>
+ <refname>dct</refname>
+ <refpurpose>離散コサイン変換.</refpurpose>
+ </refnamediv>
+ <refnamediv xml:id="idct">
+ <refname>idct</refname>
+ <refpurpose>逆離散コサイン変換.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>呼び出し手順</title>
+ <synopsis>X=dct(A [,sign] [,option])
+ X=dct(A,sign,selection [,option])
+ X=dct(A,sign,dims,incr [,option])
+ X=idct(A [,option])
+ X=idct(A,selection [,option])
+ X=idct(A,dims,incr [,option])
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>引数</title>
+ <variablelist>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>実数/複素ベクトルまたは実数/複素配列
+ (ベクトル, 行列または N-D 配列).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>X</term>
+ <listitem>
+ <literal>A</literal>と同じ大きさの
+ 実数または複素配列.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sign</term>
+ <listitem>
+ 整数.値は <literal>1</literal>または
+ <literal>-1</literal>となります.
+ 順方向または逆変換を選択します.
+ デフォルト値は<literal>-1</literal>
+ (順方向変換)です.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>selection</term>
+ <listitem>
+ <literal>A</literal>の各配列次元への添字を有する
+ ベクトル. 詳細は説明を参照ください.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>dims</term>
+ <listitem>
+ 整数値を有する正の数値ベクトル, または正の整数のベクトル.
+ 詳細は説明を参照ください.
+ <para>
+ 各要素は
+ <literal>A</literal>の要素の総数の約数となります.
+ </para>
+ <para>
+ 各要素の積は<literal>A</literal>の要素の総数よりも
+ 小さな値とする必要があります.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>incr</term>
+ <listitem>
+ 整数値を有する正の数値ベクトル, または正の整数のベクトル.
+ 詳細は説明を参照ください.
+ <para>
+ <literal>incr</literal> は,
+ <literal>dims</literal>の要素数と同じにする
+ 必要があります.
+ </para>
+ <para>
+ 各要素は,<literal>A</literal>の要素の総数の約数とする
+ 必要があります.
+ </para>
+ <para>
+ <literal>incr</literal> の要素は,
+ 厳密に昇順とする必要があります.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>option</term>
+ <listitem>
+ 文字列. 値は,順方向変換の場合,
+ <literal>"dct1"</literal>, <literal>"dct2"</literal>,
+ <literal>"dct4"</literal> または <literal>"dct"</literal>,
+ 逆変換の場合は <literal>"dct1"</literal>,
+ <literal>"dct3"</literal>, <literal>"dct4"</literal>または
+ <literal>"idct"</literal> です.
+ デフォルト値は,順方向変換の場合に<literal>"dct"</literal>,
+ 逆変換の場合に<literal>"idct"</literal>です.
+ 詳細は説明を参照ください.
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>説明</title>
+ <refsection>
+ <title>変換の説明</title>
+ <para>
+ この関数は,
+ パラメータ値<literal>option</literal>で指定したシフト量を用いて
+ 順方向または逆方向の1次元またはN次元離散コサイン変換を
+ 行います.
+ 長さ<latex scilab:localized="true">$n$</latex>の1次元配列<latex scilab:localized="true">$A$</latex>の場合:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>"dct1"</literal>の場合, この関数は
+ 正規化しないDCT-I変換を計算します:
+ </para>
+ <para>
+ <latex>
+ $X(k) = A(1) + (-1)^{k-1}A(n) + 2\sum_{i=2}^{n-1} {A(i)
+ \cos\frac{\pi (i -1)(k-1)}{n-1}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>"dct2"</literal>の場合,この関数は
+ 正規化しないDCT-II変換を計算します:
+ </para>
+ <para>
+ <latex>
+ $X(k) = 2 \sum_{i=1}^{n} {A(i) \cos\frac{\pi (i
+ -1/2)(k-1)}{n}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>"dct3"</literal>の場合,この関数は
+ 正規化しないDCT-III変換を計算します:
+ </para>
+ <para>
+ <latex>
+ $X(k) = A(1) + 2 \sum_{i=2}^{n} {A(i) \cos\frac{\pi (i
+ -1)(k-1/2)}{n}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>"dct4"</literal>の場合,この関数は
+ 正規化しないDCT-IV変換を計算します:
+ </para>
+ <para>
+ <latex>
+ $X(k) = 2 \sum_{i=1}^{n} {A(i) \cos\frac{\pi (i
+ -1/2)(k-1/2)}{n}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>"dct"</literal>の場合,この関数は
+ 正規化されたDCT-II変換を計算します:
+ </para>
+ <para>
+ <latex>
+ $X(k) = \omega(k)
+ \sum_{i=1}^n {A(i) \cos\frac{\pi (i
+ -1/2)(k-1)}{n}}, k=1\ldots n \quad\text{with }
+ \omega(1)=\frac{1}{\sqrt{n}} \quad\text{and }
+ \omega(k)=\sqrt{\frac{2}{n}} , k>1$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>"idct"</literal>の場合,この関数は
+ 正規化されたDCT-III変換を計算します:
+ </para>
+ <para>
+ <latex>
+ $X(i) = \sum_{k=1}^n {\omega(k) A(k) \cos\frac{\pi (i
+ -1/2)(k-1)}{n}}, k=1\ldots n \quad\text{with }
+ \omega(1)=\frac{1}{\sqrt{n}} \quad\text{and }
+ \omega(k)=\sqrt{\frac{2}{n}} , k>1$
+ </latex>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ 多次元のDCT変換は,一般に,
+ 配列の各次元方向の1次元変換の分離可能な積です.
+ 正規化しない変換の場合,
+ 順方向の後に逆方向多次元変換を行うと,
+ 元の配列が各次元の大きさの積で拡大されたものと
+ なります.
+ </para>
+ <para>
+ 次元が <latex>$n_1, n_2, \ldots, n_p$</latex>の
+ 配列<literal>A</literal>の正規化された多次元DCT変換
+ は以下のように計算されます
+ </para>
+ <para>
+ <latex>
+ $\begin{array} \\X(k_1, \dots, k_p) =
+ \omega_1(k_1) \ldots \omega_p(k_p)
+ \sum_{i_1=1}^{n_1} \ldots \sum_{i_p=1}^{n_p}
+ {A(i_1,\ldots ,i_p) \cos\frac{\pi (2 i_1
+ -1)(k_1-1)}{2 n} \ldots \cos\frac{\pi (2 i_p
+ -1)(k_p-1)}{2 n}}, k_j=1\ldots n_j\\
+ \text{with}\\
+ \omega_j(1)=\frac{1}{\sqrt{n_j}}\\
+ \omega_j(k)=\sqrt{\frac{2}{n_j}} , k>1
+ \end{array}$
+ </latex>
+ </para>
+ <para>
+ 次元が<latex>$n_1, n_2, \ldots, n_p$</latex>の
+ 配列<literal>A</literal>の正規化された多次元DCT逆変換
+ は以下のように計算されます
+ </para>
+ <para>
+ <latex>
+ $\begin{array} \\X(i_1, \dots, i_p) = \sum_{k_1=1}^{n_1}
+ \ldots \sum_{k_p=1}^{n_p} {\omega_1(i_1) \ldots \omega_p(i_p)
+ A(k_1,\ldots ,k_p) \cos\frac{\pi (2 k_1 -1)(i_1-1)}{2 n}
+ \ldots \cos\frac{\pi (2 k_p -1)(i_p-1)}{2 n}}, i_j=1\ldots
+ n_j\\
+ \text{with}\\
+ \omega_j(1)=\frac{1}{\sqrt{n_j}}\\
+ \omega_j(k)=\sqrt{\frac{2}{n_j}} , k>1 \end{array}$
+ </latex>
+ </para>
+ </refsection>
+ <refsection>
+ <title>構文の説明</title>
+ <variablelist>
+ <varlistentry>
+ <term>短縮構文</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>順方向</term>
+ <listitem>
+ <para>
+ <literal>X=dct(A,-1 [,option])</literal> または
+ <literal>X=dct(A [,option])</literal> により,
+ オプション値を指定した順方向変換が得られます.
+ デフォルトは,正規化された
+ DCT-II順方向変換です.
+ </para>
+ <para>
+ <literal>A</literal>がベクトルの場合
+ (1より大きい次元が1つだけの場合),
+ 1次元の変換が行われ,
+ その他の場合にはn次元変換が行われます.
+ </para>
+ <para>
+ (引数<literal>-1</literal>は"inverse"ではなく,
+ 指数の符号を意味します).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>逆方向</term>
+ <listitem>
+ <para>
+ <literal>X=dct(A,1 [,option])</literal>または
+ <literal>X=idct(A [,option])</literal>は
+ 逆変換を行います.
+ </para>
+ <para>
+ <literal>A</literal>がベクトルの場合
+ (1より大きい次元が1つだけの場合),
+ 1次元の変換が行われ,
+ その他の場合にはn次元変換が行われます.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>指定した次元方向のDCTの長い構文</term>
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>X=dct(A,sign,selection [,option])</literal>
+ により,
+ 選択した次元方向の<literal>A</literal>の"スライス"の
+ 順方向または逆方向dctを
+ 効率的に計算することができます.
+ </para>
+ <para>
+ 例えば, <literal>A</literal> が3次元配列の場合,
+ <literal>X=dct(A,-1,2)</literal> は以下と等価になります:
+ </para>
+ <programlisting role=""><![CDATA[
+ for i1=1:size(A,1),
+ for i3=1:size(A,3),
+ X(i1,:,i3)=dct(A(i1,:,i3),-1);
+ end
+ end
+ ]]></programlisting>
+ <para>
+ そして <literal>X=dct(A,-1,[1 3])</literal> は
+ 以下と等価になります:
+ </para>
+ <programlisting role=""><![CDATA[
+ for i2=1:size(A,2),
+ X(:,i2,:)=dct(A(:,i2,:),-1);
+ end
+ ]]></programlisting>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>X=dct(A,sign,dims,incr)</literal> は
+ 古い構文であり,この方法でも
+ 指定した次元方向の<literal>A</literal>のスライスの
+ 順方向または逆方向のdctを行うことができます.
+ </para>
+ <para>
+ 例えば,<literal>A</literal>が
+ <literal>n1*n2*n3</literal> 個の要素を有する配列の場合,
+ <literal>X=dct(A,-1,n1,1)</literal> は
+ <literal>X=dct(matrix(A,[n1,n2,n3]),-1,1)</literal>
+ と等価で,
+ <literal>X=dct(A,-1,[n1 n3],[1 n1*n2])</literal>
+ は
+ <literal>X=dct(matrix(A,[n1,n2,n3]),-1,[1,3])</literal>
+ と等価です.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>dctを最適化</title>
+ <para>
+ 注意:
+ この関数は直近のパラメータをメモリに保持し,2回目に再利用します.
+ これにより(同じパラメータで)連続的にコールした場合の
+ 計算時間が著しく改善されます.
+ </para>
+ <para>
+ <link linkend="get_fftw_wisdom">get_fftw_wisdom</link>, <link
+ linkend="set_fftw_wisdom">set_fftw_wisdom</link> 関数により
+ dctを更に最適化することができます.
+ </para>
+ </refsection>
+ </refsection>
+ <refsection>
+ <title>アルゴリズム</title>
+ <para>
+ この関数は,<ulink url="http://www.fftw.org/">fftw3</ulink>ライブラリを
+ 使用します.
+ </para>
+ </refsection>
+ <refsection>
+ <title>例</title>
+ <para>1次元dct</para>
+ <programlisting role="example"><![CDATA[
+ // 信号の周波数要素
+ //----------------------------------
+ // 50および70Hzの信号を含む1000hzで標本化された信号を構築
+ sample_rate=1000;
+ t = 0:1/sample_rate:0.6;
+ N=size(t,'*'); //number of samples
+ s=sin(2*%pi*50*t)+sin(2*%pi*70*t+%pi/4)+grand(1,N,'nor',0,1);
+ d=dct(s);
+ // 低エネルギー部分を0にする
+ d(abs(d)<1)=0;
+ size(find(y1<>0),'*') //only 30 non zero coefficients out of 600
+ clf;plot(s,'b'),plot(dct(d,1),'r')
+ ]]></programlisting>
+ <para>2次元 dct</para>
+ <programlisting role="example"><![CDATA[
+ //----------------------------------
+ function [z]=__milk_drop(x,y)
+ sq=x.^2+y.^2;
+ z= exp( exp(-sq).*(exp(cos(sq).^20)+8*sin(sq).^20+2*sin(2*(sq)).^8) );
+ endfunction
+ x=-2:0.1:2;
+ A=eval3d(__milk_drop,x,x);
+ d=dct(A);
+ d(abs(d)<1)=0;
+ size(find(d1<>0),'*')
+ A1=dct(d,1);
+ clf();fig=gcf();fig.color_map=graycolormap(128);
+ subplot(121),grayplot(x,x,A)
+ subplot(122),grayplot(x,x,A1)
+ ]]></programlisting>
+ </refsection>
+ <refsection role="see also">
+ <title>参照</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="fft">fft</link>
+ </member>
+ <member>
+ <link linkend="dst">dst</link>
+ </member>
+ <member>
+ <link linkend="fftw_flags">fftw_flags</link>
+ </member>
+ <member>
+ <link linkend="get_fftw_wisdom">get_fftw_wisdom</link>
+ </member>
+ <member>
+ <link linkend="set_fftw_wisdom">set_fftw_wisdom</link>
+ </member>
+ <member>
+ <link linkend="fftw_forget_wisdom">fftw_forget_wisdom</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>参考文献</title>
+ <para>
+ Matteo Frigo and Steven G. Johnson, "FFTW Documentation" <ulink
+ url="http://www.fftw.org/#documentation">http://www.fftw.org/#documentation</ulink>
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/ja_JP/transforms/dst.xml b/modules/signal_processing/help/ja_JP/transforms/dst.xml
new file mode 100755
index 000000000..81bdfa777
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/transforms/dst.xml
@@ -0,0 +1,376 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 1997 - INRIA
+* Copyright (C) 2012 - Serge Steer - INRIA
+*
+* This file must be used under the terms of the CeCILL.
+* This source file is licensed as described in the file COPYING, which
+* you should have received as part of this distribution. The terms
+* are also available at
+* http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+*
+-->
+<refentry xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:db="http://docbook.org/ns/docbook"
+ xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="dst">
+ <refnamediv>
+ <refname>dst</refname>
+ <refpurpose>離散サイン変換.</refpurpose>
+ </refnamediv>
+ <refnamediv xml:id="idst">
+ <refname>idst</refname>
+ <refpurpose>逆離散サイン変換.</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>呼び出し手順</title>
+ <synopsis>X=dst(A [,sign] [,option])
+ X=dst(A,sign,selection [,option])
+ X=dst(A,sign,dims,incr [,option])
+ X=idst(A [,option])
+ X=idst(A,selection [,option])
+ X=idst(A,dims,incr [,option])
+ </synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>引数</title>
+ <variablelist>
+ <varlistentry>
+ <term>A</term>
+ <listitem>
+ <para>
+ 実数/複素ベクトルまたは実数/複素配列
+ (ベクトル, 行列または N-D 配列).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>X</term>
+ <listitem>
+ <literal>A</literal>と同じ大きさの
+ 実数または複素配列.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>sign</term>
+ <listitem>
+ 整数.値は <literal>1</literal>または
+ <literal>-1</literal>となります.
+ 順方向または逆変換を選択します.
+ デフォルト値は<literal>-1</literal>
+ (順方向変換)です.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>selection</term>
+ <listitem>
+ <literal>A</literal>の各配列次元への添字を有する
+ ベクトル. 詳細は説明を参照ください.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>dims</term>
+ <listitem>
+ 整数値を有する正の数値ベクトル, または正の整数のベクトル.
+ 詳細は説明を参照ください.
+ <para>
+ 各要素は
+ <literal>A</literal>の要素の総数の約数となります.
+ </para>
+ <para>
+ 各要素の積は<literal>A</literal>の要素の総数よりも
+ 小さな値とする必要があります.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>incr</term>
+ <listitem>
+ 整数値を有する正の数値ベクトル, または正の整数のベクトル.
+ 詳細は説明を参照ください.
+ <para>
+ <literal>incr</literal> は,
+ <literal>dims</literal>の要素数と同じにする
+ 必要があります.
+ </para>
+ <para>
+ 各要素は,<literal>A</literal>の要素の総数の約数とする
+ 必要があります.
+ </para>
+ <para>
+ <literal>incr</literal> の要素は,
+ 厳密に昇順とする必要があります.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>option</term>
+ <listitem>
+ 文字列. 値は,順方向変換の場合,
+ <literal>"dst1"</literal>, <literal>"dst2"</literal>,
+ <literal>"dst4"</literal> または <literal>"dst"</literal>,
+ 逆変換の場合は <literal>"dst1"</literal>,
+ <literal>"dst3"</literal>, <literal>"dst4"</literal> または
+ <literal>"idst"</literal> です.
+ デフォルト値は,順方向変換の場合に<literal>"dct"</literal>,
+ 逆変換の場合に<literal>"idct"</literal>です.
+ 詳細は説明を参照ください.
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>説明</title>
+ <refsection>
+ <title>変換の説明</title>
+ <para>
+ この関数は,
+ パラメータ値<literal>option</literal>で指定したシフト量を用いて
+ 順方向または逆方向の1次元またはN次元離散サイン変換を
+ 行います:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>"dst1"</literal>の場合, この関数は
+ 正規化しないDST-I変換を計算します.
+ 長さ<latex>$n$</latex> のベクトルの1次元変換は以下のようになります:
+ </para>
+ <para>
+ <latex>
+ $X(k) = 2 \sum_{i=1}^{n} {A(i) \cos\frac{\pi i k}{n+1}},
+ k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>"dst2"</literal>の場合, この関数は
+ 正規化しないDST-II変換を計算します.
+ 長さ<latex>$n$</latex> のベクトルの1次元変換は以下のようになります:
+ </para>
+ <para>
+ <latex>
+ $X(k) = 2 \sum_{i=1}^{n} {A(i) \cos\frac{\pi ( i
+ -1/2) k}{n}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>"dst3"</literal>の場合, この関数は
+ 正規化しないDST-III変換を計算します.
+ 長さ<latex>$n$</latex> のベクトルの1次元変換は以下のようになります:
+ </para>
+ <para>
+ <latex>
+ $X(k) = (-1)^{k-1}A(n) + 2 \sum_{i=1}^{n-1} {A(i) \cos\frac{\pi i (k-1/2)}{n}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>"dst4"</literal>の場合, この関数は
+ 正規化しないDST-IV変換を計算します.
+ 長さ<latex>$n$</latex> のベクトルの1次元変換は以下のようになります:
+ </para>
+ <para>
+ <latex>
+ $X(k) = 2 \sum_{i=1}^{n} {A(i) \cos\frac{\pi (i
+ -1/2)(k-1/2)}{n}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>"dst"</literal>の場合, この関数は
+ 正規化されたDST-I変換を計算します.
+ 長さ<latex>$n$</latex> のベクトルの1次元変換は以下のようになります:
+ </para>
+ <para>
+ <latex>
+ $X(k) = \sum_{i=1}^n {A(i) \cos\frac{\pi i k} {n+1}},
+ k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>"idst"</literal>の場合, この関数は
+ 正規化されたDST-I変換を計算します.
+ 長さ<latex>$n$</latex> のベクトルの1次元変換は以下のようになります:
+ </para>
+ <para>
+ <latex>
+ $X(k) = \frac{2}{n+1} \sum_{i=1}^n {A(i) \cos\frac{\pi i k}
+ {n+1}}, k=1\ldots n$
+ </latex>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ 多次元のDST変換は,一般に,配列の各次元方向の1次元変換の分離可能な積です.
+ 正規化しない変換の場合,順方向変換の後に逆方向多次元変換を行うと,元の配列が各次元の大きさの積で拡大されたものとなります.
+ </para>
+ </refsection>
+ <refsection>
+ <title>構文の説明</title>
+ <variablelist>
+ <varlistentry>
+ <term>短縮構文</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>順方向</term>
+ <listitem>
+ <para>
+ <literal>X=dst(A,-1 [,option])</literal> または
+ <literal>X=dst(A [,option])</literal> により,
+ オプション値を指定した順方向変換が得られます.
+ デフォルトは,正規化された
+ DST-I順方向変換です.
+ </para>
+ <para>
+ <literal>A</literal>がベクトルの場合
+ (1より大きい次元が1つだけの場合),
+ 1次元の変換が行われ,
+ その他の場合にはn次元変換が行われます.
+ </para>
+ <para>
+ (引数<literal>-1</literal>は"inverse"ではなく,
+ 指数の符号を意味します).
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>逆方向</term>
+ <listitem>
+ <para>
+ <literal>X=dst(A,1 [,option])</literal>または
+ <literal>X=idst(A [,option])</literal>は
+ 逆変換を行います.
+ </para>
+ <para>
+ <literal>A</literal>がベクトルの場合
+ (1より大きい次元が1つだけの場合),
+ 1次元の変換が行われ,
+ その他の場合にはn次元変換が行われます.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>指定した次元方向のDSTの長い構文</term>
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>X=dst(A,sign,selection [,option])</literal>
+ により,
+ 選択した次元方向の<literal>A</literal>の"スライス"の
+ 順方向または逆方向dstを
+ 効率的に計算することができます.
+ </para>
+ <para>
+ 例えば, <literal>A</literal> が3次元配列の場合,
+ <literal>X=dst(A,-1,2)</literal> は以下と等価になります:
+ </para>
+ <programlisting role=""><![CDATA[
+ for i1=1:size(A,1),
+ for i3=1:size(A,3),
+ X(i1,:,i3)=dst(A(i1,:,i3),-1);
+ end
+ end
+ ]]></programlisting>
+ <para>
+ そして <literal>X=dst(A,-1,[1 3])</literal> は
+ 以下と等価になります:
+ </para>
+ <programlisting role=""><![CDATA[
+ for i2=1:size(A,2),
+ X(:,i2,:)=dst(A(:,i2,:),-1);
+ end
+ ]]></programlisting>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>X=dst(A,sign,dims,incr)</literal> は
+ 古い構文であり,この方法でも
+ 指定した次元方向の<literal>A</literal>のスライスの
+ 順方向または逆方向のdctを行うことができます.
+ </para>
+ <para>
+ 例えば,<literal>A</literal>が
+ <literal>n1*n2*n3</literal> 個の要素を有する配列の場合,
+ <literal>X=dst(A,-1,n1,1)</literal> は
+ <literal>X=dst(matrix(A,[n1,n2,n3]),-1,1)</literal>
+ と等価で,
+ <literal>X=dst(A,-1,[n1 n3],[1 n1*n2])</literal>
+ は
+ <literal>X=dst(matrix(A,[n1,n2,n3]),-1,[1,3])</literal>
+ と等価です.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>dstを最適化</title>
+ <para>
+ 注意:
+ この関数は直近のパラメータをメモリに保持し,2回目に再利用します.
+ これにより(同じパラメータで)連続的にコールした場合の
+ 計算時間が著しく改善されます.
+ </para>
+ <para>
+ <link linkend="get_fftw_wisdom">get_fftw_wisdom</link>,
+ <link linkend="set_fftw_wisdom">set_fftw_wisdom</link> 関数により
+ dstを更に最適化することができます.
+ </para>
+ </refsection>
+ </refsection>
+ <refsection>
+ <title>アルゴリズム</title>
+ <para>
+ この関数は <ulink url="http://www.fftw.org/">fftw3</ulink>ライブラリ
+ を実行します.
+ </para>
+ </refsection>
+ <refsection role="see also">
+ <title>参照</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="fft">fft</link>
+ </member>
+ <member>
+ <link linkend="dct">dct</link>
+ </member>
+ <member>
+ <link linkend="fftw_flags">fftw_flags</link>
+ </member>
+ <member>
+ <link linkend="get_fftw_wisdom">get_fftw_wisdom</link>
+ </member>
+ <member>
+ <link linkend="set_fftw_wisdom">set_fftw_wisdom</link>
+ </member>
+ <member>
+ <link linkend="fftw_forget_wisdom">fftw_forget_wisdom</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>参考文献</title>
+ <para>
+ Matteo Frigo and Steven G. Johnson, "FFTW Documentation" <ulink
+ url="http://www.fftw.org/#documentation">http://www.fftw.org/#documentation</ulink>
+ </para>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/ja_JP/transforms/fft.xml b/modules/signal_processing/help/ja_JP/transforms/fft.xml
new file mode 100755
index 000000000..7721a172b
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/transforms/fft.xml
@@ -0,0 +1,740 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="fft">
+
+ <refnamediv>
+
+ <refname>fft</refname>
+
+ <refpurpose>高速フーリエ変換</refpurpose>
+
+ </refnamediv>
+
+ <refnamediv xml:id="ifft">
+
+ <refname>ifft</refname>
+
+ <refpurpose>高速フーリエ逆変換</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>X=fft(A [,sign] [,option])
+
+ X=fft(A,sign,selection [,option])
+
+ X=fft(A,sign,dims,incr [,option] )
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>パラメータ</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>A</term>
+
+ <listitem>
+
+ <para>
+
+ 実数または複素数ベクトル,
+
+ 実数または複素数配列(ベクトル, 行列またはN-D配列).
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>X</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>A</literal>と同じ形状の実数または複素数配列
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>sign</term>
+
+ <listitem>
+
+ an integer. with possible values <literal>1</literal> or
+
+ <literal>-1</literal>. Select direct or inverse
+
+ transform. The default value is <literal>-1</literal>
+
+ (direct transform).
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>option</term>
+
+ <listitem>
+
+ 文字列. 指定可能な値は
+
+ <literal>"symmetric"</literal> または
+
+ <literal>"nonsymmetric"</literal>です.
+
+ <literal>A</literal>が対称かどうかを示します.
+
+ この引数が省略された場合,アルゴリズムは
+
+ <literal>A</literal>が対称かどうかを自動的に定義します.
+
+ 詳細は説明のパートを参照ください.
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>selection</term>
+
+ <listitem>
+
+ <literal>A</literal> 配列の次元の添字を有するベクトル.
+
+ 詳細は説明のパートを参照ください.
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>dims</term>
+
+ <listitem>
+
+ 整数値を有する正の数のベクトルまたは正の整数値のベクトル.
+
+ 詳細は説明のパートを参照ください.
+
+ <para>
+
+ 各要素は<literal>A</literal>の要素の総数の約数とする
+
+ 必要があります.
+
+ </para>
+
+ <para>
+
+ 要素の積は<literal>A</literal>の全要素数より
+
+ 少ない必要があります.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>incr</term>
+
+ <listitem>
+
+ 整数値を有する正の数のベクトルまたは正の整数値のベクトル.
+
+ 詳細は説明のパートを参照ください.
+
+ <para>
+
+ <literal>incr</literal> は,
+
+ <literal>dims</literal>と同じ要素数とする必要があります.
+
+ </para>
+
+ <para>
+
+ 各要素は
+
+ <literal>A</literal>の全要素数の約数とする必要があります.
+
+ </para>
+
+ <para>
+
+ <literal>incr</literal>要素は厳密に昇順とする必要があります.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ この関数は直接または逆の1次元またはN次元離散フーリエ変換を
+
+ 行います.
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>短縮構文 </term>
+
+ <listitem>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>直接</term>
+
+ <listitem>
+
+ <literal>X=fft(A,-1 [,option])</literal> または
+
+ <literal>X=fft(A [,option])</literal>
+
+ は直接変換を出力します.
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>単一変量</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>A</literal> が単一変量のベクトルの場合,
+
+ 次のように直接FFTが計算されます:
+
+ </para>
+
+ <para>
+
+ <latex>
+
+ $x(k) = \sum_{m=1}^n {a(m)*e^{-\frac{2i*\pi}{n}(m-1) (k-1)}$
+
+ </latex>
+
+ </para>
+
+ <para>
+
+ (引数<literal>-1</literal>は指数の符号を示しており,
+
+ "逆"ではありません),
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+
+
+ <varlistentry>
+
+ <term>多変量</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>A</literal>が行列または多次元配列の場合,
+
+ 多変量直接FFTが行われます.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>逆</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>X=fft(A,1)</literal>または
+
+ <literal>X=ifft(A)</literal> は,
+
+ <literal>A==ifft(fft(A))</literal>のような
+
+ 正規化された逆変換を実行します.
+
+ </para>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>単一変量</term>
+
+ <listitem>
+
+ <literal>A</literal> がベクトルの場合,
+
+ 単一変量逆FFTが実行されます.
+
+ <para>
+
+ <latex>
+
+ $x(k) = \sum_{m=1}^n
+
+ {a(m)*e^{+\frac{2i*\pi}{n} (m-1) (k-1)}$
+
+ </latex>
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>多変量</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>A</literal>が行列または多次元配列の場合,
+
+ 多変量逆FFTが実行されます.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>多次元FFTの長い構文</term>
+
+ <listitem>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <para>
+
+ <literal>X=fft(A,sign,selection [,option])</literal>
+
+ により,選択した次元方向の<literal>A</literal>の
+
+ "スライス"の直接または逆fftを効率的に実行することができます.
+
+ </para>
+
+ <para>
+
+ 例えば,<literal>A</literal> が3次元配列の場合,
+
+ <literal>X=fft(A,-1,2)</literal>は以下と等価です:
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+for i1=1:size(A,1)
+ for i3=1:size(A,3)
+ X(i1,:,i3)=fft(A(i1,:,i3),-1);
+ end
+end
+ ]]></programlisting>
+
+ <para>
+
+ <literal>X=fft(A,-1,[1 3])</literal>は以下と等価です:
+
+ </para>
+
+ <programlisting role=""><![CDATA[
+for i2=1:size(A,2)
+ X(:,i2,:)=fft(A(:,i2,:),-1);
+end
+ ]]></programlisting>
+
+ </listitem>
+
+ <listitem>
+
+ <para>
+
+ 前記の構文,
+
+ <literal>X=fft(A,sign,dims,incr [,option])</literal> は,
+
+ 指定した次元方向に <literal>A</literal>のスライスの
+
+ 直接または逆fftを行うことも可能です.
+
+ </para>
+
+ <para>
+
+ 例えば, <literal>A</literal> が
+
+ <literal>n1*n2*n3</literal> 個の要素を有する配列の場合,
+
+ <literal>X=fft(A,-1,n1,1)</literal> は
+
+ <literal>X=fft(matrix(A,[n1,n2,n3]),-1,1)</literal>
+
+ と等価です.
+
+ また、<literal>X=fft(A,-1,[n1 n3],[1 n1*n2])</literal>
+
+ は
+
+ <literal>X=fft(matrix(A,[n1,n2,n3]),-1,[1,3])</literal>
+
+ と等価です.
+
+ </para>
+
+ </listitem>
+
+ </itemizedlist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>option引数の使用法</term>
+
+ この引数は<literal>A</literal>またはその"スライス"全体
+
+ の対称性に関してfftアルゴリズムに情報を提供するために使用できます.
+
+ 次元<literal>n1</literal>, ..., <literal>np</literal>の
+
+ N次元配列<literal>B</literal> は,
+
+ <literal>B==conj(B([1 n1:-1:2],[1
+
+ n2:-1:2],...,[1 np:-1:2]))
+
+ </literal>
+ の場合に限り,fftが共役対称です.
+
+ このような場合,
+
+ 結果<literal>X</literal>は実数で,効率的な専用のアルゴリズムを
+
+ 使用できます.
+
+ <listitem>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <term>"symmetric"</term> は,
+
+ <literal>A</literal>またはその全"スライス"を
+
+ 共役対称として扱うfftを実行する値です.
+
+ このオプションは,
+
+ <literal>A</literal> またはその全"スライス" が
+
+ 丸め誤差の影響で厳密に対称ではない場合に,
+
+ 自動的な対称性の定義を回避したい場合に有用です.
+
+ </listitem>
+
+ <listitem>
+
+ <term>"nonsymmetric"</term> は対称性を考慮せずに
+
+ fftを実行する値です.
+
+ このオプションは自動的な対称性の定義を
+
+ 回避したい場合に有用です.
+
+ </listitem>
+
+ <listitem>
+
+ <term>unspecified</term>
+
+ このオプションが省略された場合,fftアルゴリズムは
+
+ 自動的に正しい対称性を確認します.
+
+ </listitem>
+
+
+
+ </itemizedlist>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>fftの最適化</term>
+
+ <listitem>
+
+ <para>
+
+ 注意: fftw 関数は自動的に直近のパラメータをメモリに保存し,
+
+ 2回目に再利用します.
+
+ これにより,(同じパラメータで)連続的なコールを行った場合に
+
+ 著しく計算時間が改善します.
+
+ </para>
+
+ <para>
+
+ <link linkend="get_fftw_wisdom">get_fftw_wisdom</link>,
+
+ <link linkend="set_fftw_wisdom">set_fftw_wisdom</link>関数により
+
+ 更にfftを最適化することができます.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>アルゴリズム</title>
+
+ <para>
+
+ この関数は,<ulink url="http://www.fftw.org/">fftw3</ulink> ライブラリを
+
+ 使用しています.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <para>1次元fft</para>
+
+ <programlisting role="example"><![CDATA[
+//Frequency components of a signal
+//----------------------------------
+// build a noised signal sampled at 1000hz containing pure frequencies
+// at 50 and 70 Hz
+sample_rate=1000;
+t = 0:1/sample_rate:0.6;
+N=size(t,'*'); //number of samples
+s=sin(2*%pi*50*t)+sin(2*%pi*70*t+%pi/4)+grand(1,N,'nor',0,1);
+
+y=fft(s);
+
+//s is real so the fft response is conjugate symmetric and we retain only the first N/2 points
+f=sample_rate*(0:(N/2))/N; //associated frequency vector
+n=size(f,'*')
+clf()
+plot(f,abs(y(1:n)))
+ ]]></programlisting>
+
+ <para>2次元fft</para>
+
+ <programlisting role="example"><![CDATA[
+----------------------------------
+A = zeros(256,256);
+A(5:24,13:17) = 1;
+X = fftshift(fft(A));
+set(gcf(),"color_map",jetcolormap(128));
+clf;grayplot(0:255,0:255,abs(X)')
+ ]]></programlisting>
+
+ <para>mupliple fft</para>
+
+ <programlisting role="example"><![CDATA[
+//simple case, 3 1-D fft at a time
+N=2048;
+t=linspace(0,10,2048);
+A=[2*sin(2*%pi*3*t)+ sin(2*%pi*3.5*t)
+ 10*sin(2*%pi*8*t)
+ sin(2*%pi*0.5*t)+4*sin(2*%pi*0.8*t)];
+X=fft(A,-1,2);
+
+fs=1/(t(2)-t(1));
+f=fs*(0:(N/2))/N; //associated frequency vector
+clf;plot(f(1:100)',abs(X(:,1:100))')
+legend(["3 and 3.5 Hz","8 Hz","0.5 and 0.8 Hz"],"in_upper_left")
+
+// 45 3-D fft at a time
+Dims=[5 4 9 5 6];
+A=matrix(rand(1,prod(Dims)),Dims);
+
+y=fft(A,-1,[2 4 5]);
+
+//equivalent (but less efficient code)
+y1=zeros(A);
+for i1=1:Dims(1)
+ for i3=1:Dims(3)
+ ind=list(i1,:,i3,:,:);
+ y1(ind(:))=fft(A(ind(:)),-1);
+ end
+end
+ ]]></programlisting>
+
+ <programlisting role="example"><![CDATA[
+//Using explicit formula for 1-D discrete Fourier transform
+//------------------------------------------------
+function xf=DFT(x,flag);
+ n=size(x,'*');
+ //Compute the n by n Fourier matrix
+ if flag==1 then,//backward transformation
+ am=exp(2*%pi*%i*(0:n-1)'*(0:n-1)/n);
+ else //forward transformation
+ am=exp(-2*%pi*%i*(0:n-1)'*(0:n-1)/n);
+ end
+ xf=am*matrix(x,n,1);//dft
+ xf=matrix(xf,size(x));//reshape
+ if flag==1 then,xf=xf/n;end
+endfunction
+
+//Comparison with the fast Fourier algorithm
+a=rand(1,1000);
+norm(DFT(a,1) - fft(a,1))
+norm(DFT(a,-1) - fft(a,-1))
+
+timer();DFT(a,-1);timer()
+timer();fft(a,-1);timer()
+ ]]></programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="corr">corr</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="fftw_flags">fftw_flags</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="get_fftw_wisdom">get_fftw_wisdom</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="set_fftw_wisdom">set_fftw_wisdom</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="fftw_forget_wisdom">fftw_forget_wisdom</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>参考文献</title>
+
+ <para>
+
+ Matteo Frigo and Steven G. Johnson, "FFTW Documentation" <ulink url="http://www.fftw.org/#documentation">http://www.fftw.org/#documentation</ulink>
+
+ </para>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/transforms/hank.xml b/modules/signal_processing/help/ja_JP/transforms/hank.xml
new file mode 100755
index 000000000..6b4baafc0
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/transforms/hank.xml
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="hank">
+
+ <refnamediv>
+
+ <refname>hank</refname>
+
+ <refpurpose>共分散からハンケル行列を得る</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>hk =hank(m, n, cov)</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>m</term>
+
+ <listitem>
+
+ <para>ブロック行の数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>ブロック列の数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>cov</term>
+
+ <listitem>
+
+ <para>共分散の系列; 次のように指定します :[R0 R1 R2...Rk]</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>hk</term>
+
+ <listitem>
+
+ <para>ハンケル行列の計算値</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ この関数は,ベクトル過程の共分散系列から
+
+ 大きさ<literal>(m*d,n*d)</literal>のハンケル行列を構築します.
+
+ より正確には以下となります:
+
+ </para>
+
+ <para>
+
+ この関数は,ベクトル過程の共分散系列から
+
+ 大きさ<literal>(m*d,n*d)</literal>のハンケル行列を作成します.
+
+ より正しくは:
+
+ </para>
+
+ <para>
+
+ <latex><![CDATA[ \mathrm{hank}(m, n, [R_0, R_1, R_2, \ldots])=m\mbox{ blocks}\left\{\vphantom{\begin{matrix}R_0\cr R_1\cr R_2\cr\vdots\end{matrix}}\right.\left(\vphantom{\begin{matrix}R_0\cr R_1\cr R_2\cr\vdots\end{matrix}}\right.\overbrace{\begin{matrix}R_0 & R_1 & R_2 & \cdots\cr R_1 & R_2 & \cdots &\cr R_2 & \cdots &&\cr \vdots&&&\cr\end{matrix}}^{n \mbox{ blocks}}\left.\vphantom{\begin{matrix}R_0\cr R_1\cr R_2\cr\vdots\end{matrix}}\right) ]]></latex>
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example">//Example of how to use the hank macro for
+
+ //building a Hankel matrix from multidimensional
+
+ //data (covariance or Markov parameters e.g.)
+
+ //
+
+ //This is used e.g. in the solution of normal equations
+
+ //by classical identification methods (Instrumental Variables e.g.)
+
+ //
+
+ //1)let's generate the multidimensional data under the form :
+
+ // C=[c_0 c_1 c_2 .... c_n]
+
+ //where each bloc c_k is a d-dimensional matrix (e.g. the k-th correlation
+
+ //of a d-dimensional stochastic process X(t) [c_k = E(X(t) X'(t+k)], '
+
+ //being the transposition in scilab)
+
+ //
+
+ //we take here d=2 and n=64
+
+
+
+ c = rand(2, 2 * 64)
+
+
+
+ //generate the hankel matrix H (with 4 bloc-rows and 5 bloc-columns)
+
+ //from the data in c
+
+
+
+ H = hank(4, 5, c);
+
+ </programlisting>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="toeplitz">toeplitz</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/transforms/hilb.xml b/modules/signal_processing/help/ja_JP/transforms/hilb.xml
new file mode 100755
index 000000000..5158e50eb
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/transforms/hilb.xml
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="hilb">
+
+ <refnamediv>
+
+ <refname>hilb</refname>
+
+ <refpurpose>ヒルバート変換フィルタのFIR近似</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>xh=hilb(n [,wtype [,par]])</synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>引数</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>n</term>
+
+ <listitem>
+
+ <para>奇数の整数 : フィルタにおける点の数</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>wtype</term>
+
+ <listitem>
+
+ <para>
+
+ 文字列 : ウインドウの種類 <literal>('re','tr','hn','hm','kr','ch')</literal> (default <literal>='re'</literal>)
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>par</term>
+
+ <listitem>
+
+ <para>
+
+ <literal>wtype='kr' or 'ch'</literal>の場合のウインドウのパラメータ .
+
+ デフォルトは<literal>par=[0 0]</literal>.
+
+ 詳細は関数windowのヘルプを参照ください.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>xh</term>
+
+ <listitem>
+
+ <para>ヒルバート変換</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <para>
+
+ 原点を中心とするヒルバート変換フィルタを近似するFIRの
+
+ 最初のn個の点を返します.
+
+ </para>
+
+ <para>
+
+ FIRフィルタは,理想インパルス応答,つまし,
+
+ <literal>n</literal> が 0 でない場合は
+
+ <literal>h(n)=(2/(n*pi))*(sin(n*pi/2))^2</literal>,
+
+ <literal>h(0)=0</literal>
+
+ を適当にウインドウ処理することにより
+
+ 設計されます.
+
+ </para>
+
+ <para>
+
+ ヒルバート変換演算子を近似するFIR (Finite Impulse Response)フィルタを
+
+ 設計することにより解析的な信号生成器の近似を得るすることができます.
+
+ 解析的な信号は適当に時間シフトされた実信号をヒルバートフィルタにより
+
+ 生成された虚部に加算することにより計算されます.
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>参考文献</title>
+
+ <para>
+
+ <literal>
+
+ <ulink url="http://ieeexplore.ieee.org/iel4/78/7823/00330385.pdf?tp=&amp;arnumber=330385&amp;isnumber=7823">http://ieeexplore.ieee.org/iel4/78/7823/00330385.pdf?tp=&amp;arnumber=330385&amp;isnumber=7823</ulink>
+
+ </literal>
+
+ </para>
+
+ <para>
+
+ A. Reilly, G. Frazer, and B. Boashash, "Analytic signal generation Tips and traps", IEEE Trans. Signal Processing, vol. 42,
+
+ pp.3241-3245, Nov. 1994.
+
+ </para>
+
+ </refsection>
+
+ <refsection role="see also">
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="window">window</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="hilbert">hilbert</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example"><![CDATA[
+plot(hilb(51))
+ ]]></programlisting>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/wfir_gui.xml b/modules/signal_processing/help/ja_JP/wfir_gui.xml
new file mode 100755
index 000000000..379e92cd5
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/wfir_gui.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja_JP" xml:id="wfir_gui">
+ <refnamediv>
+ <refname>wfir_gui</refname>
+ <refpurpose>
+ 対話的にwfirフィルタを設計する際に使用するGUI
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>呼び出し手順</title>
+ <synopsis>[ftype,forder,cfreq,wtype,fpar] = wfir_gui()</synopsis>
+ </refsynopsisdiv>
+ <refsection>
+ <title>パラメータ</title>
+ <variablelist>
+ <varlistentry>
+ <term>ftype</term>
+ <listitem>
+ <para>
+ 文字列: 選択されたフィルタ形式.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>forder</term>
+ <listitem>
+ <para>
+ 正の整数値(スカラー): 選択されたフィルタ次数
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>cfreq</term>
+ <listitem>
+ <para>
+ 2要素のベクトル: 正規化された周波数のカットオフ周波数
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>wtype</term>
+ <listitem>
+ <para>
+ 文字列: 選択されたウィンドウ形式.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>fpar</term>
+ <listitem>
+ <para>
+ ウィンドウパラメータの2要素ベクトル.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsection>
+ <refsection>
+ <title>説明</title>
+ <para>
+ この関数はウィンドウ付き有限インパルス応答フィルタの設計パラメータを
+ 対話的に選択できるGUIを提供します
+ (<link linkend="wfir">wfir</link>参照).
+ 引数が指定されない場合,<literal>wfir</literal>により
+ コールされます.
+ </para>
+ <para>
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="../images/wfir_gui_dialog.png"/>
+ </imageobject>
+ </inlinemediaobject>
+ </para>
+ <para>
+ リクエストされた場合,
+ フィルタの周波数応答は
+ 以下のダイアログウインドウで設定されたパラメータに基づき
+ 自動的に更新されます:
+ </para>
+ <para>
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="../images/wfir_gui_view.svg"/>
+ </imageobject>
+ </inlinemediaobject>
+ </para>
+ </refsection>
+ <refsection>
+ <title>参照</title>
+ <simplelist type="inline">
+ <member>
+ <link linkend="wfir">wfir</link>
+ </member>
+ </simplelist>
+ </refsection>
+ <refsection>
+ <title>使用される関数</title>
+ <para>
+ <link linkend="uicontrol">uicontrol</link> 関数に基づきます.
+ </para>
+ </refsection>
+ <refsection>
+ <title>履歴</title>
+ <revhistory>
+ <revision>
+ <revnumber>5.4.0</revnumber>
+ <revremark>関数 wfir_gui は,
+ より使いやすくするために一から再設計されました.
+ </revremark>
+ </revision>
+ </revhistory>
+ </refsection>
+</refentry>
diff --git a/modules/signal_processing/help/ja_JP/xcorr.xml b/modules/signal_processing/help/ja_JP/xcorr.xml
new file mode 100755
index 000000000..d29e84c93
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/xcorr.xml
@@ -0,0 +1,388 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+This file is part Scilab
+Copyright (C) 2012 - INRIA - Serge Steer
+This file must be used under the terms of the CeCILL.
+This source file is licensed as described in the file COPYING, which
+you should have received as part of this distribution. The terms
+are also available at
+http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+-->
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="xcorr" xml:lang="ja">
+
+ <refnamediv>
+
+ <refname>xcorr</refname>
+
+ <refpurpose>離散自己/相互相関を計算する</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[c [,lagindex]] = xcorr(x [,maxlags [,scaling]])
+
+ [c [,lagindex]] = xcorr(x,y [,maxlags [,scaling]])
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>パラメータ</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>実数または複素浮動小数点数のベクトル.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>実数または複素浮動小数点数のベクトル.
+
+ デフォルト値は <literal>x</literal>.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>maxlags</term>
+
+ <listitem>
+
+ <para>スカラーで,1より大きな整数.
+
+ デフォルト値は <literal>n</literal>.
+
+ ただし,<literal>n</literal>は<literal>x</literal>,
+
+ <literal>y</literal>ベクトルの長さの大きい方です.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>scaling</term>
+
+ <listitem>
+
+ <para>文字列で,値は以下のどれか:
+
+ <literal>"biased"</literal>, <literal>"unbiased"</literal>,
+
+ <literal>"coeff"</literal>, <literal>"none"</literal>.
+
+ デフォルト値は <literal>"none"</literal>.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>c</term>
+
+ <listitem>
+
+ <para>実数または浮動小数点数のベクトルで,向きは
+
+ <literal>x</literal>と同じです.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>lagindex</term>
+
+ <listitem>
+
+ <para>
+
+ 行ベクトルで, <literal>c</literal>の値に
+
+ 対応する添字(lag index)を有します.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <literal>c=xcorr(x)</literal>
+
+ は,以下のように正規化しない離散自己共分散を計算します:
+
+ <latex>{\begin{matrix}C_k = \sum_{i=1}^{n-k}
+
+ {x_{i+k}*x^{*}_i}, k \geq 0 \\ C_k = C^{*}_{-k}, k \leq
+
+ -1\end{matrix}.$
+
+ </latex>
+
+ そして,<literal>c</literal> を返します.
+
+ 自己共分散の並びは,
+
+ <latex>$C_k,k=-n:n$</latex>
+
+ となります.ただし,<literal>n</literal>は,
+
+ <literal>x</literal>の長さです.
+
+ </listitem>
+
+ <listitem>
+
+ <literal>xcorr(x,y)</literal>
+
+ は正規化しない離散相互共分散を以下のように計算します:
+
+ <latex>{\begin{matrix}C_k = \sum_{i=1}^{n-k}
+
+ {x_{i+k}*y^{*}_i}, k \geq 0 \\ C_k = C^{*}_{-k}, k \leq
+
+ -1\end{matrix}}.$
+
+ </latex>
+
+ 結果を<literal>c</literal>に返します.
+
+ 相互共分散の並びは,
+
+ <latex>$C_k,k=-n:n$</latex>となります.
+
+ ただし,<literal>n</literal>は,
+
+ <literal>x</literal>および<literal>y</literal>
+
+ の長さの大きい方です.
+
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+
+ <literal>maxlags</literal> 引数が指定された場合,
+
+ <literal>xcorr</literal> は <literal>c</literal> を
+
+ 返し,共分散の並びは <latex>$C_k,k=-maxlags:maxlags$</latex> と
+
+ なります.
+
+ <literal>maxlags</literal> が <literal>length(x)</literal>よりも
+
+ 大きい場合, <literal>c</literal>の先頭と末尾の複数の値は
+
+ ゼロになります.
+
+ </para>
+
+ <para>
+
+ <literal>scaling</literal> 引数は,
+
+ <literal>c</literal>に結果を出力する前に
+
+ <latex>C(k)</latex>を正規化する方法を以下のように指定します:
+
+ <itemizedlist>
+
+ <listitem>
+
+ <term>"biased"</term>:<literal>c=</literal><latex>$C$</latex><literal>/n</literal>.
+
+ </listitem>
+
+ <listitem>
+
+ <term>"unbiased"</term>:<literal>c=</literal><latex>$C$</latex><literal>./(n-(-maxlags:maxlags))</literal>.
+
+ </listitem>
+
+ <listitem>
+
+ <term>"coeff"</term>:<literal>c=</literal><latex>$C$</latex><literal>/(norm(x)*norm(y))</literal>.
+
+ </listitem>
+
+ </itemizedlist>
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>注意</title>
+
+ <link linkend="corr">corr</link>
+
+ 関数は<literal>x</literal>および<literal>y</literal>の
+
+ バイアス付き("biased")共分散を計算し,
+
+ <literal>c</literal>のみを返します.
+
+ 自己共分散の並びは,<latex>$C_k,k \geq 0$</latex>となります.
+
+ </refsection>
+
+ <refsection>
+
+ <refsection>
+
+ <title>手法</title>
+
+ この関数は,
+
+ <literal>ifft(fft(x).*conj(fft(y)))</literal>により
+
+ <latex>$C$</latex>を計算します.
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example">t = linspace(0, 100, 2000);
+
+ y = 0.8 * sin(t) + 0.8 * sin(2 * t);
+
+ [c, ind] = xcorr(y, "biased");
+
+ plot(ind, c)
+
+ </programlisting>
+
+ <scilab:image>
+
+ t = linspace(0, 100, 2000);
+
+ y = 0.8 * sin(t) + 0.8 * sin(2 * t);
+
+ [c, ind] = xcorr(y, "biased");
+
+ plot(ind, c)
+
+ </scilab:image>
+
+ </refsection>
+
+ <refsection>
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="xcov">xcov</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="corr">corr</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="fft">fft</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>作者</title>
+
+ <simplelist type="vert">
+
+ <member>Serge Steer, INRIA</member>
+
+ </simplelist>
+
+ </refsection>
+
+ <title>使用される関数</title>
+
+ <para>
+
+ <link linkend="fft">fft</link>
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>履歴</title>
+
+ <revhistory>
+
+ <revision>
+
+ <revnumber>5.4.0</revnumber>
+
+ <revremark>xcorr追加.</revremark>
+
+ </revision>
+
+ </revhistory>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/ja_JP/xcov.xml b/modules/signal_processing/help/ja_JP/xcov.xml
new file mode 100755
index 000000000..d3d8b7b8f
--- /dev/null
+++ b/modules/signal_processing/help/ja_JP/xcov.xml
@@ -0,0 +1,392 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+This file is part Scilab
+Copyright (C) 2012 - INRIA - Serge Steer
+This file must be used under the terms of the CeCILL.
+This source file is licensed as described in the file COPYING, which
+you should have received as part of this distribution. The terms
+are also available at
+http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+-->
+
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="xcov" xml:lang="ja">
+
+ <refnamediv>
+
+ <refname>xcov</refname>
+
+ <refpurpose>離散自己/相互共分散を計算する</refpurpose>
+
+ </refnamediv>
+
+ <refsynopsisdiv>
+
+ <title>呼び出し手順</title>
+
+ <synopsis>[c [,lagindex]] = xcov(x [,maxlags [,scaling]])
+
+ [c [,lagindex]] = xcov(x,y [,maxlags [,scaling]])
+
+ </synopsis>
+
+ </refsynopsisdiv>
+
+ <refsection>
+
+ <title>パラメータ</title>
+
+ <variablelist>
+
+ <varlistentry>
+
+ <term>x</term>
+
+ <listitem>
+
+ <para>実数または複素浮動小数点数のベクトル.</para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>y</term>
+
+ <listitem>
+
+ <para>
+
+ 実数または複素浮動小数点数のベクトル.
+
+ デフォルト値は<literal>x</literal>.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>maxlags</term>
+
+ <listitem>
+
+ <para>
+
+ スカラーで1より大きな整数値.デフォルト値は<literal>n</literal>.
+
+ ただし,<literal>n</literal>は<literal>x</literal>,
+
+ <literal>y</literal>ベクトルの長さの大きい方です.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>scaling</term>
+
+ <listitem>
+
+ <para>文字列で,値は以下のどれか:
+
+ <literal>"biased"</literal>, <literal>"unbiased"</literal>,
+
+ <literal>"coeff"</literal>, <literal>"none"</literal>.
+
+ デフォルト値は <literal>"none"</literal>.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>c</term>
+
+ <listitem>
+
+ <para>実数または浮動小数点数のベクトルで,向きは
+
+ <literal>x</literal>と同じです.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ <varlistentry>
+
+ <term>lagindex</term>
+
+ <listitem>
+
+ <para>
+
+ 行ベクトルで, <literal>c</literal>の値に
+
+ 対応する添字(lag index)を有します.
+
+ </para>
+
+ </listitem>
+
+ </varlistentry>
+
+ </variablelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>説明</title>
+
+ <itemizedlist>
+
+ <listitem>
+
+ <literal>c=xcov(x)</literal>
+
+ は,以下の正規化しない離散共分散を計算します:
+
+ <latex>{\begin{matrix}C_k = \sum_{i=0}^{n-k-1}
+
+ {(x_{i+k}-\mu_x})({x_i-\mu_x})^{*} , k \geq 0
+
+ \mu_x=\sum_{i=0}^{n-1}{x_i} C_k = C^{*}_{-k}, k \leq
+
+ -1\end{matrix}.}$
+
+ </latex>
+
+ そして,<literal>c</literal>を返します.
+
+ 共分散の並びは, <latex>$C_k,k=-n:n$</latex>
+
+ となります. ただし,<literal>n</literal> は
+
+ <literal>x</literal>の長さです.
+
+ </listitem>
+
+ <listitem>
+
+ <literal>xcov(x,y)</literal>
+
+ は,以下のように正規化しない離散相互共分散を計算します:
+
+ <latex>${\begin{matrix}C_k = \sum_{i=1}^{n-k}
+
+ {(x_{i+k}-\mu_x})*({y_i}-\mu_y)^{*}, k \geq 0
+
+ \mu_x=\sum_{i=0}^{n-1}{x_i} \mu_y=\sum_{i=0}^{n-1}{y_i} C_k =
+
+ C^{*}_{-k}, k \leq -1\end{matrix}.}$
+
+ </latex>
+
+ 結果を<literal>c</literal>に返します.
+
+ 相互共分散の並びは,
+
+ <latex>$C_k,k=-n:n$</latex>
+
+ となります.ただし,<literal>n</literal>は
+
+ <literal>x</literal>および<literal>y</literal>
+
+ の長さの大きい方です.
+
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+
+ <literal>maxlags</literal> 引数が指定された場合,
+
+ <literal>xcov</literal> は <literal>c</literal> を
+
+ 返し,共分散の並びは <latex>$C_k,k=-maxlags:maxlags$</latex> と
+
+ なります.
+
+ <literal>maxlags</literal> が <literal>length(x)</literal>よりも
+
+ 大きい場合, <literal>c</literal>の先頭と末尾の複数の値は
+
+ ゼロになります.
+
+ </para>
+
+ <para>
+
+ <literal>scaling</literal> 引数は,
+
+ <literal>c</literal>に結果を出力する前に
+
+ <latex>C(k)</latex>を正規化する方法を以下のように指定します:
+
+ <itemizedlist>
+
+ <listitem>
+
+ <term>"biased"</term>:<literal>c=</literal><latex>$C$</latex><literal>/n</literal>.
+
+ </listitem>
+
+ <listitem>
+
+ <term>"unbiased"</term>:<literal>c=</literal><latex>$C$</latex><literal>./(n-(-maxlags:maxlags))</literal>.
+
+ </listitem>
+
+ <listitem>
+
+ <term>"coeff"</term>:<literal>c=</literal><latex>$C$</latex><literal>/(norm(x)*norm(y))</literal>.
+
+ </listitem>
+
+ </itemizedlist>
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>注意</title>
+
+ <link linkend="corr">corr</link>
+
+ 関数は,<literal>x</literal>および<literal>y</literal>の
+
+ バイアス付き("biased")共分散を計算し,
+
+ <literal>c</literal>のみを返します.
+
+ 共分散の並びは,<latex>$C_k,k \geq 0$</latex>となります.
+
+ </refsection>
+
+ <refsection>
+
+ <refsection>
+
+ <title>手法</title>
+
+ この関数は,
+
+ <literal>xcorr(x-mean(x),y-mean(y),...)</literal>により
+
+ <latex>$C$</latex>を計算します.
+
+ </refsection>
+
+ <refsection>
+
+ <title>例</title>
+
+ <programlisting role="example">t = linspace(0, 100, 2000);
+
+ y = 0.8 * sin(t) + 0.8 * sin(2 * t);
+
+ [c, ind] = xcov(y, "biased");
+
+ plot(ind, c)
+
+ </programlisting>
+
+ <scilab:image>
+
+ t = linspace(0, 100, 2000);
+
+ y = 0.8 * sin(t) + 0.8 * sin(2 * t);
+
+ [c, ind] = xcov(y, "biased");
+
+ plot(ind, c)
+
+ </scilab:image>
+
+ </refsection>
+
+ <refsection>
+
+ <title>参照</title>
+
+ <simplelist type="inline">
+
+ <member>
+
+ <link linkend="xcorr">xcorr</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="corr">corr</link>
+
+ </member>
+
+ <member>
+
+ <link linkend="fft">fft</link>
+
+ </member>
+
+ </simplelist>
+
+ </refsection>
+
+ <refsection>
+
+ <title>作者</title>
+
+ <simplelist type="vert">
+
+ <member>Serge Steer, INRIA</member>
+
+ </simplelist>
+
+ </refsection>
+
+ <title>使用される関数</title>
+
+ <para>
+
+ <link linkend="xcorr">xcorr</link>
+
+ </para>
+
+ </refsection>
+
+ <refsection>
+
+ <title>履歴</title>
+
+ <revhistory>
+
+ <revision>
+
+ <revnumber>5.4.0</revnumber>
+
+ <revremark>xcov 追加.</revremark>
+
+ </revision>
+
+ </revhistory>
+
+ </refsection>
+
+</refentry>
+
diff --git a/modules/signal_processing/help/pt_BR/addchapter.sce b/modules/signal_processing/help/pt_BR/addchapter.sce
new file mode 100755
index 000000000..c0d3cf8eb
--- /dev/null
+++ b/modules/signal_processing/help/pt_BR/addchapter.sce
@@ -0,0 +1,11 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+add_help_chapter("Processamento de Sinais",SCI+"/modules/signal_processing/help/pt_BR",%T);
+
diff --git a/modules/signal_processing/help/ru_RU/addchapter.sce b/modules/signal_processing/help/ru_RU/addchapter.sce
new file mode 100755
index 000000000..6f285db2d
--- /dev/null
+++ b/modules/signal_processing/help/ru_RU/addchapter.sce
@@ -0,0 +1,11 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+add_help_chapter("Signal Processing",SCI+"/modules/signal_processing/help/ru_RU",%T);
+
diff --git a/modules/signal_processing/includes/dynlib_signal_processing.h b/modules/signal_processing/includes/dynlib_signal_processing.h
new file mode 100755
index 000000000..a38d56446
--- /dev/null
+++ b/modules/signal_processing/includes/dynlib_signal_processing.h
@@ -0,0 +1,29 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) DIGITEO - 2009 - Allan CORNET
+*
+* This file must be used under the terms of the CeCILL.
+* This source file is licensed as described in the file COPYING, which
+* you should have received as part of this distribution. The terms
+* are also available at
+* http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+*
+*/
+
+/*--------------------------------------------------------------------------*/
+#ifndef __DYNLIB_SIGNAL_PROCESSING_H__
+#define __DYNLIB_SIGNAL_PROCESSING_H__
+
+#ifdef _MSC_VER
+#ifdef SIGNAL_PROCESSING_EXPORTS
+#define SIGNAL_PROCESSING_IMPEXP __declspec(dllexport)
+#else
+#define SIGNAL_PROCESSING_IMPEXP __declspec(dllimport)
+#endif
+#else
+#define SIGNAL_PROCESSING_IMPEXP
+#endif
+
+#endif /* __DYNLIB_SIGNAL_PROCESSING_H__ */
+/*--------------------------------------------------------------------------*/
+
diff --git a/modules/signal_processing/includes/gw_signal.h b/modules/signal_processing/includes/gw_signal.h
new file mode 100755
index 000000000..6ff70c56e
--- /dev/null
+++ b/modules/signal_processing/includes/gw_signal.h
@@ -0,0 +1,34 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006 - INRIA - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#ifndef __GW_SIGNAL__
+#define __GW_SIGNAL__
+/*--------------------------------------------------------------------------*/
+#include "dynlib_signal_processing.h"
+#include "machine.h"
+/*--------------------------------------------------------------------------*/
+SIGNAL_PROCESSING_IMPEXP int gw_signal_processing(void);
+/*--------------------------------------------------------------------------*/
+SIGNAL_PROCESSING_IMPEXP int C2F(sci_ffir)(char *fname, unsigned long fname_len);
+SIGNAL_PROCESSING_IMPEXP int C2F(sci_fft)(char *fname, unsigned long fname_len);
+SIGNAL_PROCESSING_IMPEXP int C2F(sci_corr)(char *fname, unsigned long fname_len);
+SIGNAL_PROCESSING_IMPEXP int C2F(sci_fiir)(char *fname, unsigned long fname_len);
+SIGNAL_PROCESSING_IMPEXP int C2F(sci_rpem)(char *fname, unsigned long fname_len);
+SIGNAL_PROCESSING_IMPEXP int C2F(sci_amell)(char *fname, unsigned long fname_len);
+SIGNAL_PROCESSING_IMPEXP int C2F(sci_delip)(char *fname, unsigned long fname_len);
+SIGNAL_PROCESSING_IMPEXP int C2F(sci_remez)(char *fname, unsigned long fname_len);
+SIGNAL_PROCESSING_IMPEXP int C2F(sci_syredi)(char *fname, unsigned long fname_len);
+SIGNAL_PROCESSING_IMPEXP int sci_conv2(char *fname, unsigned long fname_len);
+
+#endif /* __GW_SIGNAL__ */
+/*--------------------------------------------------------------------------*/
+
diff --git a/modules/signal_processing/libscisignal_processing-algo.la b/modules/signal_processing/libscisignal_processing-algo.la
new file mode 100755
index 000000000..c97bf6e3d
--- /dev/null
+++ b/modules/signal_processing/libscisignal_processing-algo.la
@@ -0,0 +1,41 @@
+# libscisignal_processing-algo.la - a libtool library file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname=''
+
+# Names of this library.
+library_names=''
+
+# The name of the static archive.
+old_library='libscisignal_processing-algo.a'
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -lpthread -ldl -lcurses -lm'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libscisignal_processing-algo.
+current=
+age=
+revision=
+
+# Is this an already installed library?
+installed=no
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir=''
diff --git a/modules/signal_processing/libscisignal_processing.la b/modules/signal_processing/libscisignal_processing.la
new file mode 100755
index 000000000..9bc86b3bc
--- /dev/null
+++ b/modules/signal_processing/libscisignal_processing.la
@@ -0,0 +1,41 @@
+# libscisignal_processing.la - a libtool library file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='libscisignal_processing.so.5'
+
+# Names of this library.
+library_names='libscisignal_processing.so.5.5.2 libscisignal_processing.so.5 libscisignal_processing.so'
+
+# The name of the static archive.
+old_library=''
+
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags=''
+
+# Libraries that this one depends upon.
+dependency_libs=' -lpthread -ldl -lcurses -lm'
+
+# Names of additional weak libraries provided by this library
+weak_library_names=''
+
+# Version information for libscisignal_processing.
+current=10
+age=5
+revision=2
+
+# Is this an already installed library?
+installed=no
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=no
+
+# Files to dlopen/dlpreopen
+dlopen=''
+dlpreopen=''
+
+# Directory that this library needs to be installed in:
+libdir='/usr/local/lib/scilab'
diff --git a/modules/signal_processing/license.txt b/modules/signal_processing/license.txt
new file mode 100755
index 000000000..33bb0b2b3
--- /dev/null
+++ b/modules/signal_processing/license.txt
@@ -0,0 +1,14 @@
+Copyright:
+Copyright (c) 2008 - DIGITEO
+Copyright (c) 1989-2008 - INRIA
+Copyright (c) 1989-2007 - ENPC
+Copyright (c) Bruno Pincon
+
+License:
+This module must be used under the terms of the CeCILL.
+This module file is licensed as described in the file COPYING, which
+you should have received as part of this distribution. The terms
+are also available at
+http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+
diff --git a/modules/signal_processing/locales/ca_ES.po b/modules/signal_processing/locales/ca_ES.po
new file mode 100755
index 000000000..7321459f1
--- /dev/null
+++ b/modules/signal_processing/locales/ca_ES.po
@@ -0,0 +1,617 @@
+# Catalan translation for scilab
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2010-04-10 19:18+0000\n"
+"Last-Translator: oriolsbd <oriolsbd@yahoo.es>\n"
+"Language-Team: Catalan <ca@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: ca\n"
+
+#, c-format
+msgid "%s: Can not read input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+msgid "Simulation of an ARMAX process:"
+msgstr ""
+
+msgid "Identification ARX (least square):"
+msgstr ""
+
+msgid "Simulation of an ARMAX process: "
+msgstr ""
+
+msgid "Identification ARX (least square): "
+msgstr ""
+
+msgid "Arma Spectral power estimation:"
+msgstr ""
+
+msgid "Arma identification"
+msgstr "Identificació Arma"
+
+msgid "Theoretical value"
+msgstr "Valor teòric"
+
+msgid "Using macro mese"
+msgstr "S'està utilitzant la macro mese"
+
+msgid "Spectral power"
+msgstr "Espectre de potència"
+
+msgid "frequency"
+msgstr "freqüència"
+
+msgid "spectral estimate"
+msgstr "espectre estimat"
+
+msgid "Press Return to continue ... \n"
+msgstr ""
+
+msgid "filtered signal"
+msgstr ""
+
+msgid "given noisy signal"
+msgstr ""
+
+msgid "Signal"
+msgstr ""
+
+msgid "2 points convolution"
+msgstr ""
+
+msgid "3 points convolution"
+msgstr ""
+
+msgid "Signal derivative estimate"
+msgstr ""
+
+msgid "Choose filter type and parameters"
+msgstr ""
+
+msgid "Discrete IIR filter "
+msgstr ""
+
+msgid "Discrete IIR filter: low pass fr < 0.2"
+msgstr ""
+
+msgid "Discrete IIR filter: band pass 0.15 < fr < 0.25"
+msgstr ""
+
+msgid "Minimax FIR filter"
+msgstr ""
+
+msgid "low pass cut-off in [.23,.27]"
+msgstr ""
+
+msgid "length 33"
+msgstr ""
+
+msgid "Remez Triangular filter"
+msgstr ""
+
+msgid "magnitude error"
+msgstr ""
+
+msgid "Signal Processing"
+msgstr "Processat de senyal"
+
+msgid "Spectral Estimation"
+msgstr ""
+
+msgid "IIR filter design"
+msgstr ""
+
+msgid "Minimax FIR filter design"
+msgstr ""
+
+msgid "Discrete IIR filter"
+msgstr ""
+
+msgid "Wiener filter"
+msgstr ""
+
+msgid "Bode plots"
+msgstr ""
+
+msgid "Window FIR filters"
+msgstr ""
+
+msgid "1-D convolution"
+msgstr ""
+
+msgid "2-D convolution"
+msgstr ""
+
+msgid "Arma simulation and identification"
+msgstr ""
+
+msgid "Arma, bidimensional version"
+msgstr ""
+
+msgid "Arma, Spectral power estimation"
+msgstr ""
+
+msgid "Data spectrum"
+msgstr ""
+
+msgid "magnitude"
+msgstr ""
+
+msgid "Spectral estimation"
+msgstr ""
+
+msgid "spectral power"
+msgstr ""
+
+msgid "estimates xf"
+msgstr "estima xf"
+
+msgid "estimates xs"
+msgstr "estima xs"
+
+msgid "real state"
+msgstr "estat real"
+
+msgid "Windowed FIR Low pass Filter"
+msgstr ""
+
+msgid "Kaiser window, cut-off: 0.2"
+msgstr ""
+
+msgid "Hamming window, cut-off: 0.2, 0.3"
+msgstr ""
+
+msgid "length 127"
+msgstr ""
+
+msgid "Windowed FIR Band pass Filter"
+msgstr ""
+
+msgid "Chebyshev window, cut-off: 0.15, 0.35"
+msgstr ""
+
+msgid "length 55"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d és d'un tipus incorrecte: Ha de ser un "
+"d'aquests {%s}.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Array of floating point numbers "
+"expected.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d és d'un tipus incorrecte: Ha de ser un vector "
+"de decimals amb coma flotant.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A scalar expected.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d té una mida incorrecta. Ha de ser un escalar.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d té una mida incorrecta: Ha de ser un polinomi.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: degree must be in the set {%s}.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d té valors incorrectes: ha de tenir el grau "
+"{%s}.\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same degree expected.\n"
+msgstr ""
+"%s: Els arguments d'entrada #%d i #%d són incompatibles: Han de tenir el "
+"mateix grau.\n"
+
+#, c-format
+msgid "%s: Input argument #%d must be real.\n"
+msgstr "%s: L'argument d'entrada #%d ha de ser un nombre real.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Elements must be positive.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d té valors incorrectes: Els elements han de ser "
+"positius.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Distance between Max and Min "
+"elements must be greater than %g.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d té valors incorrectes: La distància entre els "
+"elements mínim i màxim ha de ser major que %g.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Same numbers of elements "
+"expected.\n"
+msgstr ""
+"%s: Els arguments d'entrada #%d i #%d són incompatibles: Han de tenir el "
+"mateix nombre d'elements.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Not sampled high enough.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d té valors incorrectes: La mostra no és prou "
+"gran.\n"
+
+#, c-format
+msgid "%s: Wrong size for argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Arguments #%d and #%d must have the same sizes.\n"
+msgstr "%s: Els arguments #%d i #%d han de tenir la mateixa mida.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d to %d expected.\n"
+msgstr ""
+"%s: Nombre incorrecte d'arguments d'entrada: Hi ha d'haver entre %d i %d.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d or %d expected.\n"
+msgstr ""
+"%s: Nombre incorrecte d'arguments d'entrada: Se'n necessiten %d o %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix "
+"or two polynomials expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: First element must not be %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Filter order too small.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A single input, single output system "
+"expected.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d té una mida incorrecta: Ha de ser un sistema "
+"d'entrada simple i sortida simple.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Linear dynamical system or row "
+"vector of floats expected.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d és d'un tipus incorrecte: Ha de ser un sistema "
+"dinàmic lineal o un vector fila de decimals amb coma flotant.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d or %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A real or polynomial matrix or a "
+"rational expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A discrete system expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d expected.\n"
+msgstr "%s: Nombre incorrecte d'arguments d'entrada: Han de ser %d.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Unsupported '%s' type.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input arguments: Incompatible sizes.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: An odd integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Array of double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of output arguments: %d or %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Non-negative integers expected.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d té valors incorrectes: Han de ser nombres "
+"enters no-negatius.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in the interval "
+"[%s, %s].\n"
+msgstr ""
+"%s: L'argument d'entrada #%d té valors incorrectes: Els elements han de ser "
+"a l'interval [%s, %s].\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A tall matrix expected.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d té una mida incorrecta: Ha de ser una matriu "
+"alta.\n"
+
+#, c-format
+msgid "%s: Wrong values for input arguments #%d and #%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Argument #%d expected to be "
+"less than argument #%d.\n"
+msgstr ""
+"%s: Els arguments d'entrada #%d i #%d són incompatibles: L'argument #%d ha "
+"de ser menor que el #%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: Must be in the interval [%s, %s].\n"
+msgstr ""
+"%s: L'argument d'entrada #%d és incorrecte: Ha de ser a l'interval [%s, "
+"%s].\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"
+msgstr ""
+"%s: Els arguments d'entrada #%d i #%d són incompatibles: Han de tenir la "
+"mateixa mida.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s).\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: rational fraction array expected.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d és d'un tipus incorrecte: Ha de ser un vector "
+"de fraccions racionals.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d elements array expected.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d té una mida incorrecta: Ha de ser un vector de "
+"%d elements.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be odd.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the interval %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Elements of %dth argument must be in increasing order.\n"
+msgstr ""
+
+msgid "&File"
+msgstr ""
+
+msgid "&Tools"
+msgstr ""
+
+msgid "&Edit"
+msgstr ""
+
+msgid "&?"
+msgstr ""
+
+msgid "WFIR settings"
+msgstr ""
+
+msgid "Filter type"
+msgstr ""
+
+msgid "Band pass"
+msgstr ""
+
+msgid "High pass"
+msgstr ""
+
+msgid "Low pass"
+msgstr ""
+
+msgid "Stop Band"
+msgstr ""
+
+msgid "Window type"
+msgstr ""
+
+msgid "Hanning"
+msgstr ""
+
+msgid "Rectangular"
+msgstr ""
+
+msgid "Triangular"
+msgstr ""
+
+msgid "Chebychev main lobe"
+msgstr ""
+
+msgid "Chebychev side lobe"
+msgstr ""
+
+msgid "Hamming"
+msgstr ""
+
+msgid "Kaiser"
+msgstr ""
+
+msgid "Sampling Frequency (Hz)"
+msgstr ""
+
+msgid "Filter Order"
+msgstr ""
+
+msgid "Low cutoff frequency (Hz)"
+msgstr ""
+
+msgid "High cutoff frequency (Hz)"
+msgstr ""
+
+msgid "Parameter"
+msgstr ""
+
+msgid "View"
+msgstr ""
+
+msgid "Ok"
+msgstr ""
+
+msgid "Cancel"
+msgstr ""
+
+msgid "Help"
+msgstr ""
+
+msgid "Window main lobe width"
+msgstr ""
+
+msgid "maximum side-lobe height"
+msgstr ""
+
+msgid "frequency (Hz)"
+msgstr ""
+
+msgid "Magnitude (dB)"
+msgstr ""
+
+#, c-format
+msgid "%s: Input argument #%d must be strictly positive.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: incorrect element #%d\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real or complex vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: an integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for argument #%d: the expected value must be greater than "
+"%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: The first element must be %s and "
+"the last %s.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d té valors incorrectes: El primer element ha de "
+"ser %s, i l'últim, %s.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in increasing "
+"order.\n"
+msgstr ""
+"%s: L'argument d'entrada #%d té valors incorrectes: Els elements han d'estar "
+"en ordre decreixent.\n"
+
+#, c-format
+msgid "%s: Too abrupt change near end of frequency range.\n"
+msgstr ""
+"%s: Hi ha un canvi massa abrupte prop del final del rang de freqüències.\n"
diff --git a/modules/signal_processing/locales/cs_CZ.po b/modules/signal_processing/locales/cs_CZ.po
new file mode 100755
index 000000000..70b8b7773
--- /dev/null
+++ b/modules/signal_processing/locales/cs_CZ.po
@@ -0,0 +1,614 @@
+# Czech translation for scilab
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2013-07-06 21:26+0000\n"
+"Last-Translator: Zbyněk Schwarz <Unknown>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+
+#, c-format
+msgid "%s: Can not read input argument #%d.\n"
+msgstr "%s: Nelze přečíst vstupní argument #%d.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+"%s: Špatná hodnota vstupního argumentu #%d: Očekáváno '%s', nebo '%s'.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real vector expected.\n"
+msgstr "%s: Špatný typ argumentu #%d: Očekáván reálný vektor.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex vector expected.\n"
+msgstr ""
+"%s: Špatný typ argumentu #%d: Očekáván reálný nebo komplexní vektor.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n"
+msgstr ""
+"%s: Špatný typ argumentu %d: Očekávána komplexní nebo reálná matice.\n"
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr "%s: Chyba při přidělování paměti.\n"
+
+msgid "Simulation of an ARMAX process:"
+msgstr "Simulace procesu ARMAX:"
+
+msgid "Identification ARX (least square):"
+msgstr "Identifikační ARX (nejmenší čtverec):"
+
+msgid "Simulation of an ARMAX process: "
+msgstr "Simulace procesu ARMAX: "
+
+msgid "Identification ARX (least square): "
+msgstr "Identifikační ARX (nejmenší čtverec): "
+
+msgid "Arma Spectral power estimation:"
+msgstr "Odhad Spektrálního zářivého toku ARMA:"
+
+msgid "Arma identification"
+msgstr "Identifikace ARMA"
+
+msgid "Theoretical value"
+msgstr "Teoretická hodnota"
+
+msgid "Using macro mese"
+msgstr "POužití makra mese"
+
+msgid "Spectral power"
+msgstr "Spektrální zářivý tok"
+
+msgid "frequency"
+msgstr "frekvence"
+
+msgid "spectral estimate"
+msgstr "spektrální odhad"
+
+msgid "Press Return to continue ... \n"
+msgstr "Stiskněte Enter pro pokračování... \n"
+
+msgid "filtered signal"
+msgstr "filtrovaný signál"
+
+msgid "given noisy signal"
+msgstr "zadán hlučný signál"
+
+msgid "Signal"
+msgstr "Signál"
+
+msgid "2 points convolution"
+msgstr "2 body konvoluce"
+
+msgid "3 points convolution"
+msgstr "3 body konvoluce"
+
+msgid "Signal derivative estimate"
+msgstr "Odhad derivace signálu"
+
+msgid "Choose filter type and parameters"
+msgstr "Zvolte typ filtru a parametry"
+
+msgid "Discrete IIR filter "
+msgstr "Diskrétní filtr IIR "
+
+msgid "Discrete IIR filter: low pass fr < 0.2"
+msgstr ""
+
+msgid "Discrete IIR filter: band pass 0.15 < fr < 0.25"
+msgstr ""
+
+msgid "Minimax FIR filter"
+msgstr "Minimax filtr s KIO"
+
+msgid "low pass cut-off in [.23,.27]"
+msgstr "nízkoprůchodové useknutí v [.23,.27]"
+
+msgid "length 33"
+msgstr "délka 33"
+
+msgid "Remez Triangular filter"
+msgstr "Remezův trojúhelníkový filtr"
+
+msgid "magnitude error"
+msgstr "chyba magnitudy"
+
+msgid "Signal Processing"
+msgstr "Zpracování Signálů"
+
+msgid "Spectral Estimation"
+msgstr "Spektrální Odhad"
+
+msgid "IIR filter design"
+msgstr "Návrh filtru s NIO"
+
+msgid "Minimax FIR filter design"
+msgstr "Návr minimax filtru s KIO"
+
+msgid "Discrete IIR filter"
+msgstr "Diskrétní filtr s NIO"
+
+msgid "Wiener filter"
+msgstr ""
+
+msgid "Bode plots"
+msgstr "Frekvenční charakteristiky"
+
+msgid "Window FIR filters"
+msgstr "Okenní filtry KIO"
+
+msgid "1-D convolution"
+msgstr "1-D konvoluce"
+
+msgid "2-D convolution"
+msgstr "2-D konvoluce"
+
+msgid "Arma simulation and identification"
+msgstr "Simulace a identifikace ARM"
+
+msgid "Arma, bidimensional version"
+msgstr "Arma, dvojdimenzionální verze"
+
+msgid "Arma, Spectral power estimation"
+msgstr "Arma, Odhad spektrálního zářivého toku"
+
+msgid "Data spectrum"
+msgstr "Datové spektrum"
+
+msgid "magnitude"
+msgstr "magnituda"
+
+msgid "Spectral estimation"
+msgstr "Spektrální odhad"
+
+msgid "spectral power"
+msgstr "síla spektra"
+
+msgid "estimates xf"
+msgstr "odhady xf"
+
+msgid "estimates xs"
+msgstr "odhady xs"
+
+msgid "real state"
+msgstr "skutečný stav"
+
+msgid "Windowed FIR Low pass Filter"
+msgstr ""
+
+msgid "Kaiser window, cut-off: 0.2"
+msgstr ""
+
+msgid "Hamming window, cut-off: 0.2, 0.3"
+msgstr ""
+
+msgid "length 127"
+msgstr ""
+
+msgid "Windowed FIR Band pass Filter"
+msgstr ""
+
+msgid "Chebyshev window, cut-off: 0.15, 0.35"
+msgstr ""
+
+msgid "length 55"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"
+msgstr "%s: Špatná hodnota vstupního argumentu #%d: Musí být v sadě {%s}.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Array of floating point numbers "
+"expected.\n"
+msgstr ""
+"%s: Špatný typ vstupního argumentu #%d: Očekáváno pole desetinných čísel.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A scalar expected.\n"
+msgstr "%s: Špatná velikost vstupního argumentu #%d: Očekáván skalár.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n"
+msgstr "%s: Špatná velikost vstupního argumentu #%d: Očekáván mnohočlen.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: degree must be in the set {%s}.\n"
+msgstr ""
+"%s: Špatné hodnoty vstupního argumentu #%d: stupeň musí být v sadě {%s}.\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same degree expected.\n"
+msgstr ""
+"%s: Nekompatibilní vstupní argumenty #%d a #%d: Očekáván stejný stupeň.\n"
+
+#, c-format
+msgid "%s: Input argument #%d must be real.\n"
+msgstr "%s: Vstupní argument #%d musí být reálné číslo.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Elements must be positive.\n"
+msgstr "%s: Špatné hodnoty vstupního argumentu #%d: Prvky musí být kladné.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Distance between Max and Min "
+"elements must be greater than %g.\n"
+msgstr ""
+"%s: Špatné hodnoty vstupního argumentu #%d: Vzdálenost mezi prvky Max a Min "
+"musí být větší než %g.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Same numbers of elements "
+"expected.\n"
+msgstr ""
+"%s: Nekompatibilní vstupní argumenty #%d a #%d: Očekáváno stejné množství "
+"prvků.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Not sampled high enough.\n"
+msgstr ""
+"%s: Špatné hodnoty vstupního argumentu #%d: Není vzorkováno dostatečně "
+"vysoko.\n"
+
+#, c-format
+msgid "%s: Wrong size for argument #%d: Vector expected.\n"
+msgstr "%s: Špatná velikost argumentu #%d: Očekáván vektor.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n"
+msgstr "%s: Špatná hodnota vstupního argumentu #%d: Očekáváno %s nebo %s.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d expected.\n"
+msgstr "%s: Špatný počet vstupních argumentů: očekáváno %d.\n"
+
+#, c-format
+msgid "%s: Arguments #%d and #%d must have the same sizes.\n"
+msgstr "%s: Argumenty #%d a #%d musí mít stejnou velikost.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d to %d expected.\n"
+msgstr "%s: Špatný počet vstupních argumentů: očekáváno %d až %d.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d or %d expected.\n"
+msgstr "%s: Špatný počet vstupních argumentů: Očekávány %d nebo %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix "
+"or two polynomials expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: First element must not be %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Filter order too small.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A single input, single output system "
+"expected.\n"
+msgstr ""
+"%s: Špatná velikost vstupního argumentu #%d: Očekává systém jednoho vstupu a "
+"výstupu.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Linear dynamical system or row "
+"vector of floats expected.\n"
+msgstr ""
+"%s: Špatný typ vstupního argumentu #%d: Očekáván lineárně dynamický systém, "
+"nebo řada vektorů desetinných čísel.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d or %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A real or polynomial matrix or a "
+"rational expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A discrete system expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d expected.\n"
+msgstr "%s: Špatný počet vstupních argumentů: Očekáván %d.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A positive integer expected.\n"
+msgstr "%s: Špatný typ vstupního argumentu #%d: Očekáváno kladné číslo.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s: Špatná velikost vstupního argumentu #%d: Očekáváno kladné celé číslo.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s: Špatná hodnota vstupního argumentu #%d: Očekáváno kladné celé číslo.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Unsupported '%s' type.\n"
+msgstr ""
+"%s: Špatné hodnoty vstupního argumentu #%d: Nepodporovaný typ '%s'.\n"
+
+#, c-format
+msgid "%s: Wrong size for input arguments: Incompatible sizes.\n"
+msgstr "%s: Špatná velikost vstupních argumentů: Nekompatibilní velikosti.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: An odd integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Array of double expected.\n"
+msgstr ""
+"%s: Špatný typ vstupního argumentu #%d: Očekáváno pole čísel s dvojitou "
+"přesností.\n"
+
+#, c-format
+msgid "%s: Wrong number of output arguments: %d or %d expected.\n"
+msgstr "%s: Špatný počet výstupních argumentů: Očekáváno %d nebo %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Non-negative integers expected.\n"
+msgstr ""
+"%s: Špatné hodnoty vstupního argumentu #%d: Očekávána nezáporná celá čísla.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in the interval "
+"[%s, %s].\n"
+msgstr ""
+"%s: Špatné hodnoty vstupního argumentu #%d: Prvky musí být v intervalu [%s, "
+"%s].\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A tall matrix expected.\n"
+msgstr ""
+"%s: Špatná velikost vstupního argumentu #%d: Očekávána vysoká matice.\n"
+
+#, c-format
+msgid "%s: Wrong values for input arguments #%d and #%d.\n"
+msgstr "%s: Špatné hodnoty pro vstupní argumenty #%d a #%d.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Argument #%d expected to be "
+"less than argument #%d.\n"
+msgstr ""
+"%s: Nekompatibilní vstupní argumenty #%d a #%d: Očekává se, že argument #%d "
+"bude menší než argument #%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: Must be in the interval [%s, %s].\n"
+msgstr ""
+"%s: Špatná hodnota vstupního argumentu #%d: Musí být v intervalu [%s, %s].\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"
+msgstr ""
+"%s: Nekompatibilní vstupní argumenty #%d a #%d: Očekávány stejné velikosti.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s).\n"
+msgstr "%s: Špatný počet vstupních argumentů.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: rational fraction array expected.\n"
+msgstr ""
+"%s: Špatný typ vstupního argumentu #%d: očekáváno pole racionálních zlomků.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d elements array expected.\n"
+msgstr ""
+"%s: Špatná velikost vstupního argumentu #%d: Očekáváno pole %d prvků.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be odd.\n"
+msgstr "%s: Špatná hodnota vstupního argumentu #%d: Musí být liché.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+"%s: Špatný typ vstupního argumentu #%d: Očekáván reálný vektor %d krát %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+"%s: Špatná velikost vstupního argumentu #%d: Očekáván reálný vektor %d krát "
+"%d.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the interval %s.\n"
+msgstr ""
+"%s: Špatná hodnota vstupního argumentu #%d: Musí být v intervalu %s.\n"
+
+#, c-format
+msgid "%s: Elements of %dth argument must be in increasing order.\n"
+msgstr "%s: Prvky %d. argumentu musí být ve vzestupném pořadí.\n"
+
+msgid "&File"
+msgstr "&Soubor"
+
+msgid "&Tools"
+msgstr "&Nástroje"
+
+msgid "&Edit"
+msgstr "&Upravit"
+
+msgid "&?"
+msgstr "&?"
+
+msgid "WFIR settings"
+msgstr "Nastavení WFIR"
+
+msgid "Filter type"
+msgstr "Typ filtru"
+
+msgid "Band pass"
+msgstr "Pásmová propust"
+
+msgid "High pass"
+msgstr "Horní propust"
+
+msgid "Low pass"
+msgstr "Dolní propust"
+
+msgid "Stop Band"
+msgstr "Nepropustné pásmo"
+
+msgid "Window type"
+msgstr "Typ okna"
+
+msgid "Hanning"
+msgstr "Hanning"
+
+msgid "Rectangular"
+msgstr "Obdélníkový"
+
+msgid "Triangular"
+msgstr "Trojúhelníkový"
+
+msgid "Chebychev main lobe"
+msgstr "Čebyševův hlavní lalok"
+
+msgid "Chebychev side lobe"
+msgstr "Čebyševův postranní lalok"
+
+msgid "Hamming"
+msgstr "Hamming"
+
+msgid "Kaiser"
+msgstr "Kaiser"
+
+msgid "Sampling Frequency (Hz)"
+msgstr "Vzorkovací frekvence (Hz)"
+
+msgid "Filter Order"
+msgstr "Pořadí filtrů"
+
+msgid "Low cutoff frequency (Hz)"
+msgstr "Nízká mezní frekvence (Hz)"
+
+msgid "High cutoff frequency (Hz)"
+msgstr "Vysoká mezní frekvence (Hz)"
+
+msgid "Parameter"
+msgstr "Parametr"
+
+msgid "View"
+msgstr "Zobrazení"
+
+msgid "Ok"
+msgstr "OK"
+
+msgid "Cancel"
+msgstr "Zrušit"
+
+msgid "Help"
+msgstr "Nápověda"
+
+msgid "Window main lobe width"
+msgstr "Šířka hlavního laloku okna"
+
+msgid "maximum side-lobe height"
+msgstr "šířka maximálního postranního laloku"
+
+msgid "frequency (Hz)"
+msgstr "frekvence (Hz)"
+
+msgid "Magnitude (dB)"
+msgstr "Rozsah (dB)"
+
+#, c-format
+msgid "%s: Input argument #%d must be strictly positive.\n"
+msgstr "%s: Vstupní argument #%d musí být výhradně kladný.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: incorrect element #%d\n"
+msgstr "%s: Špatná hodnota vstupního argumentu #%d: nesprávný prvek #%d\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real or complex vector expected.\n"
+msgstr ""
+"%s: Špatný typ vstupního argumentu #%d: Očekáván reálný nebo komplexní "
+"vektor.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: an integer expected.\n"
+msgstr "%s: Špatný typ argumentu #%d: Očekáváno celé číslo.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for argument #%d: the expected value must be greater than "
+"%d.\n"
+msgstr ""
+"%s: Špatná hodnota pro argument #%d: očekávaná hodnota musí být větší než "
+"%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: The first element must be %s and "
+"the last %s.\n"
+msgstr ""
+"%s: Špatné hodnoty vstupního argumentu #%d: První prvek musí být %s a "
+"poslední %s.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in increasing "
+"order.\n"
+msgstr ""
+"%s: Špatné hodnoty vstupního argumentu #%d: Prvky musí být ve vzestupném "
+"pořadí.\n"
+
+#, c-format
+msgid "%s: Too abrupt change near end of frequency range.\n"
+msgstr "%s: Příliš náhlá změna blízko konce rozsahu frekvence,\n"
diff --git a/modules/signal_processing/locales/de_DE.po b/modules/signal_processing/locales/de_DE.po
new file mode 100755
index 000000000..2538b2646
--- /dev/null
+++ b/modules/signal_processing/locales/de_DE.po
@@ -0,0 +1,607 @@
+# German translation for scilab
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2010-10-23 20:26+0000\n"
+"Last-Translator: Petersen <Unknown>\n"
+"Language-Team: German <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: de\n"
+
+#, c-format
+msgid "%s: Can not read input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+msgid "Simulation of an ARMAX process:"
+msgstr ""
+
+msgid "Identification ARX (least square):"
+msgstr ""
+
+msgid "Simulation of an ARMAX process: "
+msgstr ""
+
+msgid "Identification ARX (least square): "
+msgstr ""
+
+msgid "Arma Spectral power estimation:"
+msgstr ""
+
+msgid "Arma identification"
+msgstr "Arma Identifikation"
+
+msgid "Theoretical value"
+msgstr "Theoretischer Wert"
+
+msgid "Using macro mese"
+msgstr "verwende Makro Mese"
+
+msgid "Spectral power"
+msgstr "Spektrale Leistung"
+
+msgid "frequency"
+msgstr "Frequenz"
+
+msgid "spectral estimate"
+msgstr "spektrale Schätzung"
+
+msgid "Press Return to continue ... \n"
+msgstr ""
+
+msgid "filtered signal"
+msgstr ""
+
+msgid "given noisy signal"
+msgstr ""
+
+msgid "Signal"
+msgstr ""
+
+msgid "2 points convolution"
+msgstr ""
+
+msgid "3 points convolution"
+msgstr ""
+
+msgid "Signal derivative estimate"
+msgstr ""
+
+msgid "Choose filter type and parameters"
+msgstr ""
+
+msgid "Discrete IIR filter "
+msgstr ""
+
+msgid "Discrete IIR filter: low pass fr < 0.2"
+msgstr ""
+
+msgid "Discrete IIR filter: band pass 0.15 < fr < 0.25"
+msgstr ""
+
+msgid "Minimax FIR filter"
+msgstr ""
+
+msgid "low pass cut-off in [.23,.27]"
+msgstr ""
+
+msgid "length 33"
+msgstr ""
+
+msgid "Remez Triangular filter"
+msgstr ""
+
+msgid "magnitude error"
+msgstr ""
+
+msgid "Signal Processing"
+msgstr "Signal-Verarbeitung"
+
+msgid "Spectral Estimation"
+msgstr ""
+
+msgid "IIR filter design"
+msgstr ""
+
+msgid "Minimax FIR filter design"
+msgstr ""
+
+msgid "Discrete IIR filter"
+msgstr ""
+
+msgid "Wiener filter"
+msgstr ""
+
+msgid "Bode plots"
+msgstr ""
+
+msgid "Window FIR filters"
+msgstr ""
+
+msgid "1-D convolution"
+msgstr ""
+
+msgid "2-D convolution"
+msgstr ""
+
+msgid "Arma simulation and identification"
+msgstr ""
+
+msgid "Arma, bidimensional version"
+msgstr ""
+
+msgid "Arma, Spectral power estimation"
+msgstr ""
+
+msgid "Data spectrum"
+msgstr ""
+
+msgid "magnitude"
+msgstr ""
+
+msgid "Spectral estimation"
+msgstr ""
+
+msgid "spectral power"
+msgstr ""
+
+msgid "estimates xf"
+msgstr "schätzt xf"
+
+msgid "estimates xs"
+msgstr "schätzt xs"
+
+msgid "real state"
+msgstr "realer Status"
+
+msgid "Windowed FIR Low pass Filter"
+msgstr ""
+
+msgid "Kaiser window, cut-off: 0.2"
+msgstr ""
+
+msgid "Hamming window, cut-off: 0.2, 0.3"
+msgstr ""
+
+msgid "length 127"
+msgstr ""
+
+msgid "Windowed FIR Band pass Filter"
+msgstr ""
+
+msgid "Chebyshev window, cut-off: 0.15, 0.35"
+msgstr ""
+
+msgid "length 55"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"
+msgstr ""
+"%s: falscher Wert für Eingangsargument #%d: muß sich im Satz {%s} befinden.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Array of floating point numbers "
+"expected.\n"
+msgstr ""
+"%s: falscher Typ für Eingangsargument #%d: Matrix mit Fließpunktzahlen "
+"erwartet.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A scalar expected.\n"
+msgstr "%s: falsche Größe für Eingangsargument #%d: ein Skalar erwartet.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n"
+msgstr "%s: falsche Größe für Eingangsargument #%d: ein Polynom erwartet.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: degree must be in the set {%s}.\n"
+msgstr ""
+"%s: falscher Wert für Eingangsargument #%d: Winkelwert muß sich im Satz {%s} "
+"befinden.\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same degree expected.\n"
+msgstr ""
+"%s: inkompatible Eingangsargumente #%d und #%d: gleicher Winkel erwartet.\n"
+
+#, c-format
+msgid "%s: Input argument #%d must be real.\n"
+msgstr "%s: Eingangsargument #%d muß reell sein.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Elements must be positive.\n"
+msgstr ""
+"%s: falscher Wert für Eingansgargument #%d: Elemente müssen positiv sein.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Distance between Max and Min "
+"elements must be greater than %g.\n"
+msgstr ""
+"%s: falscher Wert für Eingangsargument #%d: Distanz zwischen Maximum und "
+"Minimum Elementen muß größer als %g sein.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Same numbers of elements "
+"expected.\n"
+msgstr ""
+"%s: inkompatible Eingangsargumente #%d und #%d: gleiche Anzahl von Elementen "
+"erwartet.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Not sampled high enough.\n"
+msgstr ""
+"%s: falscher Wert für Eingangsargument #%d: nicht hoch genug abgetastet.\n"
+
+#, c-format
+msgid "%s: Wrong size for argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Arguments #%d and #%d must have the same sizes.\n"
+msgstr "%s: Argumente #%d und #%d müssen die gleiche Größe besitzen.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d to %d expected.\n"
+msgstr ""
+"%s: Falsche Anzahl von Eingangsargumenten: zwischen %d und %d erwartet.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d or %d expected.\n"
+msgstr "%s: Falsche Anzahl von Eingangsargumenten: %d oder %d erwartet.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix "
+"or two polynomials expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: First element must not be %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Filter order too small.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A single input, single output system "
+"expected.\n"
+msgstr ""
+"%s: falsche Größe für Eingangsargument #%d: ein System mit einzelnem Eingang "
+"und Ausgang erwartet.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Linear dynamical system or row "
+"vector of floats expected.\n"
+msgstr ""
+"%s: falscher Typ für Eingangsargument #%d: lineares dynamisches System oder "
+"Reihenvektor aus Fließpunktzahlen erwartet.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d or %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A real or polynomial matrix or a "
+"rational expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A discrete system expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d expected.\n"
+msgstr "%s: Falsche Anzahl von Eingangsargumenten: %d erwartet.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Unsupported '%s' type.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input arguments: Incompatible sizes.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: An odd integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Array of double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of output arguments: %d or %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Non-negative integers expected.\n"
+msgstr ""
+"%s: falscher Wert für Eingangsargument #%d: nicht-negative Integer "
+"erwartet.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in the interval "
+"[%s, %s].\n"
+msgstr ""
+"%s: falscher Wert für Eingangsargument #%d: Elemente müssen sich im "
+"Intervall [%s, %s] befinden.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A tall matrix expected.\n"
+msgstr ""
+"%s: falscher Größe für Eingangsargument #%d: eine Tall-Matrix erwartet.\n"
+
+#, c-format
+msgid "%s: Wrong values for input arguments #%d and #%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Argument #%d expected to be "
+"less than argument #%d.\n"
+msgstr ""
+"%s: inkompatible Eingangsargumente #%d und #%d: es wird angenommen, daß "
+"Argument #%d kleiner als Argument #%d ist.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: Must be in the interval [%s, %s].\n"
+msgstr ""
+"%s: falscher Wert für Eingangsargument #%d: muß sich im Intervall [%s, %s] "
+"befinden.\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"
+msgstr ""
+"%s: inkomatibles Eingangsargument #%d und #%d: gleiche Größe erwartet.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s).\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: rational fraction array expected.\n"
+msgstr ""
+"%s: falscher Wert für Eingangsargument #%d: Matrix mit rationalen Brüchen "
+"erwartet.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d elements array expected.\n"
+msgstr ""
+"%s: falsche Größe für Eingangsargument #%d: eine %d elementiges Datenfeld "
+"erwartet.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be odd.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the interval %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Elements of %dth argument must be in increasing order.\n"
+msgstr ""
+
+msgid "&File"
+msgstr ""
+
+msgid "&Tools"
+msgstr ""
+
+msgid "&Edit"
+msgstr ""
+
+msgid "&?"
+msgstr ""
+
+msgid "WFIR settings"
+msgstr ""
+
+msgid "Filter type"
+msgstr ""
+
+msgid "Band pass"
+msgstr ""
+
+msgid "High pass"
+msgstr ""
+
+msgid "Low pass"
+msgstr ""
+
+msgid "Stop Band"
+msgstr ""
+
+msgid "Window type"
+msgstr ""
+
+msgid "Hanning"
+msgstr ""
+
+msgid "Rectangular"
+msgstr ""
+
+msgid "Triangular"
+msgstr ""
+
+msgid "Chebychev main lobe"
+msgstr ""
+
+msgid "Chebychev side lobe"
+msgstr ""
+
+msgid "Hamming"
+msgstr ""
+
+msgid "Kaiser"
+msgstr ""
+
+msgid "Sampling Frequency (Hz)"
+msgstr ""
+
+msgid "Filter Order"
+msgstr ""
+
+msgid "Low cutoff frequency (Hz)"
+msgstr ""
+
+msgid "High cutoff frequency (Hz)"
+msgstr ""
+
+msgid "Parameter"
+msgstr ""
+
+msgid "View"
+msgstr ""
+
+msgid "Ok"
+msgstr ""
+
+msgid "Cancel"
+msgstr ""
+
+msgid "Help"
+msgstr ""
+
+msgid "Window main lobe width"
+msgstr ""
+
+msgid "maximum side-lobe height"
+msgstr ""
+
+msgid "frequency (Hz)"
+msgstr ""
+
+msgid "Magnitude (dB)"
+msgstr ""
+
+#, c-format
+msgid "%s: Input argument #%d must be strictly positive.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: incorrect element #%d\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real or complex vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: an integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for argument #%d: the expected value must be greater than "
+"%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: The first element must be %s and "
+"the last %s.\n"
+msgstr ""
+"%s: falscher Wert für Eingangsargument #%d: das erste Element muß %s sein "
+"und das letzte %s.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in increasing "
+"order.\n"
+msgstr ""
+"%s: falscher Wert für Eingangsargument #%d: Elemente müssen sich in "
+"zunehmender Reihenfolge befinden.\n"
+
+#, c-format
+msgid "%s: Too abrupt change near end of frequency range.\n"
+msgstr "%s: zu abrupte Änderung am Ende des Frequenzbereichs.\n"
diff --git a/modules/signal_processing/locales/es_ES.po b/modules/signal_processing/locales/es_ES.po
new file mode 100755
index 000000000..3a174c54a
--- /dev/null
+++ b/modules/signal_processing/locales/es_ES.po
@@ -0,0 +1,626 @@
+# Spanish translation for scilab
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2011-10-22 15:51+0000\n"
+"Last-Translator: Fido <Unknown>\n"
+"Language-Team: Spanish <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: es\n"
+
+#, c-format
+msgid "%s: Can not read input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+msgid "Simulation of an ARMAX process:"
+msgstr "Simulación de un proceso ARMAX:"
+
+msgid "Identification ARX (least square):"
+msgstr ""
+
+msgid "Simulation of an ARMAX process: "
+msgstr "Simulación de un proceso ARMAX: "
+
+msgid "Identification ARX (least square): "
+msgstr ""
+
+msgid "Arma Spectral power estimation:"
+msgstr "Arma estimación espectral de potencia:"
+
+msgid "Arma identification"
+msgstr "Identificación Arma"
+
+msgid "Theoretical value"
+msgstr "Valor teórico"
+
+msgid "Using macro mese"
+msgstr "Usando un macro mese"
+
+msgid "Spectral power"
+msgstr "Potencia del espectro"
+
+msgid "frequency"
+msgstr "frecuencia"
+
+msgid "spectral estimate"
+msgstr "espectro estimado"
+
+msgid "Press Return to continue ... \n"
+msgstr "Presione Enter para continuar... \n"
+
+msgid "filtered signal"
+msgstr ""
+
+msgid "given noisy signal"
+msgstr ""
+
+msgid "Signal"
+msgstr ""
+
+msgid "2 points convolution"
+msgstr ""
+
+msgid "3 points convolution"
+msgstr ""
+
+msgid "Signal derivative estimate"
+msgstr ""
+
+msgid "Choose filter type and parameters"
+msgstr ""
+
+msgid "Discrete IIR filter "
+msgstr ""
+
+msgid "Discrete IIR filter: low pass fr < 0.2"
+msgstr ""
+
+msgid "Discrete IIR filter: band pass 0.15 < fr < 0.25"
+msgstr ""
+
+msgid "Minimax FIR filter"
+msgstr "Filtro FIR Minimax"
+
+msgid "low pass cut-off in [.23,.27]"
+msgstr ""
+
+msgid "length 33"
+msgstr "largo 33"
+
+msgid "Remez Triangular filter"
+msgstr ""
+
+msgid "magnitude error"
+msgstr ""
+
+msgid "Signal Processing"
+msgstr "Procesamiento de Señales"
+
+msgid "Spectral Estimation"
+msgstr "Estimación espectral"
+
+msgid "IIR filter design"
+msgstr "Diseño de filtro IIR"
+
+msgid "Minimax FIR filter design"
+msgstr "Diseño de filtro FIR Minimax"
+
+msgid "Discrete IIR filter"
+msgstr "Filtro IIR discreto"
+
+msgid "Wiener filter"
+msgstr ""
+
+msgid "Bode plots"
+msgstr "Diagramas de Bode"
+
+msgid "Window FIR filters"
+msgstr "Filtros FIR Ventana"
+
+msgid "1-D convolution"
+msgstr ""
+
+msgid "2-D convolution"
+msgstr ""
+
+msgid "Arma simulation and identification"
+msgstr "Arma de simulación e identificación"
+
+msgid "Arma, bidimensional version"
+msgstr "Arma, versión bidimensional"
+
+msgid "Arma, Spectral power estimation"
+msgstr "Arma estimación espectral de potencia:"
+
+msgid "Data spectrum"
+msgstr ""
+
+msgid "magnitude"
+msgstr ""
+
+msgid "Spectral estimation"
+msgstr ""
+
+msgid "spectral power"
+msgstr ""
+
+msgid "estimates xf"
+msgstr "xf estimado"
+
+msgid "estimates xs"
+msgstr "xs estimado"
+
+msgid "real state"
+msgstr "estado real"
+
+msgid "Windowed FIR Low pass Filter"
+msgstr ""
+
+msgid "Kaiser window, cut-off: 0.2"
+msgstr ""
+
+msgid "Hamming window, cut-off: 0.2, 0.3"
+msgstr ""
+
+msgid "length 127"
+msgstr ""
+
+msgid "Windowed FIR Band pass Filter"
+msgstr ""
+
+msgid "Chebyshev window, cut-off: 0.15, 0.35"
+msgstr ""
+
+msgid "length 55"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"
+msgstr ""
+"%s: Valor incorrecto del argumento de entrada #%d: Debe estar en el conjunto "
+"{%s}.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Array of floating point numbers "
+"expected.\n"
+msgstr ""
+"%s: Tipo incorrecto del argumento de entrada #%d: Se esperaba un arreglo de "
+"números de punto flotante.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A scalar expected.\n"
+msgstr ""
+"%s: Tamaño incorrecto del argumento de entrada #%d: Se esperaba un escalar.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n"
+msgstr ""
+"%s: Tamaño incorrecto del argumento de entrada #%d: Se esperaba un "
+"polinomio.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: degree must be in the set {%s}.\n"
+msgstr ""
+"%s: Valores incorrectos del argumento de entrada #%d: el grado debe estar en "
+"el conjunto {%s}.\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same degree expected.\n"
+msgstr ""
+"%s: Argumentos de entrada incompatibles #%d y #%d: Se los esperaba del mismo "
+"grado.\n"
+
+#, c-format
+msgid "%s: Input argument #%d must be real.\n"
+msgstr "%s: El argumento de entrada #%d debe ser real.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Elements must be positive.\n"
+msgstr ""
+"%s: Valores incorrectos del argumento de entrada #%d: Los elementos deben "
+"ser positivos.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Distance between Max and Min "
+"elements must be greater than %g.\n"
+msgstr ""
+"%s: Valores incorrectos del argumento de entrada #%d: La distancia entre "
+"elementos Máx y Mín debe ser mayor que %g.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Same numbers of elements "
+"expected.\n"
+msgstr ""
+"%s: Argumentos de entrada incompatibles #%d y #%d: Se esperaban con el mismo "
+"número de elementos.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Not sampled high enough.\n"
+msgstr ""
+"%s: Valores incorrectos del argumento de entrada #%d: No es lo "
+"suficientemente alto.\n"
+
+#, c-format
+msgid "%s: Wrong size for argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Arguments #%d and #%d must have the same sizes.\n"
+msgstr "%s: Los argumentos #%d y #%d deben tener el mismo tamaño.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d to %d expected.\n"
+msgstr ""
+"%s: Número incorrecto de argumentos de entrada: Se esperaban de %d a %d.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d or %d expected.\n"
+msgstr ""
+"%s: Número incorrecto de argumentos de entrada: Se esperaban %d ó %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix "
+"or two polynomials expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: First element must not be %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Filter order too small.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A single input, single output system "
+"expected.\n"
+msgstr ""
+"%s: Tamaño incorrecto del argumento de entrada #%d: Se esperaba un sistema "
+"de entrada/salida simple.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Linear dynamical system or row "
+"vector of floats expected.\n"
+msgstr ""
+"%s: tipo incorrecto de argumento del entrada #%d: Se esperaba un sistema "
+"lineal dinámico o un vector fila de decimales.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d or %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A real or polynomial matrix or a "
+"rational expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A discrete system expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d expected.\n"
+msgstr "%s: Número incorrecto de argumentos de entrada: Se esperaban %d.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s: Tipo incorrecto del argumento de entrada #%d: Se esperaba un entero "
+"positivo.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Unsupported '%s' type.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input arguments: Incompatible sizes.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: An odd integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Array of double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of output arguments: %d or %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Non-negative integers expected.\n"
+msgstr ""
+"%s: Valores incorrectos de argumentos de entrada #%d: Se esperaban enteros "
+"positivos.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in the interval "
+"[%s, %s].\n"
+msgstr ""
+"%s: Valor incorrecto de argumento del entrada #%d: Los elementos deben estar "
+"en el intervalo [%s, %s].\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A tall matrix expected.\n"
+msgstr ""
+"%s: Tamaño incorrecto del argumento de entrada #%d: Se esperaba una matriz.\n"
+
+#, c-format
+msgid "%s: Wrong values for input arguments #%d and #%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Argument #%d expected to be "
+"less than argument #%d.\n"
+msgstr ""
+"%s: Argumentos de entrada incompatibles #%d y #%d: Se esperaba que el "
+"argumento #%d sea menor que el argumento #%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: Must be in the interval [%s, %s].\n"
+msgstr ""
+"%s: Valor incorrecto del argumento de entrada #%d: Debe estar en el "
+"intervalo [%s, %s].\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"
+msgstr ""
+"%s: Argumentos de entrada #%d y #%d incompatibles: Se los esperaba del mismo "
+"tamaño.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s).\n"
+msgstr "%s: Número incorrecto de argumento(s) de entrada.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: rational fraction array expected.\n"
+msgstr ""
+"%s: Tipo incorrecto del argumento de entrada #%d: Se esperaba un arreglo de "
+"fracciones racionales.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d elements array expected.\n"
+msgstr ""
+"%s: Tamaño incorrecto del argumento de entrada #%d: Se esperaba un arreglo "
+"de %d elementos.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be odd.\n"
+msgstr ""
+"%s: Valor incorrecto para el argumento de entrada #%d: Debe ser impar.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+"%s: Tipo incorrecto para el argumento de entrada #%d: Se esperaba un vector "
+"real %d-por-%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+"%s: Tamaño incorrecto para el argumento de entrada #%d: Se esperaba un "
+"vector real %d-por-%d.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the interval %s.\n"
+msgstr ""
+"%s: Valor incorrecto para el argumento de entrada #%d: Debe pertenecer al "
+"intervalo %s.\n"
+
+#, c-format
+msgid "%s: Elements of %dth argument must be in increasing order.\n"
+msgstr ""
+"%s: Los elementos del argumento (%d) deben estar en orden creciente.\n"
+
+msgid "&File"
+msgstr ""
+
+msgid "&Tools"
+msgstr ""
+
+msgid "&Edit"
+msgstr ""
+
+msgid "&?"
+msgstr ""
+
+msgid "WFIR settings"
+msgstr ""
+
+msgid "Filter type"
+msgstr ""
+
+msgid "Band pass"
+msgstr ""
+
+msgid "High pass"
+msgstr ""
+
+msgid "Low pass"
+msgstr ""
+
+msgid "Stop Band"
+msgstr ""
+
+msgid "Window type"
+msgstr ""
+
+msgid "Hanning"
+msgstr ""
+
+msgid "Rectangular"
+msgstr "Rectangular"
+
+msgid "Triangular"
+msgstr "Triangular"
+
+msgid "Chebychev main lobe"
+msgstr ""
+
+msgid "Chebychev side lobe"
+msgstr ""
+
+msgid "Hamming"
+msgstr "Hamming"
+
+msgid "Kaiser"
+msgstr "Kaiser"
+
+msgid "Sampling Frequency (Hz)"
+msgstr ""
+
+msgid "Filter Order"
+msgstr ""
+
+msgid "Low cutoff frequency (Hz)"
+msgstr ""
+
+msgid "High cutoff frequency (Hz)"
+msgstr ""
+
+msgid "Parameter"
+msgstr ""
+
+msgid "View"
+msgstr ""
+
+msgid "Ok"
+msgstr ""
+
+msgid "Cancel"
+msgstr ""
+
+msgid "Help"
+msgstr ""
+
+msgid "Window main lobe width"
+msgstr ""
+
+msgid "maximum side-lobe height"
+msgstr ""
+
+msgid "frequency (Hz)"
+msgstr ""
+
+msgid "Magnitude (dB)"
+msgstr ""
+
+#, c-format
+msgid "%s: Input argument #%d must be strictly positive.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: incorrect element #%d\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real or complex vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: an integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for argument #%d: the expected value must be greater than "
+"%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: The first element must be %s and "
+"the last %s.\n"
+msgstr ""
+"%s: Valores incorrectos para el argumento de entrada #%d: El primer elemento "
+"debe ser %s y el último %s.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in increasing "
+"order.\n"
+msgstr ""
+"%s: Valores incorrectos para el argumento de entrada #%d: Los elementos "
+"deben estar en orden creciente.\n"
+
+#, c-format
+msgid "%s: Too abrupt change near end of frequency range.\n"
+msgstr "%s: Cambio muy abrupto cerca del final del rango de frecuencia.\n"
diff --git a/modules/signal_processing/locales/fr_FR.po b/modules/signal_processing/locales/fr_FR.po
new file mode 100755
index 000000000..2e3ccbdba
--- /dev/null
+++ b/modules/signal_processing/locales/fr_FR.po
@@ -0,0 +1,655 @@
+# French translation for scilab
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2014-09-29 08:25+0000\n"
+"Last-Translator: Vincent Couvert <Unknown>\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: fr\n"
+
+#, c-format
+msgid "%s: Can not read input argument #%d.\n"
+msgstr "%s : Impossible de lire l'argument d'entrée n°%d.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : '%s' ou '%s' attendu.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real vector expected.\n"
+msgstr "%s : Type erroné de l'argument n°%d : Un vecteur réel attendu.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex vector expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument n°%d : Un vecteur réel ou complexe attendu.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument %d : Une matrice réelle ou complexe "
+"attendue.\n"
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr "%s : Erreur d'allocation mémoire.\n"
+
+msgid "Simulation of an ARMAX process:"
+msgstr "Simulation d'un processus ARMAX :"
+
+msgid "Identification ARX (least square):"
+msgstr "Identification ARX (moindres carrés) :"
+
+msgid "Simulation of an ARMAX process: "
+msgstr "Simulation d'un processus ARMAX : "
+
+msgid "Identification ARX (least square): "
+msgstr "Identification ARX (moindres carrés) : "
+
+msgid "Arma Spectral power estimation:"
+msgstr "Estimation de la densité spectrale d'énergie d'Arma :"
+
+msgid "Arma identification"
+msgstr "Identification d'Arma"
+
+msgid "Theoretical value"
+msgstr "Valeur théorique"
+
+msgid "Using macro mese"
+msgstr "Utiliser la macro mese"
+
+msgid "Spectral power"
+msgstr "Énergie spectrale"
+
+msgid "frequency"
+msgstr "Fréquence"
+
+msgid "spectral estimate"
+msgstr "Estimation spectrale"
+
+msgid "Press Return to continue ... \n"
+msgstr "Pressez sur la touche Retour pour continuer... \n"
+
+msgid "filtered signal"
+msgstr "Signal filtré"
+
+msgid "given noisy signal"
+msgstr "Signal bruité donné"
+
+msgid "Signal"
+msgstr "Signal"
+
+msgid "2 points convolution"
+msgstr "Convolution 2 points"
+
+msgid "3 points convolution"
+msgstr "Convolution 3 points"
+
+msgid "Signal derivative estimate"
+msgstr "Estimation de la dérivée du signal"
+
+msgid "Choose filter type and parameters"
+msgstr "Choisir le type et les paramètres du filtre"
+
+msgid "Discrete IIR filter "
+msgstr "Filtre RII discret "
+
+msgid "Discrete IIR filter: low pass fr < 0.2"
+msgstr "Filtre RII discret : passe-bas fr < 0.2"
+
+msgid "Discrete IIR filter: band pass 0.15 < fr < 0.25"
+msgstr "Filtre RII discret : passe-bande 0.15 < fr < 0.25"
+
+msgid "Minimax FIR filter"
+msgstr "Filtres RIF minimax"
+
+msgid "low pass cut-off in [.23,.27]"
+msgstr "Fréquence de coupure dans l'intervalle [.23,.27]"
+
+msgid "length 33"
+msgstr "Longueur 33"
+
+msgid "Remez Triangular filter"
+msgstr "Filtre triangulaire de Remez"
+
+msgid "magnitude error"
+msgstr "Erreur d'amplitude"
+
+msgid "Signal Processing"
+msgstr "Traitement du signal"
+
+msgid "Spectral Estimation"
+msgstr "Estimation spectrale"
+
+msgid "IIR filter design"
+msgstr "Conception de filtres RII"
+
+msgid "Minimax FIR filter design"
+msgstr "Conception de filtres RIF minimax"
+
+msgid "Discrete IIR filter"
+msgstr "Filtres RII discrets"
+
+msgid "Wiener filter"
+msgstr "Filtre de Wiener"
+
+msgid "Bode plots"
+msgstr "Diagrammes de Bode"
+
+msgid "Window FIR filters"
+msgstr "Filtres RIF avec fenêtre"
+
+msgid "1-D convolution"
+msgstr "Convolution 1D"
+
+msgid "2-D convolution"
+msgstr "Convolution 2D"
+
+msgid "Arma simulation and identification"
+msgstr "Simulation et identification d'Arma :"
+
+msgid "Arma, bidimensional version"
+msgstr "Arma, version bidimensionnelle"
+
+msgid "Arma, Spectral power estimation"
+msgstr "Arma, Estimation de la densité spectrale d'énergie :"
+
+msgid "Data spectrum"
+msgstr "Spectre de données"
+
+msgid "magnitude"
+msgstr "Amplitude"
+
+msgid "Spectral estimation"
+msgstr "Estimation spectrale"
+
+msgid "spectral power"
+msgstr "Puissance spectrale"
+
+msgid "estimates xf"
+msgstr "Estime xf"
+
+msgid "estimates xs"
+msgstr "Estime xs"
+
+msgid "real state"
+msgstr "état réel"
+
+msgid "Windowed FIR Low pass Filter"
+msgstr "Filtre passe-bas RIF avec fenêtre"
+
+msgid "Kaiser window, cut-off: 0.2"
+msgstr "Fenêtre de Kaiser, fréquence de coupure : 0.2"
+
+msgid "Hamming window, cut-off: 0.2, 0.3"
+msgstr "Fenêtre de Hamming, fréquences de coupure : 0.2, 0.3"
+
+msgid "length 127"
+msgstr "Longueur 127"
+
+msgid "Windowed FIR Band pass Filter"
+msgstr "Filtre passe-bande RIF avec fenêtre"
+
+msgid "Chebyshev window, cut-off: 0.15, 0.35"
+msgstr "Fenêtre de Chebyshev, fréquences de coupure : 0.15, 0.35"
+
+msgid "length 55"
+msgstr "Longueur 55"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : Doit être dans l'ensemble "
+"{%s}.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Array of floating point numbers "
+"expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Un tableau de nombres "
+"flottants attendu.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A scalar expected.\n"
+msgstr ""
+"%s : Dimension erronée de l'argument d'entrée n°%d : Un scalaire attendu.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n"
+msgstr ""
+"%s : Dimension erronée de l'argument d'entrée n°%d : Un polynôme attendu.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: degree must be in the set {%s}.\n"
+msgstr ""
+"%s : Valeurs erronées de l'argument d'entrée n°%d : Le degré doit être dans "
+"l'ensemble {%s}.\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same degree expected.\n"
+msgstr ""
+"%s : Les arguments d'entrée n°%d et n°%d sont incompatibles : Ils doivent "
+"avoir le même degré.\n"
+
+#, c-format
+msgid "%s: Input argument #%d must be real.\n"
+msgstr "%s : L'argument d'entrée n°%d doit être réel.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Elements must be positive.\n"
+msgstr ""
+"%s : Valeurs erronées de l'argument d'entrée n°%d : Les éléments doivent "
+"être positifs.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Distance between Max and Min "
+"elements must be greater than %g.\n"
+msgstr ""
+"%s : Valeurs erronées de l'argument d'entrée n°%d : La distance entre le "
+"plus grand et le plus petit élement doit être plus grande que %g.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Same numbers of elements "
+"expected.\n"
+msgstr ""
+"%s : Arguments d'entrée n°%d et n°%d incompatibles : Mêmes nombres "
+"d'éléments attendus.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Not sampled high enough.\n"
+msgstr ""
+"%s : Valeurs erronées de l'argument d'entrée n°%d : L'échantillonnage n'est "
+"pas assez fin.\n"
+
+#, c-format
+msgid "%s: Wrong size for argument #%d: Vector expected.\n"
+msgstr "%s : Dimension erronée de l'argument n°%d : Un vecteur attendu.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : %s ou %s attendu.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d expected.\n"
+msgstr "%s : Nombre erroné d'arguments d'entrée : %d attendus.\n"
+
+#, c-format
+msgid "%s: Arguments #%d and #%d must have the same sizes.\n"
+msgstr ""
+"%s : Les arguments n°%d et n°%d doivent avoir les mêmes dimensions.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d to %d expected.\n"
+msgstr "%s : Nombre erroné d'arguments d'entrée : %d à %d attendus.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d or %d expected.\n"
+msgstr "%s : Nombre erroné d'arguments d'entrée : %d ou %d attendus.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Une matrice réelle ou un "
+"polynôme attendu.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Une matrice réelle attendue.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Vector expected.\n"
+msgstr ""
+"%s : Dimension erronée de l'argument d'entrée n°%d : Un vecteur attendu.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix "
+"or two polynomials expected.\n"
+msgstr ""
+"%s : Arguments d'entrée n°%d et n°%d incompatibles : un polynôme et une "
+"matrice 1-par-1 ou deux polynômes attendus.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: First element must not be %s.\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : Le premier élément ne doit "
+"pas être %s.\n"
+
+#, c-format
+msgid "%s: Filter order too small.\n"
+msgstr "%s: Ordre du filtre trop faible.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A single input, single output system "
+"expected.\n"
+msgstr ""
+"%s : Dimension erronée de l'argument d'entrée n°%d : Un système mono-entrée, "
+"mono-sortie est attendu.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Linear dynamical system or row "
+"vector of floats expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Un système dynamique linéaire "
+"ou un vecteur de flottants attendu.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d or %d expected.\n"
+msgstr "%s : Nombre erroné d'argument(s) d'entrée : %d ou %d attendu(s).\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A real or polynomial matrix or a "
+"rational expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Une matrices de réels, de "
+"polynômes ou de fonctions rationnelles attendue.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A discrete system expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Un système discret attendu.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d expected.\n"
+msgstr "%s : Nombre erroné d'argument(s) d'entrée : %d attendu(s).\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Un entier positif attendu.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s : Dimension erronée de l'argument d'entrée n°%d : Un entier positif "
+"attendu.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : Un entier positif "
+"attendu.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Unsupported '%s' type.\n"
+msgstr ""
+"%s : Valeurs erronées de l'argument d'entrée n°%d : Type '%s' non supporté.\n"
+
+#, c-format
+msgid "%s: Wrong size for input arguments: Incompatible sizes.\n"
+msgstr ""
+"%s : Dimension erronée des arguments d'entrée : Dimensions incompatibles.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: An odd integer expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Un entier impair attendu.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Array of double expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Un tableau de double "
+"attendu.\n"
+
+#, c-format
+msgid "%s: Wrong number of output arguments: %d or %d expected.\n"
+msgstr "%s : Nombre erroné d'arguments de sortie : %d ou %d attendus.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Non-negative integers expected.\n"
+msgstr ""
+"%s : Valeurs erronées de l'argument d'entrée n°%d : Un entier positif "
+"attendu.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in the interval "
+"[%s, %s].\n"
+msgstr ""
+"%s : Valeurs erronées de l'argument d'entrée n°%d : Les éléments doivent "
+"être dans l'intervalle [%s, %s].\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A tall matrix expected.\n"
+msgstr ""
+"%s : Dimension erronée de l'argument d'entrée n°%d : Le nombre de lignes "
+"doit être >= au nombre de colonnes.\n"
+
+#, c-format
+msgid "%s: Wrong values for input arguments #%d and #%d.\n"
+msgstr "%s : Valeurs erronées des arguments d'entrée n°%d et n°%d.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Argument #%d expected to be "
+"less than argument #%d.\n"
+msgstr ""
+"%s : Les arguments d'entrée n°%d et n°%d sont incompatibles : L'argument "
+"n°%d doit être plus petit que l'argument n°%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: Must be in the interval [%s, %s].\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : Doit être dans "
+"l'intervalle [%s, %s].\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"
+msgstr ""
+"%s : Arguments d'entrée n°%d et n°%d incompatibles : Mêmes dimensions "
+"attendues.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s).\n"
+msgstr "%s : Nombre erroné d'argument(s) d'entrée.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: rational fraction array expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Un tableau de fraction "
+"rationnelle attendu.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d elements array expected.\n"
+msgstr ""
+"%s : Dimension erronée de l'argument d'entrée n°%d : Un tableau de %d "
+"éléments attendu.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be odd.\n"
+msgstr ""
+"%s : Valeur erronée pour l'argument d'entrée n°%d : Doit être impair.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Un vecteur réel %d par %d "
+"attendu.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+"%s : Dimension erronée de l'argument d'entrée n°%d : Un vecteur réel %d par "
+"%d attendu.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the interval %s.\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : Doit être dans "
+"l'intervalle %s.\n"
+
+#, c-format
+msgid "%s: Elements of %dth argument must be in increasing order.\n"
+msgstr ""
+"%s : Les éléments du %dième argument doivent être dans l'ordre croissant.\n"
+
+msgid "&File"
+msgstr "&Fichier"
+
+msgid "&Tools"
+msgstr "&Outils"
+
+msgid "&Edit"
+msgstr "&Édition"
+
+msgid "&?"
+msgstr "&?"
+
+msgid "WFIR settings"
+msgstr "Paramètres WFIR"
+
+msgid "Filter type"
+msgstr "Type de filtre"
+
+msgid "Band pass"
+msgstr "Passe bande"
+
+msgid "High pass"
+msgstr "Passe haut"
+
+msgid "Low pass"
+msgstr "Passe bas"
+
+msgid "Stop Band"
+msgstr "Coupe bande"
+
+msgid "Window type"
+msgstr "Type de fenêtre"
+
+msgid "Hanning"
+msgstr "Hanning"
+
+msgid "Rectangular"
+msgstr "Rectangulaire"
+
+msgid "Triangular"
+msgstr "Triangulaire"
+
+msgid "Chebychev main lobe"
+msgstr "Lobe principal Chebychev"
+
+msgid "Chebychev side lobe"
+msgstr "Lobe latéral Chebychev"
+
+msgid "Hamming"
+msgstr "Hamming"
+
+msgid "Kaiser"
+msgstr "Kaiser"
+
+msgid "Sampling Frequency (Hz)"
+msgstr "Fréquence d'échantillonnage (Hz)"
+
+msgid "Filter Order"
+msgstr "Ordre du filtre"
+
+msgid "Low cutoff frequency (Hz)"
+msgstr "Fréquence de coupure basse (Hz)"
+
+msgid "High cutoff frequency (Hz)"
+msgstr "Fréquence de coupure haute (Hz)"
+
+msgid "Parameter"
+msgstr "Paramètre"
+
+msgid "View"
+msgstr "Affichage"
+
+msgid "Ok"
+msgstr "Ok"
+
+msgid "Cancel"
+msgstr "Annuler"
+
+msgid "Help"
+msgstr "Aide"
+
+msgid "Window main lobe width"
+msgstr "Largeur du lobe principal de la fenêtre"
+
+msgid "maximum side-lobe height"
+msgstr "Hauteur maximale du lobe latéral"
+
+msgid "frequency (Hz)"
+msgstr "Fréquence (Hz)"
+
+msgid "Magnitude (dB)"
+msgstr "Amplitude (dB)"
+
+#, c-format
+msgid "%s: Input argument #%d must be strictly positive.\n"
+msgstr "%s : L'argument d'entrée n°%d doit être strictement positif.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: incorrect element #%d\n"
+msgstr ""
+"%s : Valeur erronée de l'argument d'entrée n°%d : Élément incorrect n°%d\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real or complex vector expected.\n"
+msgstr ""
+"%s : Type erroné de l'argument d'entrée n°%d : Un vecteur réel ou complexe "
+"attendu.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: an integer expected.\n"
+msgstr "%s : Type erroné de l'argument n°%d : Un entier attendu.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for argument #%d: the expected value must be greater than "
+"%d.\n"
+msgstr ""
+"%s : Valeur erronée de l'argument n°%d : La valeur attendue doit être plus "
+"grande que %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: The first element must be %s and "
+"the last %s.\n"
+msgstr ""
+"%s : Valeurs erronées de l'argument d'entrée n°%d : Le premier élement doit "
+"être %s et le dernier %s.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in increasing "
+"order.\n"
+msgstr ""
+"%s : Valeurs erronées de l'argument d'entrée n°%d : Les éléments doivent "
+"être en ordre croissant.\n"
+
+#, c-format
+msgid "%s: Too abrupt change near end of frequency range.\n"
+msgstr ""
+"%s : Changement trop brusque près de la fin de la bande de fréquence.\n"
diff --git a/modules/signal_processing/locales/it_IT.po b/modules/signal_processing/locales/it_IT.po
new file mode 100755
index 000000000..227a61633
--- /dev/null
+++ b/modules/signal_processing/locales/it_IT.po
@@ -0,0 +1,663 @@
+# Italian translation for scilab
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2015-02-18 07:44+0000\n"
+"Last-Translator: Carml <mighty.carml@gmail.com>\n"
+"Language-Team: Italian <it@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: it\n"
+
+#, c-format
+msgid "%s: Can not read input argument #%d.\n"
+msgstr "%s: Impossibile leggere l'argomento in ingresso #%d.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha un valore sbagliato: era atteso \"%s\" o "
+"\"%s\".\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real vector expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un vettore "
+"reale.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex vector expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un vettore "
+"reale o complesso.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era attesa una matrice "
+"reale o complessa.\n"
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr "%s: Errore di allocazione della memoria.\n"
+
+msgid "Simulation of an ARMAX process:"
+msgstr "Simulazione di un processo ARMAX:"
+
+msgid "Identification ARX (least square):"
+msgstr "Identificazione di ARX (minimi quadrati)"
+
+msgid "Simulation of an ARMAX process: "
+msgstr "Simulazione di un processo ARMAX: "
+
+msgid "Identification ARX (least square): "
+msgstr "Identificazione di ARX (minimi quadrati) "
+
+msgid "Arma Spectral power estimation:"
+msgstr "Stima dell'energia spettrale Arma"
+
+msgid "Arma identification"
+msgstr "Identificazione dello Arma"
+
+msgid "Theoretical value"
+msgstr "Valore teorico"
+
+msgid "Using macro mese"
+msgstr "Usando la macro MESE"
+
+msgid "Spectral power"
+msgstr "Energia spettrale"
+
+msgid "frequency"
+msgstr "frequenza"
+
+msgid "spectral estimate"
+msgstr "valutazione spettrale"
+
+msgid "Press Return to continue ... \n"
+msgstr "Premere invio per continuare ... \n"
+
+msgid "filtered signal"
+msgstr "segnale filtrato"
+
+msgid "given noisy signal"
+msgstr "fornito un segnale rumoroso"
+
+msgid "Signal"
+msgstr "Segnale"
+
+msgid "2 points convolution"
+msgstr "convoluzione a 2 punti"
+
+msgid "3 points convolution"
+msgstr "convoluzione a 3 punti"
+
+msgid "Signal derivative estimate"
+msgstr ""
+
+msgid "Choose filter type and parameters"
+msgstr ""
+
+msgid "Discrete IIR filter "
+msgstr ""
+
+msgid "Discrete IIR filter: low pass fr < 0.2"
+msgstr ""
+
+msgid "Discrete IIR filter: band pass 0.15 < fr < 0.25"
+msgstr ""
+
+msgid "Minimax FIR filter"
+msgstr "Filtro FIR minimax"
+
+msgid "low pass cut-off in [.23,.27]"
+msgstr "valore di soglia del passabasso in [.23,.27]"
+
+msgid "length 33"
+msgstr "lunghezza 33"
+
+msgid "Remez Triangular filter"
+msgstr ""
+
+msgid "magnitude error"
+msgstr ""
+
+msgid "Signal Processing"
+msgstr "Elaborazione dei segnali"
+
+msgid "Spectral Estimation"
+msgstr "Stima spettrale"
+
+msgid "IIR filter design"
+msgstr "Disegno di un filtro IIR"
+
+msgid "Minimax FIR filter design"
+msgstr "Disegno di un filtro FIR minimax"
+
+msgid "Discrete IIR filter"
+msgstr "Filtro IIR discreto"
+
+msgid "Wiener filter"
+msgstr ""
+
+msgid "Bode plots"
+msgstr "Diagrammi di Bode"
+
+msgid "Window FIR filters"
+msgstr "Filtri FIR window"
+
+msgid "1-D convolution"
+msgstr "convoluzione 1-D"
+
+msgid "2-D convolution"
+msgstr "convoluzione 2-D"
+
+msgid "Arma simulation and identification"
+msgstr "Simulazione e identificazione con ARMA"
+
+msgid "Arma, bidimensional version"
+msgstr "ARMA, versione bidimensionale"
+
+msgid "Arma, Spectral power estimation"
+msgstr "Arma, stima dell'energia spettrale"
+
+msgid "Data spectrum"
+msgstr ""
+
+msgid "magnitude"
+msgstr ""
+
+msgid "Spectral estimation"
+msgstr ""
+
+msgid "spectral power"
+msgstr ""
+
+msgid "estimates xf"
+msgstr "stime xf"
+
+msgid "estimates xs"
+msgstr "stima xs"
+
+msgid "real state"
+msgstr "stato reale"
+
+msgid "Windowed FIR Low pass Filter"
+msgstr ""
+
+msgid "Kaiser window, cut-off: 0.2"
+msgstr ""
+
+msgid "Hamming window, cut-off: 0.2, 0.3"
+msgstr ""
+
+msgid "length 127"
+msgstr ""
+
+msgid "Windowed FIR Band pass Filter"
+msgstr ""
+
+msgid "Chebyshev window, cut-off: 0.15, 0.35"
+msgstr ""
+
+msgid "length 55"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha un valore sbagliato: deve essere "
+"nell'insieme {%s}.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Array of floating point numbers "
+"expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un array di "
+"numeri a virgola mobile.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A scalar expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso uno "
+"scalare.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso un "
+"polinomio.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: degree must be in the set {%s}.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha dei valori sbagliati: il grado deve "
+"essere nell'insieme {%s}.\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same degree expected.\n"
+msgstr ""
+"%s: Gli argomenti in ingresso #%d e #%d sono incompatibili: era atteso lo "
+"stesso grado.\n"
+
+#, c-format
+msgid "%s: Input argument #%d must be real.\n"
+msgstr "%s: L'argomento in ingresso #%d deve essere reale.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Elements must be positive.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha dei valori sbagliati: gli elementi devono "
+"essere positivi.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Distance between Max and Min "
+"elements must be greater than %g.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha dei valori sbagliati: la distanza tra gli "
+"elementi Max e Min deve essere maggiore di %g.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Same numbers of elements "
+"expected.\n"
+msgstr ""
+"%s: Gli argomenti in ingresso #%d e #%d sono incompatibili: era atteso lo "
+"stesso numero di elementi.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Not sampled high enough.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d a dei valori sbagliati: non è stato "
+"campionato alto a sufficienza.\n"
+
+#, c-format
+msgid "%s: Wrong size for argument #%d: Vector expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso un "
+"vettore.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha un valore sbagliato: era atteso %s o %s.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d expected.\n"
+msgstr ""
+"%s: Il numero degli argomenti in ingresso è sbagliato: ne erano attesi %d.\n"
+
+#, c-format
+msgid "%s: Arguments #%d and #%d must have the same sizes.\n"
+msgstr "%s: Gli argomenti #%d e #%d devono avere le stesse dimensioni.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d to %d expected.\n"
+msgstr ""
+"%s: Il numero degli argomenti in ingresso è sbagliato: era atteso da %d a "
+"%d.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d or %d expected.\n"
+msgstr ""
+"%s: Il numero degli argomenti in ingresso è sbagliato: ne erano attesi %d o "
+"%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix "
+"or two polynomials expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: First element must not be %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Filter order too small.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A single input, single output system "
+"expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso un "
+"sistema con input e output singoli.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Linear dynamical system or row "
+"vector of floats expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un sistema "
+"dinamico lineare o un vettore riga di numeri con la virgola.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d or %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A real or polynomial matrix or a "
+"rational expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A discrete system expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d expected.\n"
+msgstr ""
+"%s: Il numero degli argomenti in ingresso è sbagliato: ne erano attesi %d.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un intero "
+"positivo.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso un "
+"intero positivo.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha un valore sbagliato: era atteso un intero "
+"positivo.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Unsupported '%s' type.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha dei valori sbagliati: il tipo '%s' non è "
+"supportato.\n"
+
+#, c-format
+msgid "%s: Wrong size for input arguments: Incompatible sizes.\n"
+msgstr ""
+"%s: La grandezza degli argomenti in ingresso è sbagliata: le grandezze non "
+"sono compatibili.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: An odd integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Array of double expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un array di "
+"double.\n"
+
+#, c-format
+msgid "%s: Wrong number of output arguments: %d or %d expected.\n"
+msgstr ""
+"%s: Il numero di argomenti in uscita è sbagliato: era atteso %d o %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Non-negative integers expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha dei valori sbagliati: erano attesi degli "
+"interi non-negativi.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in the interval "
+"[%s, %s].\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha dei valori sbagliati: gli elementi devono "
+"essere nell'intervallo [%s, %s].\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A tall matrix expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era attesa una "
+"matrice alta.\n"
+
+#, c-format
+msgid "%s: Wrong values for input arguments #%d and #%d.\n"
+msgstr "%s: Gli argomenti in ingresso #%d e #%d hanno un valore sbagliato.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Argument #%d expected to be "
+"less than argument #%d.\n"
+msgstr ""
+"%s: Gli 'argomenti in ingresso #%d e #%d sono incompatibili: era atteso che "
+"l'argomento #%d fosse minore dell'argomento #%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: Must be in the interval [%s, %s].\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha un valore sbagliato: deve essere "
+"nell'intervallo [%s, %s].\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"
+msgstr ""
+"%s: Gli argomenti in ingresso #%d e #%d sono incompatibili: erano attese le "
+"stesse dimensioni.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s).\n"
+msgstr "%s: Il numero degli argomenti in ingresso è sbagliato.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: rational fraction array expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un array di "
+"tipo frazionario razionale.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d elements array expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso un "
+"aray con %d elementi.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be odd.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha un valore sbagliato: deve essere "
+"dispari.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un vettore "
+"reale %d-per-%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso un "
+"vettore reale %d-per-%d.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the interval %s.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha un valore sbagliato: deve essere "
+"nell'intervallo %s.\n"
+
+#, c-format
+msgid "%s: Elements of %dth argument must be in increasing order.\n"
+msgstr ""
+"%s: Gli elementi del %d° argomento devono essere in ordine crescente.\n"
+
+msgid "&File"
+msgstr "&File"
+
+msgid "&Tools"
+msgstr "&Strumenti"
+
+msgid "&Edit"
+msgstr "&Modifica"
+
+msgid "&?"
+msgstr "&?"
+
+msgid "WFIR settings"
+msgstr "Impostazioni di WFIR"
+
+msgid "Filter type"
+msgstr "Tipo di filtro"
+
+msgid "Band pass"
+msgstr "Passa banda"
+
+msgid "High pass"
+msgstr "Passa alto"
+
+msgid "Low pass"
+msgstr "Passa basso"
+
+msgid "Stop Band"
+msgstr "Ferma banda"
+
+msgid "Window type"
+msgstr "Tipo di finestra"
+
+msgid "Hanning"
+msgstr "Hanning"
+
+msgid "Rectangular"
+msgstr "Rettangolare"
+
+msgid "Triangular"
+msgstr "Triangolare"
+
+msgid "Chebychev main lobe"
+msgstr "Lobo principale di Chebychev"
+
+msgid "Chebychev side lobe"
+msgstr "Lobo laterale di Chebychev"
+
+msgid "Hamming"
+msgstr "Hamming"
+
+msgid "Kaiser"
+msgstr "Kaiser"
+
+msgid "Sampling Frequency (Hz)"
+msgstr "Frequenza di campionamento (Hz)"
+
+msgid "Filter Order"
+msgstr "Ordine del filtro"
+
+msgid "Low cutoff frequency (Hz)"
+msgstr "Frequenza di taglio bassa (Hz)"
+
+msgid "High cutoff frequency (Hz)"
+msgstr "Frequenza di taglio alta (Hz)"
+
+msgid "Parameter"
+msgstr "Parametro"
+
+msgid "View"
+msgstr "Vista"
+
+msgid "Ok"
+msgstr "OK"
+
+msgid "Cancel"
+msgstr "Annulla"
+
+msgid "Help"
+msgstr "Aiuto"
+
+msgid "Window main lobe width"
+msgstr "Larghezza del lobo principale della finestra"
+
+msgid "maximum side-lobe height"
+msgstr "altezza massima del lobo laterale"
+
+msgid "frequency (Hz)"
+msgstr "frequenza (Hz)"
+
+msgid "Magnitude (dB)"
+msgstr "Ampiezza (dB)"
+
+#, c-format
+msgid "%s: Input argument #%d must be strictly positive.\n"
+msgstr "%s: L'argomento in ingresso #%d deve essere strettamente positivo.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: incorrect element #%d\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha un valore sbagliato: l'elemento #%d non è "
+"corretto.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real or complex vector expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un vettore "
+"reale o complesso.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: an integer expected.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un intero.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for argument #%d: the expected value must be greater than "
+"%d.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha un valore sbagliato: il valore atteso "
+"deve essere maggiore di %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: The first element must be %s and "
+"the last %s.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha dei valori sbagliati: il primo elemento "
+"deve essere %s e l'ultimo %s.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in increasing "
+"order.\n"
+msgstr ""
+"%s: L'argomento in ingresso #%d ha dei valori sbagliati: gli elementi devono "
+"essere in ordine crescente.\n"
+
+#, c-format
+msgid "%s: Too abrupt change near end of frequency range.\n"
+msgstr ""
+"%s: C'è un cambio troppo brusco vicino alla fine della gamma di frequenze.\n"
diff --git a/modules/signal_processing/locales/ja_JP.po b/modules/signal_processing/locales/ja_JP.po
new file mode 100755
index 000000000..36deb41ed
--- /dev/null
+++ b/modules/signal_processing/locales/ja_JP.po
@@ -0,0 +1,620 @@
+# Japanese translation for scilab
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2014-09-22 12:15+0000\n"
+"Last-Translator: Rui Hirokawa <Unknown>\n"
+"Language-Team: Japanese <z-saito@guitar.ocn.ne.jp>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"X-Poedit-Country: Japan\n"
+"Language: ja\n"
+"X-Poedit-Language: Japanese\n"
+
+#, c-format
+msgid "%s: Can not read input argument #%d.\n"
+msgstr "%s: 入力引数 #%d を読み込めません.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr "%s: 入力引数 #%d の値が間違っています: '%s' または '%s' を指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real vector expected.\n"
+msgstr "%s: 引数 #%d の型が間違っています: 実数ベクトルを指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex vector expected.\n"
+msgstr "%s: 引数 #%d の型が間違っています: 実数または複素数ベクトルを指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n"
+msgstr "%s: 引数 %d の型が間違っています: 実数または複素数の行列を指定してください.\n"
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr "%s: メモリ割当エラー.\n"
+
+msgid "Simulation of an ARMAX process:"
+msgstr "ARMAX過程のシミュレーション:"
+
+msgid "Identification ARX (least square):"
+msgstr "同定ARX (最小二乗):"
+
+msgid "Simulation of an ARMAX process: "
+msgstr "ARMAX過程のシミュレーション: "
+
+msgid "Identification ARX (least square): "
+msgstr "同定ARX (最小二乗): "
+
+msgid "Arma Spectral power estimation:"
+msgstr "ARMAスペクトルパワー推定"
+
+msgid "Arma identification"
+msgstr "ARMA同定"
+
+msgid "Theoretical value"
+msgstr "理論値"
+
+msgid "Using macro mese"
+msgstr "MESEマクロを使う"
+
+msgid "Spectral power"
+msgstr "パワースペクトル"
+
+msgid "frequency"
+msgstr "周波数"
+
+msgid "spectral estimate"
+msgstr "スペクトル推定法"
+
+msgid "Press Return to continue ... \n"
+msgstr "続けるにはリターンを入力してください ... \n"
+
+msgid "filtered signal"
+msgstr "フィルタ後の信号"
+
+msgid "given noisy signal"
+msgstr "指定したノイズ入り信号"
+
+msgid "Signal"
+msgstr "信号"
+
+msgid "2 points convolution"
+msgstr "2点畳み込み"
+
+msgid "3 points convolution"
+msgstr "3点畳み込み"
+
+msgid "Signal derivative estimate"
+msgstr "信号微分推定"
+
+msgid "Choose filter type and parameters"
+msgstr "フィルタ型よパラメータを選択してください"
+
+msgid "Discrete IIR filter "
+msgstr "離散IIRフィルタ "
+
+msgid "Discrete IIR filter: low pass fr < 0.2"
+msgstr "離散IRフィルタ: ローパス fr < 0.2"
+
+msgid "Discrete IIR filter: band pass 0.15 < fr < 0.25"
+msgstr "離散IIRフィルタ: バンドパス 0.15 < fr < 0.25"
+
+msgid "Minimax FIR filter"
+msgstr "ミニマックスFIRフィルタ"
+
+msgid "low pass cut-off in [.23,.27]"
+msgstr "範囲[.23,.27]にローパスカットオフ"
+
+msgid "length 33"
+msgstr "長さ33"
+
+msgid "Remez Triangular filter"
+msgstr "Remez 三角化フィルタ"
+
+msgid "magnitude error"
+msgstr "ゲイン誤差"
+
+msgid "Signal Processing"
+msgstr "信号処理"
+
+msgid "Spectral Estimation"
+msgstr "スペクトル推定"
+
+msgid "IIR filter design"
+msgstr "IIRフィルタ設計"
+
+msgid "Minimax FIR filter design"
+msgstr "ミニマックスFIRフィルタ設計"
+
+msgid "Discrete IIR filter"
+msgstr "離散IIRフィルタ"
+
+msgid "Wiener filter"
+msgstr "ウィナーフィルタ"
+
+msgid "Bode plots"
+msgstr "ボード線図"
+
+msgid "Window FIR filters"
+msgstr "ウインドウFIRフィルタ"
+
+msgid "1-D convolution"
+msgstr "1-D畳み込み"
+
+msgid "2-D convolution"
+msgstr "2-D畳み込み"
+
+msgid "Arma simulation and identification"
+msgstr "ARMAシミュレーションおよび同定"
+
+msgid "Arma, bidimensional version"
+msgstr "ARMA, 二次元版"
+
+msgid "Arma, Spectral power estimation"
+msgstr "ARMA, スペクトルパワー推定"
+
+msgid "Data spectrum"
+msgstr "データスペクトラム"
+
+msgid "magnitude"
+msgstr "ゲイン"
+
+msgid "Spectral estimation"
+msgstr "スペクトル推定"
+
+msgid "spectral power"
+msgstr "スペクトル強度"
+
+msgid "estimates xf"
+msgstr "推定 xf"
+
+msgid "estimates xs"
+msgstr "推定 xs"
+
+msgid "real state"
+msgstr "実状態"
+
+msgid "Windowed FIR Low pass Filter"
+msgstr "ウインドウ付FIRローパスフィルタ"
+
+msgid "Kaiser window, cut-off: 0.2"
+msgstr "カイザーウインドウ, カットオフ: 0.2"
+
+msgid "Hamming window, cut-off: 0.2, 0.3"
+msgstr "ハミングウインドウ, カットオフ: 0.2, 0.3"
+
+msgid "length 127"
+msgstr "長さ127"
+
+msgid "Windowed FIR Band pass Filter"
+msgstr "ウインドウ付FIRバンドパスフィルタ"
+
+msgid "Chebyshev window, cut-off: 0.15, 0.35"
+msgstr "チェビシェフウインドウ, カットオフ: 0.15, 0.35"
+
+msgid "length 55"
+msgstr "長さ55"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"
+msgstr "%s: 入力引数 #%d の値が正しくありません: 集合 {%s} に含まれる値を指定してください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Array of floating point numbers "
+"expected.\n"
+msgstr "%s: 入力引数 #%d の型が正しくありません: 浮動小数点数の配列を指定してください.\n"
+
+#
+# File: macros/bilt.sci, line: 34
+# File: macros/hilb.sci, line: 39
+# File: macros/iir.sci, line: 43
+# File: macros/lattn.sci, line: 53
+# File: macros/lattn.sci, line: 62
+# File: macros/trans.sci, line: 42
+# File: macros/trans.sci, line: 57
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A scalar expected.\n"
+msgstr "%s: 入力引数 #%d で不正なサイズ: スカラーを想定します。\n"
+
+#
+# File: macros/bilt.sci, line: 37
+# File: macros/bilt.sci, line: 40
+# File: macros/frmag.sci, line: 46
+# File: macros/frmag.sci, line: 58
+# File: macros/frmag.sci, line: 63
+# File: macros/frmag.sci, line: 67
+# File: macros/frmag.sci, line: 72
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n"
+msgstr "%s: 入力引数 #%d で不正なサイズ: 多項式を想定します。\n"
+
+#
+# File: macros/bilt.sci, line: 46
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: degree must be in the set {%s}.\n"
+msgstr "%s: 入力引数 #%d で不正な値: set {%s} をしなくてはなりません。\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same degree expected.\n"
+msgstr "%s: 入力引数 #%d と #%d で互換性がありません: 次数を同じにしてください.\n"
+
+#, c-format
+msgid "%s: Input argument #%d must be real.\n"
+msgstr "%s: 入力引数 #%d は実数でなくてはなりません.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Elements must be positive.\n"
+msgstr "%s: 入力引数 #%d の値が正しくありません: 要素は正としてください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Distance between Max and Min "
+"elements must be greater than %g.\n"
+msgstr "%s: 入力引数 #%d の値が正しくありません: 最大要素と最小要素の距離は %g よりも大きくなくてはなりません.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Same numbers of elements "
+"expected.\n"
+msgstr "%s: 入力引数 #%d と #%d は互換性がありません: 要素数を同じにしてください.\n"
+
+#
+# File: macros/cepstrum.sci, line: 80
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Not sampled high enough.\n"
+msgstr "%s: 入力引数 #%d で不正な値: 十分に高いサンプルになりません。\n"
+
+#, c-format
+msgid "%s: Wrong size for argument #%d: Vector expected.\n"
+msgstr "%s: 引数 #%d の大きさが間違っています: ベクトルを指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n"
+msgstr "%s: 入力引数 #%d の値が間違っています: %s または %sを指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d expected.\n"
+msgstr "%s: 入力引数の数が間違っています: %d 個の引数を指定してください.\n"
+
+#, c-format
+msgid "%s: Arguments #%d and #%d must have the same sizes.\n"
+msgstr "%s: 引数 #%d と #%d の大きさは同じにする必要があります.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d to %d expected.\n"
+msgstr "%s: 入力引数の数が正しくありません: %d から %d の範囲で指定してください.\n"
+
+#
+# File: macros/fft2.sci, line: 57
+# File: macros/trans.sci, line: 47
+#, c-format
+msgid "%s: Wrong number of input arguments: %d or %d expected.\n"
+msgstr "%s: 入力引数の数が不正です: %d または、%d を想定します。\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"
+msgstr "%s: 入力引数 #%d の型が間違っています: 実数行列または多項式を指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n"
+msgstr "%s: 入力引数 #%d の型が間違っています: 実数行列を指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Vector expected.\n"
+msgstr "%s: 入力引数 #%d の大きさが間違っています: ベクトルを指定してください.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix "
+"or two polynomials expected.\n"
+msgstr "%s: 入力引数 #%d および #%d に互換性がありません: 多項式及び1行1列行列または2つの多項式を指定してください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: First element must not be %s.\n"
+msgstr "%s: 入力引数 #%d の値が間違っています: 最初の要素を %s とすることはできません.\n"
+
+#, c-format
+msgid "%s: Filter order too small.\n"
+msgstr "%s: フィルタ次数が小さすぎます.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A single input, single output system "
+"expected.\n"
+msgstr "%s: 入力引数 #%d の大きさが間違っています: 1入力1出力システムを指定してください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Linear dynamical system or row "
+"vector of floats expected.\n"
+msgstr "%s: 入力引数 #%d の型が正しくありません: 線形動的システムまたは浮動小数点数の行ベクトルを指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d or %d expected.\n"
+msgstr "%s: 入力引数の数が間違っています: %d または %d 個の引数を指定してください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A real or polynomial matrix or a "
+"rational expected.\n"
+msgstr "%s: 入力引数 #%d の型が間違っています: 実数または多項式の行列または有理数を指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A discrete system expected.\n"
+msgstr "%s: 入力引数 #%d の型が間違っています: 離散時間システムを指定してください.\n"
+
+#
+# File: macros/lattn.sci, line: 47
+# File: macros/levin.sci, line: 48
+# File: macros/srfaur.sci, line: 36
+# File: macros/yulewalk.sci, line: 36
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d expected.\n"
+msgstr "%s: 入力引数の数が不正です: %d を想定します。\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A positive integer expected.\n"
+msgstr "%s: 入力引数 #%d の型が間違っています: 正の整数を指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A positive integer expected.\n"
+msgstr "%s: 入力引数 #%d の大きさが間違っています: 正の整数を指定してください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A positive integer expected.\n"
+msgstr "%s: 入力引数 #%d の値が間違っています: 正の整数を指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Unsupported '%s' type.\n"
+msgstr "%s: 入力引数 #%d の値が間違っています: '%s' 型はサポートされていません.\n"
+
+#, c-format
+msgid "%s: Wrong size for input arguments: Incompatible sizes.\n"
+msgstr "%s: 入力引数の大きさが間違っています: 大きさに互換性がありません.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: An odd integer expected.\n"
+msgstr "%s: 入力引数 #%d の型が間違っています: 奇数の整数を指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Array of double expected.\n"
+msgstr "%s: 入力引数 #%d の型が間違っています: doubleの配列を指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong number of output arguments: %d or %d expected.\n"
+msgstr "%s: 出力引数の数が間違っています: %d 個または%d 個の引数を指定してください.\n"
+
+#
+# File: macros/iir.sci, line: 46
+# File: macros/lattn.sci, line: 56
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Non-negative integers expected.\n"
+msgstr "%s: 入力引数 #%d で不正な値: 負数でない整数を想定します。\n"
+
+#
+# File: macros/iir.sci, line: 63
+# File: macros/iir.sci, line: 66
+# File: macros/lattn.sci, line: 65
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in the interval "
+"[%s, %s].\n"
+msgstr "%s: 入力引数 #%d で不正な値: 要素は、[%s, %s] の間でなくてはなりません。\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A tall matrix expected.\n"
+msgstr "%s: 入力引数 #%d の大きさが正しくありません: 縦長の行列を指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong values for input arguments #%d and #%d.\n"
+msgstr "%s: 入力引数 #%d と #%d の値が正しくありません.\n"
+
+#
+# File: macros/pspect.sci, line: 38
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Argument #%d expected to be "
+"less than argument #%d.\n"
+msgstr ""
+"%1$s: 入力引数 #%2$d と #%3$d で互換性がありません: 引数 #%5$d よりも小さい引数 #%4$d を想定します。\n"
+
+#
+# File: macros/%asn.sci, line: 23
+# File: macros/remezb.sci, line: 40
+# File: macros/window.sci, line: 78
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: Must be in the interval [%s, %s].\n"
+msgstr "%s: 入力引数 #%d で不正な値: [%s, %s] の間でなくてはなりません。\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"
+msgstr "%s: 入力引数 #%d と #%d で互換性がありません: 大きさを同じにしてください.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s).\n"
+msgstr "%s: 入力引数の数が間違っています.\n"
+
+#
+# File: macros/trans.sci, line: 24
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: rational fraction array expected.\n"
+msgstr "%s: 入力引数 #%d で不正な型: 有理分数配列を想定します。\n"
+
+#
+# File: macros/trans.sci, line: 62
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d elements array expected.\n"
+msgstr "%s: 入力引数 #%d で不正なサイズ: %d 要素配列を想定します。\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be odd.\n"
+msgstr "%s: 入力引数 #%dの値が間違っています: 奇数とする必要があります.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr "%s: 入力引数 #%dの型が間違っています: %d行%d列の実数ベクトルを指定してください .\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr "%s: 入力引数 #%dの大きさが間違っています: %d行%d列の実数ベクトルを指定してください .\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the interval %s.\n"
+msgstr "%s: 入力引数 #%d の値が間違っています: 範囲 %s とする必要があります.\n"
+
+#, c-format
+msgid "%s: Elements of %dth argument must be in increasing order.\n"
+msgstr "%s: %d番目の引数の要素は昇順である必要があります.\n"
+
+msgid "&File"
+msgstr "ファイル(&F)"
+
+msgid "&Tools"
+msgstr "ツール(&T)"
+
+msgid "&Edit"
+msgstr "編集(&E)"
+
+msgid "&?"
+msgstr "&?"
+
+msgid "WFIR settings"
+msgstr "WFIR設定"
+
+msgid "Filter type"
+msgstr "フィルタ形式"
+
+msgid "Band pass"
+msgstr "帯域通過"
+
+msgid "High pass"
+msgstr "高域通過"
+
+msgid "Low pass"
+msgstr "低域通過"
+
+msgid "Stop Band"
+msgstr "帯域阻止"
+
+msgid "Window type"
+msgstr "ウインドウ型"
+
+msgid "Hanning"
+msgstr "ハニング"
+
+msgid "Rectangular"
+msgstr "長方形"
+
+msgid "Triangular"
+msgstr "三角"
+
+msgid "Chebychev main lobe"
+msgstr "チェビシェフメインローブ"
+
+msgid "Chebychev side lobe"
+msgstr "チェビシェフサイドローブ"
+
+msgid "Hamming"
+msgstr "ハミング"
+
+msgid "Kaiser"
+msgstr "カイザー"
+
+msgid "Sampling Frequency (Hz)"
+msgstr "サンプル周波数 (Hz)"
+
+msgid "Filter Order"
+msgstr "フィルタ次数"
+
+msgid "Low cutoff frequency (Hz)"
+msgstr "低域カットオフ周波数 (Hz)"
+
+msgid "High cutoff frequency (Hz)"
+msgstr "高域カットオフ周波数 (Hz)"
+
+msgid "Parameter"
+msgstr "パラメータ"
+
+msgid "View"
+msgstr "表示"
+
+msgid "Ok"
+msgstr "OK"
+
+msgid "Cancel"
+msgstr "取り消し"
+
+msgid "Help"
+msgstr "ヘルプ"
+
+msgid "Window main lobe width"
+msgstr "ウィンドウメインローブ幅"
+
+msgid "maximum side-lobe height"
+msgstr "最大サイドローブ高さ"
+
+msgid "frequency (Hz)"
+msgstr "周波数(Hz)"
+
+msgid "Magnitude (dB)"
+msgstr "振幅 (dB)"
+
+#, c-format
+msgid "%s: Input argument #%d must be strictly positive.\n"
+msgstr "%s: 入力引数 #%d は厳密に正でなくてはなりません.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: incorrect element #%d\n"
+msgstr "%s: 入力引数 #%dの値が間違っています: 要素#%dが不正確です\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real or complex vector expected.\n"
+msgstr "%s: 入力引数 #%d の型が間違っています: 実数または複素ベクトルを指定してください.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: an integer expected.\n"
+msgstr "%s: 引数 #%d の型が間違っています: 整数を指定してください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for argument #%d: the expected value must be greater than "
+"%d.\n"
+msgstr "%s: 引数 #%d の値が間違っています: %d より大きい値を指定してください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: The first element must be %s and "
+"the last %s.\n"
+msgstr "%s: 入力引数 #%d の値が正しくありません: 最初の要素は %s、最後の要素は %s としてください.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in increasing "
+"order.\n"
+msgstr "%s: 入力引数 #%d の値が正しくありません: 要素は昇順としてください.\n"
+
+#, c-format
+msgid "%s: Too abrupt change near end of frequency range.\n"
+msgstr "%s: 周波数範囲の終端近くで急峻過ぎる変化です.\n"
diff --git a/modules/signal_processing/locales/pl_PL.po b/modules/signal_processing/locales/pl_PL.po
new file mode 100755
index 000000000..fb4260f34
--- /dev/null
+++ b/modules/signal_processing/locales/pl_PL.po
@@ -0,0 +1,617 @@
+# Polish translation for scilab
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2011-12-03 13:51+0000\n"
+"Last-Translator: I.Rokach <Unknown>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: pl\n"
+
+#, c-format
+msgid "%s: Can not read input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+msgid "Simulation of an ARMAX process:"
+msgstr "Symulacja procesu ARMAX:"
+
+msgid "Identification ARX (least square):"
+msgstr ""
+
+msgid "Simulation of an ARMAX process: "
+msgstr "Symulacja procesu ARMAX: "
+
+msgid "Identification ARX (least square): "
+msgstr ""
+
+msgid "Arma Spectral power estimation:"
+msgstr ""
+
+msgid "Arma identification"
+msgstr "identyfikacja Arma"
+
+msgid "Theoretical value"
+msgstr "Wartość teoretyczna"
+
+msgid "Using macro mese"
+msgstr "Korzystanie z makro mese"
+
+msgid "Spectral power"
+msgstr "Moc widma"
+
+msgid "frequency"
+msgstr "Częstotliwość"
+
+msgid "spectral estimate"
+msgstr "szacowanie widma"
+
+msgid "Press Return to continue ... \n"
+msgstr "Wciśnij Enter aby kontynuować ... \n"
+
+msgid "filtered signal"
+msgstr ""
+
+msgid "given noisy signal"
+msgstr ""
+
+msgid "Signal"
+msgstr ""
+
+msgid "2 points convolution"
+msgstr ""
+
+msgid "3 points convolution"
+msgstr ""
+
+msgid "Signal derivative estimate"
+msgstr ""
+
+msgid "Choose filter type and parameters"
+msgstr ""
+
+msgid "Discrete IIR filter "
+msgstr ""
+
+msgid "Discrete IIR filter: low pass fr < 0.2"
+msgstr ""
+
+msgid "Discrete IIR filter: band pass 0.15 < fr < 0.25"
+msgstr ""
+
+msgid "Minimax FIR filter"
+msgstr ""
+
+msgid "low pass cut-off in [.23,.27]"
+msgstr ""
+
+msgid "length 33"
+msgstr ""
+
+msgid "Remez Triangular filter"
+msgstr ""
+
+msgid "magnitude error"
+msgstr ""
+
+msgid "Signal Processing"
+msgstr "Przetwarzanie sygnałów"
+
+msgid "Spectral Estimation"
+msgstr ""
+
+msgid "IIR filter design"
+msgstr ""
+
+msgid "Minimax FIR filter design"
+msgstr ""
+
+msgid "Discrete IIR filter"
+msgstr ""
+
+msgid "Wiener filter"
+msgstr ""
+
+msgid "Bode plots"
+msgstr ""
+
+msgid "Window FIR filters"
+msgstr ""
+
+msgid "1-D convolution"
+msgstr ""
+
+msgid "2-D convolution"
+msgstr ""
+
+msgid "Arma simulation and identification"
+msgstr ""
+
+msgid "Arma, bidimensional version"
+msgstr ""
+
+msgid "Arma, Spectral power estimation"
+msgstr ""
+
+msgid "Data spectrum"
+msgstr ""
+
+msgid "magnitude"
+msgstr ""
+
+msgid "Spectral estimation"
+msgstr ""
+
+msgid "spectral power"
+msgstr ""
+
+msgid "estimates xf"
+msgstr "szacowanie xf"
+
+msgid "estimates xs"
+msgstr "szacowanie xs"
+
+msgid "real state"
+msgstr "Rzeczywisty stan"
+
+msgid "Windowed FIR Low pass Filter"
+msgstr ""
+
+msgid "Kaiser window, cut-off: 0.2"
+msgstr ""
+
+msgid "Hamming window, cut-off: 0.2, 0.3"
+msgstr ""
+
+msgid "length 127"
+msgstr ""
+
+msgid "Windowed FIR Band pass Filter"
+msgstr ""
+
+msgid "Chebyshev window, cut-off: 0.15, 0.35"
+msgstr ""
+
+msgid "length 55"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"
+msgstr ""
+"%s: Nieprawidłowa wartość parametru wejściowego nr %d: Musi być ze zbioru "
+"{%s}.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Array of floating point numbers "
+"expected.\n"
+msgstr ""
+"%s: Nieprawidłowy typ parametru wejściowego nr %d: Oczekiwana tablica liczb "
+"zmiennoprzecinkowych.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A scalar expected.\n"
+msgstr ""
+"%s: Nieprawidłowy rozmiar dla argumentu wejściowego nr %d: Oczekiwany "
+"skalar.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n"
+msgstr ""
+"%s: Nieprawidłowy rozmiar parametru wejściowego nr %d: oczekiwano "
+"wielomiany.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: degree must be in the set {%s}.\n"
+msgstr ""
+"%s: Nieprawidłowe wartości argumentu wejściowego nr %d: Stopień musi być w "
+"zestawie {%s}.\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same degree expected.\n"
+msgstr ""
+"%s: Sprzeczne argumenty wejściowe nr %d i nr %d: Oczekiwany taki sam "
+"stopień.\n"
+
+#, c-format
+msgid "%s: Input argument #%d must be real.\n"
+msgstr "%s: Parametr wejściowy nr %d musi być wartością rzeczywistą.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Elements must be positive.\n"
+msgstr ""
+"%s: Nieprawidłowe wartości argumentu wejściowego nr %d: Elementy muszą być "
+"dodatnie.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Distance between Max and Min "
+"elements must be greater than %g.\n"
+msgstr ""
+"%s: Nieprawidłowa wartość argumentu wejściowego nr %d: Odległość elementów "
+"pomiędzy max i min musi być większa niż %g.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Same numbers of elements "
+"expected.\n"
+msgstr ""
+"%s: Niekompatybilny argument wejściowy nr %d oraz nr %d: Oczekiwana at sama "
+"liczba elementów.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Not sampled high enough.\n"
+msgstr ""
+"%s: Nieprawidłowe wartości argumentu wejściowego nr %d: Nie próbowano "
+"wystarczająco wysoko.\n"
+
+#, c-format
+msgid "%s: Wrong size for argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Arguments #%d and #%d must have the same sizes.\n"
+msgstr "%s: Argumenty nr %d i nr %d muszą mieć takie same rozmiary.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d to %d expected.\n"
+msgstr ""
+"%s: Nieprawidłowa liczba argumentów wejściowych: oczekiwano od %d do %d.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d or %d expected.\n"
+msgstr ""
+"%s: Nieprawidłowa liczba argumentów wejściowych: oczekiwano %d lub %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix "
+"or two polynomials expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: First element must not be %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Filter order too small.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A single input, single output system "
+"expected.\n"
+msgstr ""
+"%s: Zły rozmiar parametru wejściowego nr %d: pojedyncze wejście, system "
+"oczekuje pojedynczego wyjścia.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Linear dynamical system or row "
+"vector of floats expected.\n"
+msgstr ""
+"%s: Zły typ parametru wejściowego nr %d: Oczekiwano liniowego układu "
+"dynamicznego lub wektora typu float.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d or %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A real or polynomial matrix or a "
+"rational expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A discrete system expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d expected.\n"
+msgstr "%s: Nieprawidłowa liczba argumentów wejściowych: oczekiwano %d.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Unsupported '%s' type.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input arguments: Incompatible sizes.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: An odd integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Array of double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of output arguments: %d or %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Non-negative integers expected.\n"
+msgstr ""
+"%s: Nieprawidłowe wartości argumentu wejściowego nr %d: oczekiwano "
+"nieujemnych wartości całkowitych.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in the interval "
+"[%s, %s].\n"
+msgstr ""
+"%s: Nieprawidłowe wartości argumentu wejściowego nr %d: Elementy muszą być w "
+"przedziale [%s, %s].\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A tall matrix expected.\n"
+msgstr ""
+"%s: Zły rozmiar parametru wejściowego nr %d: Oczekiwano wysokiej macierzy.\n"
+
+#, c-format
+msgid "%s: Wrong values for input arguments #%d and #%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Argument #%d expected to be "
+"less than argument #%d.\n"
+msgstr ""
+"%s: Sprzeczne argumenty wejściowe nr %d i nr %d: Oczekiwany argument nr %d "
+"powinien być niższy niż argument nr %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: Must be in the interval [%s, %s].\n"
+msgstr ""
+"%s: Nieprawidłowa wartość argumentu wejściowego nr %d: musi być w przedziale "
+"[%s, %s].\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"
+msgstr ""
+"%s: Niezgodne argumenty wejściowe nr %d oraz nr %d: Oczekiwany taki sam "
+"rozmiar.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s).\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: rational fraction array expected.\n"
+msgstr ""
+"%s: Zły typ parametru wejściowego nr %d: Oczekiwano tablicy części "
+"rzeczywistych.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d elements array expected.\n"
+msgstr ""
+"%s: Nieprawidłowy rozmiar argumentu wejściowego nr %d: Oczekiwane elementy "
+"tablicy %d.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be odd.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the interval %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Elements of %dth argument must be in increasing order.\n"
+msgstr "%s: Elementy argumentu numer %d muszą być uporządkowane rosnąco.\n"
+
+msgid "&File"
+msgstr ""
+
+msgid "&Tools"
+msgstr ""
+
+msgid "&Edit"
+msgstr ""
+
+msgid "&?"
+msgstr ""
+
+msgid "WFIR settings"
+msgstr ""
+
+msgid "Filter type"
+msgstr ""
+
+msgid "Band pass"
+msgstr ""
+
+msgid "High pass"
+msgstr ""
+
+msgid "Low pass"
+msgstr ""
+
+msgid "Stop Band"
+msgstr ""
+
+msgid "Window type"
+msgstr ""
+
+msgid "Hanning"
+msgstr ""
+
+msgid "Rectangular"
+msgstr ""
+
+msgid "Triangular"
+msgstr ""
+
+msgid "Chebychev main lobe"
+msgstr ""
+
+msgid "Chebychev side lobe"
+msgstr ""
+
+msgid "Hamming"
+msgstr ""
+
+msgid "Kaiser"
+msgstr ""
+
+msgid "Sampling Frequency (Hz)"
+msgstr ""
+
+msgid "Filter Order"
+msgstr ""
+
+msgid "Low cutoff frequency (Hz)"
+msgstr ""
+
+msgid "High cutoff frequency (Hz)"
+msgstr ""
+
+msgid "Parameter"
+msgstr ""
+
+msgid "View"
+msgstr ""
+
+msgid "Ok"
+msgstr ""
+
+msgid "Cancel"
+msgstr ""
+
+msgid "Help"
+msgstr ""
+
+msgid "Window main lobe width"
+msgstr ""
+
+msgid "maximum side-lobe height"
+msgstr ""
+
+msgid "frequency (Hz)"
+msgstr ""
+
+msgid "Magnitude (dB)"
+msgstr ""
+
+#, c-format
+msgid "%s: Input argument #%d must be strictly positive.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: incorrect element #%d\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real or complex vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: an integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for argument #%d: the expected value must be greater than "
+"%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: The first element must be %s and "
+"the last %s.\n"
+msgstr ""
+"%s: Nieprawidłowe wartości argumentu wejściowego nr %d: Pierwszy element "
+"musi być %s i ostatni %s.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in increasing "
+"order.\n"
+msgstr ""
+"%s: Nieprawidłowe wartości argumentu wejściowego nr %d: Elementy muszą być "
+"uporządkowane rosnąco.\n"
+
+#, c-format
+msgid "%s: Too abrupt change near end of frequency range.\n"
+msgstr "%s: Zbyt gwałtowna zmiana w pobliżu końca zakresu częstotliwości.\n"
diff --git a/modules/signal_processing/locales/pt_BR.po b/modules/signal_processing/locales/pt_BR.po
new file mode 100755
index 000000000..900981d1c
--- /dev/null
+++ b/modules/signal_processing/locales/pt_BR.po
@@ -0,0 +1,630 @@
+# Brazilian Portuguese translation for scilab
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2012-04-23 16:33+0000\n"
+"Last-Translator: Thiago de Melo <tmelo.mat@gmail.com>\n"
+"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: pt_BR\n"
+
+#, c-format
+msgid "%s: Can not read input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real vector expected.\n"
+msgstr "%s: Tipo errado para argumento #%d: vetor real é esperado.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex vector expected.\n"
+msgstr ""
+"%s: Tipo errado para argumento #%d: vetor real ou complexo é esperado.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n"
+msgstr ""
+"%s: Tipo errado para argumento #%d: matriz real ou complexa é esperada.\n"
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+msgid "Simulation of an ARMAX process:"
+msgstr "Simulação de um processo ARMAX:"
+
+msgid "Identification ARX (least square):"
+msgstr ""
+
+msgid "Simulation of an ARMAX process: "
+msgstr ""
+
+msgid "Identification ARX (least square): "
+msgstr ""
+
+msgid "Arma Spectral power estimation:"
+msgstr ""
+
+msgid "Arma identification"
+msgstr "Identificação Arma"
+
+msgid "Theoretical value"
+msgstr "Valor teórico"
+
+msgid "Using macro mese"
+msgstr "Usando macro mese"
+
+msgid "Spectral power"
+msgstr "Potência espectral"
+
+msgid "frequency"
+msgstr "frequência"
+
+msgid "spectral estimate"
+msgstr "estimativa espectral"
+
+msgid "Press Return to continue ... \n"
+msgstr "Pressione Enter para continuar... \n"
+
+msgid "filtered signal"
+msgstr ""
+
+msgid "given noisy signal"
+msgstr ""
+
+msgid "Signal"
+msgstr ""
+
+msgid "2 points convolution"
+msgstr ""
+
+msgid "3 points convolution"
+msgstr ""
+
+msgid "Signal derivative estimate"
+msgstr ""
+
+msgid "Choose filter type and parameters"
+msgstr ""
+
+msgid "Discrete IIR filter "
+msgstr ""
+
+msgid "Discrete IIR filter: low pass fr < 0.2"
+msgstr ""
+
+msgid "Discrete IIR filter: band pass 0.15 < fr < 0.25"
+msgstr ""
+
+msgid "Minimax FIR filter"
+msgstr ""
+
+msgid "low pass cut-off in [.23,.27]"
+msgstr ""
+
+msgid "length 33"
+msgstr "comprimento 33"
+
+msgid "Remez Triangular filter"
+msgstr ""
+
+msgid "magnitude error"
+msgstr ""
+
+msgid "Signal Processing"
+msgstr "Processamento de sinais"
+
+msgid "Spectral Estimation"
+msgstr ""
+
+msgid "IIR filter design"
+msgstr "Projeto de filtro IIR"
+
+msgid "Minimax FIR filter design"
+msgstr ""
+
+msgid "Discrete IIR filter"
+msgstr "Filtro IIR discreto"
+
+msgid "Wiener filter"
+msgstr ""
+
+msgid "Bode plots"
+msgstr "Gráfico de Bode"
+
+msgid "Window FIR filters"
+msgstr ""
+
+msgid "1-D convolution"
+msgstr ""
+
+msgid "2-D convolution"
+msgstr ""
+
+msgid "Arma simulation and identification"
+msgstr ""
+
+msgid "Arma, bidimensional version"
+msgstr ""
+
+msgid "Arma, Spectral power estimation"
+msgstr ""
+
+msgid "Data spectrum"
+msgstr ""
+
+msgid "magnitude"
+msgstr ""
+
+msgid "Spectral estimation"
+msgstr ""
+
+msgid "spectral power"
+msgstr ""
+
+msgid "estimates xf"
+msgstr "estima xf"
+
+msgid "estimates xs"
+msgstr "estima xs"
+
+msgid "real state"
+msgstr "estado real"
+
+msgid "Windowed FIR Low pass Filter"
+msgstr ""
+
+msgid "Kaiser window, cut-off: 0.2"
+msgstr ""
+
+msgid "Hamming window, cut-off: 0.2, 0.3"
+msgstr ""
+
+msgid "length 127"
+msgstr ""
+
+msgid "Windowed FIR Band pass Filter"
+msgstr ""
+
+msgid "Chebyshev window, cut-off: 0.15, 0.35"
+msgstr ""
+
+msgid "length 55"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"
+msgstr ""
+"%s: Valor incorreto para o argumento de entrada #%d: deve pertencer ao "
+"conjunto {%s}.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Array of floating point numbers "
+"expected.\n"
+msgstr ""
+"%s: Tipo incorreto para o argumento de entrada #%d: esperava-se uma matriz "
+"de números reais.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A scalar expected.\n"
+msgstr ""
+"%s: Tamanho incorreto para o argumento de entrada #%d: esperava-se um "
+"escalar.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n"
+msgstr ""
+"%s: Tamanho incorreto para o argumento de entrada #%d: esperava-se um "
+"polinômio.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: degree must be in the set {%s}.\n"
+msgstr ""
+"%s: Valores incorretos para o argumento de entrada #%d: o grau deve "
+"pertencer ao conjunto {%s}.\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same degree expected.\n"
+msgstr ""
+"%s: Os argumentos #%d e #%d estão incompatíveis: esperava-se o mesmo grau.\n"
+
+#, c-format
+msgid "%s: Input argument #%d must be real.\n"
+msgstr "%s: O argumento de entrada #%d deve ser um número real.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Elements must be positive.\n"
+msgstr ""
+"%s: Valores incorretos para o argumento de entrada #%d: os elementos têm que "
+"ser positivos.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Distance between Max and Min "
+"elements must be greater than %g.\n"
+msgstr ""
+"%s: Valores incorretos para o argumento de entrada #%d: a distância entre os "
+"elementos Máx e Mín deve ser maior que %g.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Same numbers of elements "
+"expected.\n"
+msgstr ""
+"%s: Argumentos de entrada incompatíveis #%d e #%d: esperava-se o mesmo "
+"número de elementos.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Not sampled high enough.\n"
+msgstr ""
+"%s: Valores incorretos para o argumento de entrada #%d: não foi amostrado o "
+"suficiente.\n"
+
+#, c-format
+msgid "%s: Wrong size for argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Arguments #%d and #%d must have the same sizes.\n"
+msgstr "%s: Os argumentos #%d e #%d devem ter os mesmos tamanhos.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d to %d expected.\n"
+msgstr ""
+"%s: Quantidade incorreta de argumentos de entrada: esperava-se de %d a %d.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d or %d expected.\n"
+msgstr ""
+"%s: Quantidade incorreta de argumentos de entrada: esperava-se %d ou %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix "
+"or two polynomials expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: First element must not be %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Filter order too small.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A single input, single output system "
+"expected.\n"
+msgstr ""
+"%s: Tamanho incorreto para o argumento de entrada #%d: esperava-se um "
+"sistema de única entrada e única saída.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Linear dynamical system or row "
+"vector of floats expected.\n"
+msgstr ""
+"%s: Tipo incorreto para o argumento de entrada #%d: esperava-se um sistema "
+"linear dinâmico ou um vetor linha de números reais.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d or %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A real or polynomial matrix or a "
+"rational expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A discrete system expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d expected.\n"
+msgstr "%s: Quantidade incorreta de argumentos de entrada: esperava-se %d.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s: Tipo incorreto para o argumento de entrada #%d: esperava-se um número "
+"inteiro positivo.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Unsupported '%s' type.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input arguments: Incompatible sizes.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: An odd integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Array of double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of output arguments: %d or %d expected.\n"
+msgstr ""
+"%s: Quantidade incorreta de argumentos de saída: esperava-se %d ou %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Non-negative integers expected.\n"
+msgstr ""
+"%s: Valores incorretos para o argumento de entrada #%d: esperava-se números "
+"inteiros não negativos.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in the interval "
+"[%s, %s].\n"
+msgstr ""
+"%s: Valores incorretos para o argumento de entrada #%d: os elementos devem "
+"estar no intervalo [%s, %s].\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A tall matrix expected.\n"
+msgstr ""
+"%s: Tamanho incorreto para o argumento de entrada #%d: esperava-se uma "
+"matriz alta.\n"
+
+#, c-format
+msgid "%s: Wrong values for input arguments #%d and #%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Argument #%d expected to be "
+"less than argument #%d.\n"
+msgstr ""
+"%s: Os argumentos de entrada #%d e #%d estão incompatíveis: esperava-se que "
+"o argumento #%d fosse menor que o argumento #%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: Must be in the interval [%s, %s].\n"
+msgstr ""
+"%s: Valor incorreto para o argumento de entrada #%d: deve estar no intervalo "
+"[%s,%s].\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"
+msgstr ""
+"%s: Os argumentos de entrada #%d e #%d estão incompatíveis: esperava-se as "
+"mesmas dimensões.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s).\n"
+msgstr "%s: Quantidade incorreta de argumentos de entrada.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: rational fraction array expected.\n"
+msgstr ""
+"%s: Tipo incorreto para o argumento de entrada #%d: esperava-se uma matriz "
+"de frações racionais.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d elements array expected.\n"
+msgstr ""
+"%s: Tamanho incorreto para o argumento de entrada #%d: esperava-se uma "
+"matriz de %d elementos.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be odd.\n"
+msgstr ""
+"%s: Valor incorreto para o argumento de entrada #%d: tem que ser ímpar.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+"%s: Tipo incorreto para o argumento de entrada #%d: esperava-se uma matriz "
+"%d por %d de números reais.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+"%s: Tamanho incorreto para o argumento de entrada #%d: esperava-se uma "
+"matriz %d por %d de números reais.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the interval %s.\n"
+msgstr ""
+"%s: Valor incorreto para o argumento de entrada #%d: tem que estar no "
+"intervalo %s.\n"
+
+#, c-format
+msgid "%s: Elements of %dth argument must be in increasing order.\n"
+msgstr "%s: Os elementos do argumento #%d devem estar em ordem crescente.\n"
+
+msgid "&File"
+msgstr ""
+
+msgid "&Tools"
+msgstr ""
+
+msgid "&Edit"
+msgstr ""
+
+msgid "&?"
+msgstr ""
+
+msgid "WFIR settings"
+msgstr ""
+
+msgid "Filter type"
+msgstr ""
+
+msgid "Band pass"
+msgstr ""
+
+msgid "High pass"
+msgstr ""
+
+msgid "Low pass"
+msgstr ""
+
+msgid "Stop Band"
+msgstr ""
+
+msgid "Window type"
+msgstr ""
+
+msgid "Hanning"
+msgstr ""
+
+msgid "Rectangular"
+msgstr "Retangular"
+
+msgid "Triangular"
+msgstr "Triangular"
+
+msgid "Chebychev main lobe"
+msgstr ""
+
+msgid "Chebychev side lobe"
+msgstr ""
+
+msgid "Hamming"
+msgstr "Hamming"
+
+msgid "Kaiser"
+msgstr "Kaiser"
+
+msgid "Sampling Frequency (Hz)"
+msgstr ""
+
+msgid "Filter Order"
+msgstr ""
+
+msgid "Low cutoff frequency (Hz)"
+msgstr ""
+
+msgid "High cutoff frequency (Hz)"
+msgstr ""
+
+msgid "Parameter"
+msgstr ""
+
+msgid "View"
+msgstr ""
+
+msgid "Ok"
+msgstr ""
+
+msgid "Cancel"
+msgstr ""
+
+msgid "Help"
+msgstr ""
+
+msgid "Window main lobe width"
+msgstr ""
+
+msgid "maximum side-lobe height"
+msgstr ""
+
+msgid "frequency (Hz)"
+msgstr "frequência (Hz)"
+
+msgid "Magnitude (dB)"
+msgstr ""
+
+#, c-format
+msgid "%s: Input argument #%d must be strictly positive.\n"
+msgstr "%s: O argumento de entrada #%d deve ser estritamente positivo.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: incorrect element #%d\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real or complex vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: an integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for argument #%d: the expected value must be greater than "
+"%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: The first element must be %s and "
+"the last %s.\n"
+msgstr ""
+"%s: Valores incorretos para o argumento de entrada #%d: o primeiro elemento "
+"deve ser %s e o último %s.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in increasing "
+"order.\n"
+msgstr ""
+"%s: Valores incorretos para o argumento de entrada #%d: os elementos devem "
+"estar em ordem crescente.\n"
+
+#, c-format
+msgid "%s: Too abrupt change near end of frequency range.\n"
+msgstr ""
+"%s: Mudança muito abrupta perto do final do intervalo de frequência.\n"
diff --git a/modules/signal_processing/locales/ru_RU.po b/modules/signal_processing/locales/ru_RU.po
new file mode 100755
index 000000000..6f0245de2
--- /dev/null
+++ b/modules/signal_processing/locales/ru_RU.po
@@ -0,0 +1,651 @@
+# Russian translation for scilab
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2015-03-12 14:51+0000\n"
+"Last-Translator: Stanislav V. Kroter <krotersv@gmail.com>\n"
+"Language-Team: Russian <ru@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: ru\n"
+
+#, c-format
+msgid "%s: Can not read input argument #%d.\n"
+msgstr "%s: Не могу прочитать входной аргумент №%d.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+"%s: Неверное значение входного аргумента №%d: ожидалось «%s» или «%s».\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real vector expected.\n"
+msgstr "%s: Неверный тип аргумента №%d: ожидался вещественный вектор.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex vector expected.\n"
+msgstr ""
+"%s: Неверный тип аргумента №%d: ожидался вещественный или комплексный "
+"вектор.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n"
+msgstr ""
+"%s: Неверный тип параметра %d: ожидалась матрица вещественных или "
+"комплексных чисел.\n"
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr "%s: Ошибка выделения памяти.\n"
+
+msgid "Simulation of an ARMAX process:"
+msgstr "Моделирование процесса ARMAX:"
+
+msgid "Identification ARX (least square):"
+msgstr "Идентификация ARX (МНК):"
+
+msgid "Simulation of an ARMAX process: "
+msgstr "Моделирование процесса ARMAX: "
+
+msgid "Identification ARX (least square): "
+msgstr "Идентификация ARX (МНК): "
+
+msgid "Arma Spectral power estimation:"
+msgstr ""
+"Оценка спектральной мощности моделью авторегрессионного скользящего среднего:"
+
+msgid "Arma identification"
+msgstr "Идентификация модели ARMA"
+
+msgid "Theoretical value"
+msgstr "Теоретическое значение"
+
+msgid "Using macro mese"
+msgstr "Использование макроса mese"
+
+msgid "Spectral power"
+msgstr "Спектральная мощность"
+
+msgid "frequency"
+msgstr "частота"
+
+msgid "spectral estimate"
+msgstr "оценка спектральной плотности"
+
+msgid "Press Return to continue ... \n"
+msgstr "Нажмите Return для продолжения ... \n"
+
+msgid "filtered signal"
+msgstr "фильтрованный сигнал"
+
+msgid "given noisy signal"
+msgstr "заданный сигнал с шумом"
+
+msgid "Signal"
+msgstr "Сигнал"
+
+msgid "2 points convolution"
+msgstr "двухточечная свёртка"
+
+msgid "3 points convolution"
+msgstr "трёхточечная свёртка"
+
+msgid "Signal derivative estimate"
+msgstr "оценка производной сигнала"
+
+msgid "Choose filter type and parameters"
+msgstr "Выберите тип фильтра и параметры"
+
+msgid "Discrete IIR filter "
+msgstr "Дискретный БИХ-фильтр "
+
+msgid "Discrete IIR filter: low pass fr < 0.2"
+msgstr "Дискретный БИХ-фильтр: фильтр нижних частот fr < 0.2"
+
+msgid "Discrete IIR filter: band pass 0.15 < fr < 0.25"
+msgstr "Дискретный БИХ-фильтр: полосовой фильтр 0.15 < fr < 0.25"
+
+msgid "Minimax FIR filter"
+msgstr "Минимаксный КИХ-фильтр"
+
+msgid "low pass cut-off in [.23,.27]"
+msgstr "частота отсечки фильтра низких частот в [.23,.27]"
+
+msgid "length 33"
+msgstr "длина 33"
+
+msgid "Remez Triangular filter"
+msgstr "Треугольный фильтр по методу Ремеза"
+
+msgid "magnitude error"
+msgstr "ошибка абсолютной величины"
+
+msgid "Signal Processing"
+msgstr "Обработка сигналов"
+
+msgid "Spectral Estimation"
+msgstr "Спектральное оценивание"
+
+msgid "IIR filter design"
+msgstr "Схема БИХ-фильтра"
+
+msgid "Minimax FIR filter design"
+msgstr "Минимаксная схема КИХ-фильтра"
+
+msgid "Discrete IIR filter"
+msgstr "Дискретный БИХ-фильтр"
+
+msgid "Wiener filter"
+msgstr "Винеровский фильтр"
+
+msgid "Bode plots"
+msgstr "Диаграммы Боде"
+
+msgid "Window FIR filters"
+msgstr "Оконные КИХ-фильтры"
+
+msgid "1-D convolution"
+msgstr "Одномерная свёртка"
+
+msgid "2-D convolution"
+msgstr "Двумерная свёртка"
+
+msgid "Arma simulation and identification"
+msgstr ""
+"Моделирование авторегрессионного скользящего среднего и идентификация"
+
+msgid "Arma, bidimensional version"
+msgstr "Модель авторегрессионного скользящего среднего, двумерная версия"
+
+msgid "Arma, Spectral power estimation"
+msgstr ""
+"Оценка спектральной мощности, модель авторегрессионного скользящего среднего"
+
+msgid "Data spectrum"
+msgstr "Спектр данных"
+
+msgid "magnitude"
+msgstr "абсолютная величина"
+
+msgid "Spectral estimation"
+msgstr "Спектральная оценка"
+
+msgid "spectral power"
+msgstr "спектральная мощность"
+
+msgid "estimates xf"
+msgstr "оценки xf"
+
+msgid "estimates xs"
+msgstr "оценки xs"
+
+msgid "real state"
+msgstr "истинное состояние"
+
+msgid "Windowed FIR Low pass Filter"
+msgstr "КИХ-фильтр низких частот с оконной обработкой"
+
+msgid "Kaiser window, cut-off: 0.2"
+msgstr "Кайзеровское окно, отсечка: 0.2"
+
+msgid "Hamming window, cut-off: 0.2, 0.3"
+msgstr "Окно Хемминга, отсечка 0.2, 0.3"
+
+msgid "length 127"
+msgstr "длина 127"
+
+msgid "Windowed FIR Band pass Filter"
+msgstr "полосовой КИХ-фильтр с оконной обработкой"
+
+msgid "Chebyshev window, cut-off: 0.15, 0.35"
+msgstr "Окно Чебышева, отсечка: 0.15, 0.35"
+
+msgid "length 55"
+msgstr "длина 55"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"
+msgstr ""
+"%s: Неверное значение входного параметра №%d: должно быть из множества "
+"{%s}.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Array of floating point numbers "
+"expected.\n"
+msgstr ""
+"%s: Неверный тип входного параметра №%d: ожидался массив чисел с плавающей "
+"точкой.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A scalar expected.\n"
+msgstr "%s: Неверный размер входного параметра №%d: ожидался скаляр.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n"
+msgstr "%s: Неверный размер входного параметра №%d: ожидался полином.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: degree must be in the set {%s}.\n"
+msgstr ""
+"%s: Неверные значения входного параметра №%d: степень должна принадлежать "
+"множеству {%s}.\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same degree expected.\n"
+msgstr "%s: Несовместимые параметры №%d и №%d: степени должны совпадать.\n"
+
+#, c-format
+msgid "%s: Input argument #%d must be real.\n"
+msgstr "%s: Входной параметр №%d должен быть вещественным числом.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Elements must be positive.\n"
+msgstr ""
+"%s: Неверные значения входного параметра №%d: элементы должны быть "
+"положительными.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Distance between Max and Min "
+"elements must be greater than %g.\n"
+msgstr ""
+"%s: Неверные значения входного параметра №%d: расстояние между минимальным и "
+"максимальным элементами должно быть больше %g.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Same numbers of elements "
+"expected.\n"
+msgstr ""
+"%s: Несовместимые входные параметры №%d и №%d: должно быть одинаковое "
+"количество элементов.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Not sampled high enough.\n"
+msgstr ""
+"%s: Неверные значения входного параметра №%d: недостаточная частота "
+"отсчётов.\n"
+
+#, c-format
+msgid "%s: Wrong size for argument #%d: Vector expected.\n"
+msgstr "%s: Неверный размер аргумента №%d: ожидался вектор.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n"
+msgstr "%s: Неверное значение входного аргумента №%d: ожидалось %s или %s.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d expected.\n"
+msgstr "%s: Неверное количество входных аргументов: Ожидалось %d.\n"
+
+#, c-format
+msgid "%s: Arguments #%d and #%d must have the same sizes.\n"
+msgstr "%s: Параметры №%d и №%d должны иметь одинаковые размеры.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d to %d expected.\n"
+msgstr "%s: Неверное количество входных параметров: ожидалось от %d до %d.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d or %d expected.\n"
+msgstr "%s: Неверное количество входных параметров: ожидалось %d или %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"
+msgstr ""
+"%s: Неверный тип входного аргумента №%d: ожидалась матрица вещественных "
+"чисел или полином.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n"
+msgstr ""
+"%s: Неверный тип входного аргумента №%d: Ожидалась матрица вещественных "
+"чисел.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Vector expected.\n"
+msgstr "%s: Неверный размер входного аргумента №%d: ожидался вектор.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix "
+"or two polynomials expected.\n"
+msgstr ""
+"%s: Несовместимые входные аргументы №%d и №%d: ожидались полином и матрица 1-"
+"на-1 либо два полинома\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: First element must not be %s.\n"
+msgstr ""
+"%s: Неверное значение входного аргумента №%d: первый элемент НЕ должен быть "
+"%s.\n"
+
+#, c-format
+msgid "%s: Filter order too small.\n"
+msgstr "%s: Порядок фильтра слишком мал.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A single input, single output system "
+"expected.\n"
+msgstr ""
+"%s: Неверный размер входного параметра №%d: ожидалась система с одним входом "
+"и одним выходом.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Linear dynamical system or row "
+"vector of floats expected.\n"
+msgstr ""
+"%s: Неверный тип входного параметра №%d: ожидалась линейная динамическая "
+"система или вектор-строка чисел с плавающей точкой.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d or %d expected.\n"
+msgstr "%s: Неверное количество аргументов: Ожидалось %d или %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A real or polynomial matrix or a "
+"rational expected.\n"
+msgstr ""
+"%s: Неверный тип входного аргумента №%d: ожидалась матрица вещественных или "
+"полиномиальных значений или рациональное число.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A discrete system expected.\n"
+msgstr ""
+"%s: Неверный тип входного аргумента №%d: ожидалась дискретная система.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d expected.\n"
+msgstr "%s: Неверное количество входных параметров: ожидалось %d.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s: Неверный тип входного параметра №%d: ожидалось положительное целое "
+"число.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s: Неверный размер входного аргумента №%d: ожидалось положительное целое "
+"число.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s: Неверное значение входного аргумента №%d: ожидалось положительное целое "
+"значение.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Unsupported '%s' type.\n"
+msgstr ""
+"%s: Неверные значения входного параметра №%d: тип «%s» не поддерживается.\n"
+
+#, c-format
+msgid "%s: Wrong size for input arguments: Incompatible sizes.\n"
+msgstr "%s: Неверный размер входных параметров: размеры несовместимы.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: An odd integer expected.\n"
+msgstr ""
+"%s: Неверный тип входного аргумента №%d: ожидалось нечётное целое число.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Array of double expected.\n"
+msgstr ""
+"%s: Неверный тип входного аргумента №%d: ожидался массив чисел удвоенной "
+"точности.\n"
+
+#, c-format
+msgid "%s: Wrong number of output arguments: %d or %d expected.\n"
+msgstr "%s: Неверное количество выходных аргументов: ожидалось %d или %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Non-negative integers expected.\n"
+msgstr ""
+"%s: Неверные значения входного параметра №%d: ожидались неотрицательные "
+"целые числа.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in the interval "
+"[%s, %s].\n"
+msgstr ""
+"%s: Неверные значения входного параметра №%d: элементы должны быть в "
+"интервале [%s, %s].\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A tall matrix expected.\n"
+msgstr ""
+"%s: Неверный размер входного параметра №%d: ожидалась высокая матрица.\n"
+
+#, c-format
+msgid "%s: Wrong values for input arguments #%d and #%d.\n"
+msgstr "%s: Неверные значения входных параметров №%d и №%d.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Argument #%d expected to be "
+"less than argument #%d.\n"
+msgstr ""
+"%s: Несовместимые параметры №%d и №%d: параметр №%d должен быть меньше "
+"параметра №%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: Must be in the interval [%s, %s].\n"
+msgstr ""
+"%s: Неверное значение входного параметра №%d: должно быть в интервале [%s, "
+"%s].\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"
+msgstr ""
+"%s: Несовместимые входные параметры №%d и №%d: ожидались одинаковые "
+"размеры.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s).\n"
+msgstr "%s: Неверное количество входных параметров.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: rational fraction array expected.\n"
+msgstr ""
+"%s: Неверный тип входного параметра №%d: ожидался массив рациональных "
+"функций.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d elements array expected.\n"
+msgstr ""
+"%s: Неверный размер входного аргумента №%d: ожидался массив из %d "
+"элементов.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be odd.\n"
+msgstr ""
+"%s: Неверное значение входного аргумента №%d: оно должно быть нечётным.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+"%s: Неверный тип входного аргумента №%d: ожидался вещественный вектор %d на "
+"%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+"%s: Неверный размер входного аргумента №%d: ожидался вещественный вектор %d "
+"на %d.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the interval %s.\n"
+msgstr ""
+"%s: Неверное значение входного аргумента №%d: оно должно быть на интервале "
+"%s.\n"
+
+#, c-format
+msgid "%s: Elements of %dth argument must be in increasing order.\n"
+msgstr ""
+"%s: Элементы %d-го параметра должны располагаться в порядке возрастания.\n"
+
+msgid "&File"
+msgstr "&Файл"
+
+msgid "&Tools"
+msgstr "&Инструменты"
+
+msgid "&Edit"
+msgstr "&Правка"
+
+msgid "&?"
+msgstr "&?"
+
+msgid "WFIR settings"
+msgstr "настройки WFIR"
+
+msgid "Filter type"
+msgstr "Тип фильтра"
+
+msgid "Band pass"
+msgstr "Полосовой"
+
+msgid "High pass"
+msgstr "Высоких частот"
+
+msgid "Low pass"
+msgstr "Низких частот"
+
+msgid "Stop Band"
+msgstr "Заграждающий"
+
+msgid "Window type"
+msgstr "Тип Окна"
+
+msgid "Hanning"
+msgstr "Хэннинг"
+
+msgid "Rectangular"
+msgstr "Прямоугольное"
+
+msgid "Triangular"
+msgstr "Треугольное"
+
+msgid "Chebychev main lobe"
+msgstr "Главный лепесток окна Чебышева"
+
+msgid "Chebychev side lobe"
+msgstr "Боковой лепесток окна Чебышева"
+
+msgid "Hamming"
+msgstr "Хэмминга"
+
+msgid "Kaiser"
+msgstr "Кайзера"
+
+msgid "Sampling Frequency (Hz)"
+msgstr "Частота дискретизации (Гц)"
+
+msgid "Filter Order"
+msgstr "Порядок фильтра"
+
+msgid "Low cutoff frequency (Hz)"
+msgstr "Нижняя частота среза (Гц)"
+
+msgid "High cutoff frequency (Hz)"
+msgstr "Верхняя частота среза (Гц)"
+
+msgid "Parameter"
+msgstr "Параметр"
+
+msgid "View"
+msgstr "Вид"
+
+msgid "Ok"
+msgstr "Ок"
+
+msgid "Cancel"
+msgstr "Отмена"
+
+msgid "Help"
+msgstr "Справка"
+
+msgid "Window main lobe width"
+msgstr "Ширина главного лепестка окна"
+
+msgid "maximum side-lobe height"
+msgstr "максимальная высота бокового лепестка"
+
+msgid "frequency (Hz)"
+msgstr "частота (Гц)"
+
+msgid "Magnitude (dB)"
+msgstr "Амплитуда (дБ)"
+
+#, c-format
+msgid "%s: Input argument #%d must be strictly positive.\n"
+msgstr "%s: Входной аргумент №%d должен быть строго положительным.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: incorrect element #%d\n"
+msgstr ""
+"%s: Неверное значение входного аргумента №%d: некорректный элемент №%d\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real or complex vector expected.\n"
+msgstr ""
+"%s: Неверный тип входного параметра №%d: ожидался вектор вещественных или "
+"комплексных чисел.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: an integer expected.\n"
+msgstr "%s: Неверный тип аргумента №%d: ожидалось целое число.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for argument #%d: the expected value must be greater than "
+"%d.\n"
+msgstr ""
+"%s: Неверное значение аргумента №%d: ожидаемое значение должно быть больше "
+"%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: The first element must be %s and "
+"the last %s.\n"
+msgstr ""
+"%s: Неверные значения входного параметра №%d: первый элементы должен быть "
+"%s, а последний %s.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in increasing "
+"order.\n"
+msgstr ""
+"%s: Неверные значения входного параметра №%d: элементы должны быть "
+"отсортированы по возрастанию\n"
+
+#, c-format
+msgid "%s: Too abrupt change near end of frequency range.\n"
+msgstr "%s: Слишком быстрое изменение около границы частотного диапазона.\n"
diff --git a/modules/signal_processing/locales/signal_processing.pot b/modules/signal_processing/locales/signal_processing.pot
new file mode 100755
index 000000000..6ed3fa484
--- /dev/null
+++ b/modules/signal_processing/locales/signal_processing.pot
@@ -0,0 +1,1022 @@
+# Localization of the module signal_processing
+# Please see in SCI/tools/localization for localization management
+# Copyright (C) 2007-2008 - INRIA
+# Copyright (C) 2008-2011 - DIGITEO
+# Copyright (C) 2012-2014 - Scilab-Enterprises
+# This file is distributed under the same license as the Scilab package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"Last-Translator: Vincent COUVERT <vincent.couvert@scilab-enterprises.com>\n"
+"Language-Team: Scilab Localization <localization@lists.scilab.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Revision-Date: 2015-03-27 13:54+0100\n"
+
+# File: sci_gateway/c/sci_conv2.c, line: 38
+# File: sci_gateway/c/sci_conv2.c, line: 99
+# File: sci_gateway/c/sci_conv2.c, line: 108
+# File: sci_gateway/c/sci_conv2.c, line: 126
+# File: sci_gateway/c/sci_conv2.c, line: 137
+# File: sci_gateway/c/sci_conv2.c, line: 156
+# File: sci_gateway/c/sci_conv2.c, line: 165
+# File: sci_gateway/c/sci_conv2.c, line: 183
+# File: sci_gateway/c/sci_conv2.c, line: 194
+# File: sci_gateway/c/sci_conv2.c, line: 214
+# File: sci_gateway/c/sci_conv2.c, line: 223
+# File: sci_gateway/c/sci_conv2.c, line: 241
+# File: sci_gateway/c/sci_conv2.c, line: 252
+# File: sci_gateway/c/sci_conv2.c, line: 353
+# File: sci_gateway/c/sci_conv2.c, line: 362
+# File: sci_gateway/c/sci_conv2.c, line: 380
+# File: sci_gateway/c/sci_conv2.c, line: 391
+# File: sci_gateway/c/sci_conv2.c, line: 402
+# File: sci_gateway/c/sci_conv2.c, line: 411
+# File: sci_gateway/c/sci_conv2.c, line: 429
+# File: sci_gateway/c/sci_conv2.c, line: 440
+#, c-format
+msgid "%s: Can not read input argument #%d.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_conv2.c, line: 63
+# File: sci_gateway/c/sci_conv2.c, line: 75
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_conv2.c, line: 114
+# File: sci_gateway/c/sci_conv2.c, line: 203
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real vector expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_conv2.c, line: 145
+# File: sci_gateway/c/sci_conv2.c, line: 171
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex vector expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_conv2.c, line: 229
+# File: sci_gateway/c/sci_conv2.c, line: 368
+# File: sci_gateway/c/sci_conv2.c, line: 417
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n"
+msgstr ""
+
+#
+# File: sci_gateway/c/sci_conv2.c, line: 312
+# File: sci_gateway/c/sci_conv2.c, line: 326
+# File: sci_gateway/c/sci_conv2.c, line: 334
+# File: sci_gateway/c/sci_conv2.c, line: 496
+# File: sci_gateway/c/sci_conv2.c, line: 509
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+# File: demos/arma/arma1.dem.sce, line: 29
+msgid "Simulation of an ARMAX process:"
+msgstr ""
+
+#
+# File: demos/arma/arma1.dem.sce, line: 45
+msgid "Identification ARX (least square):"
+msgstr ""
+
+#
+# File: demos/arma/arma2.dem.sce, line: 20
+msgid "Simulation of an ARMAX process: "
+msgstr ""
+
+#
+# File: demos/arma/arma2.dem.sce, line: 26
+msgid "Identification ARX (least square): "
+msgstr ""
+
+#
+# File: demos/arma/arma3.dem.sce, line: 10
+msgid "Arma Spectral power estimation:"
+msgstr ""
+
+#
+# File: demos/arma/arma3.dem.sce, line: 50
+msgid "Arma identification"
+msgstr ""
+
+#
+# File: demos/arma/arma3.dem.sce, line: 50
+msgid "Theoretical value"
+msgstr ""
+
+#
+# File: demos/arma/arma3.dem.sce, line: 50
+msgid "Using macro mese"
+msgstr ""
+
+#
+# File: demos/arma/arma3.dem.sce, line: 51
+msgid "Spectral power"
+msgstr ""
+
+#
+# File: demos/arma/arma3.dem.sce, line: 51
+# File: demos/remezfilt.dem.sce, line: 49
+# File: demos/remezfilt.dem.sce, line: 58
+# File: demos/spect.dem.sce, line: 45
+# File: demos/spect.dem.sce, line: 58
+# File: demos/winfilt.dem.sce, line: 21
+# File: demos/winfilt.dem.sce, line: 36
+# File: demos/winfilt.dem.sce, line: 52
+msgid "frequency"
+msgstr ""
+
+#
+# File: demos/arma/arma3.dem.sce, line: 51
+msgid "spectral estimate"
+msgstr ""
+
+#
+# File: demos/bode.dem.sce, line: 30
+# File: demos/bode.dem.sce, line: 40
+# File: demos/bode.dem.sce, line: 47
+# File: demos/iirfilt.dem.sce, line: 22
+# File: demos/remezfilt.dem.sce, line: 30
+# File: demos/remezfilt.dem.sce, line: 51
+# File: demos/spect.dem.sce, line: 46
+# File: demos/spect.dem.sce, line: 59
+# File: demos/winfilt.dem.sce, line: 26
+# File: demos/winfilt.dem.sce, line: 41
+# File: demos/winfilt.dem.sce, line: 57
+msgid "Press Return to continue ... \n"
+msgstr ""
+
+#
+# File: demos/conv.dem.sce, line: 27
+msgid "filtered signal"
+msgstr ""
+
+#
+# File: demos/conv.dem.sce, line: 27
+msgid "given noisy signal"
+msgstr ""
+
+#
+# File: demos/conv.dem.sce, line: 28
+msgid "Signal"
+msgstr ""
+
+#
+# File: demos/conv.dem.sce, line: 35
+msgid "2 points convolution"
+msgstr ""
+
+#
+# File: demos/conv.dem.sce, line: 35
+msgid "3 points convolution"
+msgstr ""
+
+#
+# File: demos/conv.dem.sce, line: 36
+msgid "Signal derivative estimate"
+msgstr ""
+
+#
+# File: demos/iir.dem.sce, line: 15
+msgid "Choose filter type and parameters"
+msgstr ""
+
+#
+# File: demos/iir.dem.sce, line: 25
+msgid "Discrete IIR filter "
+msgstr ""
+
+#
+# File: demos/iirfilt.dem.sce, line: 21
+msgid "Discrete IIR filter: low pass fr < 0.2"
+msgstr ""
+
+#
+# File: demos/iirfilt.dem.sce, line: 32
+msgid "Discrete IIR filter: band pass 0.15 < fr < 0.25"
+msgstr ""
+
+#
+# File: demos/remezfilt.dem.sce, line: 23
+msgid "Minimax FIR filter"
+msgstr ""
+
+#
+# File: demos/remezfilt.dem.sce, line: 24
+msgid "low pass cut-off in [.23,.27]"
+msgstr ""
+
+#
+# File: demos/remezfilt.dem.sce, line: 25
+# File: demos/winfilt.dem.sce, line: 24
+msgid "length 33"
+msgstr ""
+
+#
+# File: demos/remezfilt.dem.sce, line: 49
+msgid "Remez Triangular filter"
+msgstr ""
+
+#
+# File: demos/remezfilt.dem.sce, line: 58
+msgid "magnitude error"
+msgstr ""
+
+#
+# File: demos/signal_processing.dem.gateway.sce, line: 10
+msgid "Signal Processing"
+msgstr ""
+
+#
+# File: demos/signal_processing.dem.gateway.sce, line: 12
+msgid "Spectral Estimation"
+msgstr ""
+
+#
+# File: demos/signal_processing.dem.gateway.sce, line: 13
+msgid "IIR filter design"
+msgstr ""
+
+#
+# File: demos/signal_processing.dem.gateway.sce, line: 14
+msgid "Minimax FIR filter design"
+msgstr ""
+
+#
+# File: demos/signal_processing.dem.gateway.sce, line: 15
+msgid "Discrete IIR filter"
+msgstr ""
+
+#
+# File: demos/signal_processing.dem.gateway.sce, line: 16
+msgid "Wiener filter"
+msgstr ""
+
+#
+# File: demos/signal_processing.dem.gateway.sce, line: 17
+msgid "Bode plots"
+msgstr ""
+
+#
+# File: demos/signal_processing.dem.gateway.sce, line: 18
+msgid "Window FIR filters"
+msgstr ""
+
+#
+# File: demos/signal_processing.dem.gateway.sce, line: 19
+msgid "1-D convolution"
+msgstr ""
+
+#
+# File: demos/signal_processing.dem.gateway.sce, line: 20
+msgid "2-D convolution"
+msgstr ""
+
+#
+# File: demos/signal_processing.dem.gateway.sce, line: 21
+msgid "Arma simulation and identification"
+msgstr ""
+
+#
+# File: demos/signal_processing.dem.gateway.sce, line: 22
+msgid "Arma, bidimensional version"
+msgstr ""
+
+#
+# File: demos/signal_processing.dem.gateway.sce, line: 23
+msgid "Arma, Spectral power estimation"
+msgstr ""
+
+#
+# File: demos/spect.dem.sce, line: 45
+msgid "Data spectrum"
+msgstr ""
+
+#
+# File: demos/spect.dem.sce, line: 45
+# File: demos/winfilt.dem.sce, line: 21
+# File: demos/winfilt.dem.sce, line: 36
+# File: demos/winfilt.dem.sce, line: 52
+msgid "magnitude"
+msgstr ""
+
+#
+# File: demos/spect.dem.sce, line: 58
+msgid "Spectral estimation"
+msgstr ""
+
+#
+# File: demos/spect.dem.sce, line: 58
+msgid "spectral power"
+msgstr ""
+
+#
+# File: demos/wiener.dem.sce, line: 94
+msgid "estimates xf"
+msgstr ""
+
+#
+# File: demos/wiener.dem.sce, line: 94
+msgid "estimates xs"
+msgstr ""
+
+#
+# File: demos/wiener.dem.sce, line: 94
+msgid "real state"
+msgstr ""
+
+#
+# File: demos/winfilt.dem.sce, line: 22
+# File: demos/winfilt.dem.sce, line: 37
+msgid "Windowed FIR Low pass Filter"
+msgstr ""
+
+#
+# File: demos/winfilt.dem.sce, line: 23
+msgid "Kaiser window, cut-off: 0.2"
+msgstr ""
+
+#
+# File: demos/winfilt.dem.sce, line: 38
+msgid "Hamming window, cut-off: 0.2, 0.3"
+msgstr ""
+
+#
+# File: demos/winfilt.dem.sce, line: 39
+msgid "length 127"
+msgstr ""
+
+#
+# File: demos/winfilt.dem.sce, line: 53
+msgid "Windowed FIR Band pass Filter"
+msgstr ""
+
+#
+# File: demos/winfilt.dem.sce, line: 54
+msgid "Chebyshev window, cut-off: 0.15, 0.35"
+msgstr ""
+
+#
+# File: demos/winfilt.dem.sce, line: 55
+msgid "length 55"
+msgstr ""
+
+#
+# File: macros/analpf.sci, line: 58
+# File: macros/cspect.sci, line: 33
+# File: macros/detrend.sci, line: 89
+# File: macros/eqiir.sci, line: 43
+# File: macros/eqiir.sci, line: 56
+# File: macros/hilb.sci, line: 45
+# File: macros/iir.sci, line: 52
+# File: macros/iir.sci, line: 55
+# File: macros/pspect.sci, line: 41
+# File: macros/sincd.sci, line: 40
+# File: macros/trans.sci, line: 53
+# File: macros/wfir.sci, line: 50
+# File: macros/window.sci, line: 25
+# File: macros/xcorr.sci, line: 14
+# File: macros/xcov.sci, line: 14
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"
+msgstr ""
+
+#
+# File: macros/bilt.sci, line: 25
+# File: macros/bilt.sci, line: 28
+# File: macros/bilt.sci, line: 31
+# File: macros/detrend.sci, line: 40
+# File: macros/detrend.sci, line: 43
+# File: macros/detrend.sci, line: 46
+# File: macros/hilbert.sci, line: 19
+# File: macros/iir.sci, line: 42
+# File: macros/iir.sci, line: 58
+# File: macros/iir.sci, line: 61
+# File: macros/lattn.sci, line: 52
+# File: macros/lattn.sci, line: 61
+# File: macros/lattn.sci, line: 71
+# File: macros/trans.sci, line: 39
+# File: macros/trans.sci, line: 42
+# File: macros/trans.sci, line: 56
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Array of floating point numbers "
+"expected.\n"
+msgstr ""
+
+#
+# File: macros/bilt.sci, line: 34
+# File: macros/hilb.sci, line: 39
+# File: macros/iir.sci, line: 45
+# File: macros/lattn.sci, line: 55
+# File: macros/lattn.sci, line: 64
+# File: macros/trans.sci, line: 45
+# File: macros/trans.sci, line: 60
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A scalar expected.\n"
+msgstr ""
+
+#
+# File: macros/bilt.sci, line: 37
+# File: macros/bilt.sci, line: 40
+# File: macros/frmag.sci, line: 46
+# File: macros/frmag.sci, line: 58
+# File: macros/frmag.sci, line: 63
+# File: macros/frmag.sci, line: 67
+# File: macros/frmag.sci, line: 72
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n"
+msgstr ""
+
+#
+# File: macros/bilt.sci, line: 46
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: degree must be in the set {%s}.\n"
+msgstr ""
+
+#
+# File: macros/bilt.sci, line: 49
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same degree expected.\n"
+msgstr ""
+
+#
+# File: macros/cepstrum.sci, line: 18
+# File: macros/cepstrum.sci, line: 21
+# File: macros/hilbert.sci, line: 26
+#, c-format
+msgid "%s: Input argument #%d must be real.\n"
+msgstr ""
+
+#
+# File: macros/cepstrum.sci, line: 29
+# File: macros/cepstrum.sci, line: 45
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Elements must be positive.\n"
+msgstr ""
+
+#
+# File: macros/cepstrum.sci, line: 32
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Distance between Max and Min "
+"elements must be greater than %g.\n"
+msgstr ""
+
+#
+# File: macros/cepstrum.sci, line: 36
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Same numbers of elements "
+"expected.\n"
+msgstr ""
+
+#
+# File: macros/cepstrum.sci, line: 80
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Not sampled high enough.\n"
+msgstr ""
+
+#
+# File: macros/conv.sci, line: 11
+# File: macros/conv.sci, line: 14
+#, c-format
+msgid "%s: Wrong size for argument #%d: Vector expected.\n"
+msgstr ""
+
+#
+# File: macros/conv.sci, line: 19
+#, c-format
+msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n"
+msgstr ""
+
+#
+# File: macros/convol2d.sci, line: 20
+#, c-format
+msgid "%s: Wrong number of input arguments: %d expected.\n"
+msgstr ""
+
+#
+# File: macros/cspect.sci, line: 67
+# File: macros/pspect.sci, line: 75
+#, c-format
+msgid "%s: Arguments #%d and #%d must have the same sizes.\n"
+msgstr ""
+
+#
+# File: macros/detrend.sci, line: 32
+# File: macros/filter.sci, line: 18
+#, c-format
+msgid "%s: Wrong number of input arguments: %d to %d expected.\n"
+msgstr ""
+
+#
+# File: macros/fft2.sci, line: 57
+# File: macros/trans.sci, line: 50
+#, c-format
+msgid "%s: Wrong number of input arguments: %d or %d expected.\n"
+msgstr ""
+
+#
+# File: macros/filter.sci, line: 31
+# File: macros/filter.sci, line: 35
+# File: macros/filter.sci, line: 47
+# File: macros/filter.sci, line: 51
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"
+msgstr ""
+
+#
+# File: macros/filter.sci, line: 39
+# File: macros/filter.sci, line: 43
+# File: macros/filter.sci, line: 55
+# File: macros/filter.sci, line: 59
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n"
+msgstr ""
+
+#
+# File: macros/filter.sci, line: 63
+# File: macros/filter.sci, line: 67
+# File: macros/filter.sci, line: 71
+# File: macros/filter.sci, line: 75
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Vector expected.\n"
+msgstr ""
+
+#
+# File: macros/filter.sci, line: 80
+# File: macros/filter.sci, line: 85
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix "
+"or two polynomials expected.\n"
+msgstr ""
+
+#
+# File: macros/filter.sci, line: 108
+#, c-format
+msgid "%s: Wrong value for input argument #%d: First element must not be %s.\n"
+msgstr ""
+
+#
+# File: macros/frfit.sci, line: 73
+#, c-format
+msgid "%s: Filter order too small.\n"
+msgstr ""
+
+#
+# File: macros/frmag.sci, line: 35
+# File: macros/frmag.sci, line: 41
+# File: macros/trans.sci, line: 30
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A single input, single output system "
+"expected.\n"
+msgstr ""
+
+#
+# File: macros/frmag.sci, line: 53
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Linear dynamical system or row "
+"vector of floats expected.\n"
+msgstr ""
+
+#
+# File: macros/group.sci, line: 43
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d or %d expected.\n"
+msgstr ""
+
+#
+# File: macros/group.sci, line: 57
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A real or polynomial matrix or a "
+"rational expected.\n"
+msgstr ""
+
+#
+# File: macros/group.sci, line: 60
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A discrete system expected.\n"
+msgstr ""
+
+#
+# File: macros/hank.sci, line: 24
+# File: macros/ifftshift.sci, line: 13
+# File: macros/kalm.sci, line: 28
+# File: macros/lattn.sci, line: 49
+# File: macros/levin.sci, line: 48
+# File: macros/srfaur.sci, line: 36
+# File: macros/yulewalk.sci, line: 36
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d expected.\n"
+msgstr ""
+
+#
+# File: macros/hank.sci, line: 28
+# File: macros/hank.sci, line: 40
+# File: macros/wfir.sci, line: 53
+# File: macros/window.sci, line: 28
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#
+# File: macros/hank.sci, line: 32
+# File: macros/hank.sci, line: 44
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#
+# File: macros/hank.sci, line: 36
+# File: macros/hank.sci, line: 48
+#, c-format
+msgid "%s: Wrong value for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#
+# File: macros/hank.sci, line: 53
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Unsupported '%s' type.\n"
+msgstr ""
+
+#
+# File: macros/hank.sci, line: 60
+#, c-format
+msgid "%s: Wrong size for input arguments: Incompatible sizes.\n"
+msgstr ""
+
+#
+# File: macros/hilb.sci, line: 42
+#, c-format
+msgid "%s: Wrong type for input argument #%d: An odd integer expected.\n"
+msgstr ""
+
+#
+# File: macros/idct.sci, line: 13
+# File: macros/idst.sci, line: 13
+# File: macros/ifft.sci, line: 13
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Array of double expected.\n"
+msgstr ""
+
+#
+# File: macros/iir.sci, line: 38
+# File: macros/trans.sci, line: 21
+#, c-format
+msgid "%s: Wrong number of output arguments: %d or %d expected.\n"
+msgstr ""
+
+#
+# File: macros/iir.sci, line: 48
+# File: macros/lattn.sci, line: 58
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Non-negative integers expected.\n"
+msgstr ""
+
+#
+# File: macros/iir.sci, line: 65
+# File: macros/iir.sci, line: 68
+# File: macros/lattn.sci, line: 67
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in the interval "
+"[%s, %s].\n"
+msgstr ""
+
+#
+# File: macros/lattn.sci, line: 76
+# File: macros/levin.sci, line: 52
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A tall matrix expected.\n"
+msgstr ""
+
+#
+# File: macros/lattn.sci, line: 89
+# File: macros/lattn.sci, line: 98
+#, c-format
+msgid "%s: Wrong values for input arguments #%d and #%d.\n"
+msgstr ""
+
+#
+# File: macros/pspect.sci, line: 38
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Argument #%d expected to be "
+"less than argument #%d.\n"
+msgstr ""
+
+#
+# File: macros/remezb.sci, line: 40
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: Must be in the interval [%s, %s].\n"
+msgstr ""
+
+#
+# File: macros/remezb.sci, line: 45
+# File: macros/remezb.sci, line: 48
+# File: macros/yulewalk.sci, line: 44
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"
+msgstr ""
+
+#
+# File: macros/system.sci, line: 33
+#, c-format
+msgid "%s: Wrong number of input argument(s).\n"
+msgstr ""
+
+#
+# File: macros/trans.sci, line: 27
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: rational fraction array expected.\n"
+msgstr ""
+
+#
+# File: macros/trans.sci, line: 65
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A %d elements array expected.\n"
+msgstr ""
+
+#
+# File: macros/wfir.sci, line: 57
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be odd.\n"
+msgstr ""
+
+#
+# File: macros/wfir.sci, line: 62
+# File: macros/window.sci, line: 33
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+
+#
+# File: macros/wfir.sci, line: 66
+# File: macros/wfir.sci, line: 74
+# File: macros/window.sci, line: 37
+# File: macros/window.sci, line: 45
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+
+#
+# File: macros/wfir.sci, line: 69
+# File: macros/wfir.sci, line: 77
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the interval %s.\n"
+msgstr ""
+
+#
+# File: macros/wfir.sci, line: 80
+#, c-format
+msgid "%s: Elements of %dth argument must be in increasing order.\n"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 53
+msgid "&File"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 54
+msgid "&Tools"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 55
+msgid "&Edit"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 56
+msgid "&?"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 62
+msgid "WFIR settings"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 86
+msgid "Filter type"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 113
+msgid "Band pass"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 113
+msgid "High pass"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 113
+msgid "Low pass"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 113
+msgid "Stop Band"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 135
+msgid "Window type"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 162
+msgid "Hanning"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 162
+msgid "Rectangular"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 162
+msgid "Triangular"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 163
+msgid "Chebychev main lobe"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 163
+msgid "Chebychev side lobe"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 163
+msgid "Hamming"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 163
+msgid "Kaiser"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 192
+msgid "Sampling Frequency (Hz)"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 226
+msgid "Filter Order"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 281
+msgid "Low cutoff frequency (Hz)"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 335
+msgid "High cutoff frequency (Hz)"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 390
+msgid "Parameter"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 447
+msgid "View"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 475
+msgid "Ok"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 490
+msgid "Cancel"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 505
+msgid "Help"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 660
+msgid "Window main lobe width"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 673
+msgid "maximum side-lobe height"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 700
+# File: macros/wfir_gui.sci, line: 803
+msgid "frequency (Hz)"
+msgstr ""
+
+#
+# File: macros/wfir_gui.sci, line: 701
+# File: macros/wfir_gui.sci, line: 804
+msgid "Magnitude (dB)"
+msgstr ""
+
+#
+# File: macros/window.sci, line: 41
+#, c-format
+msgid "%s: Input argument #%d must be strictly positive.\n"
+msgstr ""
+
+#
+# File: macros/window.sci, line: 50
+# File: macros/window.sci, line: 53
+# File: macros/window.sci, line: 58
+#, c-format
+msgid "%s: Wrong value for input argument #%d: incorrect element #%d\n"
+msgstr ""
+
+#
+# File: macros/xcorr.sci, line: 24
+# File: macros/xcorr.sci, line: 46
+# File: macros/xcorr.sci, line: 55
+# File: macros/xcov.sci, line: 24
+# File: macros/xcov.sci, line: 46
+# File: macros/xcov.sci, line: 56
+# File: macros/xcov.sci, line: 60
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real or complex vector expected.\n"
+msgstr ""
+
+#
+# File: macros/xcorr.sci, line: 35
+# File: macros/xcorr.sci, line: 60
+# File: macros/xcov.sci, line: 35
+# File: macros/xcov.sci, line: 66
+#, c-format
+msgid "%s: Wrong type for argument #%d: an integer expected.\n"
+msgstr ""
+
+#
+# File: macros/xcorr.sci, line: 39
+# File: macros/xcorr.sci, line: 64
+# File: macros/xcov.sci, line: 39
+# File: macros/xcov.sci, line: 70
+#, c-format
+msgid ""
+"%s: Wrong value for argument #%d: the expected value must be greater than "
+"%d.\n"
+msgstr ""
+
+#
+# File: macros/yulewalk.sci, line: 53
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: The first element must be %s and "
+"the last %s.\n"
+msgstr ""
+
+#
+# File: macros/yulewalk.sci, line: 62
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in increasing "
+"order.\n"
+msgstr ""
+
+#
+# File: macros/yulewalk.sci, line: 75
+#, c-format
+msgid "%s: Too abrupt change near end of frequency range.\n"
+msgstr ""
diff --git a/modules/signal_processing/locales/uk_UA.po b/modules/signal_processing/locales/uk_UA.po
new file mode 100755
index 000000000..1e4b63e4f
--- /dev/null
+++ b/modules/signal_processing/locales/uk_UA.po
@@ -0,0 +1,666 @@
+# Ukrainian translation for scilab
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the scilab package.
+#
+# Yuri Chornoivan <yurchor@gmail.com>, 2010, 2011.
+# Yuri Chornoivan <yurchor@ukr.net>, 2012, 2013.
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2014-09-30 16:56+0000\n"
+"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
+"Language-Team: Ukrainian <translation@linux.org.ua>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: uk\n"
+
+#, c-format
+msgid "%s: Can not read input argument #%d.\n"
+msgstr "%s: не вдалося прочитати вхідний параметр №%d.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+"%s: Помилкове значення вхідного параметра №%d: слід використовувати «%s» або "
+"«%s».\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real vector expected.\n"
+msgstr ""
+"%s: помилковий тип параметра №%d: мало бути вказано вектор дійсних значень.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex vector expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: слід використовувати вектор "
+"дійсних або комплексних значень.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n"
+msgstr ""
+"%s: помилковий тип параметра №%d: слід використовувати матрицю з дійсних або "
+"комплексних значень.\n"
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr "%s: помилка під час спроби виділення пам’яті.\n"
+
+msgid "Simulation of an ARMAX process:"
+msgstr "Моделювання процесу ARMAX:"
+
+msgid "Identification ARX (least square):"
+msgstr "Визначення ARX (метод найменших квадратів):"
+
+msgid "Simulation of an ARMAX process: "
+msgstr "Моделювання процесу ARMAX: "
+
+msgid "Identification ARX (least square): "
+msgstr "Визначення ARX (метод найменших квадратів): "
+
+msgid "Arma Spectral power estimation:"
+msgstr "Оцінка потужності спектра ARMA:"
+
+msgid "Arma identification"
+msgstr "Визначення за ARMA"
+
+msgid "Theoretical value"
+msgstr "Теоретичне значення"
+
+msgid "Using macro mese"
+msgstr "Використання макросу mese"
+
+msgid "Spectral power"
+msgstr "Спектральна потужність"
+
+msgid "frequency"
+msgstr "частота"
+
+msgid "spectral estimate"
+msgstr "оцінка спектральної щільності"
+
+msgid "Press Return to continue ... \n"
+msgstr "Натисніть Enter, щоб продовжити… \n"
+
+msgid "filtered signal"
+msgstr "фільтрований сигнал"
+
+msgid "given noisy signal"
+msgstr "отриманий сигнал з перешкодами"
+
+msgid "Signal"
+msgstr "Сигнал"
+
+msgid "2 points convolution"
+msgstr "2-точкова згортка"
+
+msgid "3 points convolution"
+msgstr "3-точкова згортка"
+
+msgid "Signal derivative estimate"
+msgstr "Наближена похідна сигналу"
+
+msgid "Choose filter type and parameters"
+msgstr "Виберіть тип фільтрування та параметри"
+
+msgid "Discrete IIR filter "
+msgstr "Дискретний IIR-фільтр "
+
+msgid "Discrete IIR filter: low pass fr < 0.2"
+msgstr "Дискретний IIR-фільтр: нижня частота < 0.2"
+
+msgid "Discrete IIR filter: band pass 0.15 < fr < 0.25"
+msgstr "Дискретний IIR-фільтр: смуга пропускання 0.15 < частота < 0.25"
+
+msgid "Minimax FIR filter"
+msgstr "Мінімаксний FIR-фільтр"
+
+msgid "low pass cut-off in [.23,.27]"
+msgstr "нижні частоти обрізання на [.23,.27]"
+
+msgid "length 33"
+msgstr "довжина 33"
+
+msgid "Remez Triangular filter"
+msgstr "Трикутний фільтр Ремеза"
+
+msgid "magnitude error"
+msgstr "помилка у амплітуді"
+
+msgid "Signal Processing"
+msgstr "Обробка сигналів"
+
+msgid "Spectral Estimation"
+msgstr "Спектральне оцінювання"
+
+msgid "IIR filter design"
+msgstr "Схема з IIR-фільтром"
+
+msgid "Minimax FIR filter design"
+msgstr "Схема з мінімаксним FIR-фільтром"
+
+msgid "Discrete IIR filter"
+msgstr "Дискретний IIR-фільтр"
+
+msgid "Wiener filter"
+msgstr "Фільтр Вінера"
+
+msgid "Bode plots"
+msgstr "Графіки Боде"
+
+msgid "Window FIR filters"
+msgstr "Діапазонні FIR-фільтри"
+
+msgid "1-D convolution"
+msgstr "Одновимірна згортка"
+
+msgid "2-D convolution"
+msgstr "Двовимірна згортка"
+
+msgid "Arma simulation and identification"
+msgstr "Моделювання та визначення ARMA"
+
+msgid "Arma, bidimensional version"
+msgstr "ARMA, двовимірна версія"
+
+msgid "Arma, Spectral power estimation"
+msgstr "ARMA, оцінка потужності спектра"
+
+msgid "Data spectrum"
+msgstr "Спектр даних"
+
+msgid "magnitude"
+msgstr "амплітуда"
+
+msgid "Spectral estimation"
+msgstr "Спектральне оцінювання"
+
+msgid "spectral power"
+msgstr "спектральна потужність"
+
+msgid "estimates xf"
+msgstr "оцінки xf"
+
+msgid "estimates xs"
+msgstr "оцінки xs"
+
+msgid "real state"
+msgstr "поточний стан"
+
+msgid "Windowed FIR Low pass Filter"
+msgstr "Віконний фільтр низьких частот зі СІХ (FIR)"
+
+msgid "Kaiser window, cut-off: 0.2"
+msgstr "Віконна Кайзера, обрізання: 0.2"
+
+msgid "Hamming window, cut-off: 0.2, 0.3"
+msgstr "Віконна Гаммінґа, обрізання: 0.2, 0.3"
+
+msgid "length 127"
+msgstr "довжина 127"
+
+msgid "Windowed FIR Band pass Filter"
+msgstr "Віконний фільтр діапазону частот зі СІХ (FIR)"
+
+msgid "Chebyshev window, cut-off: 0.15, 0.35"
+msgstr "Віконна Чебишева, обрізання: 0.15, 0.35"
+
+msgid "length 55"
+msgstr "довжина 55"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"
+msgstr ""
+"%s: помилкове значення вхідного параметра №%d: слід використовувати значення "
+"з набору {%s}.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Array of floating point numbers "
+"expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: слід використовувати масив зі "
+"значень з плаваючою комою.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A scalar expected.\n"
+msgstr ""
+"%s: помилкова розмірність вхідного параметра №%d: слід використовувати "
+"дійсне число.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n"
+msgstr ""
+"%s: помилкова розмірність вхідного параметра №%d: слід використовувати "
+"поліном.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: degree must be in the set {%s}.\n"
+msgstr ""
+"%s: помилкові значення вхідного параметра №%d: слід встановити значення "
+"степеня з набору {%s}.\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same degree expected.\n"
+msgstr "%s: несумісні вхідні параметри №%d і №%d: степені мають збігатися.\n"
+
+#, c-format
+msgid "%s: Input argument #%d must be real.\n"
+msgstr "%s: вхідний параметр №%d має бути дійсним числом.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Elements must be positive.\n"
+msgstr ""
+"%s: помилкові значення вхідного параметра №%d: елементи мають бути "
+"додатніми.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Distance between Max and Min "
+"elements must be greater than %g.\n"
+msgstr ""
+"%s: помилкові значення вхідного параметра №%d: відстань між максимальним та "
+"мінімальним елементами має бути більшою за %g.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Same numbers of elements "
+"expected.\n"
+msgstr ""
+"%s: несумісні вхідні параметри №%d і №%d: слід використовувати однакову "
+"кількість елементів.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Not sampled high enough.\n"
+msgstr "%s: помилкові значення вхідного параметра №%d: недостатня частота.\n"
+
+#, c-format
+msgid "%s: Wrong size for argument #%d: Vector expected.\n"
+msgstr "%s: помилковий розмір параметра №%d: слід використовувати вектор.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n"
+msgstr ""
+"%s: помилкове значення вхідного параметра №%d: слід використовувати %s або "
+"%s.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d expected.\n"
+msgstr ""
+"%s: помилкова кількість вхідних параметрів: слід використовувати %d.\n"
+
+#, c-format
+msgid "%s: Arguments #%d and #%d must have the same sizes.\n"
+msgstr "%s: параметри №%d та №%d повинні мати однакову розмірність.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d to %d expected.\n"
+msgstr ""
+"%s: помилкова кількість вхідних параметрів: слід використовувати від %d до "
+"%d.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d or %d expected.\n"
+msgstr ""
+"%s: помилкова кількість вхідних параметрів: слід використовувати %d або %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: мало бути використано матрицю або "
+"поліном.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: слід використовувати матрицю "
+"дійсних значень.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Vector expected.\n"
+msgstr ""
+"%s: помилкова розмірність вхідного параметра №%d: слід використовувати "
+"вектор.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix "
+"or two polynomials expected.\n"
+msgstr ""
+"%s: несумісні вхідні параметри №%d і №%d: мало бути вказано поліном і "
+"матрицю 1х1 або два поліноми.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: First element must not be %s.\n"
+msgstr ""
+"%s: помилкове значення вхідного параметра №%d: першим елементом не може бути "
+"%s.\n"
+
+#, c-format
+msgid "%s: Filter order too small.\n"
+msgstr "%s: надто малий порядок фільтрування.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A single input, single output system "
+"expected.\n"
+msgstr ""
+"%s: помилкова розмірність вхідного параметра №%d: слід використовувати "
+"систему з одним входом і одним виходом.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Linear dynamical system or row "
+"vector of floats expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: слід використовувати лінійну "
+"динамічну систему або вектор-рядок дійсних чисел.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d or %d expected.\n"
+msgstr "%s: помилкова кількість вхідних параметрів: мало бути %d або %d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A real or polynomial matrix or a "
+"rational expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: мало бути використано матрицю з "
+"дійсних чисел або поліномів чи раціональне число.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A discrete system expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: мало бути використано дискретну "
+"систему.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d expected.\n"
+msgstr "%s: помилкова кількість вхідних параметрів: мало бути %d.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: мало бути додатне ціле число.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s: помилкова розмірність вхідного параметра №%d: мало бути додатне ціле "
+"число.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A positive integer expected.\n"
+msgstr ""
+"%s: помилкове значення вхідного параметра №%d: мало бути використано додатне "
+"ціле число.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Unsupported '%s' type.\n"
+msgstr ""
+"%s: помилкові значення вхідного параметра №%d: непідтримуваний тип «%s».\n"
+
+#, c-format
+msgid "%s: Wrong size for input arguments: Incompatible sizes.\n"
+msgstr ""
+"%s: помилкові розмірності вхідних параметрів: несумісні розмірності.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: An odd integer expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: мало бути вказано непарне ціле "
+"число.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Array of double expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: мало бути вказано масив зі "
+"значень типу double.\n"
+
+#, c-format
+msgid "%s: Wrong number of output arguments: %d or %d expected.\n"
+msgstr ""
+"%s: помилкова кількість вихідних параметрів: слід використовувати %d або "
+"%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Non-negative integers expected.\n"
+msgstr ""
+"%s: помилкові значення вхідного параметра №%d: слід використовувати "
+"невід’ємні цілі числа\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in the interval "
+"[%s, %s].\n"
+msgstr ""
+"%s: помилкові значення вхідного параметра №%d: слід використовувати значення "
+"елементів у інтервалі [%s, %s].\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A tall matrix expected.\n"
+msgstr ""
+"%s: помилковий розмір вхідного параметра №%d: слід використовувати матрицю, "
+"де кількість стовпчиків менша за кількість рідків.\n"
+
+#, c-format
+msgid "%s: Wrong values for input arguments #%d and #%d.\n"
+msgstr "%s: помилкові значення вхідних параметрів №%d та №%d.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Argument #%d expected to be "
+"less than argument #%d.\n"
+msgstr ""
+"%s: несумісні вхідні параметри №%d та №%d: параметр №%d повинен мати менше "
+"значення за значення параметра №%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: Must be in the interval [%s, %s].\n"
+msgstr ""
+"%s: помилкове значення вхідного параметра №%d: слід використовувати значення "
+"у інтервалі [%s, %s].\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"
+msgstr ""
+"%s: несумісні вхідні параметри №%d і №%d: слід використовувати однакову "
+"розмірність.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s).\n"
+msgstr "%s: помилкова кількість вхідних параметрів.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: rational fraction array expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: слід використовувати масив з "
+"раціональних дробів.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d elements array expected.\n"
+msgstr ""
+"%s: помилкова розмірність вхідного параметра №%d: слід використовувати масив "
+"з %d елементами.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be odd.\n"
+msgstr ""
+"%s: помилкове значення вхідного параметра №%d: слід використовувати непарне "
+"значення.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: слід використовувати вектор "
+"дійсних чисел %d-на-%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+"%s: помилкова розмірність вхідного параметра №%d: слід використовувати "
+"вектор дійсних чисел %d-на-%d.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the interval %s.\n"
+msgstr ""
+"%s: помилкове значення вхідного параметра №%d: значення має перебувати у "
+"інтервалі %s.\n"
+
+#, c-format
+msgid "%s: Elements of %dth argument must be in increasing order.\n"
+msgstr "%s: елементи параметра %d слід вказувати за зростанням.\n"
+
+msgid "&File"
+msgstr "&Файл"
+
+msgid "&Tools"
+msgstr "&Інструменти"
+
+msgid "&Edit"
+msgstr "З&міни"
+
+msgid "&?"
+msgstr "&Довідка"
+
+msgid "WFIR settings"
+msgstr "Параметри фільтра ХСІХ"
+
+msgid "Filter type"
+msgstr "Тип фільтрування"
+
+msgid "Band pass"
+msgstr "Смуга пропускання"
+
+msgid "High pass"
+msgstr "Верхні частоти"
+
+msgid "Low pass"
+msgstr "Нижні частоти"
+
+msgid "Stop Band"
+msgstr "Смуга придушення"
+
+msgid "Window type"
+msgstr "Тип вікна"
+
+msgid "Hanning"
+msgstr "Ганнів"
+
+msgid "Rectangular"
+msgstr "Прямокутне"
+
+msgid "Triangular"
+msgstr "Трикутне"
+
+msgid "Chebychev main lobe"
+msgstr "Основна пелюстка за Чебишевим"
+
+msgid "Chebychev side lobe"
+msgstr "Бічна пелюстка за Чебишевим"
+
+msgid "Hamming"
+msgstr "Гаммінґа"
+
+msgid "Kaiser"
+msgstr "Кайзера"
+
+msgid "Sampling Frequency (Hz)"
+msgstr "Частота дискретизації (у Гц)"
+
+msgid "Filter Order"
+msgstr "Порядок фільтрування"
+
+msgid "Low cutoff frequency (Hz)"
+msgstr "Нижня частота обрізання (у Гц)"
+
+msgid "High cutoff frequency (Hz)"
+msgstr "Верхня частота обрізання (у Гц)"
+
+msgid "Parameter"
+msgstr "Параметр"
+
+msgid "View"
+msgstr "Перегляд"
+
+msgid "Ok"
+msgstr "Гаразд"
+
+msgid "Cancel"
+msgstr "Скасувати"
+
+msgid "Help"
+msgstr "Довідка"
+
+msgid "Window main lobe width"
+msgstr "Ширина основної пелюстки вікна"
+
+msgid "maximum side-lobe height"
+msgstr "максимальна висота бічної пелюстки"
+
+msgid "frequency (Hz)"
+msgstr "частота (у Гц)"
+
+msgid "Magnitude (dB)"
+msgstr "Амплітуда (у дБ)"
+
+#, c-format
+msgid "%s: Input argument #%d must be strictly positive.\n"
+msgstr "%s: вхідний параметр №%d має бути строго додатним.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: incorrect element #%d\n"
+msgstr ""
+"%s: помилкове значення вхідного параметра №%d: некоректний елемент №%d\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real or complex vector expected.\n"
+msgstr ""
+"%s: помилковий тип вхідного параметра №%d: слід використовувати вектор "
+"дійсних або комплексних значень.\n"
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: an integer expected.\n"
+msgstr "%s: помилковий тип параметра №%d: мало бути вказано ціле число.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for argument #%d: the expected value must be greater than "
+"%d.\n"
+msgstr ""
+"%s: помилкове значення параметра №%d: мало бути вказано значення, більше за "
+"%d.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: The first element must be %s and "
+"the last %s.\n"
+msgstr ""
+"%s: помилкові значення вхідного параметра №%d: першим елементом має бути %s, "
+"а останнім — %s.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in increasing "
+"order.\n"
+msgstr ""
+"%s: помилкові значення вхідного параметра №%d: елементи слід вказувати у "
+"порядку зростання.\n"
+
+#, c-format
+msgid "%s: Too abrupt change near end of frequency range.\n"
+msgstr "%s: занадто різка зміна поблизу до межі частотного діапазону.\n"
diff --git a/modules/signal_processing/locales/zh_CN.po b/modules/signal_processing/locales/zh_CN.po
new file mode 100755
index 000000000..12db23795
--- /dev/null
+++ b/modules/signal_processing/locales/zh_CN.po
@@ -0,0 +1,572 @@
+# Simplified Chinese translation for scilab
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2009-04-12 06:56+0000\n"
+"Last-Translator: Shiqi Yu <shiqi.yu@gmail.com>\n"
+"Language-Team: Simplified Chinese <zh_CN@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: \n"
+
+#, c-format
+msgid "%s: Can not read input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+msgid "Simulation of an ARMAX process:"
+msgstr ""
+
+msgid "Identification ARX (least square):"
+msgstr ""
+
+msgid "Simulation of an ARMAX process: "
+msgstr ""
+
+msgid "Identification ARX (least square): "
+msgstr ""
+
+msgid "Arma Spectral power estimation:"
+msgstr ""
+
+msgid "Arma identification"
+msgstr ""
+
+msgid "Theoretical value"
+msgstr ""
+
+msgid "Using macro mese"
+msgstr ""
+
+msgid "Spectral power"
+msgstr ""
+
+msgid "frequency"
+msgstr ""
+
+msgid "spectral estimate"
+msgstr ""
+
+msgid "Press Return to continue ... \n"
+msgstr ""
+
+msgid "filtered signal"
+msgstr ""
+
+msgid "given noisy signal"
+msgstr ""
+
+msgid "Signal"
+msgstr ""
+
+msgid "2 points convolution"
+msgstr ""
+
+msgid "3 points convolution"
+msgstr ""
+
+msgid "Signal derivative estimate"
+msgstr ""
+
+msgid "Choose filter type and parameters"
+msgstr ""
+
+msgid "Discrete IIR filter "
+msgstr ""
+
+msgid "Discrete IIR filter: low pass fr < 0.2"
+msgstr ""
+
+msgid "Discrete IIR filter: band pass 0.15 < fr < 0.25"
+msgstr ""
+
+msgid "Minimax FIR filter"
+msgstr ""
+
+msgid "low pass cut-off in [.23,.27]"
+msgstr ""
+
+msgid "length 33"
+msgstr ""
+
+msgid "Remez Triangular filter"
+msgstr ""
+
+msgid "magnitude error"
+msgstr ""
+
+msgid "Signal Processing"
+msgstr "信号处理"
+
+msgid "Spectral Estimation"
+msgstr ""
+
+msgid "IIR filter design"
+msgstr ""
+
+msgid "Minimax FIR filter design"
+msgstr ""
+
+msgid "Discrete IIR filter"
+msgstr ""
+
+msgid "Wiener filter"
+msgstr ""
+
+msgid "Bode plots"
+msgstr ""
+
+msgid "Window FIR filters"
+msgstr ""
+
+msgid "1-D convolution"
+msgstr ""
+
+msgid "2-D convolution"
+msgstr ""
+
+msgid "Arma simulation and identification"
+msgstr ""
+
+msgid "Arma, bidimensional version"
+msgstr ""
+
+msgid "Arma, Spectral power estimation"
+msgstr ""
+
+msgid "Data spectrum"
+msgstr ""
+
+msgid "magnitude"
+msgstr ""
+
+msgid "Spectral estimation"
+msgstr ""
+
+msgid "spectral power"
+msgstr ""
+
+msgid "estimates xf"
+msgstr ""
+
+msgid "estimates xs"
+msgstr ""
+
+msgid "real state"
+msgstr ""
+
+msgid "Windowed FIR Low pass Filter"
+msgstr ""
+
+msgid "Kaiser window, cut-off: 0.2"
+msgstr ""
+
+msgid "Hamming window, cut-off: 0.2, 0.3"
+msgstr ""
+
+msgid "length 127"
+msgstr ""
+
+msgid "Windowed FIR Band pass Filter"
+msgstr ""
+
+msgid "Chebyshev window, cut-off: 0.15, 0.35"
+msgstr ""
+
+msgid "length 55"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"
+msgstr "%s:输入参数#%d的值错误:必须在集合{%s}中。\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Array of floating point numbers "
+"expected.\n"
+msgstr "%s:输入参数#%d的类型错误:应该为浮点数组。\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A scalar expected.\n"
+msgstr "%s:输入参数#%d的大小错误:应该为一个标量。\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n"
+msgstr "%s:输入参数#%d的大小错误:应该为一个多项式。\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: degree must be in the set {%s}.\n"
+msgstr "%s:输入参数#%d的值错误:度数必须在集合{%s}中。\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same degree expected.\n"
+msgstr "%s:输入参数#%d和#%d不兼容:应该为同样的度数。\n"
+
+#, c-format
+msgid "%s: Input argument #%d must be real.\n"
+msgstr "%s:输入参数#%d必须为实数。\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Elements must be positive.\n"
+msgstr "%s:输入参数#%d的值错误:元素必须为正数。\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Distance between Max and Min "
+"elements must be greater than %g.\n"
+msgstr "%s:输入参数#%d的值错误:最大元素和最小元素的距离必须大于 %g。\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Same numbers of elements "
+"expected.\n"
+msgstr "%s:输入参数#%d和#%d不兼容:元素的数目相同。\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Not sampled high enough.\n"
+msgstr "%s:输入参数#%d的值错误:Not sampled high enough。\n"
+
+#, c-format
+msgid "%s: Wrong size for argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Arguments #%d and #%d must have the same sizes.\n"
+msgstr "%s:参数#%d和参数#%d必须为同样大小。\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d to %d expected.\n"
+msgstr "%s:输入参数的数目错误:应该为%d到%d个参数。\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d or %d expected.\n"
+msgstr "%s:输入参数数目错误:应该为%d个或%d个。\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix "
+"or two polynomials expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: First element must not be %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Filter order too small.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A single input, single output system "
+"expected.\n"
+msgstr "%s:输入参数#%d的大小错误:应该为一个单输入、单输出系统。\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Linear dynamical system or row "
+"vector of floats expected.\n"
+msgstr "%s:输入参数#%d的类型错误:应该为线性动态系统或浮点行向量。\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d or %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A real or polynomial matrix or a "
+"rational expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A discrete system expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d expected.\n"
+msgstr "%s:输入参数的数目错误:应该为%d。\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Unsupported '%s' type.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input arguments: Incompatible sizes.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: An odd integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Array of double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of output arguments: %d or %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Non-negative integers expected.\n"
+msgstr "%s:输入参数#%d的值错误:应该为非负整数矩阵。\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in the interval "
+"[%s, %s].\n"
+msgstr "%s:输入参数#%d的值错误:元素必须在区间[%s, %s]中。\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A tall matrix expected.\n"
+msgstr "%s:输入参数#%d的大小错误:应该为一个tall矩阵。\n"
+
+#, c-format
+msgid "%s: Wrong values for input arguments #%d and #%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Argument #%d expected to be "
+"less than argument #%d.\n"
+msgstr "%s:输入参数#%d和#%d不兼容:参数#%d应该小于参数#%d。\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: Must be in the interval [%s, %s].\n"
+msgstr "%s:输入参数#%d的值错误:必须在区间[%s, %s]中。\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"
+msgstr "%s:输入参数#%d和#%d不兼容:应该为同样大小。\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s).\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: rational fraction array expected.\n"
+msgstr "%s:输入参数#%d的类型错误:应该为有理分数数组。\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d elements array expected.\n"
+msgstr "%s:输入参数#%d的大小错误:应该为一个有%d个元素的数组。\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be odd.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the interval %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Elements of %dth argument must be in increasing order.\n"
+msgstr ""
+
+msgid "&File"
+msgstr ""
+
+msgid "&Tools"
+msgstr ""
+
+msgid "&Edit"
+msgstr ""
+
+msgid "&?"
+msgstr ""
+
+msgid "WFIR settings"
+msgstr ""
+
+msgid "Filter type"
+msgstr ""
+
+msgid "Band pass"
+msgstr ""
+
+msgid "High pass"
+msgstr ""
+
+msgid "Low pass"
+msgstr ""
+
+msgid "Stop Band"
+msgstr ""
+
+msgid "Window type"
+msgstr ""
+
+msgid "Hanning"
+msgstr ""
+
+msgid "Rectangular"
+msgstr ""
+
+msgid "Triangular"
+msgstr ""
+
+msgid "Chebychev main lobe"
+msgstr ""
+
+msgid "Chebychev side lobe"
+msgstr ""
+
+msgid "Hamming"
+msgstr ""
+
+msgid "Kaiser"
+msgstr ""
+
+msgid "Sampling Frequency (Hz)"
+msgstr ""
+
+msgid "Filter Order"
+msgstr ""
+
+msgid "Low cutoff frequency (Hz)"
+msgstr ""
+
+msgid "High cutoff frequency (Hz)"
+msgstr ""
+
+msgid "Parameter"
+msgstr ""
+
+msgid "View"
+msgstr ""
+
+msgid "Ok"
+msgstr ""
+
+msgid "Cancel"
+msgstr ""
+
+msgid "Help"
+msgstr ""
+
+msgid "Window main lobe width"
+msgstr ""
+
+msgid "maximum side-lobe height"
+msgstr ""
+
+msgid "frequency (Hz)"
+msgstr ""
+
+msgid "Magnitude (dB)"
+msgstr ""
+
+#, c-format
+msgid "%s: Input argument #%d must be strictly positive.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: incorrect element #%d\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real or complex vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: an integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for argument #%d: the expected value must be greater than "
+"%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: The first element must be %s and "
+"the last %s.\n"
+msgstr "%s:输入参数#%d的值错误:第一个元素必须是%s,最后一个是%s。\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in increasing "
+"order.\n"
+msgstr "%s:输入参数#%d的值错误:元素必须以升序排列。\n"
+
+#, c-format
+msgid "%s: Too abrupt change near end of frequency range.\n"
+msgstr "%s:在频率范围的结束处有非常突然的变化。\n"
diff --git a/modules/signal_processing/locales/zh_TW.po b/modules/signal_processing/locales/zh_TW.po
new file mode 100755
index 000000000..ff73d3374
--- /dev/null
+++ b/modules/signal_processing/locales/zh_TW.po
@@ -0,0 +1,572 @@
+# Traditional Chinese translation for scilab
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the scilab package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: scilab\n"
+"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n"
+"POT-Creation-Date: 2013-04-16 17:44+0100\n"
+"PO-Revision-Date: 2010-06-21 09:22+0000\n"
+"Last-Translator: tim loo <timloo0710@gmail.com>\n"
+"Language-Team: Traditional Chinese <zh_TW@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Launchpad (build 17413)\n"
+"Language: \n"
+
+#, c-format
+msgid "%s: Can not read input argument #%d.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Memory allocation error.\n"
+msgstr ""
+
+msgid "Simulation of an ARMAX process:"
+msgstr ""
+
+msgid "Identification ARX (least square):"
+msgstr ""
+
+msgid "Simulation of an ARMAX process: "
+msgstr ""
+
+msgid "Identification ARX (least square): "
+msgstr ""
+
+msgid "Arma Spectral power estimation:"
+msgstr ""
+
+msgid "Arma identification"
+msgstr "Arma 識別"
+
+msgid "Theoretical value"
+msgstr "理論值"
+
+msgid "Using macro mese"
+msgstr "使用巨集mese"
+
+msgid "Spectral power"
+msgstr "波譜倍數"
+
+msgid "frequency"
+msgstr "頻率"
+
+msgid "spectral estimate"
+msgstr "光譜的估算"
+
+msgid "Press Return to continue ... \n"
+msgstr ""
+
+msgid "filtered signal"
+msgstr ""
+
+msgid "given noisy signal"
+msgstr ""
+
+msgid "Signal"
+msgstr ""
+
+msgid "2 points convolution"
+msgstr ""
+
+msgid "3 points convolution"
+msgstr ""
+
+msgid "Signal derivative estimate"
+msgstr ""
+
+msgid "Choose filter type and parameters"
+msgstr ""
+
+msgid "Discrete IIR filter "
+msgstr ""
+
+msgid "Discrete IIR filter: low pass fr < 0.2"
+msgstr ""
+
+msgid "Discrete IIR filter: band pass 0.15 < fr < 0.25"
+msgstr ""
+
+msgid "Minimax FIR filter"
+msgstr ""
+
+msgid "low pass cut-off in [.23,.27]"
+msgstr ""
+
+msgid "length 33"
+msgstr ""
+
+msgid "Remez Triangular filter"
+msgstr ""
+
+msgid "magnitude error"
+msgstr ""
+
+msgid "Signal Processing"
+msgstr "訊號處理"
+
+msgid "Spectral Estimation"
+msgstr ""
+
+msgid "IIR filter design"
+msgstr ""
+
+msgid "Minimax FIR filter design"
+msgstr ""
+
+msgid "Discrete IIR filter"
+msgstr ""
+
+msgid "Wiener filter"
+msgstr ""
+
+msgid "Bode plots"
+msgstr ""
+
+msgid "Window FIR filters"
+msgstr ""
+
+msgid "1-D convolution"
+msgstr ""
+
+msgid "2-D convolution"
+msgstr ""
+
+msgid "Arma simulation and identification"
+msgstr ""
+
+msgid "Arma, bidimensional version"
+msgstr ""
+
+msgid "Arma, Spectral power estimation"
+msgstr ""
+
+msgid "Data spectrum"
+msgstr ""
+
+msgid "magnitude"
+msgstr ""
+
+msgid "Spectral estimation"
+msgstr ""
+
+msgid "spectral power"
+msgstr ""
+
+msgid "estimates xf"
+msgstr "計算xf"
+
+msgid "estimates xs"
+msgstr "計算xs"
+
+msgid "real state"
+msgstr "真實的狀態"
+
+msgid "Windowed FIR Low pass Filter"
+msgstr ""
+
+msgid "Kaiser window, cut-off: 0.2"
+msgstr ""
+
+msgid "Hamming window, cut-off: 0.2, 0.3"
+msgstr ""
+
+msgid "length 127"
+msgstr ""
+
+msgid "Windowed FIR Band pass Filter"
+msgstr ""
+
+msgid "Chebyshev window, cut-off: 0.15, 0.35"
+msgstr ""
+
+msgid "length 55"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"
+msgstr "%s: 第 %d 個輸入參數數值錯誤: 應 in the set {%s}.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Array of floating point numbers "
+"expected.\n"
+msgstr "%s: 第 %d 輸入參數型別有誤: 浮點數的向量才對.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A scalar expected.\n"
+msgstr "%s: 第 %d 個輸入參數長度錯誤: 應為純量.\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n"
+msgstr "%s: 第 %d 輸入參數長度錯誤: 應為一多項式.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: degree must be in the set {%s}.\n"
+msgstr "%s: 第#%d個輸入參數值有誤 :度數要在集合{%s}中.\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same degree expected.\n"
+msgstr "%s: 輸入參數 #%d and #%d 不相容: 一樣的度數才對.\n"
+
+#, c-format
+msgid "%s: Input argument #%d must be real.\n"
+msgstr "%s: 第 %d 輸入參數應為實數.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Elements must be positive.\n"
+msgstr "%s:第 %d 輸入參數值有誤: 元素必須是正值.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Distance between Max and Min "
+"elements must be greater than %g.\n"
+msgstr "%s: 第 %d 輸入參數值有誤: 在最大最小元素間的距離必須比%g大才對.\n"
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Same numbers of elements "
+"expected.\n"
+msgstr "%s: 輸入參數 #%d and #%d 不相容:相同元素個素才對.\n"
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Not sampled high enough.\n"
+msgstr "%s: 第#%d個輸入參數值有誤 : 抽樣樣本不夠高.\n"
+
+#, c-format
+msgid "%s: Wrong size for argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: %s or %s expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Arguments #%d and #%d must have the same sizes.\n"
+msgstr "%s: 參數#%d and #%d 必須相同大小.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d to %d expected.\n"
+msgstr "%s: 輸入參數之數目錯誤: 應為 %d 到 %d 之數.\n"
+
+#, c-format
+msgid "%s: Wrong number of input arguments: %d or %d expected.\n"
+msgstr "%s: 輸入參數數目錯誤: 預期為 %d 或 %d 個.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: Vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix "
+"or two polynomials expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: First element must not be %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Filter order too small.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A single input, single output system "
+"expected.\n"
+msgstr "%s: 第 %d 輸入參數長度錯誤: 應為一 SISO 系統.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Linear dynamical system or row "
+"vector of floats expected.\n"
+msgstr "%s: 第 %d 輸入參數型別有誤: 線性動態系統或是浮點數的列向量才對.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d or %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A real or polynomial matrix or a "
+"rational expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A discrete system expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of input argument(s): %d expected.\n"
+msgstr "%s: 輸入參數數目錯誤:應為 %d.\n"
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: A positive integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong values for input argument #%d: Unsupported '%s' type.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong size for input arguments: Incompatible sizes.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: An odd integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for input argument #%d: Array of double expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong number of output arguments: %d or %d expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Non-negative integers expected.\n"
+msgstr "%s: 第 %d 個輸入參數數值錯誤: 應為非負整數.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in the interval "
+"[%s, %s].\n"
+msgstr "%s: 第 %d 輸入參數值有誤: 元素必在在範圍[%s, %s].\n"
+
+#, c-format
+msgid "%s: Wrong size for input argument #%d: A tall matrix expected.\n"
+msgstr "%s: 第 %d 輸入參數長度錯誤 : tall 矩陣才對.\n"
+
+#, c-format
+msgid "%s: Wrong values for input arguments #%d and #%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Incompatible input arguments #%d and #%d: Argument #%d expected to be "
+"less than argument #%d.\n"
+msgstr "%s: 輸入參數 #%d and #%d 不相容: 參數 #%d 比#%d 小才對.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong value for input argument #%d: Must be in the interval [%s, %s].\n"
+msgstr "%s: 第 %d 個輸入參數數值錯誤: 應在區間 [%s, %s] 內.\n"
+
+#, c-format
+msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"
+msgstr "%s: 第 %d 及 第 %d 輸入參數不相容 : 應為相同大小.\n"
+
+#, c-format
+msgid "%s: Wrong number of input argument(s).\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: rational fraction array expected.\n"
+msgstr "%s: 第 %d 輸入參數型別有誤: 有理數的分式陣列才對.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d elements array expected.\n"
+msgstr "%s: 輸入參數大小錯誤 #%d: %d 元素的陣列才對.\n"
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be odd.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: Must be in the interval %s.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Elements of %dth argument must be in increasing order.\n"
+msgstr ""
+
+msgid "&File"
+msgstr ""
+
+msgid "&Tools"
+msgstr ""
+
+msgid "&Edit"
+msgstr ""
+
+msgid "&?"
+msgstr ""
+
+msgid "WFIR settings"
+msgstr ""
+
+msgid "Filter type"
+msgstr ""
+
+msgid "Band pass"
+msgstr ""
+
+msgid "High pass"
+msgstr ""
+
+msgid "Low pass"
+msgstr ""
+
+msgid "Stop Band"
+msgstr ""
+
+msgid "Window type"
+msgstr ""
+
+msgid "Hanning"
+msgstr ""
+
+msgid "Rectangular"
+msgstr ""
+
+msgid "Triangular"
+msgstr ""
+
+msgid "Chebychev main lobe"
+msgstr ""
+
+msgid "Chebychev side lobe"
+msgstr ""
+
+msgid "Hamming"
+msgstr ""
+
+msgid "Kaiser"
+msgstr ""
+
+msgid "Sampling Frequency (Hz)"
+msgstr ""
+
+msgid "Filter Order"
+msgstr ""
+
+msgid "Low cutoff frequency (Hz)"
+msgstr ""
+
+msgid "High cutoff frequency (Hz)"
+msgstr ""
+
+msgid "Parameter"
+msgstr ""
+
+msgid "View"
+msgstr ""
+
+msgid "Ok"
+msgstr ""
+
+msgid "Cancel"
+msgstr ""
+
+msgid "Help"
+msgstr ""
+
+msgid "Window main lobe width"
+msgstr ""
+
+msgid "maximum side-lobe height"
+msgstr ""
+
+msgid "frequency (Hz)"
+msgstr ""
+
+msgid "Magnitude (dB)"
+msgstr ""
+
+#, c-format
+msgid "%s: Input argument #%d must be strictly positive.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong value for input argument #%d: incorrect element #%d\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong type for input argument #%d: Real or complex vector expected.\n"
+msgstr ""
+
+#, c-format
+msgid "%s: Wrong type for argument #%d: an integer expected.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong value for argument #%d: the expected value must be greater than "
+"%d.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: The first element must be %s and "
+"the last %s.\n"
+msgstr "%s: 第#%d個輸入參數值有誤 :第一個應是%s最後一個應是%s才對.\n"
+
+#, c-format
+msgid ""
+"%s: Wrong values for input argument #%d: Elements must be in increasing "
+"order.\n"
+msgstr "%s: 第 %d 輸入參數值有誤: 元素必須是遞增排序.\n"
+
+#, c-format
+msgid "%s: Too abrupt change near end of frequency range.\n"
+msgstr "%s: 靠近頻率範圍的結束部分,太突然的改變.\n"
diff --git a/modules/signal_processing/macros/%k.bin b/modules/signal_processing/macros/%k.bin
new file mode 100755
index 000000000..8b3f2cc1a
--- /dev/null
+++ b/modules/signal_processing/macros/%k.bin
Binary files differ
diff --git a/modules/signal_processing/macros/%k.sci b/modules/signal_processing/macros/%k.sci
new file mode 100755
index 000000000..6cc05a101
--- /dev/null
+++ b/modules/signal_processing/macros/%k.sci
@@ -0,0 +1,39 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - F.D
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [K]=%k(m)
+ //K=%k(m)
+ //Calculates Jacobi's complete elliptic integral
+ //of the first kind:
+ // K = integral from 0 to 1 of
+ // [(1-t**2)(1-m*t**2)]**(-1/2)
+ //m is allowed to be a vector
+ //Ref :Abramowitz and Stegun page 598
+ // m :Parameter used in calculating the elliptic
+ // :integral where 0<m<1.
+ // K :Value of the elliptic integral from 0 to 1
+ // :on the real axis.
+ //
+ //!
+
+ [n1,n2]=size(m);
+ un=ones(n1,n2);
+ a=un;
+ b=sqrt(un-m);
+ c=sqrt(m);
+ while max(abs(c)) > %eps,
+ an=0.5*(a+b);
+ bn=sqrt(a.*b);
+ cn=0.5*(a-b);
+ a=an;
+ b=bn;
+ c=cn;
+ end,
+ K=%pi*un./(2*a);
+endfunction
diff --git a/modules/signal_processing/macros/%sn.bin b/modules/signal_processing/macros/%sn.bin
new file mode 100755
index 000000000..66874e852
--- /dev/null
+++ b/modules/signal_processing/macros/%sn.bin
Binary files differ
diff --git a/modules/signal_processing/macros/%sn.sci b/modules/signal_processing/macros/%sn.sci
new file mode 100755
index 000000000..94139476d
--- /dev/null
+++ b/modules/signal_processing/macros/%sn.sci
@@ -0,0 +1,36 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - F.D
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [y]=%sn(x,m)
+ //Jacobi 's elliptic function with parameter m
+ //which computes the inverse of the elliptic
+ //integral for the parameter m.
+ //x may be a vector.
+ //The amplitude is computed in fortran and apply
+ //the addition formulas for elliptic functions
+ // x :A point inside the fundamental rectangle
+ // :defined by the elliptic integral
+ // m :Parameter of the elliptic integral (0<m<1)
+ // y :Result
+ //
+ //!
+
+ [n1,n2]=size(x);
+ n=n1*n2;
+ a=amell(real(x),sqrt(m));
+ s=sin(a);
+ c=cos(a);
+ d=sqrt(ones(n1,n2)-m*s.*s);
+ m1=1-m;
+ a1=amell(imag(x),sqrt(m1));
+ s1=sin(a1);
+ c1=cos(a1);
+ d1=sqrt(ones(n1,n2)-m1*s1.*s1);
+ y=(s.*d1+%i*c.*d.*s1.*c1)./(c1.*c1+m*s.*s.*s1.*s1);
+endfunction
diff --git a/modules/signal_processing/macros/analpf.bin b/modules/signal_processing/macros/analpf.bin
new file mode 100755
index 000000000..a3f641f40
--- /dev/null
+++ b/modules/signal_processing/macros/analpf.bin
Binary files differ
diff --git a/modules/signal_processing/macros/analpf.sci b/modules/signal_processing/macros/analpf.sci
new file mode 100755
index 000000000..6418b850e
--- /dev/null
+++ b/modules/signal_processing/macros/analpf.sci
@@ -0,0 +1,62 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [hs,pols,zers,gain]=analpf(n,fdesign,rp,omega)
+ //[hs,pols,zers,gain]=analpf(n,fdesign,rp,omega)
+ //Creates analog low-pass filter with cut-off frequency at omega
+ // n :filter order (pos. integer)
+ // fdesign :filter design method
+ // : fdesign=('butt','cheb1','cheb2','ellip')
+ // rp :2-vector of error values for cheb1, cheb2, and
+ // :ellip filters where only rp(1) is used for
+ // :cheb1 case, only rp(2) is used for cheb2 case, and
+ // :rp(1) and rp(2) are both used for ellip case.
+ // : 0<rp(1),rp(2)<1
+ // :for cheb1 filters: 1-rp(1)<ripple<1 in passband
+ // :for cheb2 filters: 0<ripple<rp(2) in stopband
+ // :for ellip filters: 1-rp(1)<ripple<1 in passband
+ // : 0<ripple<rp(2) in stopband
+ // omega :cut-off frequency of low-pass filter in rd/s
+ // hs :rational polynomial transfer function
+ // pols :poles of transfer function
+ // zers :zeros of transfer function
+ // gain :gain of transfer function
+ //
+ // hs=gain*poly(zers,'s')/poly(pols,'s')
+ //
+ //!
+
+
+ select fdesign
+ case "butt" then
+ [pols,gain]=zpbutt(n,omega);
+ zers=[];
+ hs=gain/real(poly(pols,"s"));
+ case "cheb1" then
+ epsilon=sqrt(-1+1/(1-rp(1))**2);
+ [pols,gain]=zpch1(n,epsilon,omega);
+ zers=[];
+ hs=gain/real(poly(pols,"s"));
+ case "cheb2" then
+ att=1/rp(2);
+ [zers,pols,gain]=zpch2(n,att,omega);
+ hs=gain*real(poly(zers,"s"))./real(poly(pols,"s"));
+ case "ellip" then
+ epsilon=sqrt(-1+1/(1-rp(1))**2);
+ att=1/rp(2);
+ m=find_freq(epsilon,att,n);
+ omegar=omega/sqrt(m);
+ [zers,pols,gain]=zpell(epsilon,att,omega,omegar);
+ hs=gain*real(poly(zers,"s"))./real(poly(pols,"s"));
+ else
+ error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),..
+ "analpf",2,"''butt'',''cheb1'',''cheb2'',''ellip''"));
+ end
+ hs.dt="c";
+endfunction
diff --git a/modules/signal_processing/macros/bilt.bin b/modules/signal_processing/macros/bilt.bin
new file mode 100755
index 000000000..26030534a
--- /dev/null
+++ b/modules/signal_processing/macros/bilt.bin
Binary files differ
diff --git a/modules/signal_processing/macros/bilt.sci b/modules/signal_processing/macros/bilt.sci
new file mode 100755
index 000000000..dbf7dd0a8
--- /dev/null
+++ b/modules/signal_processing/macros/bilt.sci
@@ -0,0 +1,100 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1989 - C. Bunks
+// Copyright (C) INRIA - 1997 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [npl,nzr,ngn]=bilt(pl,zr,gn,num,den)
+ //[npl,nzr,ngn]=bilt(pl,zr,gn,num,den)
+ //macro for calculating the gain poles and zeros
+ //which result from a bilinear transform or from
+ //a biquadratic transform. Used by the macros iir
+ //and trans
+ //Note: ***This macro is not intended for general use***
+ // pl :input poles
+ // zr :input zeros
+ // gn :input gain
+ // num :numerator of transform
+ // den :denominator of transform
+ //!
+ if type(pl)<>1 then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n") ,"bilt",1))
+ end
+ if type(zr)<>1 then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n") ,"bilt",2))
+ end
+ if type(gn)<>1 then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n") ,"bilt",3))
+ end
+ if size(gn,"*")<>1 then
+ error(msprintf(gettext("%s: Wrong size for input argument #%d: A scalar expected.\n") ,"bilt",3))
+ end
+ if type(num)<>2|size(num,"*")<>1 then
+ error(msprintf(gettext("%s: Wrong size for input argument #%d: A polynomial expected.\n") ,"bilt",4))
+ end
+ if type(den)<>2|size(den,"*")<>1 then
+ error(msprintf(gettext("%s: Wrong size for input argument #%d: A polynomial expected.\n") ,"bilt",5))
+ end
+
+ order=degree(den)
+
+ if and(order<>[1 2]) then
+ error(msprintf(gettext("%s: Wrong values for input argument #%d: degree must be in the set {%s}.\n"),"bilt",5,"1,2"))
+ end
+ if degree(num)<>order then
+ error(msprintf(gettext("%s: Incompatible input arguments #%d and #%d: Same degree expected.\n"),"bilt",4,5))
+ end
+ n=coeff(num);
+ d=coeff(den);
+ ms=max(size(pl));ns=max(size(zr));
+
+ select order
+ case 1 then
+ n0=n(1);n1=n(2);
+ d0=d(1);d1=d(2);
+ if zr == [] then
+ ngn=1/prod(n1*ones(pl)-d1*pl);
+ else
+ ngn=prod(n1*ones(zr)-d1*zr)/prod(n1*ones(pl)-d1*pl);
+ end
+ if ms<>ns then ngn=real(gn*d1**(ms-ns)*ngn);else ngn=real(gn*ngn);end
+ nzr=-(n0*ones(zr)-d0*zr)./(n1*ones(zr)-d1*zr);
+ npl=-(n0*ones(pl)-d0*pl)./(n1*ones(pl)-d1*pl);
+ if ms>ns then
+ nzr=[nzr';-(d0/d1)*ones(ms-ns,1)];
+ elseif ms<ns then
+ npl=[npl';-(d0/d1)*ones(ms-ns,1)];
+ end
+ case 2 then
+ n0=n(1);n1=n(2);n2=n(3);
+ d0=d(1);d1=d(2);d2=d(3);
+ a=n2*ones(zr)-d2*zr;
+ b=n1*ones(zr)-d1*zr;
+ c=n0*ones(zr)-d0*zr;
+ gz=a;
+ z1=-b./(2*a)+sqrt((b./(2*a)).^2-c./a);
+ z2=-b./(2*a)-sqrt((b./(2*a)).^2-c./a);
+ a=n2*ones(pl)-d2*pl;
+ b=n1*ones(pl)-d1*pl;
+ c=n0*ones(pl)-d0*pl;
+ gp=a;
+ p1=-b./(2*a)+sqrt((b./(2*a)).^2-c./a);
+ p2=-b./(2*a)-sqrt((b./(2*a)).^2-c./a);
+ gw=d2;
+ w1=-d1./(2*d2)+sqrt((d1./(2*d2))**2-d0./d2);
+ w2=-d1./(2*d2)-sqrt((d1./(2*d2))**2-d0./d2);
+ ngn=gn*prod(gz)/prod(gp);
+ nzr=[z1,z2];
+ npl=[p1,p2];
+ if ms>ns then
+ nzr=[nzr';-(d0/d1)*ones(ms-ns,1)];
+ elseif ms<ns then
+ npl=[npl';-(d0/d1)*ones(ms-ns,1)];
+ end
+ ngn=real(ngn*(gw**(ms-ns)));
+ end
+endfunction
diff --git a/modules/signal_processing/macros/buildmacros.bat b/modules/signal_processing/macros/buildmacros.bat
new file mode 100755
index 000000000..c4e35ec40
--- /dev/null
+++ b/modules/signal_processing/macros/buildmacros.bat
@@ -0,0 +1 @@
+@..\..\..\bin\scilex -nwni -ns -e exec('buildmacros.sce');quit; \ No newline at end of file
diff --git a/modules/signal_processing/macros/buildmacros.sce b/modules/signal_processing/macros/buildmacros.sce
new file mode 100755
index 000000000..8a24332a6
--- /dev/null
+++ b/modules/signal_processing/macros/buildmacros.sce
@@ -0,0 +1,9 @@
+//------------------------------------
+// Allan CORNET INRIA 2005
+//------------------------------------
+if (isdef("genlib") == %f) then
+ exec(SCI+"/modules/functions/scripts/buildmacros/loadgenlib.sce");
+end
+//------------------------------------
+genlib("signal_processinglib","SCI/modules/signal_processing/macros",%f,%t);
+//------------------------------------
diff --git a/modules/signal_processing/macros/buttmag.bin b/modules/signal_processing/macros/buttmag.bin
new file mode 100755
index 000000000..ff7c1b3dd
--- /dev/null
+++ b/modules/signal_processing/macros/buttmag.bin
Binary files differ
diff --git a/modules/signal_processing/macros/buttmag.sci b/modules/signal_processing/macros/buttmag.sci
new file mode 100755
index 000000000..0d83af242
--- /dev/null
+++ b/modules/signal_processing/macros/buttmag.sci
@@ -0,0 +1,31 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - F.D
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [h]=buttmag(order,omegac,sample_vector)
+ //<h>=buttmag(order,omegac,sample_vector)
+ //Squared Magnitude response of a Butterworth filter
+ //omegac = cutoff frequency ; sample_vector = sample of frequencies
+ // order :Filter order
+ // omegac :Cut-off frequency in Hertz
+ // sample_vector :Vector of frequency where buttmag is evaluated
+ // h :Butterworth filter values at sample points
+ //
+ //!
+
+ // For ascendant compatibility before bug 4618 fix
+ // http://bugzilla.scilab.org/show_bug.cgi?id=4618
+ // In case the users calls buttmag with named arguments
+ if exists("sample","local")==1 then
+ sample_vector = sample;
+ end
+
+ [n1,n2]=size(sample_vector);
+ un=ones(n1,n2);
+ h=un./(un+(sample_vector/omegac).^(2*order));
+endfunction
diff --git a/modules/signal_processing/macros/casc.bin b/modules/signal_processing/macros/casc.bin
new file mode 100755
index 000000000..3e67a0e5a
--- /dev/null
+++ b/modules/signal_processing/macros/casc.bin
Binary files differ
diff --git a/modules/signal_processing/macros/casc.sci b/modules/signal_processing/macros/casc.sci
new file mode 100755
index 000000000..b038e3199
--- /dev/null
+++ b/modules/signal_processing/macros/casc.sci
@@ -0,0 +1,44 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - F.D
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function cels=casc(x,z)
+ //cels=casc(x,z)
+ //Creates cascade realization of filter
+ //from a matrix of coefficients
+ // x :(4xN)-Matrix where each column is a cascade
+ // :element, the first two column entries being
+ // :the numerator coefficients and the second two
+ // :column entries being the denominator coefficients
+ // z :Character string representing the cascade variable
+ // cels :Resulting cascade representation
+ //
+ //EXAMPLE:
+ // x=[ 1. 2. 3. ;
+ // 4. 5. 6. ;
+ // 7. 8. 9. ;
+ // 10. 11. 12. ]
+ //
+ // cels=casc(x,'z')
+ // cels =
+ //
+ // ! 2 2 2 !
+ // ! 1 + 4z + z 2 + 5z + z 3 + 6z + z !
+ // ! ------------ ------------ ------------ !
+ // ! 2 2 2 !
+ // ! 7 + 10z + z 8 + 11z + z 9 + 12z + z !
+ //!
+
+ cels=[];
+ for col=x,
+ nf=[col(1:2);1];
+ nd=[col(3:4);1];
+ cels=[cels,syslin([],poly(nf,"z","c"),poly(nd,"z","c"))];
+ end,
+
+endfunction
diff --git a/modules/signal_processing/macros/cepstrum.bin b/modules/signal_processing/macros/cepstrum.bin
new file mode 100755
index 000000000..4c0511d34
--- /dev/null
+++ b/modules/signal_processing/macros/cepstrum.bin
Binary files differ
diff --git a/modules/signal_processing/macros/cepstrum.sci b/modules/signal_processing/macros/cepstrum.sci
new file mode 100755
index 000000000..d7cb3f662
--- /dev/null
+++ b/modules/signal_processing/macros/cepstrum.sci
@@ -0,0 +1,89 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function fresp = cepstrum(w,mag)
+ // Uses the complex-cepstrum (Oppenheim & Schafer, Digital
+ //Signal Processing, p. 501) to generate, at the frequencies
+ //w, a complex frequency response fresp whose magnitude is
+ //equal to magnitude data mag and whose phase corresponds
+ //to a stable, minimum phase transfer function.
+
+ if ~isreal(w) then
+ error(msprintf(gettext("%s: Input argument #%d must be real.\n"),"cepstrum",1));
+ end
+ if ~isreal(mag) then
+ error(msprintf(gettext("%s: Input argument #%d must be real.\n"),"cepstrum",2));
+ end
+
+ [w,ind]=gsort(-w);w=-w;mag=mag(ind);
+ dnum=length(w);
+
+ pw=sqrt(w(dnum)*w(1));
+ if w(1)<=0 then
+ error(msprintf(gettext("%s: Wrong values for input argument #%d: Elements must be positive.\n"),"cepstrum",1));
+ end
+ if pw<1.d-8 then
+ error(msprintf(gettext("%s: Wrong values for input argument #%d: Distance between Max and Min elements must be greater than %g.\n"),..
+ "cepstrum",1,1d-8));
+ end
+ if size(w,"*")<>size(mag,"*") then
+ error(msprintf(gettext("%s: Incompatible input arguments #%d and #%d: Same numbers of elements expected.\n"),"cepstrum",1,2));
+ end
+
+ tcomes=(w.*w)/pw/pw;
+
+ dw=acos((1-tcomes)./(1+tcomes));
+ lowf=dw(1);
+ highf=dw(length(dw));
+ if lowf <= 0 | highf >=%pi
+ error(msprintf(gettext("%s: Wrong values for input argument #%d: Elements must be positive.\n"),"cepstrum",1));
+ end
+
+ nn=ceil((log(2*%pi/min(lowf,%pi-highf)))/log(2));
+ npts=2*(2^nn);hnpts =2^nn;
+ if npts<4096 then npts=4096;hnpts=2048;end
+
+ lmagin =(1/log(10))*log(mag);lindw =(%pi/hnpts)*(0:hnpts-1);
+ lmag=zeros(1,hnpts);topval=length(dw);
+ p=find(lindw<dw(1));lmag(p)=lmagin(1)*ones(1,length(p));
+ p=find(dw(topval)<=lindw);
+ lmag(p)=lmagin(topval)*ones(1,length(p));
+ for i=2:topval
+ p=find(lindw>=dw(i-1) & lindw<dw(i));
+ wrat=lindw(p) - dw(i-1)*ones(1,length(p));
+ wrat=(1/(dw(i)-dw(i-1)))*wrat;
+ lmag(p)=(ones(1,length(p))-wrat)*lmagin(i-1)+wrat*lmagin(i);
+ end
+ linmag=exp(log(10)*lmag);
+
+ dome=[lindw,(2*%pi)-fliplr(lindw)];
+ mag=[linmag,fliplr(linmag)];
+
+ ymag=log(mag.*mag);ycc=fft(ymag,1);nptso2=npts/2;xcc=ycc(1:nptso2);
+ xcc(1)=xcc(1)/2;xhat=exp(fft(xcc,-1));domeg=dome(1:2:nptso2-1);
+ xhat = xhat(1:nptso2/2);nptsslo=length(dw);nptsfst = length(domeg);
+
+ if domeg(1)<=dw(1) & domeg(nptsfst)>=dw(nptsslo)
+ fresp=zeros(1,nptsslo);
+ for i=1:nptsslo
+ p=min(find(domeg>=dw(i)));
+ wrat=(dw(i)-domeg(p-1))/(domeg(p)-domeg(p-1));
+ fresp(i)=wrat*xhat(p) + (1-wrat)*xhat(p-1);
+ end
+ else
+ error(msprintf(gettext("%s: Wrong values for input argument #%d: Not sampled high enough.\n"),"cepstrum",1));
+ end
+ fresp=fresp(:);
+
+endfunction
+function m=fliplr(m)
+ //utility fct.
+ [p,q]=size(m);
+ m=m(:,q:-1:1);
+endfunction
diff --git a/modules/signal_processing/macros/cheb1mag.bin b/modules/signal_processing/macros/cheb1mag.bin
new file mode 100755
index 000000000..4f1812d6f
--- /dev/null
+++ b/modules/signal_processing/macros/cheb1mag.bin
Binary files differ
diff --git a/modules/signal_processing/macros/cheb1mag.sci b/modules/signal_processing/macros/cheb1mag.sci
new file mode 100755
index 000000000..ea2b312de
--- /dev/null
+++ b/modules/signal_processing/macros/cheb1mag.sci
@@ -0,0 +1,30 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - F.D
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+function [h2]=cheb1mag(n,omegac,epsilon,sampleFreq)
+ //<h2>=cheb1mag(n,omegac,epsilon,sample)
+ //Square magnitude response of a type 1 Chebyshev filter
+ //omegac=passband edge
+ //epsilon such that 1/(1+epsilon**2)=passband ripple
+ //sample vector of frequencies where the square magnitude
+ //is desired.
+ // n :Filter order
+ // omegac :Cut-off frequency
+ // epsilon :Ripple in pass band
+ // sample :Vector of frequency where cheb1mag is evaluated
+ // h2 :Chebyshev I filter values at sample points
+ //
+ //!
+
+
+ [n1,n2]=size(sampleFreq);
+ un=ones(n1,n2);
+ Tn=chepol(n,"x"); //n-th Chebyshev polynomial
+ fr=freq(Tn,1,sampleFreq/omegac); //fr=Tn(sample/omegac)
+ h2=un./(un+epsilon*epsilon*fr.*fr) //magnitude
+endfunction
diff --git a/modules/signal_processing/macros/cheb2mag.bin b/modules/signal_processing/macros/cheb2mag.bin
new file mode 100755
index 000000000..d3831bf99
--- /dev/null
+++ b/modules/signal_processing/macros/cheb2mag.bin
Binary files differ
diff --git a/modules/signal_processing/macros/cheb2mag.sci b/modules/signal_processing/macros/cheb2mag.sci
new file mode 100755
index 000000000..89c3a8003
--- /dev/null
+++ b/modules/signal_processing/macros/cheb2mag.sci
@@ -0,0 +1,30 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - F.D
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+function [h2]=cheb2mag(n,omegar,A,samplefreq)
+ //<h2>=cheb2mag(n,omegar,A,samplefreq)
+ //Square magnitude response of a type 1 Chebyshev filter
+ //omegar = stopband edge
+ //samplefreq = vector of frequencies where the square magnitude
+ //h2 is desired.
+ // n :Filter order
+ // omegar :Cut-off frequency
+ // A :Attenuation in stop band
+ // samplefreq :Vector of frequency where cheb2mag is evaluated
+ // h2 :Chebyshev II filter values at sample points
+ //
+ //!
+
+
+ [n1,n2]=size(samplefreq);
+ un=ones(n1,n2);
+ Tn=chepol(n,"x"); //n-th Chebyshev polynomial
+ frd=freq(Tn,1,omegar*un./samplefreq); //frd=Tn(omegar/samplefreq)
+ h2=un./(un+(A*A-1)*un./real(frd.*frd))
+endfunction
+
diff --git a/modules/signal_processing/macros/cleanmacros.bat b/modules/signal_processing/macros/cleanmacros.bat
new file mode 100755
index 000000000..5079dfd71
--- /dev/null
+++ b/modules/signal_processing/macros/cleanmacros.bat
@@ -0,0 +1,3 @@
+@del *.bin 2>NUL
+@del lib 2>NUL
+@del names 2>NUL \ No newline at end of file
diff --git a/modules/signal_processing/macros/conv.bin b/modules/signal_processing/macros/conv.bin
new file mode 100755
index 000000000..f61e13e83
--- /dev/null
+++ b/modules/signal_processing/macros/conv.bin
Binary files differ
diff --git a/modules/signal_processing/macros/conv.sci b/modules/signal_processing/macros/conv.sci
new file mode 100755
index 000000000..50de64887
--- /dev/null
+++ b/modules/signal_processing/macros/conv.sci
@@ -0,0 +1,34 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - INRIA - Serge STEER
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+function h=conv(u,v,Shape)
+ if and(size(u)>1) then
+ error( msprintf(_("%s: Wrong size for argument #%d: Vector expected.\n"),"conv",1))
+ end
+ if and(size(v)>1) then
+ error( msprintf(_("%s: Wrong size for argument #%d: Vector expected.\n"),"conv",2))
+ end
+ if argn(2)==2 then
+ Shape="full",
+ elseif and(Shape<>["full","same","valid"]) then
+ error(msprintf(_("%s: Wrong value for input argument #%d: ""%s"" or ""%s"" expected.\n"),"conv",3, """full"", ""same""","""valid"""));
+ end
+
+ h=conv2(u(:),v(:),Shape);
+ //set result orientation
+ if Shape=="full" then
+ if size(u,"*")>size(v,"*") then
+ if size(u,1)==1 then h=matrix(h,1,-1);end
+ else
+ if size(v,1)==1 then h=matrix(h,1,-1);end
+ end
+ else
+ if size(u,1)==1 then h=matrix(h,1,-1);end
+ end
+endfunction
+
diff --git a/modules/signal_processing/macros/convol.bin b/modules/signal_processing/macros/convol.bin
new file mode 100755
index 000000000..1d55e4c83
--- /dev/null
+++ b/modules/signal_processing/macros/convol.bin
Binary files differ
diff --git a/modules/signal_processing/macros/convol.sci b/modules/signal_processing/macros/convol.sci
new file mode 100755
index 000000000..d5a1c9945
--- /dev/null
+++ b/modules/signal_processing/macros/convol.sci
@@ -0,0 +1,57 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+function [y,e1]=convol(h,x,e0)
+ // convol - convolution
+ //%CALLING SEQUENCE
+ // [y]=convol(h,x)
+ // [y,e1]=convol(h,x,e0) (for use with overlap add method)
+ //%PARAMETERS
+ // x,h :input sequences (h is a "short" sequence, x a "long" one)
+ // e0 : old tail to overlap add (not used in first call)
+ // y : output of convolution
+ // e1 : new tail to overlap add (not used in last call)
+ //%DESCRIPTION
+ // calculates the convolution y= h*x of two discrete sequences by
+ // using the fft. overlap add method can be used.
+ //%USE OF OVERLAP ADD METHOD
+ // For x=[x1,x2,...,xNm1,xN]
+ // First call : [y1,e1]=convol(h,x1)
+ // Subsequent calls : [yk,ek]=convol(h,xk,ekm1)
+ // Final call : [yN]=convol(h,xN,eNm1)
+ // Finally y=[y1,y2,...,yNm1,yN]
+ //!
+
+ [lhs,rhs]=argn(0)
+ n=prod(size(x))
+ m=prod(size(h))
+ m1=2^(int(log(n+m-1)/log(2))+1)
+ x(m1)=0;h(m1)=0
+ if norm(imag(x))==0&norm(imag(h))==0 then
+ y=real(fft(fft(matrix(x,1,m1),-1).*fft(matrix(h,1,m1),-1),1))
+ else
+ y=fft(fft(matrix(x,1,m1),-1).*fft(matrix(h,1,m1),-1),1)
+ end
+ if lhs+rhs==5 then,
+ e0(n)=0;//update carried from left to right
+ e1=y(n+1:n+m-1)
+ y=y(1:n)+e0
+
+ elseif lhs+rhs==4 then
+ if rhs==2 then
+ e1=y(n+1:n+m-1)
+ y=y(1:n) //initial update
+ else
+ e0(n+m-1)=0 //final update
+ y=y(1:n+m-1)+e0
+ end,
+
+ else
+ y=y(1:n+m-1) //no update
+ end
+endfunction
diff --git a/modules/signal_processing/macros/convol2d.bin b/modules/signal_processing/macros/convol2d.bin
new file mode 100755
index 000000000..5b9d19bad
--- /dev/null
+++ b/modules/signal_processing/macros/convol2d.bin
Binary files differ
diff --git a/modules/signal_processing/macros/convol2d.sci b/modules/signal_processing/macros/convol2d.sci
new file mode 100755
index 000000000..7f322ac3f
--- /dev/null
+++ b/modules/signal_processing/macros/convol2d.sci
@@ -0,0 +1,56 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - INRIA - Serge STEER
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+function y=convol2d(h,x)
+ // convol2d - 2-D convolution
+ //%CALLING SEQUENCE
+ // y=convol2d(h,x)
+ //%PARAMETERS
+ // x,h :input matrices
+ // y : output of convolution
+ //%DESCRIPTION
+ // calculates the 2-D convolution y= h*x of two discrete sequences by
+ // using the fft.
+ if argn(2)<2 then
+ error(msprintf(_("%s: Wrong number of input arguments: %d expected.\n"),"convol2d",2))
+ end
+
+ if type(h)<>1 then
+ error(msprintf(_("%s: Wrong type for argument #%d: Real or complex matrix expected.\n"),"convol2d",1))
+ end
+ if type(x)<>1 then
+ error(msprintf(_("%s: Wrong type for argument #%d: Real or complex matrix expected.\n"),"convol2d",2))
+ end
+ if isempty(h) then
+ y=zeros(x);
+ return
+ end
+ if isempty(x) then
+ y=zeros(h);
+ return
+ end
+ //inline fft2d function definition (fft2 does not manage inverse fft)
+ function y=fft2d(x,d)
+ [mx,nx]=size(x)
+ y=fft(fft(x,d,mx,1),d,nx,mx)
+ endfunction
+ [mx,nx]=size(x);
+ [mh,nh]=size(h);
+ //use power of 2 dimensions for efficiency
+ m1=2^(int(log(mx+mh-1)/log(2))+1);
+ n1=2^(int(log(nx+nh-1)/log(2))+1);
+ //m1=mx+mh-1;
+ //n1=nx+nh-1;
+ x(m1,n1)=0;
+ h(m1,n1)=0;
+ y=fft2d(fft2d(x,-1).*fft2d(h,-1),1);
+ if isreal(h,0)&isreal(x,0) then
+ y=real(y);
+ end
+ y=y(1:(mx+mh-1),1:(nx+nh-1));
+endfunction
diff --git a/modules/signal_processing/macros/cspect.bin b/modules/signal_processing/macros/cspect.bin
new file mode 100755
index 000000000..27e60c0ab
--- /dev/null
+++ b/modules/signal_processing/macros/cspect.bin
Binary files differ
diff --git a/modules/signal_processing/macros/cspect.sci b/modules/signal_processing/macros/cspect.sci
new file mode 100755
index 000000000..17a910dd7
--- /dev/null
+++ b/modules/signal_processing/macros/cspect.sci
@@ -0,0 +1,110 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [sm,cwp]=cspect(nlags,ntp,wtype,x,y,wpar)
+ //[sm,cwp]=cspect(nlags,ntp,wtype,x,y,wpar)
+ //Spectral estimation using the correlation method.
+ //Cross-spectral estimate of x and y is calculated when both
+ //x and y are given. Auto-spectral estimate of x is calculated
+ //if y is not given.
+ // x :data if vector, amount of input data if scalar
+ // y :data if vector, amount of input data if scalar
+ // nlags :number of correlation lags (pos. integer)
+ // ntp :number of transform points (pos. integer)
+ // wtype :window type ('re','tr','hm','hn','kr','ch')
+ // wpar :optional window parameters
+ // : for wtype='kr', wpar>0
+ // : for wtype='ch', 0<wpar(1)<.5, wpar(2)>0
+ // sm :power spectral estimate in the interval [0,1]
+ // cwp :calculated value of unspecified Chebyshev
+ // :window parameter
+ //
+ //!
+
+ [lhs,rhs]=argn(0);
+
+ if and(wtype<>["re","tr","hm","hn","kr","ch"]) then
+ error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),..
+ "cspect",3,"''re'',''tr'',''hm'',''hn'',''kr'',''ch''"));
+ end
+
+ //Analyze calling sequence and construct window
+ if rhs==4 then,
+ //cspect(nlags,ntp,wtype,x)
+ [w,cwp]=window(wtype,2*nlags-1);
+ crossFlag=%f; //autocorrelation
+ elseif rhs==5 then
+ //cspect(nlags,ntp,wtype,x,wpar) or cspect(nlags,ntp,wtype,x,y)
+ if wtype=="kr" then //cspect(nlags,ntp,'kr',x,wpar)
+ wpar=y;
+ [w,cwp]=window(wtype,2*nlags-1,wpar);
+ crossFlag=%f; //autocorrelation
+ elseif wtype=="ch" then //cspect(nlags,ntp,'ch',x,wpar)
+ wpar=y;
+ [w,cwp]=window(wtype,2*nlags-1,wpar);
+ crossFlag=%f; //autocorrelation
+ else,//cspect(nlags,ntp,wtype,x,y)
+ crossFlag=%t;//cross correlation
+ [w,cwp]=window(wtype,2*nlags-1);
+ end,
+ else,//cspect(nlags,ntp,wtype,x,y,wpar)
+ [w,cwp]=window(wtype,2*nlags-1,wpar);
+ crossFlag=%t;//cross correlation
+ end,
+
+
+ //Make x and y row vectors
+ x=matrix(x,1,-1);
+ if crossFlag then
+ y=matrix(y,1,-1);
+ if size(x,"*")<>size(y,"*") then
+ error(msprintf(gettext("%s: Arguments #%d and #%d must have the same sizes.\n"),"pspect",4,5));
+ end
+ end
+
+ //Estimate correlations
+ if size(x,"*")==1 then //Batch processing of x and y data
+ nsects=int(x/(3*nlags));
+ xlen=int(x/nsects);
+ ss=zeros(1,2*nlags);
+ if crossFlag then,
+ for k=1:nsects
+ xk=getx(xlen,1+(k-1)*xlen);
+ yk=gety(xlen,1+(k-1)*xlen);
+ ss=corr("update",xk,yk,ss);
+ end
+ re=fft(ss,1)/x;
+ re=[re(nlags:-1:1) re(2:nlags)];
+ else
+ for k=1:nsects
+ xk=getx(xlen,1+(k-1)*xlen);
+ ss=corr("update",xk,ss);
+ end
+ re=fft(ss,1)/x;
+ re=[re(nlags:-1:1) re(2:nlags)];
+ end
+ else // Signal data given in x and y if cross-correlation
+ if crossFlag then
+ [re1,me]=corr(x,y,nlags);
+ [re2,me]=corr(y,x,nlags);
+ re=[re1(nlags:-1:1) re2(2:nlags)];
+ else
+ [re,me]=corr(x,nlags);
+ re=[re(nlags:-1:1) re(2:nlags)];
+ end
+ end
+
+ //Window correlation estimate
+ wre=w.*re;
+
+ //Fourier transform to obtain spectral estimate
+ wree=[wre zeros(1,ntp-2*nlags+1)];
+ sm=fft(wree,-1)
+ //sm=abs(fft(wree,-1));
+endfunction
diff --git a/modules/signal_processing/macros/czt.bin b/modules/signal_processing/macros/czt.bin
new file mode 100755
index 000000000..de3d1fb9a
--- /dev/null
+++ b/modules/signal_processing/macros/czt.bin
Binary files differ
diff --git a/modules/signal_processing/macros/czt.sci b/modules/signal_processing/macros/czt.sci
new file mode 100755
index 000000000..e61e602d3
--- /dev/null
+++ b/modules/signal_processing/macros/czt.sci
@@ -0,0 +1,57 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [czx]=czt(x,m,w,phi,a,theta)
+ //czx=czt(x,m,w,phi,a,theta)
+ //chirp z-transform algorithm which calcultes the
+ //z-transform on a spiral in the z-plane at the points
+ //[a*exp(j*theta)][w**kexp(j*k*phi)] for k=0,1,...,m-1.
+ // x :Input data sequence
+ // m :czt is evaluated at m points in z-plane
+ // w :Magnitude multiplier
+ // phi :Phase increment
+ // a :Initial magnitude
+ // theta :Initial phase
+ // czx :Chirp z-transform output
+ //!
+
+ //get the size of x and find the maximum of (n,m)
+
+ n=max(size(x));
+ nm=max([n,m]);
+
+ //create sequence h(n)=[w*exp(-j*phi)]**(-n*n/2)
+
+ w=w*exp(-%i*phi);
+ idx=(-nm+1:0);
+ idx=-idx.*idx/2;
+ h=exp(idx*log(w));
+ h(nm+1:2*nm-1)=h(nm-1:-1:1);
+
+ //create g(n)
+
+ a=a*exp(%i*theta);
+ idx=(0:n-1);
+ g=exp(-idx*log(a))./h(nm:nm+n-1);
+ g=x.*g;
+
+ //convolve h(n) and g(n)
+
+ hc=h(nm:nm+m-1);
+ hc(m+1:m+n-1)=h(nm-n+1:nm-1);
+ gc=0*ones(hc);
+ gc(1:n)=g;
+ hf=fft(hc,-1);
+ gf=fft(gc,-1);
+ hcg=fft(hf.*gf,1);
+
+ //preserve m points and divide by h(n)
+
+ czx=hcg(1:m)./h(nm:nm+m-1);
+endfunction
diff --git a/modules/signal_processing/macros/detrend.bin b/modules/signal_processing/macros/detrend.bin
new file mode 100755
index 000000000..88fa52672
--- /dev/null
+++ b/modules/signal_processing/macros/detrend.bin
Binary files differ
diff --git a/modules/signal_processing/macros/detrend.sci b/modules/signal_processing/macros/detrend.sci
new file mode 100755
index 000000000..4c299c899
--- /dev/null
+++ b/modules/signal_processing/macros/detrend.sci
@@ -0,0 +1,97 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) Bruno Pincon
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+//
+function [y] = detrend(x, flag, bp)
+ //
+ // this function removes the constant or linear or
+ // piecewise linear trend from a vector x. If x is
+ // matrix this function removes the trend of each
+ // column of x.
+ //
+ // flag = "constant" or "c" to removes the constant trend
+ // (simply the mean of the signal)
+ // flag = "linear" or "l" to remove the linear or piecewise
+ // linear trend.
+ //
+ // To define the piecewise linear trend the function needs the
+ // breakpoints and these must be given as the third argument bp.
+ //
+ // The "instants" of the signal x are in fact from 0 to m-1
+ // (m = length(x) if x is a vector and m = size(x,1) in case
+ // x is a matrix). So bp must be reals in [0 m-1].
+ //
+
+ rhs = argn(2)
+ if rhs < 1 | rhs > 3 then
+ error(msprintf(gettext("%s: Wrong number of input arguments: %d to %d expected.\n"),"detrend",1,3));
+ elseif rhs == 1
+ flag = "linear"; bp = []
+ elseif rhs == 2
+ bp = []
+ end
+
+ if type(x)~=1 then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n"),"detrend",1));
+ end
+ if type(flag)~=10 then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n"),"detrend",2));
+ end
+ if ~(type(bp)==1 & isreal(bp)) then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n"),"detrend",3));
+ end
+
+ [mx,nx] = size(x)
+ if mx==1 | nx==1 then
+ x_is_vector = %t; x = x(:); m = mx*nx; n = 1
+ elseif mx*nx == 0 then
+ y = []; return
+ else
+ x_is_vector = %f; m = mx; n = nx
+ end
+
+
+ if flag == "constant" | flag == "c" then
+ y = x - ones(m,1)*mean(x,"r")
+ elseif flag == "linear" | flag == "l"
+ bp = unique([0 ; bp(:) ; m-1])
+ // delete all the breakpoints outside [0,m-1]
+ while bp(1) < 0, bp(1)=[], end
+ while bp($) > m-1, bp($)=[], end
+ // breakpoints are 0-based so add one to
+ // compare them with signal vector indices (1-based)
+ bp = bp + 1;
+ nbp = length(bp);
+ // build the least square matrix with hat functions
+ // (as a basis for continuous piecewise linear functions)
+ A = zeros(m, nbp)
+ k1 = 1
+ delta_bp = diff(bp)
+ for j = 2:nbp-1
+ k2 = ceil(bp(j))-1
+ ind = (k1:k2)'
+ A(ind,j-1) = (bp(j) - ind)/delta_bp(j-1)
+ A(ind,j) = (ind - bp(j-1))/delta_bp(j-1)
+ k1 = k2+1
+ end
+ ind = (k1:m)'
+ A(ind,nbp-1) = (m - ind)/delta_bp(nbp-1)
+ A(ind,nbp) = (ind - bp(nbp-1))/delta_bp(nbp-1)
+ // solve the least square pb and retrieve the fitted
+ // piecewise linear func off the signal
+ y = x - A*(A\x)
+ else
+ error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n") ,..
+ "detrend",2,"''constant'',''c'',''linear'',''l''"));
+ end
+
+ if x_is_vector then
+ y = matrix(y,mx,nx)
+ end
+
+endfunction
diff --git a/modules/signal_processing/macros/ell1mag.bin b/modules/signal_processing/macros/ell1mag.bin
new file mode 100755
index 000000000..b74c849f9
--- /dev/null
+++ b/modules/signal_processing/macros/ell1mag.bin
Binary files differ
diff --git a/modules/signal_processing/macros/ell1mag.sci b/modules/signal_processing/macros/ell1mag.sci
new file mode 100755
index 000000000..15cbfc7c7
--- /dev/null
+++ b/modules/signal_processing/macros/ell1mag.sci
@@ -0,0 +1,23 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [v]=ell1mag(eps,m1,z)
+ //Function used for squared magnitude of an elliptic filter
+ //Usually m1=eps*eps/(a*a-1);
+ // eps :Passband ripple=1/(1+eps**2)
+ // m1 :Stopband ripple=1/(1+(eps**2)/m1)
+ // z :Sample vector of values in the complex plane
+ // v :Elliptic filter values at sample points
+ //
+ //!
+ s=%sn(z,m1);un=ones(z);
+ v=real(un./(un+eps*eps*s.*s))
+
+
+endfunction
diff --git a/modules/signal_processing/macros/eqfir.bin b/modules/signal_processing/macros/eqfir.bin
new file mode 100755
index 000000000..4ef4ee94e
--- /dev/null
+++ b/modules/signal_processing/macros/eqfir.bin
Binary files differ
diff --git a/modules/signal_processing/macros/eqfir.sci b/modules/signal_processing/macros/eqfir.sci
new file mode 100755
index 000000000..d26a9132c
--- /dev/null
+++ b/modules/signal_processing/macros/eqfir.sci
@@ -0,0 +1,79 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [hn]=eqfir(nf,bedge,des,wate)
+ //<hn>=eqfir(nf,bedge,des,wate)
+ //Minimax approximation of multi-band, linear phase, FIR filter
+ // nf :Number of output filter points desired
+ // bedge :Mx2 matrix giving a pair of edges for each band
+ // des :M-vector giving desired magnitude for each band
+ // wate :M-vector giving relative weight of error in each band
+ // hn :Output of linear-phase FIR filter coefficients
+ //!
+
+ //get number of cosines
+
+ nc=int(nf/2);
+ if nf-2*nc<>0 then,
+ flag=0;
+ nc=nc+1;
+ else,
+ flag=1;
+ end,
+
+ //make frequency grid, desired function, and weight function
+
+ [nb,c2]=size(bedge);
+ ngp=nc*16;
+ b1=bedge(:,1);
+ b2=bedge(:,2);
+ sb=sum(b2-b1);
+ delf=sb/ngp;
+ bp=round((b2-b1)/delf);
+ bsum=0;
+ for k=1:nb,
+ bpk=bp(k);
+ et=b2(k)-b1(k);
+ fg(bsum+1:bsum+bpk)=b1(k)*ones(1:bpk)+(0:bpk-1)*et/(bpk-1);
+ ds(bsum+1:bsum+bpk)=des(k)*ones(1:bpk);
+ wt(bsum+1:bsum+bpk)=wate(k)*ones(1:bpk);
+ bsum=bsum+bpk;
+ end,
+
+ //adjust values of ds and wt if filter is of even length
+
+ if flag==1 then,
+ fgs=max(size(fg));
+ if fg(fgs)>.5-%eps then,
+ fg=fg(1:fgs-1);
+ ds=ds(1:fgs-1);
+ wt=wt(1:fgs-1);
+ end,
+ cf=cos(%pi*fg);
+ ds=ds./cf;
+ wt=wt.*cf;
+ end,
+
+ //call remez
+
+ [an]=remezb(nc,fg,ds,wt);
+
+ //obtain other half of filter coefficients (by symmetry)
+
+ if flag==1 then,
+ hn(1)=.25*an(nc);
+ hn(2:nc-1)=.25*(an(nc:-1:3)+an(nc-1:-1:2));
+ hn(nc)=.5*an(1)+.25*an(2);
+ hn(nc+1:2*nc)=hn(nc:-1:1);
+ else,
+ hn=an(nc:-1:2)/2;
+ hn(nc)=an(1);
+ hn(nc+1:2*nc-1)=hn(nc-1:-1:1);
+ end,
+endfunction
diff --git a/modules/signal_processing/macros/eqiir.bin b/modules/signal_processing/macros/eqiir.bin
new file mode 100755
index 000000000..e9907a291
--- /dev/null
+++ b/modules/signal_processing/macros/eqiir.bin
Binary files differ
diff --git a/modules/signal_processing/macros/eqiir.sci b/modules/signal_processing/macros/eqiir.sci
new file mode 100755
index 000000000..82504e33e
--- /dev/null
+++ b/modules/signal_processing/macros/eqiir.sci
@@ -0,0 +1,81 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [cells,fact,zzeros,zpoles]=eqiir(ftype,approx,om,deltap,deltas)
+ //[cells,fact,zzeros,zpoles]=eqiir(ftype,approx,om,deltap,deltas)
+ //Design of iir filter :interface with eqiir (syredi)
+ // ftype :filter type ('lp','hp','sb','bp')
+ // approx :design approximation ('butt','cheb1','cheb2','ellip')
+ // om :4-vector of cutoff frequencies (in radians)
+ // : om=<om1,om2,om3,om4>
+ // : 0 <= om1 <= om2 <= om3 <= om4 <= pi
+ // :When ftype=3 or 4, om3 and om4 are not used
+ // :and may be set to 0.
+ // deltap :ripple in the passband. 0<= deltap <=1.
+ // deltas :ripple in the stopband. 0<= deltas <=1.
+ //Outputs :
+ // cells :realization of the filter as second order cells
+ // fact :normalization constant
+ // zzeros :zeros in the z-domain
+ // zpoles :poles in the z-domain
+ //The filter obtained is h(z)=fact*product of the elements of
+ //cells. That is
+ //
+ // hz=fact*prod(cells(2))./prod(cells(3))
+ //
+ //!
+ select part(approx,1);
+ case "b"
+ iapro=1
+ case "e"
+ iapro=4
+ case "c"
+ last=part(approx,length(approx));
+ if last=="1" then iapro=2,end;
+ if last=="2" then iapro=3,end
+ else
+ error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),..
+ "eqiir",2,"''b[utt]'',''e[llip]'',''c[heb]1'',''c[heb]2''"))
+ end
+ select ftype;
+ case "lp"
+ ityp=1
+ case "hp"
+ ityp=2
+ case "bp"
+ ityp=3
+ case "sb"
+ ityp=4
+ else
+ error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),"eqiir",1,"''lp'',''hp'',''bp'',''sb''"))
+ end
+ if max(size(om))==2 then
+ om=matrix([matrix(om,1,2),0,0],1,4),
+ end
+ [fact,b2,b1,b0,c1,c0,zzeros,zpoles]=syredi(ityp,iapro,om,deltap,deltas);
+ nb=max(size(b0));
+ coeffs=[b0;b1;b2;c0;c1];
+ coeffs=coeffs(:,1:nb);
+ coeffs=[coeffs;ones(1,nb)];
+ cells=[];
+ for col=coeffs,
+ nf=col(1:3);nd=col(4:6);
+ [n1,d1]=simp(poly(nf,"z","c"),poly(nd,"z","c"));
+ cells=[cells,syslin([],n1,d1)];
+ end
+ //crapaud...
+ if iapro==1| iapro==2 then
+ zzeros=[];
+ [k,j]=size(cells);
+ w=cells(2);
+ for k=w;
+ zzeros=[zzeros,roots(k)'];
+ end
+ end
+endfunction
diff --git a/modules/signal_processing/macros/faurre.bin b/modules/signal_processing/macros/faurre.bin
new file mode 100755
index 000000000..41724bfe8
--- /dev/null
+++ b/modules/signal_processing/macros/faurre.bin
Binary files differ
diff --git a/modules/signal_processing/macros/faurre.sci b/modules/signal_processing/macros/faurre.sci
new file mode 100755
index 000000000..5a36c3858
--- /dev/null
+++ b/modules/signal_processing/macros/faurre.sci
@@ -0,0 +1,32 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1989 - G. Le Vey
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [P,R,T]=faurre(n,H,F,G,R0)
+ //[P,R,T]=faurre(n,H,F,G,R0)
+ //macro which computes iteratively the minimal solution of the algebraic
+ //Riccati equation and gives the matrices Rt and Tt of the filter model.
+ // n : number of iterations.
+ // H,F,G : estimated triple from the covariance sequence of y.
+ // R0 : E(yk*yk')
+ // P : solution of the Riccati equation after n iterations.
+ // R,T : gain matrix of the filter.
+ //!
+
+ //initialization
+ Pn=G*inv(R0)*G'
+ //recursion
+ for k=1:n,
+ A=(G-F*Pn*H');
+ Pn=F*Pn*F'+A/(R0-H*Pn*H')*A',
+ end;
+ P=Pn
+ //gain matrices of the filter.
+ R=R0-H*P*H';
+ T=(G-F*P*H')/R;
+endfunction
diff --git a/modules/signal_processing/macros/ffilt.bin b/modules/signal_processing/macros/ffilt.bin
new file mode 100755
index 000000000..c43d48a93
--- /dev/null
+++ b/modules/signal_processing/macros/ffilt.bin
Binary files differ
diff --git a/modules/signal_processing/macros/ffilt.sci b/modules/signal_processing/macros/ffilt.sci
new file mode 100755
index 000000000..6bdc31a0c
--- /dev/null
+++ b/modules/signal_processing/macros/ffilt.sci
@@ -0,0 +1,74 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+// Copyright (C) INRIA - 2002 - S Steer
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function x=ffilt(ft,n,fl,fh)
+
+ //x=ffilt(ft,n,fl,fh)
+ //Get n coefficients of an FIR low-pass,
+ //high-pass, band-pass, or stop-band filter
+ // ft :Filter type where ft can take the values
+ // : 'lp' for low-pass filter
+ // : 'hp' for high-pass filter
+ // : 'bp' for band-pass filter
+ // : 'sb' for stop-band filter
+ // n :Number of filter samples desired
+ // fl :Low frequency cut-off
+ // fh :High frequency cut-off
+ // :For low and high-pass filters one cut-off
+ // :frequency must be specified whose value is
+ // :given in fl. For band-pass and stop-band
+ // :filters two cut-off frequencies must be
+ // :specified for which the lower value is in
+ // :fl and the higher value is in fh.
+ // x :Filter coefficients
+
+ //Pre-calculation
+
+ no2 = (n-1)/2;
+ ino2 = int(no2);
+
+ //Calculate n samples of the sinc function
+
+ //Low pass filter
+
+ if ft=="lp" then
+ [x]=filt_sinc(n,fl)
+ end
+
+ //High pass filter
+
+ if ft=="hp" then
+ x=filt_sinc(n,fl)
+ x=-x;
+ x(no2+1)=1+x(no2+1);
+ end
+
+ //Band pass filter
+
+ if ft=="bp" then
+ wc=%pi*(fh+fl);
+ fl=(fh-fl)/2;
+ x=filt_sinc(n,fl)
+ y=2*cos(wc*(-no2:no2));
+ x=x.*y;
+ end
+
+ //Stop band filter
+
+ if ft=="sb" then
+ wc=%pi*(fh+fl);
+ fl=(fh-fl)/2;
+ x=filt_sinc(n,fl)
+ y=2*cos(wc*(-no2:no2));
+ x=-x.*y;
+ x(no2+1)=1+x(no2+1);
+ end
+
+endfunction
diff --git a/modules/signal_processing/macros/fft2.bin b/modules/signal_processing/macros/fft2.bin
new file mode 100755
index 000000000..d8914e951
--- /dev/null
+++ b/modules/signal_processing/macros/fft2.bin
Binary files differ
diff --git a/modules/signal_processing/macros/fft2.sci b/modules/signal_processing/macros/fft2.sci
new file mode 100755
index 000000000..c5c0ff906
--- /dev/null
+++ b/modules/signal_processing/macros/fft2.sci
@@ -0,0 +1,59 @@
+
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - F.B
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+//
+function x=fft2(varargin)
+ // Two-dimensional fast Fourier transform
+ // Syntax : y = fft2(x) or y = fft2(x,m,n)
+ // Inputs :
+ // x : scalar, vector, matrix, array (real or complex)
+ // m, n : numbers (respectively) of rows and colums of x which used for the perfom of DFT,if the rows number respectively (columns) of x is more than m then x is truncated in order to have m rows, else if the rows (respectively columns) number of x is less than m then x rows are completed by 0 to have m rows.
+ //
+ // Outputs :
+ // y : scalar, vector, matrix, array (real or complex), if there is one input argument x then y and x have the same size, else if there are 3 inputs arguments then the sizes of the first and second dimension of y are equal to m and n, the others dimension sizes are equal to the size of x
+
+
+ if size(varargin) == 1 then
+ a = varargin(1);
+ if type(a) == 1 then
+ x = fft(a);
+ elseif typeof(a) == "hypermat" then
+ dims = matrix(x.dims,-1,1);
+ v = matrix(x.entries,-1,1);
+ incr = 1;
+ for k=1:2
+ dk = double(dims(k));
+ v = fft(v ,-1,dk,incr);
+ incr = incr*dk;
+ end
+ x = matrix(v,double(dims));
+ end
+ elseif size(varargin) == 3 then
+ a = varargin(1);
+ m = varargin(2);
+ n = varargin(3);
+ asize1 = size(a,1);
+ asize2 = size(a,2);
+ if type(a) == 1 then
+ x(1:min(m,asize1),1:asize2)=a(1:min(m,asize1),1:asize2);
+ elseif typeof(a) == "hypermat" then
+ dims = matrix(a.dims,-1,1);
+ dims = double(dims);
+ dims(1) = m;
+ dims(2) = n;
+ x=hypermat(dims)
+ for i=1:prod(dims(3:$))
+ x(1:min(m,asize1),1:min(n,asize2),i)=a(1:min(m,asize1),1:min(n,asize2),i);
+ end
+ end
+ x=fft2(x);
+ else
+ error(msprintf(gettext("%s: Wrong number of input arguments: %d or %d expected.\n"),"fft2",1,3));
+ end
+endfunction
diff --git a/modules/signal_processing/macros/fftshift.bin b/modules/signal_processing/macros/fftshift.bin
new file mode 100755
index 000000000..ed0c3d52f
--- /dev/null
+++ b/modules/signal_processing/macros/fftshift.bin
Binary files differ
diff --git a/modules/signal_processing/macros/fftshift.sci b/modules/signal_processing/macros/fftshift.sci
new file mode 100755
index 000000000..b10dbc023
--- /dev/null
+++ b/modules/signal_processing/macros/fftshift.sci
@@ -0,0 +1,22 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function x = fftshift(x,job)
+ if argn(2)<2 then job="all",end
+ deff("sel=fun(sk)","c=ceil(sk/2);sel=[c+1:sk,1:c]")
+ if job=="r" then job=1,elseif job=="c" then job=2,end
+ ind=list()
+ if job=="all" then
+ for sk=size(x),ind($+1)=fun(sk),end
+ else
+ for sk=size(x),ind($+1)=:,end;
+ ind(job)=fun(size(x,job))
+ end
+ x=x(ind(:))
+endfunction
diff --git a/modules/signal_processing/macros/filt_sinc.bin b/modules/signal_processing/macros/filt_sinc.bin
new file mode 100755
index 000000000..2cd2f79d9
--- /dev/null
+++ b/modules/signal_processing/macros/filt_sinc.bin
Binary files differ
diff --git a/modules/signal_processing/macros/filt_sinc.sci b/modules/signal_processing/macros/filt_sinc.sci
new file mode 100755
index 000000000..4a40601a2
--- /dev/null
+++ b/modules/signal_processing/macros/filt_sinc.sci
@@ -0,0 +1,30 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [x]=filt_sinc(n,fl)
+
+ //x=sinc(n,fl)
+ //Calculate n samples of the function sin(2*pi*fl*t)/(pi*t)
+ //for t=-n/2:n/2 (i.e. centered around the origin).
+ // n :Number of samples
+ // fl :Cut-off freq. of assoc. low-pass filter in Hertz
+ // x :Samples of the sinc function
+
+ no2 = (n-1)/2;
+ ino2 = int(no2);
+ wl = fl*2*%pi;
+ xn = sin(wl*(-no2:no2));
+ xd = %pi*(-no2:no2);
+ if ino2==no2 then
+ xn(no2+1) = 2*fl;
+ xd(no2+1) = 1;
+ end
+ x=xn./xd;
+
+endfunction
diff --git a/modules/signal_processing/macros/filter.bin b/modules/signal_processing/macros/filter.bin
new file mode 100755
index 000000000..e78ec4238
--- /dev/null
+++ b/modules/signal_processing/macros/filter.bin
Binary files differ
diff --git a/modules/signal_processing/macros/filter.sci b/modules/signal_processing/macros/filter.sci
new file mode 100755
index 000000000..40257a0b7
--- /dev/null
+++ b/modules/signal_processing/macros/filter.sci
@@ -0,0 +1,148 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - Serge STEER <serge.steer@inria.fr>
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [y, z] = filter(b, a, x, z)
+ //Implements a direct form II transposed implementation of the standard
+ //difference equation
+
+ fname = "filter"
+ [lhs, rhs] = argn(0)
+
+ if rhs < 3 | rhs > 4
+ error(msprintf(_("%s: Wrong number of input arguments: %d to %d expected.\n"), fname, 3, 4));
+ end
+
+ if rhs == 3
+ z = 0;
+ end
+
+ type_b = typeof(b);
+ type_a = typeof(a);
+ type_x = typeof(x);
+ type_z = typeof(z);
+
+ if type_b <> "constant" & type_b <> "polynomial"
+ error(msprintf(_("%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"), fname, 1));
+ end
+
+ if type_a <> "constant" & type_a <> "polynomial"
+ error(msprintf(_("%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"), fname, 2));
+ end
+
+ if type_x <> "constant"
+ error(msprintf(_("%s: Wrong type for input argument #%d: Real matrix expected.\n"), fname, 3));
+ end
+
+ if type_z <> "constant"
+ error(msprintf(_("%s: Wrong type for input argument #%d: Real matrix expected.\n"), fname, 4));
+ end
+
+ if ~isreal(b)
+ error(msprintf(_("%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"), fname, 1));
+ end
+
+ if ~isreal(a)
+ error(msprintf(_("%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"), fname, 2));
+ end
+
+ if ~isreal(x)
+ error(msprintf(_("%s: Wrong type for input argument #%d: Real matrix expected.\n"), fname, 3));
+ end
+
+ if ~isreal(z)
+ error(msprintf(_("%s: Wrong type for input argument #%d: Real matrix expected.\n"), fname, 4));
+ end
+
+ if (size(a, "c") <> 1) & (size(a, "r") <> 1)
+ error(msprintf(_("%s: Wrong size for input argument #%d: Vector expected.\n"), fname, 1));
+ end
+
+ if (size(b, "c") <> 1) & (size(b, "r") <> 1)
+ error(msprintf(_("%s: Wrong size for input argument #%d: Vector expected.\n"), fname, 2));
+ end
+
+ if (size(x, "c") <> 1) & (size(x, "r") <> 1)
+ error(msprintf(_("%s: Wrong size for input argument #%d: Vector expected.\n"), fname, 3));
+ end
+
+ if (size(z, "c") <> 1) & (size(z, "r") <> 1)
+ error(msprintf(_("%s: Wrong size for input argument #%d: Vector expected.\n"), fname, 4));
+ end
+
+ // User mixes polynomial and vector notation
+ if type_b == "polynomial" & size(a, "*") <> 1
+ error(msprintf(_("%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix or two polynomials expected.\n"), fname, 1, 2));
+ end
+
+ // User mixes polynomial and vector notation
+ if type_a == "polynomial" & size(b, "*") <> 1
+ error(msprintf(_("%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix or two polynomials expected.\n"), fname, 1, 2));
+ end
+
+ if type_b == "polynomial" | type_a == "polynomial"
+ c = b/a;
+ b = numer(c);
+ a = denom(c);
+ deg_b = degree(b);
+ deg_a = degree(a);
+ deg = max(deg_b, deg_a);
+ b = coeff(b, deg:-1:0);
+ a = coeff(a, deg:-1:0);
+ end
+
+ ////remove high order coefficients equal to zero
+ //i = 0; while b($ - i) == 0, i = i + 1; end;
+ //b = b(1:$ - i);
+
+ ////remove high order coefficients equal to zero
+ //i = 1; while a(i) == 0, i = i + 1; end
+ //a = a(i:$);
+
+ if a(1) == 0
+ error(msprintf(_("%s: Wrong value for input argument #%d: First element must not be %s.\n"), fname, 2, "0"));
+ end
+
+ //force vector orientation
+ b = matrix(b, -1, 1);
+ a = matrix(a, -1, 1);
+ mnx = size(x);
+ x = matrix(x, 1, -1);
+
+ //normalize
+ b = b / a(1);
+ a = a / a(1);
+
+ n = max(size(b, "*"), size(a, "*"))-1;
+ if n > 0 then
+ if argn(2) < 4 then
+ z = zeros(n, 1);
+ else
+ z = matrix(z, n, 1);
+ end
+
+ //pad the numerator and denominator if necessary
+ a($ + 1:(n + 1)) = 0;
+ b($ + 1:(n + 1)) = 0;
+
+ //form state space representation
+ A = [-a(2:$), [eye(n - 1, n - 1); zeros(1, n - 1)] ];
+ B = b(2:$) - a(2:$) * b(1); //C = eye(1, n); D = b(1);
+
+ [z, X] = ltitr(A, B, x, z);
+ y = X(1, :) + b(1) * x;
+
+ else
+ y = b(1) * x;
+ z = [];
+ end
+ //make y orientation similar to the x one
+ y = matrix(y, mnx);
+
+endfunction
+
diff --git a/modules/signal_processing/macros/find_freq.bin b/modules/signal_processing/macros/find_freq.bin
new file mode 100755
index 000000000..664879d79
--- /dev/null
+++ b/modules/signal_processing/macros/find_freq.bin
Binary files differ
diff --git a/modules/signal_processing/macros/find_freq.sci b/modules/signal_processing/macros/find_freq.sci
new file mode 100755
index 000000000..f0fdd3417
--- /dev/null
+++ b/modules/signal_processing/macros/find_freq.sci
@@ -0,0 +1,28 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - F.D
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [m]=find_freq(epsilon,A,n)
+ //Search for m such that n=K(1-m1)K(m)/(K(m1)K(1-m))
+ //with m1=(epsilon*epsilon)/(A*A-1);
+ //If m = omegar^2/omegac^2,the parameters
+ //epsilon,A,omegac,omegar and n are then
+ //compatible for defining a prototype elliptic filter.
+ // epsilon :Passband ripple
+ // A :Stopband attenuation
+ // n :filter order
+ // m :Frequency needed for construction of
+ // :elliptic filter
+ //
+ //!
+
+ m1=(epsilon*epsilon)/(A*A-1);
+ chi1=%k(1-m1)/%k(m1);
+ m=findm(chi1/n);
+
+endfunction
diff --git a/modules/signal_processing/macros/findm.bin b/modules/signal_processing/macros/findm.bin
new file mode 100755
index 000000000..b441e57ac
--- /dev/null
+++ b/modules/signal_processing/macros/findm.bin
Binary files differ
diff --git a/modules/signal_processing/macros/findm.sci b/modules/signal_processing/macros/findm.sci
new file mode 100755
index 000000000..f5b5d0d59
--- /dev/null
+++ b/modules/signal_processing/macros/findm.sci
@@ -0,0 +1,47 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function m=findm(chi)
+ //Search for m such that chi = %k(1-m)/%k(m)
+ //!
+
+ if chi < 1 then
+ t=1;
+ tn=2;
+ m=0.99999;
+ mn=2;
+ v=16*exp(-%pi/chi);
+ while abs(t-tn) > 10.*%eps
+ t=tn;
+ lln=log(16/(1-m));
+ k1=delip(1,sqrt(1-m));
+ k=delip(1,sqrt(m));
+ y=(k1*lln/%pi)-k;
+ mn=m;
+ m=1-v*exp((-%pi*y)/k1);
+ tn=m+mn;
+ end
+ else
+ t=1;
+ tn=2;
+ m=0.00001;
+ mn=0.1;
+ v=16*exp(-%pi*chi);
+ while abs(t-tn) > 10.*%eps
+ t=tn;
+ lln=log(16/m);
+ k1=delip(1,sqrt(1-m));
+ k=delip(1,sqrt(m));
+ y=(k*lln/%pi)-k1;
+ mn=m;
+ m=v*exp((-%pi*y)/k);
+ tn=m+mn;
+ end
+ end
+endfunction
diff --git a/modules/signal_processing/macros/frfit.bin b/modules/signal_processing/macros/frfit.bin
new file mode 100755
index 000000000..3223146aa
--- /dev/null
+++ b/modules/signal_processing/macros/frfit.bin
Binary files differ
diff --git a/modules/signal_processing/macros/frfit.sci b/modules/signal_processing/macros/frfit.sci
new file mode 100755
index 000000000..86816d46a
--- /dev/null
+++ b/modules/signal_processing/macros/frfit.sci
@@ -0,0 +1,220 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [num,den]=frfit(w,fresp,order,weight)
+ //Calling sequence:
+ //[num,den]=frfit(w,fresp,r,weight)
+ //sys=frfit(w,fresp,r,weight)
+ //
+ // w: vector of frequencies in Hz
+ // fresp: vector of frequency responses at these frequencies.
+ // weight: vector of weights given to each point
+ //
+ // Fits frequency response data points by a bi-stable transfer
+ // function
+ // G(s) = num(s)/den(s)
+ // of order r.
+ // freq(num,den,%i*w) should be close to fresp
+ //
+ // changing frequencies to rad/s
+ w=2*%pi*w;
+ [LHS,RHS]=argn(0);
+ if RHS==3
+ weight=ones(w);
+ end
+ w=w(:);fresp=fresp(:);weight=weight(:);
+
+ Mean=sum(fresp)/size(fresp,"*");
+ if max(abs(fresp-Mean)) < .1*max(abs(fresp))
+ num=real(Mean); den=1; return
+ end
+
+ order1=order+1;npts=length(w);wmed=1;
+
+ if RHS < 4 then
+ weight=ones(npts,1);
+ end
+
+ M0=zeros(order+1,1); M1=M0;
+ M0(1)=1; M1(2)=1; M=[M0 M1];
+ for i=1:order-1,
+ Mt=2*[0;M1(1:order)]-M0;
+ M=[M Mt];
+ M0=M1; M1=Mt;
+ end
+
+ k=2;km=1;
+ sl0=round((log10(abs(fresp(k)))-log10(abs(fresp(km))))/(log10(w(k))-log10(w(km))));
+ k=npts;km=k-1;
+ slinf=round((log10(abs(fresp(k)))-log10(abs(fresp(km))))/(log10(w(k))-log10(w(km))));
+
+ if slinf>0&slinf<20
+ w=[w;[10;15]*w(npts)];
+ fresp=[fresp;[1;1]*10.^slinf*abs(fresp(npts))];
+ weight=[weight;1;1];
+ npts=npts+2;
+ slinf=0;
+ end
+
+
+ if sl0>0
+ mindeg=max(abs(sl0),-slinf+abs(sl0));
+ else
+ mindeg=max(abs(sl0),-slinf);
+ end
+
+ if mindeg > order
+ warning(msprintf(gettext("%s: Filter order too small.\n"),"frfit"));
+ sl0=sign(sl0)*min(order,sl0);
+ if sl0>0 then
+ slinf=-(order-abs(sl0));
+ else
+ end
+ slinf=-order;
+ end
+
+
+ jw=%i*w;mag=abs(fresp);t0=ones(npts,1); t1=jw;A=[ones(npts,1),jw];
+
+ for i=1:order-1,
+ t=2*jw.*t1-t0;
+ A=[A,t];
+ t0=t1; t1=t;
+ end
+
+ Aom=A;
+
+ //A=[A -diag(fresp)*A];AA=A;om0=w;
+ A=[A, -fresp*ones(1,size(A,2)).*A];AA=A;om0=w;
+
+ Acons=[]; ycons=[];
+ if sl0<=0
+ Acons=[Acons; zeros(-sl0,order1) M(1:-sl0,:);...
+ M(1,:) -(mag(1)*w(1)^(-sl0))*M(1-sl0,:)];
+ ycons=[ycons; zeros(-sl0+1,1)];
+ elseif sl0>0
+ Acons=[Acons; M(1:sl0,:) zeros(sl0,order1);...
+ M(1+sl0,:)*w(1)^sl0 -mag(1)*M(1,:)];
+ ycons=[ycons; zeros(sl0+1,1)];
+ end
+
+ Acons=[Acons;zeros(1,order1) M(order1,:)];ycons=[ycons;1];
+
+ if slinf<=0
+ Acons=[Acons; M(order1+slinf:order1,:) zeros(-slinf+1,order1)];
+ ycons=[ycons; mag(npts)*w(npts)^(-slinf); zeros(-slinf,1)];
+ end
+
+ [nc,nv]=size(Acons);
+
+ if nc >= nv
+ x=Acons\ycons;
+ else
+ indin=1:nv; indout=[];
+ for i=1:nc,
+ if i<nc,
+ [m,ix]=max(abs(Acons(i:nc,i:nv)));ix=ix(2);
+ else
+ [m,ix]=max(abs(Acons(i:nc,i:nv)));
+ end
+ Acons(:,i:nv)=[Acons(:,i+ix-1) Acons(:,[i:i+ix-2,i+ix:nv])];
+ indout=[indout,indin(ix)];indin=indin([1:ix-1,ix+1:nv-i+1]);
+
+ x=Acons(i:nc,i); Atmp=Acons(i:nc,i+1:nv); ytmp=ycons(i:nc);
+ if x(1)>=0
+ sgn=1;
+ else
+ sgn=-1;
+ end
+ aux=sgn*sqrt(x'*x);x(1)=x(1)+aux;nx2=.5*x'*x;
+ Atmp=[[-aux;zeros(nc-i,1)] Atmp-x*((x'*Atmp)/nx2)];
+ ytmp=ytmp-x*((x'*ytmp)/nx2);
+ Acons(i:nc,i:nv)=Atmp;ycons(i:nc)=ytmp;
+ end
+ perm=[indout indin];
+ Ac1=Acons(:,1:nc); Ac2=Acons(:,nc+1:nv);
+ A=A(1:npts,:);
+ A=[real(A);imag(A)];
+ A=A(:,perm);
+ A1=A(:,1:nc); A2=A(:,nc+1:nv);
+ A=A2-A1*(Ac1\Ac2);
+ y=-A1*(Ac1\ycons);
+
+ fweight=ones(npts,1);
+ ind=find(w > 10);
+
+ fweight(ind)=((1) ./(w(ind).^order));
+ ind=find(w < .01);
+
+ fweight(ind)=(1./(w(ind)^min(0,sl0)))';
+ fweight=weight.*fweight;
+ //Wt=diag([fweight;fweight]);
+ //x=pinv(Wt*A)*(Wt*y);
+ //x=pinv([fweight;fweight]*ones(1,size(A,2)).*A)*(vvv.*y);
+ vvv=[fweight;fweight];
+ x=(vvv*ones(1,size(A,2)).*A)\(vvv.*y);
+ x=[Ac1\(ycons-Ac2*x);x];
+ [s,perm]=gsort(-perm);
+ s=-s;
+ x=x(perm);
+
+ nresp=Aom*x(1:order1); dresp=Aom*x(order1+1:2*order1);
+ relerr=abs(abs(nresp./dresp)./mag-1)';
+ for kk=1:prod(size(relerr));relerr(kk)=min(1,relerr(kk));end
+ relerr=relerr(:);
+ ind=find(mag < .01); relerr(ind)=relerr(ind)*.3;
+ ind=find(relerr>.5);
+ if ind<>[]
+ fweight(ind)=( exp(relerr(ind)*log(10)) ).*fweight(ind);
+ end
+ //Wt=diag([fweight;fweight]);
+ //x=pinv(Wt*A)*(Wt*y);
+ //x=pinv([fweight;fweight]*ones(1,size(A,2)).*A)*(vvv.*y);
+ x=([fweight;fweight]*ones(1,size(A,2)).*A)\(vvv.*y);
+ x=[Ac1\(ycons-Ac2*x);x];x=x(perm);
+ end
+
+ a=x(1:order1); b=x(order1+1:2*order1);
+ num=fliplr((M*a)');den=fliplr((M*b)');
+
+ err=abs(AA*x);
+ num=num(-slinf+1:order1);
+
+ junk=poly(fliplr(num),"s","c")
+ rn=roots(junk); rn=-abs(real(rn))+%i*imag(rn);
+ l=length(rn);
+ for k=1:l
+ if real(rn(k))>-1e-3
+ rn(k)=-1.e-3+%i*imag(rn(k))
+ end
+ end
+
+ junk=poly(fliplr(den),"s","c");
+ dn=roots(junk); dn=-abs(real(dn))+%i*imag(dn);
+ l=length(dn);
+ for k=1:l
+ if real(dn(k))>-1e-3
+ dn(k)=-1.e-3+%i*imag(dn(k))
+ end
+ end
+
+ polyrn=poly(fliplr(rn),"s");
+ polydn=poly(fliplr(dn),"s");
+ num=real(num(1)*polyrn);
+ den=real(den(1)*polydn);
+ if LHS==1
+ num=syslin("c",num/den)
+ end
+
+endfunction
+function m=fliplr(m)
+ //Utility fct
+ [p,q]=size(m);
+ m=m(:,q:-1:1);
+endfunction
diff --git a/modules/signal_processing/macros/frmag.bin b/modules/signal_processing/macros/frmag.bin
new file mode 100755
index 000000000..0e01c7eff
--- /dev/null
+++ b/modules/signal_processing/macros/frmag.bin
Binary files differ
diff --git a/modules/signal_processing/macros/frmag.sci b/modules/signal_processing/macros/frmag.sci
new file mode 100755
index 000000000..4ace029b8
--- /dev/null
+++ b/modules/signal_processing/macros/frmag.sci
@@ -0,0 +1,79 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [xm,fr]=frmag(num,den,npts)
+ //[xm,fr]=frmag(num[,den],npts)
+ //Calculates the magnitude of the frequency respones of
+ //FIR and IIR filters. The filter description can be
+ //one or two vectors of coefficients, one or two polynomials,
+ //or a rational polynomial.
+ //Case 1 (When den is not given):
+ // num :Vector coefficients/Polynomial/Rational
+ // :polynomial of filter
+ //Case 2 (When den is given):
+ // num :Vector coefficients/Polynomial of filter numerator
+ // den :Vector coefficients/Polynomial of filter denominator
+ //Case 1 and 2:
+ // npts :Number of points desired in frequency response
+ // xm :Magnitude of frequency response at the points fr
+ // fr :Points in the frequency domain where
+ // :magnitude is evaluated
+ //!
+
+ select argn(2)
+ case 2 then //frmag(sys,npts)
+ npts=den;
+ if typeof(num)=="rational" then
+ h=num;
+ if size(h,"*")<>1 then
+ error(msprintf(_("%s: Wrong size for input argument #%d: A single input, single output system expected.\n"),"frmag",1))
+ end
+ num=h.num;den=h.den;
+ elseif typeof(num)=="state-space" then
+ h=ss2tf(num);
+ if size(h,"*")<>1 then
+ error(msprintf(_("%s: Wrong size for input argument #%d: A single input, single output system expected.\n"),"frmag",1))
+ end
+ num=h.num;den=h.den;
+ elseif type(num)==2 then,
+ if size(num,"*")<>1 then
+ error(msprintf(_("%s: Wrong size for input argument #%d: A polynomial expected.\n"),"frmag",1));
+ end
+ den=poly(1,"z","c");
+ elseif type(num)==1 then,
+ num=poly(num,"z","c");
+ den=1
+ else
+ error(msprintf(_("%s: Wrong type for input argument #%d: Linear dynamical system or row vector of floats expected.\n"),"frmag",1))
+ end,
+ case 3 then,//frmag(num,den,npts)
+ if type(num)==2 then,
+ if size(num,"*")<>1 then
+ error(msprintf(_("%s: Wrong size for input argument #%d: A polynomial expected.\n"),"frmag",1));
+ end
+ elseif type(num)==1 then,
+ num=poly(num,"z","c");
+ else,
+ error(msprintf(_("%s: Wrong size for input argument #%d: A polynomial expected.\n"),"frmag",1));
+ end,
+ if type(den)==2 then,
+ if size(den,"*")<>1 then
+ error(msprintf(_("%s: Wrong size for input argument #%d: A polynomial expected.\n"),"frmag",2));
+ end
+ elseif type(den)==1 then,
+ den=poly(den,"z","c");
+ else,
+ error(msprintf(_("%s: Wrong size for input argument #%d: A polynomial expected.\n"),"frmag",2));
+ end,
+ end
+ fr=linspace(0,1/2,npts+1);
+ fr($)=[];
+ dfr=exp(2*%i*%pi*fr);
+ xm=abs(freq(num,den,dfr));
+endfunction
diff --git a/modules/signal_processing/macros/fsfirlin.bin b/modules/signal_processing/macros/fsfirlin.bin
new file mode 100755
index 000000000..8afb05d06
--- /dev/null
+++ b/modules/signal_processing/macros/fsfirlin.bin
Binary files differ
diff --git a/modules/signal_processing/macros/fsfirlin.sci b/modules/signal_processing/macros/fsfirlin.sci
new file mode 100755
index 000000000..bc2936478
--- /dev/null
+++ b/modules/signal_processing/macros/fsfirlin.sci
@@ -0,0 +1,28 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1989 - G. Le Vey
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+function [hst]=fsfirlin(hd,flag)
+ //<hst>=fsfirlin(hd,flag)
+ //macro for the design of FIR, linear phase filters
+ //using the frequency sampling technique
+ // hd : vector of desired frequency response samples
+ // flag : is equal to 1 or 2,
+ // according to the choice of type 1 or type 2 design
+ // hst : vector giving the approximated continuous response
+ // on a dense grid of frequencies
+ //!
+
+
+ n1=prod(size(hd));//filter length
+ if int(n1/2)==n1/2,n=2*n1;else,n=2*n1+1;end;//even or odd length
+ scd=sincd(n,flag);//calculates the function Sin(N*x)/Sin(x)
+ hst=hd(1)*scd(4*n+1:6*n+1);
+ eps=(-1)**(n-1);
+ for j=1:n1-1,hst=hst+hd(j+1)*[scd(-4*j+4*n+1:-4*j+6*n+1)+..
+ eps*scd(4*j+1:4*j+2*n+1)];end;
+endfunction
diff --git a/modules/signal_processing/macros/group.bin b/modules/signal_processing/macros/group.bin
new file mode 100755
index 000000000..ca36c1920
--- /dev/null
+++ b/modules/signal_processing/macros/group.bin
Binary files differ
diff --git a/modules/signal_processing/macros/group.sci b/modules/signal_processing/macros/group.sci
new file mode 100755
index 000000000..ac06aef8b
--- /dev/null
+++ b/modules/signal_processing/macros/group.sci
@@ -0,0 +1,140 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [tg,fr]=group(npts,a1i,a2i,b1i,b2i)
+ //Calculate the group delay of a digital filter
+ //with transfer function h(z).
+ //The filter specification can be in coefficient form,
+ //polynomial form, rational polynomial form, cascade
+ //polynomial form, or in coefficient polynomial form.
+ // npts :Number of points desired in calculation of group delay
+ // a1i :In coefficient, polynomial, rational polynomial, or
+ // :cascade polynomial form this variable is the transfer
+ // :function of the filter. In coefficient polynomial
+ // :form this is a vector of coefficients (see below).
+ // a2i :In coeff poly form this is a vector of coeffs
+ // b1i :In coeff poly form this is a vector of coeffs
+ // b2i :In coeff poly form this is a vector of coeffs
+ // tg :Values of group delay evaluated on the grid fr
+ // fr :Grid of frequency values where group delay is evaluated
+ //
+ //In the coefficient polynomial form the tranfer function is
+ //formulated by the following expression:
+ //
+ // h(z)=prod(a1i+a2i*z+z**2)/prod(b1i+b2i*z+z^2)
+ //
+ //!
+
+
+ //get frequency grid values in [0,.5)
+
+ fr=(0:.5/npts:.5*(npts-1)/npts);
+
+ //get the of arguments used to called group
+
+ [ns,ne]=argn(0);
+ if and(ne <> [2 5]) then
+ error(sprintf(_("%s: Wrong number of input argument(s): %d or %d expected.\n"), "group", 2, 5));
+ end
+
+ //if the number of arguments is 2 then
+ //the case may be non-cascade
+
+ hcs=1;
+ if ne==2 then
+
+ //get the type of h and the variable name
+
+ h=a1i;
+ ht=type(h);
+ if and(ht <> [1 2 15 16]) then
+ error(sprintf(_("%s: Wrong type for input argument #%d: A real or polynomial matrix or a rational expected.\n"), "group", 2));
+ end
+ if ht == 16 & or(h.dt == "c" | h.dt == []) then
+ error(sprintf(_("%s: Wrong type for input argument #%d: A discrete system expected.\n"), "group", 2));
+ end
+
+ //if ht==1 then h is a vector containing filter coefficients
+
+ if ht==1 then
+
+ //make h a rational polynomial
+
+ hcs=max(size(h));
+ z=poly(0,"z");
+ h=poly(h,"z","c");
+ h=gtild(h,"d")*(1/z^(hcs-1));
+ elseif ht == 2 then
+ z = poly(0, varn(h));
+ else //ht==15|ht==16
+ z=poly(0, varn(h(3)));
+ hcs=max(size(h(2)));
+ end,
+
+ //if the rational polynomial is not in cascade form then
+
+ if hcs==1 then
+ //get the derivative of h(z)
+
+ hzd=derivat(h);
+
+ //get the group delay of h(z)
+ tgz=-z*hzd/h;
+
+ //evaluate tg
+
+ rfr=exp(2*%pi*%i*fr);
+
+
+ tg=real(freq(tgz(2),tgz(3),rfr));
+
+ //done with non-cascade calculation of group delay
+
+ end,
+ //re-organize if h is in cascade form
+
+ if hcs>1 then
+ xc=[coeff(h(2)),coeff(h(3))];
+ a2i=xc(1:hcs);
+ a1i=xc(hcs+1:2*hcs);
+ b2i=xc(3*hcs+1:4*hcs);
+ b1i=xc(4*hcs+1:5*hcs);
+ ne=5;
+ end,
+ end,
+
+ //if implementation is in cascade form
+
+ if ne==5 then
+
+ //a1i,a2i,b1i,b2i are the coefficients of a
+ //second order decomposition of the filter
+ //(i.e. in cascade form, see Deczky)
+
+ phi=2*%pi*fr;
+ z=poly(0,"z");
+ ejw=freq(z,1,exp(%i*phi));
+ emjw=freq(z,1,exp(-%i*phi));
+
+ a1=a1i'*ones(phi);
+ b1=b1i'*ones(phi);
+ a2=a2i'*ones(phi);
+ b2=b2i'*ones(phi);
+ ejw=ones(a1i)'*ejw;
+ emjw=ones(a1i)'*emjw;
+
+ aterm=(a1+2*ejw)./(a1+ejw+a2.*emjw);
+ bterm=(b1+2*ejw)./(b1+ejw+b2.*emjw);
+
+ tgi=real(bterm-aterm);
+ tg=ones(a1i)*tgi;
+
+ //done with cascade calculation of group delay
+ end
+endfunction
diff --git a/modules/signal_processing/macros/hank.bin b/modules/signal_processing/macros/hank.bin
new file mode 100755
index 000000000..ea246ff42
--- /dev/null
+++ b/modules/signal_processing/macros/hank.bin
Binary files differ
diff --git a/modules/signal_processing/macros/hank.sci b/modules/signal_processing/macros/hank.sci
new file mode 100755
index 000000000..9e6dc075e
--- /dev/null
+++ b/modules/signal_processing/macros/hank.sci
@@ -0,0 +1,65 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1989 - G. Le Vey
+// Copyright (C) Scilab Enterprises - 2011 - Calixte DENIZET
+// Copyright (C) DIGITEO - 2012 - Allan CORNET
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function hk = hank(m, n, seq_cov)
+ //hk = hank(m,n,cov)
+ //this macro builds the hankel matrix of size (m*d,n*d)
+ //from the covariance sequence of a vector process
+ // m : number of bloc-rows
+ // n : number of bloc-columns
+ // seq_cov: sequence of covariances; it must be given as :[R0 R1 R2...Rk]
+ // hk : computed hankel matrix
+ //
+
+ [lhs, rhs] = argn(0);
+ if rhs <> 3 then
+ error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"), "hank", 3));
+ end
+
+ if and(type(m) <> [1 8]) then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: A positive integer expected.\n"), "hank", 1));
+ end
+
+ if (size(m, "*") <> 1) then
+ error(msprintf(gettext("%s: Wrong size for input argument #%d: A positive integer expected.\n"), "hank", 1));
+ end
+
+ if m <= 0 | m <> fix(m) then
+ error(msprintf(gettext("%s: Wrong value for input argument #%d: A positive integer expected.\n"), "hank", 1));
+ end
+
+ if and(type(n) <> [1 8]) then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: A positive integer expected.\n"), "hank", 2));
+ end
+
+ if (size(n, "*") <> 1) then
+ error(msprintf(gettext("%s: Wrong size for input argument #%d: A positive integer expected.\n"), "hank", 2));
+ end
+
+ if n <= 0 | n <> fix(n) then
+ error(msprintf(gettext("%s: Wrong value for input argument #%d: A positive integer expected.\n"), "hank", 2));
+ end
+
+ t = type(seq_cov);
+ if (t > 10) | (t <= 0) then
+ error(msprintf(gettext("%s: Wrong values for input argument #%d: Unsupported ''%s'' type.\n"), "hank", 3, typeof(t)));
+ end
+
+ [r, c] = size(seq_cov);
+ mr = m * r;
+ nr = n * r;
+ if (mr + nr - r > c) then
+ error(msprintf(gettext("%s: Wrong size for input arguments: Incompatible sizes.\n"), "hank"));
+ end
+
+ index = ones(1, nr) .*. (1:r:mr)' + (0:(nr - 1)) .*. ones(m, 1);
+ hk = matrix(seq_cov(:, index), mr, -1);
+endfunction
diff --git a/modules/signal_processing/macros/hilb.bin b/modules/signal_processing/macros/hilb.bin
new file mode 100755
index 000000000..0a1c053c3
--- /dev/null
+++ b/modules/signal_processing/macros/hilb.bin
Binary files differ
diff --git a/modules/signal_processing/macros/hilb.sci b/modules/signal_processing/macros/hilb.sci
new file mode 100755
index 000000000..c4f1dc8f3
--- /dev/null
+++ b/modules/signal_processing/macros/hilb.sci
@@ -0,0 +1,61 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function xh=hilb(n,wtype,par)
+ //xh=hilb(n [,wtype [,par]])
+ //returns the first n points of the
+ //Hilbert IIR filter centered around the origin.
+ //That is, xh=(2/(n*pi))*(sin(n*pi/2))**2.
+ //Window type and window parameters are optional.
+ // n :Number of points in filter
+ // wtype :window type ('re','tr','hn','hm','kr','ch')
+ // : default wtype='re'
+ // par :window parameter for wtype='kr' or 'ch'
+ // : default par=[0 0]
+ // :see the macro window for more help
+ // xh :Hilbert transform
+ //
+ //!
+ // References:
+ // http://ieeexplore.ieee.org/iel4/78/7823/00330385.pdf?tp=&arnumber=330385&isnumber=7823
+ // A. Reilly, G. Frazer, and B. Boashash, "Analytic signal generation
+ // Tips and traps,¡ IEEE Trans. Signal Processing, vol. 42,
+ // pp.3241-3245, Nov. 1994.
+ [lhs,rhs]=argn(0);
+ if rhs==1 then,
+ wtype="re";
+ par=[0 0];
+ elseif rhs==2 then,
+ par=[0 0];
+ end,
+
+ if type(n)<>1|size(n,"*")<>1 then
+ error(msprintf(gettext("%s: Wrong size for input argument #%d: A scalar expected.\n"),"hilb",1));
+ end
+ if (n - floor(n) <> 0) | (floor(n/2) == n/2) then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: An odd integer expected.\n"),"hilb",1));
+ end
+ if and(wtype<>["re","tr","hn","hm","kr","ch"]) then
+ error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n") ,"hilb",2,"''re'',''tr'',''hn'',''hm'',''kr'',''ch''"));
+
+ end
+ no2=int(n/2)
+ if no2==n/2 then,
+ xh0=[]
+ else
+ xh0=0
+ end,
+ th=zeros(1,no2);
+ th(1:2:no2)=ones(1:2:no2)./(1:2:no2);
+ xh=[-th(no2:-1:1),xh0,th];
+ xh=2*xh/%pi;
+
+ [win_l,cwp]=window(wtype,n,par);
+ xh=xh.*win_l;
+endfunction
diff --git a/modules/signal_processing/macros/hilbert.bin b/modules/signal_processing/macros/hilbert.bin
new file mode 100755
index 000000000..1345ca9fb
--- /dev/null
+++ b/modules/signal_processing/macros/hilbert.bin
Binary files differ
diff --git a/modules/signal_processing/macros/hilbert.sci b/modules/signal_processing/macros/hilbert.sci
new file mode 100755
index 000000000..1a838dacf
--- /dev/null
+++ b/modules/signal_processing/macros/hilbert.sci
@@ -0,0 +1,46 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+//
+//
+
+function x = hilbert(xr)
+ // Marple, S.L., "Computing the discrete-time analytic signal via FFT,"
+ // IEEE Transactions on Signal Processing, Vol. 47, No.9 (September
+ // 1999), pp.2600-2603
+ // http://ieeexplore.ieee.org/iel5/78/16975/00782222.pdf?arnumber=782222
+
+ if type(xr)<>1 then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n"),"hilbert",1))
+ end
+
+ n=size(xr,"*");
+
+ if n==0 then x=[],return,end
+ if ~isreal(xr,0) then
+ error(msprintf(gettext("%s: Input argument #%d must be real.\n"),"hilbert",1));
+ end
+
+ no2 = int(n/2);
+
+ x = fft(real(xr),-1);
+
+ h = zeros(xr);
+
+ if ((2*no2) == n) then // n is even
+ h([1,no2+1]) = 1;
+ h(2:no2) = 2;
+ else // n is odd
+ h(1) = 1;
+ h(2:(n+1)/2) = 2;
+ end
+
+ x = fft(x.*h,1);
+
+endfunction
+
diff --git a/modules/signal_processing/macros/idct.bin b/modules/signal_processing/macros/idct.bin
new file mode 100755
index 000000000..1ee8ec790
--- /dev/null
+++ b/modules/signal_processing/macros/idct.bin
Binary files differ
diff --git a/modules/signal_processing/macros/idct.sci b/modules/signal_processing/macros/idct.sci
new file mode 100755
index 000000000..70aa3ae15
--- /dev/null
+++ b/modules/signal_processing/macros/idct.sci
@@ -0,0 +1,15 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 2012 - S. Steer
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+function x=idct(a,varargin)
+ if type(a)==1|(typeof(a)=="hypermat"&type(a.entries)==1) then
+ x=dct(a,1,varargin(:))
+ else
+ error(msprintf(_("%s: Wrong type for input argument #%d: Array of double expected.\n"),"idct", 1));
+ end
+endfunction
diff --git a/modules/signal_processing/macros/idst.bin b/modules/signal_processing/macros/idst.bin
new file mode 100755
index 000000000..9adab5074
--- /dev/null
+++ b/modules/signal_processing/macros/idst.bin
Binary files differ
diff --git a/modules/signal_processing/macros/idst.sci b/modules/signal_processing/macros/idst.sci
new file mode 100755
index 000000000..7045c8147
--- /dev/null
+++ b/modules/signal_processing/macros/idst.sci
@@ -0,0 +1,15 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 2012 - S. Steer
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+function x=idst(a,varargin)
+ if type(a)==1|(typeof(a)=="hypermat"&type(a.entries)==1) then
+ x=dst(a,1,varargin(:))
+ else
+ error(msprintf(_("%s: Wrong type for input argument #%d: Array of double expected.\n"),"idst", 1));
+ end
+endfunction
diff --git a/modules/signal_processing/macros/ifft.bin b/modules/signal_processing/macros/ifft.bin
new file mode 100755
index 000000000..7b04d217d
--- /dev/null
+++ b/modules/signal_processing/macros/ifft.bin
Binary files differ
diff --git a/modules/signal_processing/macros/ifft.sci b/modules/signal_processing/macros/ifft.sci
new file mode 100755
index 000000000..8eb491892
--- /dev/null
+++ b/modules/signal_processing/macros/ifft.sci
@@ -0,0 +1,15 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+function x=ifft(a,varargin)
+ if type(a)==1|(typeof(a)=="hypermat"&type(a.entries)==1) then
+ x=fft(a,1,varargin(:))
+ else
+ error(msprintf(_("%s: Wrong type for input argument #%d: Array of double expected.\n"),"ifft", 1));
+ end
+endfunction
diff --git a/modules/signal_processing/macros/ifftshift.bin b/modules/signal_processing/macros/ifftshift.bin
new file mode 100755
index 000000000..8bbf09968
--- /dev/null
+++ b/modules/signal_processing/macros/ifftshift.bin
Binary files differ
diff --git a/modules/signal_processing/macros/ifftshift.sci b/modules/signal_processing/macros/ifftshift.sci
new file mode 100755
index 000000000..8d030ac52
--- /dev/null
+++ b/modules/signal_processing/macros/ifftshift.sci
@@ -0,0 +1,27 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - Scilab Enterprises - Allan Cornet
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function y = ifftshift(x)
+
+ if argn(2) < 1 then
+ error(sprintf(_("%s: Wrong number of input argument(s): %d expected.\n"), "ifftshift", 1));
+ end
+
+ numDims = ndims(x);
+ idx = list(1, numDims);
+
+ for k = 1:numDims
+ m = size(x, k);
+ p = floor(m/2);
+ idx(k) = [p+1:m 1:p];
+ end
+
+ y = x(idx(:));
+
+endfunction
diff --git a/modules/signal_processing/macros/iir.bin b/modules/signal_processing/macros/iir.bin
new file mode 100755
index 000000000..7e689ce74
--- /dev/null
+++ b/modules/signal_processing/macros/iir.bin
Binary files differ
diff --git a/modules/signal_processing/macros/iir.sci b/modules/signal_processing/macros/iir.sci
new file mode 100755
index 000000000..ce549bd06
--- /dev/null
+++ b/modules/signal_processing/macros/iir.sci
@@ -0,0 +1,81 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [hz,zz,gz]=iir(n,ftype,fdesign,frq,delta)
+ // hz=iir(n,ftype,fdesign,frq,delta)
+ //macro which designs an iir digital filter
+ //using analog filter designs.
+ //the arguments of the filter are:
+ // n :filter order (pos. integer)
+ // ftype :specification of the filter type
+ // : ftype=('lp','hp','bp','sb')
+ // fdesign :specifiation of the analog filter design
+ // : fdesign=('butt','cheb1','cheb2','ellip')
+ // frq :2-vector of discrete cut-off frequencies
+ // :(i.e., 0<frq<.5). For lp and hp filters only
+ // :frq(1) is used. For bp and sb filters frq(1)
+ // :is the lower cut-off frequency and frq(2) is
+ // :the upper cut-off frequency
+ // delta :2-vector of error values for cheb1, cheb2, and
+ // :ellip filters where only delta(1) is used for
+ // :cheb1 case, only delta(2) is used for cheb2 case,
+ // :and delta(1) and delta(2) are both used for
+ // :ellip case.
+ // : 0<delta(1),delta(2)<1
+ // :for cheb1 filters: 1-delta(1)<ripple<1 in passband
+ // :for cheb2 filters: 0<ripple<delta(2) in stopband
+ // :for ellip filters: 1-delta(1)<ripple<1 in passband
+ // : 0<ripple<delta(2) in stopband
+ //
+ //!
+ if and(argn(1)<>[1 3]) then
+ error(msprintf(gettext("%s: Wrong number of output arguments: %d or %d expected.\n"),"iir",1,3))
+ end
+ //select analog filter design for low-pass filter with fc=.25
+ if type(n)<>1 then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n"),"iir",1))
+ end
+ if size(n,"*")<>1 then
+ error(msprintf(gettext("%s: Wrong size for input argument #%d: A scalar expected.\n"),"iir",1))
+ end
+ if n<0|n<>round(n) then
+ error(msprintf(gettext("%s: Wrong values for input argument #%d: Non-negative integers expected.\n"),"iir",1))
+ end
+
+ if and(ftype<>["lp","hp","bp","sb"]) then
+ error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),"iir",2,"''lp'',''hp'',''bp'',''sb''"))
+ end
+ if and(fdesign<>["butt","cheb1","cheb2","ellip"]) then
+ error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),"iir",2,"''butt'',''cheb1'',''cheb2'',''ellip''"))
+ end
+ if type(frq)<>1 then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n"),"iir",4))
+ end
+ if type(delta)<>1 then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n"),"iir",5))
+ end
+
+ if max(abs(frq))>0.5 then
+ error(msprintf(gettext("%s: Wrong values for input argument #%d: Elements must be in the interval [%s, %s].\n"),"iir",4,"0","0.5"));
+ end
+ if delta(1)<0|delta(2)>1 then
+ error(msprintf(gettext("%s: Wrong values for input argument #%d: Elements must be in the interval [%s, %s].\n"),"iir",4,"0","1"));
+ end
+
+ [hs,pc,zc,gc]=analpf(n,fdesign,delta,2);
+ //make digital low-pass filter from analog low-pass filter
+ z=poly(0,"z");[pd,zd,gd]=bilt(pc,zc,gc,2*(z-1),(z+1));
+ //do change of variables to obtain general digital filter
+ if argn(1)==1 then
+ hz=trans(pd,zd,gd,ftype,frq);
+ else
+ [pz,zz,gz]=trans(pd,zd,gd,ftype,frq);
+ hz=pz
+ end
+endfunction
diff --git a/modules/signal_processing/macros/iirgroup.bin b/modules/signal_processing/macros/iirgroup.bin
new file mode 100755
index 000000000..b67ee0eb9
--- /dev/null
+++ b/modules/signal_processing/macros/iirgroup.bin
Binary files differ
diff --git a/modules/signal_processing/macros/iirgroup.sci b/modules/signal_processing/macros/iirgroup.sci
new file mode 100755
index 000000000..dfe64a74f
--- /dev/null
+++ b/modules/signal_processing/macros/iirgroup.sci
@@ -0,0 +1,52 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [lt,grad]=iirgroup(p,r,theta,omega,wt,td)
+ // p===> Lp
+ // r=magnitude of poles and zeros of filters
+ //theta=phase " " " " "
+ //omega=frequencies corresponding to filters specs.
+ //wt=weighting function for group delay
+ //!
+ [m,n]=size(td);if m>n,td=td';end;
+ [m,n]=size(omega);if m>n,omega=omega';end;
+ [m,n]=size(r);if n>m,r=r';m=n;end;
+ [m,n]=size(theta);if n>m,theta=theta';m=n;end;
+ m=m/2;
+ //
+ //VARIABLES LOCALES
+ unr=ones(r);unom=ones(omega);un=unr(1:m,:).*.unom;
+ n1=r.*.unom;n2=unr.*.omega;n3=theta.*.unom;n4=(unr+r.*r).*.unom;
+ cw=cos(omega);sw=sin(omega);ct=cos(theta);st=sin(theta);
+ c=cw.*.ct;s=sw.*.st;cos1=c+s;cos2=c-s;
+ c=sw.*.ct;s=cw.*.st;sin1=c-s;sin2=c+s;
+ //
+ //FORMES QUADRATIQUES
+ k1=n4-2*n1.*cos1;k2=n4-2*n1*cos2;
+ //
+ //RETARD DE GROUPE
+ grp=[];k3=k1(1:m,:);k4=k1(m+1:2*m,:);k5=k2(1:m,:);k6=k2(m+1:2*m,:);
+ c1=cos1(1:m,:);c2=cos1(m+1:2*m,:);c3=cos2(1:m,:);c4=cos2(m+1:2*m,:);
+ r1=n1(1:m,:);r2=n1(m+1:2*m,:);
+ t=(un-r2.*c2)./k4+(un-r2.*c4)./k6-(un-r1.*c1)./k3-(un-r1.*c3)./k5;
+ for k=t,grp=[grp sum(k)];end;
+ //
+ //GRADIENT DU RETARD DE GROUPE
+ k1=k1.*k1;k2=k2.*k2;
+ grrgrp=(n4.*cos1-2*n1)./k1+(n4.*cos2-2*n1)./k2;
+ grrgrp(1:m,:)=-grrgrp(1:m,:);
+ n5=n1.*(-n4+2*unr.*.unom);
+ grtgrp=(n5.*sin1)./k1-(n5.*sin2)./k2;
+ grtgrp(1:m,:)=-grtgrp(1:m,:);
+ //
+ //CRITERE D'ERREUR EN LE RETARD DE GROUPE ET SON GRADIENT
+ t=grp-td;t1=t^(2*p);t1=t1.*wt;lt=sum(t1);
+ t1=(t1./t)*2*p;
+ grad=[grrgrp*t1' grtgrp*t1'];
+endfunction
diff --git a/modules/signal_processing/macros/iirlp.bin b/modules/signal_processing/macros/iirlp.bin
new file mode 100755
index 000000000..74c69041c
--- /dev/null
+++ b/modules/signal_processing/macros/iirlp.bin
Binary files differ
diff --git a/modules/signal_processing/macros/iirlp.sci b/modules/signal_processing/macros/iirlp.sci
new file mode 100755
index 000000000..5b6f04f9c
--- /dev/null
+++ b/modules/signal_processing/macros/iirlp.sci
@@ -0,0 +1,49 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [cout,grad,ind]=iirlp(x,ind,p,flag,lambda,omega,ad,wa,td,wt)
+ //
+ //optimization of IIR filters IIR with Lp criterium for magnitude
+ // and/or group delay
+ // -cf Rabiner & Gold pp270-273-
+ //
+ //auteur : G. Le Vey
+ //
+ // p ===> critere Lp
+ //
+ //r=module des poles et zeros des filtres
+ //theta=argument des " " " " "
+ //omega=frequences ou sont donnees les specifications des filtres
+ //wa,wt=fonctions de ponderation pour l'amplitude et le
+ //retard de groupe ad,td=amplitudes et retard de groupe desires
+ //!
+ r=x(:,1);theta=x(:,2);
+ [m,n]=size(ad);if m>n,ad=ad';end
+ [m,n]=size(td);if m>n,td=td';end
+ [m,n]=size(omega);if m>n,omega=omega';end;
+ [m,n]=size(r);if n>m,r=r';m=n;end;
+ [m,n]=size(theta);if n>m,theta=theta';m=n;end;
+ //
+ select flag
+ case "a"
+ //AMPLITUDE
+ [cout,grad]=iirmod(p,r,theta,omega,wa,ad);
+ //
+ case "gd"
+ //RETARD DE GROUPE
+ [cout,grad]=iirgroup(p,r,theta,omega,wt,td);
+ //
+ else
+ //AMPLITUDE ET RETARD DE GROUPE
+ [la,ga]=iirmod(p,r,theta,omega,wa,ad);
+ [lt,gt]=iirgroup(p,r,theta,omega,wt,td);
+ cout=lambda*la+(1-lambda)*lt;
+ grad=lambda*ga+(1-lambda)*gt;
+ end;
+endfunction
diff --git a/modules/signal_processing/macros/iirmod.bin b/modules/signal_processing/macros/iirmod.bin
new file mode 100755
index 000000000..2c01d2fcf
--- /dev/null
+++ b/modules/signal_processing/macros/iirmod.bin
Binary files differ
diff --git a/modules/signal_processing/macros/iirmod.sci b/modules/signal_processing/macros/iirmod.sci
new file mode 100755
index 000000000..74f3d81ab
--- /dev/null
+++ b/modules/signal_processing/macros/iirmod.sci
@@ -0,0 +1,49 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [la,grad,ind]=iirmod(x,ind)
+ // p===> critere Lp
+ // r=module des poles et zeros des filtres
+ //theta=argument des " " " " "
+ //omega=frequences ou sont donnees les specifications des filtres
+ //wa=fonction de ponderation pour l'amplitude
+ //!
+ r=x(:,1);theta=x(:,2);
+ [m,n]=size(ad);if m>n,ad=ad';end;
+ [m,n]=size(omega);if m>n,omega=omega';end;
+ [m,n]=size(r);if n>m,r=r';m=n;end;
+ [m,n]=size(theta);if n>m,theta=theta';m=n;end;
+ m=m/2;
+ //
+ //VARIABLES LOCALES
+ unr=ones(r);unom=ones(omega);un=unr(1:m,:).*.unom;
+ n1=r.*.unom;n2=unr.*.omega;n3=theta.*.unom;n4=(unr+r.*r).*.unom;
+ cos1=[];cos2=[];sin1=[];sin2=[];
+ for k=(n2-n3),cos1=[cos1 cos(k)];sin1=[sin1 sin(k)];end;
+ for k=(n2+n3),cos2=[cos2 cos(k)];sin2=[sin2 sin(k)];end;
+ //
+ //FORMES QUADRATIQUES
+ k1=n4-2*n1.*cos1;k2=n4-2*n1.*cos2;
+ //
+ //AMPLITUDE
+ ampl=[];k3=k1(1:m,:);k4=k1(m+1:2*m,:);k5=k2(1:m,:);k6=k2(m+1:2*m,:);
+ a1=(k3.*k5)./(k4.*k6);
+ for k=a1,ampl=[ampl sqrt(prod(k))];end;
+ //
+ //GRADIENT DE L'AMPLITUDE
+ grrampl=(n1-cos1)./k1+(n1-cos2)./k2;
+ grrampl(m+1:2*m,:)=-grrampl(m+1:2*m,:);
+ grtampl=-(n1.*sin1)./k1+(n1.*sin2)./k2;
+ grtampl(m+1:2*m,:)=-grtampl(m+1:2*m,:);
+ //
+ //CRITERE D'ERREUR EN AMPLITUDE ET SON GRADIENT
+ a=ampl-ad;a1=a**(2*p);a1=a1.*wa;la=sum(a1);
+ a1=(a1./a)*2*p;a1=a1.*ampl;
+ grad=[grrampl*a1' grtampl*a1'];
+endfunction
diff --git a/modules/signal_processing/macros/intdec.bin b/modules/signal_processing/macros/intdec.bin
new file mode 100755
index 000000000..ee56ed02f
--- /dev/null
+++ b/modules/signal_processing/macros/intdec.bin
Binary files differ
diff --git a/modules/signal_processing/macros/intdec.sci b/modules/signal_processing/macros/intdec.sci
new file mode 100755
index 000000000..dde6f2386
--- /dev/null
+++ b/modules/signal_processing/macros/intdec.sci
@@ -0,0 +1,112 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1990 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [y]=intdec(x,lom)
+ //y=intdec(x,lom)
+ //Changes the sampling rate of a 1D or 2D signal by the rates in lom
+ // x :Input sampled signal
+ // lom :For a 1D signal this is a scalar which gives the rate change
+ // :For a 2D signal this is a 2-Vector of sampling rate
+ // :changes lom=(col rate change,row rate change)
+ // y :Output sampled signal
+ //!
+
+ //Get dimensions of vectors
+
+ xsize=size(x);
+ xmin=min(x);xmax=max(x);
+ if xsize(1)==1 then, lom=[1 lom]; end,
+ if xsize(2)==1 then, lom=[lom 1]; end,
+
+ //compute sampling rate change as ratio of two integers
+
+ [l,m]=rat(lom);
+
+ //Assuming that the signal length is N (=xsize)
+ //the interpolated signal is N*l and the decimated
+ //signal is N*l/m. The resulting output will have
+ //length int(N*l/m).
+
+ xlsize=xsize.*l;
+ xmsize=int(xlsize./m);
+
+ //Since the location of %pi in the frequency domain
+ //falls on a sample point for N even and between two
+ //sample points for N odd care must be taken to differentiate
+ //between the two cases in the following manipulations.
+
+ leven=2*(int(xsize/2)-xsize/2)+ones(xsize);
+ meven=2*(int(xmsize/2)-xmsize/2)+ones(xmsize);
+
+ //The position of %pi for the Fourier transform of the
+ //original signal is different for odd and even length signals.
+ //For an even length signal %pi is at the (N/2)+1 sample and
+ //for an odd length signal %pi is between the (N+1)/2 and the
+ //(N+1)/2 + 1 samples.
+
+ fp=int(xsize/2)+ones(xsize);
+ fpc=xsize-fp+leven;
+
+ fm=int(xmsize/2)+ones(xmsize);
+ fmc=fm-ones(fm)-meven;
+
+ //If the input is a constant then don't do the work
+
+ if xmax==xmin then,
+ y=xmax*ones(xmsize(1),xmsize(2));
+ else,
+
+ //For interpolation we, theoretically, would upsample x by putting l-1
+ //zeroes between each sample and then low pass filter at w=%pi.
+ //However, this corresponds to cutting the Fourier transform of the
+ //original signal into two parts at w=%pi and inserting l times the
+ //length of the signal in zeroes.
+ //
+ //For decimation we, theoretically, would low pass filter at the
+ //Nyquist frequency and then remove m-1 samples out of m of the
+ //time domain signal. However, this corresponds to saving the
+ //N/m points of the signal at the two ends of the Fourier transform
+ //and then inverse transforming.
+
+ //Fourier transform the signal
+
+ xf=fft(x,-1);
+
+ //Re-assemble the correct portions of the frequency domain signal
+
+ if fm(1)<fp(1) then,//reduce row length (decimation)
+ xlf=[xf(1:fm(1),:);xf(xsize(1)-fmc(1)+1:xsize(1),:)];
+ else,
+ if xmsize(1)==xsize(1) then,//no changes in row length
+ xlf=xf;
+ else,//increase row length (interpolation)
+ xlf=[xf(1:fp(1),:);...
+ 0*ones(xmsize(1)-fpc(1)-fp(1),xsize(2));...
+ xf(xsize(1)-fpc(1)+1:xsize(1),:)];
+ end,
+ end,
+ if fm(2)<fp(2) then,//decrease column length (decimation)
+ xlf=[xlf(:,1:fm(2)),xlf(:,xsize(2)-fmc(2)+1:xsize(2))];
+ else,
+ if xmsize(2)==xsize(2) then,//no changes in column length
+ xlf=xlf;
+ else,//increase column length (interpolation)
+ xlf=[xlf(:,1:fp(2)),...
+ 0*ones(xmsize(1),xmsize(2)-fpc(2)-fp(2)),...
+ xlf(:,xsize(2)-fpc(2)+1:xsize(2))];
+ end,
+ end,
+
+ //recuperate new signal and rescale
+
+ y=real(fft(xlf,1));
+ y=prod(lom)*y;
+
+ end
+endfunction
diff --git a/modules/signal_processing/macros/kalm.bin b/modules/signal_processing/macros/kalm.bin
new file mode 100755
index 000000000..1f936e014
--- /dev/null
+++ b/modules/signal_processing/macros/kalm.bin
Binary files differ
diff --git a/modules/signal_processing/macros/kalm.sci b/modules/signal_processing/macros/kalm.sci
new file mode 100755
index 000000000..baa54ec78
--- /dev/null
+++ b/modules/signal_processing/macros/kalm.sci
@@ -0,0 +1,35 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [x1,p1,x,p]=kalm(y,x0,p0,f,g,h,q,r)
+ //[x1,p1,x,p]=kalm(y,x0,p0,f,g,h,q,r)
+ //macro which gives the Kalman update and error variance
+ //Input to the macro is:
+ // f,g,h :current system matrices
+ // q,r :covariance matrices of dynamics and observation noise
+ // x0,p0 :state estimate and error variance at t=0 based
+ // :on data up to t=-1
+ // y :current observation
+ //
+ //Output from the macro is:
+ // x1,p1 :updated estimate and error covariance at t=1
+ // :based on data up to t=0
+ // x,p :updated estimate and error covariance at t=0
+ // :based on data up to t=0
+ //!
+
+ if argn(2) <> 8 then
+ error(sprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"), "kalm", 8));
+ end
+ k=p0*h'*(h*p0*h'+r)**(-1);
+ p=(eye(p0)-k*h)*p0;
+ p1=f*p*f'+g*q*g';
+ x=x0+k*(y-h*x0);
+ x1=f*x;
+endfunction
diff --git a/modules/signal_processing/macros/lattn.bin b/modules/signal_processing/macros/lattn.bin
new file mode 100755
index 000000000..84266e8b5
--- /dev/null
+++ b/modules/signal_processing/macros/lattn.bin
Binary files differ
diff --git a/modules/signal_processing/macros/lattn.sci b/modules/signal_processing/macros/lattn.sci
new file mode 100755
index 000000000..fb262e482
--- /dev/null
+++ b/modules/signal_processing/macros/lattn.sci
@@ -0,0 +1,116 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1989 - G. Le Vey
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [la,lb]=lattn(n,p,mat_cov)
+ //[la,lb]=lattn(n,p,cov)
+ //macro which solves recursively on n (p being fixed)
+ //the following system (normal equations), i.e. identifies
+ //the AR part(poles) of a vector ARMA(n,p) process
+ //
+ // |Rp+1 Rp+2 . . . . . Rp+n |
+ // |Rp Rp+1 . . . . . Rp+n-1|
+ // | . Rp . . . . . . |
+ // | |
+ // |I -A1 -A2 . . .-An|| . . . . . . . . |=0
+ // | . . . . . . . . |
+ // | . . . . . . . . |
+ // | . . . . . . . Rp+1 |
+ // |Rp+1-n. . . . . . Rp |
+ //
+ // where {Rk;k=1,nlag} is the sequence of empirical covariances
+ //
+ // n : maximum order of the filter
+ // p : fixed dimension of the MA part. If p is equal to -1,
+ // : the algorithm reduces to the classical Levinson recursions.
+ // cov : matrix containing the Rk(d*d matrices for
+ // : a d-dimensional process).It must be given the
+ // : following way:
+ //
+ // | R0 |
+ // | R1 |
+ // cov=| R2 |
+ // | . |
+ // | . |
+ // |Rnlag|
+ //
+ // la : list-type variable, giving the successively calculated
+ // : polynomials (degree 1 to degree n),with coefficients Ak
+ //!
+
+
+ if argn(2)<>3 then
+ error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"),"lattn",3))
+ end
+ if type(n)<>1 then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n"),"lattn",1))
+ end
+ if size(n,"*")<>1 then
+ error(msprintf(gettext("%s: Wrong size for input argument #%d: A scalar expected.\n"),"lattn",1))
+ end
+ if n<0|n<>round(n) then
+ error(msprintf(gettext("%s: Wrong values for input argument #%d: Non-negative integers expected.\n"),"lattn",1))
+ end
+ if type(p)<>1 then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n"),"lattn",2))
+ end
+ if size(p,"*")<>1 then
+ error(msprintf(gettext("%s: Wrong size for input argument #%d: A scalar expected.\n"),"lattn",2))
+ end
+ if p<-1|p<>round(p) then
+ error(msprintf(gettext("%s: Wrong values for input argument #%d: Elements must be in the interval [%s, %s].\n"),"lattn",2,"-1","%inf"))
+ end
+
+ if type(mat_cov)<>1 then
+ error(msprintf(gettext("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n"),"lattn",3))
+ end
+
+ [l,d]=size(mat_cov);
+ if d>l then
+ error(msprintf(gettext("%s: Wrong size for input argument #%d: A tall matrix expected.\n"),"lattn",3))
+ end
+
+
+ a=eye(d);
+ b=eye(d);
+ z=poly(0,"z");
+ la=list();
+ lb=list();
+ no=p-n-1;
+ cv=mat_cov;
+
+ if -no >= floor(l/d) then
+ error(msprintf(gettext("%s: Wrong values for input arguments #%d and #%d.\n"),"lattn",1, 2))
+ end
+
+ if no<0,
+ for j=1:-no,cv=[mat_cov(j*d+1:(j+1)*d,:)';cv];end;
+ p=p-no;
+ end
+
+ if (p + 2 + (n-1)) * d > size(cv,"r") then
+ error(msprintf(gettext("%s: Wrong values for input arguments #%d and #%d.\n"),"lattn",1, 2))
+ end
+
+ for j=0:n-1,
+ r1=flipdim(cv((p+1)*d+1:(p+2+j)*d,:), 1, d);
+ r2=flipdim(cv(p*d+1:(p+1+j)*d,:), 1, d);
+ r3=flipdim(cv((p-1-j)*d+1:p*d,:), 1, d);
+ r4=flipdim(cv((p-j)*d+1:(p+1)*d,:), 1, d);
+ c1=coeff(a);
+ c2=coeff(b);
+ k1=(c1*r1)*inv(c2*r2);
+ k2=(c2*r3)*inv(c1*r4);
+ a1=a-k1*z*b;
+ b=-k2*a+z*b;
+ a=a1;
+ la(j+1)=a;
+ lb(j+1)=b;
+ end;
+endfunction
diff --git a/modules/signal_processing/macros/lattp.bin b/modules/signal_processing/macros/lattp.bin
new file mode 100755
index 000000000..e404ccb97
--- /dev/null
+++ b/modules/signal_processing/macros/lattp.bin
Binary files differ
diff --git a/modules/signal_processing/macros/lattp.sci b/modules/signal_processing/macros/lattp.sci
new file mode 100755
index 000000000..790ba3865
--- /dev/null
+++ b/modules/signal_processing/macros/lattp.sci
@@ -0,0 +1,33 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1989 - G. Le Vey
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [la,lb]=lattp(n,p,mat_cov)
+ // See lattn for more information
+ [l,d]=size(mat_cov);
+ id=eye(d);
+ [a,b]=lattn(n,0,mat_cov);
+ a=a(n);
+ b=b(n);
+ z=poly(0,"z");
+ la=list();
+ lb=list();
+ for j=0:p-1,
+ r1=flipdim(mat_cov((j+1)*d+1:(j+n+2)*d,:), 1, d);
+ r2=flipdim(mat_cov(j*d+1:(j+n+1)*d,:), 1, d);
+ c1=coeff(a);
+ c2=coeff(b);
+ k=(c1*r1)*inv(c2*r2);
+ hst=-inv(c1(:,n*d+1:(n+1)*d));
+ r=k*hst;
+ a=(id-r*z)*a-k*z*b;
+ b=-hst*a;
+ la(j+1)=a;
+ end;
+endfunction
diff --git a/modules/signal_processing/macros/lev.bin b/modules/signal_processing/macros/lev.bin
new file mode 100755
index 000000000..5060c04b0
--- /dev/null
+++ b/modules/signal_processing/macros/lev.bin
Binary files differ
diff --git a/modules/signal_processing/macros/lev.sci b/modules/signal_processing/macros/lev.sci
new file mode 100755
index 000000000..9a5d40416
--- /dev/null
+++ b/modules/signal_processing/macros/lev.sci
@@ -0,0 +1,48 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+// Copyright (C) INRIA - 1991 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [ar,sigma2,rc]=lev(r)
+ //[ar,sigma2,rc]=lev(r)
+ //Resolve the Yule-Walker equations:
+ //
+ // |r(0) r(1) ... r(N-1)|| a(1) | |sigma2|
+ // |r(1) r(0) ... r(n-1)|| a(2) | | 0 |
+ // | : : ... : || : |=| 0 |
+ // | : : ... : || : | | 0 |
+ // |r(N-1) r(N-2) ... r(0) ||a(N-1)| | 0 |
+ //
+ //using Levinson's algorithm.
+ // r :Correlation coefficients
+ // ar :Auto-Regressive model parameters
+ // sigma2 :Scale constant
+ // rc :Reflection coefficients
+ //!
+
+ //get the size of the correlation vector
+
+ rsize=max(size(r));
+ r=matrix(r,1,rsize);
+
+ //initialize levinson's algorithm
+
+ ar=-r(2)/r(1);
+ rc(1)=ar;
+ sigma2=(1-ar*conj(ar))*r(1);
+
+ //iterative solution to yule-walker equations
+
+ for k=2:rsize-1,
+ ak1(k)=-(r(k+1)+ar(1:k-1)'*r(k:-1:2)')/sigma2;
+ rc(k)=ak1(k);
+ ak1(1:k-1)=ar(1:k-1)+ak1(k)*conj(ar(k-1:-1:1));
+ sigma2=(1-ak1(k)*conj(ak1(k)))*sigma2;
+ ar=ak1;
+ end,
+endfunction
diff --git a/modules/signal_processing/macros/levin.bin b/modules/signal_processing/macros/levin.bin
new file mode 100755
index 000000000..e5f048391
--- /dev/null
+++ b/modules/signal_processing/macros/levin.bin
Binary files differ
diff --git a/modules/signal_processing/macros/levin.sci b/modules/signal_processing/macros/levin.sci
new file mode 100755
index 000000000..f2f2eabb2
--- /dev/null
+++ b/modules/signal_processing/macros/levin.sci
@@ -0,0 +1,89 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - G. Le Vey
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [la, sig, lb] = levin(n, Cov)
+ // [la, sig, lb] = levin(n, Cov)
+ // macro which solves recursively on n
+ // the following Toeplitz system (normal equations)
+ //
+ //
+ // |R1 R2 . . . Rn |
+ // |R0 R1 . . . Rn-1|
+ // |R-1 R0 . . . Rn-2|
+ // | . . . . . . |
+ // |I -A1 . -An|| . . . . . . |
+ // | . . . . . . |
+ // | . . . . . . |
+ // |R2-n R3-n . . . R1 |
+ // |R1-n R2-n . . . R0 |
+ //
+ // where {Rk;k=1,nlag} is the sequence of nlag empirical covariances
+ //
+ // n : maximum order of the filter
+ // Cov : matrix containing the Rk (d*d matrices for a
+ // : d-dimensional process). It must be given the
+ // : following way:
+ //
+ // | R0 |
+ // | R1 |
+ // | R2 |
+ // | . |
+ // | . |
+ // | Rnlag|
+ //
+ // la : list-type variable, giving the successively calculated
+ // : polynomials (degree 1 to degree n), with coefficients Ak
+ // sig : list-type variable, giving the successive
+ // : mean-square errors.
+ //!
+
+ [lhs, rhs] = argn(0);
+ if rhs <> 2 then
+ error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"), "levin", 2));
+ end
+ [l, d] = size(Cov);
+ if d > l then
+ error(msprintf(gettext("%s: Wrong size for input argument #%d: A tall matrix expected.\n"), "levin", 2));
+ end
+ //
+ // Initializations
+ //
+ a = eye(d, d);
+ b = a;
+ z = poly(0, "z");
+ la = list();
+ lb = list();
+ sig = list();
+ p = n+1;
+ cv = Cov;
+ for j=1:p
+ cv = [Cov(j*d+1:(j+1)*d, :)'; cv];
+ end
+ for j=0:n-1
+ //
+ // Levinson algorithm
+ //
+ r1 = flipdim(cv((p+1)*d+1:(p+2+j)*d, :), 1, d);
+ r2 = flipdim(cv(p*d+1:(p+1+j)*d, :), 1, d);
+ r3 = flipdim(cv((p-1-j)*d+1:p*d, :), 1, d);
+ r4 = flipdim(cv((p-j)*d+1:(p+1)*d, :), 1, d);
+ c1 = coeff(a);
+ c2 = coeff(b);
+ sig1 = c1*r4;
+ gam1 = c2*r2;
+ k1 = (c1*r1)*inv(gam1);
+ k2 = (c2*r3)*inv(sig1);
+ a1 = a-k1*z*b;
+ b = -k2*a+z*b;
+ a = a1;
+ la(j+1) = a;
+ lb(j+1) = b;
+ sig(j+1) = sig1;
+ end
+endfunction
diff --git a/modules/signal_processing/macros/lib b/modules/signal_processing/macros/lib
new file mode 100755
index 000000000..cf370ed9c
--- /dev/null
+++ b/modules/signal_processing/macros/lib
Binary files differ
diff --git a/modules/signal_processing/macros/lindquist.bin b/modules/signal_processing/macros/lindquist.bin
new file mode 100755
index 000000000..a38467568
--- /dev/null
+++ b/modules/signal_processing/macros/lindquist.bin
Binary files differ
diff --git a/modules/signal_processing/macros/lindquist.sci b/modules/signal_processing/macros/lindquist.sci
new file mode 100755
index 000000000..01d506efb
--- /dev/null
+++ b/modules/signal_processing/macros/lindquist.sci
@@ -0,0 +1,45 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1989 - G. Le Vey
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [P,R,T]=lindquist(n,H,F,G,R0)
+ //[Pn,Rn,Tn]=lindquist(n,H,F,G,R0)
+ //macro which computes iteratively the minimal solution of the algebraic
+ //Riccati equation and gives the matrices Rn and Tt of the filter model,
+ //by the lindquist algorithm.
+ // n : number of iterations.
+ // H,F,G : estimated triple from the covariance sequence of y.
+ // R0 : E(yk*yk')
+ // Pn : solution of the Riccati equation after n iterations.
+ // Rn,Tn : gain matrices of the filter.
+ //!
+ [d,m]=size(H);
+ //initialization
+ Gn=G;
+ Rn=R0;
+ Pn=zeros(m,m)
+ Kn=0*ones(m,d);
+
+ //recursion
+ for j=1:n,
+ // Pn=Pn+Gn/Rn*Gn'
+ // Kn=Pn*H'
+ Kn=Kn+Gn/Rn*Gn'*H';
+ r1=R0-H*Kn;
+ Rn=Rn-Gn'*H'/r1*H*Gn;
+ Gn=(F-(G-F*Kn)/r1*H)*Gn;
+ end
+
+ //gain matrices of the filter.
+ //P=Pn
+ //R=R0-H*P*H'
+ //T=(G-F*P*H')/R
+ R=R0-H*Kn
+ T=(G-F*Kn)/R
+ P=Kn
+endfunction
diff --git a/modules/signal_processing/macros/mese.bin b/modules/signal_processing/macros/mese.bin
new file mode 100755
index 000000000..b8615aaa0
--- /dev/null
+++ b/modules/signal_processing/macros/mese.bin
Binary files differ
diff --git a/modules/signal_processing/macros/mese.sci b/modules/signal_processing/macros/mese.sci
new file mode 100755
index 000000000..4d7405abe
--- /dev/null
+++ b/modules/signal_processing/macros/mese.sci
@@ -0,0 +1,43 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+// Copyright (C) INRIA - 1991 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [sm,fr]=mese(x,npts);
+ //<sm,fr]=mese(x [,npts]);
+ //Calculate the maximum entropy spectral estimate of x
+ // x :Input sampled data sequence
+ // npts :Optional parameter giving number of points of fr and sm
+ // (default is 256)
+ // sm :Samples of spectral estimate on the frequency grid fr
+ // fr :npts equally spaced frequency samples in [0,.5)
+ //!
+
+ //default evaluation
+
+ [rhs,lhs]=argn(0);
+ if lhs==1 then,
+ npts=256;
+ end,
+
+ //estimate autocorrelation function of x
+
+ Nx=length(x);
+ r=convol(x,x(Nx:-1:1))
+ r=r(Nx:-1:1)/Nx;
+
+ //get solution to the Yule-Walker equations
+
+ [ar,sigma2,rc]=lev(r);
+
+ //compute spectrum
+
+ ak=[1;ar];
+ [sf,fr]=frmag(ak,npts);
+ sm=sigma2*ones(sf)./(sf.*conj(sf));
+endfunction
diff --git a/modules/signal_processing/macros/mrfit.bin b/modules/signal_processing/macros/mrfit.bin
new file mode 100755
index 000000000..5d8b8a2b5
--- /dev/null
+++ b/modules/signal_processing/macros/mrfit.bin
Binary files differ
diff --git a/modules/signal_processing/macros/mrfit.sci b/modules/signal_processing/macros/mrfit.sci
new file mode 100755
index 000000000..544a218e0
--- /dev/null
+++ b/modules/signal_processing/macros/mrfit.sci
@@ -0,0 +1,80 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [num,den]=mrfit(w,mod,r)
+ //Calling sequence:
+ //[num,den]=mrfit(w,mod,r)
+ //sys = mrfit(w,mod,r)
+ //
+ //w: vector of frequencies
+ //mod: vector of frequency response magnitude at these frequencies.
+ //weight: vector of weights given to each point
+ //
+ //Fits frequency response magnitude data points by a bi-stable transfer
+ //function
+ //G(s) = num(s)/den(s) of order r.
+ //
+ // abs(freq(num,den,%i*w)) should be close to mod
+ //
+
+ function ww=mrfitdiff(ww)
+ //Utility fct
+ p=size(ww(:),"*");
+ ww=ww(2:p)-ww(1:p-1);
+ endfunction
+
+ w=w(:);mod=mod(:);
+ [LHS,RHS]=argn(0);
+ if w(1)==0 then w(1)=%eps;end
+
+ if r==0 then num=sum(mod)/size(mod,"*");den=1;return;end
+
+ sl0=round(log10(mod(2)/mod(1))/log10(w(2)/w(1)));w(1)=w(2)/10;
+ if sl0~=0 then mod(1)=mod(2)/10^sl0;end
+
+ n=length(w);
+ slinf=round(log10(mod($)/mod($-1))/log10(w($)/w($-1)));
+ w($)=w($-1)*10;
+ if slinf~=0 then mod($)=mod($-1)*10^slinf;end
+ logw=log10(w);logmod=log10(mod);delw=mrfitdiff(logw);delmod=mrfitdiff(logmod);
+
+ weight=ones(length(w),1);
+
+ junk=find(abs(mrfitdiff(delmod./delw)) > .6);
+ ind=1+junk;
+ if junk==[] then ind=[];end;
+ weight(ind)=10*ones(length(ind),1);
+
+ lwnew=[]; modnew=[];
+ for i=1:length(w)-1,
+ nadd=floor(delw(i)/.3)-1;
+ if nadd>0 then
+ slope=delmod(i)/delw(i);
+ lwnew=[lwnew logw(i)+.3*(1:nadd)];
+ modnew=[modnew logmod(i)+.3*slope*(1:nadd)];
+ weight=[weight ; ones(nadd,1)];
+ end
+ end
+ log10is=log(10);
+ w=[w ; exp(lwnew'*log10is)];
+ mod=[mod ; exp(modnew'*log10is)];
+
+ [w,ind] = gsort(-w);
+ w=-w; mod=mod(ind); weight=weight(ind);
+ ind=find(mrfitdiff(w)>0); ind=[ind(:);length(w)];
+ w=w(ind); mod=mod(ind); weight=weight(ind);
+
+ fresp=cepstrum(w,mod);
+
+ [num,den]=frfit(w,fresp,r,weight);
+ if LHS==1 then
+ num=syslin("c",num/den);
+ end
+
+endfunction
diff --git a/modules/signal_processing/macros/names b/modules/signal_processing/macros/names
new file mode 100755
index 000000000..baadbfdda
--- /dev/null
+++ b/modules/signal_processing/macros/names
@@ -0,0 +1,71 @@
+%k
+%sn
+analpf
+bilt
+buttmag
+casc
+cepstrum
+cheb1mag
+cheb2mag
+conv
+convol
+convol2d
+cspect
+czt
+detrend
+ell1mag
+eqfir
+eqiir
+faurre
+ffilt
+fft2
+fftshift
+filt_sinc
+filter
+find_freq
+findm
+frfit
+frmag
+fsfirlin
+group
+hank
+hilb
+hilbert
+idct
+idst
+ifft
+ifftshift
+iir
+iirgroup
+iirlp
+iirmod
+intdec
+kalm
+lattn
+lattp
+lev
+levin
+lindquist
+mese
+mrfit
+phc
+pspect
+remezb
+sincd
+srfaur
+srkf
+sskf
+system
+trans
+wfir
+wfir_gui
+wiener
+wigner
+window
+xcorr
+xcov
+yulewalk
+zpbutt
+zpch1
+zpch2
+zpell
diff --git a/modules/signal_processing/macros/phc.bin b/modules/signal_processing/macros/phc.bin
new file mode 100755
index 000000000..ef744324f
--- /dev/null
+++ b/modules/signal_processing/macros/phc.bin
Binary files differ
diff --git a/modules/signal_processing/macros/phc.sci b/modules/signal_processing/macros/phc.sci
new file mode 100755
index 000000000..fca2c0f9d
--- /dev/null
+++ b/modules/signal_processing/macros/phc.sci
@@ -0,0 +1,32 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1989 - G. Le Vey
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [h,f,g]=phc(hk,d,r)
+ //[h,f,g]=phc(hk,d,r)
+ //macro which computes the matrices h, f, g by the principal hankel
+ //component approximation method, from the hankel matrix built
+ //from the covariance sequence of a stochastic process.
+ // hk : hankel matrix
+ // d : dimension of the observation
+ // r : desired dimension of the state vector
+ // : for the approximated model
+ // h,f,g : relevant matrices of the state-space model
+ //!
+
+
+ [p,q]=size(hk);
+ [u,s,v]=svd(hk);
+ s=diag(sqrt(diag(s(1:r,1:r))));
+ obs=u(:,1:r)*s;
+ g=s*v(:,1:r)';
+ g=g(:,1:d);
+ ofl=obs(d+1:p,:);opr=obs(1:p-d,:);
+ f=opr\ofl;
+ h=obs(1:d,:);
+endfunction
diff --git a/modules/signal_processing/macros/pspect.bin b/modules/signal_processing/macros/pspect.bin
new file mode 100755
index 000000000..a1b543daf
--- /dev/null
+++ b/modules/signal_processing/macros/pspect.bin
Binary files differ
diff --git a/modules/signal_processing/macros/pspect.sci b/modules/signal_processing/macros/pspect.sci
new file mode 100755
index 000000000..37d357ec5
--- /dev/null
+++ b/modules/signal_processing/macros/pspect.sci
@@ -0,0 +1,126 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [sm,cwp]=pspect(sec_step,sec_leng,wtype,x,y,wpar)
+ //[sm [,cwp] ]=pspect(sec_step,sec_leng,wtype,x [,y] [,wpar])
+ //Cross-spectral estimate between x and y if both are given
+ //and auto-spectral estimate of x otherwise.
+ //Spectral estimate obtained using the modified periodogram method
+ // x :
+ // - if vector, the first signal data
+ // - amount of input data if scalar. In this case the first signal
+ // is read by batch by a user defined function xbatch=getx(n,offset).)
+ // y : optional, if present cross correlation is made else auto correlation
+ // - if vector, the second signal data .It must have the same number of element than x
+ // - if scalar, the second signal
+ // is read by batch by a user defined function ybatch=gety(n,offset).)
+ // sec_step : offset of each data window.
+ // if sec_step==sec_leng/2 50% overlap is made
+ // sec_leng : Number of points of the window
+ // wtype : window type ('re','tr','hm','hn','kr','ch')
+ // wpar : optional window parameters
+ // : for wtype='kr', wpar>0
+ // : for wtype='ch', 0<wpar(1)<.5, wpar(2)>0
+ // sm : power spectral estimate in the interval [0,1]
+ // cwp : unspecified Chebyshev window parameter
+ //!
+
+ [lhs,rhs]=argn(0);
+
+
+ if sec_step>=sec_leng then
+ error(msprintf(gettext("%s: Incompatible input arguments #%d and #%d: Argument #%d expected to be less than argument #%d.\n"),"pspect",1,2,1,2));
+ end
+ if and(wtype<>["re","tr","hm","hn","kr","ch"]) then
+ error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),..
+ "pspect",3,"''re'',''tr'',''hm'',''hn'',''kr'',''ch''"));
+ end
+
+ //Analyze calling sequence and construct window
+ if rhs==4 then,
+ //pspect(sec_step,sec_leng,wtype,x)
+ w=window(wtype,sec_leng);
+ crossFlag=%f; //autocorrelation
+ elseif rhs==5 then,
+ //pspect(sec_step,sec_leng,wtype,x,y) or pspect(sec_step,sec_leng,wtype,x,wpar)
+ if wtype=="kr" then,//pspect(sec_step,sec_leng,'kr',x,wpar)
+ wpar=y;
+ w=window(wtype,sec_leng,wpar);cwp=[];
+ crossFlag=%f; //autocorrelation
+ elseif wtype=="ch" then,//pspect(sec_step,sec_leng,'ch',x,wpar)
+ wpar=y;
+ [w,cwp]=window(wtype,sec_leng,wpar);
+ crossFlag=%f; //autocorrelation
+ else,//pspect(sec_step,sec_leng,wtype,x,y)
+ w=window(wtype,sec_leng);cwp=[];
+ crossFlag=%t; //cross-correlation
+ end,
+ else //pspect(sec_step,sec_leng,wtype,x,y,wpar)
+ [w,cwp]=window(wtype,sec_leng,wpar);
+ crossFlag=%t; //cross-correlation
+ end,
+ wpower=w*w';//the window energy
+
+ //Make x and y row vectors
+ x=matrix(x,1,-1);
+ if crossFlag then
+ y=matrix(y,1,-1);
+ if size(x,"*")<>size(y,"*") then
+ error(msprintf(gettext("%s: Arguments #%d and #%d must have the same sizes.\n"),"pspect",4,5));
+ end
+ end
+
+ //Average periodograms
+ sm=0*w;
+ if size(x,"*")==1 then //Batch processing of x and y data
+
+ //get number of sections to be used
+ nsecs=int((x-sec_leng+sec_step)/sec_step);//x contains the number of points of the signals
+ ovrlp=sec_leng-sec_step;
+ xd=[0*ones(1,sec_step) getx(ovrlp,1)];
+ if crossFlag then
+ yd=[0*ones(1,sec_step) gety(ovrlp,1)];
+ end
+ for k=1:nsecs
+ xd(1:ovrlp)=xd(sec_step+1:sec_leng);
+ xd(ovrlp+1:sec_leng)=getx(sec_step,sec_leng+(k-1)*sec_step+1);
+ xw=w.*(xd-(sum(xd)/sec_leng));
+ fx=fft(xw,-1);
+ if crossFlag then
+ yd(1:ovrlp)=yd(sec_step+1:sec_leng);
+ yd(ovrlp+1:sec_leng)=gety(sec_step,sec_leng+(k-1)*sec_step+1);
+ yw=w.*(yd-(sum(yd)/sec_leng));
+ sm=sm+fx.*conj(fft(yw,-1));
+ else
+ sm=sm+real(fx.*conj(fx));
+ end
+ end
+ else // Signal data given in x and y if cross-correlation
+
+ //get number of sections to be used
+ nsecs=int((size(x,"*")-sec_leng+sec_step)/sec_step);
+ ind=(1:sec_leng);
+ for k=1:nsecs
+ indd=ind+(k-1)*sec_step*ones(1:sec_leng);
+ xd=x(indd);
+ xe=w.*(xd-(sum(xd)/sec_leng));
+ fx=fft(xe,-1);
+ if crossFlag then
+ yd=y(indd);
+ ye=w.*(yd-(sum(yd)/sec_leng));
+ sm=sm+fx.*conj(fft(ye,-1));
+ else
+ sm=sm+real(fx.*conj(fx));
+ end
+ end
+ end
+
+ //Normalization
+ sm=sm/(nsecs*wpower);
+endfunction
diff --git a/modules/signal_processing/macros/remezb.bin b/modules/signal_processing/macros/remezb.bin
new file mode 100755
index 000000000..3722c4220
--- /dev/null
+++ b/modules/signal_processing/macros/remezb.bin
Binary files differ
diff --git a/modules/signal_processing/macros/remezb.sci b/modules/signal_processing/macros/remezb.sci
new file mode 100755
index 000000000..c81072a30
--- /dev/null
+++ b/modules/signal_processing/macros/remezb.sci
@@ -0,0 +1,61 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+function an=remezb(nc,fg,ds,wt)
+ //an=remezb(nc,fg,ds,wt)
+ //Minimax approximation of a frequency domain
+ //magnitude response. The approximation takes
+ //the form
+ //
+ // h = sum[a(n)cos(wn)]
+ //
+ //for n=0,1,...,nc. An FIR, linear-phase filter
+ //can be obtained from the output of the macro
+ //by using the following Scilab commands
+ //
+ // hn(1:nc-1)=an(nc:-1:2)/2;
+ // hn(nc)=an(1);
+ // hn(nc+1:2*nc-1)=an(2:nc)/2;
+ //
+ // nc :Number of cosine functions
+ // fg :Grid of frequency points in [0,.5)
+ // ds :Desired magnitude on grid fg
+ // wt :Weighting function on error on grid fg
+ // an :Cosine filter coefficients
+ //!
+
+
+ //get frequency grid size
+
+ ngrid=max(size(fg));
+
+ //check for errors in input
+
+ if min(fg)<0|max(fg)>0.5 then
+ error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the interval [%s, %s].\n"),"remezb",2,"0","0.5"));
+ end,
+ dsize=max(size(ds));
+ wsize=max(size(wt));
+ if dsize<>ngrid then
+ error(msprintf(gettext("%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"),"remezb",2,3));
+ end,
+ if wsize<>ngrid then
+ error(msprintf(gettext("%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"),"remezb",2,4));
+ end,
+
+ //set up the initial guess for the extremal frequencies
+
+ iext=round(1:ngrid/nc:ngrid);
+ iext(nc+1)=ngrid;
+ iext(nc+2)=ngrid;
+
+ //call remez.f
+
+ an=remez(iext,ds,fg,wt);
+ an=an(1:nc)
+endfunction
diff --git a/modules/signal_processing/macros/sincd.bin b/modules/signal_processing/macros/sincd.bin
new file mode 100755
index 000000000..5c349d174
--- /dev/null
+++ b/modules/signal_processing/macros/sincd.bin
Binary files differ
diff --git a/modules/signal_processing/macros/sincd.sci b/modules/signal_processing/macros/sincd.sci
new file mode 100755
index 000000000..59fb1e45e
--- /dev/null
+++ b/modules/signal_processing/macros/sincd.sci
@@ -0,0 +1,42 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1989 - G. Le Vey
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [s]=sincd(n,flag)
+ //<s>=sincd(n,flag)
+ //macro which calculates the function Sin(N*x)/Sin(x)
+ // n : value of N in the preceding function
+ // flag : flag=1 : the function is centered around the origin
+ // : flag=2 : the function is delayed by %pi/(2*n)
+ // s : vector of values of the function on a dense
+ // : grid of frequencies
+ //!
+
+ npt=4*n;
+ pas=%pi/npt;
+ om=0:pas:%pi;
+ eps=(-1)**(n-1);
+ select flag
+ case 1,
+ s1=sin(n*om);s2=sin(om);
+ s1(1)=n;s2(1)=1;s1(npt+1)=n*eps;s2(npt+1)=1;
+ s=s1./s2;
+ s=[s(npt+1:-1:2) s];
+ s=s/n;
+ case 2,
+ om=om-ones(om)*%pi/2/n;
+ s1=sin(n*om);
+ s2=sin(om);
+ s1(3)=n;s2(3)=1;
+ s=s1./s2;
+ s=[eps*s s(2:npt+1)];
+ s=s/n;
+ else
+ error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),"sincd",2,"1,2"));
+ end;
+endfunction
diff --git a/modules/signal_processing/macros/srfaur.bin b/modules/signal_processing/macros/srfaur.bin
new file mode 100755
index 000000000..69c39a6e2
--- /dev/null
+++ b/modules/signal_processing/macros/srfaur.bin
Binary files differ
diff --git a/modules/signal_processing/macros/srfaur.sci b/modules/signal_processing/macros/srfaur.sci
new file mode 100755
index 000000000..8855f1283
--- /dev/null
+++ b/modules/signal_processing/macros/srfaur.sci
@@ -0,0 +1,51 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+function [p,s,t,l,rt,tt]=srfaur(h,f,g,r0,n,p,s,t,l)
+ //square-root algorithm for the algebraic Riccati equation.
+ //
+ // h,f,g : convenient matrices of the state-space model.
+ // r0 : E(yk*yk').
+ // n : number of iterations.
+ //
+ // p : estimate of the solution after n iterations.
+ // s,t,l : intermediate matrices for
+ // : successive iterations;
+ // rt,tt : gain matrices of the filter model after n iterations.
+ //
+ // : p,s,t,l may be given as input if more than one recursion
+ // : is desired (evaluation of intermediate values of p, e.g.).
+ //!
+
+ [lhs,rhs]=argn(0);
+ [d,m]=size(h);
+ if rhs==5,
+ //initializations
+ r0=.5*(r0+r0');
+ s=sqrtm(r0);
+ t=(g/s)';s=s';
+ l=-%i*t;
+ p=l'*l;
+ else,
+ if rhs<>9 then
+ error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"),"srfaur",9));
+ end;
+ end;
+ //recursion
+ for j=1:n,
+ a=[s t;l*h' l*f'];
+ [q,r]=qr(a);
+ s=r(1:d,1:d);
+ t=r(1:d,d+1:d+m);
+ l=r(d+1:2*d,d+1:d+m);
+ p=p+l'*l;
+ end;
+ //gain matrices of the filter.
+ rt=r0-h*p*h';
+ tt=(g-f*p*h')*inv(rt);
+endfunction
diff --git a/modules/signal_processing/macros/srkf.bin b/modules/signal_processing/macros/srkf.bin
new file mode 100755
index 000000000..581f8113b
--- /dev/null
+++ b/modules/signal_processing/macros/srkf.bin
Binary files differ
diff --git a/modules/signal_processing/macros/srkf.sci b/modules/signal_processing/macros/srkf.sci
new file mode 100755
index 000000000..7f6792c78
--- /dev/null
+++ b/modules/signal_processing/macros/srkf.sci
@@ -0,0 +1,39 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [x1,p1]=srkf(y,x0,p0,f,h,q,r)
+ //square root kalman filter algorithm
+ //Input to the macro is:
+ // f,h :current system matrices
+ // q,r :covariance matrices of dynamics
+ // :and observation noise
+ // x0,p0 :state estimate and error variance
+ // :at t=0 based on data up to t=-1
+ // y :current observation
+ //
+ //Output from the macro is:
+ // x1,p1 :updated estimate and error covariance
+ // :at t=1 based on data up to t=0
+ //!
+
+ n=max(size(x0));
+ p=max(size(y));
+
+ j=[chol(r)',0*r];
+ g=[0*q,chol(q)'];
+
+ mat=[h*p0,j;f*p0,g];
+ [q,tmat]=qr(mat')';
+ p1=tmat(p+1:p+n,p+1:p+n);
+ k=tmat(p+1:p+n,1:p);
+ re=tmat(1:p,1:p);
+
+ epsilon=y-h*x0;
+ x1=f*x0+k*(re**(-1))*epsilon;
+endfunction
diff --git a/modules/signal_processing/macros/sskf.bin b/modules/signal_processing/macros/sskf.bin
new file mode 100755
index 000000000..2b461ffa8
--- /dev/null
+++ b/modules/signal_processing/macros/sskf.bin
Binary files differ
diff --git a/modules/signal_processing/macros/sskf.sci b/modules/signal_processing/macros/sskf.sci
new file mode 100755
index 000000000..2937e093c
--- /dev/null
+++ b/modules/signal_processing/macros/sskf.sci
@@ -0,0 +1,30 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [xe, x]=sskf(y,f,h,q,r,x0)
+ //<xe>=sskf(y,f,h,q,r,x0)
+ //steady-state kalman filter
+ // y :data in form [y0,y1,...,yn], yk a column vector
+ // f :system matrix dim(NxN)
+ // h :observations matrix dim(NxM)
+ // q :dynamics noise matrix dim(NxN)
+ // r :observations noise matrix dim(MxM)
+ //
+ // xe :estimated state
+ //!
+
+ //get steady-state Kalman gain
+
+ x=ricc(f',h'/r*h,q,"disc") // steady state err cov
+ k=x*h'/(h*x*h'+r)
+
+ // estimate state
+ kfd=(eye(f)-k*h)*f;
+ [xe]=ltitr(kfd,k,y,x0);
+endfunction
diff --git a/modules/signal_processing/macros/system.bin b/modules/signal_processing/macros/system.bin
new file mode 100755
index 000000000..526e96825
--- /dev/null
+++ b/modules/signal_processing/macros/system.bin
Binary files differ
diff --git a/modules/signal_processing/macros/system.sci b/modules/signal_processing/macros/system.sci
new file mode 100755
index 000000000..ae80bc280
--- /dev/null
+++ b/modules/signal_processing/macros/system.sci
@@ -0,0 +1,43 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 1988 - INRIA - C. Bunks
+// Copyright (C) DIGITEO - 2011 - Allan CORNET
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+//
+function [x1, y] = system(x0, f, g, h, q, r)
+ //<x1,y>=system(x0,f,g,h,q,r)
+ //define system macro which generates the next
+ //observation given the old state
+ // x0 :Input state vector
+ // f :System matrix
+ // g :Input matrix
+ // h :Output matrix
+ // q :Input noise covariance matrix
+ // r :Output noise covariance matrix
+ // x1 :Output state vector
+ // y :Output observation
+ //System recursively calculates
+ //
+ // x1=f*x0+g*u
+ // y=h*x0+v
+ //
+ //where u is distributed N(0,q)
+ //and v is distribute N(0,r).
+
+ [lhs, rhs] = argn(0);
+ if rhs == 0 then
+ error(999, msprintf(_("%s: Wrong number of input argument(s).\n"), "system"));
+ end
+
+ rand("normal");
+ q2 = chol(q);
+ r2 = chol(r);
+ u = q2' * rand(ones(x0));
+ v = r2' * rand(ones(x0));
+ x1 = f * x0 + g * u;
+ y = h * x0 + v;
+endfunction
diff --git a/modules/signal_processing/macros/trans.bin b/modules/signal_processing/macros/trans.bin
new file mode 100755
index 000000000..22de8f5f3
--- /dev/null
+++ b/modules/signal_processing/macros/trans.bin
Binary files differ
diff --git a/modules/signal_processing/macros/trans.sci b/modules/signal_processing/macros/trans.sci
new file mode 100755
index 000000000..148915454
--- /dev/null
+++ b/modules/signal_processing/macros/trans.sci
@@ -0,0 +1,105 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [hzt,zt,gt]=trans(pd,zd,gd,tr_type,frq)
+ //hzt=trans(pd,zd,gd,tr_type,frq)
+ //macro for transforming standardized low-pass filter into
+ //one of the following filters:
+ // low-pass, high-pass, band-pass, stop-band.
+ // hz :input polynomial
+ // tr_type :type of transformation
+ // frq :frequency values
+ // hzt :output polynomial
+ //!
+ if and(argn(1)<>[1 3]) then
+ error(msprintf(gettext("%s: Wrong number of output arguments: %d or %d expected.\n"),"trans",1,3))
+ end
+ select argn(2)
+ case 3 then //trans(hz,tr_type,frq): filter given by a siso tranfer function
+ hz=pd
+ if typeof(hz)<>"rational" then
+ error(msprintf(_("%s: Wrong type for input argument #%d: rational fraction array expected.\n"),"trans",1))
+ end
+ if size(hz,"*")<>1 then
+ error(msprintf(_("%s: Wrong size for input argument #%d: A single input, single output system expected.\n"),"trans",1))
+ end
+ tr_type=zd;tr_pos=2;
+ frq=gd;frq_pos=3;
+ pd=roots(hz.den)
+ zd=roots(hz.num)
+ gd=coeff(hz.num,degree(hz.num))/coeff(hz.den,degree(hz.den))
+ case 5 then //trans(pd,zd,gd,tr_type,frq): filter given by zeros,poles and gain
+ if type(pd)<>1 then
+ error(msprintf(_("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n"),"trans",1))
+ end
+ if type(zd)<>1 then
+ error(msprintf(_("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n"),"trans",2))
+ end
+ if type(gd)<>1|size(gd,"*")<>1 then
+ error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"trans",3))
+ end
+ tr_pos=4;
+ frq_pos=5;
+ else
+ error(msprintf(_("%s: Wrong number of input arguments: %d or %d expected.\n"),"trans",3,5))
+ end
+ if and(tr_type<>["lp","hp","bp","sb"]) then
+ error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),"trans",tr_pos,"''lp'',''hp'',''bp'',''sb''"))
+ end
+ if type(frq)<>1 then
+ error(msprintf(_("%s: Wrong type for input argument #%d: Array of floating point numbers expected.\n"),"trans",frq_pos))
+ end
+ if or(tr_type==["lp","hp"]) then
+ if and(size(frq,"*")<>[1,2]) then
+ error(msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"),"trans",frq_pos))
+ end
+ fu=frq(1)
+ else
+ if size(frq,"*")<>2 then
+ error(msprintf(_("%s: Wrong size for input argument #%d: A %d elements array expected.\n"),"trans",frq_pos,2))
+ end
+ fu=frq(1);fl=frq(2);
+ end
+
+ z=poly(0,"z");fc=.25;
+ //make filter type using all-pass change of variables
+ select tr_type
+ case "lp" then
+ alpha=sin(%pi*(fc-fu))/sin(%pi*(fc+fu));
+ num=z-alpha;
+ den=1-alpha*z;
+ case "hp" then
+ alpha=-cos(%pi*(fc-fu))/cos(%pi*(fc+fu));
+ num=-(1+alpha*z);
+ den=z+alpha;
+ case "bp" then
+ k=tan(%pi*fc)/tan(%pi*(fu-fl));
+ alpha=cos(%pi*(fu+fl))/cos(%pi*(fu-fl));
+ num=-((k+1)-2*alpha*k*z+(k-1)*z^2);
+ den=(k+1)*z^2-2*alpha*k*z+(k-1);
+ case "sb" then
+ k=tan(%pi*fc)*tan(%pi*(fu-fl));
+ alpha=cos(%pi*(fu+fl))/cos(%pi*(fu-fl));
+ num=(k+1)-2*alpha*z+(1-k)*z^2;
+ den=(k+1)*z^2-2*alpha*z+(1-k);
+ end
+ if tr_type == "lp" & fu == 0.25 then //no change of variables is necessary if user wants a low pass filter with cut off frequency of 0.25Hz.
+ pt=pd;
+ zt=zd;
+ gt=gd;
+ else
+ [pt,zt,gt]=bilt(pd,zd,gd,num,den);
+ end
+ if argn(1)==1 then
+ hzt=rlist(gt*real(poly(zt,"z")),real(poly(pt,"z")),"d");
+ else
+ hzt=pt(:)
+ zt=zt(:)
+ end
+endfunction
diff --git a/modules/signal_processing/macros/wfir.bin b/modules/signal_processing/macros/wfir.bin
new file mode 100755
index 000000000..20ddc0fed
--- /dev/null
+++ b/modules/signal_processing/macros/wfir.bin
Binary files differ
diff --git a/modules/signal_processing/macros/wfir.sci b/modules/signal_processing/macros/wfir.sci
new file mode 100755
index 000000000..180d4fb9c
--- /dev/null
+++ b/modules/signal_processing/macros/wfir.sci
@@ -0,0 +1,105 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [wft,wfm,fr]=wfir(ftype,forder,cfreq,wtype,fpar)
+ //[wft,wfm,fr]=wfir(ftype,forder,cfreq,wtype,fpar)
+ //Macro which makes linear-phase, FIR low-pass, band-pass,
+ //high-pass, and stop-band filters
+ //using the windowing technique.
+ //Works interactively if called with no arguments.
+ // ftype :Filter type ('lp','hp','bp','sb')
+ // forder :Filter order (pos integer)(odd for ftype='hp' or 'sb')
+ // cfreq :2-vector of cutoff frequencies (0<cfreq(1),cfreq(2)<.5)
+ // :only cfreq(1) is used when ftype='lp' or 'hp'
+ // wtype :Window type ('re','tr','hm','hn','kr','ch')
+ // fpar :2-vector of window parameters
+ // : Kaiser window: fpar(1)>0 fpar(2)=0
+ // : Chebyshev window: fpar(1)>0 fpar(2)<0 or
+ // : fpar(1)<0 0<fpar(2)<.5
+ // wft :Time domain filter coefficients
+ // wfm :Frequency domain filter response on the grid fr
+ // fr :Frequency grid
+ //!
+ wft=[];wfm=[];fr=[]
+
+ FT=["lp","hp","bp","sb"]
+
+ [lhs,rhs]=argn(0);
+
+ if rhs<=0 then,
+ //if macro called with no arguments query user for values
+ [ok,values,exprs]=wfir_gui()
+ if ~ok then return,end
+ ftype=values.ftype
+ forder=values.forder
+ cfreq=[values.low,values.high]/values.freq_ech;
+ wtype=values.wtype
+ fpar=values.fpar
+
+ fl=values.low/values.freq_ech;
+ fh=values.high/values.freq_ech;
+ else
+ //check arguments of macro call
+ if and(ftype<>FT) then
+ error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),"wfir",1,strcat(FT,",")))
+ end
+ if type(forder)<>1|size(forder,"*")<>1|~isreal(forder)|size(forder,"*")<>1|int(forder)<>forder|forder<1 then
+ error(msprintf(_("%s: Wrong type for input argument #%d: A positive integer expected.\n"),"wfir",2))
+ end
+ if or(ftype==["hp" "sb"]) then
+ if 2*int(forder/2)==forder then
+ error(msprintf(_("%s: Wrong value for input argument #%d: Must be odd.\n"),"wfir",2))
+ end
+ end
+
+ if type(cfreq)<>1|~isreal(cfreq) then
+ error(msprintf(_("%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"),"wfir",3,1,2))
+ end
+ if or(ftype==["hp" "lp"]) then
+ if size(cfreq,"*")==0| size(cfreq,"*")>2 then
+ error(msprintf(_("%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"),"wfir",3,1,2))
+ end
+ if cfreq(1)<0|cfreq(1)>0.5 then
+ error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the interval %s.\n"),"wfir",3,"]0,0.5["))
+ end
+ fl=cfreq(1);fh=[]
+ else
+ if size(cfreq,"*")<>2 then
+ error(msprintf(_("%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"),"wfir",3,1,2))
+ end
+ if or(cfreq<0|cfreq>0.5) then
+ error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the interval %s.\n"),"wfir",3,"]1,0.5["))
+ end
+ if cfreq(1)>=cfreq(2) then
+ error(msprintf(_("%s: Elements of %dth argument must be in increasing order.\n"),"wfir",3))
+ end
+ fl=cfreq(1);
+ fh=cfreq(2);
+ end
+ end
+
+
+ //Calculate window coefficients
+
+ [win_l,cwp]=window(wtype,forder,fpar);
+ [dummy,forder]=size(win_l);
+
+ //Get forder samples of the appropriate filter type
+
+ hfilt=ffilt(ftype,forder,fl,fh);
+
+ //Multiply window with sinc function
+
+ wft=win_l.*hfilt;
+
+ //Calculate frequency response of the windowed filter
+
+ [wfm,fr]=frmag(wft,256);
+endfunction
+
diff --git a/modules/signal_processing/macros/wfir_gui.bin b/modules/signal_processing/macros/wfir_gui.bin
new file mode 100755
index 000000000..5b6f7fa50
--- /dev/null
+++ b/modules/signal_processing/macros/wfir_gui.bin
Binary files differ
diff --git a/modules/signal_processing/macros/wfir_gui.sci b/modules/signal_processing/macros/wfir_gui.sci
new file mode 100755
index 000000000..25e8624b4
--- /dev/null
+++ b/modules/signal_processing/macros/wfir_gui.sci
@@ -0,0 +1,843 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011-2014 - INRIA - Serge Steer
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [ok,values,exprs]=wfir_gui(exprs)
+ FT=["lp","hp","bp","sb"]
+ WT=["re","tr","hn","hm","kr","ch","ch"]
+ // errcatch(-1,'continue')
+ if argn(2)<1 then
+ exprs=["""lp""";
+ """re"""
+ "48";
+ "1";
+ "0.05"
+ "0.45";
+ "0.5"]
+ end
+ ftype=exprs(1)
+ wtype=exprs(2)
+ if execstr("forder="+exprs(3)+";freq_ech="+exprs(4)+";low="+exprs(5)+";high="+exprs(6)+";fp="+exprs(7),"errcatch")<>0 then
+ values=[]
+ exprs=[]
+ ok=%f
+ return
+ end
+ global ret
+ ret=0
+
+ margin_x = 5; // Horizontal margin between each elements
+ margin_y = 5; // Vertical margin between each elements
+ button_w = 70;
+ button_h = 30;
+ frame_h = 300;
+ frame_w = 440;
+ label_h = 20;
+ list_h = 120;
+ list_w = 100;
+ list_incr = list_w;
+ axes_w = 2*margin_x+frame_w;
+ axes_h = 2*margin_y+frame_h;// Frame height
+ defaultfont = "arial"; // Default Font
+
+ fig_id=max(winsid())+1
+ fig = scf(fig_id)
+
+ // Remove Scilab graphics menus & toolbar
+ // drawlater (bug)
+ delmenu(fig.figure_id, gettext("&File"));
+ delmenu(fig.figure_id, gettext("&Tools"));
+ delmenu(fig.figure_id, gettext("&Edit"));
+ delmenu(fig.figure_id, gettext("&?"));
+ toolbar(fig.figure_id, "off");
+ fig.axes_size = [axes_w axes_h];
+
+
+ fig.background = addcolor([0.8 0.8 0.8]);
+ fig.figure_name = _("WFIR settings");
+ ax=fig.children;
+ ax.background= fig.background ;
+
+ gui=uicontrol( ...
+ "parent" , fig,...
+ "style" , "frame",...
+ "units" , "pixels",...
+ "position" , [0 0 axes_w axes_h],...
+ "background" , [1 1 1]*0.8, ...
+ "visible" , "on");
+
+ yo=axes_h-button_h;
+
+
+ yft=frame_h-margin_y-label_h
+ xft=margin_x;
+ //Filter type selection -----------------------------------------------------------------
+ listf_h = 80;
+ listf_w = 150;
+ label_w = 75;
+ uicontrol( ...
+ "parent" , gui,...
+ "style" , "text",...
+ "string" , _("Filter type"),...
+ "units" , "pixels",...
+ "position" , [xft yft label_w label_h],....
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "fontweight" , "bold", ...
+ "horizontalalignment" , "left", ...
+ "background" , [1 1 1]*0.8, ...
+ "visible" , "on");
+ Ftv=uicontrol( ...
+ "parent" , gui,...
+ "style" , "edit",...
+ "string" , ftype,...
+ "units" , "pixels",...
+ "position" , [xft+label_w+margin_x yft listf_w-label_w-margin_x label_h],....
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "fontweight" , "bold", ...
+ "horizontalalignment" , "left", ...
+ "background" , [1 1 1]*0.8, ...
+ "callback" , "wfirSetFilterType()", ...
+ "visible" , "on");
+ Filtertype=uicontrol( ...
+ "parent" , gui,...
+ "style" , "listbox",...
+ "string" , [_("Low pass");_("High pass");_("Band pass");_("Stop Band")],...
+ "value" , find(FT==evstr(ftype)),...
+ "units" , "pixels",...
+ "position" , [xft,yft-listf_h,listf_w,listf_h],...
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "horizontalalignment" , "left", ...
+ "BackgroundColor" , [1 1 1], ...
+ "ForegroundColor" , [1 1 1]*0, ...
+ "visible" , "on", ...
+ "callback" , "wfirSetFilterType()");
+ set(Ftv,"userdata",list([],Filtertype))
+
+ //Window type selection -----------------------------------------------------------------
+ ywt=yft-listf_h-4*margin_y
+ xwt=xft
+ listw_h = 140;
+ listw_w = listf_w;
+ uicontrol( ...
+ "parent" , gui,...
+ "style" , "text",...
+ "string" , _("Window type"),...
+ "units" , "pixels",...
+ "position" , [xwt ywt label_w label_h],....
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "fontweight" , "bold", ...
+ "horizontalalignment" , "left", ...
+ "background" , [1 1 1]*0.8, ...
+ "visible" , "on");
+ Wtv=uicontrol( ...
+ "parent" , gui,...
+ "style" , "edit",...
+ "string" , wtype,...
+ "units" , "pixels",...
+ "position" , [xwt+label_w+margin_x ywt listw_w-label_w-margin_x label_h],....
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "fontweight" , "bold", ...
+ "horizontalalignment" , "left", ...
+ "background" , [1 1 1]*0.8, ...
+ "callback" , "wfirSetWindowType()",...
+ "visible" , "on");
+
+
+
+ W=[_("Rectangular");_("Triangular");_("Hanning");
+ _("Hamming");_("Kaiser");_("Chebychev main lobe");_("Chebychev side lobe")];
+ index=find(WT==evstr(wtype))
+ if index==[] then index=1,end//for debug
+ Windowtype=uicontrol( ...
+ "parent" , gui,...
+ "style" , "listbox",...
+ "string" , W,...
+ "value" , find(WT==evstr(wtype)),...
+ "units" , "pixels",...
+ "position" , [xwt,ywt-listw_h,listw_w,listw_h],...
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "horizontalalignment" , "left", ...
+ "BackgroundColor" , [1 1 1], ...
+ "ForegroundColor" , [1 1 1]*0, ...
+ "visible" , "on", ...
+ "callback" , "wfirSetWindowType()");
+ set(Wtv,"userdata",list([],Windowtype))
+
+ //Sampling Frequency -----------------------------------------------------------------
+ ysf=frame_h-margin_y-label_h
+ xsf=xft+listf_w+2*margin_x
+ labelsf_w=180
+ editsf_w=80
+ sfreq=1
+ uicontrol( ...
+ "parent" , gui,...
+ "style" , "text",...
+ "string" , _("Sampling Frequency (Hz)"),...
+ "units" , "pixels",...
+ "position" , [xsf ysf labelsf_w label_h],....
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "fontweight" , "bold", ...
+ "horizontalalignment" , "left", ...
+ "background" , [1 1 1]*0.8, ...
+ "visible" , "on");
+ Sfreq =uicontrol( ...
+ "parent" , gui,...
+ "style" , "edit",...
+ "string" , exprs(4),...
+ "units" , "pixels",...
+ "position" , [xsf+margin_x+labelsf_w,ysf,editsf_w,label_h],...
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "horizontalalignment" , "left", ...
+ "BackgroundColor" , [1 1 1], ...
+ "ForegroundColor" , [1 1 1]*0, ...
+ "callback" , "wfirSetSamplingFrequency()", ...
+ "userdata" ,sfreq,...
+ "visible" , "on")
+ //Filter order -----------------------------------------------------------------
+ yfo=ysf-margin_y-label_h
+ xfo=xsf
+ labelfo_w=labelsf_w;
+ editfo_w= editsf_w;
+ scroll_w=160
+ uicontrol( ...
+ "parent" , gui,...
+ "style" , "text",...
+ "string" , _("Filter Order"),...
+ "units" , "pixels",...
+ "position" , [xfo yfo labelfo_w label_h],....
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "fontweight" , "bold", ...
+ "horizontalalignment" , "left", ...
+ "background" , [1 1 1]*0.8, ...
+ "visible" , "on");
+ Forderv=uicontrol( ...
+ "parent" , gui,...
+ "style" , "edit",...
+ "string" , exprs(3),...
+ "units" , "pixels",...
+ "position" , [xfo,yfo-label_h-margin_y,editfo_w,label_h],...
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "horizontalalignment" , "left", ...
+ "BackgroundColor" , [1 1 1], ...
+ "ForegroundColor" , [1 1 1]*0, ...
+ "callback" , "wfirValue2Sliderpos()", ...
+ "visible" , "on")
+
+ Forders=uicontrol( ...
+ "parent" , gui,...
+ "style" , "slider",...
+ "min" , 1,...
+ "max" , 1000,...
+ "sliderstep" , [1 100],...
+ "value" , forder,...
+ "units" , "pixels",...
+ "position" , [xfo+editfo_w+margin_x,yfo-label_h-margin_y,scroll_w,label_h],...
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "horizontalalignment" , "left", ...
+ "BackgroundColor" , [1 1 1], ...
+ "ForegroundColor" , [1 1 1]*0, ...
+ "userdata" , list(Forderv,1), ...
+ "callback" , "wfirSliderpos2ValueI()",...
+ "visible" , "on")
+ set(Forderv,"userdata",Forders);
+
+ //Low cutoff frequency -----------------------------------------------------------------
+ ylcf=yfo-2*(margin_y+label_h)
+ xlcf=xsf
+ labellcf_w=labelsf_w;
+ editlcf_w= editsf_w;
+ if ftype=="""hp""" then visible="off";else visible="on";end
+ Lcfl=uicontrol( ...
+ "parent" , gui,...
+ "style" , "text",...
+ "visible" , visible,...
+ "string" , _("Low cutoff frequency (Hz)"),...
+ "units" , "pixels",...
+ "position" , [xlcf ylcf labellcf_w label_h],....
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "fontweight" , "bold", ...
+ "horizontalalignment" , "left", ...
+ "background" , [1 1 1]*0.8);
+ fact=1000;
+ Lcfv=uicontrol( ...
+ "parent" , gui,...
+ "style" , "edit",...
+ "visible" , visible,...
+ "units" , "pixels",...
+ "string" , exprs(5),...
+ "position" , [xlcf,ylcf-label_h-margin_y,editlcf_w,label_h],...
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "horizontalalignment" , "left", ...
+ "BackgroundColor" , [1 1 1], ...
+ "ForegroundColor" , [1 1 1]*0, ...
+ "callback" , "wfirValue2Sliderpos()")
+ Lcfs=uicontrol( ...
+ "parent" , gui,...
+ "style" , "slider",...
+ "visible" , visible,...
+ "min" , 0,...
+ "max" , 500,...
+ "sliderstep" , [1 10],...
+ "value" , low*fact,...
+ "units" , "pixels",...
+ "position" , [xlcf+editlcf_w+margin_x,ylcf-label_h-margin_y,scroll_w,label_h],...
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "horizontalalignment" , "left", ...
+ "BackgroundColor" , [1 1 1], ...
+ "ForegroundColor" , [1 1 1]*0, ...
+ "userdata" , list(Lcfv,fact), ...
+ "callback" , "wfirSliderpos2Value()")
+ set(Lcfv,"userdata",Lcfs);
+
+ //High cutoff frequency -----------------------------------------------------------------
+ yhcf=ylcf-2*(margin_y+label_h)
+ xhcf=xsf
+ labelhcf_w=labelsf_w;
+ edithcf_w= editsf_w;
+ if ftype=="""lp""" then visible="off";else visible="on";end
+ Hcfl=uicontrol( ...
+ "parent" , gui,...
+ "style" , "text",...
+ "visible" , visible,...
+ "string" , _("High cutoff frequency (Hz)"),...
+ "units" , "pixels",...
+ "position" , [xhcf yhcf labelhcf_w label_h],....
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "fontweight" , "bold", ...
+ "horizontalalignment" , "left", ...
+ "background" , [1 1 1]*0.8);
+ fact=1000;
+ Hcfv=uicontrol( ...
+ "parent" , gui,...
+ "style" , "edit",...
+ "visible" , visible,...
+ "units" , "pixels",...
+ "string" , exprs(6),...
+ "position" , [xhcf,yhcf-label_h-margin_y,edithcf_w,label_h],...
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "horizontalalignment" , "left", ...
+ "BackgroundColor" , [1 1 1], ...
+ "ForegroundColor" , [1 1 1]*0, ...
+ "callback" , "wfirValue2Sliderpos()")
+ Hcfs=uicontrol( ...
+ "parent" , gui,...
+ "style" , "slider",...
+ "visible" , visible,...
+ "min" , 0,...
+ "max" , 500,...
+ "sliderstep" , [1 10],...
+ "value" , high*fact,...
+ "units" , "pixels",...
+ "position" , [xhcf+edithcf_w+margin_x,yhcf-label_h-margin_y,scroll_w,label_h],...
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "horizontalalignment" , "left", ...
+ "BackgroundColor" , [1 1 1], ...
+ "ForegroundColor" , [1 1 1]*0, ...
+ "userdata" , list(Hcfv,fact), ...
+ "callback" , "wfirSliderpos2Value()")
+ set(Hcfv,"userdata",Hcfs);
+
+
+ //Chebychev or Kaiser window parameter -----------------------------------------------------------------
+ yfp=yhcf-2*(margin_y+label_h)
+ xfp=xsf
+ labelfp_w=labelsf_w;
+ editfp_w= editsf_w;
+ if and(wtype<>["""kr""" """ch"""]) then visible="off";else visible="on";end
+ Fpl=uicontrol( ...
+ "parent" , gui,...
+ "style" , "text",...
+ "visible" , visible,...
+ "string" , _("Parameter"),...
+ "units" , "pixels",...
+ "position" , [xfp yfp labelfp_w label_h],....
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "fontweight" , "bold", ...
+ "horizontalalignment" , "left", ...
+ "background" , [1 1 1]*0.8);
+ fact=1000;
+
+ Fpv=uicontrol( ...
+ "parent" , gui,...
+ "style" , "edit",...
+ "visible" , visible,...
+ "units" , "pixels",...
+ "string" , exprs(7),...
+ "position" , [xfp,yfp-label_h-margin_y,editfp_w,label_h],...
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "horizontalalignment" , "left", ...
+ "BackgroundColor" , [1 1 1], ...
+ "ForegroundColor" , [1 1 1]*0, ...
+ "callback" , "wfirValue2Sliderpos()")
+ Fps=uicontrol( ...
+ "parent" , gui,...
+ "style" , "slider",...
+ "visible" , visible,...
+ "min" , 0,...
+ "max" , 500,...
+ "sliderstep" , [1 10],...
+ "value" , fp*fact,...
+ "units" , "pixels",...
+ "position" , [xfp+editfp_w+margin_x,yfp-label_h-margin_y,scroll_w,label_h],...
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "horizontalalignment" , "left", ...
+ "BackgroundColor" , [1 1 1], ...
+ "ForegroundColor" , [1 1 1]*0, ...
+ "userdata" , list(Fpv,fact), ...
+ "callback" , "wfirSliderpos2Value()")
+
+ set(Fpv,"userdata",Fps);
+
+
+ set(Filtertype,"userdata",list([Lcfl Lcfv Lcfs;Hcfl Hcfv Hcfs],Ftv))
+ set(Windowtype,"userdata",list([Fpl Fpv Fps], Wtv))
+
+ //Display -----------------------------------------------------------------
+ yd=yfp-2*(margin_y+label_h)
+ xd=xsf
+ labeld_w=40
+ uicontrol( ...
+ "parent" , gui,...
+ "style" , "text",...
+ "string" , _("View"),...
+ "units" , "pixels",...
+ "position" , [xd yd labeld_w label_h],...
+ "fontname" , defaultfont,...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "fontweight" , "bold", ...
+ "horizontalalignment" , "left", ...
+ "background" , [1 1 1]*0.8, ...
+ "visible" , "on");
+ Fview=uicontrol( ...
+ "parent" , gui,...
+ "style" , "checkbox",...
+ "units" , "pixels",...
+ "min" , 0, ...
+ "max" , 1, ...
+ "value" , 0, ...
+ "position" , [xd+margin_x+labeld_w yd label_h label_h],...
+ "background" , [1 1 1]*0.8, ...
+ "callback" , "wfirSetFilterView()",...
+ "visible" , "on");
+
+ ybuttons=margin_y
+ xbuttons=xhcf
+ Ok = uicontrol( ...
+ "parent" , gui,...
+ "relief" , "groove",...
+ "style" , "pushbutton",...
+ "string" , _("Ok"),...
+ "units" , "pixels",...
+ "position" , [xbuttons,ybuttons,button_w button_h],..
+ "fontname" , "arial",...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "fontweight" , "bold", ...
+ "horizontalalignment" , "center", ...
+ "visible" , "on", ...
+ "callback" , "global ret;ret=1;");
+ xbuttons=xbuttons+margin_x+button_w
+ Cancel = uicontrol( ...
+ "parent" , gui,...
+ "relief" , "groove",...
+ "style" , "pushbutton",...
+ "string" , _("Cancel"),...
+ "units" , "pixels",...
+ "position" , [xbuttons,ybuttons,button_w button_h],..
+ "fontname" , "arial",...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "fontweight" , "bold", ...
+ "horizontalalignment" , "center", ...
+ "visible" , "on", ...
+ "callback" , "global ret;ret=2;");
+ xbuttons=xbuttons+margin_x+button_w
+ Help = uicontrol( ...
+ "parent" , gui,...
+ "relief" , "groove",...
+ "style" , "pushbutton",...
+ "string" , _("Help"),...
+ "units" , "pixels",...
+ "position" , [xbuttons,ybuttons,button_w button_h],..
+ "fontname" , "arial",...
+ "fontunits" , "points",...
+ "fontsize" , 12,...
+ "fontweight" , "bold", ...
+ "horizontalalignment" , "center", ...
+ "visible" , "on", ...
+ "callback" , "help wfir");
+ // next used by wfirGetFilterParameters
+ set(gui,"userdata",[Fview,Filtertype,Windowtype,Forderv,Forders,Lcfv,Lcfs,Hcfv,Hcfs,Fpv,Fps,Sfreq,Ftv,Wtv])
+ realtimeinit(0.1);
+ t=0;
+ while ret==0&or(winsid()==fig_id) then
+ //slow down the waiting loop
+ t=t+1;
+ realtime(t);
+ end
+ if ret==1&or(winsid()==fig_id) then
+ ok=%t
+ [ftype,forder,low,high,wtype,fpar,freq_ech]=wfirGetFilterParameters(gui.userdata)
+ values=tlist(["wfir","ftype","forder","low","high","wtype","fpar","freq_ech"],ftype,forder,low,high,wtype,fpar,freq_ech)
+ exprs= wfirGetFilterExprs(gui.userdata)
+ delete(fig)
+ else
+ //user had canceled or closed the gui window
+ ok=%f
+ values=[]
+ exprs=[]
+ end
+ clearglobal ret idle;
+
+endfunction
+
+function wfirSliderpos2Value(hs)
+ //hs handle on the slider
+ if argn(2)<1 then hs=gcbo,end
+ ud=hs.userdata
+ hv=ud(1);//handle on edition zone
+ fact=ud(2)// scale factor
+ hv.string=string(hs.value/fact)
+ wfirUpdate(hs)
+endfunction
+function wfirSliderpos2ValueI(hs)
+ //hs handle on the slider
+ if argn(2)<1 then hs=gcbo,end
+ hs.value=round(hs.value)
+ ud=hs.userdata
+ hv=ud(1);//handle on edition zone
+ fact=ud(2)// scale factor
+ hv.string=string(hs.value/fact)
+ wfirUpdate(hs)
+endfunction
+
+function wfirValue2Sliderpos(hv)
+ // hv handle on edition zone
+ if argn(2)<1 then hv=gcbo,end
+ if execstr("v="+hv.string,"errcatch")==0 then
+ hs=hv.userdata //handle on the slider
+ ud=hs.userdata
+ fact=ud(2)// scale factor
+ hs.value=fact*v
+ hv.ForegroundColor=[0 0 0];
+ wfirUpdate(hv)
+ else
+ hv.ForegroundColor=[1 0 0];
+ end
+endfunction
+
+function wfirSetFilterType()
+ FT=["lp","hp","bp","sb"]
+ ud=gcbo.userdata
+
+ if gcbo.style=="edit" then
+ he=gcbo //handle on the edit area
+ hl=ud(2) //handle on the list area
+
+ ok=execstr("k=find("+he.string+"==FT)","errcatch")==0
+ if ~ok|k==[] then
+ he.ForegroundColor=[1 0 0];
+ return
+ else
+ he.ForegroundColor=[0 0 0];
+ hl.value=k
+ end
+ else
+ hl=gcbo //handle on the list area
+ he=ud(2) //handle on the edit area
+ he.string=sci2exp(FT(hl.value),0)
+ end
+ ud=hl.userdata
+ Handles=ud(1)
+ select hl.value
+ case 1 then //low pass
+ Handles(1,:).visible="on";
+ Handles(2,:).visible="off";
+ case 2 then //high pass
+ Handles(1,:).visible="off";
+ Handles(2,:).visible="on";
+ case 3 then //band pass
+ Handles(1,:).visible="on";
+ Handles(2,:).visible="on";
+ case 4 then //stop band
+ Handles(1,:).visible="on";
+ Handles(2,:).visible="on";
+ end
+ wfirUpdate(gcbo)
+endfunction
+
+function wfirSetWindowType()
+ WT=["re","tr","hn","hm","kr","ch","ch"]
+ ud=gcbo.userdata
+ if gcbo.style=="edit" then
+ he=gcbo //handle on the edit area
+ hl=ud(2) //handle on the list area
+ ok=execstr("k=find("+he.string+"==WT)","errcatch")==0
+
+ if ~ok|k==[] then
+ he.ForegroundColor=[1 0 0];
+ return
+ else
+ he.ForegroundColor=[0 0 0];
+ hl.value=k
+ end
+ else
+ hl=gcbo //handle on the list area
+ he=ud(2) //handle on the edit area
+ he.string=sci2exp(WT(hl.value),0)
+ end
+
+ ud=hl.userdata
+ Handles=ud(1)
+ k=hl.value
+ if and(k<>[5 6 7]) then
+ Handles.visible="off"
+ else
+ label=Handles(1)
+ value=Handles(2)
+ scroll=Handles(3)
+
+ if k==5 then //Kaiser
+ label.string="Beta"
+ label.visible="on";
+ value.visible="on";
+
+ init=2.5;fact=100;
+ value.string=string(init)
+ scroll.min=0
+ scroll.max=10*fact
+ scroll.value=init*fact
+ d=scroll.userdata;d(2)=fact
+ set(scroll,"userdata",d)
+ scroll.visible="on";
+ elseif k==6 then //Chebychev, main lobe constraint df in [0 0.5]
+ label.string=_("Window main lobe width")
+ label.visible="on";
+ value.visible="on";
+ init=0.2;fact=1000;
+ value.string=string(init)
+ scroll.min=1d-10*fact
+ scroll.max=0.5*fact
+ scroll.value=init*fact
+ d=scroll.userdata;d(2)=fact
+ set(scroll,"userdata",d)
+ scroll.visible="on";
+
+ elseif k==7 then //Chebychev, side lobe constraint dp>0
+ label.string=_("maximum side-lobe height")
+ label.visible="on";
+ value.visible="on";
+ init=0.001;fact=1000;
+ value.string=string(init)
+ scroll.min=1d-10*fact
+ scroll.max=1*fact
+ scroll.value=init*fact
+ d=scroll.userdata;d(2)=fact
+ set(scroll,"userdata",d)
+ scroll.visible="on";
+ end
+ end
+ wfirUpdate(gcbo)
+endfunction
+
+function wfirSetFilterView()
+ h=gcbo //handle on the view check box
+ if h.value==0 //disable
+ fig=h.userdata
+ execstr("delete(fig)","errcatch")
+ h.userdata=[]
+ else //enable
+ nwin=size(winsid(),"*")
+ if nwin==0 then win=1;else win=max(winsid())+1;end
+ fig=scf(win)
+ a=gca();
+ a.x_label.text=_("frequency (Hz)")
+ a.y_label.text=_("Magnitude (dB)")
+ a.axes_visible="on"
+ a.grid=ones(1,2)*color("gray");
+ xpoly([],[])
+ set(h,"userdata",fig)
+ clearglobal idle
+ wfirUpdate(gcbo)
+ end
+endfunction
+
+function wfirSetSamplingFrequency()
+ Sfreq=gcbo
+ ok=execstr("newfreq="+Sfreq.string,"errcatch")==0
+ ok=ok&newfreq>0
+
+ if ok then
+ Sfreq.ForegroundColor=[0 0 0];
+ curfreq=Sfreq.userdata
+ gui=gcbo.parent
+ H=gui.userdata
+ //H=[Fview,Filtertype,Windowtype,Forderv,Forders,Lcfv,Lcfs,Hcfv,Hcfs,Fpv,Fps,Sfreq,Ftv,Wtv]
+ //update low and high cutoff frequencies
+ r=newfreq/curfreq
+ Lcfv=H(6),Lcfs=H(7),Hcfv=H(8),Hcfs=H(9)
+
+ Lcfs.min=Lcfs.min*r
+ Lcfs.max=Lcfs.max*r
+ Lcfs.value=Lcfs.value*r
+ Lcfv.string=string(evstr(Lcfv.string)*r)
+
+ Hcfs.min=Hcfs.min*r
+ Hcfs.max=Hcfs.max*r
+ Hcfs.value=Hcfs.value*r
+ Hcfv.string=string(evstr(Hcfv.string)*r)
+
+ Sfreq.userdata=newfreq
+ wfirUpdate(gcbo)
+ else
+ Sfreq.ForegroundColor=[1 0 0];
+ end
+
+endfunction
+
+function [ftype,forder,low,high,wtype,fpar,freq_ech]=wfirGetFilterParameters(H)
+ // low,high,freq_ech are returned in Hz
+ //H=[Fview,Filtertype,Windowtype,Forderv,Forders,Lcfv,Lcfs,Hcfv,Hcfs,Fpv,Fps,Sfreq,Ftv,Wtv]
+ FT=["lp","hp","bp","sb"]
+ WT=["re","tr","hn","hm","kr","ch","ch"]
+ Filtertype=H(2);
+ Windowtype=H(3);
+ Forderv=H(4);
+ Lcfv=H(6);
+ Hcfv=H(8);
+ Fpv=H(10);
+ Sfreq=H(12)
+ ftype=FT(Filtertype.value)
+ wtype=WT(Windowtype.value)
+ forder=evstr(Forderv.string)
+ if or(ftype==["hp" "sb"]) then
+ //force odd ordrer
+ if 2*int(forder/2)==forder then forder=forder+1,end
+ end
+ freq_ech=evstr(Sfreq.string)
+ if ftype=="lp" then
+ low=evstr(Lcfv.string)
+ high=0
+ elseif ftype=="hp" then
+ low=evstr(Hcfv.string)
+ high=0
+ else
+ low=evstr(Lcfv.string)
+ high=evstr(Hcfv.string)
+ end
+ if Windowtype.value==5 //Kaiser
+ fpar=[evstr(Fpv.string) 0]
+ elseif Windowtype.value==6 //Chebychev, main lobe constraint df in [0 0.5]
+ fpar=[-1 evstr(Fpv.string)]
+ elseif Windowtype.value==7 //Chebychev, side lobe constraint dp>0
+ fpar=[evstr(Fpv.string) -1]
+ else
+ fpar=[-1 -1]
+ end
+endfunction
+
+function wfirUpdate(h)
+ global idle
+ if ~idle then return,end
+ idle=%f
+ gui=h.parent
+ H=gui.userdata
+ // H=[Fview,Filtertype,Windowtype,Forderv,Forders,Lcfv,Lcfs,Hcfv,Hcfs,Fpv,Fps,Sfreq,Ftv,Wtv]
+ if H(1).value==1 then
+ old=gcf()
+ [ftype,forder,low,high,wtype,fpar,freq_ech]= ...
+ wfirGetFilterParameters(H)
+ cfreq=[low,high]/freq_ech;
+ [filt,wfm,fr]=wfir(ftype,forder,cfreq,wtype,fpar);
+ fig=H(1).userdata
+ if ~is_handle_valid(fig) then
+ //the window has been closed by user
+ fig=scf(max(winsid())+1)
+ a=gca();
+ a.x_label.text=_("frequency (Hz)")
+ a.y_label.text=_("Magnitude (dB)")
+ a.axes_visible="on"
+ a.grid=ones(1,2)*color("gray");
+ xpoly([],[])
+ set(H(1),"userdata",fig)
+ end
+ eps=1d-6;
+ frq=linspace(eps,0.5-eps,10*size(filt,"*"))
+ [frq,repf]=repfreq(syslin("d",poly(filt,"z","c"),1),frq)
+ scf(fig);drawlater()
+ a=gca();p=a.children
+ frq=frq(:)*freq_ech
+ m=20*log10(abs(repf(:)))
+ a.data_bounds=[min(frq) min(m);max(frq) max(m)]
+ p.data=[frq m];
+ drawnow()
+ scf(old)
+ clearglobal idle
+ end
+endfunction
+
+function exprs= wfirGetFilterExprs(H)
+ // H=[Fview,Filtertype,Windowtype,Forderv,Forders,Lcfv,Lcfs,Hcfv,Hcfs,Fpv,Fps,Sfreq,Ftv,Wtv]
+ FT=["lp","hp","bp","sb"]
+ WT=["re","tr","hn","hm","kr","ch","ch"]
+ Filtertype=H(2);
+ Windowtype=H(3);
+ Forderv=H(4);
+ Lcfv=H(6);
+ Hcfv=H(8);
+ Fpv=H(10);
+ Sfreq=H(12)
+ exprs=[Ftv.string;
+ Wtv.string;
+ Forderv.string;
+ Sfreq.string;
+ Lcfv.string
+ Hcfv.string;
+ Fpv.string]
+endfunction
diff --git a/modules/signal_processing/macros/wiener.bin b/modules/signal_processing/macros/wiener.bin
new file mode 100755
index 000000000..a02f26a49
--- /dev/null
+++ b/modules/signal_processing/macros/wiener.bin
Binary files differ
diff --git a/modules/signal_processing/macros/wiener.sci b/modules/signal_processing/macros/wiener.sci
new file mode 100755
index 000000000..f6dca1efc
--- /dev/null
+++ b/modules/signal_processing/macros/wiener.sci
@@ -0,0 +1,82 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [xs,ps,xf,pf]=wiener(y,x0,p0,f,g,h,q,r)
+ //<xs,ps,xf,pf>=wiener(y,x0,p0,f,g,h,q,r)
+ //macro which gives the Wiener estimate using
+ //the forward-backward kalman filter formulation
+ //Input to the macro is:
+ // f,g,h :system matrices in the interval [t0,tf]
+ // q,r :covariance matrices of dynamics
+ // :and observation noise
+ // x0,p0 :initial state estimate and error variance
+ // y :observations in the interval [t0,tf]
+ //Output from macro is:
+ // xs :Smoothed state estimate
+ // ps :Error covariance of smoothed estimate
+ // xf :Filtered state estimate
+ // pf :Error covariance of filtered estimate
+ //form of y: [y0,y1,...,yf], and yk is a column m-vector
+ //form matrix inputs: [f0,f1,...,ff], and fk is a nxn matrix
+ // [g0,g1,...,gf], and gk is a nxn matrix
+ // [h0,h1,...,hf], and hk is a mxn matrix
+ // [q0,q1,...,qf], and qk is a nxn matrix
+ // [r0,r1,...,rf], and gk is a mxm matrix
+ //form of xs and xf: [x0,x1,...,xf], and xk is a column n-vector
+ //form of ps and pf: [p0,p1,...,pf], and pk is a nxn matrix
+ //!
+
+ //obtain the dimensions of xk and yk.
+ //Get the time interval [t0,tf].
+
+ t0=1;
+ [n,x0j]=size(x0);
+ [m,tf]=size(y);
+
+ //run the forward kalman filter taking care to save the
+ //state estimate and forward error covariance matrices
+
+ xf1=x0;
+ pf1=p0;
+ xf=[];
+ pf=[];
+ for k=t0:tf,
+ ind_nk=1+(k-1)*n:k*n;
+ ind_mk=1+(k-1)*m:k*m;
+ yk=y(:,k);
+ fk=f(:,ind_nk);
+ gk=g(:,ind_nk);
+ hk=h(:,ind_nk);
+ qk=q(:,ind_nk);
+ rk=r(:,ind_mk);
+ [x1,p1,x,p]=kalm(yk,x0,p0,fk,gk,hk,qk,rk);
+ xf1=[xf1 x1];
+ pf1=[pf1 p1];
+ xf=[xf x];
+ pf=[pf p];
+ x0=x1;
+ p0=p1;
+ end,
+
+ //run the backward kalman filter to smooth the estimate
+
+ x2=x;
+ p2=p;
+ xs=x2;
+ ps=p2;
+ for k=tf-1:-1:t0,
+ ind_nk=1+(k-1)*n:k*n;
+ ind_nk1=1+k*n:(k+1)*n;
+ ak=pf(:,ind_nk)*f(:,ind_nk)'*pf1(:,ind_nk1)**(-1);
+ x2=xf(:,k)+ak*(x2-xf1(:,k+1));
+ p2=pf(:,ind_nk)+ak*(p2-pf1(:,ind_nk1))*ak';
+ xs=[x2 xs];
+ ps=[p2 ps];
+ end
+endfunction
diff --git a/modules/signal_processing/macros/wigner.bin b/modules/signal_processing/macros/wigner.bin
new file mode 100755
index 000000000..f17135e46
--- /dev/null
+++ b/modules/signal_processing/macros/wigner.bin
Binary files differ
diff --git a/modules/signal_processing/macros/wigner.sci b/modules/signal_processing/macros/wigner.sci
new file mode 100755
index 000000000..51cd7e7a8
--- /dev/null
+++ b/modules/signal_processing/macros/wigner.sci
@@ -0,0 +1,44 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function tab=wigner(x,h,deltat,zp)
+ //macro which computes the 'time-frequency' wigner
+ //spectrum of a signal.
+ //
+ // tab : wigner spectrum (lines correspond to the time variable)
+ // x : analysed signal
+ // h : data window
+ // deltat : analysis time increment (in samples)
+ // zp : length of FFT's. %pi/zp gives the frequency increment.
+ //!
+ //
+ // Initializations
+ //
+ l=prod(size(x));
+ n=prod(size(h));
+ npr=2*n;
+ h=h.*conj(h);tab=[];
+ //
+ // Analytical signal computation using Hilbert transform
+ //
+ [y,y1]=convol(hilb(127),x);
+ z=x+%i*y;
+ //
+ // Wigner distribution computation
+ //
+ t=n;
+ while t<=l-n,
+ z1=h.*z(t:t+n-1).*conj(z(t:-1:t-n+1));
+ z1(zp)=0;
+ w=fft(z1,-1);
+ w=2*(2*real(w)-z(t)*z(t)'*ones(w));tab=[tab;w];
+ t=t+deltat;
+ end;
+ tab=tab(:,1:zp);
+endfunction
diff --git a/modules/signal_processing/macros/window.bin b/modules/signal_processing/macros/window.bin
new file mode 100755
index 000000000..6a0687fc9
--- /dev/null
+++ b/modules/signal_processing/macros/window.bin
Binary files differ
diff --git a/modules/signal_processing/macros/window.sci b/modules/signal_processing/macros/window.sci
new file mode 100755
index 000000000..a471bc82e
--- /dev/null
+++ b/modules/signal_processing/macros/window.sci
@@ -0,0 +1,148 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1988 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [win_l,cwp]=window(wtype,n,par)
+ //[win_l,cwp]=window(wtype,n,par)
+ //macro which calculates symmetric window
+ // wtype :window type (re,tr,hn,hm,kr,ch)
+ // n :window length
+ // par :parameter 2-vector (kaiser window: par(1)=beta>0)
+ // : (chebyshev window:par=[dp,df])
+ // : dp=main lobe width (0<dp<.5)
+ // : df=side lobe height (df>0)
+ // win :window
+ // cwp :unspecified Chebyshev window parameter
+ //!
+ WT=["re","tr","hm","hn","kr","ch"]
+
+ if and(wtype<>WT) then
+ error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),"window",1,strcat(WT,",")))
+ end
+ if type(n)<>1|size(n,"*")<>1|~isreal(n)|size(n,"*")<>1|int(n)<>n|n<1 then
+ error(msprintf(_("%s: Wrong type for input argument #%d: A positive integer expected.\n"),"window",2))
+ end
+
+ if or(wtype==["kr","ch"]) then
+ if type(par)<>1|~isreal(par) then
+ error(msprintf(_("%s: Wrong type for input argument #%d: A %d-by-%d real vector expected.\n"),"window",3,1,2))
+ end
+ if wtype=="kr" then
+ if size(par,"*")==0| size(par,"*")>2 then
+ error(msprintf(_("%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"),"window",3,1,2))
+ end
+ Beta=par(1)
+ if Beta<0 then
+ error(msprintf(_("%s: Input argument #%d must be strictly positive.\n"),"window",3))
+ end
+ else //chebychev
+ if size(par,"*")<>2 then
+ error(msprintf(_("%s: Wrong size for input argument #%d: A %d-by-%d real vector expected.\n"),"window",3,1,2))
+ end
+ dp=par(1);df=par(2)
+ if dp>0 then
+ if df>0 then
+ error(msprintf(_("%s: Wrong value for input argument #%d: incorrect element #%d\n"),"window",3,2))
+ end
+ if dp>=0.5 then
+ error(msprintf(_("%s: Wrong value for input argument #%d: incorrect element #%d\n"),"window",3,1))
+ end
+ unknown="df";
+ else
+ if df<=0 then
+ error(msprintf(_("%s: Wrong value for input argument #%d: incorrect element #%d\n"),"window",3,2))
+ end
+ unknown="dp";
+ end
+ end
+ end
+ cwp=-1;
+
+ //Pre-calculations
+
+ no2=(n-1)/2;
+ xt=(-no2:no2);
+ un=ones(1,n);
+
+ //Select the window type
+
+ select wtype
+ case "re" then //Rectangular window.
+ win_l=un
+ case "tr" then //Triangular window.
+ win_l=un-2*abs(xt)/(n+1);
+ case "hm" then //Hamming window.
+ win_l=.54*un+.46*cos(2*%pi*xt/(n-1));
+ case "hn" then //Hanning window.
+ win_l=.5*un+.5*cos(2*%pi*xt/(n-1));
+ case "kr" then //Kaiser window with parameter beta (n,beta)
+ //http://en.wikipedia.org/wiki/Kaiser_window
+ win_l = besseli(0,Beta*sqrt(1-(2*(0:n-1)/(n-1)-1).^2))/besseli(0,Beta);
+ case "ch" then //Chebyshev window
+ m=(n-1)/2;
+ select unknown
+ case "dp" then,
+ dp=1/cosh((n-1)*acosh(1/cos(%pi*df)));
+ cwp=dp;
+ case "df" then
+ df=real(acos(1/cosh(acosh((1+dp)/dp)/(n-1)))/%pi)
+ cwp=df;
+ end
+
+ //Pre-calculation
+
+ np1=int((n+1)/2);
+ odd=modulo(n,2)==1
+
+ x0=(3-cos(2*%pi*df))/(1+cos(2*%pi*df));
+ alpha=(x0+1)/2;
+ Beta=(x0-1)/2;
+ c2=(n-1)/2;
+
+ //Obtain the frequency values of the Chebyshev window
+ f=(0:n-1)/n;
+ xarg=alpha*cos(2*%pi*f)+Beta;
+
+ //Evaluate Chebyshev polynomials
+ // / cos(n acos(x), |x| <= 1
+ // p(x) = |
+ // \ cosh(n acosh(x), |x| > 1
+ pr=zeros(1,n);//real part
+ pi=zeros(1,n); //imaginary part
+ ind = find(xarg<=1); pr(ind)=dp*cos (c2*acos (xarg(ind)));
+ ind = find(xarg>1); pr(ind)=dp*cosh(c2*acosh(xarg(ind)));
+ pr=real(pr);
+
+ if ~odd then
+ pr=pr.*cos(%pi*f);
+ pi=-pr.*sin(%pi*f);
+ antisym=[1*ones(1:int(n/2)+1),-1*ones(int(n/2)+2:n)];
+ pr=pr.*antisym;
+ pi=pi.*antisym;
+ end
+
+ //Calculate the window coefficients using the inverse DFT
+ twn=2*%pi/n;
+ xj=(0:n-1);
+ for i=1:np1;
+ arg=twn*(i-1)*xj
+ w(i)=sum(pr.*cos(arg)+pi.*sin(arg));
+ end,
+ c1=w(1);
+ w=w/c1;
+ if odd then
+ win_l(np1:n)=w(1:np1);
+ win_l(1:np1-1)=w(np1-1:-1:1);
+ else,
+ win_l(np1+1:n)=w(1:np1);
+ win_l(1:np1)=w(np1:-1:1);
+ end
+ win_l=real(win_l');
+ end
+
+endfunction
diff --git a/modules/signal_processing/macros/xcorr.bin b/modules/signal_processing/macros/xcorr.bin
new file mode 100755
index 000000000..de0e4c996
--- /dev/null
+++ b/modules/signal_processing/macros/xcorr.bin
Binary files differ
diff --git a/modules/signal_processing/macros/xcorr.sci b/modules/signal_processing/macros/xcorr.sci
new file mode 100755
index 000000000..a72263b6c
--- /dev/null
+++ b/modules/signal_processing/macros/xcorr.sci
@@ -0,0 +1,124 @@
+// This file is part Scilab
+// Copyright (C) 2012 - INRIA - Serge Steer
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+function [c,lagindex]=xcorr(x,varargin)
+ nv=size(varargin)
+ if nv>0&type(varargin(nv))==10 then
+ validemodes=["biased","unbiased","coeff","none"]
+ scalemode=varargin(nv)
+ if and(scalemode<>validemodes) then
+ error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),...
+ "xcorr",nv+1,strcat(""""+validemodes+"""",",")))
+ end
+ nv=nv-1;
+ else
+ scalemode="none"
+ end
+ //test de validité de x
+ szx=size(x)
+ if type(x)<>1|and(szx>1) then
+ error(msprintf(_("%s: Wrong type for input argument #%d: Real or complex vector expected.\n"),...
+ "xcorr",1))
+ end
+
+ autocorr=%t
+ maxlags=[]
+ if nv==1 then
+ if size(varargin(1),"*")==1 then //xcorr(x,maxlags)
+ autocorr=%t
+ maxlags=int(varargin(1))
+ if type( maxlags)<>1|size(maxlags,"*")>1|~isreal(maxlags)|maxlags<>int(maxlags) then
+ error(msprintf(_("%s: Wrong type for argument #%d: an integer expected.\n"),...
+ "xcorr",2))
+ end
+ if maxlags<1 then
+ error(msprintf(_("%s: Wrong value for argument #%d: the expected value must be greater than %d.\n"),...
+ "xcorr",2,1))
+ end
+ else //xcorr(x,y)
+ autocorr=%f
+ y=varargin(1)
+ if type(y)<>1|and(size(y)>1) then
+ error(msprintf(_("%s: Wrong type for input argument #%d: Real or complex vector expected.\n"),...
+ "xcorr",2))
+ end
+ maxlags=[]
+ end
+ elseif nv==2 then //xcorr(x,y,maxlag)
+ autocorr=%f
+ y=varargin(1)
+ if type(y)<>1|and(size(y)>1) then
+ error(msprintf(_("%s: Wrong type for input argument #%d: Real or complex vector expected.\n"),...
+ "xcorr",2))
+ end
+ maxlags=int(varargin(2))
+ if type( maxlags)<>1|size(maxlags,"*")>1|~isreal(maxlags)|maxlags<>int(maxlags) then
+ error(msprintf(_("%s: Wrong type for argument #%d: an integer expected.\n"),...
+ "xcorr",2))
+ end
+ if maxlags<1 then
+ error(msprintf(_("%s: Wrong value for argument #%d: the expected value must be greater than %d.\n"),...
+ "xcorr",2,1))
+ end
+ end
+
+ if autocorr then //auto correlation
+ x=matrix(x,-1,1);n=size(x,"*")
+ if maxlags==[] then maxlags=n-1,end
+ npad=2^nextpow2(2*n-1)
+ x(npad)=0;
+ t=fft(x);
+ c=ifft(real(t.*conj(t)))
+ if isreal(x) then c=real(c);end
+ else //cross correlation
+ x=matrix(x,-1,1);nx=size(x,1)
+ xx=sum(abs(x).^2)
+ y=matrix(y,-1,1);ny=size(y,1)
+ yy=sum(abs(y).^2)
+ if nx<ny then
+ x(ny)=0;
+ elseif ny<nx then
+ y(nx)=0;
+ end
+ n=max(nx,ny)
+ if maxlags==[] then maxlags=n-1,end
+ npad=2^nextpow2(2*n-1)
+ x(npad)=0;
+ y(npad)=0;
+ c=ifft(fft(x).*conj(fft(y)))
+ if isreal(x)&isreal(y) then c=real(c),end
+ end
+ //extract requested lags
+ padding=zeros(maxlags-n+1,1)
+ if maxlags<n then
+ c=[c($-maxlags+1:$);c(1:maxlags+1);]
+ else
+ padding=zeros(maxlags-n+1,1)
+ c = [padding;
+ c($-n+2:$);
+ c(1:n);
+ padding];
+ end
+ //normalization
+ select scalemode
+ case "biased" then
+ c=c/n
+ case "unbiased" then
+ scale=n-abs(-maxlags:maxlags)
+ scale(scale==0)=1;
+ c=c./scale'
+ case "coeff" then
+ if autocorr then
+ c=c/c(maxlags+1)
+ else
+ c=c/sqrt(xx*yy)
+ end
+ end
+ //give result same orientation as x
+ if szx(1)==1 then c=matrix(c,1,-1),end
+ if argn(1)==2 then lagindex=-maxlags:maxlags,end
+endfunction
diff --git a/modules/signal_processing/macros/xcov.bin b/modules/signal_processing/macros/xcov.bin
new file mode 100755
index 000000000..abc3a1251
--- /dev/null
+++ b/modules/signal_processing/macros/xcov.bin
Binary files differ
diff --git a/modules/signal_processing/macros/xcov.sci b/modules/signal_processing/macros/xcov.sci
new file mode 100755
index 000000000..2a744e97d
--- /dev/null
+++ b/modules/signal_processing/macros/xcov.sci
@@ -0,0 +1,76 @@
+// This file is part Scilab
+// Copyright (C) 2012 - INRIA - Serge Steer
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+function [c,lagindex]=xcov(x,varargin)
+ nv=size(varargin)
+ if nv>0&type(varargin(nv))==10 then
+ validemodes=["biased","unbiased","coeff","none"]
+ scalemode=varargin(nv)
+ if and(scalemode<>validemodes) then
+ error(msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),...
+ "xcov",nv+1,strcat(""""+validemodes+"""",",")))
+ end
+ nv=nv-1;
+ else
+ scalemode="none"
+ end
+ //test de validité de x
+ szx=size(x)
+ if type(x)<>1|and(szx>1) then
+ error(msprintf(_("%s: Wrong type for input argument #%d: Real or complex vector expected.\n"),...
+ "xcov",1))
+ end
+ x=x-mean(x)
+ autocorr=%t
+ maxlags=[]
+ if nv==1 then
+ if size(varargin(1),"*")==1 then //xcov(x,maxlags)
+ autocorr=%t
+ maxlags=int(varargin(1))
+ if type( maxlags)<>1|size(maxlags,"*")>1|~isreal(maxlags)|maxlags<>int(maxlags) then
+ error(msprintf(_("%s: Wrong type for argument #%d: an integer expected.\n"),...
+ "xcov",2))
+ end
+ if maxlags<1 then
+ error(msprintf(_("%s: Wrong value for argument #%d: the expected value must be greater than %d.\n"),...
+ "xcov",2,1))
+ end
+ else //xcov(x,y)
+ autocorr=%f
+ y=varargin(1)
+ if type(y)<>1|and(size(y)>1) then
+ error(msprintf(_("%s: Wrong type for input argument #%d: Real or complex vector expected.\n"),...
+ "xcov",2))
+ end
+ varargin(1)=y-mean(y)
+ maxlags=[]
+ end
+ elseif nv==2 then //xcov(x,y,maxlag)
+ autocorr=%f
+ y=varargin(1)
+ if type(y)<>1|and(size(y)>1) then
+ error(msprintf(_("%s: Wrong type for input argument #%d: Real or complex vector expected.\n"),...
+ "xcov",2))
+ end
+ if type(y)<>1|and(size(y)>1) then
+ error(msprintf(_("%s: Wrong type for input argument #%d: Real or complex vector expected.\n"),...
+ "xcov",2))
+ end
+ varargin(1)=y-mean(y)
+ maxlags=int(varargin(2))
+ if type( maxlags)<>1|size(maxlags,"*")>1|~isreal(maxlags)|maxlags<>int(maxlags) then
+ error(msprintf(_("%s: Wrong type for argument #%d: an integer expected.\n"),...
+ "xcov",2))
+ end
+ if maxlags<1 then
+ error(msprintf(_("%s: Wrong value for argument #%d: the expected value must be greater than %d.\n"),...
+ "xcov",2,1))
+ end
+ end
+ [c,lagindex]=xcorr(x,varargin(:))
+
+endfunction
diff --git a/modules/signal_processing/macros/yulewalk.bin b/modules/signal_processing/macros/yulewalk.bin
new file mode 100755
index 000000000..615ee791f
--- /dev/null
+++ b/modules/signal_processing/macros/yulewalk.bin
Binary files differ
diff --git a/modules/signal_processing/macros/yulewalk.sci b/modules/signal_processing/macros/yulewalk.sci
new file mode 100755
index 000000000..fcccba7db
--- /dev/null
+++ b/modules/signal_processing/macros/yulewalk.sci
@@ -0,0 +1,147 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [Nz,Dz]=yulewalk(Norder, frq, mag)
+ //YULEWALK filter design using a least-squares method.
+ // Hz = YULEWALK(N,frq,mag) finds the N-th order iir filter
+ //
+ // n-1 n-2
+ // B(z) b(1)z + b(2)z + .... + b(n)
+ // H(z)= ---- = ---------------------------------
+ // n-1 n-2
+ // A(z) z + a(1)z + .... + a(n)
+ //
+ //which matches the magnitude frequency response given by vectors F and M.
+ //Vectors frq and mag specify the frequency and magnitude of the desired
+ //frequency response. The frequencies in frq must be between 0.0 and 1.0,
+ //with 1.0 corresponding to half the sample rate. They must be in
+ //increasing order and start with 0.0 and end with 1.0.
+ //
+ // Example: f=[0,0.4,0.4,0.6,0.6,1];H=[0,0,1,1,0,0];Hz=yulewalk(8,f,H);
+ //fs=1000;fhz = f*fs/2;
+ //clf(0);xset('window',0);plot2d(fhz',H');
+ //xtitle('Desired Frequency Response')
+ //[frq,repf]=repfreq(Hz,0:0.001:0.5);
+ //clf(1);xset('window',1);plot2d(fs*frq',abs(repf'));
+ //xtitle('Obtained Frequency Response')
+ //
+ [LHS,RHS]=argn(0);
+ if RHS <>3
+ error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"),"yulewalk",3));
+ end
+ npt=512;
+ thelap=fix(npt/25);
+
+ [mf,nf]=size(frq);
+ [mm,nn]=size(mag);
+ if mm ~= mf | nn ~= nf
+ error(msprintf(gettext("%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"),"yulewalk",2,3));
+ end
+ nbrk=max(mf,nf);
+ if mf < nf
+ frq=frq';
+ mag=mag';
+ end
+
+ if abs(frq(1)) > %eps | abs(frq(nbrk) - 1) > %eps
+ error(msprintf(gettext("%s: Wrong values for input argument #%d: The first element must be %s and the last %s.\n"),"yulewalk",2,"0","1"));
+ end
+
+ npt=npt+1;
+ Ht=zeros(1,npt);
+
+ nint=nbrk-1;
+ df=frq(2:nf)-frq(1:nf-1);
+ if (or(df < 0))
+ error(msprintf(gettext("%s: Wrong values for input argument #%d: Elements must be in increasing order.\n"),"yulewalk",2));
+ end
+
+ nb=1;
+ Ht(1)=mag(1);
+ for i=1:nint
+ if df(i) == 0
+ nb=nb - thelap/2;
+ ne=nb + thelap;
+ else
+ ne=int(frq(i+1)*npt);
+ end
+ if (nb < 0 | ne > npt)
+ error(msprintf(gettext("%s: Too abrupt change near end of frequency range.\n"),"yulewalk"));
+ end
+ j=nb:ne;
+ if ne == nb
+ inc=0;
+ else
+ inc=(j-nb)/(ne-nb);
+ end
+ Ht(nb:ne)=inc*mag(i+1) + (1 - inc)*mag(i);
+ nb=ne + 1;
+ end
+ Ht=[Ht Ht(npt-1:-1:2)];
+ n=max(size(Ht));
+ n2=fix((n+1)/2);
+ nb=Norder;
+ nr=4*Norder;
+ nt=0:1:nr-1;
+ R=real(fft(Ht.*Ht,1));
+ R =R(1:nr).*(0.54+0.46*cos(%pi*nt/(nr-1)));
+ Rwindow=[1/2,ones(1,n2-1),zeros(1,n-n2)];
+
+ nr=max(size(R));
+ Rm=toeplitz(R(Norder+1:nr-1),R(Norder+1:-1:2));
+ Rhs=- R(Norder+2:nr);
+ denf=[1 Rhs/Rm'];
+
+ A=polystab(denf);
+ nA=size(A,"*");
+ Dz=poly(A(nA:-1:1),"z","c");
+ Qh=numf([R(1)/2,R(2:nr)],A,Norder); // compute additive decomposition
+ Qhsci=poly(Qh( size(Qh,"*"):-1:1 ),"z","c")
+ aa=A(:);bb=Qh(:);
+ nna=max(size(aa));nnb=max(size(bb));
+ Ss=2*real((fft([Qh,zeros(1,n-nnb)],-1) ./ fft([A,zeros(1,n-nna)],-1)));
+ hh=fft(exp(fft( Rwindow.*fft(log(Ss),1),-1)),1);
+ impr=filter(1,A,[1 zeros(1,nr-1)]);
+ B=real(hh(1:nr)/toeplitz(impr,[1 zeros(1,nb)])');
+ nB=size(B,"*");
+ Nz=poly(B(nB:-1:1),"z","c");
+ B =real(numf(hh(1:nr),A,nb));
+ if LHS==1 then
+ Nz=syslin("d",Nz/Dz);
+ end
+endfunction
+
+function b=polystab(a);
+ //Utility function for use with yulewalk: polynomial stabilization.
+ // polystab(A), where A is a vector of polynomial coefficients,
+ // stabilizes the polynomial with respect to the unit circle;
+ // roots whose magnitudes are greater than one are reflected
+ // inside the unit circle.
+ if length(a) == 1, b=a; return, end
+ ll=size(a,"*");
+ ap=poly(a($:-1:1),"s","coeff");
+ v=roots(ap); i=find(v~=0);
+ vs=0.5*(sign(abs(v(i))-1)+1);
+ v(i)=(1-vs).*v(i) + vs./conj(v(i));
+ b=a(1)*coeff(poly(v,"s"));
+ b =b(ll:-1:1);
+ if ~or(imag(a))
+ b=real(b);
+ end
+
+endfunction
+
+function b=numf(h,a,nb)
+ //NUMF Find numerator B given impulse-response h of B/A and denominator A
+ //NB is the numerator order. This function is used by yulewalk.
+
+ nh=max(size(h));
+ impr=filter(1,a,[1 zeros(1,nh-1)]);
+ b=h/toeplitz(impr,[1 zeros(1,nb)])';
+endfunction
diff --git a/modules/signal_processing/macros/zpbutt.bin b/modules/signal_processing/macros/zpbutt.bin
new file mode 100755
index 000000000..c87337723
--- /dev/null
+++ b/modules/signal_processing/macros/zpbutt.bin
Binary files differ
diff --git a/modules/signal_processing/macros/zpbutt.sci b/modules/signal_processing/macros/zpbutt.sci
new file mode 100755
index 000000000..65c9af9c1
--- /dev/null
+++ b/modules/signal_processing/macros/zpbutt.sci
@@ -0,0 +1,26 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - F.D
+// Copyright (C) INRIA - 1996 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [pols,gain]=zpbutt(n,omegac)
+ //<pols,gain>=zpbutt(n,omegac)
+ //Computes the poles of a Butterworth analog
+ //filter of order n and cutoff frequency omegac
+ //transfer function H(s) is calculated by
+ // H(s) = gain/real(poly(pols,'s'))
+ // n :Filter order
+ // omegac :Cut-off frequency in Hertz rd/s
+ // pols :Resulting poles of filter
+ // gain :Resulting gain of filter
+ //
+ //!
+ angles=ones(1,n)*(%pi/2+%pi/(2*n))+(0:n-1)*%pi/n;
+ pols=omegac*exp(%i*angles);
+ gain=abs((-omegac)^n);
+endfunction
diff --git a/modules/signal_processing/macros/zpch1.bin b/modules/signal_processing/macros/zpch1.bin
new file mode 100755
index 000000000..33bc7d2cf
--- /dev/null
+++ b/modules/signal_processing/macros/zpch1.bin
Binary files differ
diff --git a/modules/signal_processing/macros/zpch1.sci b/modules/signal_processing/macros/zpch1.sci
new file mode 100755
index 000000000..d716101e7
--- /dev/null
+++ b/modules/signal_processing/macros/zpch1.sci
@@ -0,0 +1,34 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - F.D
+// Copyright (C) INRIA - 1996 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [pols,gain]=zpch1(n,epsilon,omegac)
+ //Poles of a Type 1 Chebyshev analog filter
+ //The transfer function is given by :
+ //H(s)=gain/poly(pols,'s')
+ // n :Filter order
+ // epsilon :Ripple in the pass band (0<epsilon<1)
+ // omegac :Cut-off frequency in rd/s
+ // pols :Resulting filter poles
+ // gain :Resulting filter gain
+ //
+ //!
+ Gamma=((1+sqrt(1+epsilon**2))/epsilon)^(1/n);
+ a=omegac*(Gamma-1/Gamma)/2;
+ b=omegac*(Gamma+1/Gamma)/2;
+ v=%pi/(2*n):%pi/n:(2*n-1)/(2*n)*%pi;
+ sigma=-a*sin(v);
+ omega=b*cos(v);
+ pols=sigma+%i*omega;
+ gain=abs(real(prod(pols)));
+ if n==2*int(n/2) then,
+ gain=gain/sqrt(1+epsilon^2);
+ end
+
+endfunction
diff --git a/modules/signal_processing/macros/zpch2.bin b/modules/signal_processing/macros/zpch2.bin
new file mode 100755
index 000000000..8d9596df6
--- /dev/null
+++ b/modules/signal_processing/macros/zpch2.bin
Binary files differ
diff --git a/modules/signal_processing/macros/zpch2.sci b/modules/signal_processing/macros/zpch2.sci
new file mode 100755
index 000000000..2e9677ac4
--- /dev/null
+++ b/modules/signal_processing/macros/zpch2.sci
@@ -0,0 +1,42 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - F.D
+// Copyright (C) INRIA - 1996 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [zers,pols,gain]=zpch2(n,A,omegar)
+ //[zers,pols,gain]=zpch2(n,A,omegar)
+ //Poles and zeros of a type 2 Chebyshev analog filter
+ //gain is the gain of the filter
+ //H(s)=gain*poly(zers,'s')/poly(pols,'s')
+ // n :Filter order
+ // A :Attenuation in stop band (A>1)
+ // omegar :Cut-off frequency in rd/s
+ // zers :Resulting filter zeros
+ // pols :Resulting filter poles
+ // gain :Resulting filter gain
+ //
+ //!
+ un=ones(1,n);
+ v=%pi/(2*n)*(1:2:2*n-1);
+ w=exp(%i*v);
+ cosine=real(w);
+ sine=imag(w);
+ n2=int(n/2);
+ if n==2*n2 then,
+ zers=%i*omegar*un./cosine;
+ else,
+ zers=%i*omegar*un(1:n-1)./[cosine(1:n2),cosine(n2+2:n)];
+ end,
+ Gamma=(A+sqrt(A*A-1))**(1/n);
+ alpha=-((Gamma-1/Gamma)/2)*sine;
+ Beta=((Gamma+1/Gamma)/2)*cosine;
+ normal=alpha.*alpha+Beta.*Beta;
+ pols=omegar*(alpha-%i*Beta)./normal;
+ gain=abs(real(prod(pols)/prod(zers)));
+
+endfunction
diff --git a/modules/signal_processing/macros/zpell.bin b/modules/signal_processing/macros/zpell.bin
new file mode 100755
index 000000000..e4b61696c
--- /dev/null
+++ b/modules/signal_processing/macros/zpell.bin
Binary files differ
diff --git a/modules/signal_processing/macros/zpell.sci b/modules/signal_processing/macros/zpell.sci
new file mode 100755
index 000000000..ef3b90871
--- /dev/null
+++ b/modules/signal_processing/macros/zpell.sci
@@ -0,0 +1,55 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) INRIA - 1989 - F.Delebecque
+// Copyright (C) INRIA - 1996 - C. Bunks
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+function [ze,po,gain]=zpell(epsilon,A,omegac,omegar)
+ //[ze,po,gain]=zpell(epsilon,A,omegac,omegar)
+ //Poles and zeros of prototype lowpass elliptic filter
+ //gain is the gain of the filter
+ // epsilon :Ripple of filter in pass band (0<epsilon<1)
+ // A :Attenuation of filter in stop band (A>1)
+ // omegac :Pass band cut-off frequency in rd/s
+ // omegar :Stop band cut-off frequency in rd/s
+ // ze :Resulting zeros of filter
+ // po :Resulting poles of filter
+ // gain :Resulting gain of filter
+ //
+ //!
+
+ m1=(epsilon*epsilon)/(A*A-1);
+ K1=delip(1,sqrt(m1));
+ K1t=imag(delip(1/sqrt(m1),sqrt(m1)));
+ m=(omegac/omegar)^2;
+ K=delip(1,sqrt(m));
+ Kt=imag(delip(1/sqrt(m),sqrt(m)));
+ n=(K1t*K)/(K1*Kt);
+ order=round(n);
+ u0=-(Kt/K1t)*delip(sqrt(1/(1+epsilon*epsilon)),sqrt(1-m1));
+ even=2*int(order/2);
+ if order<>even then,
+ vmin=2*K/n;
+ else,
+ vmin=K/n;
+ end,
+ v=vmin:(2*K/n):K;
+ un=ones(1:max(size(v)));
+ zlambda=-un*Kt+%i*v;
+ plambda= u0*un+%i*v;
+ ze=%i*imag(%i*omegac*%sn(-%i*zlambda,m));
+ ze=[ze,conj(ze)];
+ po=%i*omegac*%sn(-%i*plambda,m);
+ po=[po,conj(po)];
+ if order<>even then,
+ po=[po,%i*omegac*%sn(-%i*u0,m)];
+ end,
+ gain=abs(real(prod(po))/real(prod(ze)));
+ if order==even then,
+ gain=gain/sqrt(1+epsilon^2);
+ end;
+endfunction
diff --git a/modules/signal_processing/sci_gateway/c/.deps/.dirstamp b/modules/signal_processing/sci_gateway/c/.deps/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.deps/.dirstamp
diff --git a/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-gw_signal.Plo b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-gw_signal.Plo
new file mode 100755
index 000000000..d6ba3ee38
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-gw_signal.Plo
@@ -0,0 +1,283 @@
+sci_gateway/c/libscisignal_processing_la-gw_signal.lo: \
+ sci_gateway/c/gw_signal.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h includes/gw_signal.h \
+ includes/dynlib_signal_processing.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/callFunctionFromGateway.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.h \
+ ../../modules/core/includes/core_math.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/values.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/float.h \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h /usr/include/wchar.h \
+ /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+includes/gw_signal.h:
+
+includes/dynlib_signal_processing.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/callFunctionFromGateway.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.h:
+
+../../modules/core/includes/core_math.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/values.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/float.h:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
diff --git a/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_amell.Plo b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_amell.Plo
new file mode 100755
index 000000000..d5dc0468e
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_amell.Plo
@@ -0,0 +1,62 @@
+sci_gateway/c/libscisignal_processing_la-sci_amell.lo: \
+ sci_gateway/c/sci_amell.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h includes/gw_signal.h \
+ includes/dynlib_signal_processing.h \
+ ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+includes/gw_signal.h:
+
+includes/dynlib_signal_processing.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_conv2.Plo b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_conv2.Plo
new file mode 100755
index 000000000..35431826b
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_conv2.Plo
@@ -0,0 +1,294 @@
+sci_gateway/c/libscisignal_processing_la-sci_conv2.lo: \
+ sci_gateway/c/sci_conv2.c /usr/include/stdc-predef.h \
+ ../../modules/core/includes/core_math.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h /usr/include/stdlib.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h includes/gw_signal.h \
+ includes/dynlib_signal_processing.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.h /usr/include/string.h \
+ /usr/include/xlocale.h /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h /usr/include/wchar.h \
+ /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/localization/includes/localization.h \
+ /usr/include/libintl.h /usr/include/locale.h \
+ /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h src/c/conv2.h
+
+/usr/include/stdc-predef.h:
+
+../../modules/core/includes/core_math.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/stdlib.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+includes/gw_signal.h:
+
+includes/dynlib_signal_processing.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/localization/includes/localization.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
+
+src/c/conv2.h:
diff --git a/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_corr.Plo b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_corr.Plo
new file mode 100755
index 000000000..2d5f58cff
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_corr.Plo
@@ -0,0 +1,62 @@
+sci_gateway/c/libscisignal_processing_la-sci_corr.lo: \
+ sci_gateway/c/sci_corr.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h includes/gw_signal.h \
+ includes/dynlib_signal_processing.h \
+ ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+includes/gw_signal.h:
+
+includes/dynlib_signal_processing.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_delip.Plo b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_delip.Plo
new file mode 100755
index 000000000..89a701df1
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_delip.Plo
@@ -0,0 +1,62 @@
+sci_gateway/c/libscisignal_processing_la-sci_delip.lo: \
+ sci_gateway/c/sci_delip.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h includes/gw_signal.h \
+ includes/dynlib_signal_processing.h \
+ ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+includes/gw_signal.h:
+
+includes/dynlib_signal_processing.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_ffir.Plo b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_ffir.Plo
new file mode 100755
index 000000000..f2ac0da8f
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_ffir.Plo
@@ -0,0 +1,62 @@
+sci_gateway/c/libscisignal_processing_la-sci_ffir.lo: \
+ sci_gateway/c/sci_ffir.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h includes/gw_signal.h \
+ includes/dynlib_signal_processing.h \
+ ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+includes/gw_signal.h:
+
+includes/dynlib_signal_processing.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_fft.Plo b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_fft.Plo
new file mode 100755
index 000000000..a06240148
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_fft.Plo
@@ -0,0 +1,61 @@
+sci_gateway/c/libscisignal_processing_la-sci_fft.lo: \
+ sci_gateway/c/sci_fft.c /usr/include/stdc-predef.h /usr/include/string.h \
+ /usr/include/features.h /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h includes/gw_signal.h \
+ includes/dynlib_signal_processing.h \
+ ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+includes/gw_signal.h:
+
+includes/dynlib_signal_processing.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_fiir.Plo b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_fiir.Plo
new file mode 100755
index 000000000..723f8352c
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_fiir.Plo
@@ -0,0 +1,62 @@
+sci_gateway/c/libscisignal_processing_la-sci_fiir.lo: \
+ sci_gateway/c/sci_fiir.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h includes/gw_signal.h \
+ includes/dynlib_signal_processing.h \
+ ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+includes/gw_signal.h:
+
+includes/dynlib_signal_processing.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_remez.Plo b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_remez.Plo
new file mode 100755
index 000000000..73d18961f
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_remez.Plo
@@ -0,0 +1,62 @@
+sci_gateway/c/libscisignal_processing_la-sci_remez.lo: \
+ sci_gateway/c/sci_remez.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h includes/gw_signal.h \
+ includes/dynlib_signal_processing.h \
+ ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+includes/gw_signal.h:
+
+includes/dynlib_signal_processing.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_rpem.Plo b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_rpem.Plo
new file mode 100755
index 000000000..64cc8ee0d
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_rpem.Plo
@@ -0,0 +1,62 @@
+sci_gateway/c/libscisignal_processing_la-sci_rpem.lo: \
+ sci_gateway/c/sci_rpem.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h includes/gw_signal.h \
+ includes/dynlib_signal_processing.h \
+ ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+includes/gw_signal.h:
+
+includes/dynlib_signal_processing.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_syredi.Plo b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_syredi.Plo
new file mode 100755
index 000000000..988638ff5
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.deps/libscisignal_processing_la-sci_syredi.Plo
@@ -0,0 +1,62 @@
+sci_gateway/c/libscisignal_processing_la-sci_syredi.lo: \
+ sci_gateway/c/sci_syredi.c /usr/include/stdc-predef.h \
+ /usr/include/string.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h /usr/include/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h includes/gw_signal.h \
+ includes/dynlib_signal_processing.h \
+ ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+includes/gw_signal.h:
+
+includes/dynlib_signal_processing.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/signal_processing/sci_gateway/c/.dirstamp b/modules/signal_processing/sci_gateway/c/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.dirstamp
diff --git a/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-gw_signal.o b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-gw_signal.o
new file mode 100755
index 000000000..4112b38b0
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-gw_signal.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_amell.o b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_amell.o
new file mode 100755
index 000000000..4789e8bd3
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_amell.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_conv2.o b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_conv2.o
new file mode 100755
index 000000000..33d02fc5e
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_conv2.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_corr.o b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_corr.o
new file mode 100755
index 000000000..3b122e9b5
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_corr.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_delip.o b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_delip.o
new file mode 100755
index 000000000..a5869ed75
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_delip.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_ffir.o b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_ffir.o
new file mode 100755
index 000000000..326368e1e
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_ffir.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_fft.o b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_fft.o
new file mode 100755
index 000000000..c00b5635d
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_fft.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_fiir.o b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_fiir.o
new file mode 100755
index 000000000..40e89209c
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_fiir.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_remez.o b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_remez.o
new file mode 100755
index 000000000..3598d41cd
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_remez.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_rpem.o b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_rpem.o
new file mode 100755
index 000000000..7f41bbfc4
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_rpem.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_syredi.o b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_syredi.o
new file mode 100755
index 000000000..af53fb0cd
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/.libs/libscisignal_processing_la-sci_syredi.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/c/gw_signal.c b/modules/signal_processing/sci_gateway/c/gw_signal.c
new file mode 100755
index 000000000..910a34207
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/gw_signal.c
@@ -0,0 +1,45 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006 - INRIA - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <string.h>
+#include "gw_signal.h"
+#include "callFunctionFromGateway.h"
+#include "api_scilab.h"
+#include "MALLOC.h"
+/*--------------------------------------------------------------------------*/
+static gw_generic_table Tab[] =
+{
+ {C2F(sci_ffir), "ffir"},
+ {C2F(sci_fft), "fft"},
+ {C2F(sci_fiir), "fiir"},
+ {C2F(sci_corr), "corr"},
+ {C2F(sci_rpem), "rpem"},
+ {C2F(sci_amell), "amell"},
+ {C2F(sci_delip), "delip"},
+ {C2F(sci_remez), "remez"},
+ {C2F(sci_syredi), "syredi"},
+ {sci_conv2, "conv2"}
+
+};
+/*--------------------------------------------------------------------------*/
+int gw_signal_processing(void)
+{
+ if (pvApiCtx == NULL)
+ {
+ pvApiCtx = (StrCtx*)MALLOC(sizeof(StrCtx));
+ }
+
+ pvApiCtx->pstName = (char*)Tab[Fin - 1].name;
+ callFunctionFromGateway(Tab, SIZE_CURRENT_GENERIC_TABLE(Tab));
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-gw_signal.lo b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-gw_signal.lo
new file mode 100755
index 000000000..537277954
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-gw_signal.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscisignal_processing_la-gw_signal.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscisignal_processing_la-gw_signal.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_amell.lo b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_amell.lo
new file mode 100755
index 000000000..c5e7bf654
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_amell.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscisignal_processing_la-sci_amell.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscisignal_processing_la-sci_amell.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_conv2.lo b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_conv2.lo
new file mode 100755
index 000000000..f6d3838c7
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_conv2.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscisignal_processing_la-sci_conv2.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscisignal_processing_la-sci_conv2.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_corr.lo b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_corr.lo
new file mode 100755
index 000000000..4852eb218
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_corr.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscisignal_processing_la-sci_corr.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscisignal_processing_la-sci_corr.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_delip.lo b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_delip.lo
new file mode 100755
index 000000000..48f4287c1
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_delip.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscisignal_processing_la-sci_delip.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscisignal_processing_la-sci_delip.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_ffir.lo b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_ffir.lo
new file mode 100755
index 000000000..d98c473a8
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_ffir.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscisignal_processing_la-sci_ffir.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscisignal_processing_la-sci_ffir.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_fft.lo b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_fft.lo
new file mode 100755
index 000000000..78862270c
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_fft.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscisignal_processing_la-sci_fft.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscisignal_processing_la-sci_fft.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_fiir.lo b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_fiir.lo
new file mode 100755
index 000000000..9cc172f70
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_fiir.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscisignal_processing_la-sci_fiir.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscisignal_processing_la-sci_fiir.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_remez.lo b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_remez.lo
new file mode 100755
index 000000000..61d7a48e3
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_remez.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscisignal_processing_la-sci_remez.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscisignal_processing_la-sci_remez.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_rpem.lo b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_rpem.lo
new file mode 100755
index 000000000..15a9741ab
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_rpem.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscisignal_processing_la-sci_rpem.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscisignal_processing_la-sci_rpem.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_syredi.lo b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_syredi.lo
new file mode 100755
index 000000000..de1e853c6
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/libscisignal_processing_la-sci_syredi.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscisignal_processing_la-sci_syredi.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscisignal_processing_la-sci_syredi.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/c/sci_amell.c b/modules/signal_processing/sci_gateway/c/sci_amell.c
new file mode 100755
index 000000000..95b4ab1ff
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/sci_amell.c
@@ -0,0 +1,23 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006 - INRIA - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <string.h>
+#include "gw_signal.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(sciamell)(char *id, unsigned long fname_len);
+/*--------------------------------------------------------------------------*/
+int C2F(sci_amell)(char *fname, unsigned long fname_len)
+{
+ C2F(sciamell)(fname, fname_len);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/signal_processing/sci_gateway/c/sci_conv2.c b/modules/signal_processing/sci_gateway/c/sci_conv2.c
new file mode 100755
index 000000000..e810d5973
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/sci_conv2.c
@@ -0,0 +1,521 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - INRIA - Serge STEER
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "core_math.h"
+#include "gw_signal.h"
+#include "MALLOC.h"
+#include "api_scilab.h"
+#include "localization.h"
+#include "Scierror.h"
+#include "conv2.h"
+/*--------------------------------------------------------------------------*/
+int sci_conv2(char *fname, unsigned long fname_len)
+{
+ SciErr sciErr;
+ int *piAddr = NULL;
+ char *option = NULL;
+ int iopt = 1;
+ double *Outr = NULL, *Outi = NULL;
+ int mOut = 0, nOut = 0;
+ int iType = 0;
+ int edgM = 0, edgN = 0;
+ int rhs = Rhs;
+
+ /* Check if last argument is one of the string "full", "same","valid" */
+ sciErr = getVarAddressFromPosition(pvApiCtx, Rhs, &piAddr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, Rhs);
+ return 0;
+ }
+
+ if (isStringType(pvApiCtx, piAddr))
+ {
+ CheckRhs(3, 4);
+ if (isScalar(pvApiCtx, piAddr))
+ {
+ if (getAllocatedSingleString(pvApiCtx, piAddr, &option) == 0)
+ {
+ if (strcmp("full", option) == 0)
+ {
+ iopt = 1;
+ }
+ else if (strcmp("same", option) == 0)
+ {
+ iopt = 2;
+ }
+ else if (strcmp("valid", option) == 0)
+ {
+ iopt = 3;
+ }
+ else
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"),
+ fname, Rhs, "\"full\", \"same\"", "\"valid\"");
+ freeAllocatedSingleString(option);
+ option = NULL;
+ return 0;
+ }
+ freeAllocatedSingleString(option);
+ option = NULL;
+ rhs = Rhs - 1;
+ }
+ else
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"),
+ fname, Rhs, "\"full\", \"same\"", "\"valid\"");
+ return 0;
+ }
+ }
+ }
+ else
+ {
+ CheckRhs(2, 3);
+ }
+
+ if (rhs == 3)
+ {
+ /*separable conv2(C,R,A)*/
+ double *Cr = NULL, *Ci = NULL;
+ double *Rr = NULL, *Ri = NULL;
+ double *Ar = NULL, *Ai = NULL;
+ int mC = 0, nC = 0, mR = 0, nR = 0, mA = 0, nA = 0;
+
+ /* get and check C */
+ sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
+ return 0;
+ }
+
+ //check type
+ sciErr = getVarType(pvApiCtx, piAddr, &iType);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
+ return 0;
+ }
+
+ if (iType != sci_matrix)
+ {
+ Scierror(999, _("%s: Wrong type for argument #%d: Real vector expected.\n"),
+ fname, 1);
+ return 0;
+ }
+
+ //get complexity
+ if (isVarComplex(pvApiCtx, piAddr))
+ {
+ sciErr = getComplexMatrixOfDouble(pvApiCtx, piAddr, &mC, &nC, &Cr, &Ci);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
+ return 0;
+ }
+
+ }
+ else
+ {
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &mC, &nC, &Cr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
+ return 0;
+ }
+
+ }
+ if (mC > 1 && nC > 1)
+ {
+ /*check if vector*/
+ Scierror(999, _("%s: Wrong type for argument #%d: Real or complex vector expected.\n"),
+ fname, 1);
+ return 0;
+ }
+ mC = mC * nC;
+
+ /* get and check R */
+ sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 2);
+ return 0;
+ }
+
+ //check type
+ sciErr = getVarType(pvApiCtx, piAddr, &iType);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 2);
+ return 0;
+ }
+
+ if (iType != sci_matrix)
+ {
+ Scierror(999, _("%s: Wrong type for argument #%d: Real or complex vector expected.\n"),
+ fname, 2);
+ return 0;
+ }
+
+ //get complexity
+ if (isVarComplex(pvApiCtx, piAddr))
+ {
+ sciErr = getComplexMatrixOfDouble(pvApiCtx, piAddr, &mR, &nR, &Rr, &Ri);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 2);
+ return 0;
+ }
+
+ }
+ else
+ {
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &mR, &nR, &Rr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 2);
+ return 0;
+ }
+
+ }
+
+ if (mR > 1 && nR > 1)
+ {
+ /*check if vector*/
+ Scierror(999, _("%s: Wrong type for argument #%d: Real vector expected.\n"),
+ fname, 2);
+ return 0;
+ }
+
+ nR = nR * mR;
+ /* get and check A */
+ sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 3);
+ return 0;
+ }
+
+ //check type
+ sciErr = getVarType(pvApiCtx, piAddr, &iType);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 3);
+ return 0;
+ }
+
+ if (iType != sci_matrix)
+ {
+ Scierror(999, _("%s: Wrong type for argument #%d: Real or complex matrix expected.\n"),
+ fname, 3);
+ return 0;
+ }
+
+ //get complexity
+ if (isVarComplex(pvApiCtx, piAddr))
+ {
+ sciErr = getComplexMatrixOfDouble(pvApiCtx, piAddr, &mA, &nA, &Ar, &Ai);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 3);
+ return 0;
+ }
+
+ }
+ else
+ {
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &mA, &nA, &Ar);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 3);
+ return 0;
+ }
+
+ }
+
+ //Compute result sizes
+ if (iopt == 1 )
+ {
+ if (mC == 0 || nR == 0)
+ {
+ mOut = mA;
+ nOut = nA;
+ }
+ else
+ {
+ mOut = mA + mC - 1;
+ nOut = nA + nR - 1;
+ }
+ edgM = mC - 1;
+ edgN = nR - 1;
+ }
+ else if ( iopt == 2 )
+ {
+ mOut = mA;
+ nOut = nA;
+ edgM = ( mC - 1) / 2;
+ edgN = ( nR - 1) / 2;
+ }
+ else if (iopt == 3)
+ {
+ if (mC == 0 || nR == 0)
+ {
+ mOut = mA;
+ nOut = nA;
+ }
+ else
+ {
+ mOut = Max(0, mA - mC + 1);
+ nOut = Max(0, nA - nR + 1);
+ }
+ edgM = edgN = 0;
+ }
+
+ if (Ri == NULL && Ci == NULL && Ai == NULL)
+ {
+ //real case
+ double *Tr = NULL;
+ //Allocate result
+ sciErr = allocMatrixOfDouble(pvApiCtx, Rhs + 1, mOut, nOut, &Outr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 0;
+ }
+
+ sciErr = allocMatrixOfDouble(pvApiCtx, Rhs + 2, 1, nA, &Tr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ return 0;
+ }
+
+ conv2_separable_R(Rr, nR, Cr, mC, Ar, mA, nA, Outr, mOut, nOut, edgM, edgN, Tr);
+ }
+ else
+ {
+ double *Tr = NULL, *Ti = NULL;
+ //Allocate result
+ sciErr = allocComplexMatrixOfDouble(pvApiCtx, Rhs + 1, mOut, nOut, &Outr, &Outi);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ return 0;
+ }
+
+ sciErr = allocComplexMatrixOfDouble(pvApiCtx, Rhs + 2, 1, nA, &Tr, &Ti);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ return 0;
+ }
+
+ conv2_separable_C(Rr, Ri, nR, Cr, Ci, mC, Ar, Ai, mA, nA, Outr, Outi, mOut, nOut, edgM, edgN, Tr, Ti);
+ }
+ }
+ else
+ {
+ /*conv2(A,B)*/
+ double *Ar = NULL, *Ai = NULL;
+ double *Br = NULL, *Bi = NULL;
+ int mA, nA, mB, nB;
+
+ /* get and check A */
+ sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
+ return 0;
+ }
+
+ //check type
+ sciErr = getVarType(pvApiCtx, piAddr, &iType);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
+ return 0;
+ }
+
+ if (iType != sci_matrix)
+ {
+ Scierror(999, _("%s: Wrong type for argument #%d: Real or complex matrix expected.\n"),
+ fname, 1);
+ return 0;
+ }
+
+ //get complexity
+ if (isVarComplex(pvApiCtx, piAddr))
+ {
+ sciErr = getComplexMatrixOfDouble(pvApiCtx, piAddr, &mA, &nA, &Ar, &Ai);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
+ return 0;
+ }
+
+ }
+ else
+ {
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &mA, &nA, &Ar);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
+ return 0;
+ }
+
+ }
+
+ /* get and check B */
+ sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 2);
+ return 0;
+ }
+
+ //check type
+ sciErr = getVarType(pvApiCtx, piAddr, &iType);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 2);
+ return 0;
+ }
+
+ if (iType != sci_matrix)
+ {
+ Scierror(999, _("%s: Wrong type for argument #%d: Real or complex matrix expected.\n"),
+ fname, 2);
+ return 0;
+ }
+
+ //get complexity
+ if (isVarComplex(pvApiCtx, piAddr))
+ {
+ sciErr = getComplexMatrixOfDouble(pvApiCtx, piAddr, &mB, &nB, &Br, &Bi);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 2);
+ return 0;
+ }
+
+ }
+ else
+ {
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &mB, &nB, &Br);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 2);
+ return 0;
+ }
+
+ }
+
+ if (iopt == 1)
+ {
+ if (mA == 0)
+ {
+ mOut = mB;
+ nOut = nB;
+ }
+ else if (mB == 0)
+ {
+ mOut = mA;
+ nOut = nA;
+ }
+ else
+ {
+ mOut = mA + Max(0, mB - 1);
+ nOut = nA + Max(0, nB - 1);
+ }
+ edgM = mB - 1;
+ edgN = nB - 1;
+ }
+ else if (iopt == 2)
+ {
+ mOut = mA;
+ nOut = nA;
+ edgM = ( mB - 1) / 2;
+ edgN = ( nB - 1) / 2;
+ }
+ else if (iopt == 3)
+ {
+ if (mB == 0)
+ {
+ mOut = mA;
+ nOut = nA;
+ }
+ else
+ {
+ mOut = Max(0, mA - mB + 1);
+ nOut = Max(0, nA - nB + 1);
+ }
+ edgM = edgN = 0;
+ }
+
+ if (Ai == NULL && Bi == NULL)
+ {
+ //real case
+ //Allocate result
+ sciErr = allocMatrixOfDouble(pvApiCtx, Rhs + 1, mOut, nOut, &Outr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ return 0;
+ }
+
+ conv2_R(Ar, mA, nA, Br, mB, nB, Outr, mOut, nOut, edgM, edgN);
+ }
+ else
+ {
+ //Allocate result
+ sciErr = allocComplexMatrixOfDouble(pvApiCtx, Rhs + 1, mOut, nOut, &Outr, &Outi);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ return 0;
+ }
+
+ conv2_C(Ar, Ai, mA, nA, Br, Bi, mB, nB, Outr, Outi, mOut, nOut, edgM, edgN);
+ }
+ }
+
+ LhsVar(1) = Rhs + 1;
+ PutLhsVar();
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/signal_processing/sci_gateway/c/sci_corr.c b/modules/signal_processing/sci_gateway/c/sci_corr.c
new file mode 100755
index 000000000..98df06cd7
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/sci_corr.c
@@ -0,0 +1,23 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006 - INRIA - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <string.h>
+#include "gw_signal.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(scicorr)(char *id, unsigned long fname_len );
+/*--------------------------------------------------------------------------*/
+int C2F(sci_corr)(char *fname, unsigned long fname_len)
+{
+ C2F(scicorr)(fname, fname_len);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/signal_processing/sci_gateway/c/sci_delip.c b/modules/signal_processing/sci_gateway/c/sci_delip.c
new file mode 100755
index 000000000..8b88572e8
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/sci_delip.c
@@ -0,0 +1,23 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006 - INRIA - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <string.h>
+#include "gw_signal.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(scidelip)(char *id, unsigned long fname_len);
+/*--------------------------------------------------------------------------*/
+int C2F(sci_delip)(char *fname, unsigned long fname_len)
+{
+ C2F(scidelip)(fname, fname_len);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/signal_processing/sci_gateway/c/sci_ffir.c b/modules/signal_processing/sci_gateway/c/sci_ffir.c
new file mode 100755
index 000000000..0ec5bea0c
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/sci_ffir.c
@@ -0,0 +1,23 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006 - INRIA - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <string.h>
+#include "gw_signal.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(scifiir)(char *id, unsigned long fname_len);
+/*--------------------------------------------------------------------------*/
+int C2F(sci_ffir)(char *fname, unsigned long fname_len)
+{
+ C2F(scifiir)(fname, fname_len);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/signal_processing/sci_gateway/c/sci_fft.c b/modules/signal_processing/sci_gateway/c/sci_fft.c
new file mode 100755
index 000000000..459d245dd
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/sci_fft.c
@@ -0,0 +1,23 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006 - INRIA - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <string.h>
+#include "gw_signal.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(scifft)(char *id, unsigned long fname_len);
+/*--------------------------------------------------------------------------*/
+int C2F(sci_fft)(char *fname, unsigned long fname_len)
+{
+ C2F(scifft)(fname, fname_len);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/signal_processing/sci_gateway/c/sci_fiir.c b/modules/signal_processing/sci_gateway/c/sci_fiir.c
new file mode 100755
index 000000000..70ccc1af2
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/sci_fiir.c
@@ -0,0 +1,23 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006 - INRIA - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <string.h>
+#include "gw_signal.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(scifiir)(char *id, unsigned long fname_len);
+/*--------------------------------------------------------------------------*/
+int C2F(sci_fiir)(char *fname, unsigned long fname_len)
+{
+ C2F(scifiir)(fname, fname_len);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/signal_processing/sci_gateway/c/sci_remez.c b/modules/signal_processing/sci_gateway/c/sci_remez.c
new file mode 100755
index 000000000..4af8b36f2
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/sci_remez.c
@@ -0,0 +1,23 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006 - INRIA - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <string.h>
+#include "gw_signal.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(sciremez)(char *id, unsigned long fname_len);
+/*--------------------------------------------------------------------------*/
+int C2F(sci_remez)(char *fname, unsigned long fname_len)
+{
+ C2F(sciremez)(fname, fname_len);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/signal_processing/sci_gateway/c/sci_rpem.c b/modules/signal_processing/sci_gateway/c/sci_rpem.c
new file mode 100755
index 000000000..3b6dff4af
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/sci_rpem.c
@@ -0,0 +1,23 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006 - INRIA - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <string.h>
+#include "gw_signal.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(scirpem)(char *id, unsigned long fname_len);
+/*--------------------------------------------------------------------------*/
+int C2F(sci_rpem)(char *fname, unsigned long fname_len)
+{
+ C2F(scirpem)(fname, fname_len);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/signal_processing/sci_gateway/c/sci_syredi.c b/modules/signal_processing/sci_gateway/c/sci_syredi.c
new file mode 100755
index 000000000..cad754039
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/c/sci_syredi.c
@@ -0,0 +1,23 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006 - INRIA - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <string.h>
+#include "gw_signal.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(scisyredi)(char *id, unsigned long fname_len);
+/*--------------------------------------------------------------------------*/
+int C2F(sci_syredi)(char *fname, unsigned long fname_len)
+{
+ C2F(scisyredi)(fname, fname_len);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/signal_processing/sci_gateway/fortran/.deps/.dirstamp b/modules/signal_processing/sci_gateway/fortran/.deps/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/.deps/.dirstamp
diff --git a/modules/signal_processing/sci_gateway/fortran/.dirstamp b/modules/signal_processing/sci_gateway/fortran/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/.dirstamp
diff --git a/modules/signal_processing/sci_gateway/fortran/.libs/Ex-corr.o b/modules/signal_processing/sci_gateway/fortran/.libs/Ex-corr.o
new file mode 100755
index 000000000..683375995
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/.libs/Ex-corr.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/fortran/.libs/bgetx.o b/modules/signal_processing/sci_gateway/fortran/.libs/bgetx.o
new file mode 100755
index 000000000..7a2ae7733
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/.libs/bgetx.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/fortran/.libs/bgety.o b/modules/signal_processing/sci_gateway/fortran/.libs/bgety.o
new file mode 100755
index 000000000..4e2ac0cdc
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/.libs/bgety.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_amell.o b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_amell.o
new file mode 100755
index 000000000..903c5a9b6
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_amell.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_corr.o b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_corr.o
new file mode 100755
index 000000000..df0ffe49d
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_corr.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_delip.o b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_delip.o
new file mode 100755
index 000000000..3b97b2812
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_delip.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_fft.o b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_fft.o
new file mode 100755
index 000000000..42604b008
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_fft.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_fiir.o b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_fiir.o
new file mode 100755
index 000000000..a33068c8b
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_fiir.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_remez.o b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_remez.o
new file mode 100755
index 000000000..92d96a385
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_remez.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_rpem.o b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_rpem.o
new file mode 100755
index 000000000..dbfa48d7e
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_rpem.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_syredi.o b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_syredi.o
new file mode 100755
index 000000000..1282b24e5
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/.libs/sci_f_syredi.o
Binary files differ
diff --git a/modules/signal_processing/sci_gateway/fortran/Ex-corr.f b/modules/signal_processing/sci_gateway/fortran/Ex-corr.f
new file mode 100755
index 000000000..2e1cf4f40
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/Ex-corr.f
@@ -0,0 +1,28 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+ subroutine corexx(x, incr, istart)
+ integer incr,istart
+ double precision x(incr)
+ do 10 i = istart,istart+incr-1
+ x(i-istart+1)= sin(dble(i))
+ 10 continue
+ return
+ end
+
+
+ subroutine corexy(y, incr, istart)
+ integer incr,istart
+ double precision y(incr)
+ do 10 i = istart,istart+incr-1
+ y(i-istart+1)= cos(dble(i))
+ 10 continue
+ return
+ end
+
diff --git a/modules/signal_processing/sci_gateway/fortran/Ex-corr.lo b/modules/signal_processing/sci_gateway/fortran/Ex-corr.lo
new file mode 100755
index 000000000..4481d13c1
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/Ex-corr.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/Ex-corr.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/Ex-corr.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/fortran/bgetx.f b/modules/signal_processing/sci_gateway/fortran/bgetx.f
new file mode 100755
index 000000000..19d244f16
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/bgetx.f
@@ -0,0 +1,101 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+ subroutine bgetx(x, incr, istart)
+c ======================================================================
+c macros or list externals for corr
+c ======================================================================
+
+
+
+ INCLUDE 'stack.h'
+ integer iadr,sadr
+ double precision x(*)
+ character*(nlgh+1) namex,namey
+ common / corrname / namex,namey
+ common / corradr / kgxtop,kgytop,ksec,kisc
+ common / corrtyp / itxcorr,itycorr
+ common/ iercorr /iero
+ logical allowptr
+
+ data mlhs/1/
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c number of arguments of the external
+ mrhs=2
+
+c external is a Scilab function
+
+c on return iero=1 is used to notify to the ode solver that
+c scilab was not able to evaluate the external
+ iero=1
+
+c Putting Fortran arguments on Scilab stack
+c+
+ call ftob(dble(incr),1,ksec)
+ if(err.gt.0.or.err1.gt.0) return
+ call ftob(dble(istart),1,kisc)
+ if(err.gt.0.or.err1.gt.0) return
+c+
+ if(itxcorr.ne.15) then
+ fin=lstk(kgxtop)
+ else
+ ils=iadr(lstk(kgxtop))
+ nelt=istk(ils+1)
+ l=sadr(ils+3+nelt)
+ ils=ils+2
+c external adress
+ fin=l
+c Extra arguments in calling list that we store on the Scilab stack
+ call extlarg(l,ils,nelt,mrhs)
+ if(err.gt.0.or.err1.gt.0) return
+ endif
+c Macro execution
+ pt=pt+1
+ if(pt.gt.psiz) then
+ call error(26)
+ return
+ endif
+ ids(1,pt)=lhs
+ ids(2,pt)=rhs
+ rstk(pt)=1001
+ lhs=mlhs
+ rhs=mrhs
+ niv=niv+1
+ fun=0
+c
+c
+ icall=5
+
+ include 'callinter.h.f'
+c
+ 200 lhs=ids(1,pt)
+ rhs=ids(2,pt)
+ pt=pt-1
+ niv=niv-1
+c+
+c transfert des variables de sortie vers fortran
+ call btof(x,incr)
+ if(err.gt.0.or.err1.gt.0) return
+c+
+c normal return iero set to 0
+ iero=0
+ return
+c
+ 9999 continue
+ niv=niv-1
+ if(err1.gt.0) then
+ lhs=ids(1,pt)
+ rhs=ids(2,pt)
+ pt=pt-1
+ fun=0
+ endif
+ return
+ end
diff --git a/modules/signal_processing/sci_gateway/fortran/bgetx.lo b/modules/signal_processing/sci_gateway/fortran/bgetx.lo
new file mode 100755
index 000000000..27df421b1
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/bgetx.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/bgetx.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/bgetx.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/fortran/bgety.f b/modules/signal_processing/sci_gateway/fortran/bgety.f
new file mode 100755
index 000000000..7ed3f1b52
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/bgety.f
@@ -0,0 +1,101 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+ subroutine bgety(y, incr, istart)
+c ======================================================================
+c macros or list externals for corr
+c ======================================================================
+
+
+ INCLUDE 'stack.h'
+ integer iadr,sadr
+ double precision y(*)
+ character*(nlgh+1) namex,namey
+ common / corrname / namex,namey
+ common / corradr / kgxtop,kgytop,ksec,kisc
+ common / corrtyp / itxcorr,itycorr
+ common/ iercorr /iero
+ logical allowptr
+
+ data mlhs/1/
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c number of arguments of the external
+ mrhs=2
+
+c external is a Scilab function
+
+c on return iero=1 is used to notify to the ode solver that
+c scilab was not able to evaluate the external
+ iero=1
+
+c Putting Fortran arguments on Scilab stack
+c+
+ call ftob(dble(incr),1,ksec)
+ if(err.gt.0.or.err1.gt.0) return
+ call ftob(dble(istart),1,kisc)
+ if(err.gt.0.or.err1.gt.0) return
+c+
+ if(itycorr.ne.15) then
+ fin=lstk(kgytop)
+ else
+ ils=iadr(lstk(kgytop))
+ nelt=istk(ils+1)
+ l=sadr(ils+3+nelt)
+ ils=ils+2
+c external adress
+ fin=l
+c Extra arguments in calling list that we store on the Scilab stack
+ call extlarg(l,ils,nelt,mrhs)
+ if(err.gt.0.or.err1.gt.0) return
+ endif
+c Macro execution
+ pt=pt+1
+ if(pt.gt.psiz) then
+ call error(26)
+ return
+ endif
+ ids(1,pt)=lhs
+ ids(2,pt)=rhs
+ rstk(pt)=1001
+ lhs=mlhs
+ rhs=mrhs
+ niv=niv+1
+ fun=0
+c
+c
+ icall=5
+
+ include 'callinter.h.f'
+c
+ 200 lhs=ids(1,pt)
+ rhs=ids(2,pt)
+ pt=pt-1
+ niv=niv-1
+c+
+c transfert des variables de sortie vers fortran
+ call btof(y,incr)
+ if(err.gt.0.or.err1.gt.0) return
+c normal return iero set to 0
+ iero=0
+ return
+c
+ 9999 continue
+ niv=niv-1
+ if(err1.gt.0) then
+ lhs=ids(1,pt)
+ rhs=ids(2,pt)
+ pt=pt-1
+ fun=0
+ endif
+ return
+ end
+
+
diff --git a/modules/signal_processing/sci_gateway/fortran/bgety.lo b/modules/signal_processing/sci_gateway/fortran/bgety.lo
new file mode 100755
index 000000000..4cb511e30
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/bgety.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/bgety.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/bgety.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_amell.f b/modules/signal_processing/sci_gateway/fortran/sci_f_amell.f
new file mode 100755
index 000000000..edca8035e
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_amell.f
@@ -0,0 +1,57 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+c =======================================
+ subroutine sciamell(fname)
+c
+ include 'stack.h'
+ character*(*) fname
+ integer lw
+ integer iadr,sadr
+
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+
+ if(rhs.ne.2) then
+ call error(39)
+ return
+ endif
+c
+ il=iadr(lstk(top))
+ itv=istk(il)
+ m=istk(il+1)
+ n=istk(il+2)
+ it=istk(il+3)
+ l1=sadr(il+4)
+ if(stk(l1).lt.0.or.stk(l1).gt.1)then
+ err=rhs
+ call error(36)
+ return
+ endif
+ il=iadr(lstk(top-1))
+ itv=istk(il)
+ m=istk(il+1)
+ n=istk(il+2)
+ length=m*n
+ it=istk(il+3)
+ l=sadr(il+4)
+ lw=lstk(top+1)
+ err=lw+length-lstk(bot)
+ if(err.gt.0)then
+ call error(17)
+ return
+ endif
+ call amell(stk(l),stk(l1),stk(lw),length)
+ call unsfdcopy(length,stk(lw),1,stk(l),1)
+ top=top-1
+ lstk(top+1)=l+length
+
+ return
+ end
+c =======================================
+
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_amell.lo b/modules/signal_processing/sci_gateway/fortran/sci_f_amell.lo
new file mode 100755
index 000000000..77b853fb6
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_amell.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_amell.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/sci_f_amell.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_corr.f b/modules/signal_processing/sci_gateway/fortran/sci_f_corr.f
new file mode 100755
index 000000000..e89d9be42
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_corr.f
@@ -0,0 +1,242 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+c =======================================
+ subroutine scicorr(fname)
+c implicit undefined (a-z)
+ include 'stack.h'
+ character*(*) fname
+ logical checkrhs,getrmat,getscalar
+ logical cremat,getexternal,getmat
+ integer m1,n1,lr1,m2,n2,lr2,lr,top2, iadr,sadr
+ integer topk,topw,gettype
+ double precision yyy
+c
+ logical fort,type
+ integer fini,update
+c
+ external dgetx,dgety,setdgetx,setdgety
+ external bgetx,bgety
+ character*(nlgh+1) namex,namey
+ common / corrname / namex,namey
+ common / corradr / kgxtop,kgytop,ksec,kisc
+ common / corrtyp / itxcorr,itycorr
+ common/ iercorr /iero
+c
+ data fini/15/,update/30/
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c calcul de correlations
+ iero=0
+ topk=top
+ topw=top+1
+ top2=top-rhs+1
+ il1=iadr(lstk(top2))
+ if(istk(il1).eq.10) then
+ ich=il1+5+istk(il1+1)*istk(il1+2)
+ ich=istk(ich)
+ if(ich.eq.fini) goto 41
+ if(ich.eq.update) goto 42
+ endif
+C usual case [cov,mean]=corr(x,[y],nlags)
+C ------------------------------------------
+ if (.not.checkrhs(fname,2,3)) return
+C getting nlags (last argument)
+ if(.not.getscalar(fname,topk,top,lr))return
+ lag=int(stk(lr))
+ if (.not.cremat(fname,topk+1,0,1,lag,lcxy,lc)) return
+ if (.not.cremat(fname,topk+2,0,1,2,lrxy,lc)) return
+
+ if(rhs.eq.3) then
+ top=top-1
+ if (.not.getrmat(fname,topk,top,m2,n2,lr2)) return
+ ny= m2*n2
+ top=top-1
+ if (.not.getrmat(fname,topk,top,m1,n1,lr1)) return
+ nx= m1*n1
+ if(nx.ne.ny) then
+ call error(60)
+ return
+ endif
+ endif
+ if(rhs.eq.2) then
+ top=top-1
+ if (.not.getrmat(fname,topk,top,m1,n1,lr1)) return
+ nx= m1*n1
+ lr2=lr1
+ endif
+ call tscccf(stk(lr1),stk(lr2),nx,stk(lcxy),stk(lrxy),
+ $ lag,ierr)
+ if(ierr.eq.-1) then
+ buf='too many coefficients are required'
+ call error(999)
+ return
+ endif
+ top=topk-rhs+1
+ call copyobj(fname,topk+1,top)
+ if(lhs.eq.2) then
+ top=top+1
+ if (.not.cremat(fname,top,0,1,rhs-1,lr,lc)) return
+ call unsfdcopy(rhs-1,stk(lrxy),1,stk(lr),1)
+ endif
+ return
+C ----------------------
+C Special case using fft
+C [cov,mean]=corr('fft',xmacro,[ymacro],n,sect)
+C ----------------------
+ 41 continue
+c methode de la fft
+ if (.not.checkrhs(fname,4,5)) return
+c -------last argument (sect)
+ if(.not.getscalar(fname,topk,top,lr))return
+ lag=int(stk(lr))
+ mm=2*lag
+c --------total size
+ kntop=top-1
+ if(.not.getscalar(fname,topk,kntop,lr))return
+ n=int(stk(lr))
+c -------external for xmacro
+ kgxtop= top-rhs+2
+ itxcorr=gettype(kgxtop)
+ if (.not.getexternal(fname,topk,kgxtop,namex,fort,
+ $ setdgetx)) return
+ mode=2
+c -------external for ymacro
+ if(rhs.eq.5) then
+ kgytop= top-rhs+3
+ itycorr=gettype(kgytop)
+ if (.not.getexternal(fname,topk,kgytop,namey,type,
+ $ setdgety)) return
+ if( type.neqv.fort) then
+ err=3
+ call error(55)
+ return
+ endif
+ mode=3
+ endif
+c Working areas
+ if (.not.cremat(fname,top+1,0,1,mm,lxa,lc)) return
+ if (.not.cremat(fname,top+2,0,1,mm,lxr,lc)) return
+ if (.not.cremat(fname,top+3,0,1,mm,lxi,lc)) return
+ if (.not.cremat(fname,top+4,0,1,sadr(mm),lzr,lc)) return
+ if (.not.cremat(fname,top+5,0,1,sadr(mm),lzi,lc)) return
+ top=top+6
+ ksec=top
+ if (.not.cremat(fname,ksec,0,1,1,lr,lc))return
+ kisc=top+1
+ if (.not.cremat(fname,kisc,0,1,1,lr,lc))return
+ if(fort) then
+ call cmpse2(mm,n,mode,dgetx,dgety,stk(lxa),stk(lxr),
+ 1 stk(lxi),stk(lzr),stk(lzi),ierr)
+ if(ierr.gt.0) then
+ buf='fft call : needs power of two!'
+ call error(999)
+ return
+ endif
+ else
+ call cmpse2(mm,n,mode,bgetx,bgety,stk(lxa),stk(lxr),
+ 1 stk(lxi),stk(lzr),stk(lzi),ierr)
+ if(err.gt.0.or.err1.gt.0) return
+ if(ierr.gt.0) then
+ buf='fft call : needs a power of 2'
+ call error(999)
+ return
+ endif
+ endif
+ top=topk-rhs+1
+ if (.not.cremat(fname,top,0,1,lag,lr,lc)) return
+ call unsfdcopy(lag,stk(lxa),1,stk(lr),1)
+ if(lhs.eq.1) return
+ top=top+1
+ if (.not.cremat(fname,top,0,1,rhs-3,lr,lc)) return
+ call unsfdcopy(rhs-3,stk(lxr),1,stk(lr),1)
+ return
+ 42 continue
+C ------------------------
+C special case with Updates
+C [w,xu]=corr('updt',x1,[y1],w0) etc....
+ ichaud=0
+ mode=0
+c -------------x1 value
+ top2=top2+1
+ if (.not.getrmat(fname,topk,top2,mx,nx,lx)) return
+ mnx=mx*nx
+c --------------y1 value or w0
+ top2=top2+1
+ if (.not.getmat(fname,topk,top2,it,my,ny,ly,lyc)) return
+ mny=ny*my
+ if(mny.eq.mnx) then
+ mode=1
+ if ( it.eq.1) then
+ buf= fname // ' y1 should be a real matrix'
+ call error(999)
+ return
+ endif
+ endif
+c --------------third or second argument
+ if(mode.eq.1) top2=top2+1
+ if (.not.getmat(fname,topk,top2,it,mz,nz,lzr,lzi)) return
+ mfft=mz*nz
+C if w0 is real we add space for storing an imag part
+ if (it.eq.0) then
+ if (.not.cremat(fname,topw,0,1,mfft,lzi,lc)) return
+ topw=topw+1
+ call dset(mfft,0.d0,stk(lzi),1)
+ endif
+ if(mode.eq.1.and.rhs.eq.5) ichaud=1
+ if(mode.eq.0.and.rhs.eq.4) ichaud=1
+c -----------last argument + working areas
+ if (.not.cremat(fname,topw,1,1,mfft,lwr,lwi)) return
+ call dset(2*mfft,0.d0,stk(lwr),1)
+ if(ichaud.eq.1) then
+ top2=top2+1
+ if (.not.getmat(fname,topk,top2,it,mx0,nx0,
+ $ lxr,lxi)) return
+ nbx=mx0*nx0
+ if ( nbx.gt.mfft) then
+ buf = fname // 'last argument has wrong size '
+ call error(999)
+ return
+ endif
+ call unsfdcopy(nbx,stk(lxr),1,stk(lwr),1)
+ endif
+C ---------calling the function
+ if(mode.eq.1) then
+ call cmpse3(mfft,mnx,mode,stk(lx),stk(ly),stk(lwr),stk(lwi),
+ 1 stk(lzr),stk(lzi),ierr,ichaud,nbx)
+ endif
+ if(mode.eq.0) then
+ call cmpse3(mfft,mnx,mode,stk(lx),yyy,stk(lwr),stk(lwi),
+ 1 stk(lzr),stk(lzi),ierr,ichaud,nbx)
+ endif
+C ---------back to Scilab
+ if(ierr.gt.0) then
+ buf='fft call: needs a power of 2'
+ call error(999)
+ return
+ endif
+ if (lhs.eq.2) then
+C keep this in a safe place before the copy for lhs1
+ call unsfdcopy(nbx,stk(lx+mnx-nbx),1,stk(lwr),1)
+ endif
+ if(lhs.ge.1) then
+ top=topk-rhs+1
+ if (.not.cremat(fname,top,1,mz,nz,lres,lresi)) return
+ call unsfdcopy(mfft,stk(lzr),1,stk(lres),1)
+ call unsfdcopy(mfft,stk(lzi),1,stk(lresi),1)
+ endif
+ if(lhs.eq.2) then
+ top=top+1
+ if (.not.cremat(fname,top,0,1,nbx,lres,lresi)) return
+ call unsfdcopy(nbx,stk(lwr),1,stk(lres),1)
+ endif
+ return
+ end
+c =======================================
+
+
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_corr.lo b/modules/signal_processing/sci_gateway/fortran/sci_f_corr.lo
new file mode 100755
index 000000000..f855810a5
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_corr.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_corr.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/sci_f_corr.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_delip.f b/modules/signal_processing/sci_gateway/fortran/sci_f_delip.f
new file mode 100755
index 000000000..0e9e06e53
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_delip.f
@@ -0,0 +1,104 @@
+c =======================================
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+c =======================================
+ subroutine scidelip(fname)
+c
+ include 'stack.h'
+ character*(*) fname
+ integer lw
+ integer iadr,sadr
+ double precision ck
+ integer itr
+
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+
+ if(rhs.ne.2.or.lhs.ne.1) then
+ call error(39)
+ return
+ endif
+C ck
+ il1=iadr(lstk(top))
+ itv1=istk(il1)
+ if(itv1.ne.1) then
+ err=2
+ call error(53)
+ return
+ endif
+ m1=istk(il1+1)
+ n1=istk(il1+2)
+ if(m1*n1.ne.1) then
+ err=2
+ call error(89)
+ return
+ endif
+ it1=istk(il1+3)
+ if(it1.ne.0) then
+ err=2
+ call error(52)
+ return
+ endif
+ l1=sadr(il1+4)
+ ck=stk(l1)
+ if (abs(ck).gt.1.0d0) then
+ err=2
+ call error(42)
+ return
+ endif
+c x
+ il2=iadr(lstk(top-1))
+ itv2=istk(il2)
+ if(itv2.ne.1) then
+ err=1
+ call error(53)
+ return
+ endif
+ m2=istk(il2+1)
+ n2=istk(il2+2)
+ length=m2*n2
+ it2=istk(il2+3)
+ if(it2.ne.0) then
+ err=1
+ call error(52)
+ return
+ endif
+ l2=sadr(il2+4)
+ itr=0
+ do i=0,length-1
+ if (stk(l2+i).lt.0.0d0) then
+ err=1
+ call error(42)
+ return
+ elseif (stk(l2+i).gt.1.0d0) then
+ itr=1
+ endif
+ enddo
+ 10 lw=lstk(top+1)
+ err=lw+(itr+1)*length-lstk(bot)
+ if(err.gt.0)then
+ call error(17)
+ return
+ endif
+ call delip(length,stk(lw),stk(lw+length),stk(l2),stk(l1))
+ top=top-1
+ istk(il2)=1
+ istk(il2+1)=m2
+ istk(il2+2)=n2
+ istk(il2+3)=itr
+ call unsfdcopy(length,stk(lw),1,stk(l2),1)
+ if (itr.eq.1) then
+ call unsfdcopy(length,stk(lw+length),1,stk(l2+length),1)
+ endif
+ lstk(top+1)=l2+(itr+1)*length
+ return
+
+ end
+c =======================================
+
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_delip.lo b/modules/signal_processing/sci_gateway/fortran/sci_f_delip.lo
new file mode 100755
index 000000000..1098a1e40
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_delip.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_delip.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/sci_f_delip.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_fft.f b/modules/signal_processing/sci_gateway/fortran/sci_f_fft.f
new file mode 100755
index 000000000..ebccab54b
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_fft.f
@@ -0,0 +1,223 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+c =======================================
+ subroutine scifft(fname)
+c implicit undefined (a-z)
+ include 'stack.h'
+ character*(*) fname
+ integer lw,li,lr
+ integer i,top2
+ logical vect
+ integer iadr,sadr
+
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+
+ if(rhs.ne.1.and.rhs.ne.2.and.rhs.ne.4) then
+ call error(39)
+ return
+ endif
+ ierr=0
+ vect=.false.
+ lbot=lstk(bot)
+ top2=top-rhs+1
+ il=iadr(lstk(top2))
+ if(istk(il).ne.1) then
+ call funnam(ids(1,pt+1),'fft',iadr(lstk(top2)))
+ fun=-1
+ return
+ endif
+ m=istk(il+1)
+ n=istk(il+2)
+ mn=m*n
+ it=istk(il+3)
+ lr=sadr(il+4)
+ vect=m.eq.1.or.n.eq.1
+
+
+ if(rhs.ge.4) goto 22
+c
+c fft
+c
+ if(mn.le.1) then
+ top=top-rhs+1
+ return
+ endif
+
+ if(rhs.eq.2) then
+ il1=iadr(lstk(top))
+ if(istk(il1).ne.1) then
+ err=2
+ call error(53)
+ return
+ endif
+ l1=sadr(il1+4)
+ isn=nint(stk(l1))
+ if(isn.ne.1.and.isn.ne.-1) then
+ err=2
+ call error(36)
+ return
+ endif
+ top=top-1
+ else
+c . fft(a) is equivalent to fft(a,-1)
+ isn=-1
+ endif
+
+ li=lr+mn
+ libre=li+mn
+ lw=lbot-libre-1
+ err=libre-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+
+ if(it.eq.0) then
+c . create imaginary part and set it to zero
+ call dset(mn,0.0d+0,stk(li),1)
+ istk(il+3)=1
+ endif
+
+ if(vect) then
+c . fft of a vector
+ mn2=2**int(log(dble(mn)+0.5d0)/log(2.0d+0))
+ if(mn2.eq.mn) then
+ if(mn.le.2**15) then
+ call fft842(isn,mn,stk(lr),stk(li),ierr)
+c . ierr should be always 0
+ else
+ call dfft2(stk(lr),stk(li),1,mn,1,isn,ierr,stk(libre),lw)
+ endif
+ else
+ call dfft2(stk(lr),stk(li),1,mn,1,isn,ierr,stk(libre),lw)
+ endif
+ else
+c . 2 dimensional fft
+cxx call dfft2(stk(lr),stk(li),n,m,1,isn,ierr,stk(libre),lw)
+cxx if(ierr.lt.0) goto 21
+cxx call dfft2(stk(lr),stk(li),1,n,m,isn,ierr,stk(libre),lw)
+
+
+
+ m2=2**int(log(dble(m)+0.5d0)/log(2.0d+0))
+ n2=2**int(log(dble(n)+0.5d0)/log(2.0d+0))
+c . first call ()
+c . If m2 is a power of two and less than m<2^15 use fft842 for efficiency
+ if(m2.eq.m) then
+ if(m.le.2**15) then
+ do 25 i=1,n
+ call fft842(isn,m,stk(lr+m*(i-1)),stk(li+m*(i-1)),
+ $ ierr)
+ 25 continue
+ else
+ call dfft2(stk(lr),stk(li),n,m,1,isn,ierr,stk(libre),lw)
+ if(ierr.lt.0) goto 21
+ endif
+ else
+ call dfft2(stk(lr),stk(li),n,m,1,isn,ierr,stk(libre),lw)
+ if(ierr.lt.0) goto 21
+ endif
+c . second call ()
+ if(2*n.le.lw) then
+ if(n2.eq.n) then
+ if(n.le.2**15) then
+ ltempr=libre
+ ltempi=libre+n
+ do 26 i=1,m
+c . compute the fft on each line of the matrix
+ call dcopy(n,stk(lr+(i-1)),m,stk(ltempr),1)
+ call dcopy(n,stk(li+(i-1)),m,stk(ltempi),1)
+ call fft842(isn,n,stk(ltempr),stk(ltempi),ierr)
+ if(ierr.lt.0) goto 21
+ call dcopy(n,stk(ltempr),1,stk(lr+(i-1)),m)
+ call dcopy(n,stk(ltempi),1,stk(li+(i-1)),m)
+ 26 continue
+ else
+ call dfft2(stk(lr),stk(li),1,n,m,isn,ierr,stk(libre)
+ $ ,lw)
+ if(ierr.lt.0) goto 21
+ endif
+ else
+ call dfft2(stk(lr),stk(li),1,n,m,isn,ierr,stk(libre),lw)
+ if(ierr.lt.0) goto 21
+ endif
+ else
+ call dfft2(stk(lr),stk(li),1,n,m,isn,ierr,stk(libre),lw)
+ if(ierr.lt.0) goto 21
+ endif
+
+
+ endif
+ 21 if(ierr.lt.0) then
+ buf='fft fails by lack of memory'
+ call error(999)
+ return
+ endif
+ lstk(top+1)=li+mn
+ return
+
+c n dimensional fft
+ 22 continue
+
+ il1=iadr(lstk(top2+1))
+ if(istk(il1).ne.1) then
+ err=2
+ call error(53)
+ return
+ endif
+ l1=sadr(il1+4)
+ isn=nint(stk(l1))
+ if(isn.ne.1.and.isn.ne.-1) then
+ err=2
+ call error(36)
+ return
+ endif
+
+ ilinc=iadr(lstk(top))
+ if (istk(ilinc).ne.1) then
+ err=4
+ call error(53)
+ return
+ endif
+ linc=sadr(ilinc+4)
+ nspn=int(stk(linc))
+ if (nspn.eq.0) then
+ err=4
+ call error(36)
+ return
+ endif
+ top=top-1
+ iln=iadr(lstk(top))
+ ln=sadr(iln+4)
+ n=int(stk(ln))
+ li=lr+mn
+ err=li-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ if(it.eq.0) then
+ err=li+mn-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call dset(mn,0.0d+0,stk(li),1)
+ istk(il+3)=1
+ endif
+ libre=li+mn
+ lw=lbot-libre-1
+ nseg=mn/n/nspn
+ call dfft2(stk(lr),stk(li),nseg,n,nspn,isn,ierr,stk(libre),lw)
+ top=top2
+ lstk(top+1)=li+mn
+ return
+ end
+c ========================================
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_fft.lo b/modules/signal_processing/sci_gateway/fortran/sci_f_fft.lo
new file mode 100755
index 000000000..5f1c7d79f
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_fft.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_fft.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/sci_f_fft.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_fiir.f b/modules/signal_processing/sci_gateway/fortran/sci_f_fiir.f
new file mode 100755
index 000000000..c64f3a282
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_fiir.f
@@ -0,0 +1,18 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+c =======================================
+ subroutine scifiir(fname)
+c implicit undefined (a-z)
+ include 'stack.h'
+ character*(*) fname
+ return
+ end
+c =======================================
+
+
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_fiir.lo b/modules/signal_processing/sci_gateway/fortran/sci_f_fiir.lo
new file mode 100755
index 000000000..e4317e93c
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_fiir.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_fiir.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/sci_f_fiir.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_remez.f b/modules/signal_processing/sci_gateway/fortran/sci_f_remez.f
new file mode 100755
index 000000000..56b3b59f5
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_remez.f
@@ -0,0 +1,85 @@
+c =======================================
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+c =======================================
+ subroutine sciremez(fname)
+c
+ include 'stack.h'
+ character*(*) fname
+ integer lw,lo
+ integer iadr,sadr
+
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+C argument #4: wt
+ il1=iadr(lstk(top))
+ itv1=istk(il1)
+ m1=istk(il1+1)
+ n1=istk(il1+2)
+ ngrid=m1*n1
+ it1=istk(il1+3)
+ l1=sadr(il1+4)
+ call simple(ngrid,stk(l1),stk(l1))
+C argument #3:grid
+ il2=iadr(lstk(top-1))
+ itv2=istk(il2)
+ m2=istk(il2+1)
+ n2=istk(il2+2)
+ it2=istk(il2+3)
+ l2=sadr(il2+4)
+ call simple(ngrid,stk(l2),stk(l2))
+C argument #2:des
+ il3=iadr(lstk(top-2))
+ itv3=istk(il3)
+ m3=istk(il3+1)
+ n3=istk(il3+2)
+ it3=istk(il3+3)
+ l3=sadr(il3+4)
+ call simple(ngrid,stk(l3),stk(l3))
+
+C argument #1:iext
+ il4=iadr(lstk(top-3))
+ itv4=istk(il4)
+ m4=istk(il4+1)
+ n4=istk(il4+2)
+ nc=m4*n4-2
+ it4=istk(il4+3)
+ l4=sadr(il4+4)
+ ir4=il4+4
+ call entier(nc+2,stk(l4),stk(l4))
+
+ lw=lstk(top+1)
+ err=lw+7*(nc+2)-lstk(bot)
+ if(err.gt.0)then
+ call error(17)
+ return
+ endif
+ lw1=lw+nc+2
+ lw2=lw1+nc+2
+ lw3=lw2+nc+2
+ lw4=lw3+nc+2
+ lw5=lw4+nc+2
+ lw6=lw5+nc+2
+ call remez(ngrid,nc,stk(l4),stk(lw1),stk(lw2),stk(lw3),
+ * stk(l3),stk(l2),stk(l1),stk(lw4),
+ * stk(lw5),stk(lw6),stk(lw))
+ top=top-3
+ ilo=iadr(lstk(top))
+ istk(ilo)=1
+ istk(ilo+1)=1
+ istk(ilo+2)=nc+1
+ istk(ilo+3)=0
+ lo=sadr(ilo+4)
+ call unsfdcopy(nc+1,stk(lw),1,stk(lo),1)
+ lstk(top+1)=lo+nc+1
+ return
+
+ end
+c =======================================
+
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_remez.lo b/modules/signal_processing/sci_gateway/fortran/sci_f_remez.lo
new file mode 100755
index 000000000..95d62a79e
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_remez.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_remez.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/sci_f_remez.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_rpem.f b/modules/signal_processing/sci_gateway/fortran/sci_f_rpem.f
new file mode 100755
index 000000000..526214716
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_rpem.f
@@ -0,0 +1,147 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+c =======================================
+ subroutine scirpem(fname)
+c
+ include 'stack.h'
+ character*(*) fname
+ double precision alpha,beta,u,y,eps,eps1,v
+ double precision kappa,lambda,mu,nu
+ integer ordre,lt,lf,lg
+ integer top2
+ logical arma
+ integer iadr,sadr
+
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+
+ arma=.false.
+ top2=top-rhs+1
+ il=iadr(lstk(top2))
+ if(istk(il).ne.15) then
+ err=1
+ call error(56)
+ return
+ endif
+ if(istk(il+1).ne.5) then
+ err=1
+ call error(89)
+ return
+ endif
+ il7=il+7
+ ilt=il7+istk(il+2)
+ lt=sadr(ilt+4)
+ lp=lt+istk(il+3)-istk(il+2)
+ ilp=sadr(lp)-4
+ ll=lp+istk(il+4)-istk(il+3)
+ ill=sadr(ll)-4
+ lphi=ll+istk(il+5)-istk(il+4)
+ ilphi=sadr(lphi)-4
+ lpsi=lphi+istk(il+6)-istk(il+5)
+ ilpsi=sadr(ilphi)-4
+ top2=top2+1
+ ilu=iadr(lstk(top2))
+ mnu=istk(ilu+1)*istk(ilu+2)
+ if(mnu.le.1) arma=.true.
+ lu=sadr(ilu+4)
+ top2=top2+1
+ ily=iadr(lstk(top2))
+ ly=sadr(ily+4)
+ mny=istk(ily+1)*istk(ily+2)
+ if(mnu.ne.mny) then
+ call error(60)
+ return
+ endif
+ if(top2.eq.top) then
+ llam=lstk(top+1)
+ stk(llam)=0.950d+0
+ stk(llam+1)=0.990d+0
+ stk(llam+2)=0.010d+0
+ lk=llam+3
+ stk(lk)=0.00d+0
+ stk(lk+1)=0. 980d+0
+ stk(lk+2)=0.020d+0
+ lc=lk+3
+ stk(lc)=1000.0d+0
+ goto 55
+ endif
+ top2=top2+1
+ illam=iadr(lstk(top2))
+ llam=sadr(illam+4)
+ if(top2.eq.top) then
+ lk=lstk(top+1)
+ stk(lk)=0.00d+0
+ stk(lk+1)=0.980d+0
+ stk(lk+2)=0.020d+0
+ lc=lk+3
+ stk(lc)=1000.0d+0
+ goto 55
+ endif
+ top2=top2+1
+ ilk=iadr(lstk(top2))
+ lk=sadr(ilk+4)
+ if(top2.eq.top) then
+ lc=lk+3
+ stk(lc)=1000.0d+0
+ goto 55
+ endif
+ top2=top2+1
+ ilc=iadr(lstk(top2))
+ lc=sadr(ilc+4)
+ ilk=iadr(lstk(top2-1))
+ lk=sadr(ilk+4)
+ illam=iadr(lstk(top2-2))
+ llam=sadr(illam+4)
+ 55 continue
+ mnt=istk(ilt+1)*istk(ilt+2)
+ ordre=mnt/3
+ lf=lc+1+2*ordre
+ lg=lf+mnt
+ lsta=lg+mnt
+ lwork=lsta+1+ordre
+ lmax=lwork+1
+ err=lmax-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ lambda=stk(llam)
+ alpha=stk(llam+1)
+ beta=stk(llam+2)
+ kappa=stk(lk)
+ mu=stk(lk+1)
+ nu=stk(lk+2)
+ do 52 k=1,mny-1
+ y=stk(ly+k)
+ u=stk(lu+k-1)
+ call rpem(stk(lt),stk(lp),ordre,u,y,lambda,
+ 1 kappa,stk(lc),ista,v,eps,eps1,mnt,
+ 2 stk(lphi),stk(lpsi),stk(lsta),stk(lwork),
+ 3 stk(lf),stk(lg),stk(ll))
+ lambda=alpha*lambda+beta
+ kappa=mu*kappa+nu
+ 52 continue
+ if (lhs.eq.1) then
+ top=top-rhs+1
+ return
+ endif
+ if(lhs.eq.2) then
+ top=top-rhs+2
+ istk(ilu)=1
+ istk(ilu+1)=1
+ istk(ilu+2)=1
+ istk(ilu+3)=0
+ stk(lu)=v
+ lstk(top+1)=lu+1
+ return
+ endif
+ return
+ end
+c =======================================
+
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_rpem.lo b/modules/signal_processing/sci_gateway/fortran/sci_f_rpem.lo
new file mode 100755
index 000000000..00369d2ec
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_rpem.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_rpem.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/sci_f_rpem.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_syredi.f b/modules/signal_processing/sci_gateway/fortran/sci_f_syredi.f
new file mode 100755
index 000000000..d739496a9
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_syredi.f
@@ -0,0 +1,266 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+c =======================================
+ subroutine scisyredi(fname)
+c
+ include 'stack.h'
+ character*(*) fname
+ double precision adelp,adels,fact,zzi(16),zzr(16),zpi(16),zpr(16)
+ integer lo,lg
+ integer i
+ integer iadr,sadr
+
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+
+
+ il1=iadr(lstk(top))
+ itv1=istk(il1)
+ m1=istk(il1+1)
+ n1=istk(il1+2)
+ it1=istk(il1+3)
+ l1=sadr(il1+4)
+ adels=stk(l1)
+ il2=iadr(lstk(top-1))
+ itv2=istk(il2)
+ m2=istk(il2+1)
+ n2=istk(il2+2)
+ it2=istk(il2+3)
+ l2=sadr(il2+4)
+ adelp=stk(l2)
+ il3=iadr(lstk(top-2))
+ itv3=istk(il3)
+ m3=istk(il3+1)
+ n3=istk(il3+2)
+ it3=istk(il3+3)
+ l3=sadr(il3+4)
+ il4=iadr(lstk(top-3))
+ itv4=istk(il4)
+ m4=istk(il4+1)
+ n4=istk(il4+2)
+ it4=istk(il4+3)
+ l4=sadr(il4+4)
+c call entier(1,stk(l4),stk(l4))
+ iapro=stk(l4)
+ il5=iadr(lstk(top-4))
+ itv5=istk(il5)
+ m5=istk(il5+1)
+ n5=istk(il5+2)
+ it5=istk(il5+3)
+ l5=sadr(il5+4)
+c call entier(1,stk(l5),stk(l5))
+ ityp=stk(l5)
+ lw1=lstk(top+1)
+ lw2=lw1+32
+ lw3=lw2+32
+ lw4=lw3+32
+ lw5=lw4+32
+ lw6=lw5+32
+ lw7=lw6+64
+ lw8=lw7+64
+ lw9=lw8+64
+ lw10=lw9+64
+ lw11=lw10+64
+ lw12=lw11+64
+ lw13=lw12+64
+ lw14=lw13+64
+ lw15=lw14+256
+ lw16=lw15+256
+ lw17=lw16+16
+ lw18=lw17+64
+ lw19=lw18+64
+ err=lw19-lstk(bot)
+ if(err.gt.0)then
+ call error(17)
+ return
+ endif
+ maxdeg=64
+ call syredi(maxdeg,ityp,iapro,stk(l3),adelp,adels,
+ * ndeg,nb,
+ * fact,stk(lw1),stk(lw2),stk(lw3),stk(lw4),stk(lw5),
+ * stk(lw6),stk(lw7),stk(lw8),stk(lw9),
+ * ierr,stk(lw10),stk(lw11),stk(lw12),stk(lw13),
+ * stk(lw14),stk(lw15),stk(lw16),stk(lw17),stk(lw18))
+c subroutine syredi(maxdeg,ityp,iapro,om,adelp,adels,
+c * ndeg,nb,
+c * fact,b2,b1,b0,c1,c0,
+c * zzr,zzi,zpr,zpi,
+c * ierr,spr,spi,pren,pimn,
+c * zm,sm,rom,nzero,nze)
+c
+c nb=(maxdeg+1)/2
+c dimension b2,b1,b0,c1,c0 :nb
+c dimension zzr,zzi,zpr,zpi,spr,spi :maxdeg
+c dimension pren,pimn,nzero,nze :maxdeg
+c dimension zm,sm :maxdeg x 4
+ if(ierr.eq.-7) then
+ buf='specs=>invalid order filter'
+ call error(9999)
+ return
+ endif
+ if(ierr.eq.-9) then
+ buf='specs=>too high order filter'
+ call error(9999)
+ return
+ endif
+ if(ierr.ne.0)then
+ buf='error in built in fct syredi'
+ call error(9999)
+ return
+ endif
+ top=top-4
+c fact
+ ilo=iadr(lstk(top))
+ istk(ilo)=1
+ istk(ilo+1)=1
+ istk(ilo+2)=1
+ length=istk(ilo+1)*istk(ilo+2)
+ istk(ilo+3)=0
+ lo=sadr(ilo+4)
+ stk(lo)=fact
+ lstk(top+1)=lo+length
+
+c b2
+ top=top+1
+ ilo=iadr(lstk(top))
+ istk(ilo)=1
+ istk(ilo+1)=1
+ istk(ilo+2)=nb
+ length=istk(ilo+1)*istk(ilo+2)
+ istk(ilo+3)=0
+ lo=sadr(ilo+4)
+ call unsfdcopy(length,stk(lw1),1,stk(lo),1)
+ lstk(top+1)=lo+length
+
+c b1
+ top=top+1
+ ilo=iadr(lstk(top))
+ istk(ilo)=1
+ istk(ilo+1)=1
+ istk(ilo+2)=nb
+ length=istk(ilo+1)*istk(ilo+2)
+ istk(ilo+3)=0
+ lo=sadr(ilo+4)
+ call unsfdcopy(length,stk(lw2),1,stk(lo),1)
+ lstk(top+1)=lo+length
+
+c b0
+ top=top+1
+ ilo=iadr(lstk(top))
+ istk(ilo)=1
+ istk(ilo+1)=1
+ istk(ilo+2)=nb
+ length=istk(ilo+1)*istk(ilo+2)
+ istk(ilo+3)=0
+ lo=sadr(ilo+4)
+ call unsfdcopy(length,stk(lw3),1,stk(lo),1)
+ lstk(top+1)=lo+length
+c c1
+ top=top+1
+ ilo=iadr(lstk(top))
+ istk(ilo)=1
+ istk(ilo+1)=1
+ istk(ilo+2)=nb
+ length=istk(ilo+1)*istk(ilo+2)
+ istk(ilo+3)=0
+ lo=sadr(ilo+4)
+ call unsfdcopy(length,stk(lw4),1,stk(lo),1)
+ lstk(top+1)=lo+length
+c c0
+ top=top+1
+ ilo=iadr(lstk(top))
+ istk(ilo)=1
+ istk(ilo+1)=1
+ istk(ilo+2)=nb
+ length=istk(ilo+1)*istk(ilo+2)
+ istk(ilo+3)=0
+ lo=sadr(ilo+4)
+ call unsfdcopy(length,stk(lw5),1,stk(lo),1)
+ lstk(top+1)=lo+length
+
+c zeros
+ j=0
+ i=0
+ 1001 if(j.ge.ndeg) goto 1002
+ if(stk(lw7+i).eq.0.0d0)then
+ j=j+1
+ zzr(j)=stk(lw6+i)
+ zzi(j)=0.0d0
+ else
+ j=j+1
+ zzr(j)=stk(lw6+i)
+ zzi(j)=stk(lw7+i)
+ j=j+1
+ zzr(j)=stk(lw6+i)
+ zzi(j)=-stk(lw7+i)
+ endif
+ i=i+1
+ goto 1001
+c poles
+
+c if(j.lt.ndeg)then
+c do 1003 i=j+1,ndeg
+c zzr(i)=0.d0
+c zzi(i)=0.d0
+c 1003 continue
+c endif
+
+ 1002 top=top+1
+ ilo=iadr(lstk(top))
+ istk(ilo)=1
+ istk(ilo+1)=1
+ istk(ilo+2)=ndeg
+ length=istk(ilo+1)*istk(ilo+2)
+ istk(ilo+3)=1
+ lo=sadr(ilo+4)
+ call unsfdcopy(length,zzr(1),1,stk(lo),1)
+ call unsfdcopy(length,zzi(1),1,stk(lo+length),1)
+ lstk(top+1)=lo+2*length
+
+c poles
+ k=0
+ i=0
+ 1004 if(k.ge.ndeg) goto 1005
+ if(stk(lw9+i).eq.0.0d0)then
+ k=k+1
+ zpr(k)=stk(lw8+i)
+ zpi(k)=0.0d0
+ else
+ k=k+1
+ zpr(k)=stk(lw8+i)
+ zpi(k)=stk(lw9+i)
+ k=k+1
+ zpr(k)=stk(lw8+i)
+ zpi(k)=-stk(lw9+i)
+ endif
+ i=i+1
+ goto 1004
+
+c if(k.lt.ndeg)then
+c do 1005 i=k+1,ndeg
+c zpr(i)=0.0d0
+c zpi(i)=0.0d0
+c 1005 continue
+c endif
+
+ 1005 top=top+1
+ ilo=iadr(lstk(top))
+ istk(ilo)=1
+ istk(ilo+1)=1
+ istk(ilo+2)=ndeg
+ length=istk(ilo+1)*istk(ilo+2)
+ istk(ilo+3)=1
+ lo=sadr(ilo+4)
+ call unsfdcopy(length,zpr(1),1,stk(lo),1)
+ call unsfdcopy(length,zpi(1),1,stk(lo+length),1)
+ lstk(top+1)=lo+2*length
+ return
+ end
+c =======================================
+
diff --git a/modules/signal_processing/sci_gateway/fortran/sci_f_syredi.lo b/modules/signal_processing/sci_gateway/fortran/sci_f_syredi.lo
new file mode 100755
index 000000000..b30f4496d
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/fortran/sci_f_syredi.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_syredi.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/sci_f_syredi.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/sci_gateway/signal_processing_gateway.xml b/modules/signal_processing/sci_gateway/signal_processing_gateway.xml
new file mode 100755
index 000000000..0e03ffe9a
--- /dev/null
+++ b/modules/signal_processing/sci_gateway/signal_processing_gateway.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007 - INRIA - Allan CORNET
+ * Copyright (C) 2007 - INRIA - Sylvestre LEDRU
+ *
+ * Scilab
+ * Interface description. In this file, we define the list of the function which
+ * will be available into Scilab and the link to the "native" function.
+ *
+ * gatewayId is the position in the hashtable 'Interfaces' defined in the
+ * file SCI/modules/core/src/c/callinterf.h
+ *
+ * primitiveId is the position in the hashtable '<module>Table Tab[]' defined
+ * in the file modules/<module>/sci_gateway/c/gw_<module>.c
+ *
+ * primitiveName is the name of the Scilab function
+ *
+ * Don't touch if you do not know what you are doing
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ -->
+
+<!DOCTYPE GATEWAY SYSTEM "../../functions/xml/gateway.dtd">
+<GATEWAY name="signal_processing">
+
+
+ <PRIMITIVE gatewayId="18" primitiveId="2" primitiveName="fft" />
+ <PRIMITIVE gatewayId="18" primitiveId="4" primitiveName="corr" />
+ <PRIMITIVE gatewayId="18" primitiveId="5" primitiveName="rpem" />
+ <PRIMITIVE gatewayId="18" primitiveId="6" primitiveName="amell" />
+ <PRIMITIVE gatewayId="18" primitiveId="7" primitiveName="delip" />
+ <PRIMITIVE gatewayId="18" primitiveId="8" primitiveName="remez" />
+ <PRIMITIVE gatewayId="18" primitiveId="9" primitiveName="syredi" />
+ <PRIMITIVE gatewayId="18" primitiveId="10" primitiveName="conv2" />
+</GATEWAY>
diff --git a/modules/signal_processing/signal_processing.iss b/modules/signal_processing/signal_processing.iss
new file mode 100755
index 000000000..18979281f
--- /dev/null
+++ b/modules/signal_processing/signal_processing.iss
@@ -0,0 +1,42 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) INRIA - Allan CORNET
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; This file must be used under the terms of the CeCILL.
+; This source file is licensed as described in the file COPYING, which
+; you should have received as part of this distribution. The terms
+; are also available at
+; http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+;
+;--------------------------------------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;--------------------------------------------------------------------------------------------------------------
+; signal_processing module
+;--------------------------------------------------------------------------------------------------------------
+;
+#define SIGPROC "signal_processing"
+;
+Source: bin\{#SIGPROC}_f.dll; DestDir: {app}\bin; Components: {#COMPN_SCILAB}
+Source: bin\{#SIGPROC}.dll; DestDir: {app}\bin; Components: {#COMPN_SCILAB}
+;
+Source: modules\{#SIGPROC}\license.txt; DestDir: {app}\modules\signal_processing; Components: {#COMPN_SCILAB}
+;
+Source: modules\{#SIGPROC}\sci_gateway\{#SIGPROC}_gateway.xml; DestDir: {app}\modules\{#SIGPROC}\sci_gateway; Components: {#COMPN_SCILAB}
+;
+Source: modules\{#SIGPROC}\etc\{#SIGPROC}.quit; DestDir: {app}\modules\{#SIGPROC}\etc; Components: {#COMPN_SCILAB}
+Source: modules\{#SIGPROC}\etc\{#SIGPROC}.start; DestDir: {app}\modules\{#SIGPROC}\etc; Components: {#COMPN_SCILAB}
+;
+Source: modules\{#SIGPROC}\macros\lib; DestDir: {app}\modules\{#SIGPROC}\macros; Components: {#COMPN_SCILAB}
+Source: modules\{#SIGPROC}\macros\names; DestDir: {app}\modules\{#SIGPROC}\macros; Components: {#COMPN_SCILAB}
+Source: modules\{#SIGPROC}\macros\*.bin; DestDir: {app}\modules\{#SIGPROC}\macros; Components: {#COMPN_SCILAB}
+Source: modules\{#SIGPROC}\macros\*.sci; DestDir: {app}\modules\{#SIGPROC}\macros; Components: {#COMPN_SCILAB}
+Source: modules\{#SIGPROC}\macros\buildmacros.sce; DestDir: {app}\modules\{#SIGPROC}\macros; Components: {#COMPN_SCILAB}
+Source: modules\{#SIGPROC}\macros\buildmacros.bat; DestDir: {app}\modules\{#SIGPROC}\macros; Components: {#COMPN_SCILAB}
+Source: modules\{#SIGPROC}\macros\cleanmacros.bat; DestDir: {app}\modules\{#SIGPROC}\macros; Components: {#COMPN_SCILAB}
+;
+Source: modules\{#SIGPROC}\demos\*.*; DestDir: {app}\modules\{#SIGPROC}\demos; Flags: recursesubdirs; Components: {#COMPN_SCILAB}
+;
+Source: modules\{#SIGPROC}\tests\*.*; DestDir: {app}\modules\{#SIGPROC}\tests; Flags: recursesubdirs; Components: {#COMPN_SCILAB} and {#COMPN_TESTS}
+;--------------------------------------------------------------------------------------------------------------
diff --git a/modules/signal_processing/src/c/.deps/.dirstamp b/modules/signal_processing/src/c/.deps/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/signal_processing/src/c/.deps/.dirstamp
diff --git a/modules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-conv2.Plo b/modules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-conv2.Plo
new file mode 100755
index 000000000..2a3eaeebc
--- /dev/null
+++ b/modules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-conv2.Plo
@@ -0,0 +1,152 @@
+src/c/libscisignal_processing_algo_la-conv2.lo: src/c/conv2.c \
+ /usr/include/stdc-predef.h ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/core_math.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \
+ /usr/include/limits.h /usr/include/features.h \
+ /usr/include/x86_64-linux-gnu/sys/cdefs.h \
+ /usr/include/x86_64-linux-gnu/bits/wordsize.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs.h \
+ /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
+ /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/local_lim.h \
+ /usr/include/linux/limits.h \
+ /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h /usr/include/stdlib.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \
+ /usr/include/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/endian.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap.h \
+ /usr/include/x86_64-linux-gnu/bits/types.h \
+ /usr/include/x86_64-linux-gnu/bits/typesizes.h \
+ /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \
+ /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
+ /usr/include/x86_64-linux-gnu/sys/select.h \
+ /usr/include/x86_64-linux-gnu/bits/select.h \
+ /usr/include/x86_64-linux-gnu/bits/sigset.h \
+ /usr/include/x86_64-linux-gnu/bits/time.h \
+ /usr/include/x86_64-linux-gnu/bits/select2.h \
+ /usr/include/x86_64-linux-gnu/sys/sysmacros.h \
+ /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \
+ /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/values.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/float.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h
+
+/usr/include/stdc-predef.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/core_math.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/features.h:
+
+/usr/include/x86_64-linux-gnu/sys/cdefs.h:
+
+/usr/include/x86_64-linux-gnu/bits/wordsize.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs.h:
+
+/usr/include/x86_64-linux-gnu/gnu/stubs-64.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix1_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/x86_64-linux-gnu/bits/posix2_lim.h:
+
+/usr/include/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/stdlib.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/endian.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap.h:
+
+/usr/include/x86_64-linux-gnu/bits/types.h:
+
+/usr/include/x86_64-linux-gnu/bits/typesizes.h:
+
+/usr/include/x86_64-linux-gnu/bits/byteswap-16.h:
+
+/usr/include/x86_64-linux-gnu/sys/types.h:
+
+/usr/include/time.h:
+
+/usr/include/x86_64-linux-gnu/sys/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/select.h:
+
+/usr/include/x86_64-linux-gnu/bits/sigset.h:
+
+/usr/include/x86_64-linux-gnu/bits/time.h:
+
+/usr/include/x86_64-linux-gnu/bits/select2.h:
+
+/usr/include/x86_64-linux-gnu/sys/sysmacros.h:
+
+/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h:
+
+/usr/include/alloca.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib-float.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdlib.h:
+
+/usr/include/values.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/float.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
diff --git a/modules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-corrtable.Plo b/modules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-corrtable.Plo
new file mode 100755
index 000000000..111092914
--- /dev/null
+++ b/modules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-corrtable.Plo
@@ -0,0 +1,16 @@
+src/c/libscisignal_processing_algo_la-corrtable.lo: src/c/corrtable.c \
+ /usr/include/stdc-predef.h \
+ ../../modules/dynamic_link/includes/GetFunctionByName.h \
+ ../../modules/dynamic_link/includes/dynlib_dynamic_link.h \
+ includes/dynlib_signal_processing.h \
+ ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+../../modules/dynamic_link/includes/GetFunctionByName.h:
+
+../../modules/dynamic_link/includes/dynlib_dynamic_link.h:
+
+includes/dynlib_signal_processing.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/signal_processing/src/c/.dirstamp b/modules/signal_processing/src/c/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/signal_processing/src/c/.dirstamp
diff --git a/modules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-conv2.o b/modules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-conv2.o
new file mode 100755
index 000000000..1061aaff2
--- /dev/null
+++ b/modules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-conv2.o
Binary files differ
diff --git a/modules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-corrtable.o b/modules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-corrtable.o
new file mode 100755
index 000000000..b1cbe5659
--- /dev/null
+++ b/modules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-corrtable.o
Binary files differ
diff --git a/modules/signal_processing/src/c/DllmainSignal_processing.c b/modules/signal_processing/src/c/DllmainSignal_processing.c
new file mode 100755
index 000000000..2c6b605d4
--- /dev/null
+++ b/modules/signal_processing/src/c/DllmainSignal_processing.c
@@ -0,0 +1,75 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008 - DIGITEO - Allan CORNET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include <windows.h>
+#include "machine.h" /* C2F */
+/*--------------------------------------------------------------------------*/
+#pragma comment(lib,"../../../../bin/libintl.lib")
+/*--------------------------------------------------------------------------*/
+/* defines & exports fortran COMMON in C */
+/* required by F2C */
+
+__declspec (dllexport) struct
+{
+ int iero;
+} C2F(iercorr);
+
+__declspec (dllexport) struct
+{
+ double pi2, dev;
+ int nfcns, ngrid;
+} C2F(rem001);
+
+__declspec (dllexport) struct
+{
+ int niter, iout;
+} C2F(oops);
+
+__declspec (dllexport) struct
+{
+ char namex[25], namey[25];
+} C2F(corrname);
+
+
+__declspec (dllexport) struct
+{
+ int kgxtop, kgytop, ksec, kisc;
+} C2F(corradr);
+
+__declspec (dllexport) struct
+{
+ int itxcorr, itycorr;
+} C2F(corrtyp);
+
+__declspec (dllexport) struct
+{
+ int k;
+} C2F(tg02bd);
+/*--------------------------------------------------------------------------*/
+int WINAPI DllMain (HINSTANCE hInstance , DWORD reason, PVOID pvReserved)
+{
+ switch (reason)
+ {
+ case DLL_PROCESS_ATTACH:
+ break;
+ case DLL_PROCESS_DETACH:
+ break;
+ case DLL_THREAD_ATTACH:
+ break;
+ case DLL_THREAD_DETACH:
+ break;
+ }
+ return 1;
+}
+/*--------------------------------------------------------------------------*/
+
diff --git a/modules/signal_processing/src/c/conv2.c b/modules/signal_processing/src/c/conv2.c
new file mode 100755
index 000000000..17ee46284
--- /dev/null
+++ b/modules/signal_processing/src/c/conv2.c
@@ -0,0 +1,285 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - INRIA - Serge STEER
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+/*--------------------------------------------------------------------------*/
+#include "machine.h"
+#include "core_math.h"
+#include "MALLOC.h"
+/*--------------------------------------------------------------------------*/
+extern double C2F(ddot)(int *n, double *A, int *iA, double *B, int *iB);
+/*--------------------------------------------------------------------------*/
+void conv2_separable_R(double *R, int nR, double *C, int mC, double *A, int mA, int nA, double *Out, int mOut, int nOut, int edgM, int edgN, double *T)
+{
+ int ai = 0, tj = 0, ci = 0, rj = 0; /*current index over A,T,C and R */
+ int i = 0, j = 0; /* loop variables*/
+ int l = 0;
+ int one = 1, minusone = -1;
+
+ for (i = 0; i < mOut; i++ )
+ {
+ /*Compute the 1-D conv A(i,:) and C in T */
+ ai = Max(0, i - edgM) ;
+ ci = mC - 1 - Max(0, edgM - i);
+ l = Min(ci + 1, mA - ai);
+ for (j = 0; j < nA; j++ )
+ {
+ T[j] = C2F(ddot)(&l, A + ai + mA * j, &one, C + ci - l + 1, &minusone);
+ }
+ /*1-D convolution of T and R */
+ for (j = 0; j < nOut; j++ )
+ {
+ rj = nR - 1 - Max(0, edgN - j);
+ tj = Max(0, j - edgN) ;
+ l = Min(rj + 1, nA - tj);
+ Out[i + j * mOut] = C2F(ddot)(&l, T + tj, &one, R + rj - l + 1, &minusone);
+ }
+ }
+}
+/*--------------------------------------------------------------------------*/
+void conv2_separable_C(double *Rr, double *Ri, int nR, double *Cr, double *Ci, int mC, double *Ar, double *Ai, int mA, int nA, double *Outr, double *Outi, int mOut, int nOut, int edgM, int edgN, double *Tr, double *Ti)
+{
+ int ai = 0, tj = 0, ci = 0, rj = 0; /*current index over A,T,C and R */
+ int i = 0, j = 0; /* loop variables*/
+ int l = 0;
+ int one = 1, minusone = -1;
+
+ for (i = 0; i < mOut; i++ )
+ {
+ /*Compute the 1-D conv A(i,:) and C in T */
+ ai = Max(0, i - edgM) ;
+ ci = mC - 1 - Max(0, edgM - i);
+ l = Min(ci + 1, mA - ai);
+ if (Ai != NULL && Ci != NULL)
+ {
+ for (j = 0; j < nA; j++ )
+ {
+ Tr[j] = C2F(ddot)(&l, Ar + ai + mA * j, &one, Cr + ci - l + 1, &minusone) -
+ C2F(ddot)(&l, Ai + ai + mA * j, &one, Ci + ci - l + 1, &minusone);
+
+ Ti[j] = C2F(ddot)(&l, Ar + ai + mA * j, &one, Ci + ci - l + 1, &minusone) +
+ C2F(ddot)(&l, Ai + ai + mA * j, &one, Cr + ci - l + 1, &minusone);
+ }
+ }
+ else if (Ci != NULL)
+ {
+ for (j = 0; j < nA; j++ )
+ {
+ Tr[j] = C2F(ddot)(&l, Ar + ai + mA * j, &one, Cr + ci - l + 1, &minusone);
+ Ti[j] = C2F(ddot)(&l, Ar + ai + mA * j, &one, Ci + ci - l + 1, &minusone);
+ }
+ }
+ else if (Ai != NULL)
+ {
+ for (j = 0; j < nA; j++ )
+ {
+ Tr[j] = C2F(ddot)(&l, Ar + ai + mA * j, &one, Cr + ci - l + 1, &minusone);
+ Ti[j] = C2F(ddot)(&l, Ai + ai + mA * j, &one, Cr + ci - l + 1, &minusone);
+ }
+ }
+ else
+ {
+ for (j = 0; j < nA; j++ )
+ {
+ Tr[j] = C2F(ddot)(&l, Ar + ai + mA * j, &one, Cr + ci - l + 1, &minusone);
+ Ti[j] = 0.0;
+ }
+ }
+ /*1-D convolution of T and R */
+ for (j = 0; j < nOut; j++ )
+ {
+ rj = nR - 1 - Max(0, edgN - j);
+ tj = Max(0, j - edgN) ;
+ l = Min(rj + 1, nA - tj);
+ Outr[i + j * mOut] = C2F(ddot)(&l, Tr + tj, &one, Rr + rj - l + 1, &minusone);
+ Outi[i + j * mOut] = C2F(ddot)(&l, Ti + tj, &one, Rr + rj - l + 1, &minusone);
+ if (Ri != NULL)
+ {
+ Outr[i + j * mOut] -= C2F(ddot)(&l, Ti + tj, &one, Ri + rj - l + 1, &minusone);
+ Outi[i + j * mOut] = C2F(ddot)(&l, Tr + tj, &one, Ri + rj - l + 1, &minusone);
+ }
+ }
+ }
+}
+/*--------------------------------------------------------------------------*/
+void conv2_R(double *A, int mA, int nA, double *B, int mB, int nB, double *Out, int mOut, int nOut, int edgM, int edgN)
+{
+ int ai = 0, aj = 0, bi = 0, bj = 0; /*current index over A and B */
+ int i = 0, j = 0; /* loop variables*/
+ int l = 0;
+ int one = 1, minusone = -1;
+ double sum = 0;
+ if (nOut == 1)
+ {
+ /* A and B are column vectors nA=nB=nOut=1 */
+ for (i = 0; i < mOut; i++ )
+ {
+ bi = mB - 1 - Max(0, edgM - i);
+ ai = Max(0, i - edgM);
+ l = Min(bi + 1, mA - ai);
+ Out[i] = C2F(ddot)(&l, A + ai, &one, B + bi - l + 1, &minusone);
+ }
+ }
+ else if (mOut == 1)
+ {
+ /* A and B are row vectors mA=mB=mOut=1 */
+ for (j = 0; j < nOut; j++ )
+ {
+ bj = nB - 1 - Max(0, edgN - j);
+ aj = Max(0, j - edgN);
+ l = Min(bj + 1, nA - aj);
+ Out[j] = C2F(ddot)(&l, A + aj, &one, B + bj - l + 1, &minusone);
+ }
+ }
+ else
+ {
+ /* general array case */
+ for (i = 0; i < mOut; i++ )
+ {
+ bi = mB - 1 - Max(0, edgM - i);
+ ai = Max(0, i - edgM);
+ for (j = 0; j < nOut; j++ )
+ {
+ sum = 0;
+ for (bj = nB - 1 - Max(0, edgN - j), aj = Max(0, j - edgN); bj >= 0 && aj < nA; bj--, aj++)
+ {
+ l = Min(bi + 1, mA - ai);
+ sum += C2F(ddot)(&l, A + ai + mA * aj, &one, B + bi - l + 1 + mB * bj, &minusone);
+ }
+ Out[i + j * mOut] = sum;
+ }
+ }
+ }
+}
+/*--------------------------------------------------------------------------*/
+void conv2_C(double *Ar, double *Ai, int mA, int nA, double *Br, double *Bi, int mB, int nB, double *Outr, double *Outi, int mOut, int nOut, int edgM, int edgN)
+{
+ int ai = 0, aj = 0, bi = 0, bj = 0; /*current index over A and B */
+ int i = 0, j = 0; /* loop variables*/
+ int l = 0;
+ int one = 1, minusone = -1;
+ double sumr = 0, sumi = 0;
+
+ if (Bi != NULL && Ai != NULL)
+ {
+ if (nOut == 1)
+ {
+ /* fastest code */
+ for (i = 0; i < mOut; i++ )
+ {
+ bi = mB - 1 - Max(0, edgM - i);
+ ai = Max(0, i - edgM);
+ l = Min(bi + 1, mA - ai);
+ Outr[i] = C2F(ddot)(&l, Ar + ai, &one, Br + bi - l + 1, &minusone) -
+ C2F(ddot)(&l, Ai + ai, &one, Bi + bi - l + 1, &minusone);
+
+ Outi[i] = C2F(ddot)(&l, Ar + ai, &one, Bi + bi - l + 1, &minusone) +
+ C2F(ddot)(&l, Ai + ai, &one, Br + bi - l + 1, &minusone);
+ }
+ }
+ else
+ {
+ for (i = 0; i < mOut; i++ )
+ {
+ bi = mB - 1 - Max(0, edgM - i);
+ ai = Max(0, i - edgM);
+ for (j = 0; j < nOut; j++ )
+ {
+ sumr = 0;
+ sumi = 0;
+ for (bj = nB - 1 - Max(0, edgN - j), aj = Max(0, j - edgN); bj >= 0 && aj < nA; bj--, aj++)
+ {
+ l = Min(bi + 1, mA - ai);
+ sumr += C2F(ddot)(&l, Ar + ai + mA * aj, &one, Br + bi - l + 1 + mB * bj, &minusone)
+ - C2F(ddot)(&l, Ai + ai + mA * aj, &one, Bi + bi - l + 1 + mB * bj, &minusone);
+
+ sumi += C2F(ddot)(&l, Ar + ai + mA * aj, &one, Bi + bi - l + 1 + mB * bj, &minusone) +
+ C2F(ddot)(&l, Ai + ai + mA * aj, &one, Br + bi - l + 1 + mB * bj, &minusone);
+ }
+ Outr[i + j * mOut] = sumr;
+ Outi[i + j * mOut] = sumi;
+ }
+ }
+ }
+ }
+ else if (Ai != NULL)
+ {
+ if (nOut == 1)
+ {
+ /* fastest code */
+ for (i = 0; i < mOut; i++ )
+ {
+ bi = mB - 1 - Max(0, edgM - i);
+ ai = Max(0, i - edgM);
+ l = Min(bi + 1, mA - ai);
+ Outr[i] = C2F(ddot)(&l, Ar + ai, &one, Br + bi - l + 1, &minusone);
+ Outi[i] = C2F(ddot)(&l, Ai + ai, &one, Br + bi - l + 1, &minusone);
+ }
+ }
+ else
+ {
+ for (i = 0; i < mOut; i++ )
+ {
+ bi = mB - 1 - Max(0, edgM - i);
+ ai = Max(0, i - edgM);
+ for (j = 0; j < nOut; j++ )
+ {
+ sumr = 0;
+ sumi = 0;
+ for (bj = nB - 1 - Max(0, edgN - j), aj = Max(0, j - edgN); bj >= 0 && aj < nA; bj--, aj++)
+ {
+ l = Min(bi + 1, mA - ai);
+ sumr += C2F(ddot)(&l, Ar + ai + mA * aj, &one, Br + bi - l + 1 + mB * bj, &minusone);
+ sumi += C2F(ddot)(&l, Ai + ai + mA * aj, &one, Br + bi - l + 1 + mB * bj, &minusone);
+ }
+ Outr[i + j * mOut] = sumr;
+ Outi[i + j * mOut] = sumi;
+ }
+ }
+ }
+ }
+ else if (Bi != NULL)
+ {
+ if (nOut == 1)
+ {
+ /* fastest code */
+ for (i = 0; i < mOut; i++ )
+ {
+ bi = mB - 1 - Max(0, edgM - i);
+ ai = Max(0, i - edgM);
+ l = Min(bi + 1, mA - ai);
+ Outr[i] = C2F(ddot)(&l, Ar + ai, &one, Br + bi - l + 1, &minusone);
+ Outi[i] = C2F(ddot)(&l, Ar + ai, &one, Bi + bi - l + 1, &minusone);
+ }
+ }
+ else
+ {
+ for (i = 0; i < mOut; i++ )
+ {
+ bi = mB - 1 - Max(0, edgM - i);
+ ai = Max(0, i - edgM);
+ for (j = 0; j < nOut; j++ )
+ {
+ sumr = 0;
+ sumi = 0;
+ for (bj = nB - 1 - Max(0, edgN - j), aj = Max(0, j - edgN); bj >= 0 && aj < nA; bj--, aj++)
+ {
+ l = Min(bi + 1, mA - ai);
+ sumr += C2F(ddot)(&l, Ar + ai + mA * aj, &one, Br + bi - l + 1 + mB * bj, &minusone);
+ sumi += C2F(ddot)(&l, Ar + ai + mA * aj, &one, Bi + bi - l + 1 + mB * bj, &minusone);
+ }
+ Outr[i + j * mOut] = sumr;
+ Outi[i + j * mOut] = sumi;
+ }
+ }
+ }
+ }
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/signal_processing/src/c/conv2.h b/modules/signal_processing/src/c/conv2.h
new file mode 100755
index 000000000..1991ca11c
--- /dev/null
+++ b/modules/signal_processing/src/c/conv2.h
@@ -0,0 +1,78 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2012 - INRIA - Serge Steer
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+/*------------------------------------------------------------------------*/
+/* file: conv2.h */
+/* desc : Functions to compute 2-D convolutions */
+/*------------------------------------------------------------------------*/
+#ifndef __CONV2_H__
+#define __CONV2_H__
+
+
+/**
+ * computes 2-D convolution for separable kernel in real case
+ * R is a real vector of length nR
+ * C is a real vector of length nC
+ * A is a (mA,nA) real matrix
+ * Out is a (mOut,nOut) real matrix
+ * edgM is an integer
+ * edgN is an integer
+ * T is a real vector of length nA
+ */
+void conv2_separable_R(double *R, int nR,
+ double *C, int nC,
+ double *A, int mA, int nA,
+ double *Out, int mOut, int nOut,
+ int edgM, int edgN, double *T);
+
+/**
+ * computes 2-D convolution for separable kernel in complex case
+ * Rr and Ri are real vectors of length nR
+ * Cr and Ci are real vectors of length nC
+ * Ar and Ai are (mA,nA) real matrices
+ * Outr and Outii are (mOut,nOut) real matrices
+ * edgM is an integer
+ * edgN is an integer
+ * Tr and Ti are real vectors of length nA
+ */
+void conv2_separable_C(double *Rr, double *Ri, int nR,
+ double *Cr, double *Ci, int nC,
+ double *Ar, double *Ai, int mA, int nA,
+ double *Outr, double *Outi, int mOut, int nOut,
+ int edgM, int edgN, double *Tr, double *Ti);
+
+/**
+ * computes 2-D convolution for matrix kernel in real case
+ * A is a (mA,nA) real matrix
+ * B is a (mB,nB) real matrix
+ * Out is a (mOut,nOut) real matrix
+ * edgM is an integer
+ * edgN is an integer
+ */
+void conv2_R(double *A, int mA, int nA,
+ double *B, int mB, int nB,
+ double *Out, int mOut, int nOut,
+ int edgM, int edgN);
+
+/**
+ * computes 2-D convolution for matrix kernel in complex case
+ * Ar and Ai are (mA,nA) real matrices
+ * Br and Bi are (mB,nB) real matrices
+ * Outr and Outi are (mOut,nOut) real matrices
+ * edgM is an integer
+ * edgN is an integer
+ */
+void conv2_C(double *Ar, double *Ai, int mA, int nA,
+ double *Br, double *Bi, int mB, int nB,
+ double *Outr, double *Outi, int mOut, int nOut,
+ int edgM, int edgN);
+#endif /* __CONV2_H__ */
+
diff --git a/modules/signal_processing/src/c/core_Import.def b/modules/signal_processing/src/c/core_Import.def
new file mode 100755
index 000000000..cb760ea14
--- /dev/null
+++ b/modules/signal_processing/src/c/core_Import.def
@@ -0,0 +1,11 @@
+LIBRARY core.dll
+
+
+EXPORTS
+; ---------------------------------------
+; Libscilab
+; ---------------------------------------
+callFunctionFromGateway
+com_
+MyHeapAlloc
+MyHeapFree
diff --git a/modules/signal_processing/src/c/corrtable.c b/modules/signal_processing/src/c/corrtable.c
new file mode 100755
index 000000000..d19846e40
--- /dev/null
+++ b/modules/signal_processing/src/c/corrtable.c
@@ -0,0 +1,90 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ *
+ */
+
+#include "GetFunctionByName.h"
+#include "dynlib_signal_processing.h"
+#include "machine.h"
+/***********************************
+* corr ( dgetx dgety )
+***********************************/
+
+#define ARGS_dgetx double *,int*,int*
+typedef void (*dgetxf)(ARGS_dgetx);
+
+#define ARGS_dgety double *,int*,int*
+typedef void (*dgetyf)(ARGS_dgety);
+
+
+/**************** dgetx ***************/
+extern void C2F(corexx)(ARGS_dgetx);
+SIGNAL_PROCESSING_IMPEXP void C2F(dgetx)(ARGS_dgetx);
+SIGNAL_PROCESSING_IMPEXP void C2F(setdgetx)(char *name, int *rep);
+
+FTAB FTab_dgetx[] =
+{
+ {"corexx", (voidf) C2F(corexx)},
+ {(char *) 0, (voidf) 0}
+};
+
+/**************** dgety ***************/
+extern void C2F(corexy)(ARGS_dgety);
+SIGNAL_PROCESSING_IMPEXP void C2F(dgety)(ARGS_dgety);
+SIGNAL_PROCESSING_IMPEXP void C2F(setdgety)(char *name, int *rep);
+
+FTAB FTab_dgety[] =
+{
+ {"corexy", (voidf) C2F(corexy)},
+ {(char *) 0, (voidf) 0}
+};
+
+/***********************************
+* Search Table for corr
+* corr uses two externals : dgetx and dgety
+***********************************/
+
+/** the current function fixed by setdgetx **/
+
+
+static dgetxf dgetxfonc ;
+
+/** function call **/
+
+void C2F(dgetx)(double *x, int *incr, int *istart)
+{
+ (*dgetxfonc)(x, incr, istart);
+}
+
+/** fixes the function associated to name **/
+
+void C2F(setdgetx)(char *name, int *rep)
+{
+ dgetxfonc = (dgetxf) GetFunctionByName(name, rep, FTab_dgetx);
+}
+
+
+/** the current function fixed by setdgety **/
+
+static dgetyf dgetyfonc ;
+
+void C2F(dgety)(double *y, int *incr, int *istart)
+{
+ (*dgetyfonc)(y, incr, istart);
+}
+
+
+/** fixes the function associated to name **/
+
+void C2F(setdgety)(char *name, int *rep)
+{
+ dgetyfonc = (dgetyf) GetFunctionByName(name, rep, FTab_dgety);
+}
+
diff --git a/modules/signal_processing/src/c/libscisignal_processing_algo_la-conv2.lo b/modules/signal_processing/src/c/libscisignal_processing_algo_la-conv2.lo
new file mode 100755
index 000000000..8987a66ac
--- /dev/null
+++ b/modules/signal_processing/src/c/libscisignal_processing_algo_la-conv2.lo
@@ -0,0 +1,12 @@
+# src/c/libscisignal_processing_algo_la-conv2.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscisignal_processing_algo_la-conv2.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/c/libscisignal_processing_algo_la-corrtable.lo b/modules/signal_processing/src/c/libscisignal_processing_algo_la-corrtable.lo
new file mode 100755
index 000000000..2efad5461
--- /dev/null
+++ b/modules/signal_processing/src/c/libscisignal_processing_algo_la-corrtable.lo
@@ -0,0 +1,12 @@
+# src/c/libscisignal_processing_algo_la-corrtable.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscisignal_processing_algo_la-corrtable.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/c/signal_processing.rc b/modules/signal_processing/src/c/signal_processing.rc
new file mode 100755
index 000000000..8cd689ad6
--- /dev/null
+++ b/modules/signal_processing/src/c/signal_processing.rc
@@ -0,0 +1,96 @@
+// Microsoft Visual C++ generated resource script.
+//
+
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+//#include "afxres.h"
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "windows.h"
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// French (France) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)
+#ifdef _WIN32
+LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 5,5,2,0
+ PRODUCTVERSION 5,5,2,0
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040c04b0"
+ BEGIN
+ VALUE "FileDescription", "signal_processing module"
+ VALUE "FileVersion", "5, 5, 2, 0"
+ VALUE "InternalName", "signal_processing module"
+ VALUE "LegalCopyright", "Copyright (C) 2017"
+ VALUE "OriginalFilename", "signal_processing.dll"
+ VALUE "ProductName", "signal_processing module"
+ VALUE "ProductVersion", "5, 5, 2, 0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x40c, 1200
+ END
+END
+
+#endif // French (France) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/modules/signal_processing/src/c/signal_processing.vcxproj b/modules/signal_processing/src/c/signal_processing.vcxproj
new file mode 100755
index 000000000..f22b281f5
--- /dev/null
+++ b/modules/signal_processing/src/c/signal_processing.vcxproj
@@ -0,0 +1,247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{A3AD381E-C0DD-45BB-ACB2-C0A0DB33A606}</ProjectGuid>
+ <RootNamespace>signal_processing</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>.;../../includes;../../../output_stream/includes;../../../localization/includes;../../../dynamic_link/includes;../../../string/includes;../../../core/includes;../../../../libs/intl;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;SIGNAL_PROCESSING_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <PreLinkEvent>
+ <Message>Make dependencies</Message>
+ <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing_f.lib" 1&gt;NUL 2&gt;NUL
+</Command>
+ </PreLinkEvent>
+ <Link>
+ <AdditionalDependencies>../../../../bin/blasplus.lib;core.lib;signal_processing_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>.;../../includes;../../../output_stream/includes;../../../localization/includes;../../../dynamic_link/includes;../../../string/includes;../../../core/includes;../../../../libs/intl;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;SIGNAL_PROCESSING_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <PreLinkEvent>
+ <Message>Make dependencies</Message>
+ <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing_f.lib" 1&gt;NUL 2&gt;NUL
+</Command>
+ </PreLinkEvent>
+ <Link>
+ <AdditionalDependencies>../../../../bin/blasplus.lib;core.lib;signal_processing_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>.;../../includes;../../../output_stream/includes;../../../localization/includes;../../../dynamic_link/includes;../../../string/includes;../../../core/includes;../../../../libs/intl;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;SIGNAL_PROCESSING_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <PreLinkEvent>
+ <Message>Make dependencies</Message>
+ <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing_f.lib" 1&gt;NUL 2&gt;NUL
+</Command>
+ </PreLinkEvent>
+ <Link>
+ <AdditionalDependencies>../../../../bin/blasplus.lib;core.lib;signal_processing_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>false</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>.;../../includes;../../../output_stream/includes;../../../localization/includes;../../../dynamic_link/includes;../../../string/includes;../../../core/includes;../../../../libs/intl;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;SIGNAL_PROCESSING_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <PreLinkEvent>
+ <Message>Make dependencies</Message>
+ <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing_f.lib" 1&gt;NUL 2&gt;NUL
+</Command>
+ </PreLinkEvent>
+ <Link>
+ <AdditionalDependencies>../../../../bin/blasplus.lib;core.lib;signal_processing_f.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <GenerateDebugInformation>false</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\sci_gateway\c\sci_conv2.c" />
+ <ClCompile Include="conv2.c" />
+ <ClCompile Include="corrtable.c" />
+ <ClCompile Include="DllmainSignal_processing.c" />
+ <ClCompile Include="..\..\sci_gateway\c\gw_signal.c" />
+ <ClCompile Include="..\..\sci_gateway\c\sci_amell.c" />
+ <ClCompile Include="..\..\sci_gateway\c\sci_corr.c" />
+ <ClCompile Include="..\..\sci_gateway\c\sci_delip.c" />
+ <ClCompile Include="..\..\sci_gateway\c\sci_ffir.c" />
+ <ClCompile Include="..\..\sci_gateway\c\sci_fft.c" />
+ <ClCompile Include="..\..\sci_gateway\c\sci_fiir.c" />
+ <ClCompile Include="..\..\sci_gateway\c\sci_remez.c" />
+ <ClCompile Include="..\..\sci_gateway\c\sci_rpem.c" />
+ <ClCompile Include="..\..\sci_gateway\c\sci_syredi.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\includes\dynlib_signal_processing.h" />
+ <ClInclude Include="..\..\includes\gw_signal.h" />
+ <ClInclude Include="conv2.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\..\locales\signal_processing.pot" />
+ <None Include="core_import.def" />
+ <None Include="signal_processing_f_Import.def" />
+ <None Include="..\..\Makefile.am" />
+ <None Include="..\..\signal_processing.iss" />
+ <None Include="..\..\sci_gateway\signal_processing_gateway.xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="signal_processing.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\..\tools\Dumpexts\Dumpexts.vcxproj">
+ <Project>{3170e4c2-1173-4264-a222-7ee8ccb3ddf7}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\api_scilab\api_scilab.vcxproj">
+ <Project>{43c5bab1-1dca-4743-a183-77e0d42fe7d0}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\dynamic_link\src\c\dynamic_link.vcxproj">
+ <Project>{eab6c580-22b3-4359-ba1d-dd7499a96163}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\output_stream\src\c\output_stream.vcxproj">
+ <Project>{a5911cd7-f8e8-440c-a23e-4843a0636f3a}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/modules/signal_processing/src/c/signal_processing.vcxproj.filters b/modules/signal_processing/src/c/signal_processing.vcxproj.filters
new file mode 100755
index 000000000..d1dd8f3a8
--- /dev/null
+++ b/modules/signal_processing/src/c/signal_processing.vcxproj.filters
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{e9de913f-eaff-49f5-a98a-c1e43a30fac3}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{7d355e9c-4382-4b73-b57c-232fd1df0fff}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="localization">
+ <UniqueIdentifier>{daf54f0c-b81b-48af-b068-f015dbe56e00}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Libraries Dependencies">
+ <UniqueIdentifier>{5055e0f1-e648-40da-98ae-c94c3a3b6c2e}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Libraries Dependencies\Imports">
+ <UniqueIdentifier>{c6ac18c8-f30f-4076-a6ed-e24976cec289}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{f64486fd-3c8c-42ba-9661-87c1796473cd}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="corrtable.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="DllmainSignal_processing.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\c\gw_signal.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\c\sci_amell.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\c\sci_corr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\c\sci_delip.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\c\sci_ffir.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\c\sci_fft.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\c\sci_fiir.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\c\sci_remez.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\c\sci_rpem.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\c\sci_syredi.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="conv2.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\c\sci_conv2.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\includes\dynlib_signal_processing.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\includes\gw_signal.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="conv2.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="core_import.def">
+ <Filter>Libraries Dependencies\Imports</Filter>
+ </None>
+ <None Include="signal_processing_f_Import.def">
+ <Filter>Libraries Dependencies\Imports</Filter>
+ </None>
+ <None Include="..\..\Makefile.am" />
+ <None Include="..\..\signal_processing.iss" />
+ <None Include="..\..\sci_gateway\signal_processing_gateway.xml" />
+ <None Include="..\..\locales\signal_processing.pot">
+ <Filter>localization</Filter>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="signal_processing.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/modules/signal_processing/src/c/signal_processing_f_Import.def b/modules/signal_processing/src/c/signal_processing_f_Import.def
new file mode 100755
index 000000000..abcce6939
--- /dev/null
+++ b/modules/signal_processing/src/c/signal_processing_f_Import.def
@@ -0,0 +1,17 @@
+LIBRARY signal_processing_f.dll
+
+
+EXPORTS
+; ---------------------------------------
+; signal_processing_f
+; ---------------------------------------
+corexy_
+corexx_
+scisyredi_
+scirpem_
+sciremez_
+scifft_
+scifiir_
+scidelip_
+scicorr_
+sciamell_ \ No newline at end of file
diff --git a/modules/signal_processing/src/fortran/.deps/.dirstamp b/modules/signal_processing/src/fortran/.deps/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.deps/.dirstamp
diff --git a/modules/signal_processing/src/fortran/.dirstamp b/modules/signal_processing/src/fortran/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.dirstamp
diff --git a/modules/signal_processing/src/fortran/.libs/amell.o b/modules/signal_processing/src/fortran/.libs/amell.o
new file mode 100755
index 000000000..fb3730913
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/amell.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/bldenz.o b/modules/signal_processing/src/fortran/.libs/bldenz.o
new file mode 100755
index 000000000..a25bf979c
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/bldenz.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/blnumz.o b/modules/signal_processing/src/fortran/.libs/blnumz.o
new file mode 100755
index 000000000..9b5fcee9f
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/blnumz.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/bounn.o b/modules/signal_processing/src/fortran/.libs/bounn.o
new file mode 100755
index 000000000..1b808b471
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/bounn.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/cheby.o b/modules/signal_processing/src/fortran/.libs/cheby.o
new file mode 100755
index 000000000..261fbb014
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/cheby.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/cmpse2.o b/modules/signal_processing/src/fortran/.libs/cmpse2.o
new file mode 100755
index 000000000..dd513432c
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/cmpse2.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/cmpse3.o b/modules/signal_processing/src/fortran/.libs/cmpse3.o
new file mode 100755
index 000000000..090cf4d4b
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/cmpse3.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/coeft.o b/modules/signal_processing/src/fortran/.libs/coeft.o
new file mode 100755
index 000000000..5c46933e1
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/coeft.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/compel.o b/modules/signal_processing/src/fortran/.libs/compel.o
new file mode 100755
index 000000000..cebe47e9e
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/compel.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/degree.o b/modules/signal_processing/src/fortran/.libs/degree.o
new file mode 100755
index 000000000..ce6354ee5
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/degree.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/deli1.o b/modules/signal_processing/src/fortran/.libs/deli1.o
new file mode 100755
index 000000000..dc7505c43
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/deli1.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/deli11.o b/modules/signal_processing/src/fortran/.libs/deli11.o
new file mode 100755
index 000000000..9331e5a6a
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/deli11.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/deli2.o b/modules/signal_processing/src/fortran/.libs/deli2.o
new file mode 100755
index 000000000..1779a5a08
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/deli2.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/delip.o b/modules/signal_processing/src/fortran/.libs/delip.o
new file mode 100755
index 000000000..5e672d2a7
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/delip.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/dellk.o b/modules/signal_processing/src/fortran/.libs/dellk.o
new file mode 100755
index 000000000..5a2142191
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/dellk.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi00.o b/modules/signal_processing/src/fortran/.libs/desi00.o
new file mode 100755
index 000000000..e1d52b158
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi00.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi01.o b/modules/signal_processing/src/fortran/.libs/desi01.o
new file mode 100755
index 000000000..5ddc24713
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi01.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi11.o b/modules/signal_processing/src/fortran/.libs/desi11.o
new file mode 100755
index 000000000..c05f67794
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi11.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi12.o b/modules/signal_processing/src/fortran/.libs/desi12.o
new file mode 100755
index 000000000..70dff4f5c
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi12.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi14.o b/modules/signal_processing/src/fortran/.libs/desi14.o
new file mode 100755
index 000000000..e370e8b6b
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi14.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi21.o b/modules/signal_processing/src/fortran/.libs/desi21.o
new file mode 100755
index 000000000..cc2cd5fd3
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi21.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi22.o b/modules/signal_processing/src/fortran/.libs/desi22.o
new file mode 100755
index 000000000..1172f6475
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi22.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi24.o b/modules/signal_processing/src/fortran/.libs/desi24.o
new file mode 100755
index 000000000..8558e4a11
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi24.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desia.o b/modules/signal_processing/src/fortran/.libs/desia.o
new file mode 100755
index 000000000..06c076922
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desia.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desib.o b/modules/signal_processing/src/fortran/.libs/desib.o
new file mode 100755
index 000000000..048f520e7
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desib.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/dfft2.o b/modules/signal_processing/src/fortran/.libs/dfft2.o
new file mode 100755
index 000000000..2ee3a3752
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/dfft2.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/dfftbi.o b/modules/signal_processing/src/fortran/.libs/dfftbi.o
new file mode 100755
index 000000000..d66015a1c
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/dfftbi.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/dfftmx.o b/modules/signal_processing/src/fortran/.libs/dfftmx.o
new file mode 100755
index 000000000..00d6b3f19
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/dfftmx.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/dgee01.o b/modules/signal_processing/src/fortran/.libs/dgee01.o
new file mode 100755
index 000000000..643f10afd
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/dgee01.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/dsn2.o b/modules/signal_processing/src/fortran/.libs/dsn2.o
new file mode 100755
index 000000000..1913ecd7a
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/dsn2.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/dsqrtc.o b/modules/signal_processing/src/fortran/.libs/dsqrtc.o
new file mode 100755
index 000000000..349c52930
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/dsqrtc.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/fft842.o b/modules/signal_processing/src/fortran/.libs/fft842.o
new file mode 100755
index 000000000..a42c97426
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/fft842.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/filbut.o b/modules/signal_processing/src/fortran/.libs/filbut.o
new file mode 100755
index 000000000..5b73b1844
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/filbut.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/freque.o b/modules/signal_processing/src/fortran/.libs/freque.o
new file mode 100755
index 000000000..7816f9470
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/freque.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/gee.o b/modules/signal_processing/src/fortran/.libs/gee.o
new file mode 100755
index 000000000..8ec609f9b
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/gee.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/hammin.o b/modules/signal_processing/src/fortran/.libs/hammin.o
new file mode 100755
index 000000000..63f855ff6
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/hammin.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/ino.o b/modules/signal_processing/src/fortran/.libs/ino.o
new file mode 100755
index 000000000..e3795b059
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/ino.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/nstabl.o b/modules/signal_processing/src/fortran/.libs/nstabl.o
new file mode 100755
index 000000000..332a5e0dd
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/nstabl.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/ouch.o b/modules/signal_processing/src/fortran/.libs/ouch.o
new file mode 100755
index 000000000..523a79748
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/ouch.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/parcha.o b/modules/signal_processing/src/fortran/.libs/parcha.o
new file mode 100755
index 000000000..0ec11635d
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/parcha.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/poles.o b/modules/signal_processing/src/fortran/.libs/poles.o
new file mode 100755
index 000000000..d652ee3f6
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/poles.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/r2tx.o b/modules/signal_processing/src/fortran/.libs/r2tx.o
new file mode 100755
index 000000000..70ce0c20b
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/r2tx.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/r4tx.o b/modules/signal_processing/src/fortran/.libs/r4tx.o
new file mode 100755
index 000000000..d90bf64f2
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/r4tx.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/r8tx.o b/modules/signal_processing/src/fortran/.libs/r8tx.o
new file mode 100755
index 000000000..e24bcd2da
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/r8tx.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/remez.o b/modules/signal_processing/src/fortran/.libs/remez.o
new file mode 100755
index 000000000..a47b83032
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/remez.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/romeg.o b/modules/signal_processing/src/fortran/.libs/romeg.o
new file mode 100755
index 000000000..54c29e35a
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/romeg.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/rpem.o b/modules/signal_processing/src/fortran/.libs/rpem.o
new file mode 100755
index 000000000..313ec475b
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/rpem.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/sn.o b/modules/signal_processing/src/fortran/.libs/sn.o
new file mode 100755
index 000000000..8f885b5f6
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/sn.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/snell.o b/modules/signal_processing/src/fortran/.libs/snell.o
new file mode 100755
index 000000000..67ba9a9ec
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/snell.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/syredi.o b/modules/signal_processing/src/fortran/.libs/syredi.o
new file mode 100755
index 000000000..e37e8cebd
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/syredi.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/tg02ad.o b/modules/signal_processing/src/fortran/.libs/tg02ad.o
new file mode 100755
index 000000000..d6f695525
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/tg02ad.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/tranpo.o b/modules/signal_processing/src/fortran/.libs/tranpo.o
new file mode 100755
index 000000000..604f965e7
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/tranpo.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/transn.o b/modules/signal_processing/src/fortran/.libs/transn.o
new file mode 100755
index 000000000..5d585bb5f
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/transn.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/tranze.o b/modules/signal_processing/src/fortran/.libs/tranze.o
new file mode 100755
index 000000000..078af66f5
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/tranze.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/trbipo.o b/modules/signal_processing/src/fortran/.libs/trbipo.o
new file mode 100755
index 000000000..074f84434
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/trbipo.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/trbize.o b/modules/signal_processing/src/fortran/.libs/trbize.o
new file mode 100755
index 000000000..5c80a5458
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/trbize.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/tscccf.o b/modules/signal_processing/src/fortran/.libs/tscccf.o
new file mode 100755
index 000000000..ae0076283
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/tscccf.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/Elementary_functions_Import.def b/modules/signal_processing/src/fortran/Elementary_functions_Import.def
new file mode 100755
index 000000000..a907e258f
--- /dev/null
+++ b/modules/signal_processing/src/fortran/Elementary_functions_Import.def
@@ -0,0 +1,6 @@
+ LIBRARY elementary_functions.dll
+
+
+EXPORTS
+;elementary_functions
+unsfdcopy_ \ No newline at end of file
diff --git a/modules/signal_processing/src/fortran/Elementary_functions_f_Import.def b/modules/signal_processing/src/fortran/Elementary_functions_f_Import.def
new file mode 100755
index 000000000..f385d393e
--- /dev/null
+++ b/modules/signal_processing/src/fortran/Elementary_functions_f_Import.def
@@ -0,0 +1,13 @@
+ LIBRARY elementary_functions_f.dll
+
+
+EXPORTS
+;elementary_functions_f
+arcosh_
+arsinh_
+coshin_
+dset_
+entier_
+iset_
+lnblnk_
+simple_
diff --git a/modules/signal_processing/src/fortran/amell.f b/modules/signal_processing/src/fortran/amell.f
new file mode 100755
index 000000000..56b2b15ac
--- /dev/null
+++ b/modules/signal_processing/src/fortran/amell.f
@@ -0,0 +1,93 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+ subroutine amell(du, dk, dsn2 ,n)
+c!purpose
+c calculation of the jacobi's elliptic function am(u,k)
+c
+c external calculation of the parameter necessary
+c ddk = k($dk)
+c dq = exp(-pi*k'/k) ... (jacobi's nome)
+c!calling sequence
+c subroutine amell(du, dk, dsn2 ,n)
+c double precision du(n),dsn2(n),dk
+c integer n
+c!
+c
+ double precision dpi, domi,dsn2
+ double precision de, dz, dpi2, dq, dm, du, dk, dc, dqq, dh, dq1,
+ * dq2 ,ddk ,dkprim,dsn22,du1
+ double precision dlamch
+ dimension du(n),dsn2(n)
+ logical neg
+c
+ data de, dz /1.0d+0,2.0d+0/
+c
+ domi=2.0d+0*dlamch('p')
+ dpi=4.0d+0*atan(1.0d+0)
+ call compel(dk,ddk)
+ call compel(sqrt(1.0d+0-dk*dk),dkprim)
+ do 1 ijk=1,n
+ neg=.false.
+ du1=du(ijk)
+ if(du1.lt.0.0d+0) then
+ neg=.true.
+ du1=-du1
+ endif
+ du1=mod(du1,4.0d+0*ddk)
+ dq=exp(-dpi*dkprim/ddk)
+ dpi2 = dpi/dz
+ if (abs(dq).ge.de) go to 30
+c
+ dm = dpi2*du1/ddk
+ dc = dz*dm
+ dc = cos(dc)
+c
+ dm = sin(dm)*ddk/dpi2
+ dqq = dq*dq
+ dq1 = dq
+ dq2 = dqq
+c
+ do 10 i=1,100
+ dh = (de-dq1)/(de-dq2)
+ dh = dh*dh
+ dh = dh*(de-dz*dq2*dc+dq2*dq2)
+ dh = dh/(de-dz*dq1*dc+dq1*dq1)
+ dm = dm*dh
+c
+ dh = abs(de-dh)
+ if (dh.lt.domi) go to 20
+c
+ dq1 = dq1*dqq
+ dq2 = dq2*dqq
+ 10 continue
+c
+ go to 30
+c
+ 20 if(dm.lt.-1.0d+0) dm=-1.0d+0
+ if(dm.gt.1.0d+0) dm=1.0d+0
+ dsn22 = asin(dm)
+ if(dsn22.lt.0.0d+0) dsn22=dsn22+dpi*2.0d+0
+ if(du1.ge.ddk.and.du1.le.2.0d+0*ddk) then
+ dsn22=dpi-dsn22
+ endif
+ if(du1.ge.2.0d+0*ddk.and .du1.le.3.0d+0*ddk) then
+ dsn22=3.0d+0*dpi-dsn22
+ endif
+ goto 2
+c
+ 30 dsn22 = 0.0d+0
+ 2 continue
+ if (neg) then
+ dsn22=-dsn22
+ endif
+ dsn2(ijk)=dsn22
+ 1 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/amell.lo b/modules/signal_processing/src/fortran/amell.lo
new file mode 100755
index 000000000..1a4e2ccd7
--- /dev/null
+++ b/modules/signal_processing/src/fortran/amell.lo
@@ -0,0 +1,12 @@
+# src/fortran/amell.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/amell.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/bldenz.f b/modules/signal_processing/src/fortran/bldenz.f
new file mode 100755
index 000000000..d08c7fe6d
--- /dev/null
+++ b/modules/signal_processing/src/fortran/bldenz.f
@@ -0,0 +1,36 @@
+ subroutine bldenz(ndeg,nj,zfa,zpr,zpi,nb,fact,c1,c0)
+c!purpose
+c build denominator blocks of second order -- z-domain
+c!calling sequence
+c subroutine bldenz (ndeg,nj,zfa,zpr,zpi,nb,fact,c1,c0)
+c implicit double precision (a-h,o-z)
+c double precision zpr(*),zpi(*)
+c double precision c1(*),c0(*)
+c!
+ implicit double precision (a-h,o-z)
+ double precision zpr(*),zpi(*)
+ double precision c1(*),c0(*)
+ flmi=2.0d+0*dlamch('p')
+ nb = (ndeg+1)/2
+ n = 0
+ fact = zfa
+ do 40 i=1,nb
+ n = n + 1
+ qr = zpr(n)
+ qi = zpi(n)
+ if (abs(qi).lt.flmi) go to 10
+ c1(i) = -2.0d+0*qr
+ c0(i) = qr*qr + qi*qi
+ go to 40
+ 10 if (n.ge.nj) go to 20
+ if (abs(zpi(n+1)).lt.flmi) go to 30
+ 20 c1(i) = -qr
+ c0(i) = 0.0d+0
+ go to 40
+ 30 n = n + 1
+ qi = zpr(n)
+ c1(i) = -qr - qi
+ c0(i) = qr*qi
+ 40 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/bldenz.lo b/modules/signal_processing/src/fortran/bldenz.lo
new file mode 100755
index 000000000..e433f6b52
--- /dev/null
+++ b/modules/signal_processing/src/fortran/bldenz.lo
@@ -0,0 +1,12 @@
+# src/fortran/bldenz.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/bldenz.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/blnumz.f b/modules/signal_processing/src/fortran/blnumz.f
new file mode 100755
index 000000000..db1090adf
--- /dev/null
+++ b/modules/signal_processing/src/fortran/blnumz.f
@@ -0,0 +1,48 @@
+ subroutine blnumz(nzm,nzero,zzr,zzi,b2,b1,b0,nze)
+c!but
+c build numerator blocks of second order
+c!
+ implicit double precision (a-h,o-z)
+ dimension nzm(*),nzero(*),zzr(*),zzi(*)
+ double precision b0(*),b1(*),b2(*)
+ dimension nze(*)
+c
+ n = 0
+ me = nzm(4)
+ do 10 i=1,me
+ nze(i) = nzero(i)
+ 10 continue
+c
+ do 70 i=1,me
+ qr = zzr(i)
+ nz = nze(i)
+c
+ 20 if (nz.eq.0) go to 70
+ n = n + 1
+ b2(n) = 1.0d+0
+ if (nz.eq.1) go to 30
+ b1(n) = -2.0d+0*qr
+ b0(n) = 1.0d+0
+ nz = nz - 2
+ if (nz.gt.0) go to 20
+ go to 70
+c
+ 30 if (i.eq.me) go to 60
+ ma = i + 1
+ do 40 ii=ma,me
+ if (zzi(ii).eq.0.0d+0) go to 50
+ 40 continue
+ go to 60
+c
+ 50 qrr = zzr(ii)
+ b1(n) = -qr - qrr
+ b0(n) = qr*qrr
+ nze(ii) = nze(ii) - 1
+ go to 70
+c
+ 60 b1(n) = -qr
+ b0(n) = 0.0d+0
+c
+ 70 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/blnumz.lo b/modules/signal_processing/src/fortran/blnumz.lo
new file mode 100755
index 000000000..4ee64796d
--- /dev/null
+++ b/modules/signal_processing/src/fortran/blnumz.lo
@@ -0,0 +1,12 @@
+# src/fortran/blnumz.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/blnumz.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/bounn.f b/modules/signal_processing/src/fortran/bounn.f
new file mode 100755
index 000000000..4b22f6a44
--- /dev/null
+++ b/modules/signal_processing/src/fortran/bounn.f
@@ -0,0 +1,54 @@
+C/MEMBR ADD NAME=BOUNN,SSI=0
+ subroutine bounn(adeg,acap12,vsn)
+c!purpose
+C calculation of a bounn for vsn or acap12 for elliptic filters
+c!
+ implicit double precision (a-h,o-z)
+c
+ dimension dk(3), df(3)
+ data de /1.0d+0/
+ dff(dd) = (dellk(dd)*dkk/dellk(sqrt(de-dd*dd)))**ii - ddeg
+ dpi=4.0d+0*atan(1.0d+00)
+ if (acap12.le.0.0d+0) go to 10
+ dcap12 = acap12
+ deg = 1.0d+0/adeg
+ ii = 1
+ go to 20
+ 10 dcap12 = de/vsn
+ deg = adeg
+ ii = -1
+ 20 dcap14 = sqrt(de-dcap12*dcap12)
+ dkk = dellk(dcap14)/dellk(dcap12)
+ dq = exp(-dpi*dkk*deg)
+ dk1 = 4.0d+0*sqrt(dq)
+ if (dk1.lt.de) go to 30
+ dq = 2.0d+0*dq
+ dq = (de-dq)/(de+dq)
+ dq = dq*dq
+ dk1 = sqrt(de-dq*dq)
+ 30 dk(1) = dk1
+ dk(2) = (de+dk(1))/2.0d+0
+ ddeg = adeg
+ df(1) = dff(dk(1))
+ df(2) = dff(dk(2))
+ 40 dk(3) = dk(1) - df(1)*(dk(1)-dk(2))/(df(1)-df(2))
+ df(3) = dff(dk(3))
+ if (abs(df(3)).lt.1.0d-6) go to 60
+ dmax = 0.0d+0
+ do 50 j=1,3
+ dab = abs(df(j))
+ if (dmax.gt.dab) go to 50
+ jj = j
+ dmax = dab
+ 50 continue
+ if (jj.eq.3) go to 40
+ dk(jj) = dk(3)
+ df(jj) = df(3)
+ go to 40
+ 60 if (acap12.le.0.) go to 70
+ dde = de/dk(3)
+ vsn = dde
+ return
+ 70 acap12 = dk(3)
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/bounn.lo b/modules/signal_processing/src/fortran/bounn.lo
new file mode 100755
index 000000000..fb5424368
--- /dev/null
+++ b/modules/signal_processing/src/fortran/bounn.lo
@@ -0,0 +1,12 @@
+# src/fortran/bounn.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/bounn.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/cheby.f b/modules/signal_processing/src/fortran/cheby.f
new file mode 100755
index 000000000..9e354c78a
--- /dev/null
+++ b/modules/signal_processing/src/fortran/cheby.f
@@ -0,0 +1,96 @@
+C/MEMBR ADD NAME=CHEBY,SSI=0
+ subroutine cheby(ordr,demi,ieo,dp,x0,tam,win)
+c!
+c sous-programme: cheby
+c fenetre de dolph chebyshev
+c en double precision
+c acheve le 05/12/85
+c ecrit par philippe touron
+c
+c
+c parametres entrants
+c -------------------
+c ordr, l'ordre du filtre (entier)
+c demi, l'ordre de la demi fenetre (entier)
+c ieo, indicateur de parite vaut 0 si ordr pair et 1 sinon (entier)
+c dp, attenuation en absolu (reelle)
+c x0, constante de la fenetre de chebyshev fonction de
+c la largeur du lobe principale (reelle)
+c tam, tableau de travail (reels) qui doit etre dans un programme
+c appelant dimensionne a 3 fois ordr)
+c
+c parametres sortants
+c -------------------
+c win, tableau de valeurs de la fenetre (reelles) qui doit dans
+c un programme appelant etre dimensionne a ordr
+c
+c variables internes
+c ------------------
+c c0,c1,c2, des buffers de calcul (reels)
+c compt,indi,xcompt,xindi, compteurs de boucles (entiers et reels)
+c teta,gama, coefficients de la fenetres de chebyshev (reels)
+c
+c sous programmes appele: coshin
+c
+c!
+ double precision win(*),tam(*)
+ double precision x0,dp,xordr,teta,gama,freq
+ double precision pi,twopi,twn,c0,c1,c2,somm,xcompt,xindi
+ double precision coshin
+ integer ordr,demi,compt,indi,icompt,jcompt
+c
+ xordr=dble(ordr)
+ teta=(x0+1.)/2.0d+0
+ gama=(x0-1.)/2.0d+0
+ pi=acos(-1.0d+0)
+ twopi=2.0d+0*pi
+ c0=(xordr-1.0d+0)/2.0d+0
+ do 40 compt=1,ordr
+ icompt=ordr+compt
+ jcompt=icompt+ordr
+ xcompt=dble(compt)-1.0d+0
+ c1=xcompt/xordr
+ freq=teta*cos(twopi*c1)+gama
+ CRES=abs(freq)-1.0d+0
+ if (CRES .le. 0) then
+ goto 10
+ else
+ goto 20
+ endif
+10 tam(icompt)=dp*cos(c0*acos(freq))
+ goto 30
+20 tam(icompt)=dp*cosh(c0*coshin(freq))
+30 tam(jcompt)=0.0d+0
+c
+c modification si filtre d'ordr pair
+c
+ if(ieo.eq.1)goto 40
+ tam(jcompt)=-tam(icompt)*sin(pi*c1)
+ tam(icompt)= tam(icompt)*cos(pi*c1)
+ if(compt.gt.(ordr/2+1))then
+ tam(icompt)=-tam(icompt)
+ tam(jcompt)=-tam(jcompt)
+ endif
+40 continue
+c
+c transformee de fourrier inverse
+c
+ twn=twopi/xordr
+ do 60 compt=1,demi
+ xcompt=dble(compt)-1.0d+0
+ somm=0.0d+0
+ do 50 indi=1,ordr
+ icompt=indi+ordr
+ jcompt=icompt+ordr
+ xindi=dble(indi)-1.0d+0
+ somm=somm+tam(icompt)*cos(twn*xindi*xcompt)
+ & +tam(jcompt)*sin(twn*xindi*xcompt)
+50 continue
+ win(compt)=somm
+60 continue
+ c2=win(1)
+ do 70 compt=1,demi
+ win(compt)=win(compt)/c2
+70 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/cheby.lo b/modules/signal_processing/src/fortran/cheby.lo
new file mode 100755
index 000000000..1e976cec9
--- /dev/null
+++ b/modules/signal_processing/src/fortran/cheby.lo
@@ -0,0 +1,12 @@
+# src/fortran/cheby.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/cheby.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/cmpse2.f b/modules/signal_processing/src/fortran/cmpse2.f
new file mode 100755
index 000000000..6d7e189bf
--- /dev/null
+++ b/modules/signal_processing/src/fortran/cmpse2.f
@@ -0,0 +1,143 @@
+C/MEMBR ADD NAME=CMPSE2,SSI=0
+ subroutine cmpse2(m,n,mode,dgetx,dgety,xa,xr,xi,zr,zi,ierr)
+c!
+c calcul de correlations.
+c
+c authors: l r rabiner
+c bell laboratories, murray hill, new jersey 07974
+c r w schafer and d dlugos
+c
+c ieee trans on audio and elect, vol 18, no 4, pp 439-442, 1970.
+c
+c input: m is the section size(must be a power of 2)
+c n is the number of samples to be used is the analysis
+c mode is the data format type
+c mode = 0 auto correlation
+c mode = 1 cross correlation
+c mode = 2 auto covariance
+c mode = 3 cross covariance
+c fs is the sampling frequency in hz
+c iwin is the window type
+c iwin = 1 rectangular window
+c iwin = 2 hamming window
+c
+c modifications scilab :
+c
+c en sortie xa contient m/2+1 coeff de correlation
+c xr,xi,zr,zi sont des tableaux de travail
+c xa,xr,xi dimensionnes a m=puissance de 2
+c zr,zi dimensionnes a m/2+1
+c zr(1),zr(2) contient en sortie xmean et ymean
+c!
+ double precision xa(m),xr(m),xi(m),zr(*),zi(*)
+ double precision xmean,ymean,xsum,ysum,xmnr,xmni
+ double precision xir,xii,yir,yii,yirbis,fn
+ external dgetx,dgety
+ common/ iercorr /iero
+c
+c
+ lshft=m/2
+ mhlf1=lshft+1
+ nsect=(dble(n)+dble(lshft)-1.0d+0)/dble(lshft)
+ iss=1
+ nrd=lshft
+ xsum=0.0d+0
+ ysum=0.0d+0
+ do 70 k=1,nsect
+ if(k.eq.nsect) nrd=n-(k-1)*nrd
+ call dgetx(xa,nrd,iss)
+ if (iero.gt.0) return
+ do 40 i=1,nrd
+ xsum=xsum+xa(i)
+ 40 continue
+ if(mode.eq.2) goto 60
+ call dgety(xa,nrd,iss)
+ if (iero.gt.0) return
+ do 50 i=1,nrd
+ ysum=ysum+xa(i)
+ 50 continue
+ 60 iss=iss+nrd
+ 70 continue
+ xmean=xsum/dble(n)
+ ymean=ysum/dble(n)
+ if(mode.eq.2) ymean=xmean
+ xmnr=xmean
+ xmni=ymean
+ iss=1
+ nrdy=m
+ nrdx=lshft
+ do 90 i=1,mhlf1
+ zr(i)=0.0d+0
+ zi(i)=0.0d+0
+ 90 continue
+ do 190 k=1,nsect
+ nsect1=nsect-1
+ if(k.lt.nsect1) goto 110
+ nrdy=n-(k-1)*lshft
+ if(k.eq.nsect) nrdx=nrdy
+ if(nrdy.eq.m) goto 110
+ nrdy1=nrdy+1
+ do 100 i=nrdy1,m
+ xr(i)=0.0d+0
+ xi(i)=0.0d+0
+ 100 continue
+ 110 call dgetx(xa,nrdy,iss)
+ if (iero.gt.0) return
+ do 120 i=1,nrdy
+ xr(i)=xa(i)
+ xi(i)=xa(i)
+ 120 continue
+ if(mode.eq.0..or.mode.eq.2) goto 140
+ call dgety(xa,nrdy,iss)
+ if (iero.gt.0) return
+ do 130 i=1,nrdy
+ xi(i)=xa(i)
+ 130 continue
+ 140 if(mode.lt.2) goto 160
+ do 150 i=1,nrdy
+ xr(i)=xr(i)-xmnr
+ xi(i)=xi(i)-xmni
+ 150 continue
+ 160 nrdx1=nrdx+1
+ do 170 i=nrdx1,m
+ xr(i)=0.0d+0
+ 170 continue
+ call fft842(0,m,xr,xi,ierr)
+ if(ierr.gt.0) return
+ do 180 i=2,lshft
+ j=m+2-i
+ xir=0.50d+0*(xr(i)+xr(j))
+ xii=0.50d+0*(xi(i)-xi(j))
+ yir=0.50d+0*(xr(j)-xr(i))
+ yii=0.50d+0*(xi(i)+xi(j))
+ yirbis=yir
+ yir=yii
+ yii=yirbis
+ zr(i)=zr(i)+xir*yir+xii*yii
+ zi(i)=zi(i)+xir*yii-xii*yir
+ 180 continue
+ zr(1)=zr(1)+xr(1)*xi(1)
+ zr(mhlf1)=zr(mhlf1)+xr(mhlf1)*xi(mhlf1)
+ iss=iss+lshft
+ 190 continue
+ do 200 i=2,lshft
+ j=m+2-i
+ xr(i)=zr(i)
+ xi(i)=zi(i)
+ xr(j)=zr(i)
+ xi(j)=-zi(i)
+ 200 continue
+ xr(1)=zr(1)
+ xi(1)=zi(1)
+ xr(mhlf1)=zr(mhlf1)
+ xi(mhlf1)=zi(mhlf1)
+ call fft842(1,m,xr,xi,ierr)
+ if(ierr.gt.0) return
+ fn=dble(n)
+ do 210 i=1,mhlf1
+ xa(i)=xr(i)/fn
+ 210 continue
+ xr(1)=xmean
+ xr(2)=ymean
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/cmpse2.lo b/modules/signal_processing/src/fortran/cmpse2.lo
new file mode 100755
index 000000000..2bd8587c2
--- /dev/null
+++ b/modules/signal_processing/src/fortran/cmpse2.lo
@@ -0,0 +1,12 @@
+# src/fortran/cmpse2.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/cmpse2.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/cmpse3.f b/modules/signal_processing/src/fortran/cmpse3.f
new file mode 100755
index 000000000..da68c6efc
--- /dev/null
+++ b/modules/signal_processing/src/fortran/cmpse3.f
@@ -0,0 +1,107 @@
+C/MEMBR ADD NAME=CMPSE3,SSI=0
+ subroutine cmpse3(m,n,mode,x,y,xr,xi,zr,zi,ierr,ichaud,nbx)
+c!
+c calcul de correlations.
+c
+c d'apres rabiner
+c ieee trans on audio and elect, vol 18, no 4, pp 439-442, 1970.
+c
+c input: m is the section size(must be a power of 2)
+c n is the number of samples to be used is the analysis
+c mode is the data format type
+c mode = 0 auto correlation
+c mode = 1 cross correlation
+c
+c modifications scilab :
+c
+c en sortie xa contient m/2+1 coeff de correlation
+c xr,xi sont des tableaux de travail
+c xr,xi dimensionnes a m=puissance de 2
+c zr,zi dimensionnes a m/2+1 en sortie zr et zi sont updates
+c x et y contiennent les deux series a correler
+c!
+ double precision x(n),y(n)
+ double precision xr(m),xi(m),zr(*),zi(*)
+ double precision xir,xii,yir,yii,yirbis
+c
+c
+ lshft=m/2
+ mhlf1=lshft+1
+ nsect=(dble(n)+dble(lshft)-1.0d+0)/dble(lshft)
+ iss=1
+ nrdy=m
+ nrdx=lshft
+c demarrage a chaud
+ if(ichaud.eq.1) then
+ call dset(nbx,0.0d+0,xi,1)
+ if (mode.eq.1) then
+ call dcopy(m-nbx,y,1,xi(nbx+1),1)
+ endif
+ if (mode.eq.0) then
+ call dcopy(m-nbx,x,1,xi(nbx+1),1)
+ endif
+ call fft842(0,m,xr,xi,ierr)
+ do 181 i=2,lshft
+ j=m+2-i
+ xir=0.50d+0*(xr(i)+xr(j))
+ xii=0.50d+0*(xi(i)-xi(j))
+ yir=0.50d+0*(xr(j)-xr(i))
+ yii=0.50d+0*(xi(i)+xi(j))
+ yirbis=yir
+ yir=yii
+ yii=yirbis
+ zr(i)=zr(i)+xir*yir+xii*yii
+ zi(i)=zi(i)+xir*yii-xii*yir
+ 181 continue
+ zr(1)=zr(1)+xr(1)*xi(1)
+ zr(mhlf1)=zr(mhlf1)+xr(mhlf1)*xi(mhlf1)
+ endif
+ do 190 k=1,nsect
+ nsect1=nsect-1
+ if(k.lt.nsect1) goto 110
+ nrdy=n-(k-1)*lshft
+ if(k.eq.nsect) nrdx=nrdy
+ if(nrdy.eq.m) goto 110
+ nrdy1=nrdy+1
+ do 100 i=nrdy1,m
+ xr(i)=0.0d+0
+ xi(i)=0.0d+0
+ 100 continue
+ 110 continue
+ call dcopy(nrdy,x(iss),1,xr,1)
+ if (mode.eq.0) then
+ call dcopy(nrdy,x(iss),1,xi,1)
+ endif
+ if(mode.eq.1) then
+ call dcopy(nrdy,y(iss),1,xi,1)
+ endif
+ nrdx1=nrdx+1
+ do 170 i=nrdx1,m
+ xr(i)=0.0d+0
+ 170 continue
+ call fft842(0,m,xr,xi,ierr)
+ if(ierr.gt.0) return
+ do 180 i=2,lshft
+ j=m+2-i
+ xir=0.50d+0*(xr(i)+xr(j))
+ xii=0.50d+0*(xi(i)-xi(j))
+ yir=0.50d+0*(xr(j)-xr(i))
+ yii=0.50d+0*(xi(i)+xi(j))
+ yirbis=yir
+ yir=yii
+ yii=yirbis
+ zr(i)=zr(i)+xir*yir+xii*yii
+ zi(i)=zi(i)+xir*yii-xii*yir
+ 180 continue
+ zr(1)=zr(1)+xr(1)*xi(1)
+ zr(mhlf1)=zr(mhlf1)+xr(mhlf1)*xi(mhlf1)
+ iss=iss+lshft
+ 190 continue
+ do 200 i=2,lshft
+ j=m+2-i
+ zr(j)=zr(i)
+ zi(j)=-zi(i)
+ 200 continue
+ nbx=nrdy
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/cmpse3.lo b/modules/signal_processing/src/fortran/cmpse3.lo
new file mode 100755
index 000000000..243ba8d42
--- /dev/null
+++ b/modules/signal_processing/src/fortran/cmpse3.lo
@@ -0,0 +1,12 @@
+# src/fortran/cmpse3.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/cmpse3.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/coeft.f b/modules/signal_processing/src/fortran/coeft.f
new file mode 100755
index 000000000..936973994
--- /dev/null
+++ b/modules/signal_processing/src/fortran/coeft.f
@@ -0,0 +1,41 @@
+C/MEMBR ADD NAME=COEFT,SSI=0
+ subroutine coeft(ordre,poler,polei,gain)
+c!
+c sous-programme : coeft
+c calcul du gain de la fonction de transfert
+c et des coefficients de la decomposition en elements simples
+c en double precision
+c ecrit par gregoire de nanteuil le 08-10-1985
+c
+c
+c parametres entrants
+c poler : tableau des parties reelles des poles
+c de la fonction de transfert.
+c
+c polei : tableau des parties imaginaires des poles
+c de la fonction de transfert.
+c
+c parametres sortants
+c
+c gain : coefficient de la fonction de transfert (gain)
+c
+c variables internes
+c zr,zi,pre,pim,i,j,ordre
+c!
+ double precision gain
+ double precision poler(*),polei(*)
+ double precision zr,zi
+ integer ordre,i
+c
+ zr=1.0d+0
+ zi=0.0d+0
+ do 40 i=1,ordre
+ pre=zr*(-poler(i))-zi*(-polei(i))
+ pim=zi*(-poler(i))+zr*(-polei(i))
+ zr=pre
+ zi=pim
+40 continue
+ gain=zr
+50 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/coeft.lo b/modules/signal_processing/src/fortran/coeft.lo
new file mode 100755
index 000000000..de9450d23
--- /dev/null
+++ b/modules/signal_processing/src/fortran/coeft.lo
@@ -0,0 +1,12 @@
+# src/fortran/coeft.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/coeft.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/compel.f b/modules/signal_processing/src/fortran/compel.f
new file mode 100755
index 000000000..3471e49df
--- /dev/null
+++ b/modules/signal_processing/src/fortran/compel.f
@@ -0,0 +1,37 @@
+ subroutine compel(dk, dellk)
+c!purpose
+c calculate complete elliptic integral of first kind
+c!calling sequence
+c subroutine compel(dk, dellk)
+c double precision dk,dellk
+c!
+ double precision dpi, domi,dellk
+ double precision de, dgeo, dk, dri, dari, dtest
+ external slamch, dlamch
+ double precision dlamch,flma
+ real slamch
+c
+ data de /1.0d+0/
+ flma=2.0d+0**(int(slamch('l'))-2)
+ dpi=4.0d+0*atan(1.0d+0)
+ domi=2.0d+0*dlamch('p')
+ dgeo = de - dk*dk
+ if (dgeo .le. 0) then
+ goto 10
+ else
+ goto 20
+ endif
+ 10 dellk = flma
+ return
+ 20 dgeo = sqrt(dgeo)
+ dri = de
+ 30 dari = dri
+ dtest = dari*domi
+ dri = dgeo + dri
+ if((dari-dgeo-dtest).le.0.0d+0) goto 50
+ dgeo = sqrt(dari*dgeo)
+ dri = 0.50d+0*dri
+ go to 30
+ 50 dellk = dpi/dri
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/compel.lo b/modules/signal_processing/src/fortran/compel.lo
new file mode 100755
index 000000000..c0b8de6e6
--- /dev/null
+++ b/modules/signal_processing/src/fortran/compel.lo
@@ -0,0 +1,12 @@
+# src/fortran/compel.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/compel.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/core_Import.def b/modules/signal_processing/src/fortran/core_Import.def
new file mode 100755
index 000000000..25f7e7d12
--- /dev/null
+++ b/modules/signal_processing/src/fortran/core_Import.def
@@ -0,0 +1,33 @@
+ LIBRARY core.dll
+
+
+EXPORTS
+;core
+;
+com_
+vstk_
+stack_
+iop_
+errgst_
+recu_
+adre_
+cha1_
+parse_
+isrecursioncalltofunction_
+callinterf_
+checkrhs_
+getscalar_
+cremat_
+getrmat_
+copyobj_
+gettype_
+getexternal_
+getmat_
+
+;
+; explicit imports (COMMON) to fix warning LNK4049: locally defined symbol
+;
+intersci_
+;
+
+
diff --git a/modules/signal_processing/src/fortran/core_f_Import.def b/modules/signal_processing/src/fortran/core_f_Import.def
new file mode 100755
index 000000000..5aa4d3401
--- /dev/null
+++ b/modules/signal_processing/src/fortran/core_f_Import.def
@@ -0,0 +1,14 @@
+ LIBRARY core_f.dll
+
+
+EXPORTS
+;core_f
+;
+allowptr_
+btof_
+extlarg_
+ftob_
+funnam_
+funs_
+isbyref_
+ref2val_
diff --git a/modules/signal_processing/src/fortran/degree.f b/modules/signal_processing/src/fortran/degree.f
new file mode 100755
index 000000000..abc10118b
--- /dev/null
+++ b/modules/signal_processing/src/fortran/degree.f
@@ -0,0 +1,32 @@
+ subroutine degree(iapro,vsn,acap12,adeg)
+c!but
+c computation of the minimum filter degree (adeg)
+c Nomenclature Rabiner-Gold (page 241)
+c acap12=1/k1
+c vsn=1/k
+c!calling sequence
+c subroutine degree (iapro,vsn,acap12,adeg)
+c implicit double precision (a-h,o-z)
+c!
+c
+ implicit double precision (a-h,o-z)
+ double precision dellk
+c
+ go to (10, 20, 20, 30), iapro
+c
+ 10 adeg = log(1.0d+0/acap12)/log(vsn)
+ return
+c
+ 20 adeg = arcosh(1.0d+0/acap12)/arcosh(vsn)
+ return
+c
+ 30 de = 1.0d+0
+ dcap02 = de/vsn
+ dcap04 = sqrt(de-dcap02*dcap02)
+ dcap12 = acap12
+ dcap14 = sqrt(de-dcap12*dcap12)
+ dadeg = (dellk(dcap02)*dellk(dcap14))/(dellk(dcap04)*dellk(dcap12)
+ & )
+ adeg = dadeg
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/degree.lo b/modules/signal_processing/src/fortran/degree.lo
new file mode 100755
index 000000000..4ad390d12
--- /dev/null
+++ b/modules/signal_processing/src/fortran/degree.lo
@@ -0,0 +1,12 @@
+# src/fortran/degree.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/degree.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/deli1.f b/modules/signal_processing/src/fortran/deli1.f
new file mode 100755
index 000000000..01e12e82d
--- /dev/null
+++ b/modules/signal_processing/src/fortran/deli1.f
@@ -0,0 +1,85 @@
+C/MEMBR ADD NAME=DELI1,SSI=0
+ subroutine deli1(n,resv,xv,ck)
+c!purpose
+c res=integral(zero to x) of
+c 1/sqrt((1+t*t)(1+ck*ck*t*t))
+c!calling sequence
+c subroutine deli1(n,resv,xv,ck)
+c double precision resv(n),xv(n),ck
+c!
+ implicit double precision (a-h,o-z)
+ dimension resv(n),xv(n)
+c
+ dpi=4.0d+0*atan(1.0d+00)
+ domi=2.0d+0*dlamch('p')
+c
+ do 200 k=1,n
+ x=xv(k)
+ if (x .eq. 0) then
+ goto 10
+ else
+ goto 20
+ endif
+ 10 res = 0.0d+0
+ goto 150
+c
+ 20 if (ck .eq. 0) then
+ goto 30
+ else
+ goto 40
+ endif
+ 30 res = log(abs(x)+sqrt(1.0d+0+x*x))
+ go to 130
+c
+ 40 angle = abs(1.0d+0/x)
+ geo = abs(ck)
+ ari = 1.0d+0
+ pim = 0.0d+0
+ 50 sqgeo = ari*geo
+ aari = ari
+ ari = geo + ari
+ angle = -sqgeo/angle + angle
+ sqgeo = sqrt(sqgeo)
+ if (angle .eq. 0) then
+ goto 60
+ else
+ goto 70
+ endif
+c
+c replace 0 by a small value, test
+c
+ 60 angle = sqgeo*domi
+ 70 test = aari*domi*1.0d+05
+ CRES=abs(aari-geo)-test
+ if (CRES .le. 0) then
+ goto 100
+ else
+ goto 80
+ endif
+ 80 geo = sqgeo + sqgeo
+ pim = pim + pim
+ if (angle .lt. 0) then
+ goto 90
+ else
+ goto 50
+ endif
+ 90 pim = pim + dpi
+ go to 50
+ 100 if (angle .lt. 0) then
+ goto 110
+ else
+ goto 120
+ endif
+ 110 pim = pim + dpi
+ 120 res = (atan(ari/angle)+pim)/ari
+ 130 if (x .lt. 0) then
+ goto 140
+ else
+ goto 150
+ endif
+ 140 res = -res
+ 150 continue
+ resv(k)=res
+ 200 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/deli1.lo b/modules/signal_processing/src/fortran/deli1.lo
new file mode 100755
index 000000000..b0bff1dac
--- /dev/null
+++ b/modules/signal_processing/src/fortran/deli1.lo
@@ -0,0 +1,12 @@
+# src/fortran/deli1.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/deli1.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/deli11.f b/modules/signal_processing/src/fortran/deli11.f
new file mode 100755
index 000000000..135f932a4
--- /dev/null
+++ b/modules/signal_processing/src/fortran/deli11.f
@@ -0,0 +1,72 @@
+C/MEMBR ADD NAME=DELI11,SSI=0
+ subroutine deli11(x, ck,res)
+c!purpose
+c elliptic function
+c!calling sequence
+c subroutine deli11(x, ck,res)
+c double precision x,ck,res
+c!
+ implicit double precision (a-h,o-z)
+ dpi=4.0d+0*atan(1.0d+00)
+ domi=2.0d+0*dlamch('p')
+ if (x .eq. 0) then
+ goto 10
+ else
+ goto 20
+ endif
+ 10 res = 0.0d+0
+ return
+ 20 if (ck .eq. 0) then
+ goto 30
+ else
+ goto 40
+ endif
+ 30 res = log(abs(x)+sqrt(1.0d+0+x*x))
+ go to 130
+ 40 angle = abs(1.0d+0/x)
+ geo = abs(ck)
+ ari = 1.0d+0
+ pim = 0.0d+0
+ 50 sqgeo = ari*geo
+ aari = ari
+ ari = geo + ari
+ angle = -sqgeo/angle + angle
+ sqgeo = sqrt(sqgeo)
+ if (angle .eq. 0) then
+ goto 60
+ else
+ goto 70
+ endif
+C replace 0 by a small value, test
+ 60 angle = sqgeo*domi
+ 70 test = aari*domi*1.0d+05
+ CRES=abs(aari-geo)-test
+ if (CRES .le. 0) then
+ goto 100
+ else
+ goto 80
+ endif
+ 80 geo = sqgeo + sqgeo
+ pim = pim + pim
+ if (angle .lt. 0) then
+ goto 90
+ else
+ goto 50
+ endif
+ 90 pim = pim + dpi
+ go to 50
+ 100 if (angle .lt. 0) then
+ goto 110
+ else
+ goto 120
+ endif
+ 110 pim = pim + dpi
+ 120 res = (atan(ari/angle)+pim)/ari
+ 130 if (x .lt. 0) then
+ goto 140
+ else
+ goto 150
+ endif
+ 140 res = -res
+ 150 return
+ end
diff --git a/modules/signal_processing/src/fortran/deli11.lo b/modules/signal_processing/src/fortran/deli11.lo
new file mode 100755
index 000000000..64b7bb93f
--- /dev/null
+++ b/modules/signal_processing/src/fortran/deli11.lo
@@ -0,0 +1,12 @@
+# src/fortran/deli11.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/deli11.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/deli2.f b/modules/signal_processing/src/fortran/deli2.f
new file mode 100755
index 000000000..fbefc021a
--- /dev/null
+++ b/modules/signal_processing/src/fortran/deli2.f
@@ -0,0 +1,120 @@
+ subroutine deli2(nn,resv,xxv,ck)
+c!purpose
+c calculates an approximate value for the elliptic integral of
+c the first kind, rf(x,y,z), as defined by b.c.carlson.
+c -special functions of applied maths-academic press(1977).
+c res=integral(zero to x) of
+c 1/sqrt((1-t*t)(1-ck*ck*t*t))
+c for 0<=t<=1
+c
+c!calling sequence
+c subroutine deli2(nn,resv,xxv,ck)
+c double precision ck, xxv(nn),resv(nn)
+c!
+c .. scalar arguments ..
+ double precision x, y, z
+ double precision xxv(nn),resv(nn)
+ double precision res,xx,ck
+c ..
+c .. local scalars ..
+ double precision acc, c1, c2, c3, cxn, cyn, czn, e2, e3, lamda,
+ * lolim,mu, rscale, rtx, rty, rtz, uplim, xn, yn, zn
+ integer ind
+c .. function references ..
+ double precision dlamch
+ data acc/8.50d-4/
+c
+c order x,y,z into xn,yn,zn st. xn.le.yn.le.zn
+c write(6,*) nn,resv(1),xxv(1),ck
+ do 201 kk=1,nn
+ xx=xxv(kk)
+ x=1.0d+0-xx*xx
+ y=1.0d+0-ck*ck*xx*xx
+ if (x.le.y) go to 20
+ xn = y
+ yn = x
+ go to 40
+ 20 xn = x
+ yn = y
+ z=1.0d+0
+ 40 zn = z
+ if (yn.le.zn) go to 60
+ zn = yn
+ yn = z
+ if (xn.le.yn) go to 60
+ yn = xn
+ xn = z
+c
+c test for valid arguments
+ 60 ind = 1
+ if (xn.lt.0.0d+0) then
+ xn=0.d0
+ endif
+ ind = 2
+ if (yn.le.0.0d+0) go to 180
+c
+c valid call
+ rscale = 1.0d+0
+ lolim=dlamch('u')*16.0d+0
+ uplim=0.06250d+0*dlamch('o')
+c
+c for extreme arguments scale to avoid under and overflows
+ if (zn.le.uplim) go to 120
+ rscale = 0.250d+0
+ zn = zn*0.06250d+0
+ if (yn.le.lolim) go to 80
+ yn = yn*0.06250d+0
+ if (xn.le.lolim) go to 100
+ xn = xn*0.06250d+0
+ go to 140
+ 80 lamda = (sqrt(xn)+sqrt(yn))*(sqrt(zn)*0.250d+0)
+ xn = lamda*0.250d+0
+ yn = xn
+ zn = (zn+lamda)*0.250d+0
+ go to 140
+ 100 rtz = sqrt(zn)
+ rty = sqrt(yn)
+ lamda = rtz*rty + ((rtz+rty)*0.250d+0)*sqrt(xn)
+ xn = lamda*0.250d+0
+ yn = (yn+lamda)*0.250d+0
+ zn = (zn+lamda)*0.250d+0
+ go to 140
+ 120 if (zn.gt.lolim) go to 140
+ rscale = 4.0d+0
+ xn = xn*16.0d+0
+ yn = yn*16.0d+0
+ zn = zn*16.0d+0
+c
+c main recursion
+ 140 mu = (xn+yn+zn)/3.0d+0
+ czn = 2.0d+0 - (zn+mu)/mu
+ cxn = 2.0d+0 - (xn+mu)/mu
+ if (max(cxn,-czn).le.acc) go to 160
+ rtx = sqrt(xn)
+ rty = sqrt(yn)
+ rtz = sqrt(zn)
+ lamda = rtz*(rtx+rty) + rtx*rty
+ xn = (xn+lamda)*0.250d+0
+ yn = (yn+lamda)*0.250d+0
+ zn = (zn+lamda)*0.250d+0
+ go to 140
+c
+c power series expansion
+ 160 c1 = 1.0d+0/24.0d+0
+ c2 = 3.0d+0/44.0d+0
+ c3 = 1.0d+0/14.0d+0
+ cyn = -cxn - czn
+ e2 = cxn*cyn - czn*czn
+ e3 = cxn*czn*cyn
+ res = rscale*(1.0d+0+(c1*e2-0.1d0-c2*e3)*e2+c3*e3)/sqrt(mu)
+ res=res*xx
+ go to 200
+c
+c failure exits
+ 180 continue
+ res = 0.0d+0
+ 200 continue
+ resv(kk)=res
+ 201 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/deli2.lo b/modules/signal_processing/src/fortran/deli2.lo
new file mode 100755
index 000000000..69fb745b7
--- /dev/null
+++ b/modules/signal_processing/src/fortran/deli2.lo
@@ -0,0 +1,12 @@
+# src/fortran/deli2.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/deli2.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/delip.f b/modules/signal_processing/src/fortran/delip.f
new file mode 100755
index 000000000..ca3017a72
--- /dev/null
+++ b/modules/signal_processing/src/fortran/delip.f
@@ -0,0 +1,46 @@
+ subroutine delip(n,resr,resi,x,ck)
+c!purpose
+c vector valued elliptic integral :
+c r = integral from 0 to x of :
+c dt/sqrt((1-t^2)*(1-ck^2*t^2)) for x real positive
+c x=argument r=resr+%i*resi=result
+c ck = parameter
+c n size of x and r
+c Author F.D.
+c!calling sequence
+c subroutine delip(n,resr,resi,x,ck)
+c double precision resr(n),resi(n),x(n),ck
+c!
+ double precision resr(n),resi(n),x(n)
+ double precision ck,r,xx,compk,compk1,yy,m,m1,ck1
+ double precision xxxxx
+ m=ck*ck
+ m1=1.0d+0-m
+ ck1=sqrt(m1)
+ call compel(ck,compk)
+ call compel(ck1,compk1)
+ do 1 k=1,n
+ xx=x(k)
+ if(xx.ge.0.0d+0.and.xx.le.1.0d+0) then
+ call deli2(1,r,xx,ck)
+ resr(k)=r
+ resi(k)=0.0d+0
+ elseif (xx.gt.1.0d+0.and.xx.le.(1.0d+0/ck)) then
+ xxxxx=1.0d+0/ck-xx
+c . change of variable : integral from 1 to xx of
+c . dt/sqrt((1-mt^2)(t^2-1)) = integral from o to yy of
+c . dt/sqrt((1-t^2)(1-m1t^2)) with m1=1-m and
+c . yy = (1/sqrt(m1))*sqrt((x^2-1)/x^2)
+ yy=(1.0d+0/ck1)*sqrt((xx*xx-1.0d+0)/(xx*xx))
+ call deli2(1,r,yy,ck1)
+ resi(k)=r
+ resr(k)=compk
+ elseif(xx.ge.(1.0d+0/ck)) then
+ xxxxx=1.0d+0/(ck*xx)
+ call deli2(1,r,xxxxx,ck)
+ resi(k)=compk1
+ resr(k)=r
+ endif
+ 1 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/delip.lo b/modules/signal_processing/src/fortran/delip.lo
new file mode 100755
index 000000000..8b4843f0a
--- /dev/null
+++ b/modules/signal_processing/src/fortran/delip.lo
@@ -0,0 +1,12 @@
+# src/fortran/delip.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/delip.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/dellk.f b/modules/signal_processing/src/fortran/dellk.f
new file mode 100755
index 000000000..d6fae5cb6
--- /dev/null
+++ b/modules/signal_processing/src/fortran/dellk.f
@@ -0,0 +1,36 @@
+ double precision function dellk(dk)
+c!purpose
+C calculate complete elliptic integral of first kind
+c!
+ implicit double precision (a-h,o-z)
+ external slamch, dlamch
+ real slamch
+c
+ data de /1.0d+0/
+ flma=2.0d+0**(int(slamch('l'))-2)
+ dpi=4.0d+0*atan(1.0d+00)
+ domi=2.0d+0*dlamch('p')
+ dgeo = de - dk*dk
+ if (dgeo .le. 0) then
+ goto 10
+ else
+ goto 20
+ endif
+ 10 dellk = flma
+ return
+ 20 dgeo = sqrt(dgeo)
+ dri = de
+ 30 dari = dri
+ dtest = dari*domi
+ dri = dgeo + dri
+ if (dari-dgeo-dtest .le. 0) then
+ goto 50
+ else
+ goto 40
+ endif
+ 40 dgeo = sqrt(dari*dgeo)
+ dri = 0.50d+0*dri
+ go to 30
+ 50 dellk = dpi/dri
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/dellk.lo b/modules/signal_processing/src/fortran/dellk.lo
new file mode 100755
index 000000000..6e9cf9fd8
--- /dev/null
+++ b/modules/signal_processing/src/fortran/dellk.lo
@@ -0,0 +1,12 @@
+# src/fortran/dellk.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/dellk.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/desi00.f b/modules/signal_processing/src/fortran/desi00.f
new file mode 100755
index 000000000..e09882d35
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi00.f
@@ -0,0 +1,14 @@
+ subroutine desi00(ityp,om,norma,edeg,ndeg,adeg,
+ *vsn,vd,a)
+c!purpose
+c transform tolerance scheme
+c!
+c
+ implicit double precision (a-h,o-z)
+ double precision om(*)
+c
+ if (ityp.ge.3) ndeg = (ndeg+1)/2
+ if (ndeg.ne.0) adeg = dble(real(ndeg))/(1.0d+0+edeg)
+ call transn (ityp,om,norma,vsn,vd,a)
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/desi00.lo b/modules/signal_processing/src/fortran/desi00.lo
new file mode 100755
index 000000000..edc6efed2
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi00.lo
@@ -0,0 +1,12 @@
+# src/fortran/desi00.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/desi00.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/desi01.f b/modules/signal_processing/src/fortran/desi01.f
new file mode 100755
index 000000000..9c3a00a88
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi01.f
@@ -0,0 +1,26 @@
+C/MEMBR ADD NAME=DESI01,SSI=0
+ subroutine desi01(maxdeg,iapro,edeg,ndeg,adelp,adels,
+ *vsn,adeg,gd1,gd2,acap12,ierr)
+c!purpose
+c design of butterworth, chebyshev (passband or stopband), and
+c elliptic filters
+c!
+ implicit double precision (a-h,o-z)
+c
+ call parcha (iapro,adeg,adelp,adels,vsn,gd1,gd2,acap12)
+ call degree (iapro,vsn,acap12,adeg)
+ q = adeg*(1.0d+0+edeg) + 0.50d+0
+ n = int(q)
+ m = int(adeg)
+ if (real(m).lt.adeg) m = m + 1
+ n = max0(m,n)
+ if (ndeg.eq.0) go to 10
+ if (ndeg.ge.n) go to 20
+ ierr=15
+c
+ 10 ndeg = n
+c
+ 20 if (ndeg.le.maxdeg) return
+ ierr=25
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/desi01.lo b/modules/signal_processing/src/fortran/desi01.lo
new file mode 100755
index 000000000..2d5871ffe
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi01.lo
@@ -0,0 +1,12 @@
+# src/fortran/desi01.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/desi01.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/desi11.f b/modules/signal_processing/src/fortran/desi11.f
new file mode 100755
index 000000000..ba9b71bd7
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi11.f
@@ -0,0 +1,46 @@
+ subroutine desi11(nmaxi,maxdeg,vsn,ndeg,gd1,gd2,adelta,nzm,sm
+ *,nzero,pren,pimn,ugc,ogc,nj,nh)
+c!purpose
+c butterworth filter
+c computation of the zeros and locations of the extrema
+c!
+c
+ implicit double precision (a-h,o-z)
+ external slamch
+ real slamch
+ dimension nzm(*),sm(maxdeg,4),nzero(*),pren(*),pimn(*)
+c
+ pi=4.0d+0*atan(1.0d+0)
+ flma=2.0d+0**(int(slamch('l'))-2)
+c
+ adelta = vsn**ndeg
+c
+ nh = ndeg/2
+ nj = (ndeg+1)/2
+ fdeg = real(ndeg)
+ fn = pi/2.0d+0/fdeg
+c
+ do 10 i=1,nj
+ nzero(i) = 0
+ iii = i + i - 1
+ q = fn*real(iii)
+ pren(i) = sin(q)
+ pimn(i) = cos(q)
+ 10 continue
+c
+ fn = 2.0d+0*fn
+ nzero(1) = ndeg
+ nzm(1) = 1
+ sm(1,1) = 0.0d+0
+ nzm(2) = 1
+ sm(1,2) = 1.0d+0
+ nzm(3) = 1
+ sm(1,3) = vsn
+ nzm(4) = 1
+ sm(1,4) = flma
+c
+ ugc = gd2/adelta
+ ogc = gd1
+ sm(nmaxi-1,4) = 1.0d+0
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/desi11.lo b/modules/signal_processing/src/fortran/desi11.lo
new file mode 100755
index 000000000..557485487
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi11.lo
@@ -0,0 +1,12 @@
+# src/fortran/desi11.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/desi11.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/desi12.f b/modules/signal_processing/src/fortran/desi12.f
new file mode 100755
index 000000000..29f95007b
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi12.f
@@ -0,0 +1,90 @@
+ subroutine desi12(nmaxi,maxdeg,iapro,ndeg,vsn,gd1,gd2,adelta,
+ *nzm,sm,nzero,pren,pimn,ugc,ack,nj,nh)
+c!purpose
+c chebyshev filter (passband or stopband)
+c computation of the zeros and the locations of the extrema
+c!calling sequence
+c subroutine desi12 (nmaxi,maxdeg,iapro,ndeg,vsn,gd1,gd2,adelta,
+c *nzm,sm,nzero,pren,pimn,ugc,ack,nj,nh)
+c!
+c
+ implicit double precision (a-h,o-z)
+ dimension nzm(*),sm(maxdeg,*),nzero(*),pren(*),pimn(*)
+c
+ external slamch
+ real slamch
+c
+ pi=4.0d+0*atan(1.0d+0)
+ flma=2.0d+0**(int(slamch('l'))-2)
+ adelta = cosh(real(ndeg)*arcosh(vsn))
+c
+ fa = 1.0d+0
+ nh = ndeg/2
+ nj = (ndeg+1)/2
+ fn = pi/(2.0d+0*dble(real(ndeg)))
+c
+ do 10 i=1,nj
+ nzero(i) = 0
+ inj = i + i - 1
+ q = fn*dble(real(inj))
+ pren(i) = sin(q)
+ pimn(i) = cos(q)
+ 10 continue
+c
+ fn = 2.0d+0*fn
+c
+ if (iapro.eq.3) go to 40
+c
+ m = nj + 1
+ do 20 i=1,nj
+ j = m - i
+ sm(i,1) = pimn(j)
+20 continue
+ nzm(1) = nj
+ m = nh + 1
+ do 30 i=1,m
+ mi = m - i
+ q = real(mi)*fn
+ sm(i,2) = cos(q)
+ 30 continue
+ nzm(2) = m
+ sm(1,3) = vsn
+ nzm(3) = 1
+ sm(1,4) = flma
+ nzm(4) = 1
+ nzero(1) = ndeg
+c
+ ugc = gd2/adelta
+cccccccccccccccccccccccccccccccccccccc
+c The two lines below were missing
+ ogc = gd1
+ go to 80
+cccccccccccccccccccccccccccccccccccccc
+ 40 sm(1,1) = 0.0d+0
+ nzm(1) = 1
+ sm(1,2) = 1.0d+0
+ nzm(2) = 1
+ do 50 i=1,nj
+ inj = nj - i
+ q = real(inj)*fn
+ sm(inj+1,3) = vsn/cos(q)
+ 50 continue
+ nzm(3) = nj
+ do 60 i=1,nh
+ nzero(i) = 2
+ q = pimn(i)
+ fa = fa*q*q
+ sm(i,4) = vsn/q
+ 60 continue
+ if (nh.eq.nj) go to 70
+ nzero(nj) = 1
+ sm(nj,4) = flma
+ 70 nzm(4) = nj
+c
+ ugc = gd2
+ ogc = gd1*adelta
+ 80 ack = fa
+ sm(nmaxi-1,4) = 1.0d+0
+ return
+ end
+
diff --git a/modules/signal_processing/src/fortran/desi12.lo b/modules/signal_processing/src/fortran/desi12.lo
new file mode 100755
index 000000000..b75dda768
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi12.lo
@@ -0,0 +1,12 @@
+# src/fortran/desi12.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/desi12.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/desi14.f b/modules/signal_processing/src/fortran/desi14.f
new file mode 100755
index 000000000..2a60eedc7
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi14.f
@@ -0,0 +1,101 @@
+ subroutine desi14(nmaxi,maxdeg,ndeg,vsn,gd1,gd2,adelta,nzm,
+ *sm,nzero,dsk,ugc,ogc,ack,nj,nh,dk,dks,dcap02,dcap04)
+c!purpose
+c elliptic filter
+c computation of the zeros and the locations of the extrema
+c!
+c
+ implicit double precision (a-h,o-z)
+ double precision dsk(*)
+ dimension nzero(*),sm(maxdeg,*),nzm(*)
+c
+ external slamch
+ real slamch
+c
+ data de /1.0d+00/
+ dpi=4.0d+0*atan(1.0d+00)
+ flma=2.0d+0**(int(slamch('l'))-2)
+c
+ dcap02 = de/vsn
+ dcap01 = sqrt(dcap02)
+ dcap04 = sqrt(de-dcap02*dcap02)
+ dk = dellk(dcap02)
+ dks = dellk(dcap04)
+c
+ dq = exp(-dpi*dks/dk)
+c
+ nh = ndeg/2
+ m = ndeg + 1
+ nj = m/2
+ mh = nh + 1
+c
+ dn = dk/dble(real(ndeg))
+c
+ del1 = de
+ if (nh.eq.0) go to 20
+ do 10 i=1,nh
+ inh = m - i - i
+ du = dn*dble(real(inh))
+ dm = dsn2(du,dk,dq)
+ del1 = del1*dm*dcap01
+ dsk(i) = dm
+ j = mh - i
+ sm(j,1) = dm
+ nzero(i) = 2
+ dde = de/(dcap02*dm)
+ sm(i,4) = dde
+ 10 continue
+ go to 30
+ 20 sm(1,1) = 0.0d+0
+ 30 kj = nj - 1
+ mj = nj + 1
+ del2 = de
+ if (kj.eq.0) go to 50
+ do 40 i=1,kj
+ ndegi = ndeg - i - i
+ du = dn*dble(real(ndegi))
+ dm = dsn2(du,dk,dq)
+ j = mj - i
+ sm(j,2) = dm
+ dde = de/(dcap02*dm)
+ sm(i+1,3) = dde
+ del2 = del2*dm*dcap01
+ 40 continue
+ go to 60
+ 50 sm(ndeg,2) = 1.0d+0
+ sm(1,3) = vsn
+c
+ 60 ddelt = del1*del1
+ adelta = ddelt
+ ack = 1.0d+0/adelta
+ if (nh.eq.nj) go to 80
+ ack = ack*dcap01
+ ddelta = del2*del2*dcap01
+ adelta = ddelta
+ dsk(nj) = 0.0d+0
+ nzero(nj) = 1
+ sm(nj,4) = flma
+c
+ if (nh.eq.0) go to 90
+ do 70 i=1,nh
+ j = mj - i
+ sm(j,1) = sm(j-1,1)
+ sm(i,2) = sm(i+1,2)
+ 70 continue
+ sm(1,1) = 0.0d+0
+ go to 90
+c
+ 80 sm(mh,3) = flma
+ sm(1,2) = 0.0d+0
+c
+ 90 nzm(1) = nj
+ nzm(4) = nj
+ nzm(2) = mh
+ nzm(3) = mh
+ sm(mh,2) = 1.0d+0
+ sm(1,3) = vsn
+ ugc = gd2*adelta
+ ogc = gd1/adelta
+ sm(nmaxi-1,4) = 1.0d+0
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/desi14.lo b/modules/signal_processing/src/fortran/desi14.lo
new file mode 100755
index 000000000..084011576
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi14.lo
@@ -0,0 +1,12 @@
+# src/fortran/desi14.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/desi14.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/desi21.f b/modules/signal_processing/src/fortran/desi21.f
new file mode 100755
index 000000000..8a120c1a8
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi21.f
@@ -0,0 +1,36 @@
+ subroutine desi21(ndeg,adelp,adels,adelta,pren,pimn,
+ *ugc,ogc,nj,acx,ac,rdelp,rdels,sfa,spr,spi)
+c!purpose
+c butterworth filter
+c computation of the poles
+c!
+c
+ implicit double precision (a-h,o-z)
+ double precision spr(*), spi(*)
+ double precision pren(*), pimn(*)
+ flmi=2.0d+0*dlamch('p')
+c
+c computation of constant c and reduced tolerance scheme
+c
+ if (acx.lt.999.0d+0) go to 20
+ if ((ogc-ugc).lt.flmi) go to 10
+ ac = (2.0d+0*adelp/(adelta*adels))**(1.0d+0/3.0d+0)
+ acx = log10(ac/ugc)/log10(ogc/ugc)
+ if (acx.ge.0.0d+0 .and. acx.le.1.0d+0) go to 30
+ 10 acx = 0.50d+0
+ 20 ac = ugc*(ogc/ugc)**acx
+ 30 rdelp = 1.0d+0 - sqrt(1.0d+0/(1.0d+0+ac*ac))
+ q = ac*adelta
+ rdels = sqrt(1.0d+0/(1.0d+0+q*q))
+c
+c computation of factor sfa and poles
+c
+ sfa = 1.0d+0/ac
+ q = ac**(-1.0d+0/dble(ndeg))
+c
+ do 40 i=1,nj
+ spr(i) = -q*pren(i)
+ spi(i) = q*pimn(i)
+ 40 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/desi21.lo b/modules/signal_processing/src/fortran/desi21.lo
new file mode 100755
index 000000000..85d2db4bf
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi21.lo
@@ -0,0 +1,12 @@
+# src/fortran/desi21.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/desi21.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/desi22.f b/modules/signal_processing/src/fortran/desi22.f
new file mode 100755
index 000000000..66983d623
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi22.f
@@ -0,0 +1,76 @@
+ subroutine desi22(iapro,ndeg,adelp,adels,adelta,vsn,
+ *pren,pimn,ugc,ogc,ack,nj,nh,acx,ac,rdels,sfa,spr,spi)
+c!purpose
+c chebyshev filter (passband or stopband)
+c computation of the poles
+c!calling sequence
+c subroutine desi22 (iapro,ndeg,adelp,adels,adelta,vsn,
+c *pren,pimn,ugc,ogc,ack,nj,nh,acx,ac,rdels,sfa,spr,spi)
+c
+c implicit double precision (a-h,o-z)
+c dimension spr(*),spi(*)
+c dimension pren(*),pimn(*)
+c!
+c
+ implicit double precision (a-h,o-z)
+ double precision spr(*),spi(*)
+ double precision pren(*),pimn(*)
+c
+ flmi=2.0d+0*dlamch('p')
+ if (acx.lt.999.0d+0) go to 20
+ if ((ogc-ugc).lt.flmi) go to 10
+ if (iapro.eq.2) q = 1.0d+0/adelta
+ if (iapro.eq.3) q = adelta*adelta
+ ac = (2.0d+0*adelp*q/adels)**(1.0d+0/3.0d+0)
+ acx = log10(ac/ugc)/log10(ogc/ugc)
+ if (acx.ge.0.0d+0 .and. acx.le.1.0d+0) go to 30
+ 10 acx = 0.50d+0
+ 20 ac = ugc*(ogc/ugc)**acx
+c
+c computation of the reduced tolerance scheme
+c
+ 30 q = ac
+ if (iapro.eq.3) q = q/adelta
+ q = 1.0d+0 + q*q
+ rdelp = 1.0d+0- sqrt(1.0d+0/q)
+ q = ac
+ if (iapro.eq.2) q = q*adelta
+ q = 1.0d+0 + q*q
+ rdels = sqrt(1.0d+0/q)
+c
+c computation of the factor sfa and the poles
+ if (iapro.eq.3) go to 40
+ccccccccccccccccccccccccccccccccccccccccccccc
+c The next line was missing
+ sfa = 2.0d+0/(ac*2.0d+0 **ndeg)
+ccccccccccccccccccccccccccccccccccccccccccccc
+ q = -1.0d+0/ac
+ go to 50
+ 40 sfa = ack
+ q = ac
+ 50 q = arsinh(q)/dble(ndeg)
+ qr = sinh(q)
+ qi = cosh(q)
+ if (iapro.eq.3) go to 70
+ do 60 i=1,nj
+ spr(i) = qr*pren(i)
+ spi(i) = qi*pimn(i)
+ 60 continue
+ return
+ 70 do 80 i=1,nh
+ q = pimn(i)*qi
+ qa = pren(i)*qr
+ qq = q*q
+ qqa = qa*qa
+ sfa = sfa/(qq+qqa)
+ spr(i) = -vsn/(qq/qa+qa)
+ spi(i) = vsn/(q+qqa/q)
+ 80 continue
+ if (nh.eq.nj) return
+ spi(nj) = 0.0d+0
+ q = vsn/qr
+ sfa = sfa*q
+ spr(nj) = -q
+ return
+ end
+
diff --git a/modules/signal_processing/src/fortran/desi22.lo b/modules/signal_processing/src/fortran/desi22.lo
new file mode 100755
index 000000000..cee24e5bc
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi22.lo
@@ -0,0 +1,12 @@
+# src/fortran/desi22.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/desi22.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/desi24.f b/modules/signal_processing/src/fortran/desi24.f
new file mode 100755
index 000000000..a7c3b7562
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi24.f
@@ -0,0 +1,70 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+ subroutine desi24(ndeg,adelp,adels,adelta,dsk,ugc,ogc,ack,
+ *nj,nh,dk,dks,dcap02,dcap04,acx,ac,rdelp,rdels,sfa,spr,spi)
+c!purpose
+C elliptic filter
+C computation of the reduced tolerance scheme, the factor sfa, and
+C the poles
+c!
+ implicit double precision (a-h,o-z)
+ double precision dsk(*)
+ double precision dellk
+ double precision spr(*),spi(*)
+ data de /1.0d+0/
+ flmi=2.0d+0*dlamch('p')
+ dpi=4.00d+0*atan(1.0d+00)
+C if acx not defined, compute a symmetrical usage of the tolerance
+C scheme
+ if (acx.lt.999.0d+0) go to 20
+ if ((ogc-ugc).lt.flmi) go to 10
+ ac = (2.0d+0*adelp/(adelta*adels))**(1.0d+0/3.0d+0)
+ acx = log10(ac/ugc)/log10(ogc/ugc)
+ if (acx.ge.0.0d+0 .and. acx.le.1.0d+0) go to 30
+ 10 acx = 0.50d+0
+ 20 ac = ugc*(ogc/ugc)**acx
+C computation of the reduced tolerance scheme
+ 30 q = ac*adelta
+ du = de/q
+ rdelp = 1.0d+0 - sqrt(1.0d+0/(1.0d+0+q*q))
+ q = 1.0d+0 + ac*ac/(adelta*adelta)
+ rdels = sqrt(1.0d+0/q)
+C computation of the factor sfa and the poles
+ q = ac*ack
+ if (nh.eq.nj) q = sqrt(1.0d+0+q*q)
+ sfa = 1.0d+0/q
+ dr = adelta
+ dr = dr*dr
+ dq = q
+ call deli11(du, dr, dq)
+ du = dq
+ dq = sqrt(de-dr*dr)
+ dq = dellk(dr)
+ du = dk*du/(dq*dble(ndeg))
+ dq = exp(-dpi*dk/dks)
+ du = -dsn2(du,dks,dq)
+ dq = du*du
+ dud = de - dcap04*dcap04*dq
+ dud = sqrt(dud)
+ duc = sqrt(de-dq)
+ do 40 i=1,nj
+ dr = dsk(i)
+ drc = dr*dr
+ drd = de - dcap02*dcap02*drc
+ drc = sqrt(de-drc)
+ dm = de - dq*drd
+ drd = sqrt(drd)
+ drd = drd*du*duc*drc/dm
+ spr(i) = drd
+ dr = dr*dud/dm
+ spi(i) = dr
+ 40 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/desi24.lo b/modules/signal_processing/src/fortran/desi24.lo
new file mode 100755
index 000000000..29cdabadd
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desi24.lo
@@ -0,0 +1,12 @@
+# src/fortran/desi24.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/desi24.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/desia.f b/modules/signal_processing/src/fortran/desia.f
new file mode 100755
index 000000000..cd1ebed1d
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desia.f
@@ -0,0 +1,38 @@
+ subroutine desia(nmaxi,maxdeg,ityp,iapro,om,norma,
+ *edeg,ndeg,adelp,adels,
+ *nbn,nzero,nzm,vsn,a,adelta,adeg,
+ *sm,pren,pimn,ugc,ogc,ack,zm,zzr,zzi,rom,
+ *b2,b1,b0,dk,dks,dcap02,dcap04,vsnn,ndegn,nh,vd,nze,ierr)
+c!purpose
+c filter design -- first section
+c!
+c
+ implicit double precision (a-h,o-z)
+ dimension sm(maxdeg,4),nzero(*),pren(*),pimn(*)
+ dimension rom(*),nzm(*),zm(maxdeg,4),nze(*)
+ double precision om(*)
+ double precision zzr(*),zzi(*),b0(*),b1(*),b2(*)
+c
+ sfa = 0.
+ call desi00 (ityp,om,norma,edeg,ndeg,adeg,vsn,vd,a)
+ call desi01 (maxdeg,iapro,edeg,ndeg,adelp,adels,vsn,
+ *adeg,gd1,gd2,acap12,ierr)
+ go to (10, 20, 20, 30), iapro
+ 10 call desi11(nmaxi,maxdeg,vsn,ndeg,gd1,gd2,adelta,nzm,
+ *sm,nzero,pren,pimn,ugc,ogc,nj,nh)
+ go to 40
+ 20 call desi12 (nmaxi,maxdeg,iapro,ndeg,vsn,gd1,gd2,adelta,
+ *nzm,sm,nzero,pren,pimn,ugc,ack,nj,nh)
+ go to 40
+ 30 call desi14 (nmaxi,maxdeg,ndeg,vsn,gd1,gd2,adelta,nzm,sm,nzero,
+ *pren,ugc,ogc,ack,nj,nh,dk,dks,dcap02,dcap04)
+c
+ 40 vsnn = vsn
+ ndegn = ndeg
+ nbn = nj
+ call tranze (nmaxi,maxdeg,ityp,ndeg,nzm,a,vd,sm,nzero)
+ call trbize (nmaxi,maxdeg,nzm,nzero,sm,zm,zzr,zzi)
+ call blnumz (nzm,nzero,zzr,zzi,b2,b1,b0,nze)
+ call romeg (nmaxi,maxdeg,ityp,nzm,zm,rom)
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/desia.lo b/modules/signal_processing/src/fortran/desia.lo
new file mode 100755
index 000000000..e0640d249
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desia.lo
@@ -0,0 +1,12 @@
+# src/fortran/desia.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/desia.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/desib.f b/modules/signal_processing/src/fortran/desib.f
new file mode 100755
index 000000000..d53d45f8d
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desib.f
@@ -0,0 +1,35 @@
+C/MEMBR ADD NAME=DESIB,SSI=0
+ subroutine desib(nmaxi,maxdeg,vsnn,ndegn,nbn,ityp,iapro,om,nh,
+ *adelp,adels,vd,a,adelta,pren,pimn,ugc,ogc,ack,dk,
+ *dks,dcap02,dcap04,acx,spr,spi,zpr,zpi,nb,fact,c1,c0,sm,ierr,ndeg)
+c!purpose
+c filter design -- second section
+c!
+c
+ implicit double precision (a-h,o-z)
+c
+ double precision sm(maxdeg,4)
+ double precision om(*),pren(*),pimn(*)
+ double precision spr(*),spi(*)
+ double precision zpr(*),zpi(*)
+ double precision c1(*),c0(*)
+c
+ vsn = vsnn
+ ndeg = ndegn
+ nj = nbn
+ go to (10, 20, 20, 30), iapro
+ 10 call desi21 (ndeg,adelp,adels,adelta,pren,pimn,ugc,ogc,nj,
+ *acx,ac,rdelp,rdels,sfa,spr,spi)
+ go to 40
+ 20 call desi22 (iapro,ndeg,adelp,adels,adelta,vsn,pren,pimn,
+ *ugc,ogc,ack,nj,nh,acx,ac,rdels,sfa,spr,spi)
+ go to 40
+ 30 call desi24 (ndeg,adelp,adels,adelta,pren,ugc,ogc,ack,nj,
+ *nh,dk,dks,dcap02,dcap04,acx,ac,rdelp,rdels,sfa,spr,spi)
+c
+ 40 continue
+ call tranpo (nmaxi,maxdeg,ityp,vd,sm,a,ndeg,sfa,spr,spi,nj)
+ call trbipo (nmaxi,maxdeg,nj,sfa,sm,spr,spi,zfa,zpr,zpi)
+ call bldenz (ndeg,nj,zfa,zpr,zpi,nb,fact,c1,c0)
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/desib.lo b/modules/signal_processing/src/fortran/desib.lo
new file mode 100755
index 000000000..59086e9c9
--- /dev/null
+++ b/modules/signal_processing/src/fortran/desib.lo
@@ -0,0 +1,12 @@
+# src/fortran/desib.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/desib.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/dfft2.f b/modules/signal_processing/src/fortran/dfft2.f
new file mode 100755
index 000000000..611568ff1
--- /dev/null
+++ b/modules/signal_processing/src/fortran/dfft2.f
@@ -0,0 +1,21 @@
+ subroutine dfft2(a,b,nseg,n,nspn,isn,ierr,iw,lw)
+c!
+c fft avec tableau de travail iw
+c
+c voir la routine fft de singleton pour l'appel
+c iw est ici un tableau de travail a dimensionner a lw
+c dans le pgm appelant.Si lw est trop petit on sort avec
+c ierr < 0 et -ierr est le manque de place necessaire pour
+c poursuivre le calcul
+c!
+ double precision a,b
+ dimension iw(*),a(*),b(*)
+ iw(1)=0
+ iw(2)=10
+ iw(3)=10
+ iw(4)=lw
+ iw(5)=10
+ call dfftbi(a,b,nseg,n,nspn,isn,ierr,iw(1),iw(2),
+ + iw(3),iw(4),iw(5),iw(1),iw(1))
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/dfft2.lo b/modules/signal_processing/src/fortran/dfft2.lo
new file mode 100755
index 000000000..62558b896
--- /dev/null
+++ b/modules/signal_processing/src/fortran/dfft2.lo
@@ -0,0 +1,12 @@
+# src/fortran/dfft2.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/dfft2.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/dfftbi.f b/modules/signal_processing/src/fortran/dfftbi.f
new file mode 100755
index 000000000..1d6b03abc
--- /dev/null
+++ b/modules/signal_processing/src/fortran/dfftbi.f
@@ -0,0 +1,187 @@
+ subroutine dfftbi(a, b, nseg, n, nspn, isn,ierr,lout,lnow,
+ + lused,lmax,lbook,rstak,istak)
+c!
+c arrays a and b originally hold the real and imaginary
+c components of the data, and return the real and
+c imaginary components of the resulting fourier coefficients.
+c multivariate data is indexed according to the fortran
+c array element successor function, without limit
+c on the number of implied multiple subscripts.
+c the subroutine is called once for each variate.
+c the calls for a multivariate transform may be in any order.
+c
+c n is the dimension of the current variable.
+c nspn is the spacing of consecutive data values
+c while indexing the current variable.
+c nseg*n*nspn is the total number of complex data values.
+c the sign of isn determines the sign of the complex
+c exponential, and the magnitude of isn is normally one.
+c the magnitude of isn determines the indexing increment for a&b.
+c
+c if fft is called twice, with opposite signs on isn, an
+c identity transformation is done...calls can be in either order.
+c the results are scaled by 1/n when the sign of isn is positive.
+c
+c a tri-variate transform with a(n1,n2,n3), b(n1,n2,n3)
+c is computed by
+c call fft(a,b,n2*n3,n1,1,-1)
+c call fft(a,b,n3,n2,n1,-1)
+c call fft(a,b,1,n3,n1*n2,-1)
+c
+c a single-variate transform of n complex data values is computed by
+c call fft(a,b,1,n,1,-1)
+c
+c the data may alternatively be stored in a single complex
+c array a, then the magnitude of isn changed to two to
+c give the correct indexing increment and a(2) used to
+c pass the initial address for the sequence of imaginary
+c values, e.g.
+c call fft(a,a(2),nseg,n,nspn,-2)
+c
+c array nfac is working storage for factoring n. the smallest
+c number exceeding the 15 locations provided is 12,754,584.
+c!
+ implicit double precision (a-h,o-z)
+ dimension a(*), b(*), rstak(*),istak(*),nfac(15)
+c
+c
+ integer isize(5)
+ data isize(1),isize(2),isize(3),isize(4),isize(5)/1,1,1,2,2/
+c
+ ierr=0
+c
+c determine the factors of n
+c
+ m = 0
+ nf = abs(n)
+ k = nf
+ if (nf.eq.1) return
+ nspan = abs(nf*nspn)
+ ntot = abs(nspan*nseg)
+ if (isn*ntot.ne.0) go to 20
+ ierr=1
+ return
+c
+ 10 m = m + 1
+ nfac(m) = 4
+ k = k/16
+ 20 if (k-(k/16)*16.eq.0) go to 10
+ j = 3
+ jj = 9
+ go to 40
+ 30 m = m + 1
+ nfac(m) = j
+ k = k/jj
+ 40 if (mod(k,jj).eq.0) go to 30
+ j = j + 2
+ jj = j**2
+ if (jj.le.k) go to 40
+ if (k.gt.4) go to 50
+ kt = m
+ nfac(m+1) = k
+ if (k.ne.1) m = m + 1
+ go to 90
+ 50 if (k-(k/4)*4.ne.0) go to 60
+ m = m + 1
+ nfac(m) = 2
+ k = k/4
+c all square factors out now, but k .ge. 5 still
+ 60 kt = m
+ maxp = max(kt+kt+2,k-1)
+ j = 2
+ 70 if (mod(k,j).ne.0) go to 80
+ m = m + 1
+ nfac(m) = j
+ k = k/j
+ 80 j = ((j+1)/2)*2 + 1
+ if (j.le.k) go to 70
+ 90 if (m.le.kt+1) maxp = m + kt + 1
+ if (m+kt.gt.15) go to 120
+ if (kt.eq.0) go to 110
+ j = kt
+ 100 m = m + 1
+ nfac(m) = nfac(j)
+ j = j - 1
+ if (j.ne.0) go to 100
+c
+ 110 maxf = m - kt
+ maxf = nfac(maxf)
+ if (kt.gt.0) maxf = max(nfac(kt),maxf)
+c MAJOR MODIFICATION
+ do 9999 kkk=1,m
+ maxf=max(maxf,nfac(kkk))
+ 9999 continue
+c j = istkgt(maxf*4,3)
+ nitems=maxf*4
+c following line modified FD & MG
+ itype=4
+c xxxxxxxxxxxxxxxxxxxxxxxxxxx
+ istkgt = (lnow*isize(2)-1)/isize(itype) + 2
+ i = ((istkgt-1+nitems)*isize(itype)-1)/isize(2) + 3
+ if (i.gt.lmax) go to 1010
+ istak(i-1) = itype
+ istak(i) = lnow
+ lout = lout + 1
+ lnow = i
+ lused = max(lused,lnow)
+ goto 1300
+c
+ 1010 continue
+ ierr=-i
+ return
+ 1300 continue
+ j=istkgt
+ jj = j + maxf
+ j2 = jj + maxf
+ j3 = j2 + maxf
+c k = istkgt(maxp,2)
+ nitems=maxp
+ itype=2
+c xxxxxxxxxxxxxxxxxxxxxxxxxx
+ istkgt = (lnow*isize(2)-1)/isize(itype) + 2
+ i = ((istkgt-1+nitems)*isize(itype)-1)/isize(2) + 3
+ if (i.gt.lmax) go to 11
+ istak(i-1) = itype
+ istak(i) = lnow
+ lout = lout + 1
+ lnow = i
+ lused = max(lused,lnow)
+ goto 1400
+c
+ 11 continue
+ ierr=-i
+ return
+ 1400 continue
+ k=istkgt
+c la carte suivante est a supprimer si simple precision
+c next instruction commented by FD&MG (simulog residue?)
+c ********************************************
+c k=2*k-1
+c *********************************************
+ call dfftmx(a, b, ntot, nf, nspan, isn, m, kt, rstak(j),
+ * rstak(jj), rstak(j2), rstak(j3), istak(k), nfac)
+c call istkrl(2)
+ k=2
+c xxxxxxxxxxxxxxx
+ in = 2
+c
+ if (lbook.le.lnow .and. lnow.le.lused .and. lused.le.lmax) go to
+ * 13
+ ierr = 3
+ return
+ 13 if (in.le.0) goto 1500
+ if (lbook.gt.istak(lnow) .or. istak(lnow).ge.lnow-1) go to 21
+ lout = lout - 1
+ lnow = istak(lnow)
+ in = in - 1
+ go to 13
+c
+ 21 ierr = 4
+ return
+ 1500 continue
+ return
+c
+ 120 continue
+ ierr=2
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/dfftbi.lo b/modules/signal_processing/src/fortran/dfftbi.lo
new file mode 100755
index 000000000..f8cb35f1e
--- /dev/null
+++ b/modules/signal_processing/src/fortran/dfftbi.lo
@@ -0,0 +1,12 @@
+# src/fortran/dfftbi.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/dfftbi.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/dfftmx.f b/modules/signal_processing/src/fortran/dfftmx.f
new file mode 100755
index 000000000..628f21b00
--- /dev/null
+++ b/modules/signal_processing/src/fortran/dfftmx.f
@@ -0,0 +1,537 @@
+ subroutine dfftmx(a, b, ntot, n, nspan, isn, m, kt, wt, ck, bt,
+ * sk, np, nfac)
+c
+ implicit double precision(a-h,o-z)
+ dimension a(*), b(*), wt(*), ck(*), bt(*), sk(*), np(*), nfac(*)
+c
+ inc = abs(isn)
+ nt = inc*ntot
+ ks = inc*nspan
+ rad = atan(1.0d+0)
+ s72 = rad/0.6250d+0
+ c72 = cos(s72)
+ s72 = sin(s72)
+ s120 = sqrt(0.750d+0)
+ if (isn.gt.0) go to 10
+ s72 = -s72
+ s120 = -s120
+ rad = -rad
+ go to 30
+c
+c scale by 1/n for isn .gt. 0
+c
+ 10 ak = 1.0d+0/dble(n)
+ do 20 j=1,nt,inc
+ a(j) = a(j)*ak
+ b(j) = b(j)*ak
+ 20 continue
+c
+ 30 kspan = ks
+ nn = nt - inc
+ jc = ks/n
+c
+c sin, cos values are reinitialized each lim steps
+c
+ lim = 32
+ klim = lim*jc
+ i = 0
+ jf = 0
+ maxf = m - kt
+ maxf = nfac(maxf)
+ if (kt.gt.0) maxf = max(nfac(kt),maxf)
+c
+c compute fourier transform
+c
+ 40 dr = 8.0d+0*dble(jc)/dble(kspan)
+ cd = 2.0d+0*sin(0.50d+0*dr*rad)**2
+ sd = sin(dr*rad)
+ kk = 1
+ i = i + 1
+ if (nfac(i).ne.2) go to 110
+c
+c transform for factor of 2 (including rotation factor)
+c
+ kspan = kspan/2
+ k1 = kspan + 2
+ 50 k2 = kk + kspan
+ ak = a(k2)
+ bk = b(k2)
+ a(k2) = a(kk) - ak
+ b(k2) = b(kk) - bk
+ a(kk) = a(kk) + ak
+ b(kk) = b(kk) + bk
+ kk = k2 + kspan
+ if (kk.le.nn) go to 50
+ kk = kk - nn
+ if (kk.le.jc) go to 50
+ if (kk.gt.kspan) go to 350
+ 60 c1 = 1.0d+0- cd
+ s1 = sd
+ mm = min(k1/2,klim)
+ go to 80
+ 70 ak = c1 - (cd*c1+sd*s1)
+ s1 = (sd*c1-cd*s1) + s1
+c
+c the following three statements compensate for truncation
+c error. if rounded arithmetic is used, substitute
+c c1=ak
+c
+ c1 = 0.50d+0/(ak**2+s1**2) + 0.50d+0
+ s1 = c1*s1
+ c1 = c1*ak
+ 80 k2 = kk + kspan
+ ak = a(kk) - a(k2)
+ bk = b(kk) - b(k2)
+ a(kk) = a(kk) + a(k2)
+ b(kk) = b(kk) + b(k2)
+ a(k2) = c1*ak - s1*bk
+ b(k2) = s1*ak + c1*bk
+ kk = k2 + kspan
+ if (kk.lt.nt) go to 80
+ k2 = kk - nt
+ c1 = -c1
+ kk = k1 - k2
+ if (kk.gt.k2) go to 80
+ kk = kk + jc
+ if (kk.le.mm) go to 70
+ if (kk.lt.k2) go to 90
+ k1 = k1 + inc + inc
+ kk = (k1-kspan)/2 + jc
+ if (kk.le.jc+jc) go to 60
+ go to 40
+ 90 s1 = dble((kk-1)/jc)*dr*rad
+ c1 = cos(s1)
+ s1 = sin(s1)
+ mm = min(k1/2,mm+klim)
+ go to 80
+c
+c transform for factor of 3 (optional code)
+c
+ 100 k1 = kk + kspan
+ k2 = k1 + kspan
+ ak = a(kk)
+ bk = b(kk)
+ aj = a(k1) + a(k2)
+ bj = b(k1) + b(k2)
+ a(kk) = ak + aj
+ b(kk) = bk + bj
+ ak = -0.50d+0*aj + ak
+ bk = -0.50d+0*bj + bk
+ aj = (a(k1)-a(k2))*s120
+ bj = (b(k1)-b(k2))*s120
+ a(k1) = ak - bj
+ b(k1) = bk + aj
+ a(k2) = ak + bj
+ b(k2) = bk - aj
+ kk = k2 + kspan
+ if (kk.lt.nn) go to 100
+ kk = kk - nn
+ if (kk.le.kspan) go to 100
+ go to 290
+c
+c transform for factor of 4
+c
+ 110 if (nfac(i).ne.4) go to 230
+ kspnn = kspan
+ kspan = kspan/4
+ 120 c1 = 1.0d+0
+ s1 = 0.0d+0
+ mm = min(kspan,klim)
+ go to 150
+ 130 c2 = c1 - (cd*c1+sd*s1)
+ s1 = (sd*c1-cd*s1) + s1
+c
+c the following three statements compensate for truncation
+c error. if rounded arithmetic is used, substitute
+c c1=c2
+c
+ c1 = 0.50d+0/(c2**2+s1**2) + 0.50d+0
+ s1 = c1*s1
+ c1 = c1*c2
+ 140 c2 = c1**2 - s1**2
+ s2 = c1*s1*2.0
+ c3 = c2*c1 - s2*s1
+ s3 = c2*s1 + s2*c1
+ 150 k1 = kk + kspan
+ k2 = k1 + kspan
+ k3 = k2 + kspan
+ akp = a(kk) + a(k2)
+ akm = a(kk) - a(k2)
+ ajp = a(k1) + a(k3)
+ ajm = a(k1) - a(k3)
+ a(kk) = akp + ajp
+ ajp = akp - ajp
+ bkp = b(kk) + b(k2)
+ bkm = b(kk) - b(k2)
+ bjp = b(k1) + b(k3)
+ bjm = b(k1) - b(k3)
+ b(kk) = bkp + bjp
+ bjp = bkp - bjp
+ if (isn.lt.0) go to 180
+ akp = akm - bjm
+ akm = akm + bjm
+ bkp = bkm + ajm
+ bkm = bkm - ajm
+ if (s1.eq.0.0d+0) go to 190
+ 160 a(k1) = akp*c1 - bkp*s1
+ b(k1) = akp*s1 + bkp*c1
+ a(k2) = ajp*c2 - bjp*s2
+ b(k2) = ajp*s2 + bjp*c2
+ a(k3) = akm*c3 - bkm*s3
+ b(k3) = akm*s3 + bkm*c3
+ kk = k3 + kspan
+ if (kk.le.nt) go to 150
+ 170 kk = kk - nt + jc
+ if (kk.le.mm) go to 130
+c MODIF HERE (WAS .lt.)
+ if (kk.le.kspan) go to 200
+ kk = kk - kspan + inc
+ if (kk.le.jc) go to 120
+ if (kspan.eq.jc) go to 350
+ go to 40
+ 180 akp = akm + bjm
+ akm = akm - bjm
+ bkp = bkm - ajm
+ bkm = bkm + ajm
+ if (s1.ne.0.0d+0) go to 160
+ 190 a(k1) = akp
+ b(k1) = bkp
+ a(k2) = ajp
+ b(k2) = bjp
+ a(k3) = akm
+ b(k3) = bkm
+ kk = k3 + kspan
+ if (kk.le.nt) go to 150
+ go to 170
+ 200 s1 = dble((kk-1)/jc)*dr*rad
+ c1 = cos(s1)
+ s1 = sin(s1)
+ mm = min(kspan,mm+klim)
+ go to 140
+c
+c transform for factor of 5 (optional code)
+c
+ 210 c2 = c72**2 - s72**2
+ s2 = 2.0d+0*c72*s72
+ 220 k1 = kk + kspan
+ k2 = k1 + kspan
+ k3 = k2 + kspan
+ k4 = k3 + kspan
+ akp = a(k1) + a(k4)
+ akm = a(k1) - a(k4)
+ bkp = b(k1) + b(k4)
+ bkm = b(k1) - b(k4)
+ ajp = a(k2) + a(k3)
+ ajm = a(k2) - a(k3)
+ bjp = b(k2) + b(k3)
+ bjm = b(k2) - b(k3)
+ aa = a(kk)
+ bb = b(kk)
+ a(kk) = aa + akp + ajp
+ b(kk) = bb + bkp + bjp
+ ak = akp*c72 + ajp*c2 + aa
+ bk = bkp*c72 + bjp*c2 + bb
+ aj = akm*s72 + ajm*s2
+ bj = bkm*s72 + bjm*s2
+ a(k1) = ak - bj
+ a(k4) = ak + bj
+ b(k1) = bk + aj
+ b(k4) = bk - aj
+ ak = akp*c2 + ajp*c72 + aa
+ bk = bkp*c2 + bjp*c72 + bb
+ aj = akm*s2 - ajm*s72
+ bj = bkm*s2 - bjm*s72
+ a(k2) = ak - bj
+ a(k3) = ak + bj
+ b(k2) = bk + aj
+ b(k3) = bk - aj
+ kk = k4 + kspan
+ if (kk.lt.nn) go to 220
+ kk = kk - nn
+ if (kk.le.kspan) go to 220
+ go to 290
+c
+c transform for odd factors
+c
+ 230 k = nfac(i)
+ kspnn = kspan
+ kspan = kspan/k
+ if (k.eq.3) go to 100
+ if (k.eq.5) go to 210
+ if (k.eq.jf) go to 250
+ jf = k
+ s1 = rad/(dble(k)/8.0d+0)
+ c1 = cos(s1)
+ s1 = sin(s1)
+ ck(jf) = 1.0d+0
+ sk(jf) = 0.0d+0
+ j = 1
+ 240 ck(j) = ck(k)*c1 + sk(k)*s1
+ sk(j) = ck(k)*s1 - sk(k)*c1
+ k = k - 1
+ ck(k) = ck(j)
+ sk(k) = -sk(j)
+ j = j + 1
+ if (j.lt.k) go to 240
+ 250 k1 = kk
+ k2 = kk + kspnn
+ aa = a(kk)
+ bb = b(kk)
+ ak = aa
+ bk = bb
+ j = 1
+ k1 = k1 + kspan
+ 260 k2 = k2 - kspan
+ j = j + 1
+ wt(j) = a(k1) + a(k2)
+ ak = wt(j) + ak
+ bt(j) = b(k1) + b(k2)
+ bk = bt(j) + bk
+ j = j + 1
+ wt(j) = a(k1) - a(k2)
+ bt(j) = b(k1) - b(k2)
+ k1 = k1 + kspan
+ if (k1.lt.k2) go to 260
+ a(kk) = ak
+ b(kk) = bk
+ k1 = kk
+ k2 = kk + kspnn
+ j = 1
+ 270 k1 = k1 + kspan
+ k2 = k2 - kspan
+ jj = j
+ ak = aa
+ bk = bb
+ aj = 0.0d+0
+ bj = 0.0d+0
+ k = 1
+ 280 k = k + 1
+ ak = wt(k)*ck(jj) + ak
+ bk = bt(k)*ck(jj) + bk
+ k = k + 1
+ aj = wt(k)*sk(jj) + aj
+ bj = bt(k)*sk(jj) + bj
+ jj = jj + j
+ if (jj.gt.jf) jj = jj - jf
+ if (k.lt.jf) go to 280
+ k = jf - j
+ a(k1) = ak - bj
+ b(k1) = bk + aj
+ a(k2) = ak + bj
+ b(k2) = bk - aj
+ j = j + 1
+ if (j.lt.k) go to 270
+ kk = kk + kspnn
+ if (kk.le.nn) go to 250
+ kk = kk - nn
+ if (kk.le.kspan) go to 250
+c
+c multiply by rotation factor (except for factors of 2 and 4)
+c
+ 290 if (i.eq.m) go to 350
+ kk = jc + 1
+ 300 c2 = 1.0d+0- cd
+ s1 = sd
+ mm = min(kspan,klim)
+ go to 320
+ 310 continue
+ c2 = c1 - (cd*c1+sd*s1)
+ s1 = s1 + (sd*c1-cd*s1)
+c
+c the following three statements compensate for truncation
+c error. if rounded arithmetic is used, they may
+c be deleted.
+c
+ c1 = 0.50d+0/(c2**2+s1**2) + 0.50d+0
+ s1 = c1*s1
+ c2 = c1*c2
+ 320 c1 = c2
+ s2 = s1
+ kk = kk + kspan
+ 330 ak = a(kk)
+ a(kk) = c2*ak - s2*b(kk)
+ b(kk) = s2*ak + c2*b(kk)
+ kk = kk + kspnn
+ if (kk.le.nt) go to 330
+ ak = s1*s2
+ s2 = s1*c2 + c1*s2
+ c2 = c1*c2 - ak
+ kk = kk - nt + kspan
+ if (kk.le.kspnn) go to 330
+ kk = kk - kspnn + jc
+ if (kk.le.mm) go to 310
+c MODIFICATION OF ORIGINAL CODE:
+ if (kk.le.kspan) go to 340
+c SINGLETON's CODE was:
+c if (kk.lt.kspan) go to 340
+ kk = kk - kspan + jc + inc
+ if (kk.le.jc+jc) go to 300
+ go to 40
+ 340 s1 = dble((kk-1)/jc)*dr*rad
+ c2 = cos(s1)
+ s1 = sin(s1)
+ mm = min(kspan,mm+klim)
+ go to 320
+c
+c permute the results to normal order---done in two stages
+c permutation for square factors of n
+c
+ 350 np(1) = ks
+ if (kt.eq.0) go to 440
+ k = kt + kt + 1
+ if (m.lt.k) k = k - 1
+ j = 1
+ np(k+1) = jc
+ 360 np(j+1) = np(j)/nfac(j)
+ np(k) = np(k+1)*nfac(j)
+ j = j + 1
+ k = k - 1
+ if (j.lt.k) go to 360
+ k3 = np(k+1)
+ kspan = np(2)
+ kk = jc + 1
+ k2 = kspan + 1
+ j = 1
+ if (n.ne.ntot) go to 400
+c
+c permutation for single-variate transform (optional code)
+c
+ 370 ak = a(kk)
+ a(kk) = a(k2)
+ a(k2) = ak
+ bk = b(kk)
+ b(kk) = b(k2)
+ b(k2) = bk
+ kk = kk + inc
+ k2 = kspan + k2
+ if (k2.lt.ks) go to 370
+ 380 k2 = k2 - np(j)
+ j = j + 1
+ k2 = np(j+1) + k2
+ if (k2.gt.np(j)) go to 380
+ j = 1
+ 390 if (kk.lt.k2) go to 370
+ kk = kk + inc
+ k2 = kspan + k2
+ if (k2.lt.ks) go to 390
+ if (kk.lt.ks) go to 380
+ jc = k3
+ go to 440
+c
+c permutation for multivariate transform
+c
+ 400 k = kk + jc
+ 410 ak = a(kk)
+ a(kk) = a(k2)
+ a(k2) = ak
+ bk = b(kk)
+ b(kk) = b(k2)
+ b(k2) = bk
+ kk = kk + inc
+ k2 = k2 + inc
+ if (kk.lt.k) go to 410
+ kk = kk + ks - jc
+ k2 = k2 + ks - jc
+ if (kk.lt.nt) go to 400
+ k2 = k2 - nt + kspan
+ kk = kk - nt + jc
+ if (k2.lt.ks) go to 400
+ 420 k2 = k2 - np(j)
+ j = j + 1
+ k2 = np(j+1) + k2
+ if (k2.gt.np(j)) go to 420
+ j = 1
+ 430 if (kk.lt.k2) go to 400
+ kk = kk + jc
+ k2 = kspan + k2
+ if (k2.lt.ks) go to 430
+ if (kk.lt.ks) go to 420
+ jc = k3
+ 440 if (2*kt+1.ge.m) return
+ kspnn = np(kt+1)
+c
+c permutation for square-free factors of n
+c
+ j = m - kt
+ nfac(j+1) = 1
+ 450 nfac(j) = nfac(j)*nfac(j+1)
+ j = j - 1
+ if (j.ne.kt) go to 450
+ kt = kt + 1
+ nn = nfac(kt) - 1
+ jj = 0
+ j = 0
+ go to 480
+ 460 jj = jj - k2
+ k2 = kk
+ k = k + 1
+ kk = nfac(k)
+ 470 jj = kk + jj
+ if (jj.ge.k2) go to 460
+ np(j) = jj
+ 480 k2 = nfac(kt)
+ k = kt + 1
+ kk = nfac(k)
+ j = j + 1
+ if (j.le.nn) go to 470
+c
+c determine the permutation cycles of length greater than 1
+c
+ j = 0
+ go to 500
+ 490 k = kk
+ kk = np(k)
+ np(k) = -kk
+ if (kk.ne.j) go to 490
+ k3 = kk
+ 500 j = j + 1
+ kk = np(j)
+ if (kk.lt.0) go to 500
+ if (kk.ne.j) go to 490
+ np(j) = -j
+ if (j.ne.nn) go to 500
+ maxf = inc*maxf
+c
+c reorder a and b, following the permutation cycles
+c
+ go to 570
+ 510 j = j - 1
+ if (np(j).lt.0) go to 510
+ jj = jc
+ 520 kspan = jj
+ if (jj.gt.maxf) kspan = maxf
+ jj = jj - kspan
+ k = np(j)
+ kk = jc*k + i + jj
+ k1 = kk + kspan
+ k2 = 0
+ 530 k2 = k2 + 1
+ wt(k2) = a(k1)
+ bt(k2) = b(k1)
+ k1 = k1 - inc
+ if (k1.ne.kk) go to 530
+ 540 k1 = kk + kspan
+ k2 = k1 - jc*(k+np(k))
+ k = -np(k)
+ 550 a(k1) = a(k2)
+ b(k1) = b(k2)
+ k1 = k1 - inc
+ k2 = k2 - inc
+ if (k1.ne.kk) go to 550
+ kk = k2
+ if (k.ne.j) go to 540
+ k1 = kk + kspan
+ k2 = 0
+ 560 k2 = k2 + 1
+ a(k1) = wt(k2)
+ b(k1) = bt(k2)
+ k1 = k1 - inc
+ if (k1.ne.kk) go to 560
+ if (jj.ne.0) go to 520
+ if (j.ne.1) go to 510
+ 570 j = k3 + 1
+ nt = nt - kspnn
+ i = nt - inc + 1
+ if (nt.ge.0) go to 510
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/dfftmx.lo b/modules/signal_processing/src/fortran/dfftmx.lo
new file mode 100755
index 000000000..38ca8d2f8
--- /dev/null
+++ b/modules/signal_processing/src/fortran/dfftmx.lo
@@ -0,0 +1,12 @@
+# src/fortran/dfftmx.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/dfftmx.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/dgee01.f b/modules/signal_processing/src/fortran/dgee01.f
new file mode 100755
index 000000000..613042e49
--- /dev/null
+++ b/modules/signal_processing/src/fortran/dgee01.f
@@ -0,0 +1,27 @@
+C/MEMBR ADD NAME=DGEE01,SSI=0
+ double precision function dgee01(k,n,m,x)
+c!purpose
+c function to calculate the lagrange interpolation
+c coefficients for use in the function gee.
+c!
+ dimension x(*)
+ double precision dev,x
+ double precision q
+ double precision pi2
+ common /rem001/ pi2,dev,nfcns,ngrid
+c
+ d=1.0d+0
+ q=x(k)
+ do 3 l=1,m
+ do 2 j=l,n,m
+ if ((j-k) .eq. 0) then
+ goto 2
+ else
+ goto 1
+ endif
+ 1 d=2.0d+0*d*(q-x(j))
+ 2 continue
+ 3 continue
+ dgee01=1.0d+0/d
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/dgee01.lo b/modules/signal_processing/src/fortran/dgee01.lo
new file mode 100755
index 000000000..c00e2f97a
--- /dev/null
+++ b/modules/signal_processing/src/fortran/dgee01.lo
@@ -0,0 +1,12 @@
+# src/fortran/dgee01.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/dgee01.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/dsn2.f b/modules/signal_processing/src/fortran/dsn2.f
new file mode 100755
index 000000000..74cdeceee
--- /dev/null
+++ b/modules/signal_processing/src/fortran/dsn2.f
@@ -0,0 +1,51 @@
+ double precision function dsn2(du, dk, dq)
+c!purpose
+c function: dsn2
+c calculation of the jacobi's elliptic function sn(u,k)
+c
+c external calculation of the parameter necessary
+c dk = k($k)
+c dq = exp(-pi*k'/k) ... (jacobi's nome)
+c!
+
+ implicit double precision (a-h,o-z)
+
+ data de, dz /1.d00,2.d00/
+
+ dpi=4.0d0*atan(1.0d00)
+ domi=2.0d0*dlamch('p')
+
+ dpi2 = dpi/dz
+ if (abs(dq).ge.de) go to 30
+
+ dm = dpi2*du/dk
+ dc = dz*dm
+ dc = cos(dc)
+
+ dm = sin(dm)*dk/dpi2
+ dqq = dq*dq
+ dq1 = dq
+ dq2 = dqq
+
+ do 10 i=1,100
+ dh = (de-dq1)/(de-dq2)
+ dh = dh*dh
+ dh = dh*(de-dz*dq2*dc+dq2*dq2)
+ dh = dh/(de-dz*dq1*dc+dq1*dq1)
+ dm = dm*dh
+
+ dh = abs(de-dh)
+ if (dh.lt.domi) go to 20
+
+ dq1 = dq1*dqq
+ dq2 = dq2*dqq
+ 10 continue
+
+ go to 30
+
+ 20 dsn2 = dm
+ return
+
+ 30 dsn2 = 0.d00
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/dsn2.lo b/modules/signal_processing/src/fortran/dsn2.lo
new file mode 100755
index 000000000..17f57ea15
--- /dev/null
+++ b/modules/signal_processing/src/fortran/dsn2.lo
@@ -0,0 +1,12 @@
+# src/fortran/dsn2.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/dsn2.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/dsqrtc.f b/modules/signal_processing/src/fortran/dsqrtc.f
new file mode 100755
index 000000000..fcc93ffdb
--- /dev/null
+++ b/modules/signal_processing/src/fortran/dsqrtc.f
@@ -0,0 +1,26 @@
+C/MEMBR ADD NAME=DSQRTC,SSI=0
+ subroutine dsqrtc(dx, dy, du, dv)
+c!purpose
+c computation of the complex square root in double precision
+c!calling sequence
+c subroutine dsqrtc(dx, dy, du, dv)
+c du + j*dv = sqrt ( dx + j*dy )
+c!
+c
+ implicit double precision (a-h,o-z)
+ domi=2.0d+0*dlamch('p')
+ dq = dx
+ dp = dy
+ dv = 0.50d+0*dq
+ du = dq*dq + dp*dp
+ du = sqrt(du)
+ du = 0.50d+0*du
+ dv = du - dv
+ du = dv + dq
+ if (abs(du).le.3.0d+0*dlamch('e')) du = 0.0d+0
+ du = sqrt(du)
+ if (abs(dv).le.3.0d+0*dlamch('e')) dv = 0.0d+0
+ dv = sqrt(dv)
+ if (dp.lt.(-domi)) du = -du
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/dsqrtc.lo b/modules/signal_processing/src/fortran/dsqrtc.lo
new file mode 100755
index 000000000..eee2bc28a
--- /dev/null
+++ b/modules/signal_processing/src/fortran/dsqrtc.lo
@@ -0,0 +1,12 @@
+# src/fortran/dsqrtc.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/dsqrtc.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/fft842.f b/modules/signal_processing/src/fortran/fft842.f
new file mode 100755
index 000000000..16e233408
--- /dev/null
+++ b/modules/signal_processing/src/fortran/fft842.f
@@ -0,0 +1,132 @@
+ subroutine fft842(in, n, x, y,err)
+c programe de transformee de fourier rapide pour n=2**m
+c - algorithme de cooley-tukey -
+c!entrees
+c
+c ce logiciel traite des entrees complexes sous forme de deux tableaux
+c
+c -1] tableau representant les coefficients reels :x(i)
+c -1] tableau representant les coefficients complexes :y(i)
+c
+c options :
+c directe ----> code=0
+c indirecte----> code=1
+c
+c si la dimension (suite de nombres complexes n'est pas de
+c dimension 2**n tel que 0<n<15 )err est positionne a 1 .
+c
+c
+ integer ij,ji,m,nt,n2pow,fn,n8pow,nxtlt,lengt
+ integer err
+ double precision pi2,p7
+ double precision pi,r,fi
+ double precision x(*), y(*)
+ dimension l(15)
+ equivalence(l15,l(1)),(l14,l(2)),(l13,l(3)),(l12,l(4)),
+ & (l11,l(5)),(l10,l(6)),(l9,l(7)),(l8,l(8)),(l7,l(9)),
+ & (l6,l(10)),(l5,l(11)),(l4,l(12)),(l3,l(13)),(l2,l(14)),
+ & (l1,l(15))
+c
+ pi2=8.0d+0*atan(1.0d+0)
+ pi=acos(-1.0d+0)
+ p7=1.0d+0/sqrt(2.0d+0)
+ do 10 i=1,15
+ m=i
+ nt=2**i
+ if(n.eq.nt)goto 20
+10 continue
+c
+c erreur puissance de 2 non respecte)==> err=1
+c
+ err=1
+ return
+c aucune erreur===> err=0
+20 err=0
+ n2pow=m
+ nthpo=n
+ fn=nthpo
+ if(in.eq.1)goto 40
+ do 30 i=1,nthpo
+ y(i)=-y(i)
+30 continue
+40 n8pow=n2pow/3
+ if(n8pow.eq.0)goto 60
+c
+c developement de l'algoritme en base 8 si ...
+c
+ do 50 ipass=1,n8pow
+ nxtlt=2**(n2pow-3*ipass)
+ lengt=8*nxtlt
+ call r8tx(nxtlt, nthpo, lengt, x(1), x(nxtlt+1), x(2*nxtlt+1),
+ & x(3*nxtlt+1), x(4*nxtlt+1), x(5*nxtlt+1), x(6*nxtlt+1),
+ & x(7*nxtlt+1), y(1), y(nxtlt+1), y(2*nxtlt+1), y(3*nxtlt+1),
+ & y(4*nxtlt+1), y(5*nxtlt+1), y(6*nxtlt+1), y(7*nxtlt+1))
+50 continue
+c
+c is there a four factor left
+c
+60 CRES=n2pow-3*n8pow-1
+ if (CRES .lt. 0) then
+ goto 90
+ elseif (CRES .eq. 0) then
+ goto 70
+ else
+ goto 80
+ endif
+c
+c iteration de l'algoritme en base 2
+c
+70 call r2tx(nthpo, x(1), x(2), y(1), y(2))
+ goto 90
+c
+c iteration de l'algoritme en base 4
+c
+80 call r4tx(nthpo, x(1), x(2), x(3), x(4), y(1), y(2), y(3), y(4))
+c
+90 do 110 j=1,15
+ l(j)=1.0d+0
+ CRES=j-n2pow
+ if (CRES .le. 0) goto 100
+ goto 110
+100 l(j)=2.0d+0**(n2pow+1-j)
+110 continue
+ ij=1
+ do 130 j1=1,l1
+ do 130 j2=j1,l2,l1
+ do 130 j3=j2,l3,l2
+ do 130 j4=j3,l4,l3
+ do 130 j5=j4,l5,l4
+ do 130 j6=j5,l6,l5
+ do 130 j7=j6,l7,l6
+ do 130 j8=j7,l8,l7
+ do 130 j9=j8,l9,l8
+ do 130 j10=j9,l10,l9
+ do 130 j11=j10,l11,l10
+ do 130 j12=j11,l12,l11
+ do 130 j13=j12,l13,l12
+ do 130 j14=j13,l14,l13
+ do 130 ji=j14,l15,l14
+ CRES=ij-ji
+ if (CRES .ge. 0) then
+ goto 130
+ else
+ goto 120
+ endif
+120 r=x(ij)
+ x(ij)=x(ji)
+ x(ji)=r
+ fi=y(ij)
+ y(ij)=y(ji)
+ y(ji)=fi
+130 ij=ij+1
+ if(in.eq.1)goto 150
+ do 140 i=1,nthpo
+ y(i)=-y(i)
+140 continue
+ goto 170
+150 do 160 i=1,nthpo
+ x(i)=x(i)/fn
+ y(i)=y(i)/fn
+160 continue
+170 return
+ end
diff --git a/modules/signal_processing/src/fortran/fft842.lo b/modules/signal_processing/src/fortran/fft842.lo
new file mode 100755
index 000000000..e2f9000e4
--- /dev/null
+++ b/modules/signal_processing/src/fortran/fft842.lo
@@ -0,0 +1,12 @@
+# src/fortran/fft842.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/fft842.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/filbut.f b/modules/signal_processing/src/fortran/filbut.f
new file mode 100755
index 000000000..92f2944d4
--- /dev/null
+++ b/modules/signal_processing/src/fortran/filbut.f
@@ -0,0 +1,61 @@
+C/MEMBR ADD NAME=FILBUT,SSI=0
+ subroutine filbut(fmin,fmax,atmin,atmax,
+ * ordre,fc,gain,poler,polei,err)
+c!
+c sous-programme : filbut
+c filtre a reponse impulsionnelle infinie
+c calcul en double precision
+c ecrit par gregoire de nanteuil le 08-10-1985
+c
+c
+c parametres entrants
+c par l"utilisateur :
+c
+c fmin : frequence de fin de bande passante.
+c
+c fmax : frequence de debut de bande affaiblie.
+c
+c atmin : amplitude crete a crete des ondulations
+c en bande passante en db .
+c
+c atmax : amplitude des ondulations en bande affaiblie en db .
+c
+c
+c parametres sortants
+c ordre : ordre du filtre.
+c
+c fc : frequence de coupure du filtre.
+c
+c gain : gain de la fonction de transfert.
+c
+c poler : tableau des parties reelles des poles
+c de la fonction de transfert.
+c
+c polei : tableau des parties imaginaires des poles
+c de la fonction de transfert.
+c
+c err : variable contenant le type d"erreur rencontree
+c
+c subroutines appelees frequen, poles, coeft
+c!
+ double precision fmin,fmax
+ double precision fc,gain
+ double precision poler(*),polei(*)
+ integer atmin,atmax,ordre,err
+c
+1 if (fmin.ge.fmax) err=36
+ if (err.gt.0) return
+ if ((fmin.le.0.).or.(fmax.ge.1.)) err=36
+ if (err.gt.0) return
+ if (atmin.ge.atmax) err=36
+ if (err.gt.0) return
+ if (atmin.le.0) err=36
+ if (err.gt.0) return
+10 continue
+c
+ call freque(fmin,fmax,atmin,atmax,ordre,fc,err)
+ call poles(ordre,fc,poler,polei)
+ call coeft(ordre,poler,polei,gain)
+100 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/filbut.lo b/modules/signal_processing/src/fortran/filbut.lo
new file mode 100755
index 000000000..68266d105
--- /dev/null
+++ b/modules/signal_processing/src/fortran/filbut.lo
@@ -0,0 +1,12 @@
+# src/fortran/filbut.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/filbut.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/freque.f b/modules/signal_processing/src/fortran/freque.f
new file mode 100755
index 000000000..5582751b4
--- /dev/null
+++ b/modules/signal_processing/src/fortran/freque.f
@@ -0,0 +1,40 @@
+C/MEMBR ADD NAME=FREQUE,SSI=0
+ subroutine freque(fmin,fmax,atmin,atmax,ordre,fc,err)
+c!
+c sous-programme : frequen
+c calcul de l'ordre et de la frequence de coupure du filtre
+c calcul en double precision
+c ecrit par gregoire de nanteuil le 08-10-1985
+c
+c
+c parametres entrants
+c fmin : frequence de fin de bande passante [0.;0.5]
+c
+c fmax : frequence de debut de bande affaiblie [0.;0.5]
+c
+c atmin : amplitude crete a crete des ondulations
+c en bande passante en db
+c
+c atmax : amplitudes des ondulations en bande affaiblie en db
+c
+c parametres sortants
+c ordre : ordre du filtre
+c
+c fc : frequence de coupure
+c
+c err : variable contenant le type d"erreur rencontree
+c!
+ double precision fmin,fmax
+ double precision fc
+ integer atmin,atmax,ordre,err
+c
+ ordre=nint(log10((10**(atmax/10.0d+0)-1)
+ * /(10**(atmin/10.0d+0)-1))/(2.0d+0*log10(fmax/fmin)))
+ if (ordre.le.0) err=36
+ if (err.gt.0) return
+ fc=fmax/(10**((log10(10**(atmax/10.0d+0)-1))/(2*ordre)))
+ if (fc.le.0) err=36
+ if (err.gt.0) return
+100 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/freque.lo b/modules/signal_processing/src/fortran/freque.lo
new file mode 100755
index 000000000..4c1b05ed7
--- /dev/null
+++ b/modules/signal_processing/src/fortran/freque.lo
@@ -0,0 +1,12 @@
+# src/fortran/freque.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/freque.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/gee.f b/modules/signal_processing/src/fortran/gee.f
new file mode 100755
index 000000000..bfb308638
--- /dev/null
+++ b/modules/signal_processing/src/fortran/gee.f
@@ -0,0 +1,25 @@
+C/MEMBR ADD NAME=GEE,SSI=0
+ double precision function gee(k,n,ad,x,y,grid)
+c!purpose
+c function to evaluate the frequency response using the
+c lagrange interpolation formula in the barycentric form
+c!
+ dimension ad(*),x(*),y(*)
+ dimension grid(*)
+ double precision p,c,d,xf
+ double precision pi2
+ double precision ad,dev,x,y
+ common /rem001/ pi2,dev,nfcns,ngrid
+c
+ p=0.0d+0
+ xf=grid(k)
+ xf=cos(pi2*xf)
+ d=0.0d+0
+ do 1 j=1,n
+ c=xf-x(j)
+ c=ad(j)/c
+ d=d+c
+ 1 p=p+c*y(j)
+ gee=p/d
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/gee.lo b/modules/signal_processing/src/fortran/gee.lo
new file mode 100755
index 000000000..b09eb100c
--- /dev/null
+++ b/modules/signal_processing/src/fortran/gee.lo
@@ -0,0 +1,12 @@
+# src/fortran/gee.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/gee.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/hammin.f b/modules/signal_processing/src/fortran/hammin.f
new file mode 100755
index 000000000..4a37627fb
--- /dev/null
+++ b/modules/signal_processing/src/fortran/hammin.f
@@ -0,0 +1,43 @@
+C/MEMBR ADD NAME=HAMMIN,SSI=0
+ subroutine hammin(ordr,demi,ieo,alph,win)
+c!
+c sous-programme: hammin
+c fenetre de hamming generalisee
+c en double precision
+c acheve le 05/12/85
+c ecrit par philippe touron
+c
+c
+c parametres entrants
+c -------------------
+c demi, ordre de la demi-fenetre (entier)
+c ordr, ordre du filtre (entier)
+c ieo, indicateur de parite (entier)
+c alph, 1ere constante de la fenetre de hamming (reelle)
+c
+c parametres sortants
+c -------------------
+c win, les valeurs de la demi-fenetre (tableau de reels qui doit
+c dans un programme appelant etre dimensionne a ordr)
+c
+c variables internes
+c ------------------
+c xcompt,ycompt,compt, compteur de boucle et indice de tableau en reel
+c (resp en entier)
+c
+c sous programmes appeles: aucun
+c!
+ double precision win(*),pi,twopi,xcompt,ycompt,alph,beta
+ integer ordr,compt,demi,ieo
+c
+ pi=acos(-1.0d+0)
+ twopi=2.0d+0*pi
+ beta=1.0d+0-alph
+ ycompt=dble(ordr)-1.0d+0
+ do 10 compt=1,demi
+ xcompt=dble(compt)-1.0d+0
+ if(ieo.eq.0)xcompt=xcompt+0.50d+0
+ win(compt)=alph+beta*cos((twopi*xcompt)/ycompt)
+10 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/hammin.lo b/modules/signal_processing/src/fortran/hammin.lo
new file mode 100755
index 000000000..27c26fb5c
--- /dev/null
+++ b/modules/signal_processing/src/fortran/hammin.lo
@@ -0,0 +1,12 @@
+# src/fortran/hammin.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/hammin.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/ino.f b/modules/signal_processing/src/fortran/ino.f
new file mode 100755
index 000000000..d2256927e
--- /dev/null
+++ b/modules/signal_processing/src/fortran/ino.f
@@ -0,0 +1,51 @@
+C/MEMBR ADD NAME=INO,SSI=0
+ double precision function ino(x)
+c!
+c fonction: ino
+c fonction de bessel pour la fenetre de kaiser
+c en double precision
+c acheve 05/12/85
+c ecrit par philippe touron
+c
+c
+c paramatres entrants
+c -------------------
+c x, variable reelle
+c
+c parametres sortants
+c -------------------
+c ino(x), valeur de la fonction de bessel (reelle)
+c
+c variables internes
+c ------------------
+c y, variable reelle egale a x/2
+c incr, increment reel de la fonction de bessel
+c term, valeur reelle du terme general de la serie de bessel
+c somm, fonction de bessel a la n-ieme iteration (reel)
+c prec, si le rapport (term/somm) < 1.0**-8, le calcul est stoppe !!
+c compt, compteur de boucle (entier)
+c xcompt, valeur de compt en double precision
+c
+c sous programmes appele: aucun
+c!
+ double precision x,y,prec,somm,incr,term,xcompt
+ integer compt
+c
+ y=x/2.0d+0
+ prec=0.000000010d+0
+ somm=1.0d+0
+ incr=1.0d+0
+ do 10 compt=1,25
+ xcompt=dble(compt)
+ incr=incr*y/xcompt
+ term=incr*incr
+ somm=somm+term
+ if ((somm*prec-term) .le. 0) then
+ goto 10
+ else
+ goto 20
+ endif
+10 continue
+20 ino=somm
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/ino.lo b/modules/signal_processing/src/fortran/ino.lo
new file mode 100755
index 000000000..ffc755c70
--- /dev/null
+++ b/modules/signal_processing/src/fortran/ino.lo
@@ -0,0 +1,12 @@
+# src/fortran/ino.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/ino.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/nstabl.f b/modules/signal_processing/src/fortran/nstabl.f
new file mode 100755
index 000000000..52182c11b
--- /dev/null
+++ b/modules/signal_processing/src/fortran/nstabl.f
@@ -0,0 +1,37 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+C/MEMBR ADD NAME=NSTABL,SSI=0
+ subroutine nstabl(a,n,w,ist)
+c test de stabilite
+ dimension a(*),w(*)
+ double precision a,w,al
+ ist=1
+ n1=n+1
+ do 1 i=1,n1
+ w(i)=a(i)
+ w(n1+i)=0.0d+0
+ 1 continue
+ k=0
+ if (n.eq.0) goto 99
+ 10 nk1=n-k+1
+ do 11 j=1,nk1
+ 11 w(n1+j)=w(nk1-j+1)
+ if(w(n1+nk1).eq.0.0d+0) return
+ al=w(nk1)/w(n1+nk1)
+ if(abs(al).ge.1.0d+0) return
+ nk=n-k
+ do 12 j=1,nk
+ 12 w(j)=w(j)-al*w(n1+j)
+ k=k+1
+ if (k.lt.n) goto 10
+ 99 ist=0
+ return
+ end
+
diff --git a/modules/signal_processing/src/fortran/nstabl.lo b/modules/signal_processing/src/fortran/nstabl.lo
new file mode 100755
index 000000000..41a713896
--- /dev/null
+++ b/modules/signal_processing/src/fortran/nstabl.lo
@@ -0,0 +1,12 @@
+# src/fortran/nstabl.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/nstabl.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/ouch.f b/modules/signal_processing/src/fortran/ouch.f
new file mode 100755
index 000000000..ab4b0e170
--- /dev/null
+++ b/modules/signal_processing/src/fortran/ouch.f
@@ -0,0 +1,40 @@
+C/MEMBR ADD NAME=OUCH,SSI=0
+ subroutine ouch
+c!purpose
+c writes an error message when the algorithm fails to
+c converge. there seem to be two conditions under which
+c the algorithm fails to converge: (1) the initial
+c guess for the extremal frequencies is so poor that
+c the exchange iteration cannot get started, or
+c (2) near the termination of a correct design,
+c the deviation decreases due to rounding errors
+c and the program stops. in this latter case the
+c filter design is probably acceptable, but should
+c be checked by computing a frequency response.
+c!
+ INCLUDE 'stack.h'
+ common /oops/niter,iout
+ character bufstr*(4096)
+
+ write(bufstr, 1001)
+ call basout(io ,wte ,bufstr(1:lnblnk(bufstr)))
+1001 format('************ failure to converge **********')
+
+ write(bufstr, 1002)
+ call basout(io ,wte ,bufstr(1:lnblnk(bufstr)))
+1002 format('probable cause is machine rounding error')
+
+ write(bufstr, 1003) niter
+ call basout(io ,wte ,bufstr(1:lnblnk(bufstr)))
+1003 format( '- number of iterations =',i4)
+
+ write(bufstr, 1004)
+ call basout(io ,wte ,bufstr(1:lnblnk(bufstr)))
+1004 format( 'if the number of iterations exceeds 3 the design')
+
+ write(bufstr, 1005)
+ call basout(io ,wte ,bufstr(1:lnblnk(bufstr)))
+1005 format('may be correct, but should be verified with an fft')
+
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/ouch.lo b/modules/signal_processing/src/fortran/ouch.lo
new file mode 100755
index 000000000..e6c7e6d01
--- /dev/null
+++ b/modules/signal_processing/src/fortran/ouch.lo
@@ -0,0 +1,12 @@
+# src/fortran/ouch.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/ouch.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/output_stream_Import.def b/modules/signal_processing/src/fortran/output_stream_Import.def
new file mode 100755
index 000000000..76b4f6e6d
--- /dev/null
+++ b/modules/signal_processing/src/fortran/output_stream_Import.def
@@ -0,0 +1,9 @@
+ LIBRARY output_stream.dll
+
+
+EXPORTS
+;
+;output_stream
+;
+error_
+basout_
diff --git a/modules/signal_processing/src/fortran/parcha.f b/modules/signal_processing/src/fortran/parcha.f
new file mode 100755
index 000000000..4433882c9
--- /dev/null
+++ b/modules/signal_processing/src/fortran/parcha.f
@@ -0,0 +1,36 @@
+C/MEMBR ADD NAME=PARCHA,SSI=0
+ subroutine parcha(iapro,adeg,adelp,adels,vsn,gd1,gd2,acap12)
+c!purpose
+c computation of the parameters of the characteristic function
+c Nomenclature Rabiner-Gold (page 241)
+c Si adelp > 0 et adelps > 0
+c acap12=1/k1
+c!calling sequence
+c subroutine parcha (iapro,adeg,adelp,adels,vsn,gd1,gd2,acap12)
+c implicit double precision (a-h,o-z)
+c!
+c
+ implicit double precision (a-h,o-z)
+c
+ gd1 = 0.0d+0
+ gd2 = -1.0d+0
+ if (adelp.gt.0.0d+0) gd1 = sqrt((2.0d+0-adelp)*adelp)
+ + / (1.0d+0-adelp)
+ if (adels.gt.0.0d+0) gd2 = sqrt(1.0d+0-adels*adels)/adels
+ acap12 = gd1/gd2
+ if (acap12.gt.0.0d+0) go to 60
+ go to (10, 20, 20, 30), iapro
+ 10 acap12 = vsn**(-adeg)
+ go to 40
+ 20 q = arcosh(vsn)*adeg
+ acap12 = 1.0d+0/cosh(q)
+ go to 40
+ 30 call bounn (adeg,acap12,vsn)
+ 40 if (gd2.eq.(-1.0d+0)) go to 50
+ gd1 = acap12*gd2
+ adelp = 1.0d+0 - 1.0d+0/sqrt(1.0d+0+gd1*gd1)
+ go to 60
+ 50 gd2 = gd1/acap12
+ adels = 1.0d+0/sqrt(1.0d+0+gd2*gd2)
+ 60 return
+ end
diff --git a/modules/signal_processing/src/fortran/parcha.lo b/modules/signal_processing/src/fortran/parcha.lo
new file mode 100755
index 000000000..477def4c9
--- /dev/null
+++ b/modules/signal_processing/src/fortran/parcha.lo
@@ -0,0 +1,12 @@
+# src/fortran/parcha.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/parcha.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/poles.f b/modules/signal_processing/src/fortran/poles.f
new file mode 100755
index 000000000..abdd60379
--- /dev/null
+++ b/modules/signal_processing/src/fortran/poles.f
@@ -0,0 +1,36 @@
+C/MEMBR ADD NAME=POLES,SSI=0
+ subroutine poles(ordre,fc,poler,polei)
+c!
+c sous-programme : poles
+c calcul des poles de la fonction de transfert
+c calcul en double precision
+c ecrit par gregoire de nanteuil le 08-10-1985
+c
+c
+c parametres entrants
+c ordre : ordre du filtre
+c
+c fc : frquence de coupure
+c
+c parametres sortants
+c poler : tableau des parties reelles des poles
+c de la fonction de transfert.
+c
+c polei : tableau des parties imaginaires des poles
+c de la fonction de transfert.
+c
+c variables internes
+c i
+c!
+ double precision pi,fc
+ double precision poler(*),polei(*)
+ integer ordre,i
+c
+ pi=3.1415926535897930d+0
+c
+ do 30 i=0,ordre-1
+ poler(i+1)=-fc*sin(pi*(2*i+1)/(2*ordre))
+ polei(i+1)=fc*cos(pi*(2*i+1)/(2*ordre))
+30 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/poles.lo b/modules/signal_processing/src/fortran/poles.lo
new file mode 100755
index 000000000..ebb22b74c
--- /dev/null
+++ b/modules/signal_processing/src/fortran/poles.lo
@@ -0,0 +1,12 @@
+# src/fortran/poles.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/poles.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/r2tx.f b/modules/signal_processing/src/fortran/r2tx.f
new file mode 100755
index 000000000..552786d23
--- /dev/null
+++ b/modules/signal_processing/src/fortran/r2tx.f
@@ -0,0 +1,17 @@
+ subroutine r2tx(nthpo, cr0, cr1, ci0, ci1)
+c!
+c subroutine: r2tx
+c sous-programme d'iteration en base 2
+c!
+ double precision cr0(*), cr1(*), ci0(*), ci1(*)
+ double precision r1,fi1
+ do 10 k=1,nthpo,2
+ r1=cr0(k)+cr1(k)
+ cr1(k)=cr0(k)-cr1(k)
+ cr0(k)=r1
+ fi1=ci0(k)+ci1(k)
+ ci1(k)=ci0(k)-ci1(k)
+ ci0(k)=fi1
+10 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/r2tx.lo b/modules/signal_processing/src/fortran/r2tx.lo
new file mode 100755
index 000000000..6369438ab
--- /dev/null
+++ b/modules/signal_processing/src/fortran/r2tx.lo
@@ -0,0 +1,12 @@
+# src/fortran/r2tx.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/r2tx.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/r4tx.f b/modules/signal_processing/src/fortran/r4tx.f
new file mode 100755
index 000000000..80d7d472e
--- /dev/null
+++ b/modules/signal_processing/src/fortran/r4tx.f
@@ -0,0 +1,29 @@
+ subroutine r4tx(nthpo, cr0, cr1, cr2, cr3, ci0, ci1, ci2, ci3)
+c!
+c subroutine: r4tx
+c sous-programme d'iteration en base 4
+c!
+ double precision cr0(*), cr1(*), cr2(*), cr3(*),
+ & ci0(*), ci1(*), ci2(*), ci3(*)
+ double precision r1,r2,r3,r4,fi1,fi2,fi3,fi4
+c
+ do 10 k=1,nthpo,4
+ r1=cr0(k)+cr2(k)
+ r2=cr0(k)-cr2(k)
+ r3=cr1(k)+cr3(k)
+ r4=cr1(k)-cr3(k)
+ fi1=ci0(k)+ci2(k)
+ fi2=ci0(k)-ci2(k)
+ fi3=ci1(k)+ci3(k)
+ fi4=ci1(k)-ci3(k)
+ cr0(k)=r1+r3
+ ci0(k)=fi1+fi3
+ cr1(k)=r1-r3
+ ci1(k)=fi1-fi3
+ cr2(k)=r2-fi4
+ ci2(k)=fi2+r4
+ cr3(k)=r2+fi4
+ ci3(k)=fi2-r4
+ 10 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/r4tx.lo b/modules/signal_processing/src/fortran/r4tx.lo
new file mode 100755
index 000000000..029791723
--- /dev/null
+++ b/modules/signal_processing/src/fortran/r4tx.lo
@@ -0,0 +1,12 @@
+# src/fortran/r4tx.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/r4tx.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/r8tx.f b/modules/signal_processing/src/fortran/r8tx.f
new file mode 100755
index 000000000..e25524846
--- /dev/null
+++ b/modules/signal_processing/src/fortran/r8tx.f
@@ -0,0 +1,110 @@
+ subroutine r8tx(nxtlt, nthpo, lengt, cr0, cr1, cr2, cr3, cr4,
+ & cr5, cr6, cr7, ci0, ci1, ci2, ci3, ci4, ci5, ci6, ci7)
+c!
+c subroutine: r8tx
+c sous-programme d'iteration en base 8
+c!
+ double precision cr0(*), cr1(*), cr2(*), cr3(*), cr4(*),
+ & cr5(*), cr6(*), cr7(*), ci1(*), ci2(*), ci3(*), ci4(*),
+ & ci5(*), ci6(*), ci7(*), ci0(*)
+ double precision arg,c1,s1,c2,s2,c3,s3,c4,s4,c5,s5,c6,s6,c7,s7,
+ & ar0,ar1,ar2,ar3,ar4,ar5,ar6,ar7,ai0,ai1,ai2,ai3,ai4,
+ & ai5,ai6,ai7,br0,br1,br2,br3,br4,br5,br6,br7,bi0,bi1,
+ & bi2,bi3,bi4,bi5,bi6,bi7,tr,ti,scale,pi2,p7
+c
+ pi2=8.0d+0*atan(1.0d+0)
+ p7=1.0d+0/sqrt(2.0d+0)
+ scale=pi2/dble(lengt)
+ do 30 j=1,nxtlt
+ arg=dble(j-1)*scale
+ c1=cos(arg)
+ s1=sin(arg)
+ c2=c1**2-s1**2
+ s2=c1*s1+c1*s1
+ c3=c1*c2-s1*s2
+ s3=c2*s1+s2*c1
+ c4=c2**2-s2**2
+ s4=c2*s2+c2*s2
+ c5=c2*c3-s2*s3
+ s5=c3*s2+s3*c2
+ c6=c3**2-s3**2
+ s6=c3*s3+c3*s3
+ c7=c3*c4-s3*s4
+ s7=c4*s3+s4*c3
+ do 20 k=j,nthpo,lengt
+ ar0=cr0(k)+cr4(k)
+ ar1=cr1(k)+cr5(k)
+ ar2=cr2(k)+cr6(k)
+ ar3=cr3(k)+cr7(k)
+ ar4=cr0(k)-cr4(k)
+ ar5=cr1(k)-cr5(k)
+ ar6=cr2(k)-cr6(k)
+ ar7=cr3(k)-cr7(k)
+ ai0=ci0(k)+ci4(k)
+ ai1=ci1(k)+ci5(k)
+ ai2=ci2(k)+ci6(k)
+ ai3=ci3(k)+ci7(k)
+ ai4=ci0(k)-ci4(k)
+ ai5=ci1(k)-ci5(k)
+ ai6=ci2(k)-ci6(k)
+ ai7=ci3(k)-ci7(k)
+ br0=ar0+ar2
+ br1=ar1+ar3
+ br2=ar0-ar2
+ br3=ar1-ar3
+ br4=ar4-ai6
+ br5=ar5-ai7
+ br6=ar4+ai6
+ br7=ar5+ai7
+ bi0=ai0+ai2
+ bi1=ai1+ai3
+ bi2=ai0-ai2
+ bi3=ai1-ai3
+ bi4=ai4+ar6
+ bi5=ai5+ar7
+ bi6=ai4-ar6
+ bi7=ai5-ar7
+ cr0(k)=br0+br1
+ ci0(k)=bi0+bi1
+ if(j.le.1)goto 10
+ cr1(k)=c4*(br0-br1)-s4*(bi0-bi1)
+ ci1(k)=c4*(bi0-bi1)+s4*(br0-br1)
+ cr2(k)=c2*(br2-bi3)-s2*(bi2+br3)
+ ci2(k)=c2*(bi2+br3)+s2*(br2-bi3)
+ cr3(k)=c6*(br2+bi3)-s6*(bi2-br3)
+ ci3(k)=c6*(bi2-br3)+s6*(br2+bi3)
+ tr=p7*(br5-bi5)
+ ti=p7*(br5+bi5)
+ cr4(k)=c1*(br4+tr)-s1*(bi4+ti)
+ ci4(k)=c1*(bi4+ti)+s1*(br4+tr)
+ cr5(k)=c5*(br4-tr)-s5*(bi4-ti)
+ ci5(k)=c5*(bi4-ti)+s5*(br4-tr)
+ tr=-p7*(br7+bi7)
+ ti=p7*(br7-bi7)
+ cr6(k)=c3*(br6+tr)-s3*(bi6+ti)
+ ci6(k)=c3*(bi6+ti)+s3*(br6+tr)
+ cr7(k)=c7*(br6-tr)-s7*(bi6-ti)
+ ci7(k)=c7*(bi6-ti)+s7*(br6-tr)
+ goto 20
+10 cr1(k)=br0-br1
+ ci1(k)=bi0-bi1
+ cr2(k)=br2-bi3
+ ci2(k)=bi2+br3
+ cr3(k)=br2+bi3
+ ci3(k)=bi2-br3
+ tr=p7*(br5-bi5)
+ ti=p7*(br5+bi5)
+ cr4(k)=br4+tr
+ ci4(k)=bi4+ti
+ cr5(k)=br4-tr
+ ci5(k)=bi4-ti
+ tr=-p7*(br7+bi7)
+ ti=p7*(br7-bi7)
+ cr6(k)=br6+tr
+ ci6(k)=bi6+ti
+ cr7(k)=br6-tr
+ ci7(k)=bi6-ti
+20 continue
+30 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/r8tx.lo b/modules/signal_processing/src/fortran/r8tx.lo
new file mode 100755
index 000000000..8400b49cf
--- /dev/null
+++ b/modules/signal_processing/src/fortran/r8tx.lo
@@ -0,0 +1,12 @@
+# src/fortran/r8tx.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/r8tx.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/remez.f b/modules/signal_processing/src/fortran/remez.f
new file mode 100755
index 000000000..50c03be9e
--- /dev/null
+++ b/modules/signal_processing/src/fortran/remez.f
@@ -0,0 +1,309 @@
+C/MEMBR ADD NAME=REMEZ,SSI=0
+ subroutine remez(ngr,nfc,iext,ad,x,y,des,grid,wt,a,p,q,alpha)
+c!purpose
+c this subroutine implements the remez exchange algorithm
+c for the weighted chebyshev approximation of a continuous
+c function with a sum of cosines. inputs to the subroutine
+c are a dense grid which replaces the frequency axis, the
+c desired function on this grid, the weight function on the
+c grid, the number of cosines, and an initial guess of the
+c extremal frequencies. the program minimizes the chebyshev
+c error by determining the best location of the extremal
+c frequencies (points of maximum error) and then calculates
+c the coefficients of the best approximation.
+c!calling sequence
+c subroutine remez(ngr,nfc,iext,ad,x,y,des,grid,wt,a,p,q,alpha)
+c dimensioning of arrays in calling program is as follows:
+c working vectors ad,x,y,a,p,q: nfc+2
+c input vectors des,grid,wt: ngr
+c input vector iext: nfc+2
+c output vector alpha: nfc+2
+c!authors
+C JAMES H. MCCLELLAN
+C DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE
+C MASSACHUSETTS INSTITUTE OF TECHNOLOGY
+C CAMBRIDGE, MASS. 02139
+C
+C THOMAS W. PARKS
+C DEPARTMENT OF ELECTRICAL ENGINEERING
+C RICE UNIVERSITY
+C HOUSTON, TEXAS 77001
+C
+C LAWRENCE R. RABINER
+C BELL LABORATORIES
+C MURRAY HILL, NEW JERSEY 07974
+c!
+ dimension iext(*),ad(*),alpha(*),x(*),y(*)
+ dimension des(*),grid(*),wt(*)
+ dimension a(*),p(*),q(*)
+ double precision pi2,dnum,dden,dtemp,a,p,q
+ double precision dk,dak
+ double precision ad,dev,x,y
+ double precision gee,dgee01
+ double precision alpha
+ common /rem001/ pi2,dev,nfcns,ngrid
+ common /oops/niter,iout
+c
+c the program allows a maximum number of iterations of 25
+c
+ itrmax=25
+ ngrid=ngr
+ nfcns=nfc
+ pi=4.0d+0*atan(1.0d+0)
+ pi2=2.0d+0*pi
+ devl=-1.0d+0
+ nz=nfcns+1
+ nzz=nfcns+2
+ niter=0
+ 100 continue
+ iext(nzz)=ngrid+1
+ niter=niter+1
+ if(niter.gt.itrmax) go to 400
+ do 110 j=1,nz
+ jxt=iext(j)
+ dtemp=grid(jxt)
+ dtemp=cos(dtemp*pi2)
+ 110 x(j)=dtemp
+ jet=(nfcns-1)/15+1
+ do 120 j=1,nz
+ 120 ad(j)=dgee01(j,nz,jet,x)
+ dnum=0.0d+0
+ dden=0.0d+0
+ k=1
+ do 130 j=1,nz
+ l=iext(j)
+ dtemp=ad(j)*des(l)
+ dnum=dnum+dtemp
+ dtemp=dble(k)*ad(j)/wt(l)
+ dden=dden+dtemp
+ 130 k=-k
+ dev=dnum/dden
+c write(6,131) dev
+c 131 format(1x,12hdeviation = ,f12.9)
+ nu=1
+ if(dev.gt.0.0d+0) nu=-1
+ dev=-dble(nu)*dev
+ k=nu
+ do 140 j=1,nz
+ l=iext(j)
+ dtemp=dble(k)*dev/wt(l)
+ y(j)=des(l)+dtemp
+ 140 k=-k
+ if(dev.gt.devl) go to 150
+ call ouch
+ go to 400
+ 150 devl=dev
+ jchnge=0
+ k1=iext(1)
+ knz=iext(nz)
+ klow=0
+ nut=-nu
+ j=1
+c
+c search for the extremal frequencies of the best
+c approximation
+c
+ 200 if(j.eq.nzz) ynz=comp
+ if(j.ge.nzz) go to 300
+ kup=iext(j+1)
+ l=iext(j)+1
+ nut=-nut
+ if(j.eq.2) y1=comp
+ comp=dev
+ if(l.ge.kup) go to 220
+ err=gee(l,nz,ad,x,y,grid)
+ err=(err-des(l))*wt(l)
+ dtemp=dble(nut)*err-comp
+ if(dtemp.le.0.0d+0) go to 220
+ comp=dble(nut)*err
+ 210 l=l+1
+ if(l.ge.kup) go to 215
+ err=gee(l,nz,ad,x,y,grid)
+ err=(err-des(l))*wt(l)
+ dtemp=dble(nut)*err-comp
+ if(dtemp.le.0.0d+0) go to 215
+ comp=dble(nut)*err
+ go to 210
+ 215 iext(j)=l-1
+ j=j+1
+ klow=l-1
+ jchnge=jchnge+1
+ go to 200
+ 220 l=l-1
+ 225 l=l-1
+ if(l.le.klow) go to 250
+ err=gee(l,nz,ad,x,y,grid)
+ err=(err-des(l))*wt(l)
+ dtemp=dble(nut)*err-comp
+ if(dtemp.gt.0.0d+0) go to 230
+ if(jchnge.le.0) go to 225
+ go to 260
+ 230 comp=dble(nut)*err
+ 235 l=l-1
+ if(l.le.klow) go to 240
+ err=gee(l,nz,ad,x,y,grid)
+ err=(err-des(l))*wt(l)
+ dtemp=dble(nut)*err-comp
+ if(dtemp.le.0.0d+0) go to 240
+ comp=dble(nut)*err
+ go to 235
+ 240 klow=iext(j)
+ iext(j)=l+1
+ j=j+1
+ jchnge=jchnge+1
+ go to 200
+ 250 l=iext(j)+1
+ if(jchnge.gt.0) go to 215
+ 255 l=l+1
+ if(l.ge.kup) go to 260
+ err=gee(l,nz,ad,x,y,grid)
+ err=(err-des(l))*wt(l)
+ dtemp=dble(nut)*err-comp
+ if(dtemp.le.0.0d+0) go to 255
+ comp=dble(nut)*err
+ go to 210
+ 260 klow=iext(j)
+ j=j+1
+ go to 200
+ 300 if(j.gt.nzz) go to 320
+ if(k1.gt.iext(1)) k1=iext(1)
+ if(knz.lt.iext(nz)) knz=iext(nz)
+ nut1=nut
+ nut=-nu
+ l=0
+ kup=k1
+ comp=ynz*(1.000010d+0)
+ luck=1
+ 310 l=l+1
+ if(l.ge.kup) go to 315
+ err=gee(l,nz,ad,x,y,grid)
+ err=(err-des(l))*wt(l)
+ dtemp=dble(nut)*err-comp
+ if(dtemp.le.0.0d+0) go to 310
+ comp=dble(nut)*err
+ j=nzz
+ go to 210
+ 315 luck=6
+ go to 325
+ 320 if(luck.gt.9) go to 350
+ if(comp.gt.y1) y1=comp
+ k1=iext(nzz)
+ 325 l=ngrid+1
+ klow=knz
+ nut=-nut1
+ comp=y1*(1.000010d+0)
+ 330 l=l-1
+ if(l.le.klow) go to 340
+ err=gee(l,nz,ad,x,y,grid)
+ err=(err-des(l))*wt(l)
+ dtemp=dble(nut)*err-comp
+ if(dtemp.le.0.0d+0) go to 330
+ j=nzz
+ comp=dble(nut)*err
+ luck=luck+10
+ go to 235
+ 340 if(luck.eq.6) go to 370
+ do 345 j=1,nfcns
+ nzzmj=nzz-j
+ nzmj=nz-j
+ 345 iext(nzzmj)=iext(nzmj)
+ iext(1)=k1
+ go to 100
+ 350 kn=iext(nzz)
+ do 360 j=1,nfcns
+ 360 iext(j)=iext(j+1)
+ iext(nz)=kn
+ go to 100
+ 370 if(jchnge.gt.0) go to 100
+c
+c calculation of the coefficients of the best approximation
+c using the inverse discrete fourier transform
+c
+ 400 continue
+ nm1=nfcns-1
+ fsh=1.0e-06
+ gtemp=grid(1)
+ x(nzz)=-2.0d+0
+ cn=2*nfcns-1
+ delf=1.0d+0/cn
+ l=1
+ kkk=0
+ if(grid(1).lt.0.010d+0.and.grid(ngrid).gt.0.490d+0) kkk=1
+ if(nfcns.le.3) kkk=1
+ if(kkk.eq.1) go to 405
+ dtemp=cos(pi2*grid(1))
+ dnum=cos(pi2*grid(ngrid))
+ aa=2.0d+0/(dtemp-dnum)
+ bb=-(dtemp+dnum)/(dtemp-dnum)
+ 405 continue
+ do 430 j=1,nfcns
+ ft=j-1
+ ft=ft*delf
+ xt=cos(pi2*ft)
+ if(kkk.eq.1) go to 410
+ xt=(xt-bb)/aa
+ xt1=sqrt(1.0d+0-xt*xt)
+ ft=atan2(xt1,xt)/pi2
+ 410 xe=x(l)
+ if(xt.gt.xe) go to 420
+ if((xe-xt).lt.fsh) go to 415
+ l=l+1
+ go to 410
+ 415 a(j)=y(l)
+ go to 425
+ 420 if((xt-xe).lt.fsh) go to 415
+ grid(1)=ft
+ a(j)=gee(1,nz,ad,x,y,grid)
+ 425 continue
+ if(l.gt.1) l=l-1
+ 430 continue
+ grid(1)=gtemp
+ dden=pi2/cn
+ do 510 j=1,nfcns
+ dtemp=0.0d+0
+ dnum=j-1
+ dnum=dnum*dden
+ if(nm1.lt.1) go to 505
+ do 500 k=1,nm1
+ dak=a(k+1)
+ dk=k
+ 500 dtemp=dtemp+dak*cos(dnum*dk)
+ 505 dtemp=2.0d+0*dtemp+a(1)
+ 510 alpha(j)=dtemp
+ do 550 j=2,nfcns
+ 550 alpha(j)=2.0d+0*alpha(j)/cn
+ alpha(1)=alpha(1)/cn
+ if(kkk.eq.1) go to 545
+ p(1)=2.0d+0*alpha(nfcns)*bb+alpha(nm1)
+ p(2)=2.0d+0*aa*alpha(nfcns)
+ q(1)=alpha(nfcns-2)-alpha(nfcns)
+ do 540 j=2,nm1
+ if(j.lt.nm1) go to 515
+ aa=0.5*aa
+ bb=0.5*bb
+ 515 continue
+ p(j+1)=0.0d+0
+ do 520 k=1,j
+ a(k)=p(k)
+ 520 p(k)=2.0d+0*bb*a(k)
+ p(2)=p(2)+a(1)*2.0d+0*aa
+ jm1=j-1
+ do 525 k=1,jm1
+ 525 p(k)=p(k)+q(k)+aa*a(k+1)
+ jp1=j+1
+ do 530 k=3,jp1
+ 530 p(k)=p(k)+aa*a(k-1)
+ if(j.eq.nm1) go to 540
+ do 535 k=1,j
+ 535 q(k)=-a(k)
+ nf1j=nfcns-1-j
+ q(1)=q(1)+alpha(nf1j)
+ 540 continue
+ do 543 j=1,nfcns
+ 543 alpha(j)=p(j)
+ 545 continue
+ if(nfcns.gt.3)return
+ alpha(nfcns+1)=0.0d+0
+ alpha(nfcns+2)=0.0d+0
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/remez.lo b/modules/signal_processing/src/fortran/remez.lo
new file mode 100755
index 000000000..d3d369939
--- /dev/null
+++ b/modules/signal_processing/src/fortran/remez.lo
@@ -0,0 +1,12 @@
+# src/fortran/remez.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/remez.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/romeg.f b/modules/signal_processing/src/fortran/romeg.f
new file mode 100755
index 000000000..a833e2996
--- /dev/null
+++ b/modules/signal_processing/src/fortran/romeg.f
@@ -0,0 +1,31 @@
+C/MEMBR ADD NAME=ROMEG,SSI=0
+ subroutine romeg(nmaxi,maxdeg,ityp,nzm,zm,rom)
+c!purpose
+c realized frequencies omega
+c!
+c
+ implicit double precision (a-h,o-z)
+ dimension rom(*), nzm(*)
+ double precision zm(maxdeg,*)
+c
+ n2 = nzm(2)
+ n3 = nzm(3)
+ go to (10, 20, 30, 40), ityp
+ 10 rom(1) = zm(n2,2)
+ rom(2) = zm(1,3)
+ go to 50
+ 20 rom(1) = zm(1,3)
+ rom(2) = zm(n2,2)
+ go to 50
+ 30 rom(1) = zm(n3,3)
+ rom(2) = zm(1,2)
+ rom(3) = zm(n2,2)
+ rom(4) = zm(1,3)
+ go to 50
+ 40 n2 = n2/2
+ rom(1) = zm(n2,2)
+ rom(4) = zm(n2+1,2)
+ rom(3) = zm(1,3)
+ rom(2) = zm(n3,3)
+ 50 return
+ end
diff --git a/modules/signal_processing/src/fortran/romeg.lo b/modules/signal_processing/src/fortran/romeg.lo
new file mode 100755
index 000000000..c158af606
--- /dev/null
+++ b/modules/signal_processing/src/fortran/romeg.lo
@@ -0,0 +1,12 @@
+# src/fortran/romeg.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/romeg.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/rpem.f b/modules/signal_processing/src/fortran/rpem.f
new file mode 100755
index 000000000..97c2f44e7
--- /dev/null
+++ b/modules/signal_processing/src/fortran/rpem.f
@@ -0,0 +1,202 @@
+C/MEMBR ADD NAME=RPEM,SSI=0
+ subroutine rpem(theta,p,n,u,y,lambda,k,c,istab2,v,eps,
+ & eps1,idim,fi,psi,tstab,work,f,g,l)
+c!but
+c -1 -1 -1
+c a(q )y(t) = b(q )u(t) + c(q )e(t)
+c
+c!parametres
+c
+c ***description des parametres***
+c
+c theta - vecteur d'ordre (3*n) qui contienne les parametres
+c de estimation
+c theta=(a(1) ...a(n),b(1) ...b(n), c(1) ...c(n)
+c theta est changee dans la subroutine
+c p - matrice symetrique d'ordre (3*n)
+c p est employee dans la forme u-d
+c p=u*d*u(transposee)
+c avec d diagonale et u triangulaire superieure
+c les elements de d sont conserves dans la diagonale de d
+c les elements de u sont gardes dans la partie diagonale
+c superieure de p. p est changee dans la subroutine.
+c n - modele d'ordre (min 1, max 10)
+c u - derniere valeur d'entree
+c y - derniere valeur de sortie
+c lambda- facteur d'oubli (a fournir)
+c k - facteur de contraction employe pour le filtrage
+c des donnees (a fournir)
+c commentaire:
+c pour des resultats raisonnables
+c 0.lt.lambda.le.1
+c lambda proche de 1 apres plusieurs appels a rpem
+c 0.lt.k.lt.1
+c k proche de 1 apres plusieurs appels a rpem
+c c - parametre employe pour la regularisation
+c c doit etre choisi plutot grand
+c istab1- flag (a fournir) pour les tests d'estabilite de c(z).
+c si istab1=0 on n'execute pas des controles (test
+c d'estabilite et reductions de pas)
+c si istab1.ne.0 on execute des controles (test
+c d'estabilite et eventuelles reductions de pas)
+c istab2- entier donne en sortie qu'indique le nombre des
+c reductions de pas executees. si istab1=0,
+c alors la valeur de istab2 n'est pas significative
+c v - fonction de perte- addition des carres des erreurs
+c predis. une modification due a des incertitudes dans
+c la phase transiente est inclue
+c v est changee par la subroutine
+c eps - erreur de prediction (retourne)
+c eps1 - residu(retourne)
+c init - flag employe pour commencer la prediction
+c si init=0 tous les parametres sont mis a jour
+c si init.ne.0 des valeurs initiaux adequats sont
+c mis en premier et apres les parametres sont mis
+c en employant les donnees disponibles u et y
+c po - parametre scalaire employe pour donner a p une
+c valeur initiale (a etre fourni quand init.ne.0)
+c if init.ne.0 p=po*matrice unitaire
+c idim - parametre de dimension
+c
+c!subroutines necessaires
+c nstabl
+c!
+ double precision theta(*),p(idim,*),u,y,c,eps,eps1,po
+ double precision fi(*),psi(*),tstab(*),work(*),f(*),g(*)
+ double precision lambda,k,l(*)
+ double precision amy,y1,u1,e1,ci,alfa,gamma,beta,dd,al,s,v
+c
+ nn=n*3
+c ========================================
+c test pour initialisation
+c ========================================
+ init=0
+ istab1=1
+ po=1
+ if (init.eq.0) goto 100
+c
+ v=0.0d+0
+ do 10 i=1,nn
+ do 10 j=1,nn
+10 p(i,j)=0.0d+0
+ do 20 i=1,nn
+ p(i,i)=po
+ theta(i)=0.0d+0
+ l(i)=0.0d+0
+ fi(i)=0.0d+0
+20 psi(i)=0.0d+0
+c ========================================
+c calcul de l'erreur de prediction
+c ========================================
+100 eps=y
+ do 110 i=1,nn
+110 eps=eps-fi(i)*theta(i)
+c ========================================
+c calcul des nouvelles estimations de parametres
+c ========================================
+ amy=1.0d+0
+c ========================================
+c test pour determiner si on fait des controles
+c ========================================
+ if(istab1.eq.0) goto 200
+ istab2=0
+120 do 130 i=1,n
+ ni=2*n+i
+130 tstab(i+1)=theta(ni)+l(ni)*eps*amy
+ tstab(1)=1.0d+0
+c ========================================
+c test pour stabilite de c(z)
+c ========================================
+ call nstabl(tstab,n,work,ist)
+ if (ist.eq.0) goto 200
+ amy=amy/2.0d+0
+ if(1.0d+0+amy.le.1.0d+0) goto 200
+ istab2=istab2+1
+ goto 120
+c ========================================
+c mise a jour de parametres d'estimation
+c ========================================
+200 do 210 i=1,nn
+210 theta(i)=theta(i)+l(i)*eps*amy
+c ========================================
+c calcul residus
+c ========================================
+ eps1=y
+ do 220 i=1,nn
+220 eps1=eps1-fi(i)*theta(i)
+c ========================================
+c calcul des signaux filtrees y1, u1, e1
+c ========================================
+ y1=y
+ u1=u
+ e1=eps1
+c
+ do 620 i=1,n
+ ci=theta(2*n+i)*k**i
+ y1=y1+ci*psi(i)
+ u1=u1-ci*psi(n+i)
+620 e1=e1-ci*psi(n*2+i)
+c ========================================
+c mise a jour des vecteurs fi et psi
+c ========================================
+ if(n.eq.1) goto 720
+ do 700 j=2,n
+ i=n+2-j
+ fi(i)=fi(i-1)
+ psi(i)=psi(i-1)
+ i=2*n+2-j
+ fi(i)=fi(i-1)
+ psi(i)=psi(i-1)
+ i=3*n+2-j
+ fi(i)=fi(i-1)
+700 psi(i)=psi(i-1)
+720 fi(1)=-y
+ psi(1)=-y1
+ fi(n+1)=u
+ psi(n+1)=u1
+ fi(2*n+1)=eps1
+ psi(2*n+1)=e1
+c ========================================
+c calcul du vecteur de gain l, mise a jour de p et v
+c ========================================
+ do 810 i=2,nn
+ j=nn+2-i
+ alfa=psi(j)
+ j1=j-1
+ do 800 kk=1,j1
+800 alfa=alfa+p(kk,j)*psi(kk)
+ f(j)=alfa
+810 g(j)=p(j,j)*alfa
+ g(1)=p(1,1)*psi(1)
+ f(1)=psi(1)
+c
+ alfa=lambda+f(1)*g(1)
+ gamma=0.0d+0
+ if (alfa.gt.0.0d+0) gamma=1.0d+0/alfa
+ if(g(1).ne.0.0d+0) p(1,1)=gamma*p(1,1)
+c
+ do 830 j=2,nn
+ beta=alfa
+ dd=g(j)
+ alfa=alfa+dd*f(j)
+ if(alfa.eq.0.0d+0) goto 830
+ al=-f(j)*gamma
+c
+ j1=j-1
+ do 820 i=1,j1
+ s=p(i,j)
+ p(i,j)=s+al*g(i)
+820 g(i)=g(i)+dd*s
+ gamma=1.0d+0/alfa
+ p(j,j)=beta*gamma*p(j,j)/lambda
+ p(j,j)=min(p(j,j),c)
+830 continue
+c
+ v=v+eps**2/alfa
+ do 840 i=1,nn
+840 l(i)=g(i)/alfa
+c ========================================
+c fin des calculs
+c ========================================
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/rpem.lo b/modules/signal_processing/src/fortran/rpem.lo
new file mode 100755
index 000000000..fc7cba304
--- /dev/null
+++ b/modules/signal_processing/src/fortran/rpem.lo
@@ -0,0 +1,12 @@
+# src/fortran/rpem.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/rpem.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/sci_ffir.f b/modules/signal_processing/src/fortran/sci_ffir.f
new file mode 100755
index 000000000..d95a14bf4
--- /dev/null
+++ b/modules/signal_processing/src/fortran/sci_ffir.f
@@ -0,0 +1,18 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+c =======================================
+ subroutine sciffir(fname)
+c implicit undefined (a-z)
+ include 'stack.h'
+ character*(*) fname
+ return
+ end
+c =======================================
+
+
diff --git a/modules/signal_processing/src/fortran/signal_processing_Import.def b/modules/signal_processing/src/fortran/signal_processing_Import.def
new file mode 100755
index 000000000..c1c727ad6
--- /dev/null
+++ b/modules/signal_processing/src/fortran/signal_processing_Import.def
@@ -0,0 +1,17 @@
+LIBRARY signal_processing.dll
+
+
+EXPORTS
+; imports required by f2c solution
+corrname_
+corrtyp_
+corradr_
+iercorr_
+rem001_
+oops_
+tg02bd_
+;
+setdgetx_
+dgety_
+dgetx_
+setdgety_
diff --git a/modules/signal_processing/src/fortran/signal_processing_f.rc b/modules/signal_processing/src/fortran/signal_processing_f.rc
new file mode 100755
index 000000000..38c13c722
--- /dev/null
+++ b/modules/signal_processing/src/fortran/signal_processing_f.rc
@@ -0,0 +1,96 @@
+// Microsoft Visual C++ generated resource script.
+//
+
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+//#include "afxres.h"
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "windows.h"
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// French (France) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)
+#ifdef _WIN32
+LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 5,5,2,0
+ PRODUCTVERSION 5,5,2,0
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040c04b0"
+ BEGIN
+ VALUE "FileDescription", "signal_processing_f module"
+ VALUE "FileVersion", "5, 5, 2, 0"
+ VALUE "InternalName", "signal_processing_f module"
+ VALUE "LegalCopyright", "Copyright (C) 2017"
+ VALUE "OriginalFilename", "signal_processing_f.dll"
+ VALUE "ProductName", "signal_processing_f module"
+ VALUE "ProductVersion", "5, 5, 2, 0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x40c, 1200
+ END
+END
+
+#endif // French (France) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/modules/signal_processing/src/fortran/signal_processing_f.vfproj b/modules/signal_processing/src/fortran/signal_processing_f.vfproj
new file mode 100755
index 000000000..a1ba0e7de
--- /dev/null
+++ b/modules/signal_processing/src/fortran/signal_processing_f.vfproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<VisualStudioProject ProjectType="typeDynamicLibrary" ProjectCreator="Intel Fortran" Keyword="Dll" Version="11.0" ProjectIdGuid="{959384FC-016C-4B01-B848-1B18D26B6CC4}">
+ <Platforms>
+ <Platform Name="Win32"/>
+ <Platform Name="x64"/></Platforms>
+ <Configurations>
+ <Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)bin\" IntermediateDirectory="$(ProjectDir)$(ConfigurationName)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.dll;$(TargetPath)" ConfigurationType="typeDynamicLibrary">
+ <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="../../../core/includes" PreprocessorDefinitions="WIN32;FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+ <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="signal_processing_f.def" GenerateDebugInformation="true" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib signal_processing.lib output_stream.lib elementary_functions.lib elementary_functions_f.lib core_f.lib"/>
+ <Tool Name="VFResourceCompilerTool"/>
+ <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/>
+ <Tool Name="VFCustomBuildTool"/>
+ <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion
+cd $(ConfigurationName)
+set LIST_OBJ=
+for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f
+&quot;$(SolutionDir)bin\dumpexts&quot; -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ%
+copy $(ProjectName).def ..\$(ProjectName).def &gt;nul
+del *.def &gt;nul
+cd .." Description="Build $(ProjectName).def"/>
+ <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:&quot;$(InputDir)core_import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)core.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)core_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)core_f.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)signal_processing_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)signal_processing.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)output_stream_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)output_stream.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)elementary_functions.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)elementary_functions_f.lib&quot; 1&gt;NUL 2&gt;NUL" Description="Build Dependencies"/>
+ <Tool Name="VFPostBuildEventTool"/>
+ <Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration>
+ <Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)bin\" IntermediateDirectory="$(ProjectDir)$(ConfigurationName)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.dll;$(TargetPath)" ConfigurationType="typeDynamicLibrary">
+ <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="../../../core/includes" PreprocessorDefinitions="WIN32;FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDLL"/>
+ <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="signal_processing_f.def" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib signal_processing.lib output_stream.lib elementary_functions.lib elementary_functions_f.lib core_f.lib"/>
+ <Tool Name="VFResourceCompilerTool"/>
+ <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/>
+ <Tool Name="VFCustomBuildTool"/>
+ <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion
+cd $(ConfigurationName)
+set LIST_OBJ=
+for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f
+&quot;$(SolutionDir)bin\dumpexts&quot; -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ%
+copy $(ProjectName).def ..\$(ProjectName).def &gt;nul
+del *.def &gt;nul
+cd .." Description="Build $(ProjectName).def"/>
+ <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:&quot;$(InputDir)core_import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)core.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)core_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)core_f.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)signal_processing_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)signal_processing.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)output_stream_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)output_stream.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)elementary_functions.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)elementary_functions_f.lib&quot; 1&gt;NUL 2&gt;NUL" Description="Build Dependencies"/>
+ <Tool Name="VFPostBuildEventTool"/>
+ <Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration>
+ <Configuration Name="Debug|x64" OutputDirectory="$(SolutionDir)bin\" IntermediateDirectory="$(ProjectDir)$(ConfigurationName)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.dll;$(TargetPath)" ConfigurationType="typeDynamicLibrary">
+ <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="../../../core/includes" PreprocessorDefinitions="WIN32;FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDebugDLL"/>
+ <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="signal_processing_f.def" GenerateDebugInformation="true" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib signal_processing.lib output_stream.lib elementary_functions.lib elementary_functions_f.lib core_f.lib"/>
+ <Tool Name="VFResourceCompilerTool"/>
+ <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/>
+ <Tool Name="VFCustomBuildTool"/>
+ <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion
+cd $(ConfigurationName)
+set LIST_OBJ=
+for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f
+&quot;$(SolutionDir)bin\dumpexts&quot; -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ%
+copy $(ProjectName).def ..\$(ProjectName).def &gt;nul
+del *.def &gt;nul
+cd .." Description="Build $(ProjectName).def"/>
+ <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:&quot;$(InputDir)core_import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)core.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)core_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)core_f.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)signal_processing_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)signal_processing.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)output_stream_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)output_stream.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)elementary_functions.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)elementary_functions_f.lib&quot; 1&gt;NUL 2&gt;NUL" Description="Build Dependencies"/>
+ <Tool Name="VFPostBuildEventTool"/>
+ <Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration>
+ <Configuration Name="Release|x64" OutputDirectory="$(SolutionDir)bin\" IntermediateDirectory="$(ProjectDir)$(ConfigurationName)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.dll;$(TargetPath)" ConfigurationType="typeDynamicLibrary">
+ <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="../../../core/includes" PreprocessorDefinitions="WIN32;FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDLL"/>
+ <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="signal_processing_f.def" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib signal_processing.lib output_stream.lib elementary_functions.lib elementary_functions_f.lib core_f.lib"/>
+ <Tool Name="VFResourceCompilerTool"/>
+ <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/>
+ <Tool Name="VFCustomBuildTool"/>
+ <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion
+cd $(ConfigurationName)
+set LIST_OBJ=
+for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f
+&quot;$(SolutionDir)bin\dumpexts&quot; -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ%
+copy $(ProjectName).def ..\$(ProjectName).def &gt;nul
+del *.def &gt;nul
+cd .." Description="Build $(ProjectName).def"/>
+ <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:&quot;$(InputDir)core_import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)core.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)core_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)core_f.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)signal_processing_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)signal_processing.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)output_stream_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)output_stream.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)elementary_functions.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)elementary_functions_f.lib&quot; 1&gt;NUL 2&gt;NUL" Description="Build Dependencies"/>
+ <Tool Name="VFPostBuildEventTool"/>
+ <Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration></Configurations>
+ <Files>
+ <Filter Name="Header Files" Filter="fi;fd"/>
+ <Filter Name="libraries Dependencies">
+ <File RelativePath=".\core_f_Import.def"/>
+ <File RelativePath=".\core_import.def"/>
+ <File RelativePath=".\Elementary_functions_f_Import.def"/>
+ <File RelativePath=".\Elementary_functions_Import.def"/>
+ <File RelativePath=".\output_stream_Import.def"/>
+ <File RelativePath=".\signal_processing_Import.def"/></Filter>
+ <Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+ <File RelativePath=".\signal_processing_f.rc"/></Filter>
+ <Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl">
+ <File RelativePath=".\amell.f"/>
+ <File RelativePath="..\..\sci_gateway\fortran\bgetx.f"/>
+ <File RelativePath="..\..\sci_gateway\fortran\bgety.f"/>
+ <File RelativePath=".\bldenz.f"/>
+ <File RelativePath=".\blnumz.f"/>
+ <File RelativePath=".\bounn.f"/>
+ <File RelativePath=".\cheby.f"/>
+ <File RelativePath=".\cmpse2.f"/>
+ <File RelativePath=".\cmpse3.f"/>
+ <File RelativePath=".\coeft.f"/>
+ <File RelativePath=".\compel.f"/>
+ <File RelativePath=".\degree.f"/>
+ <File RelativePath=".\deli1.f"/>
+ <File RelativePath=".\deli11.f"/>
+ <File RelativePath=".\deli2.f"/>
+ <File RelativePath=".\delip.f"/>
+ <File RelativePath=".\dellk.f"/>
+ <File RelativePath=".\desi00.f"/>
+ <File RelativePath=".\desi01.f"/>
+ <File RelativePath=".\desi11.f"/>
+ <File RelativePath=".\desi12.f"/>
+ <File RelativePath=".\desi14.f"/>
+ <File RelativePath=".\desi21.f"/>
+ <File RelativePath=".\desi22.f"/>
+ <File RelativePath=".\desi24.f"/>
+ <File RelativePath=".\desia.f"/>
+ <File RelativePath=".\desib.f"/>
+ <File RelativePath=".\dfft2.f"/>
+ <File RelativePath=".\dfftbi.f"/>
+ <File RelativePath=".\dfftmx.f"/>
+ <File RelativePath=".\dgee01.f"/>
+ <File RelativePath=".\dsn2.f"/>
+ <File RelativePath=".\dsqrtc.f"/>
+ <File RelativePath="..\..\sci_gateway\fortran\Ex-corr.f"/>
+ <File RelativePath=".\fft842.f"/>
+ <File RelativePath=".\filbut.f"/>
+ <File RelativePath=".\freque.f"/>
+ <File RelativePath=".\gee.f"/>
+ <File RelativePath=".\hammin.f"/>
+ <File RelativePath=".\ino.f"/>
+ <File RelativePath=".\nstabl.f"/>
+ <File RelativePath=".\ouch.f"/>
+ <File RelativePath=".\parcha.f"/>
+ <File RelativePath=".\poles.f"/>
+ <File RelativePath=".\r2tx.f"/>
+ <File RelativePath=".\r4tx.f"/>
+ <File RelativePath=".\r8tx.f"/>
+ <File RelativePath=".\remez.f"/>
+ <File RelativePath=".\romeg.f"/>
+ <File RelativePath=".\rpem.f"/>
+ <File RelativePath="..\..\sci_gateway\fortran\sci_f_amell.f"/>
+ <File RelativePath="..\..\sci_gateway\fortran\sci_f_corr.f"/>
+ <File RelativePath="..\..\sci_gateway\fortran\sci_f_delip.f"/>
+ <File RelativePath="..\..\sci_gateway\fortran\sci_f_fft.f"/>
+ <File RelativePath="..\..\sci_gateway\fortran\sci_f_fiir.f"/>
+ <File RelativePath="..\..\sci_gateway\fortran\sci_f_remez.f"/>
+ <File RelativePath="..\..\sci_gateway\fortran\sci_f_rpem.f"/>
+ <File RelativePath="..\..\sci_gateway\fortran\sci_f_syredi.f"/>
+ <File RelativePath=".\sci_ffir.f"/>
+ <File RelativePath=".\sn.f"/>
+ <File RelativePath=".\snell.f"/>
+ <File RelativePath=".\syredi.f"/>
+ <File RelativePath=".\tg02ad.f"/>
+ <File RelativePath=".\tranpo.f"/>
+ <File RelativePath=".\transn.f"/>
+ <File RelativePath=".\tranze.f"/>
+ <File RelativePath=".\trbipo.f"/>
+ <File RelativePath=".\trbize.f"/>
+ <File RelativePath=".\tscccf.f"/></Filter>
+ <File RelativePath="..\..\Makefile.am"/>
+ <File RelativePath="..\..\sci_gateway\signal_processing_gateway.xml"/></Files>
+ <Globals/></VisualStudioProject>
diff --git a/modules/signal_processing/src/fortran/signal_processing_f2c.vcxproj b/modules/signal_processing/src/fortran/signal_processing_f2c.vcxproj
new file mode 100755
index 000000000..dd7dd5c53
--- /dev/null
+++ b/modules/signal_processing/src/fortran/signal_processing_f2c.vcxproj
@@ -0,0 +1,422 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>signal_processing_f</ProjectName>
+ <ProjectGuid>{959384FC-016C-4B01-B848-1B18D26B6CC4}</ProjectGuid>
+ <RootNamespace>signal_processing_f2c</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ <Import Project="..\..\..\..\Visual-Studio-settings\f2c.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <PreBuildEvent>
+ <Message>Build Dependencies</Message>
+ <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)Core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;NUL</Command>
+ </PreBuildEvent>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../libs/f2c;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;INTERPOLATION_F2C_EXPORTS;FORDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <PreLinkEvent>
+ <Message>Build $(ProjectName).def</Message>
+ <Command>setlocal EnableDelayedExpansion
+cd $(ConfigurationName)
+set LIST_OBJ=
+for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f
+"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ%
+copy $(ProjectName).def ..\$(ProjectName).def &gt;nul
+del *.def &gt;nul
+cd ..
+</Command>
+ </PreLinkEvent>
+ <Link>
+ <AdditionalDependencies>core.lib;signal_processing.lib;output_stream.lib;elementary_functions.lib;elementary_functions_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <ModuleDefinitionFile>signal_processing_f.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <PreBuildEvent>
+ <Message>Build Dependencies</Message>
+ <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)Core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;NUL</Command>
+ </PreBuildEvent>
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../../libs/f2c;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;INTERPOLATION_F2C_EXPORTS;FORDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <PreLinkEvent>
+ <Message>Build $(ProjectName).def</Message>
+ <Command>setlocal EnableDelayedExpansion
+cd $(ConfigurationName)
+set LIST_OBJ=
+for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f
+"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ%
+copy $(ProjectName).def ..\$(ProjectName).def &gt;nul
+del *.def &gt;nul
+cd ..
+</Command>
+ </PreLinkEvent>
+ <Link>
+ <AdditionalDependencies>core.lib;signal_processing.lib;output_stream.lib;elementary_functions.lib;elementary_functions_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <ModuleDefinitionFile>signal_processing_f.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <PreBuildEvent>
+ <Message>Build Dependencies</Message>
+ <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)Core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;NUL</Command>
+ </PreBuildEvent>
+ <ClCompile>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>../../../../libs/f2c;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;INTERPOLATION_F2C_EXPORTS;FORDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <PreLinkEvent>
+ <Message>Build $(ProjectName).def</Message>
+ <Command>setlocal EnableDelayedExpansion
+cd $(ConfigurationName)
+set LIST_OBJ=
+for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f
+"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ%
+copy $(ProjectName).def ..\$(ProjectName).def &gt;nul
+del *.def &gt;nul
+cd ..
+</Command>
+ </PreLinkEvent>
+ <Link>
+ <AdditionalDependencies>core.lib;signal_processing.lib;output_stream.lib;elementary_functions.lib;elementary_functions_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <ModuleDefinitionFile>signal_processing_f.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <PreBuildEvent>
+ <Message>Build Dependencies</Message>
+ <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)Core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;NUL</Command>
+ </PreBuildEvent>
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>../../../../libs/f2c;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;INTERPOLATION_F2C_EXPORTS;FORDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <PreLinkEvent>
+ <Message>Build $(ProjectName).def</Message>
+ <Command>setlocal EnableDelayedExpansion
+cd $(ConfigurationName)
+set LIST_OBJ=
+for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f
+"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ%
+copy $(ProjectName).def ..\$(ProjectName).def &gt;nul
+del *.def &gt;nul
+cd ..
+</Command>
+ </PreLinkEvent>
+ <Link>
+ <AdditionalDependencies>core.lib;signal_processing.lib;output_stream.lib;elementary_functions.lib;elementary_functions_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile>
+ <ModuleDefinitionFile>signal_processing_f.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary>
+ <TargetMachine>MachineX64</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_amell.c" />
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_corr.c" />
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_delip.c" />
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_fft.c" />
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_fiir.c" />
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_remez.c" />
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_rpem.c" />
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_syredi.c" />
+ <ClCompile Include="amell.c" />
+ <ClCompile Include="..\..\sci_gateway\fortran\bgetx.c" />
+ <ClCompile Include="..\..\sci_gateway\fortran\bgety.c" />
+ <ClCompile Include="bldenz.c" />
+ <ClCompile Include="blnumz.c" />
+ <ClCompile Include="bounn.c" />
+ <ClCompile Include="cheby.c" />
+ <ClCompile Include="cmpse2.c" />
+ <ClCompile Include="cmpse3.c" />
+ <ClCompile Include="coeft.c" />
+ <ClCompile Include="compel.c" />
+ <ClCompile Include="degree.c" />
+ <ClCompile Include="deli1.c" />
+ <ClCompile Include="deli11.c" />
+ <ClCompile Include="deli2.c" />
+ <ClCompile Include="delip.c" />
+ <ClCompile Include="dellk.c" />
+ <ClCompile Include="desi00.c" />
+ <ClCompile Include="desi01.c" />
+ <ClCompile Include="desi11.c" />
+ <ClCompile Include="desi12.c" />
+ <ClCompile Include="desi14.c" />
+ <ClCompile Include="desi21.c" />
+ <ClCompile Include="desi22.c" />
+ <ClCompile Include="desi24.c" />
+ <ClCompile Include="desia.c" />
+ <ClCompile Include="desib.c" />
+ <ClCompile Include="dfft2.c" />
+ <ClCompile Include="dfftbi.c" />
+ <ClCompile Include="dfftmx.c" />
+ <ClCompile Include="dgee01.c" />
+ <ClCompile Include="dsn2.c" />
+ <ClCompile Include="dsqrtc.c" />
+ <ClCompile Include="..\..\sci_gateway\fortran\Ex-corr.c" />
+ <ClCompile Include="fft842.c" />
+ <ClCompile Include="filbut.c" />
+ <ClCompile Include="freque.c" />
+ <ClCompile Include="gee.c" />
+ <ClCompile Include="hammin.c" />
+ <ClCompile Include="ino.c" />
+ <ClCompile Include="nstabl.c" />
+ <ClCompile Include="ouch.c" />
+ <ClCompile Include="parcha.c" />
+ <ClCompile Include="poles.c" />
+ <ClCompile Include="r2tx.c" />
+ <ClCompile Include="r4tx.c" />
+ <ClCompile Include="r8tx.c" />
+ <ClCompile Include="remez.c" />
+ <ClCompile Include="romeg.c" />
+ <ClCompile Include="rpem.c" />
+ <ClCompile Include="sn.c" />
+ <ClCompile Include="snell.c" />
+ <ClCompile Include="syredi.c" />
+ <ClCompile Include="tg02ad.c" />
+ <ClCompile Include="tranpo.c" />
+ <ClCompile Include="transn.c" />
+ <ClCompile Include="tranze.c" />
+ <ClCompile Include="trbipo.c" />
+ <ClCompile Include="trbize.c" />
+ <ClCompile Include="tscccf.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_amell.f" />
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_corr.f" />
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_delip.f" />
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_fft.f" />
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_fiir.f" />
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_remez.f" />
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_rpem.f" />
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_syredi.f" />
+ <f2c_rule Include="amell.f" />
+ <f2c_rule Include="..\..\sci_gateway\fortran\bgetx.f" />
+ <f2c_rule Include="..\..\sci_gateway\fortran\bgety.f" />
+ <f2c_rule Include="bldenz.f" />
+ <f2c_rule Include="blnumz.f" />
+ <f2c_rule Include="bounn.f" />
+ <f2c_rule Include="cheby.f" />
+ <f2c_rule Include="cmpse2.f" />
+ <f2c_rule Include="cmpse3.f" />
+ <f2c_rule Include="coeft.f" />
+ <f2c_rule Include="compel.f" />
+ <f2c_rule Include="degree.f" />
+ <f2c_rule Include="deli1.f" />
+ <f2c_rule Include="deli11.f" />
+ <f2c_rule Include="deli2.f" />
+ <f2c_rule Include="delip.f" />
+ <f2c_rule Include="dellk.f" />
+ <f2c_rule Include="desi00.f" />
+ <f2c_rule Include="desi01.f" />
+ <f2c_rule Include="desi11.f" />
+ <f2c_rule Include="desi12.f" />
+ <f2c_rule Include="desi14.f" />
+ <f2c_rule Include="desi21.f" />
+ <f2c_rule Include="desi22.f" />
+ <f2c_rule Include="desi24.f" />
+ <f2c_rule Include="desia.f" />
+ <f2c_rule Include="desib.f" />
+ <f2c_rule Include="dfft2.f" />
+ <f2c_rule Include="dfftbi.f" />
+ <f2c_rule Include="dfftmx.f" />
+ <f2c_rule Include="dgee01.f" />
+ <f2c_rule Include="dsn2.f" />
+ <f2c_rule Include="dsqrtc.f" />
+ <f2c_rule Include="..\..\sci_gateway\fortran\Ex-corr.f" />
+ <f2c_rule Include="fft842.f" />
+ <f2c_rule Include="filbut.f" />
+ <f2c_rule Include="freque.f" />
+ <f2c_rule Include="gee.f" />
+ <f2c_rule Include="hammin.f" />
+ <f2c_rule Include="ino.f" />
+ <f2c_rule Include="nstabl.f" />
+ <f2c_rule Include="ouch.f" />
+ <f2c_rule Include="parcha.f" />
+ <f2c_rule Include="poles.f" />
+ <f2c_rule Include="r2tx.f" />
+ <f2c_rule Include="r4tx.f" />
+ <f2c_rule Include="r8tx.f" />
+ <f2c_rule Include="remez.f" />
+ <f2c_rule Include="romeg.f" />
+ <f2c_rule Include="rpem.f" />
+ <f2c_rule Include="sn.f" />
+ <f2c_rule Include="snell.f" />
+ <f2c_rule Include="syredi.f" />
+ <f2c_rule Include="tg02ad.f" />
+ <f2c_rule Include="tranpo.f" />
+ <f2c_rule Include="transn.f" />
+ <f2c_rule Include="tranze.f" />
+ <f2c_rule Include="trbipo.f" />
+ <f2c_rule Include="trbize.f" />
+ <f2c_rule Include="tscccf.f" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\..\Makefile.am" />
+ <None Include="..\..\sci_gateway\signal_processing_gateway.xml" />
+ <None Include="core_f_Import.def" />
+ <None Include="Elementary_functions_f_Import.def" />
+ <None Include="Elementary_functions_Import.def" />
+ <None Include="core_import.def" />
+ <None Include="output_stream_Import.def" />
+ <None Include="signal_processing_Import.def" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\..\tools\Dumpexts\Dumpexts.vcxproj">
+ <Project>{3170e4c2-1173-4264-a222-7ee8ccb3ddf7}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ <Import Project="..\..\..\..\Visual-Studio-settings\f2c.targets" />
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/modules/signal_processing/src/fortran/signal_processing_f2c.vcxproj.filters b/modules/signal_processing/src/fortran/signal_processing_f2c.vcxproj.filters
new file mode 100755
index 000000000..d6c11ece3
--- /dev/null
+++ b/modules/signal_processing/src/fortran/signal_processing_f2c.vcxproj.filters
@@ -0,0 +1,457 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ <Filter Include="Fortran files">
+ <UniqueIdentifier>{18349bb6-3f1d-4951-99a5-aeac4980248c}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Libraries Dependencies">
+ <UniqueIdentifier>{6627d266-40e7-4ca5-829c-5aa37731d26d}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="amell.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\fortran\bgetx.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\fortran\bgety.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="bldenz.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="blnumz.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="bounn.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="cheby.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="cmpse2.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="cmpse3.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="coeft.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="compel.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="degree.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="deli1.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="deli11.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="deli2.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="delip.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="dellk.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="desi00.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="desi01.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="desi11.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="desi12.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="desi14.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="desi21.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="desi22.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="desi24.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="desia.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="desib.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="dfft2.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="dfftbi.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="dfftmx.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="dgee01.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="dsn2.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="dsqrtc.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\fortran\Ex-corr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="fft842.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="filbut.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="freque.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="gee.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="hammin.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="ino.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="nstabl.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="ouch.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="parcha.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="poles.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="r2tx.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="r4tx.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="r8tx.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="remez.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="romeg.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="rpem.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="sn.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="snell.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="syredi.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="tg02ad.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="tranpo.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="transn.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="tranze.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="trbipo.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="trbize.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="tscccf.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_amell.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_corr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_delip.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_fft.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_fiir.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_remez.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_rpem.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\sci_gateway\fortran\sci_f_syredi.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <f2c_rule Include="amell.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="..\..\sci_gateway\fortran\bgetx.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="..\..\sci_gateway\fortran\bgety.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="bldenz.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="blnumz.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="bounn.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="cheby.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="cmpse2.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="cmpse3.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="coeft.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="compel.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="degree.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="deli1.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="deli11.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="deli2.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="delip.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="dellk.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="desi00.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="desi01.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="desi11.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="desi12.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="desi14.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="desi21.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="desi22.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="desi24.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="desia.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="desib.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="dfft2.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="dfftbi.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="dfftmx.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="dgee01.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="dsn2.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="dsqrtc.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="..\..\sci_gateway\fortran\Ex-corr.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="fft842.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="filbut.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="freque.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="gee.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="hammin.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="ino.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="nstabl.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="ouch.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="parcha.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="poles.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="r2tx.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="r4tx.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="r8tx.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="remez.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="romeg.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="rpem.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="sn.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="snell.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="syredi.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="tg02ad.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="tranpo.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="transn.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="tranze.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="trbipo.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="trbize.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="tscccf.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_amell.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_corr.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_delip.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_fft.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_fiir.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_remez.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_rpem.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_syredi.f">
+ <Filter>Fortran files</Filter>
+ </f2c_rule>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\..\Makefile.am" />
+ <None Include="..\..\sci_gateway\signal_processing_gateway.xml" />
+ <None Include="Elementary_functions_Import.def">
+ <Filter>Libraries Dependencies</Filter>
+ </None>
+ <None Include="core_import.def">
+ <Filter>Libraries Dependencies</Filter>
+ </None>
+ <None Include="output_stream_Import.def">
+ <Filter>Libraries Dependencies</Filter>
+ </None>
+ <None Include="signal_processing_Import.def">
+ <Filter>Libraries Dependencies</Filter>
+ </None>
+ <None Include="Elementary_functions_f_Import.def">
+ <Filter>Libraries Dependencies</Filter>
+ </None>
+ <None Include="core_f_Import.def">
+ <Filter>Libraries Dependencies</Filter>
+ </None>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/modules/signal_processing/src/fortran/sn.f b/modules/signal_processing/src/fortran/sn.f
new file mode 100755
index 000000000..d37a7364f
--- /dev/null
+++ b/modules/signal_processing/src/fortran/sn.f
@@ -0,0 +1,21 @@
+C/MEMBR ADD NAME=SN,SSI=0
+ double precision function sn(y,a,ak1,ak3)
+c!
+ implicit double precision (a-h,o-z)
+c
+ pi=3.1415926535
+ ns=sqrt(50.0*ak1/(pi*ak3))+2
+ x=y*0.50d+0/ak1
+ q=exp(-pi*ak3/ak1)
+ sup=2.0d+0*(q**(1.0d+0/4.0d+0))*sin(pi*x)
+ den=1.0d+0
+ i=-2
+ n=1
+ 1 sup=sup+i*(q**((n+0.5)**2))*sin((2*n+1)*pi*x)
+ den=den+i*(q**(n**2))*cos(2.*n*pi*x)
+ i=-i
+ n=n+1
+ if(n.le.ns) goto 1
+ sn=sup/(den*sqrt(a))
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/sn.lo b/modules/signal_processing/src/fortran/sn.lo
new file mode 100755
index 000000000..dee5c89ca
--- /dev/null
+++ b/modules/signal_processing/src/fortran/sn.lo
@@ -0,0 +1,12 @@
+# src/fortran/sn.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/sn.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/snell.f b/modules/signal_processing/src/fortran/snell.f
new file mode 100755
index 000000000..49af56f2a
--- /dev/null
+++ b/modules/signal_processing/src/fortran/snell.f
@@ -0,0 +1,53 @@
+C/MEMBR ADD NAME=SNELL,SSI=0
+ subroutine snell(dsn2,du, dk, dq)
+c!purpose
+c calculation of the jacobi's elliptic function sn(u,k)
+c
+c external calculation of the parameter necessary
+c dk = k($k)
+c dq = exp(-pi*k'/k) ... (jacobi's nome)
+c!
+c
+ double precision dpi, domi
+ double precision de, dz, dpi2, dq, dm, du, dk, dc, dqq, dh, dq1,
+ * dq2
+c
+ domi=2.0d+0*dlamch('p')
+ dpi=4.0d+0*atan(1.0d+0)
+c
+ data de, dz /1.0d+0,2.0d+0/
+c
+ dpi2 = dpi/dz
+ if (abs(dq).ge.de) go to 30
+c
+ dm = dpi2*du/dk
+ dc = dz*dm
+ dc = cos(dc)
+c
+ dm = sin(dm)*dk/dpi2
+ dqq = dq*dq
+ dq1 = dq
+ dq2 = dqq
+c
+ do 10 i=1,100
+ dh = (de-dq1)/(de-dq2)
+ dh = dh*dh
+ dh = dh*(de-dz*dq2*dc+dq2*dq2)
+ dh = dh/(de-dz*dq1*dc+dq1*dq1)
+ dm = dm*dh
+c
+ dh = abs(de-dh)
+ if (dh.lt.domi) go to 20
+c
+ dq1 = dq1*dqq
+ dq2 = dq2*dqq
+ 10 continue
+c
+ go to 30
+c
+ 20 dsn2 = dm
+ return
+c
+ 30 dsn2 = 0.0d+0
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/snell.lo b/modules/signal_processing/src/fortran/snell.lo
new file mode 100755
index 000000000..2f0e8a198
--- /dev/null
+++ b/modules/signal_processing/src/fortran/snell.lo
@@ -0,0 +1,12 @@
+# src/fortran/snell.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/snell.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/syredi.f b/modules/signal_processing/src/fortran/syredi.f
new file mode 100755
index 000000000..c00623e76
--- /dev/null
+++ b/modules/signal_processing/src/fortran/syredi.f
@@ -0,0 +1,92 @@
+ subroutine syredi(maxdeg,ityp,iapro,om,adelp,adels,ndeg,
+ * nb,fact,b2,b1,b0,c1,c0,zzr,zzi,zpr,zpi,ierr,
+ * spr,spi,pren,pimn,zm,sm,rom,nzero,nze)
+c!purpose
+c computes butterworth, chebyshev, and elliptic approximation;
+c!calling sequence
+c subroutine syredi(maxdeg,ityp,iapro,om,adelp,adels,ndeg,
+c * nb,fact,b2,b1,b0,c1,c0,zzr,zzi,zpr,zpi,ierr,
+c * spr,spi,pren,pimn,zm,sm,rom,nzero,nze)
+c
+c variables d entree
+c integer maxdeg,ityp,iapro
+c double precision om(4),adelp,adels
+c variables de sortie
+c integer ndeg,ierr
+c double precision bo(nb),b1(nb),b2(nb),c0(nb),c1(nb),fact
+c double precision zzr(maxdeg),zzi(maxdeg),spr(maxdeg),spi(maxdeg)
+c nb=(maxdeg+1)/2
+c!
+c variables de travail
+c pren,primn,nzero,zm,sm,rom,nzm,nze
+ implicit double precision (a-h,o-z)
+c
+ double precision b2(*),b1(*),b0(*)
+ double precision c1(*),c0(*)
+ double precision zzr(*),zzi(*),zpr(*),zpi(*)
+ double precision spr(*),spi(*)
+ double precision om(4)
+ double precision pren(*),pimn(*)
+ dimension nzm(4),nzero(*),nze(*)
+ double precision zm(maxdeg,4),sm(maxdeg,4)
+ double precision rom(4),fact,adelp,adels
+ nmaxi=(maxdeg+5)/2
+ nb=(maxdeg+1)/2
+c
+ norma=0
+ ndeg=0
+ edeg=0.0d+0
+ acx=0.0d+0
+c
+ adeg=0.0d+0
+ adelta=0.0d+0
+ a=0.0d+0
+c
+ do 10 i=1,4
+ rom(i) =0.0d+0
+ 10 continue
+ do 15 i=1,maxdeg
+ zzr(i)=0.0d+0
+ zzi(i)=0.0d+0
+ zpr(i)=0.0d+0
+ zpi(i)=0.0d+0
+ spr(i)=0.0d+0
+ spi(i)=0.0d+0
+ pren(i)=0.0d+0
+ pimn(i)=0.0d+0
+ nzero(i)=0.0d+0
+ 15 continue
+ do 20 i=1,nb
+ b2(i)=0.0d+0
+ b1(i)=0.0d+0
+ b0(i)=0.0d+0
+ c1(i)=0.0d+0
+ c0(i)=0.0d+0
+ 20 continue
+ do 21 i=1,maxdeg
+ do 21 j=1,4
+ sm(i,j)=0.0d+0
+ zm(i,j)=0.0d+0
+ 21 continue
+c
+ ierr=0
+ call desia (nmaxi,maxdeg,ityp,iapro,om,norma,
+ *edeg,ndeg,adelp,adels,nbn,nzero,nzm,vsn,a,
+ *adelta,adeg,sm,pren,pimn,ugc,ogc,ack,zm,zzr,zzi,
+ *rom,b2,b1,b0,dk,dks,dcap02,dcap04,vsnn,ndegn,nh,vd,nze,ierr)
+ if(2*ndeg.gt.maxdeg) then
+ ierr=-9
+ return
+ endif
+ if(ndeg.le.0) then
+ ierr=-7
+ return
+ endif
+ call desib(nmaxi,maxdeg,vsnn,ndegn,nbn,ityp,iapro,om,nh,adelp,
+ *adels,vd,a,adelta,pren,pimn,ugc,ogc,ack,dk,
+ *dks,dcap02,dcap04,acx,spr,spi,zpr,zpi,
+ *nb,fact,c1,c0,sm,ierr,ndeg)
+c
+ return
+ end
+
diff --git a/modules/signal_processing/src/fortran/syredi.lo b/modules/signal_processing/src/fortran/syredi.lo
new file mode 100755
index 000000000..fc3e007cf
--- /dev/null
+++ b/modules/signal_processing/src/fortran/syredi.lo
@@ -0,0 +1,12 @@
+# src/fortran/syredi.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/syredi.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/tg02ad.f b/modules/signal_processing/src/fortran/tg02ad.f
new file mode 100755
index 000000000..0709874a0
--- /dev/null
+++ b/modules/signal_processing/src/fortran/tg02ad.f
@@ -0,0 +1,113 @@
+C/MEMBR ADD NAME=TG02AD,SSI=0
+ subroutine tg02ad(ix,n,u,s,d,x,v)
+c!but
+c tg02ad - a routine to compute function values and 1st, 2nd
+c and 3rd derivative values of a cubic spline. the spline
+c is defined by its values and 1st derivative values at the
+c knots.
+c
+c the values of the spline and its derivatives are set to be
+c zero if x should fall outside the knot range plus or minus
+c a rounding error.
+c!calling sequence
+c ix set by the user to specify the method of estimating
+c the knot interval containing x. if ix<0 the
+c initial guess is calculated on the assumption that the
+c knots are equally spaced. if ix>=0 it assumes that
+c the current x is very near the x of the previous
+c entry and that it is the same spline.
+c n,u(i),s(i),d(i) i=1,n; define the spline and are set by
+c the user to the number of knots, the knots, the spline
+c values at the knots and the 1st derivative values
+c at the knots. the knots u(i) i=1,n must be ordered.
+c x the point at which the spline value is required.
+c v(i) i=1,4; set by the routine to the values of the spline
+c and its first three derivatives at the point x.
+c!
+ implicit double precision(a-h,o-z)
+ double precision u(*),s(*),d(*),v(*)
+c
+ common/tg02bd/ k
+c
+c k returned set to the knot interval that
+c contained x, i.e. u(k)<=x<=u(k+1).
+c
+c allowable rounding error on points at extreams
+c of knot range is 2**ieps*max(|u(1)|,|u(n)|).
+ integer iflg,ieps
+ data iflg,ieps/0,-30/
+c
+c test whether point in range.
+ j=0
+ k=0
+ if(x.lt.u(1)) go to 990
+ if(x.gt.u(n)) go to 991
+c
+c jump if knot interval requires random search.
+ if(ix.lt.0.or.iflg.eq.0) go to 12
+c test if knot interval same as last time.
+ if(x.gt.u(j+1)) go to 1
+ if(x.ge.u(j)) go to 18
+ go to 2
+c loop till interval found.
+ 1 j=j+1
+ 11 if(x.gt.u(j+1)) go to 1
+ go to 7
+c
+c estimate knot interval by assuming equally spaced knots.
+ 12 j=abs(x-u(1))/(u(n)-u(1))*(n-1)+1
+c ensure case x=u(n) gives j=n-1.
+ j=min(j,n-1)
+c indicate that knot interval inside range has been used.
+ iflg=1
+c search for knot interval containing x.
+ if(x.ge.u(j)) go to 11
+ 2 j=j-1
+ if(x.lt.u(j)) go to 2
+c
+c calculate spline parameters for jth interval.
+c
+c knot interval
+ 7 k=j
+ h=u(j+1)-u(j)
+ hr=1.0d+0/h
+ hrr=(hr+hr)*hr
+c
+ s0=s(j)
+ s1=s(j+1)
+ d0=d(j)
+ d1=d(j+1)
+ a=s1-s0
+ b=a-h*d1
+ a=a-h*d0
+ c=a+b
+ c3=c*3.0d+0
+c transform the variable
+ 18 theta=(x-u(j))*hr
+ phi=1.0d+0-theta
+ t=theta*phi
+ gama=theta*b-phi*a
+c spline value
+ v(1)=theta*s1+phi*s0+t*gama
+c 1st derivative value
+ v(2)=theta*d1+phi*d0+t*c3*hr
+c 2nd derivative value
+ v(3)=(c*(phi-theta)-gama)*hrr
+c 3rd derivative value
+ v(4)=-c3*hrr*hr
+ return
+c test if x within rounding error of u(1).
+ 990 if(x.le.u(1)-2.0d+0**ieps*max(abs(u(1)),abs(u(n)))) go to 99
+ j=1
+ go to 7
+c test if x within rounding error of u(n).
+ 991 if(x.ge.u(n)+2.0d+0**ieps*max(abs(u(1)),abs(u(n)))) go to 995
+ j=n-1
+ go to 7
+ 995 k=n
+ 99 iflg=0
+c values set to zero for points outside the range
+ 5 do 6 i=1,4
+ 6 v(i)=0d+0
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/tg02ad.lo b/modules/signal_processing/src/fortran/tg02ad.lo
new file mode 100755
index 000000000..c72153189
--- /dev/null
+++ b/modules/signal_processing/src/fortran/tg02ad.lo
@@ -0,0 +1,12 @@
+# src/fortran/tg02ad.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/tg02ad.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/tranpo.f b/modules/signal_processing/src/fortran/tranpo.f
new file mode 100755
index 000000000..dbc2341d3
--- /dev/null
+++ b/modules/signal_processing/src/fortran/tranpo.f
@@ -0,0 +1,73 @@
+ subroutine tranpo(nmaxi,maxdeg,ityp,vd,sm,a,ndeg,sfa,spr,spi,nj)
+c!purpose
+c reactance transformation of the poles
+c!
+ implicit double precision (a-h,o-z)
+ double precision sm (maxdeg,*)
+ double precision spr(*),spi(*)
+ external slamch, dlamch
+ real slamch
+c
+ flmi=2.0d+0*dlamch('p')
+ flma=2.0d+0**(int(slamch('l'))-2)
+ if (ityp.eq.1) go to 90
+ if (ityp.eq.3) go to 40
+ do 30 i=1,nj
+ qr = spr(i)
+ qi = spi(i)
+ qh = qr*qr + qi*qi
+ if (abs(qi).gt.flmi) go to 10
+ sfa = -sfa/qr
+ go to 20
+ 10 sfa = sfa/qh
+ 20 qi = qi/qh
+ if (abs(qi).lt.flmi) qi = 0.0d+0
+ spi(i) = qi
+ spr(i) = qr/qh
+ 30 continue
+ if (ityp.eq.2) go to 90
+ 40 qa = 2.0d+0*a
+ nn = nj
+ nj = ndeg
+ ndeg = 2*ndeg
+ me = nj
+ do 80 i=1,nn
+ qr = spr(i)/qa
+ qi = spi(i)/qa
+ if (abs(qi).ge.flma) go to 70
+ dr = qr
+ di = qi
+ dq = di*di
+ di = di*dr*2.0d+0
+ dr = dr*dr - dq - 1.0d+0
+ call dsqrtc(dr, di, dr, di)
+ qz = dr
+ qn = di
+ if (abs(qn).gt.flmi) go to 60
+ jj = nj + me
+ do 50 ii=me,nj
+ j = jj - ii
+ spr(j+1) = spr(j)
+ spi(j+1) = spi(j)
+ 50 continue
+ nj = nj + 1
+ me = me + 1
+ 60 spr(i) = qr + qz
+ spi(i) = qi + qn
+ spr(me) = qr - qz
+ spi(me) = qn - qi
+ me = me - 1
+ go to 80
+ 70 spr(i) = qr
+ spi(i) = flma
+ nj = nj + 1
+ spr(nj) = qr
+ spi(nj) = 0.0d+0
+ 80 continue
+ 90 do 100 i=1,nj
+ spr(i) = spr(i)*vd
+ spi(i) = spi(i)*vd
+ 100 continue
+ sfa = sfa*sm(nmaxi-1,4)
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/tranpo.lo b/modules/signal_processing/src/fortran/tranpo.lo
new file mode 100755
index 000000000..c367a0646
--- /dev/null
+++ b/modules/signal_processing/src/fortran/tranpo.lo
@@ -0,0 +1,12 @@
+# src/fortran/tranpo.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/tranpo.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/transn.f b/modules/signal_processing/src/fortran/transn.f
new file mode 100755
index 000000000..ac4a939b9
--- /dev/null
+++ b/modules/signal_processing/src/fortran/transn.f
@@ -0,0 +1,84 @@
+ subroutine transn(ityp,om,norma,vsn,vd,a)
+c!purpose
+c computation of the parameters of the normalized lowpass
+c!
+c
+ implicit double precision (a-h,o-z)
+ double precision om(*)
+c
+ tan2(aa) = sin(aa/2.0d+0)/cos(aa/2.0d+0)
+c
+c
+c Nomenclature Rabiner-Gold (page 241)
+c Si ityp = < 2
+c vsn=1/k
+ v1 = tan2(om(1))
+ v2 = tan2(om(2))
+ if (ityp.le.2) go to 210
+ v3 = tan2(om(3))
+ v4 = tan2(om(4))
+ if (ityp.eq.3) go to 10
+ q = v1
+ v1 = -v4
+ v4 = -q
+ q = v2
+ v2 = -v3
+ v3 = -q
+c
+ 10 jj = 1
+ j = norma + 1
+ go to (30, 30, 40, 70), j
+ 30 vdq1 = v2*v3
+ vsn1 = vdq1/v1 - v1
+ q = v4 - vdq1/v4
+ if (q.lt.vsn1) vsn1 = q
+ a1 = 1.0d+0/(v3-v2)
+ vsn1 = vsn1*a1
+ go to (40, 50, 40), j
+ 40 vdq = v1*v4
+ a = v2/(vdq-v2*v2)
+ q = v3/(v3*v3-vdq)
+ if (q.lt.a) a = q
+ vsn = a*(v4-v1)
+ if (norma.eq.2) go to 200
+ if (vsn.ge.vsn1) go to 200
+ 50 vdq = vdq1
+ 60 vsn = vsn1
+ a = a1
+ go to 200
+c
+ 70 vdq = sqrt(v1*v2*v3*v4)
+ a1 = v3/(v3*v3-vdq)
+ vsn1 = (v4-vdq/v4)*a1
+ a = v2/(vdq-v2*v2)
+ vsn = (vdq/v1-v1)*a
+ if (vsn.ge.vsn1) go to 200
+ go to 60
+c
+c BUG: NO PATH TO HERE !!!!!
+cccp vdq = v2*v3
+cccp vsn = v4 - vdq/v4
+c
+cccp a = 1.0d+0/(v3-v2)
+cccp vsn = vsn*a
+c
+ 200 vd = sqrt(vdq)
+ a = a*vd
+ if (ityp.le.3) go to 270
+ a = a/vsn
+ go to 270
+c
+ 210 j = ityp
+ go to (220, 220, 230, 240, 250, 260), j
+ 220 vsn = v2/v1
+ go to (250, 240), j
+ 230 vd = v2/vsn
+ go to 270
+ 240 vd = v2
+ go to 270
+ 250 vd = v1
+ go to 270
+ 260 vd = v1*vsn
+c
+ 270 return
+ end
diff --git a/modules/signal_processing/src/fortran/transn.lo b/modules/signal_processing/src/fortran/transn.lo
new file mode 100755
index 000000000..8fd000b63
--- /dev/null
+++ b/modules/signal_processing/src/fortran/transn.lo
@@ -0,0 +1,12 @@
+# src/fortran/transn.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/transn.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/tranze.f b/modules/signal_processing/src/fortran/tranze.f
new file mode 100755
index 000000000..781aec702
--- /dev/null
+++ b/modules/signal_processing/src/fortran/tranze.f
@@ -0,0 +1,122 @@
+ subroutine tranze(nmaxi,maxdeg,ityp,ndeg,nzm,a,vd,sm,nzero)
+c!purpose
+c reactance transformation of the zeros and the locations of the
+c extrema
+c!
+c
+ implicit double precision (a-h,o-z)
+c
+ external slamch
+ real slamch
+ dimension nzm(*),nzero(*)
+ double precision sm(maxdeg,*)
+c
+ dimension msm(4)
+c
+ flma=2.0d+0**(int(slamch('l'))-2)
+ flmi=2.0d+0*dlamch('p')
+ fa = 1.0d+0
+ if (ityp.eq.1) go to 190
+ if (ityp.eq.3) go to 60
+c
+ me = nzm(4)
+ do 10 i=1,me
+ q = sm(i,4)
+ if (q.lt.flma) fa = fa*q
+ 10 continue
+c
+ fa = fa*fa
+c
+c lowpass - highpass
+c
+ do 50 j=1,4
+ me = nzm(j)
+ do 40 i=1,me
+ qi = sm(i,j)
+ if (abs(qi).lt.flmi) go to 20
+ qi = 1.0d+0/qi
+ go to 30
+ 20 qi = flma
+ 30 sm(i,j) = qi
+ 40 continue
+ 50 continue
+ go to 90
+ 60 do 80 j=1,2
+ me = nzm(j)
+ ma = me + 1
+ me = me/2
+ do 70 i=1,me
+ qi = sm(i,j)
+ ii = ma - i
+ sm(i,j) = sm(ii,j)
+ sm(ii,j) = qi
+ 70 continue
+ 80 continue
+c
+ 90 if (ityp.eq.2) go to 190
+c
+c lowpass - bandpass transformation
+c
+ qa = 2.0d+0*a
+ nn = ndeg + 1
+ if (ityp.eq.4) go to 110
+c
+ msm(1) = 1
+ if (nzm(1).ne.1) msm(1) = ndeg
+ msm(2) = 2
+ if (nzm(2).ne.1) msm(2) = nn
+ do 100 j=3,4
+ msm(j) = 2*nzm(j)
+ 100 continue
+ go to 130
+c
+ 110 do 120 j=1,2
+ msm(j) = 2*nzm(j)
+ 120 continue
+ msm(3) = 2
+ if (nzm(3).ne.1) msm(3) = nn
+ msm(4) = 1
+ if (nzm(4).ne.1) msm(4) = ndeg
+c
+ 130 s = 1.0d+0
+ do 180 j=1,4
+ me = nzm(j)
+ ma = msm(j)
+ nzm(j) = ma
+ if (j.eq.3) s = -1.0d+0
+ do 170 i=1,me
+ qr = sm(i,j)
+ nu = nzero(i)
+ if (abs(qr).lt.flma) go to 150
+ if (j.ne.4) go to 140
+ fa = fa*(vd/a)**nu
+ 140 qi = qr
+ go to 160
+c
+ 150 qr = qr/qa
+ dr = qr
+ dqi = sqrt(dr*dr+1.0d+0)
+ qi = dqi
+ 160 sm(i,j) = qi - s*qr
+ ii = ma - i + 1
+ if (abs(qr).lt.flmi) nu = 2*nu
+ if (j.eq.4) nzero(ii) = nu
+ sm(ii,j) = qi + s*qr
+ 170 continue
+ 180 continue
+c
+ 190 do 220 j=1,4
+ me = nzm(j)
+ do 210 i=1,me
+ q = sm(i,j)
+ if (q.lt.flma) go to 200
+ if (j.ne.4 .or. ityp.ge.3) go to 210
+ nu = nzero(i)
+ fa = fa*vd**nu
+ go to 210
+ 200 sm(i,j) = q*vd
+ 210 continue
+ 220 continue
+ sm(nmaxi-1,4) = sm(nmaxi-1,4)*fa
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/tranze.lo b/modules/signal_processing/src/fortran/tranze.lo
new file mode 100755
index 000000000..820a2b702
--- /dev/null
+++ b/modules/signal_processing/src/fortran/tranze.lo
@@ -0,0 +1,12 @@
+# src/fortran/tranze.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/tranze.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/trbipo.f b/modules/signal_processing/src/fortran/trbipo.f
new file mode 100755
index 000000000..bd2e98537
--- /dev/null
+++ b/modules/signal_processing/src/fortran/trbipo.f
@@ -0,0 +1,37 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+C/MEMBR ADD NAME=TRBIPO,SSI=0
+ subroutine trbipo(nmaxi,maxdeg,nj,sfa,sm,spr,spi,zfa,zpr,zpi)
+c!purpose
+c bilinear transformation of the poles
+c!
+ implicit double precision (a-h,o-z)
+ double precision sm(maxdeg,*)
+ double precision spr(*),spi(*),zpr(*),zpi(*)
+ flmi=2.0d+0*dlamch('p')
+ zfa = sfa*sm(nmaxi-1,1)
+ do 20 i=1,nj
+ qr = spr(i)
+ q = 1.0d+0 - qr
+ qi = spi(i)
+ if (abs(qi).lt.flmi) go to 10
+ qqr = qr*qr
+ qqi = qi*qi
+ zfa = zfa/(q-qr+qqr+qqi)
+ q = 1.0d+0/(q*q+qqi)
+ zpr(i) = (1.0d+0-qqr-qqi)*q
+ zpi(i) = 2.0d+0*qi*q
+ go to 20
+ 10 zpr(i) = (1.0d+0+qr)/q
+ zpi(i) = 0.0d+0
+ zfa = zfa/q
+ 20 continue
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/trbipo.lo b/modules/signal_processing/src/fortran/trbipo.lo
new file mode 100755
index 000000000..5f7ec68a3
--- /dev/null
+++ b/modules/signal_processing/src/fortran/trbipo.lo
@@ -0,0 +1,12 @@
+# src/fortran/trbipo.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/trbipo.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/trbize.f b/modules/signal_processing/src/fortran/trbize.f
new file mode 100755
index 000000000..c210df47e
--- /dev/null
+++ b/modules/signal_processing/src/fortran/trbize.f
@@ -0,0 +1,42 @@
+ subroutine trbize(nmaxi,maxdeg,nzm,nzero,sm,zm,zzr,zzi)
+c!purpose
+c bilinear transformation of the zeros and the locations of the extrema
+c!
+c
+ implicit double precision (a-h,o-z)
+ dimension nzm(*)
+ dimension sm(maxdeg,*), nzero(*)
+ double precision zm(maxdeg,*), zzr(*), zzi(*)
+ external slamch, dlamch
+ real slamch
+c
+ flma=2.0d+0**(int(slamch('l'))-2)
+ flmi=2.0d+0*dlamch('p')
+ fa = 1.0d+0
+ do 50 j=1,4
+ me = nzm(j)
+ do 40 i=1,me
+ qi = sm(i,j)
+ zm(i,j) = 2.0d+0*atan(qi)
+ if (j.ne.4) go to 40
+ if (qi.ge.flma) go to 10
+ if (qi.lt.flmi) go to 20
+ qqi = qi*qi
+ q = 1.0d+0 + qqi
+ zzr(i) = (1.0d+0-qqi)/q
+ zzi(i) = 2.0d+0*qi/q
+ nu = nzero(i)/2
+ fa = fa*q**nu
+ go to 40
+c
+ 10 zzr(i) = -1.0d+0
+ go to 30
+c
+ 20 zzr(i) = 1.0d+0
+ 30 zzi(i) = 0.0d+0
+ 40 continue
+ 50 continue
+c
+ sm(nmaxi-1,1) = fa
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/trbize.lo b/modules/signal_processing/src/fortran/trbize.lo
new file mode 100755
index 000000000..6290d7c4d
--- /dev/null
+++ b/modules/signal_processing/src/fortran/trbize.lo
@@ -0,0 +1,12 @@
+# src/fortran/trbize.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/trbize.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/src/fortran/tscccf.f b/modules/signal_processing/src/fortran/tscccf.f
new file mode 100755
index 000000000..adac86f1b
--- /dev/null
+++ b/modules/signal_processing/src/fortran/tscccf.f
@@ -0,0 +1,56 @@
+ subroutine tscccf(x,y,n,cxy,xymean,lag,ierr)
+c!
+c purposes : function tscccf computes lag crosscovariance cxy
+c n-dimensioned time series x and y, x leading y,
+c starting at lag 0.
+c
+c usage : call tscccf(x,y,n,cxy,xymean,lag)*
+c
+c parameters on entry on return
+c ---------- -------- ---------
+c x : time series x unchanged
+c y : time series y unchanged
+c n : series length unchanged
+c cxy : unusedcrosscovariance function
+c lag : number of lags unchanged
+c
+c
+c remarks : lag must be strictly positive, inferior to n.
+c
+c error flag tscccf is set to the following values:
+c ierr = 0 : no errors.
+c ierr = -1 : wrong input parameter n or lag.
+c
+c routines called : dset
+c
+c!
+ double precision x,y,cxy,xymean,eyy,f,exx
+ dimension x(*),y(*),cxy(*),xymean(2)
+c
+ if(lag.le.0 .or. lag.gt.n .or. n.le.0) then
+ ierr=-1
+ return
+ endif
+ call dset(lag,0.0d+0,cxy,1)
+ call dset(2,0.0d+0,xymean,1)
+ exx=0.0d+0
+ eyy=0.0d+0
+ do 10 k=1,n
+ exx=exx+x(k)
+ eyy=eyy+y(k)
+ 10 continue
+ f = 1.0d+0/dble(n)
+ exx=exx*f
+ eyy=eyy*f
+ xymean(1)=exx
+ xymean(2)=eyy
+ do 1000 m=1,lag
+ do 100 j=1,n-m+1
+ cxy(m) = cxy(m)+(x(j)-exx)*(y(j+m-1)-eyy)
+100 continue
+ cxy(m) = cxy(m)*f
+1000 continue
+ ierr=0
+c
+ return
+ end
diff --git a/modules/signal_processing/src/fortran/tscccf.lo b/modules/signal_processing/src/fortran/tscccf.lo
new file mode 100755
index 000000000..4b82451a6
--- /dev/null
+++ b/modules/signal_processing/src/fortran/tscccf.lo
@@ -0,0 +1,12 @@
+# src/fortran/tscccf.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/tscccf.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_10856.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_10856.dia.ref
new file mode 100755
index 000000000..26d199211
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_10856.dia.ref
@@ -0,0 +1,28 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Charlotte HECQUET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 10856 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=10856
+//
+// <-- Short Description -->
+// analpf did not return the right result.
+fr=10:10:1000000;
+for i = 3:6
+ hs=analpf(i,'butt',[.1 0],2800);
+ // Check the degree of denominator
+ assert_checkequal(degree(hs(3)),i);
+ // Check that numerator degree is 0
+ assert_checkequal(degree(hs(2)),0);
+ // Check that first term of denominator is equal to numerator
+ assert_checkalmostequal(horner(hs(3),0),horner(hs(2),0));
+ // At low frequencies, amplitudes are almost 0
+ assert_checktrue(horner(hs,5)<1);
+ // Check that the slope at high frequencies has the right value
+ assert_checktrue(20*log10(horner(hs,10e7))-20*log10(horner(hs,10e6))-20*i<0.1);
+end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_10856.tst b/modules/signal_processing/tests/nonreg_tests/bug_10856.tst
new file mode 100755
index 000000000..33f95d2cc
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_10856.tst
@@ -0,0 +1,31 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Charlotte HECQUET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+
+// <-- Non-regression test for bug 10856 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=10856
+//
+// <-- Short Description -->
+// analpf did not return the right result.
+
+fr=10:10:1000000;
+for i = 3:6
+ hs=analpf(i,'butt',[.1 0],2800);
+ // Check the degree of denominator
+ assert_checkequal(degree(hs(3)),i);
+ // Check that numerator degree is 0
+ assert_checkequal(degree(hs(2)),0);
+ // Check that first term of denominator is equal to numerator
+ assert_checkalmostequal(horner(hs(3),0),horner(hs(2),0));
+ // At low frequencies, amplitudes are almost 0
+ assert_checktrue(horner(hs,5)<1);
+ // Check that the slope at high frequencies has the right value
+ assert_checktrue(20*log10(horner(hs,10e7))-20*log10(horner(hs,10e6))-20*i<0.1);
+end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_11802.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_11802.dia.ref
new file mode 100755
index 000000000..ad819845f
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_11802.dia.ref
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- TEST WITH GRAPHIC -->
+//
+// <-- Non-regression test for bug 11802 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=11802
+//
+// <-- Short Description -->
+// mrfit function redefines the diff function (making nyquist function fail when called just after).
+a = [10 20 30 40 50];
+b = [1 2 3 4 5];
+tt = mrfit(a,b,2);
+assert_checktrue(execstr("nyquist(tt)", "errcatch")==0);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_11802.tst b/modules/signal_processing/tests/nonreg_tests/bug_11802.tst
new file mode 100755
index 000000000..64f77a6d6
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_11802.tst
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- TEST WITH GRAPHIC -->
+//
+// <-- Non-regression test for bug 11802 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=11802
+//
+// <-- Short Description -->
+// mrfit function redefines the diff function (making nyquist function fail when called just after).
+
+a = [10 20 30 40 50];
+b = [1 2 3 4 5];
+tt = mrfit(a,b,2);
+
+assert_checktrue(execstr("nyquist(tt)", "errcatch")==0); \ No newline at end of file
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_12715.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_12715.dia.ref
new file mode 100755
index 000000000..3f63aa3e0
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_12715.dia.ref
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 12715 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12715
+//
+// <-- Short Description -->
+// cross function is redefined when using systems.
+a=[0 0 0 0 0 0 6 6];
+assert_checkequal(real(pspect(2,4,'re',a,a)), [0 6 0 6]);
+assert_checkequal(imag(pspect(2,4,'re',a,a)), [0 0 0 0]);
+assert_checktrue(real(cspect(2,4,'re',a,a)) - [12.9375 0 -0.5626 0] < 1d-3);
+assert_checktrue(imag(cspect(2,4,'re',a,a)) - [0 -6.75 0 6.75] < 1d-6);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_12715.tst b/modules/signal_processing/tests/nonreg_tests/bug_12715.tst
new file mode 100755
index 000000000..d7755242b
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_12715.tst
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+
+// <-- Non-regression test for bug 12715 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12715
+//
+// <-- Short Description -->
+// cross function is redefined when using systems.
+
+a=[0 0 0 0 0 0 6 6];
+assert_checkequal(real(pspect(2,4,'re',a,a)), [0 6 0 6]);
+assert_checkequal(imag(pspect(2,4,'re',a,a)), [0 0 0 0]);
+assert_checktrue(real(cspect(2,4,'re',a,a)) - [12.9375 0 -0.5626 0] < 1d-3);
+assert_checktrue(imag(cspect(2,4,'re',a,a)) - [0 -6.75 0 6.75] < 1d-6);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_13205.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_13205.dia.ref
new file mode 100755
index 000000000..f8d1d67ce
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_13205.dia.ref
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Paul Bignier
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 13205 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13205
+//
+// <-- Short Description -->
+// group accepted continuous transfer functions.
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: A discrete system expected.\n"), "group", 2);
+s = poly(0, "s");
+h = s/(s-.5);
+assert_checkerror("group(100, h)", refMsg);
+// Working example
+h = ss2tf(cls2dls(tf2ss(syslin("c",1/s)),0.1));
+[tg, fr] = group(100, h);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_13205.tst b/modules/signal_processing/tests/nonreg_tests/bug_13205.tst
new file mode 100755
index 000000000..4a82f17f2
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_13205.tst
@@ -0,0 +1,25 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Paul Bignier
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 13205 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13205
+//
+// <-- Short Description -->
+// group accepted continuous transfer functions.
+
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: A discrete system expected.\n"), "group", 2);
+s = poly(0, "s");
+h = s/(s-.5);
+assert_checkerror("group(100, h)", refMsg);
+
+// Working example
+h = ss2tf(cls2dls(tf2ss(syslin("c",1/s)),0.1));
+[tg, fr] = group(100, h);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_13346.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_13346.dia.ref
new file mode 100755
index 000000000..86da94a78
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_13346.dia.ref
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Pierre-Aime Agnel
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//<-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 13346 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13346
+//
+// <-- Short Description -->
+// Filter did not work on a simple delay
+X = [1, zeros(1,9)];
+delayed_X = zeros(1,10); delayed_X(3) = 1;
+A = 1;
+B = [0 0 1];
+res = filter(B, A, X);
+assert_checkalmostequal(res, delayed_X);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_13346.tst b/modules/signal_processing/tests/nonreg_tests/bug_13346.tst
new file mode 100755
index 000000000..1039b3c0e
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_13346.tst
@@ -0,0 +1,24 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Pierre-Aime Agnel
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+//<-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 13346 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13346
+//
+// <-- Short Description -->
+// Filter did not work on a simple delay
+
+X = [1, zeros(1,9)];
+delayed_X = zeros(1,10); delayed_X(3) = 1;
+
+A = 1;
+B = [0 0 1];
+
+res = filter(B, A, X);
+assert_checkalmostequal(res, delayed_X);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_13527.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_13527.dia.ref
new file mode 100755
index 000000000..8f00d40c7
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_13527.dia.ref
@@ -0,0 +1,25 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Vladislav TRUBKIN
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 13527 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13527
+//
+// <-- Short Description -->
+// hilb must be called only with an odd integer number of points
+//
+lstr = gettext("%s: Wrong type for input argument #%d: An odd integer expected.\n");
+errmsg = msprintf (lstr, "hilb", 1);
+// KO
+assert_checkerror("hilb(2)", errmsg);
+assert_checkerror("hilb(14)", errmsg);
+assert_checkerror("hilb(26)", errmsg);
+assert_checkerror("hilb(26.5)", errmsg);
+assert_checkerror("hilb(27.5)", errmsg);
+// OK
+assert_checkequal(execstr("hilb(3)", "errcatch"), 0);
+assert_checkequal(execstr("hilb(7)", "errcatch"), 0);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_13527.tst b/modules/signal_processing/tests/nonreg_tests/bug_13527.tst
new file mode 100755
index 000000000..8f00d40c7
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_13527.tst
@@ -0,0 +1,25 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Vladislav TRUBKIN
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 13527 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13527
+//
+// <-- Short Description -->
+// hilb must be called only with an odd integer number of points
+//
+lstr = gettext("%s: Wrong type for input argument #%d: An odd integer expected.\n");
+errmsg = msprintf (lstr, "hilb", 1);
+// KO
+assert_checkerror("hilb(2)", errmsg);
+assert_checkerror("hilb(14)", errmsg);
+assert_checkerror("hilb(26)", errmsg);
+assert_checkerror("hilb(26.5)", errmsg);
+assert_checkerror("hilb(27.5)", errmsg);
+// OK
+assert_checkequal(execstr("hilb(3)", "errcatch"), 0);
+assert_checkequal(execstr("hilb(7)", "errcatch"), 0);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_13692.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_13692.dia.ref
new file mode 100755
index 000000000..71fbf39c7
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_13692.dia.ref
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Adeline CARNIS
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 13692 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13205
+//
+// <-- Short Description -->
+// group returned an error for a discrete dynamical system with a specified
+// sample time.
+S = syslin(0.5, 1/%z);
+[tg, fr] = group(10, S);
+assert_checkequal(tg, ones(1, 10));
+assert_checkequal(fr, [0:0.05:0.45]);
+// An expected error
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: A discrete system expected.\n"), "group", 2);
+S = syslin("c", (1+%s)/(1+0.5*%s+%s^2));
+assert_checkerror("group(10, S)", refMsg);
+S = syslin([], (1+%s)/(1+0.5*%s+%s^2));
+assert_checkerror("group(10, S)", refMsg);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_13692.tst b/modules/signal_processing/tests/nonreg_tests/bug_13692.tst
new file mode 100755
index 000000000..4f6d3b4f7
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_13692.tst
@@ -0,0 +1,30 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Adeline CARNIS
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 13692 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13205
+//
+// <-- Short Description -->
+// group returned an error for a discrete dynamical system with a specified
+// sample time.
+
+S = syslin(0.5, 1/%z);
+[tg, fr] = group(10, S);
+assert_checkequal(tg, ones(1, 10));
+assert_checkequal(fr, [0:0.05:0.45]);
+
+// An expected error
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: A discrete system expected.\n"), "group", 2);
+S = syslin("c", (1+%s)/(1+0.5*%s+%s^2));
+assert_checkerror("group(10, S)", refMsg);
+
+S = syslin([], (1+%s)/(1+0.5*%s+%s^2));
+assert_checkerror("group(10, S)", refMsg);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_1635.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_1635.dia.ref
new file mode 100755
index 000000000..33c82c53b
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_1635.dia.ref
@@ -0,0 +1,39 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 1635 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=1635
+//
+// <-- Short Description -->
+// iir filter frequency response may be wrong
+fl=0.0004535;
+fu=0.0009070;
+[Poles,Zeros,Gain]=iir(4,'bp','butt',[fl fu],[0 0]);
+frq=linspace(fl,fu,400);
+//evaluation of frequency response in the pass zone
+//based on pole zero gain representation
+frqz=exp(2*%i*%pi*frq);
+z=ones(frq);
+for i=1:size(Zeros,'*')
+ z=z.*(Zeros(i)-frqz);
+end
+p=ones(frq);
+for i=1:size(Zeros,'*')
+ p=p.*(Poles(i)-frqz);
+end
+repf=Gain*(z./p);
+db=20*log10(abs(repf));
+assert_checkalmostequal(db(1),-3,0.01);
+assert_checkalmostequal(db($),-3,0.01);
+assert_checktrue(max(abs(db(100:250)))<0.005)
+ ans =
+
+ T
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_1635.tst b/modules/signal_processing/tests/nonreg_tests/bug_1635.tst
new file mode 100755
index 000000000..034b7cfaf
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_1635.tst
@@ -0,0 +1,42 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 1635 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=1635
+//
+// <-- Short Description -->
+// iir filter frequency response may be wrong
+
+fl=0.0004535;
+fu=0.0009070;
+
+[Poles,Zeros,Gain]=iir(4,'bp','butt',[fl fu],[0 0]);
+
+frq=linspace(fl,fu,400);
+//evaluation of frequency response in the pass zone
+//based on pole zero gain representation
+frqz=exp(2*%i*%pi*frq);
+
+z=ones(frq);
+for i=1:size(Zeros,'*')
+ z=z.*(Zeros(i)-frqz);
+end
+
+p=ones(frq);
+for i=1:size(Zeros,'*')
+ p=p.*(Poles(i)-frqz);
+end
+repf=Gain*(z./p);
+db=20*log10(abs(repf));
+assert_checkalmostequal(db(1),-3,0.01);
+assert_checkalmostequal(db($),-3,0.01);
+
+assert_checktrue(max(abs(db(100:250)))<0.005)
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_2076.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_2076.dia.ref
new file mode 100755
index 000000000..b4b6dad88
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_2076.dia.ref
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 2076 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=2076
+//
+// <-- Short Description -->
+// pspect does not use the last data window
+a=[0 0 0 0 0 0 6 6];
+p=pspect(2,4,"re",a,a);
+if or(p<>[0 6 0 6]) then bugmes();quit;end
+p=pspect(2,4,"re", a);
+if or(p<>[0 6 0 6]) then bugmes();quit;end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_2076.tst b/modules/signal_processing/tests/nonreg_tests/bug_2076.tst
new file mode 100755
index 000000000..5957baca2
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_2076.tst
@@ -0,0 +1,25 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+
+// <-- Non-regression test for bug 2076 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=2076
+//
+// <-- Short Description -->
+// pspect does not use the last data window
+
+
+a=[0 0 0 0 0 0 6 6];
+p=pspect(2,4,"re",a,a);
+if or(p<>[0 6 0 6]) then pause,end
+
+p=pspect(2,4,"re", a);
+if or(p<>[0 6 0 6]) then pause,end
+
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_279.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_279.dia.ref
new file mode 100755
index 000000000..86f8f51cc
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_279.dia.ref
@@ -0,0 +1,30 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Vincent COUVERT
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 279 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=279
+//
+// <-- Short Description -->
+// Wrong zeros values
+format(20);
+Fs= 44100.0; // Sample Freq in Hz
+om1= 1765.0; // lower stop corner Hz
+om2= 2205.0; // lower pass corner Hz
+om3= 4410.0; // higher pass corner Hz
+om4= 5427.6; // higher stop corner Hz
+gripple= 0.2; // passband ripple in dB
+gstop = -40.0; // stop band attenuation in dB
+a1= 2*%pi*om1/Fs;
+a2= 2*%pi*om2/Fs;
+a3= 2*%pi*om3/Fs;
+a4= 2*%pi*om4/Fs;
+om=[a1, a2, a3, a4 ];
+deltap= 1.0 - 10.00**(-0.05*gripple);
+deltas= 10.00**(0.05* gstop) ;
+[cells,fact,zers,pols]=eqiir('bp','el',om,deltap,deltas);
+if zers($)==0 | zers($-1)==0 then bugmes();quit;end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_279.tst b/modules/signal_processing/tests/nonreg_tests/bug_279.tst
new file mode 100755
index 000000000..936d74aa4
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_279.tst
@@ -0,0 +1,42 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - INRIA - Vincent COUVERT
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 279 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=279
+//
+// <-- Short Description -->
+// Wrong zeros values
+
+
+
+format(20);
+
+Fs= 44100.0; // Sample Freq in Hz
+om1= 1765.0; // lower stop corner Hz
+om2= 2205.0; // lower pass corner Hz
+om3= 4410.0; // higher pass corner Hz
+om4= 5427.6; // higher stop corner Hz
+
+gripple= 0.2; // passband ripple in dB
+gstop = -40.0; // stop band attenuation in dB
+
+
+a1= 2*%pi*om1/Fs;
+a2= 2*%pi*om2/Fs;
+a3= 2*%pi*om3/Fs;
+a4= 2*%pi*om4/Fs;
+
+om=[a1, a2, a3, a4 ];
+
+deltap= 1.0 - 10.00**(-0.05*gripple);
+deltas= 10.00**(0.05* gstop) ;
+
+[cells,fact,zers,pols]=eqiir('bp','el',om,deltap,deltas);
+
+if zers($)==0 | zers($-1)==0 then pause,end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_3546.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_3546.dia.ref
new file mode 100755
index 000000000..796cd4db2
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_3546.dia.ref
@@ -0,0 +1,16 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2005-2008 - INRIA - Serge.Steer@inria.fr
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 3546 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=3546
+//
+// <-- Short Description -->
+// frmag broken in scilab 5.0
+[hm1,fr1]=frmag([0.4 -1 -1],[1 0.85 -1],256);
+[hm2,fr2]=frmag(poly([0.4 -1 -1],'z','c'),poly([1 0.85 -1],'z','c'),256);
+if or(hm1<>hm2)|or(fr1<>fr2) then bugmes();quit;end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_3546.tst b/modules/signal_processing/tests/nonreg_tests/bug_3546.tst
new file mode 100755
index 000000000..8cff71eee
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_3546.tst
@@ -0,0 +1,17 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2005-2008 - INRIA - Serge.Steer@inria.fr
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 3546 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=3546
+//
+// <-- Short Description -->
+// frmag broken in scilab 5.0
+[hm1,fr1]=frmag([0.4 -1 -1],[1 0.85 -1],256);
+[hm2,fr2]=frmag(poly([0.4 -1 -1],'z','c'),poly([1 0.85 -1],'z','c'),256);
+if or(hm1<>hm2)|or(fr1<>fr2) then pause,end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_4065.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_4065.dia.ref
new file mode 100755
index 000000000..fb7f0532c
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_4065.dia.ref
@@ -0,0 +1,16 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 4065 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4065
+//
+// <-- Short Description -->
+// When filter is used with polynomials as arguments num and den, the degree 0 monomial is ignored.
+Num=1;Den=1+%z;u=[1,2,3,4,5];
+if or(filter(Num,Den,u)<>filter([0 1],[1 1],u)) then bugmes();quit;end
+if or(filter(%z,Den,u)<>filter(1,[1 1],u)) then bugmes();quit;end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_4065.tst b/modules/signal_processing/tests/nonreg_tests/bug_4065.tst
new file mode 100755
index 000000000..e26c8bbb5
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_4065.tst
@@ -0,0 +1,18 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 4065 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4065
+//
+// <-- Short Description -->
+// When filter is used with polynomials as arguments num and den, the degree 0 monomial is ignored.
+Num=1;Den=1+%z;u=[1,2,3,4,5];
+if or(filter(Num,Den,u)<>filter([0 1],[1 1],u)) then pause,end
+if or(filter(%z,Den,u)<>filter(1,[1 1],u)) then pause,end
+
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_4120.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_4120.dia.ref
new file mode 100755
index 000000000..0fb6c2dd6
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_4120.dia.ref
@@ -0,0 +1,17 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 4120 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4120
+//
+// <-- Short Description -->
+// IIR filter desing demo fails under Windows 64 (XP and Vista).
+y = amell(1.1503675,0.5653572);
+if y == 0 then bugmes();quit;end
+ref = 1.0883305;
+if abs(y - ref)> 10e-8 then bugmes();quit;end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_4120.tst b/modules/signal_processing/tests/nonreg_tests/bug_4120.tst
new file mode 100755
index 000000000..7376c0fc7
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_4120.tst
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 4120 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4120
+//
+// <-- Short Description -->
+// IIR filter desing demo fails under Windows 64 (XP and Vista).
+
+y = amell(1.1503675,0.5653572);
+if y == 0 then pause,end
+
+ref = 1.0883305;
+if abs(y - ref)> 10e-8 then pause,end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_4229.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_4229.dia.ref
new file mode 100755
index 000000000..fa18c7ec6
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_4229.dia.ref
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 4229 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4229
+//
+// <-- Short Description -->
+// delip does not return an error message if one element of first input
+// argument is negative
+errmsg = msprintf(_("Incompatible input argument.\n"));
+assert_checkerror("delip([-2 2], 0.5)", errmsg);
+assert_checkerror("delip([2 -2], 0.5)", errmsg);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_4229.tst b/modules/signal_processing/tests/nonreg_tests/bug_4229.tst
new file mode 100755
index 000000000..a578ed15b
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_4229.tst
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 4229 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4229
+//
+// <-- Short Description -->
+// delip does not return an error message if one element of first input
+// argument is negative
+
+errmsg = msprintf(_("Incompatible input argument.\n"));
+assert_checkerror("delip([-2 2], 0.5)", errmsg);
+assert_checkerror("delip([2 -2], 0.5)", errmsg);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_4249.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_4249.dia.ref
new file mode 100755
index 000000000..a492e8082
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_4249.dia.ref
@@ -0,0 +1,15 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 4249 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4249
+//
+// <-- Short Description -->
+// The filter function does not work when the transfer function is a perfect pass all hz = 1/1.
+Num=1;Den=1+%z;u=[1,2,3,4,5];
+if or(filter(1,1,u)<>u) then bugmes();quit;end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_4249.tst b/modules/signal_processing/tests/nonreg_tests/bug_4249.tst
new file mode 100755
index 000000000..52bd0e309
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_4249.tst
@@ -0,0 +1,17 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 4249 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4249
+//
+// <-- Short Description -->
+// The filter function does not work when the transfer function is a perfect pass all hz = 1/1.
+Num=1;Den=1+%z;u=[1,2,3,4,5];
+if or(filter(1,1,u)<>u) then pause,end
+
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_4481.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_4481.dia.ref
new file mode 100755
index 000000000..3b17d441f
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_4481.dia.ref
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Charlotte HECQUET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 4481 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4481
+//
+// <-- Short Description -->
+// iir should be able to handle a scalar for frq
+hz_ref = iir(4, 'lp' , 'ellip' , [0.25 0.25], [0.05 0.02]);
+hz = iir(4, 'lp' , 'ellip' , 0.25, [0.05 0.02]);
+assert_checkequal(hz,hz_ref);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_4481.tst b/modules/signal_processing/tests/nonreg_tests/bug_4481.tst
new file mode 100755
index 000000000..beb646cf4
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_4481.tst
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Charlotte HECQUET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 4481 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4481
+//
+// <-- Short Description -->
+// iir should be able to handle a scalar for frq
+
+hz_ref = iir(4, 'lp' , 'ellip' , [0.25 0.25], [0.05 0.02]);
+hz = iir(4, 'lp' , 'ellip' , 0.25, [0.05 0.02]);
+assert_checkequal(hz,hz_ref);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_4504.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_4504.dia.ref
new file mode 100755
index 000000000..fd70aaf27
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_4504.dia.ref
@@ -0,0 +1,32 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 4504 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4504
+//
+// <-- Short Description -->
+// Function sskf does not act as the documentation says:
+// Only xe = sskf(y,f,h,q,r,x0) works (not [xe pe] = sskf(y,f,h,q,r,x0))
+rand("seed",5);
+rand("normal");
+q=[.03 0.01;.01 0.03];
+u=rand(2,11);
+f=[1.1 0.1;0 0.8];
+g=(chol(q))';
+m0=[10 10]';
+p0=[2 0;0 2];
+x0=m0+(chol(p0))'*rand(2,1);
+x=ltitr(f,g,u,x0);
+r=[2 0;0 2];
+v=(chol(r))'*rand(2,11);
+y=x+v;
+h=eye(2,2);
+assert_checktrue(execstr("[xe pe]=sskf(y,f,h,q,r,m0)","errcatch")==0);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_4504.tst b/modules/signal_processing/tests/nonreg_tests/bug_4504.tst
new file mode 100755
index 000000000..da31b1281
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_4504.tst
@@ -0,0 +1,33 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 4504 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4504
+//
+// <-- Short Description -->
+// Function sskf does not act as the documentation says:
+// Only xe = sskf(y,f,h,q,r,x0) works (not [xe pe] = sskf(y,f,h,q,r,x0))
+
+rand("seed",5);
+rand("normal");
+q=[.03 0.01;.01 0.03];
+u=rand(2,11);
+f=[1.1 0.1;0 0.8];
+g=(chol(q))';
+m0=[10 10]';
+p0=[2 0;0 2];
+x0=m0+(chol(p0))'*rand(2,1);
+x=ltitr(f,g,u,x0);
+r=[2 0;0 2];
+v=(chol(r))'*rand(2,11);
+y=x+v;
+h=eye(2,2);
+assert_checktrue(execstr("[xe pe]=sskf(y,f,h,q,r,m0)","errcatch")==0);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_4618.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_4618.dia.ref
new file mode 100755
index 000000000..79b14bc91
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_4618.dia.ref
@@ -0,0 +1,14 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Vincent COUVERT
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 4618 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4618
+//
+// <-- Short Description -->
+// buttmag produces a warning because of redefining symbol sample.
+if buttmag(3,1000,1)<>1 then bugmes();quit;end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_4618.tst b/modules/signal_processing/tests/nonreg_tests/bug_4618.tst
new file mode 100755
index 000000000..3fb92708c
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_4618.tst
@@ -0,0 +1,16 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Vincent COUVERT
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 4618 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4618
+//
+// <-- Short Description -->
+// buttmag produces a warning because of redefining symbol sample.
+
+if buttmag(3,1000,1)<>1 then pause,end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_6512.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_6512.dia.ref
new file mode 100755
index 000000000..39ca8d552
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_6512.dia.ref
@@ -0,0 +1,61 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Charlotte HECQUET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 6512 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=6512
+//
+// <-- Short Description -->
+// Check that findm is still ok
+res = findm(1);
+assert_checktrue(%k(1-res)/%k(res)-1<1e-8);
+res = findm(0.1);
+assert_checktrue(%k(1-res)/%k(res)-0.1<1e-8);
+res = findm(0.5);
+assert_checktrue(%k(1-res)/%k(res)-0.5<1e-8);
+// Check that zpell is still ok
+gain_ref=0.4818507;
+po_ref=[-68.292059+161.54792*%i -68.292059-161.54792*%i];
+ze_ref=[250.20121*%i, -250.20121*%i];
+[ze,po,gain]=zpell(0.2,2,100,200);
+assert_checktrue(abs(ze-ze_ref)<1e-5);
+assert_checktrue(abs(po-po_ref)<1e-5);
+assert_checktrue(abs(gain-gain_ref)<1e-5);
+gain_ref=0.3553711;
+po_ref=[-157.37848+228.46667*%i,-157.37848-228.46667*%i];
+ze_ref=[464.22153*%i -464.22153*%i];
+[ze,po,gain]=zpell(0.1,3,150,300);
+assert_checktrue(abs(ze-ze_ref)<1e-5);
+assert_checktrue(abs(po-po_ref)<1e-5);
+assert_checktrue(abs(gain-gain_ref)<1e-5);
+gain_ref=0.1880517;
+po_ref=[-74.045505+159.77986*%i,-74.045505-159.77986*%i];
+ze_ref=[384.0618*%i -384.0618*%i];
+[ze,po,gain]=zpell(0.5,5,150,300);
+assert_checktrue(abs(ze-ze_ref)<1e-5);
+assert_checktrue(abs(po-po_ref)<1e-5);
+assert_checktrue(abs(gain-gain_ref)<1e-5);
+gain_ref=0.1656341;
+po_ref=[-43.753882+156.42721*%i -43.753882-156.42721*%i];
+ze_ref=[344.09218*%i -344.09218*%i];
+[ze,po,gain]=zpell(0.9,5,150,300);
+assert_checktrue(abs(ze-ze_ref)<1e-5);
+assert_checktrue(abs(po-po_ref)<1e-5);
+assert_checktrue(abs(gain-gain_ref)<1e-5);
+// Check example in ell1mag help page
+deff('[alpha,BeTa]=alpha_beta(n,m,m1)',...
+'if 2*int(n/2)==n then, BeTa=K1; else, BeTa=0;end;...
+alpha=%k(1-m1)/%k(1-m);')
+epsilon=0.1;A=10;
+m1=(epsilon*epsilon)/(A*A-1);n=5;omegac=6;
+m=find_freq(epsilon,A,n);omegar = omegac/sqrt(m);
+[alpha,Beta]=alpha_beta(n,m,m1);
+assert_checktrue(abs(alpha*delip(1,sqrt(m))-n*%k(m1)-3.553e-15)<1e-6);
+// Check example in %k help page
+ref=1.7775194;
+assert_checktrue(abs(delip(1,sqrt(0.4))-ref)<1e-5);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_6512.tst b/modules/signal_processing/tests/nonreg_tests/bug_6512.tst
new file mode 100755
index 000000000..78c5a6b59
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_6512.tst
@@ -0,0 +1,67 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Charlotte HECQUET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+
+// <-- Non-regression test for bug 6512 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=6512
+//
+// <-- Short Description -->
+// Check that findm is still ok
+
+res = findm(1);
+assert_checktrue(%k(1-res)/%k(res)-1<1e-8);
+res = findm(0.1);
+assert_checktrue(%k(1-res)/%k(res)-0.1<1e-8);
+res = findm(0.5);
+assert_checktrue(%k(1-res)/%k(res)-0.5<1e-8);
+
+// Check that zpell is still ok
+gain_ref=0.4818507;
+po_ref=[-68.292059+161.54792*%i -68.292059-161.54792*%i];
+ze_ref=[250.20121*%i, -250.20121*%i];
+[ze,po,gain]=zpell(0.2,2,100,200);
+assert_checktrue(abs(ze-ze_ref)<1e-5);
+assert_checktrue(abs(po-po_ref)<1e-5);
+assert_checktrue(abs(gain-gain_ref)<1e-5);
+gain_ref=0.3553711;
+po_ref=[-157.37848+228.46667*%i,-157.37848-228.46667*%i];
+ze_ref=[464.22153*%i -464.22153*%i];
+[ze,po,gain]=zpell(0.1,3,150,300);
+assert_checktrue(abs(ze-ze_ref)<1e-5);
+assert_checktrue(abs(po-po_ref)<1e-5);
+assert_checktrue(abs(gain-gain_ref)<1e-5);
+gain_ref=0.1880517;
+po_ref=[-74.045505+159.77986*%i,-74.045505-159.77986*%i];
+ze_ref=[384.0618*%i -384.0618*%i];
+[ze,po,gain]=zpell(0.5,5,150,300);
+assert_checktrue(abs(ze-ze_ref)<1e-5);
+assert_checktrue(abs(po-po_ref)<1e-5);
+assert_checktrue(abs(gain-gain_ref)<1e-5);
+gain_ref=0.1656341;
+po_ref=[-43.753882+156.42721*%i -43.753882-156.42721*%i];
+ze_ref=[344.09218*%i -344.09218*%i];
+[ze,po,gain]=zpell(0.9,5,150,300);
+assert_checktrue(abs(ze-ze_ref)<1e-5);
+assert_checktrue(abs(po-po_ref)<1e-5);
+assert_checktrue(abs(gain-gain_ref)<1e-5);
+
+// Check example in ell1mag help page
+deff('[alpha,BeTa]=alpha_beta(n,m,m1)',...
+'if 2*int(n/2)==n then, BeTa=K1; else, BeTa=0;end;...
+alpha=%k(1-m1)/%k(1-m);')
+epsilon=0.1;A=10;
+m1=(epsilon*epsilon)/(A*A-1);n=5;omegac=6;
+m=find_freq(epsilon,A,n);omegar = omegac/sqrt(m);
+[alpha,Beta]=alpha_beta(n,m,m1);
+assert_checktrue(abs(alpha*delip(1,sqrt(m))-n*%k(m1)-3.553e-15)<1e-6);
+
+// Check example in %k help page
+ref=1.7775194;
+assert_checktrue(abs(delip(1,sqrt(0.4))-ref)<1e-5);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_6861.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_6861.dia.ref
new file mode 100755
index 000000000..c48021b25
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_6861.dia.ref
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 6861 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=6861
+//
+// <-- Short Description -->
+// yulewalk example failed on Windows
+f = [0, 0.4, 0.4, 0.6, 0.6, 1];
+H = [0, 0, 1, 1, 0, 0];
+ierr = execstr("Hz = yulewalk(8, f, H);","errcatch");
+if ierr <> 0 then bugmes();quit;end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_6861.tst b/modules/signal_processing/tests/nonreg_tests/bug_6861.tst
new file mode 100755
index 000000000..9a3efe23b
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_6861.tst
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 6861 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=6861
+//
+// <-- Short Description -->
+// yulewalk example failed on Windows
+
+f = [0, 0.4, 0.4, 0.6, 0.6, 1];
+H = [0, 0, 1, 1, 0, 0];
+ierr = execstr("Hz = yulewalk(8, f, H);","errcatch");
+if ierr <> 0 then pause,end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_768.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_768.dia.ref
new file mode 100755
index 000000000..1b95f4a04
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_768.dia.ref
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2005-2008 - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr>
+// Copyright (C) 2011 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 768 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=768
+//
+// <-- Short Description -->
+// as on Scilab 2.7.2, the "window" function still has a bug
+// when choosing the "chebychev" type with its corresponding
+// parameter vector. SAys the parameters are out of bounds
+// whereas it is wrong
+msgerr = msprintf(gettext("%s: Wrong value for input argument #%d: incorrect element #%d\n"), "window", 3, 2);
+assert_checkerror ( "window(''ch'',128,[0.25 0.1])" , msgerr);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_768.tst b/modules/signal_processing/tests/nonreg_tests/bug_768.tst
new file mode 100755
index 000000000..b83656d37
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_768.tst
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2005-2008 - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr>
+// Copyright (C) 2011 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 768 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=768
+//
+// <-- Short Description -->
+// as on Scilab 2.7.2, the "window" function still has a bug
+// when choosing the "chebychev" type with its corresponding
+// parameter vector. SAys the parameters are out of bounds
+// whereas it is wrong
+
+msgerr = msprintf(gettext("%s: Wrong value for input argument #%d: incorrect element #%d\n"), "window", 3, 2);
+assert_checkerror ( "window(''ch'',128,[0.25 0.1])" , msgerr); \ No newline at end of file
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_7849.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_7849.dia.ref
new file mode 100755
index 000000000..4f99fa6b4
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_7849.dia.ref
@@ -0,0 +1,18 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 7849 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=7849
+//
+// <-- Short Description -->
+// eqfir crashs Scilab on MacOS platform
+if execstr("hn = eqfir(33, [0 .2; .25 .35; .4 .5], [0 1 0], [1 1 1]);", "errcatch") <> 0 then bugmes();quit;end
+if or(size(hn) <> [1 33]) then bugmes();quit;end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_7849.tst b/modules/signal_processing/tests/nonreg_tests/bug_7849.tst
new file mode 100755
index 000000000..fe0b23ee6
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_7849.tst
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 7849 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=7849
+//
+// <-- Short Description -->
+// eqfir crashs Scilab on MacOS platform
+
+if execstr("hn = eqfir(33, [0 .2; .25 .35; .4 .5], [0 1 0], [1 1 1]);", "errcatch") <> 0 then pause, end
+if or(size(hn) <> [1 33]) then pause, end
+
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_7881.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_7881.dia.ref
new file mode 100755
index 000000000..6e0be7e19
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_7881.dia.ref
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 7881 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=7881
+//
+// <-- Short Description -->
+// In the lattn function, the second argument is a scalar
+// =============================================================================
+c = rand(1:50);
+assert_checkfalse(execstr("lattn(10,[1 2], c)", "errcatch") == 0);
+refMsg = msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"), "lattn", 2);
+assert_checkerror("lattn(10,[1 2], c)", refMsg);
+c1 = rand(10,3);
+assert_checkfalse(execstr("lattn(2, 1, c1)", "errcatch") == 0);
+refMsg = msprintf(_("%s: Wrong values for input arguments #%d and #%d.\n"), "lattn", 1,2);
+assert_checkerror("lattn(2, 1, c1)", refMsg);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_7881.tst b/modules/signal_processing/tests/nonreg_tests/bug_7881.tst
new file mode 100755
index 000000000..d2ba33cdc
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_7881.tst
@@ -0,0 +1,32 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+
+// <-- Non-regression test for bug 7881 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=7881
+//
+// <-- Short Description -->
+// In the lattn function, the second argument is a scalar
+// =============================================================================
+
+c = rand(1:50);
+assert_checkfalse(execstr("lattn(10,[1 2], c)", "errcatch") == 0);
+refMsg = msprintf(_("%s: Wrong size for input argument #%d: A scalar expected.\n"), "lattn", 2);
+assert_checkerror("lattn(10,[1 2], c)", refMsg);
+
+c1 = rand(10,3);
+assert_checkfalse(execstr("lattn(2, 1, c1)", "errcatch") == 0);
+refMsg = msprintf(_("%s: Wrong values for input arguments #%d and #%d.\n"), "lattn", 1,2);
+assert_checkerror("lattn(2, 1, c1)", refMsg);
+
+
+
+
+
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_7895.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_7895.dia.ref
new file mode 100755
index 000000000..714c770ec
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_7895.dia.ref
@@ -0,0 +1,15 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 7895 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=7895
+//
+// <-- Short Description -->
+// fft2() was broken on Windows
+assert_checkequal(execstr("m = rand(10, 4);r = fft2(m);", "errcatch"), 0);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_7895.tst b/modules/signal_processing/tests/nonreg_tests/bug_7895.tst
new file mode 100755
index 000000000..ceae8ecfe
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_7895.tst
@@ -0,0 +1,18 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - DIGITEO - Allan CORNET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 7895 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=7895
+//
+// <-- Short Description -->
+// fft2() was broken on Windows
+
+assert_checkequal(execstr("m = rand(10, 4);r = fft2(m);", "errcatch"), 0);
+
+
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_8684.tst b/modules/signal_processing/tests/nonreg_tests/bug_8684.tst
new file mode 100755
index 000000000..b0cae6b41
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_8684.tst
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - DIGITEO - Vincent COUVERT <vincent.couvert@scilab.org>
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- INTERACTIVE TEST -->
+//
+// <-- Non-regression test for bug 8684 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=8684
+//
+// <-- Short Description -->
+// 'wfir' function produced an error message when used interactively.
+
+// 1. type wfir() in Scilab Console
+// 2. choose low pass filter type
+// 3. set cut-off frequency to e.g. 0.03
+// 4. set filter length to e.g. 64
+// 5. choose Chebyshev window type
+// ==> Check that a message box is opened and no error message displayed \ No newline at end of file
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_9675.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_9675.dia.ref
new file mode 100755
index 000000000..32c21cf07
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_9675.dia.ref
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 9675 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=9675
+//
+// <-- Short Description -->
+// iir returns wrong value with Scilab-5.3.1 and Scilab-5.3.2 under Windows_64
+hz=iir(3,'bp','cheb1',[.15 .25],[.08 .03]);
+z=poly(0,'z');
+num=-0.013202009223+0.039606027668*z^2-0.039606027668*z^4+...
+ 0.013202009223*z^6;
+den=0.500720867559-1.032666480454*z+2.407044124849*z^2...
+ -2.614123854577*z^3+3.000398199872*z^4-1.647252234036*z^5+z^6;
+if ~assert_checkalmostequal (coeff(hz.num) , coeff(num) , 1d-10) then bugmes();quit;end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_9675.tst b/modules/signal_processing/tests/nonreg_tests/bug_9675.tst
new file mode 100755
index 000000000..89b43c10e
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_9675.tst
@@ -0,0 +1,24 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 9675 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=9675
+//
+// <-- Short Description -->
+// iir returns wrong value with Scilab-5.3.1 and Scilab-5.3.2 under Windows_64
+
+hz=iir(3,'bp','cheb1',[.15 .25],[.08 .03]);
+z=poly(0,'z');
+num=-0.013202009223+0.039606027668*z^2-0.039606027668*z^4+...
+ 0.013202009223*z^6;
+den=0.500720867559-1.032666480454*z+2.407044124849*z^2...
+ -2.614123854577*z^3+3.000398199872*z^4-1.647252234036*z^5+z^6;
+if ~assert_checkalmostequal (coeff(hz.num) , coeff(num) , 1d-10) then pause,end
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_9851.dia.ref b/modules/signal_processing/tests/nonreg_tests/bug_9851.dia.ref
new file mode 100755
index 000000000..9d0d80762
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_9851.dia.ref
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 9851 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=9851
+//
+// <-- Short Description -->
+// Error message occurs because of a cut-off frequency of 0.25Hz with irr
+hz=iir(2,'lp','butt',[0.25 0.25],[0 0]);
+z=poly(0,'z');
+num=0.292893218813+0.585786437627*z+0.292893218813*z^2;
+den=0.171572875254+5.55111512d-17*z+z^2;
+assert_checkalmostequal(coeff(numer(hz)), coeff(num), 1d-9);
+assert_checkalmostequal(coeff(denom(hz)), coeff(den), 1d-9);
diff --git a/modules/signal_processing/tests/nonreg_tests/bug_9851.tst b/modules/signal_processing/tests/nonreg_tests/bug_9851.tst
new file mode 100755
index 000000000..fba8c8f5f
--- /dev/null
+++ b/modules/signal_processing/tests/nonreg_tests/bug_9851.tst
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 9851 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=9851
+//
+// <-- Short Description -->
+// Error message occurs because of a cut-off frequency of 0.25Hz with irr
+
+hz=iir(2,'lp','butt',[0.25 0.25],[0 0]);
+z=poly(0,'z');
+num=0.292893218813+0.585786437627*z+0.292893218813*z^2;
+den=0.171572875254+5.55111512d-17*z+z^2;
+assert_checkalmostequal(coeff(numer(hz)), coeff(num), 1d-9);
+assert_checkalmostequal(coeff(denom(hz)), coeff(den), 1d-9);
diff --git a/modules/signal_processing/tests/unit_tests/amell.dia.ref b/modules/signal_processing/tests/unit_tests/amell.dia.ref
new file mode 100755
index 000000000..723ba7e2e
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/amell.dia.ref
@@ -0,0 +1,9 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+if amell(10,[1:10])<> 0 then bugmes();quit;end
+if or(size(amell([1:10],[1:10])) <> [1 10]) then bugmes();quit;end
+if or(amell([1:10],[1:10])<> 0) then bugmes();quit;end
diff --git a/modules/signal_processing/tests/unit_tests/amell.tst b/modules/signal_processing/tests/unit_tests/amell.tst
new file mode 100755
index 000000000..4e085bdd0
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/amell.tst
@@ -0,0 +1,10 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+if amell(10,[1:10])<> 0 then pause,end
+if or(size(amell([1:10],[1:10])) <> [1 10]) then pause,end
+if or(amell([1:10],[1:10])<> 0) then pause,end \ No newline at end of file
diff --git a/modules/signal_processing/tests/unit_tests/conv.dia.ref b/modules/signal_processing/tests/unit_tests/conv.dia.ref
new file mode 100755
index 000000000..2603ff0a6
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/conv.dia.ref
@@ -0,0 +1,17 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+u=1:10;v=[1 -1];
+assert_checkequal(conv(u,v),[ones(1,10) -10]);
+assert_checkequal(conv(u,v,"full"),[ones(1,10) -10]);
+assert_checkequal(conv(u,v'),[ones(1,10) -10]);
+assert_checkequal(conv(u',v),[ones(10,1); -10]);
+assert_checkequal(conv(u,v,"same"),[ones(1,9) -10]);
+assert_checkequal(conv(v,u,"same"),[1 1]);
+assert_checkequal(conv(u,v,"valid"),ones(1,9));
+assert_checkequal(conv(v,u,"valid"),[]);
+assert_checkequal(conv(u,v*%i),[ones(1,10) -10]*%i);
+assert_checkequal(conv(u*%i,v*%i),-[ones(1,10) -10]+0*%i);
diff --git a/modules/signal_processing/tests/unit_tests/conv.tst b/modules/signal_processing/tests/unit_tests/conv.tst
new file mode 100755
index 000000000..d71cb1a90
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/conv.tst
@@ -0,0 +1,18 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+u=1:10;v=[1 -1];
+assert_checkequal(conv(u,v),[ones(1,10) -10]);
+assert_checkequal(conv(u,v,"full"),[ones(1,10) -10]);
+assert_checkequal(conv(u,v'),[ones(1,10) -10]);
+assert_checkequal(conv(u',v),[ones(10,1); -10]);
+
+assert_checkequal(conv(u,v,"same"),[ones(1,9) -10]);
+assert_checkequal(conv(v,u,"same"),[1 1]);
+assert_checkequal(conv(u,v,"valid"),ones(1,9));
+assert_checkequal(conv(v,u,"valid"),[]);
+assert_checkequal(conv(u,v*%i),[ones(1,10) -10]*%i);
+assert_checkequal(conv(u*%i,v*%i),-[ones(1,10) -10]+0*%i);
diff --git a/modules/signal_processing/tests/unit_tests/conv2.dia.ref b/modules/signal_processing/tests/unit_tests/conv2.dia.ref
new file mode 100755
index 000000000..b8fe6c0ad
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/conv2.dia.ref
@@ -0,0 +1,49 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+s = [1 2 1; 0 0 0; -1 -2 -1];
+A = zeros(10,10);
+A(3:7,3:7) = 1;
+reffull=zeros(12,12);
+reffull([3,4,8,9],3:9)=[1;1;-1;-1]*[1 3 4 4 4 3 1];
+assert_checkequal(conv2(s,A),reffull);
+assert_checkequal(conv2(A,s),reffull);
+assert_checkequal(conv2(s,A,'full'),reffull);
+assert_checkequal(conv2(A,s,'full'),reffull);
+assert_checkequal(conv2(s,A,'same'),[0,0,0;0,0,0;-4,-4,-3]);
+refsame=zeros(10,10);
+refsame([2,3,7,8],2:8)=[1;1;-1;-1]*[1 3 4 4 4 3 1];
+assert_checkequal(conv2(A,s,'same'),refsame);
+assert_checkequal(conv2(s,A,'valid'),[]);
+refvalid=zeros(8,8);
+refvalid([1,2,6,7],1:7)=[1;1;-1;-1]*[1 3 4 4 4 3 1];
+assert_checkequal(conv2(A,s,'valid'),refvalid);
+u=[1;0;-1];v=[1 2 1];
+assert_checkequal(conv2(u,v,A),reffull);
+assert_checkequal(conv2(u,v,A,'full'),reffull);
+assert_checkequal(conv2(u,v,A,'same'),refsame);
+assert_checkequal(conv2(u,v,A,'valid'),refvalid);
+a=[1 2 3;4 5 6;7 8 9];
+assert_checkequal(conv2(a,s,'same'),[13 20 17;18 24 18;-13 -20 -17]);
+assert_checkequal(conv2([3;4],[1;2]),[3;10;8]);
+assert_checkequal(conv2([1;2],1,[3;4]),[3;10;8]);
+assert_checkequal(conv2([1;2],%i,[3;4]),[3;10;8]*%i);
+assert_checkequal(conv2([1;2]*%i,1,[3;4]),[3;10;8]*%i);
+assert_checkequal(conv2([1;2],1,[3;4]*%i),[3;10;8]*%i);
+assert_checkequal(conv2([1;2],%i,[3;4]*%i),-[3;10;8]+0*%i);
+assert_checkequal(conv2([1;2]*%i,%i,[3;4]),-[3;10;8]+0*%i);
+assert_checkequal(conv2([1;2]*%i,%i,[3;4]*%i),-[3;10;8]*%i);
+assert_checkequal(conv2([1 2;3 4],[]),zeros(2,2));
+assert_checkequal(conv2([],[1 2;3 4]),zeros(2,2));
+assert_checkequal(conv2([1 2;3 4],[],'same'),zeros(2,2));
+assert_checkequal(conv2([],[1 2;3 4],'same'),[]);
+assert_checkequal(conv2([1 2;3 4],[],'valid'),zeros(2,2));
+assert_checkequal(conv2([],[1 2;3 4],'valid'),[]);
+//here we do not follow matlab
+assert_checkequal(conv2([],[1,2],[1 2;3 4]),zeros(2,2));
+assert_checkequal(conv2([1,2],[],[1 2;3 4]),zeros(2,2));
+assert_checkequal(conv2([],[1;2],[1 2;3 4]),zeros(2,2));
+assert_checkequal(conv2([1;2],[],[1 2;3 4]),zeros(2,2));
diff --git a/modules/signal_processing/tests/unit_tests/conv2.tst b/modules/signal_processing/tests/unit_tests/conv2.tst
new file mode 100755
index 000000000..1d1dd91a8
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/conv2.tst
@@ -0,0 +1,59 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+s = [1 2 1; 0 0 0; -1 -2 -1];
+A = zeros(10,10);
+A(3:7,3:7) = 1;
+reffull=zeros(12,12);
+reffull([3,4,8,9],3:9)=[1;1;-1;-1]*[1 3 4 4 4 3 1];
+assert_checkequal(conv2(s,A),reffull);
+assert_checkequal(conv2(A,s),reffull);
+
+assert_checkequal(conv2(s,A,'full'),reffull);
+assert_checkequal(conv2(A,s,'full'),reffull);
+
+assert_checkequal(conv2(s,A,'same'),[0,0,0;0,0,0;-4,-4,-3]);
+refsame=zeros(10,10);
+refsame([2,3,7,8],2:8)=[1;1;-1;-1]*[1 3 4 4 4 3 1];
+assert_checkequal(conv2(A,s,'same'),refsame);
+
+assert_checkequal(conv2(s,A,'valid'),[]);
+refvalid=zeros(8,8);
+refvalid([1,2,6,7],1:7)=[1;1;-1;-1]*[1 3 4 4 4 3 1];
+assert_checkequal(conv2(A,s,'valid'),refvalid);
+
+u=[1;0;-1];v=[1 2 1];
+assert_checkequal(conv2(u,v,A),reffull);
+assert_checkequal(conv2(u,v,A,'full'),reffull);
+assert_checkequal(conv2(u,v,A,'same'),refsame);
+assert_checkequal(conv2(u,v,A,'valid'),refvalid);
+
+a=[1 2 3;4 5 6;7 8 9];
+
+assert_checkequal(conv2(a,s,'same'),[13 20 17;18 24 18;-13 -20 -17]);
+
+assert_checkequal(conv2([3;4],[1;2]),[3;10;8]);
+
+assert_checkequal(conv2([1;2],1,[3;4]),[3;10;8]);
+assert_checkequal(conv2([1;2],%i,[3;4]),[3;10;8]*%i);
+assert_checkequal(conv2([1;2]*%i,1,[3;4]),[3;10;8]*%i);
+assert_checkequal(conv2([1;2],1,[3;4]*%i),[3;10;8]*%i);
+assert_checkequal(conv2([1;2],%i,[3;4]*%i),-[3;10;8]+0*%i);
+assert_checkequal(conv2([1;2]*%i,%i,[3;4]),-[3;10;8]+0*%i);
+assert_checkequal(conv2([1;2]*%i,%i,[3;4]*%i),-[3;10;8]*%i);
+
+assert_checkequal(conv2([1 2;3 4],[]),zeros(2,2));
+assert_checkequal(conv2([],[1 2;3 4]),zeros(2,2));
+assert_checkequal(conv2([1 2;3 4],[],'same'),zeros(2,2));
+assert_checkequal(conv2([],[1 2;3 4],'same'),[]);
+assert_checkequal(conv2([1 2;3 4],[],'valid'),zeros(2,2));
+assert_checkequal(conv2([],[1 2;3 4],'valid'),[]);
+
+//here we do not follow matlab
+assert_checkequal(conv2([],[1,2],[1 2;3 4]),zeros(2,2));
+assert_checkequal(conv2([1,2],[],[1 2;3 4]),zeros(2,2));
+assert_checkequal(conv2([],[1;2],[1 2;3 4]),zeros(2,2));
+assert_checkequal(conv2([1;2],[],[1 2;3 4]),zeros(2,2));
diff --git a/modules/signal_processing/tests/unit_tests/convol2d.dia.ref b/modules/signal_processing/tests/unit_tests/convol2d.dia.ref
new file mode 100755
index 000000000..f47d29f24
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/convol2d.dia.ref
@@ -0,0 +1,18 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+s = [1 2 1; 0 0 0; -1 -2 -1];
+A = zeros(10,10);
+A(3:7,3:7) = 1;
+reffull=zeros(12,12);
+reffull([3,4,8,9],3:9)=[1;1;-1;-1]*[1 3 4 4 4 3 1];
+assert_checkalmostequal(convol2d(s,A),reffull,100*%eps,100*%eps);
+assert_checkalmostequal(convol2d(A,s),reffull,100*%eps,100*%eps);
+assert_checkequal(convol2d([3;4],[1;2]),[3;10;8]);
+assert_checkequal(convol2d([3;4],[1;2]*%i),[3;10;8]*%i);
+assert_checkequal(convol2d([3;4]*%i,[1;2]*%i),-[3;10;8]);
+assert_checkequal(convol2d([1 2;3 4],[]),zeros(2,2));
+assert_checkequal(convol2d([],[1 2;3 4]),zeros(2,2));
diff --git a/modules/signal_processing/tests/unit_tests/convol2d.tst b/modules/signal_processing/tests/unit_tests/convol2d.tst
new file mode 100755
index 000000000..f5d3c3f43
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/convol2d.tst
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - INRIA - Serge Steer
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+s = [1 2 1; 0 0 0; -1 -2 -1];
+A = zeros(10,10);
+A(3:7,3:7) = 1;
+reffull=zeros(12,12);
+reffull([3,4,8,9],3:9)=[1;1;-1;-1]*[1 3 4 4 4 3 1];
+assert_checkalmostequal(convol2d(s,A),reffull,100*%eps,100*%eps);
+assert_checkalmostequal(convol2d(A,s),reffull,100*%eps,100*%eps);
+
+
+assert_checkequal(convol2d([3;4],[1;2]),[3;10;8]);
+assert_checkequal(convol2d([3;4],[1;2]*%i),[3;10;8]*%i);
+assert_checkequal(convol2d([3;4]*%i,[1;2]*%i),-[3;10;8]);
+
+
+assert_checkequal(convol2d([1 2;3 4],[]),zeros(2,2));
+assert_checkequal(convol2d([],[1 2;3 4]),zeros(2,2));
diff --git a/modules/signal_processing/tests/unit_tests/corr.dia.ref b/modules/signal_processing/tests/unit_tests/corr.dia.ref
new file mode 100755
index 000000000..3fae6c9f8
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/corr.dia.ref
@@ -0,0 +1,33 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO
+// Copyright (C) 2013 - Scilab Enterprises - Adeline CARNIS
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+rand('normal');
+x=rand(1,256);
+y=-x;
+deff('[z]=xx(inc,is)','z=x(is:is+inc-1)');
+deff('[z]=yy(inc,is)','z=y(is:is+inc-1)');
+[c, mxy]=corr(x,y,32);
+if or(size(c)<>[1 32]) then bugmes();quit;end
+if or(size(mxy)<>[1 2]) then bugmes();quit;end
+x=x-mxy(1)*ones(x);
+y=y-mxy(2)*ones(y);
+c1=corr(x,y,32);
+c2=corr(x,32);
+assert_checkalmostequal(c1, -c2, [], 10*%eps);
+[c3,m3]=corr('fft',xx,yy,256,32);
+assert_checkalmostequal(c1, c3, [], 10*%eps);
+[c4,m4]=corr('fft',xx,256,32);
+assert_checkalmostequal(c1, -c2, [], 10*%eps)
+ ans =
+
+ T
+assert_checkequal(size(c4), [1 32]);
+assert_checkequal(size(m4), [1 1]);
+assert_checkalmostequal(norm(m3, 1), %eps, [], %eps);
+assert_checkalmostequal(norm(m4,1), %eps, [], %eps);
+assert_checkalmostequal(c3, c1, [], 10*%eps);
+assert_checkalmostequal(c4, c2, [], 10*%eps);
diff --git a/modules/signal_processing/tests/unit_tests/corr.tst b/modules/signal_processing/tests/unit_tests/corr.tst
new file mode 100755
index 000000000..1d624efad
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/corr.tst
@@ -0,0 +1,36 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO
+// Copyright (C) 2013 - Scilab Enterprises - Adeline CARNIS
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+
+rand('normal');
+x=rand(1,256);
+y=-x;
+deff('[z]=xx(inc,is)','z=x(is:is+inc-1)');
+deff('[z]=yy(inc,is)','z=y(is:is+inc-1)');
+[c, mxy]=corr(x,y,32);
+if or(size(c)<>[1 32]) then pause,end
+if or(size(mxy)<>[1 2]) then pause,end
+
+x=x-mxy(1)*ones(x);
+y=y-mxy(2)*ones(y);
+c1=corr(x,y,32);
+c2=corr(x,32);
+assert_checkalmostequal(c1, -c2, [], 10*%eps);
+
+[c3,m3]=corr('fft',xx,yy,256,32);
+assert_checkalmostequal(c1, c3, [], 10*%eps);
+
+[c4,m4]=corr('fft',xx,256,32);
+assert_checkalmostequal(c1, -c2, [], 10*%eps)
+assert_checkequal(size(c4), [1 32]);
+assert_checkequal(size(m4), [1 1]);
+
+assert_checkalmostequal(norm(m3, 1), %eps, [], %eps);
+assert_checkalmostequal(norm(m4,1), %eps, [], %eps);
+assert_checkalmostequal(c3, c1, [], 10*%eps);
+assert_checkalmostequal(c4, c2, [], 10*%eps);
diff --git a/modules/signal_processing/tests/unit_tests/delip.dia.ref b/modules/signal_processing/tests/unit_tests/delip.dia.ref
new file mode 100755
index 000000000..6dab3d649
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/delip.dia.ref
@@ -0,0 +1,11 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+ck=0.5;
+r = delip([1,2],ck);
+ref = [1.6857504 1.6857504 + 2.1565156*%i];
+if or(size(r)<> [1 2]) then bugmes();quit;end
+if norm(ref-r) > 1e9 *%eps then bugmes();quit;end
diff --git a/modules/signal_processing/tests/unit_tests/delip.tst b/modules/signal_processing/tests/unit_tests/delip.tst
new file mode 100755
index 000000000..403c1e68e
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/delip.tst
@@ -0,0 +1,12 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+ck=0.5;
+r = delip([1,2],ck);
+ref = [1.6857504 1.6857504 + 2.1565156*%i];
+if or(size(r)<> [1 2]) then pause,end
+if norm(ref-r) > 1e9 *%eps then pause,end
diff --git a/modules/signal_processing/tests/unit_tests/fft.dia.ref b/modules/signal_processing/tests/unit_tests/fft.dia.ref
new file mode 100755
index 000000000..fdd4ca0b6
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/fft.dia.ref
@@ -0,0 +1,18 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+a = [1;2;3];
+n=size(a,'*');
+r1 = norm(1/n*exp(2*%i*%pi*(0:n-1)'.*.(0:n-1)/n)*a -fft(a,1));
+if r1 > 10 *%eps then bugmes();quit;end
+r2 = norm(exp(-2*%i*%pi*(0:n-1)'.*.(0:n-1)/n)*a -fft(a,-1));
+if r2 > 100 *%eps then bugmes();quit;end
+sample_rate = 1000;
+t = 0:1/sample_rate:0.6;
+N = size(t,'*');
+s = sin(2*%pi*50*t)+sin(2*%pi*70*t+%pi/4)+grand(1,N,'nor',0,1);
+y = fft(s);
+if or(size(y) <> [1 601]) then bugmes();quit;end
diff --git a/modules/signal_processing/tests/unit_tests/fft.tst b/modules/signal_processing/tests/unit_tests/fft.tst
new file mode 100755
index 000000000..53105f1e2
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/fft.tst
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+a = [1;2;3];
+n=size(a,'*');
+r1 = norm(1/n*exp(2*%i*%pi*(0:n-1)'.*.(0:n-1)/n)*a -fft(a,1));
+if r1 > 10 *%eps then pause,end
+
+r2 = norm(exp(-2*%i*%pi*(0:n-1)'.*.(0:n-1)/n)*a -fft(a,-1));
+if r2 > 100 *%eps then pause,end
+
+sample_rate = 1000;
+t = 0:1/sample_rate:0.6;
+N = size(t,'*');
+s = sin(2*%pi*50*t)+sin(2*%pi*70*t+%pi/4)+grand(1,N,'nor',0,1);
+y = fft(s);
+if or(size(y) <> [1 601]) then pause,end
+
+ \ No newline at end of file
diff --git a/modules/signal_processing/tests/unit_tests/filter.dia.ref b/modules/signal_processing/tests/unit_tests/filter.dia.ref
new file mode 100755
index 000000000..eed21848a
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/filter.dia.ref
@@ -0,0 +1,129 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Pierre-Aime Agnel
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- unit tests for function filter -->
+//
+// <-- CLI SHELL MODE -->
+//==============================================================================
+// Error handling tests
+//==============================================================================
+fname = "filter";
+func_call = "filter(B, A, x)";
+// Type checks
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"), fname, 1);
+B = "test";
+A = [0 1];
+x = [1, zeros(1,99)];
+assert_checkerror(func_call, err_msg);
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"), fname, 2);
+B = [0 0 1];
+A = "test";
+assert_checkerror(func_call, err_msg);
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix expected.\n"), fname, 3);
+B = [0 0 1];
+A = [1 0 1];
+x = "test";
+assert_checkerror(func_call, err_msg);
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix expected.\n"), fname, 4);
+x = [1, zeros(1,99)];
+z = "test";
+func_call = "filter(B, A, x, z)";
+assert_checkerror(func_call, err_msg);
+// Values are real
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"), fname, 1);
+z = 0;
+B = %i;
+assert_checkerror(func_call, err_msg);
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"), fname, 2);
+A = 2 * %i;
+B = [0 0 1];
+assert_checkerror(func_call, err_msg);
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix expected.\n"), fname, 3);
+A = [1 0 1];
+x = [%i 1 3 4];
+assert_checkerror(func_call, err_msg);
+x = [1 zeros(1, 99)];
+z = %i;
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix expected.\n"), fname, 4);
+assert_checkerror(func_call, err_msg);
+// Check vector values
+A = [A; A];
+z = 0;
+err_msg = msprintf(_("%s: Wrong size for input argument #%d: Vector expected.\n"), fname, 1);
+assert_checkerror(func_call, err_msg);
+A = A(1, :);
+B = [B; B];
+err_msg = msprintf(_("%s: Wrong size for input argument #%d: Vector expected.\n"), fname, 2);
+assert_checkerror(func_call, err_msg);
+B = B(1, :);
+x = [x; x];
+err_msg = msprintf(_("%s: Wrong size for input argument #%d: Vector expected.\n"), fname, 3);
+assert_checkerror(func_call, err_msg);
+x = x(1, :);
+z = [1 2; 3 4];
+err_msg = msprintf(_("%s: Wrong size for input argument #%d: Vector expected.\n"), fname, 4);
+assert_checkerror(func_call, err_msg);
+// User mixes polynomial and vector notation
+z = 0;
+B = %s^3 + %s + 1;
+A = [1 0];
+err_msg = msprintf(_("%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix or two polynomials expected.\n"), fname, 1, 2);
+assert_checkerror(func_call, err_msg);
+A = B;
+B = [1 1];
+err_msg = msprintf(_("%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix or two polynomials expected.\n"), fname, 1, 2);
+assert_checkerror(func_call, err_msg);
+// Denominator must have first coefficient not equal to 0
+A = [0 0 1];
+err_msg = msprintf(_("%s: Wrong value for input argument #%d: First element must not be %s.\n"), fname, 2, "0");
+assert_checkerror(func_call, err_msg);
+B = %s^3 + %s + 1;
+A = %s;
+err_msg = msprintf(_("%s: Wrong value for input argument #%d: First element must not be %s.\n"), fname, 2, "0");
+assert_checkerror(func_call, err_msg);
+//==============================================================================
+// Nominal behaviour
+//==============================================================================
+// Integrator y(n) = y(n - 1) + x(n)
+// Filter is 1/(1 - 1 * z**-1)
+B = 1;
+A = [1 -1];
+x = [1 1 1 1 1];
+y = [1 2 3 4 5];
+res = filter(B, A, x);
+assert_checkalmostequal(res, y);
+// Same behaviour with a polynomial
+B = %s;
+A = %s - 1;
+res = filter(B, A, x);
+assert_checkalmostequal(res, y);
+// Integrator with delay y(n) = y(n-1) + x(n-1)
+// Filter is z**-1 / (1 + z**-1)
+B = 1;
+y = [0 1 2 3 4];
+res = filter(B, A, x);
+assert_checkalmostequal(res, y);
+B = [0 1];
+A = [1 -1];
+res = filter(B, A, x);
+assert_checkalmostequal(res, y);
+// Derivator y(n) = x(n) - x(n-1)
+// Filter is 1 - z**-1
+B = [1 -1];
+A = 1;
+x = [1 3 5 3 1];
+y = [1 2 2 -2 -2];
+res = filter(B, A, x);
+assert_checkalmostequal(res, y);
+// Complex filter y(n) = 2 * y(n-1) - 3 * y(n-2) + x(n-2) - 2 * x(n-1) + x(n)
+// Filter is (1 - 2z**-1 + z**-2) / (1 - 2z**-1 + 3z**-2)
+B = [1 -2 1];
+A = [1 -2 3];
+x = [1 2 -1 1 -1];
+y = [1 2 -3 -7 -9];
+res = filter(B, A, x);
+assert_checkalmostequal(res, y);
diff --git a/modules/signal_processing/tests/unit_tests/filter.tst b/modules/signal_processing/tests/unit_tests/filter.tst
new file mode 100755
index 000000000..f3a18520c
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/filter.tst
@@ -0,0 +1,155 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Pierre-Aime Agnel
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- unit tests for function filter -->
+//
+// <-- CLI SHELL MODE -->
+
+//==============================================================================
+// Error handling tests
+//==============================================================================
+
+fname = "filter";
+func_call = "filter(B, A, x)";
+
+// Type checks
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"), fname, 1);
+B = "test";
+A = [0 1];
+x = [1, zeros(1,99)];
+assert_checkerror(func_call, err_msg);
+
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"), fname, 2);
+B = [0 0 1];
+A = "test";
+assert_checkerror(func_call, err_msg);
+
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix expected.\n"), fname, 3);
+B = [0 0 1];
+A = [1 0 1];
+x = "test";
+assert_checkerror(func_call, err_msg);
+
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix expected.\n"), fname, 4);
+x = [1, zeros(1,99)];
+z = "test";
+func_call = "filter(B, A, x, z)";
+assert_checkerror(func_call, err_msg);
+
+// Values are real
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"), fname, 1);
+z = 0;
+B = %i;
+assert_checkerror(func_call, err_msg);
+
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix or polynomial expected.\n"), fname, 2);
+A = 2 * %i;
+B = [0 0 1];
+assert_checkerror(func_call, err_msg);
+
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix expected.\n"), fname, 3);
+A = [1 0 1];
+x = [%i 1 3 4];
+assert_checkerror(func_call, err_msg);
+
+x = [1 zeros(1, 99)];
+z = %i;
+err_msg = msprintf(_("%s: Wrong type for input argument #%d: Real matrix expected.\n"), fname, 4);
+assert_checkerror(func_call, err_msg);
+
+// Check vector values
+A = [A; A];
+z = 0;
+err_msg = msprintf(_("%s: Wrong size for input argument #%d: Vector expected.\n"), fname, 1);
+assert_checkerror(func_call, err_msg);
+
+A = A(1, :);
+B = [B; B];
+err_msg = msprintf(_("%s: Wrong size for input argument #%d: Vector expected.\n"), fname, 2);
+assert_checkerror(func_call, err_msg);
+
+B = B(1, :);
+x = [x; x];
+err_msg = msprintf(_("%s: Wrong size for input argument #%d: Vector expected.\n"), fname, 3);
+assert_checkerror(func_call, err_msg);
+
+x = x(1, :);
+z = [1 2; 3 4];
+err_msg = msprintf(_("%s: Wrong size for input argument #%d: Vector expected.\n"), fname, 4);
+assert_checkerror(func_call, err_msg);
+
+// User mixes polynomial and vector notation
+z = 0;
+B = %s^3 + %s + 1;
+A = [1 0];
+err_msg = msprintf(_("%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix or two polynomials expected.\n"), fname, 1, 2);
+assert_checkerror(func_call, err_msg);
+
+A = B;
+B = [1 1];
+err_msg = msprintf(_("%s: Incompatible input arguments #%d and #%d: a polynomial and 1-by-1 matrix or two polynomials expected.\n"), fname, 1, 2);
+assert_checkerror(func_call, err_msg);
+
+// Denominator must have first coefficient not equal to 0
+A = [0 0 1];
+err_msg = msprintf(_("%s: Wrong value for input argument #%d: First element must not be %s.\n"), fname, 2, "0");
+assert_checkerror(func_call, err_msg);
+
+B = %s^3 + %s + 1;
+A = %s;
+err_msg = msprintf(_("%s: Wrong value for input argument #%d: First element must not be %s.\n"), fname, 2, "0");
+assert_checkerror(func_call, err_msg);
+
+//==============================================================================
+// Nominal behaviour
+//==============================================================================
+
+// Integrator y(n) = y(n - 1) + x(n)
+// Filter is 1/(1 - 1 * z**-1)
+B = 1;
+A = [1 -1];
+x = [1 1 1 1 1];
+
+y = [1 2 3 4 5];
+res = filter(B, A, x);
+assert_checkalmostequal(res, y);
+
+// Same behaviour with a polynomial
+B = %s;
+A = %s - 1;
+res = filter(B, A, x);
+assert_checkalmostequal(res, y);
+
+// Integrator with delay y(n) = y(n-1) + x(n-1)
+// Filter is z**-1 / (1 + z**-1)
+B = 1;
+y = [0 1 2 3 4];
+res = filter(B, A, x);
+assert_checkalmostequal(res, y);
+
+B = [0 1];
+A = [1 -1];
+res = filter(B, A, x);
+assert_checkalmostequal(res, y);
+
+// Derivator y(n) = x(n) - x(n-1)
+// Filter is 1 - z**-1
+B = [1 -1];
+A = 1;
+x = [1 3 5 3 1];
+y = [1 2 2 -2 -2];
+res = filter(B, A, x);
+assert_checkalmostequal(res, y);
+
+// Complex filter y(n) = 2 * y(n-1) - 3 * y(n-2) + x(n-2) - 2 * x(n-1) + x(n)
+// Filter is (1 - 2z**-1 + z**-2) / (1 - 2z**-1 + 3z**-2)
+B = [1 -2 1];
+A = [1 -2 3];
+x = [1 2 -1 1 -1];
+y = [1 2 -3 -7 -9];
+res = filter(B, A, x);
+assert_checkalmostequal(res, y);
diff --git a/modules/signal_processing/tests/unit_tests/hank.dia.ref b/modules/signal_processing/tests/unit_tests/hank.dia.ref
new file mode 100755
index 000000000..b4a498abc
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/hank.dia.ref
@@ -0,0 +1,9 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - Scilab Enterprises
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+a = [1:10;-(1:10)];
+ha = [1:6;-(1:6);3:8;-(3:8)];
+assert_checkequal(hank(2,3,a), ha);
diff --git a/modules/signal_processing/tests/unit_tests/hank.tst b/modules/signal_processing/tests/unit_tests/hank.tst
new file mode 100755
index 000000000..f2ee0715f
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/hank.tst
@@ -0,0 +1,10 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2011 - Scilab Enterprises
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+a = [1:10;-(1:10)];
+ha = [1:6;-(1:6);3:8;-(3:8)];
+assert_checkequal(hank(2,3,a), ha); \ No newline at end of file
diff --git a/modules/signal_processing/tests/unit_tests/ifftshift.dia.ref b/modules/signal_processing/tests/unit_tests/ifftshift.dia.ref
new file mode 100755
index 000000000..82e4f2306
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/ifftshift.dia.ref
@@ -0,0 +1,30 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLLI SHELL MODE -->
+vec = 1:60;
+res = ifftshift(vec);
+assert_checkequal(res(1:30), 31:60);
+assert_checkequal(res(31:60), 1:30);
+mat = matrix(vec, [10 6]);
+refRES = (1:5)';
+refRES = [refRES refRES+10 refRES+20];
+res = ifftshift(mat);
+assert_checkequal(res(1:5, 1:3), refRES+35);
+assert_checkequal(res(1:5, 4:6), refRES+5);
+assert_checkequal(res(6:10, 1:3), refRES+30);
+assert_checkequal(res(6:10, 4:6), refRES);
+// Check that ifftshift(fftshift(x)) = x
+// Make a signal
+t = 0:0.1:1000;
+x = 3*sin(t)+8*sin(3*t)+0.5*sin(5*t)+3*rand(t);
+// Compute the fft
+y = fft(x, -1);
+// Invert the result
+invShift = ifftshift(fftshift(y));
+// Check that we recreated the original result
+assert_checkequal(invShift, y);
diff --git a/modules/signal_processing/tests/unit_tests/ifftshift.tst b/modules/signal_processing/tests/unit_tests/ifftshift.tst
new file mode 100755
index 000000000..a9f3c0fb0
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/ifftshift.tst
@@ -0,0 +1,39 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLLI SHELL MODE -->
+
+vec = 1:60;
+
+res = ifftshift(vec);
+
+assert_checkequal(res(1:30), 31:60);
+assert_checkequal(res(31:60), 1:30);
+
+mat = matrix(vec, [10 6]);
+refRES = (1:5)';
+refRES = [refRES refRES+10 refRES+20];
+
+res = ifftshift(mat);
+
+assert_checkequal(res(1:5, 1:3), refRES+35);
+assert_checkequal(res(1:5, 4:6), refRES+5);
+assert_checkequal(res(6:10, 1:3), refRES+30);
+assert_checkequal(res(6:10, 4:6), refRES);
+
+
+// Check that ifftshift(fftshift(x)) = x
+
+// Make a signal
+t = 0:0.1:1000;
+x = 3*sin(t)+8*sin(3*t)+0.5*sin(5*t)+3*rand(t);
+// Compute the fft
+y = fft(x, -1);
+// Invert the result
+invShift = ifftshift(fftshift(y));
+// Check that we recreated the original result
+assert_checkequal(invShift, y);
diff --git a/modules/signal_processing/tests/unit_tests/kalm.dia.ref b/modules/signal_processing/tests/unit_tests/kalm.dia.ref
new file mode 100755
index 000000000..7da23a476
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/kalm.dia.ref
@@ -0,0 +1,42 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+w=%pi/4; // angular frequency
+T=0.1; // period
+t=0:T:5;
+signal=cos(w*t);
+// Sinusoid with noise
+v=0:1:50;
+y=signal+v;
+// System
+n=2; // system order
+f=[cos(w*T) -sin(w*T); sin(w*T) cos(w*T)];
+g=0;
+h=[1 0];
+p0=[1000 0; 0 0];
+R=1;
+Q=0;
+x0=zeros(n,1);
+// Initialize for loop
+x1=x0;
+p1=p0;
+// Kalman filter
+xsum=0;
+x1sum=0;
+psum=0;
+p1sum=0;
+for i=1:length(t)-1
+ [x1(:,i+1),p1,x,p]=kalm(y(i),x1(:,i),p1,f,g,h,Q,R);
+ xsum = xsum + x;
+ p1sum = p1sum + p1;
+ psum = psum + p;
+ x1sum = x1sum + x1(:,i+1);
+end
+assert_checkalmostequal(xsum, [295.374859628719719;202.134913816696837]);
+assert_checkalmostequal(p1sum, [3.88430845743643571,0.63055345519216977;0.63055345519217121,2.08824467576958606]);
+assert_checkalmostequal(psum, [3.97189248710404863,0.48230715738369057;0.48230715738369184,2.0006606461019758]);
+assert_checkalmostequal(x1sum, [278.60499495977632;224.686643723725581]);
diff --git a/modules/signal_processing/tests/unit_tests/kalm.tst b/modules/signal_processing/tests/unit_tests/kalm.tst
new file mode 100755
index 000000000..e7bce0189
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/kalm.tst
@@ -0,0 +1,46 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+w=%pi/4; // angular frequency
+T=0.1; // period
+t=0:T:5;
+signal=cos(w*t);
+// Sinusoid with noise
+v=0:1:50;
+y=signal+v;
+// System
+n=2; // system order
+f=[cos(w*T) -sin(w*T); sin(w*T) cos(w*T)];
+g=0;
+h=[1 0];
+p0=[1000 0; 0 0];
+R=1;
+Q=0;
+x0=zeros(n,1);
+// Initialize for loop
+x1=x0;
+p1=p0;
+// Kalman filter
+xsum=0;
+x1sum=0;
+psum=0;
+p1sum=0;
+for i=1:length(t)-1
+ [x1(:,i+1),p1,x,p]=kalm(y(i),x1(:,i),p1,f,g,h,Q,R);
+ xsum = xsum + x;
+ p1sum = p1sum + p1;
+ psum = psum + p;
+ x1sum = x1sum + x1(:,i+1);
+end
+assert_checkalmostequal(xsum, [295.374859628719719;202.134913816696837]);
+
+assert_checkalmostequal(p1sum, [3.88430845743643571,0.63055345519216977;0.63055345519217121,2.08824467576958606]);
+
+assert_checkalmostequal(psum, [3.97189248710404863,0.48230715738369057;0.48230715738369184,2.0006606461019758]);
+assert_checkalmostequal(x1sum, [278.60499495977632;224.686643723725581]);
+
diff --git a/modules/signal_processing/tests/unit_tests/lattn.dia.ref b/modules/signal_processing/tests/unit_tests/lattn.dia.ref
new file mode 100755
index 000000000..83430766c
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/lattn.dia.ref
@@ -0,0 +1,81 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+// Copyright (C) 2013 - Scilab Enterprises - Adeline CARNIS
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//Generate the process
+t1=0:0.1:100;
+y1=sin(2*%pi*t1)+sin(2*%pi*2*t1);
+//Covariance of y1
+nlag=128;
+c1=corr(y1,nlag);
+c1=c1';
+//Compute the filter with maximum order=15 and p=1
+n=5;
+[la1,sig1]=lattn(n,1,c1);
+poly(0,"z");
+expected = [1, 0.4429775275224619446313];
+computed = coeff(la1(1));
+assert_checkalmostequal(computed, expected, 1.e-14);
+expected = [1, -0.7424151347904438535963, 0.6626546432402768971315];
+computed = coeff(la1(2));
+assert_checkalmostequal(computed, expected, 1.e-14);
+expected = [1, -0.7483090096409563685143, 0.6686337968594154856916, -0.0048019603017336104020];
+computed = coeff(la1(3));
+assert_checkalmostequal(computed, expected, 1.e-11);
+expected = [1, -2.259216884889600152064, 3.0129744887444243062191, -2.2463220443824241101538, 0.9961140979715100707281];
+computed = coeff(la1(4));
+assert_checkalmostequal(computed, expected, 1.e-13);
+expected = [1, -1.8328746888034248563315, 2.0881496310317460007866, -1.0213063678721847615805, 0.0953432301271536220000, 0.3993857757876373426598];
+computed = coeff(la1(5));
+assert_checkalmostequal(computed, expected, 1.e-10);
+expected = [-1.7888543819998343753497, 1];
+computed = coeff(sig1(1));
+assert_checkalmostequal(computed, expected, 1.e-14);
+expected = [1.2273893327241232054092, -1.2451484900822573642643, 1];
+computed = coeff(sig1(2));
+assert_checkalmostequal(computed, expected, 1.e-14);
+expected = [-1.5168020192922293531979, 2.3534861083273810322680, -2.2502643910424811046767, 1];
+computed = coeff(sig1(3));
+assert_checkalmostequal(computed, expected, 1.e-13);
+expected = [1.0674946929328583689056, -2.3156179157577936322809, 3.0672491379903537023210, -2.255390458180256185727, 1];
+computed = coeff(sig1(4));
+assert_checkalmostequal(computed, expected, 1.e-12);
+expected = [1.4523203295727387107661, -2.2136119179063014072995, 2.0601861867297621699890, -0.1951300338336365847169, -0.8087137031222213501280, 1];
+computed = coeff(sig1(5));
+assert_checkalmostequal(computed, expected, 1.e-10);
+//Compare result of poles with p=-1 and with levin function
+[la2,sig2]=lattn(n,-1,c1);
+expected = [1, -1.7888543819998343753497];
+computed = coeff(la2(1));
+assert_checkalmostequal(computed, expected, 1.e-14);
+expected = [1, -1.2451484900822573642643, 1.2273893327241232054092];
+computed = coeff(la2(2));
+assert_checkalmostequal(computed, expected, 1.e-14);
+expected = [1, -2.25026439104248154877, 2.3534861083273810322680, -1.5168020192922295752425];
+computed = coeff(la2(3));
+assert_checkalmostequal(computed, expected, 1.e-13);
+expected = [1, -2.2553904581802566298165, 3.0672491379903545904995, -2.3156179157577940763701, 1.0674946929328590350394];
+computed = coeff(la2(4));
+assert_checkalmostequal(computed, expected, 1.e-12);
+expected = [1, -0.8087137031221993677121, -0.1951300338336872108869, 2.0601861867298310038166, -2.2136119179063538098262, 1.4523203295727622474942];
+computed = coeff(la2(5));
+assert_checkalmostequal(computed, expected, 1.e-10);
+expected = [0.4429775275224624442316, 1];
+computed = coeff(sig2(1));
+assert_checkalmostequal(computed, expected, 1.e-14);
+expected = [0.6626546432402768971315, -0.7424151347904438535963, 1];
+computed = coeff(sig2(2));
+assert_checkalmostequal(computed, expected, 1.e-14);
+expected = [-0.0048019603017336104020, 0.6686337968594154856916, -0.7483090096409563685143, 1];
+computed = coeff(sig2(3));
+assert_checkalmostequal(computed, expected, 1.e-11);
+expected = [0.9961140979715094045943, -2.2463220443824232219754, 3.0129744887444229739515, -2.2592168848895997079751, 1];
+computed = coeff(sig2(4));
+assert_checkalmostequal(computed, expected, 1.e-13);
+expected = [0.3993857757876351222137, 0.0953432301271577298252, -1.0213063678721903126956, 2.0881496310317495535003, -1.8328746888034264106437, 1];
+computed = coeff(sig2(5));
+assert_checkalmostequal(computed, expected, 1.e-10);
diff --git a/modules/signal_processing/tests/unit_tests/lattn.tst b/modules/signal_processing/tests/unit_tests/lattn.tst
new file mode 100755
index 000000000..2679d8b9e
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/lattn.tst
@@ -0,0 +1,104 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+// Copyright (C) 2013 - Scilab Enterprises - Adeline CARNIS
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+//Generate the process
+t1=0:0.1:100;
+y1=sin(2*%pi*t1)+sin(2*%pi*2*t1);
+
+//Covariance of y1
+nlag=128;
+c1=corr(y1,nlag);
+c1=c1';
+
+//Compute the filter with maximum order=15 and p=1
+n=5;
+[la1,sig1]=lattn(n,1,c1);
+poly(0,"z");
+
+expected = [1, 0.4429775275224619446313];
+computed = coeff(la1(1));
+assert_checkalmostequal(computed, expected, 1.e-14);
+
+expected = [1, -0.7424151347904438535963, 0.6626546432402768971315];
+computed = coeff(la1(2));
+assert_checkalmostequal(computed, expected, 1.e-14);
+
+expected = [1, -0.7483090096409563685143, 0.6686337968594154856916, -0.0048019603017336104020];
+computed = coeff(la1(3));
+assert_checkalmostequal(computed, expected, 1.e-11);
+
+expected = [1, -2.259216884889600152064, 3.0129744887444243062191, -2.2463220443824241101538, 0.9961140979715100707281];
+computed = coeff(la1(4));
+assert_checkalmostequal(computed, expected, 1.e-13);
+
+expected = [1, -1.8328746888034248563315, 2.0881496310317460007866, -1.0213063678721847615805, 0.0953432301271536220000, 0.3993857757876373426598];
+computed = coeff(la1(5));
+assert_checkalmostequal(computed, expected, 1.e-10);
+
+expected = [-1.7888543819998343753497, 1];
+computed = coeff(sig1(1));
+assert_checkalmostequal(computed, expected, 1.e-14);
+
+expected = [1.2273893327241232054092, -1.2451484900822573642643, 1];
+computed = coeff(sig1(2));
+assert_checkalmostequal(computed, expected, 1.e-14);
+
+expected = [-1.5168020192922293531979, 2.3534861083273810322680, -2.2502643910424811046767, 1];
+computed = coeff(sig1(3));
+assert_checkalmostequal(computed, expected, 1.e-13);
+
+expected = [1.0674946929328583689056, -2.3156179157577936322809, 3.0672491379903537023210, -2.255390458180256185727, 1];
+computed = coeff(sig1(4));
+assert_checkalmostequal(computed, expected, 1.e-12);
+
+expected = [1.4523203295727387107661, -2.2136119179063014072995, 2.0601861867297621699890, -0.1951300338336365847169, -0.8087137031222213501280, 1];
+computed = coeff(sig1(5));
+assert_checkalmostequal(computed, expected, 1.e-10);
+
+//Compare result of poles with p=-1 and with levin function
+[la2,sig2]=lattn(n,-1,c1);
+expected = [1, -1.7888543819998343753497];
+computed = coeff(la2(1));
+assert_checkalmostequal(computed, expected, 1.e-14);
+
+expected = [1, -1.2451484900822573642643, 1.2273893327241232054092];
+computed = coeff(la2(2));
+assert_checkalmostequal(computed, expected, 1.e-14);
+
+expected = [1, -2.25026439104248154877, 2.3534861083273810322680, -1.5168020192922295752425];
+computed = coeff(la2(3));
+assert_checkalmostequal(computed, expected, 1.e-13);
+
+expected = [1, -2.2553904581802566298165, 3.0672491379903545904995, -2.3156179157577940763701, 1.0674946929328590350394];
+computed = coeff(la2(4));
+assert_checkalmostequal(computed, expected, 1.e-12);
+
+expected = [1, -0.8087137031221993677121, -0.1951300338336872108869, 2.0601861867298310038166, -2.2136119179063538098262, 1.4523203295727622474942];
+computed = coeff(la2(5));
+assert_checkalmostequal(computed, expected, 1.e-10);
+
+expected = [0.4429775275224624442316, 1];
+computed = coeff(sig2(1));
+assert_checkalmostequal(computed, expected, 1.e-14);
+
+expected = [0.6626546432402768971315, -0.7424151347904438535963, 1];
+computed = coeff(sig2(2));
+assert_checkalmostequal(computed, expected, 1.e-14);
+
+expected = [-0.0048019603017336104020, 0.6686337968594154856916, -0.7483090096409563685143, 1];
+computed = coeff(sig2(3));
+assert_checkalmostequal(computed, expected, 1.e-11);
+
+expected = [0.9961140979715094045943, -2.2463220443824232219754, 3.0129744887444229739515, -2.2592168848895997079751, 1];
+computed = coeff(sig2(4));
+assert_checkalmostequal(computed, expected, 1.e-13);
+
+expected = [0.3993857757876351222137, 0.0953432301271577298252, -1.0213063678721903126956, 2.0881496310317495535003, -1.8328746888034264106437, 1];
+computed = coeff(sig2(5));
+assert_checkalmostequal(computed, expected, 1.e-10);
diff --git a/modules/signal_processing/tests/unit_tests/lattp.dia.ref b/modules/signal_processing/tests/unit_tests/lattp.dia.ref
new file mode 100755
index 000000000..8249b6dbd
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/lattp.dia.ref
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//Generate the process
+t1=0:0.1:100;
+y1=sin(2*%pi*t1)+sin(2*%pi*2*t1);
+//Covariance of y1
+nlag=128;
+c1=corr(y1,nlag);
+c1=c1';
+//Compute the filter with maximum order=15 and p=5
+n=5; p=2;
+[la1,sig1]=lattp(n,p,c1);
+poly(0,"z");
+assert_checkequal(la1(1), 1-1.83287468880270521*%z+2.08814963103010243*%z^2-1.02130636786998474*%z^3+0.09534323012550860*%z^4+0.39938577578836609*%z^5);
+assert_checkequal(la1(2), 1+5934927594313.27051*%z-10877978567494.7891*%z^2+12393016866258.4355*%z^3-6061379344921.20703*%z^4+565855167403.415283*%z^5+2370325661503.31836*%z^6);
+assert_checkequal(sig1, list());
diff --git a/modules/signal_processing/tests/unit_tests/lattp.tst b/modules/signal_processing/tests/unit_tests/lattp.tst
new file mode 100755
index 000000000..d50ee1ab0
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/lattp.tst
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+//Generate the process
+t1=0:0.1:100;
+y1=sin(2*%pi*t1)+sin(2*%pi*2*t1);
+
+//Covariance of y1
+nlag=128;
+c1=corr(y1,nlag);
+c1=c1';
+
+//Compute the filter with maximum order=15 and p=5
+n=5; p=2;
+[la1,sig1]=lattp(n,p,c1);
+poly(0,"z");
+assert_checkequal(la1(1), 1-1.83287468880270521*%z+2.08814963103010243*%z^2-1.02130636786998474*%z^3+0.09534323012550860*%z^4+0.39938577578836609*%z^5);
+
+assert_checkequal(la1(2), 1+5934927594313.27051*%z-10877978567494.7891*%z^2+12393016866258.4355*%z^3-6061379344921.20703*%z^4+565855167403.415283*%z^5+2370325661503.31836*%z^6);
+
+assert_checkequal(sig1, list());
+
diff --git a/modules/signal_processing/tests/unit_tests/lev.dia.ref b/modules/signal_processing/tests/unit_tests/lev.dia.ref
new file mode 100755
index 000000000..8780c0669
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/lev.dia.ref
@@ -0,0 +1,14 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+b=1; //numerator
+a=[1 -0.7 0.8]; //denominator
+x=[1 zeros(1,99)]; //input=impulse
+data=filter(b,a,x); //real data
+a2=lev(data); //modelized data
+a2_ref=[-2.95375652176204362;0.85443608696722761;1.16338825311255967;-0.5843638139231808;-1.29904413848756084;0.2827999960599864;1.36469413757280944;0.03400400016235194;-1.35680035182069414;-0.34897551040648700;1.27578817976193548;0.64514062356548996;-1.12602339214832625;-0.90653891102847028;0.91557685923087617;1.11908353906414315;-0.65578960909082540;-1.27132041260303486;0.36066165616501500;1.35504543992694138;-0.04609753618187262;-1.36574665368330295;-0.27095079413754847;1.30284736218693986;0.57339750321671712;-1.16973722751155518;-0.84494364531757027;0.97358959556271740;1.07095551571593028;-0.72497492227130311;-1.23925326552891701;0.43729112848768537;1.34076727749932667;-0.12604158192534731;-1.37002693044609769;-0.19200038407123965;1.32545541271529554;0.49969539059447443;-1.20945469704137598;-0.78046165955049063;1.02827609750283466;1.01916861075655008;-0.79168338429134533;-1.2029522535385402;0.51242661114848276;1.3219084311265532;-0.20555501106545992;-1.36962655869526673;-0.11239401148886496;1.34353509174246932;0.42428608635778209;-1.2450401074093944;-0.7133132541493183;1.07944953055333803;0.9638997523135744;-0.85568708805196592;-1.16254139775417586;0.58581140643039376;1.29853333138992988;-0.28436616878620091;-1.3645469062867672;-0.03240364874471358;1.35702463068550716;0.34742722372528412;-1.27637188232062804;-0.64372783926421662;1.1269350624915635;0.90533776448550585;-0.91676736716449969;-1.11815876043450668;0.65719479777787038;1.27072183849030163;-0.36220579955695353;-1.3548053276733052;0.04769741991851550;1.36587794301159882;0.26938138828071656;-1.30334297787510689;-0.57194315100185011;1.17057046067835535;0.84368272223090113;-0.97471554301766872;-1.06995597328870229;0.72633290636136172;1.23856896940847472;-0.43880796703439384;-1.34043510461302406;0.12763553203490674;1.37006478169273449;0.19041522085809687;-1.32586124827935214;-0.49820443920874441;1.21020664632028385;0.77914526781893556;-1.02933363771951836;-1.01809771943242855;0.79298952427985636;1.20218457328317552;-2.56955481312445810];
+assert_checkalmostequal(a2, a2_ref);
diff --git a/modules/signal_processing/tests/unit_tests/lev.tst b/modules/signal_processing/tests/unit_tests/lev.tst
new file mode 100755
index 000000000..23d2462a3
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/lev.tst
@@ -0,0 +1,16 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+b=1; //numerator
+a=[1 -0.7 0.8]; //denominator
+x=[1 zeros(1,99)]; //input=impulse
+data=filter(b,a,x); //real data
+a2=lev(data); //modelized data
+a2_ref=[-2.95375652176204362;0.85443608696722761;1.16338825311255967;-0.5843638139231808;-1.29904413848756084;0.2827999960599864;1.36469413757280944;0.03400400016235194;-1.35680035182069414;-0.34897551040648700;1.27578817976193548;0.64514062356548996;-1.12602339214832625;-0.90653891102847028;0.91557685923087617;1.11908353906414315;-0.65578960909082540;-1.27132041260303486;0.36066165616501500;1.35504543992694138;-0.04609753618187262;-1.36574665368330295;-0.27095079413754847;1.30284736218693986;0.57339750321671712;-1.16973722751155518;-0.84494364531757027;0.97358959556271740;1.07095551571593028;-0.72497492227130311;-1.23925326552891701;0.43729112848768537;1.34076727749932667;-0.12604158192534731;-1.37002693044609769;-0.19200038407123965;1.32545541271529554;0.49969539059447443;-1.20945469704137598;-0.78046165955049063;1.02827609750283466;1.01916861075655008;-0.79168338429134533;-1.2029522535385402;0.51242661114848276;1.3219084311265532;-0.20555501106545992;-1.36962655869526673;-0.11239401148886496;1.34353509174246932;0.42428608635778209;-1.2450401074093944;-0.7133132541493183;1.07944953055333803;0.9638997523135744;-0.85568708805196592;-1.16254139775417586;0.58581140643039376;1.29853333138992988;-0.28436616878620091;-1.3645469062867672;-0.03240364874471358;1.35702463068550716;0.34742722372528412;-1.27637188232062804;-0.64372783926421662;1.1269350624915635;0.90533776448550585;-0.91676736716449969;-1.11815876043450668;0.65719479777787038;1.27072183849030163;-0.36220579955695353;-1.3548053276733052;0.04769741991851550;1.36587794301159882;0.26938138828071656;-1.30334297787510689;-0.57194315100185011;1.17057046067835535;0.84368272223090113;-0.97471554301766872;-1.06995597328870229;0.72633290636136172;1.23856896940847472;-0.43880796703439384;-1.34043510461302406;0.12763553203490674;1.37006478169273449;0.19041522085809687;-1.32586124827935214;-0.49820443920874441;1.21020664632028385;0.77914526781893556;-1.02933363771951836;-1.01809771943242855;0.79298952427985636;1.20218457328317552;-2.56955481312445810];
+assert_checkalmostequal(a2, a2_ref);
+
diff --git a/modules/signal_processing/tests/unit_tests/lindquist.dia.ref b/modules/signal_processing/tests/unit_tests/lindquist.dia.ref
new file mode 100755
index 000000000..3a7c56f67
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/lindquist.dia.ref
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//Generate signal
+x=%pi/10:%pi/10:102.4*%pi;
+y=[1; 1] * sin(x) + [sin(2*x); sin(1.9*x)];
+//Compute correlations
+c=[];
+for j=1:2
+ for k=1:2
+ c=[c;corr(y(k,:),y(j,:),64)];
+ end
+end
+c=matrix(c,2,128);
+//Find H,F,G with 6 states
+hk=hank(20,20,c);
+[H,F,G]=phc(hk,2,6);
+//Solve Riccati equation
+R0=c(1:2,1:2);
+[P,R,T]=lindquist(100,H,F,G,R0);
+assert_checkalmostequal(P,[52.953064387089377,-170.091664767326478;390.114441205931939,-1126.45220755477089;-2285.86604463640651,4579.41083686864113;1084.73413409944055,-1564.67420653525346;-5116.06921833499018,8743.68286689257002;-1976.40587294372335,3503.44251127613916]);
+assert_checkalmostequal([-704.208398385009673,1053.5647942803439;1053.5647942827934,-1981.29618548816984], R);
+assert_checkalmostequal(T, [-0.72821126450254769,-0.45461826616982365;-1.28940233637036883,-1.25076781365101763;0.25073933783035585,2.01963206598920664;3.13684440927242791,0.29283797163618436;-1.64165514197064755,1.68395444469620714;-1.61905018245414611,3.26102925315640091]);
diff --git a/modules/signal_processing/tests/unit_tests/lindquist.tst b/modules/signal_processing/tests/unit_tests/lindquist.tst
new file mode 100755
index 000000000..8415fe6a1
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/lindquist.tst
@@ -0,0 +1,34 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+//Generate signal
+x=%pi/10:%pi/10:102.4*%pi;
+y=[1; 1] * sin(x) + [sin(2*x); sin(1.9*x)];
+
+//Compute correlations
+c=[];
+for j=1:2
+ for k=1:2
+ c=[c;corr(y(k,:),y(j,:),64)];
+ end
+end
+c=matrix(c,2,128);
+
+//Find H,F,G with 6 states
+hk=hank(20,20,c);
+[H,F,G]=phc(hk,2,6);
+
+//Solve Riccati equation
+R0=c(1:2,1:2);
+[P,R,T]=lindquist(100,H,F,G,R0);
+
+assert_checkalmostequal(P,[52.953064387089377,-170.091664767326478;390.114441205931939,-1126.45220755477089;-2285.86604463640651,4579.41083686864113;1084.73413409944055,-1564.67420653525346;-5116.06921833499018,8743.68286689257002;-1976.40587294372335,3503.44251127613916]);
+
+assert_checkalmostequal([-704.208398385009673,1053.5647942803439;1053.5647942827934,-1981.29618548816984], R);
+
+assert_checkalmostequal(T, [-0.72821126450254769,-0.45461826616982365;-1.28940233637036883,-1.25076781365101763;0.25073933783035585,2.01963206598920664;3.13684440927242791,0.29283797163618436;-1.64165514197064755,1.68395444469620714;-1.61905018245414611,3.26102925315640091]);
diff --git a/modules/signal_processing/tests/unit_tests/remez.dia.ref b/modules/signal_processing/tests/unit_tests/remez.dia.ref
new file mode 100755
index 000000000..99ed41795
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/remez.dia.ref
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+nc=21;
+ngrid=nc*250;
+fgrid=.5*(0:(ngrid-1))/(ngrid-1);
+mag(1:ngrid/2)=ones(1:ngrid/2);
+mag(ngrid/2+1:ngrid)=0*ones(1:ngrid/2);
+weight=ones(fgrid);
+guess=round(1:ngrid/nc:ngrid);
+guess(nc+1)=ngrid;
+guess(nc+2)=ngrid;
+an=remez(guess,mag,fgrid,weight);
+************ failure to converge **********
+probable cause is machine rounding error
+- number of iterations = 5
+if the number of iterations exceeds 3 the design
+may be correct, but should be verified with an fft
diff --git a/modules/signal_processing/tests/unit_tests/remez.tst b/modules/signal_processing/tests/unit_tests/remez.tst
new file mode 100755
index 000000000..1f3ef6df7
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/remez.tst
@@ -0,0 +1,17 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+nc=21;
+ngrid=nc*250;
+fgrid=.5*(0:(ngrid-1))/(ngrid-1);
+mag(1:ngrid/2)=ones(1:ngrid/2);
+mag(ngrid/2+1:ngrid)=0*ones(1:ngrid/2);
+weight=ones(fgrid);
+guess=round(1:ngrid/nc:ngrid);
+guess(nc+1)=ngrid;
+guess(nc+2)=ngrid;
+an=remez(guess,mag,fgrid,weight);
diff --git a/modules/signal_processing/tests/unit_tests/rpem.dia.ref b/modules/signal_processing/tests/unit_tests/rpem.dia.ref
new file mode 100755
index 000000000..ab5fd6b56
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/rpem.dia.ref
@@ -0,0 +1,40 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+nbPoints = 5; // Number of points computed
+// Real parameters a,b,c: here, y=u
+a=cat(2,1,zeros(1,nbPoints - 1));
+b=cat(2,1,zeros(1,nbPoints - 1));
+c=zeros(1,nbPoints);
+// Generate input signal
+t=linspace(0,50,1000);
+w=%pi/4;
+u=cos(w*t);
+// Generate output signal
+Arma=armac(a,b,c,1,1,0);
+y=arsimul(Arma,u);
+// Arguments of rpem
+phi=zeros(1,nbPoints*3);
+psi=zeros(1,nbPoints*3);
+l=zeros(1,nbPoints*3);
+p=1*eye(nbPoints*3,nbPoints*3);
+theta=[0*a 0*b 0*c];
+w0=list(theta,p,l,phi,psi);
+[w0, v]=rpem(w0,u,y);
+assert_checkequal(size(w0), 5);
+assert_checkequal(size(v,"*"), 1);
+assert_checkalmostequal(v, 0.57451013690216091);
+assert_checkequal(size(w0(1)), [1, 15]);
+assert_checkequal(size(w0(2)), [15, 15]);
+assert_checkequal(size(w0(3)), [1, 15]);
+assert_checkequal(size(w0(4)), [1, 15]);
+assert_checkequal(size(w0(5)), [1, 15]);
+assert_checkalmostequal(sum(w0(1)), - 1.6187817562697728);
+assert_checkalmostequal(sum(w0(2)), 925.971144340439537);
+assert_checkalmostequal(sum(w0(3)), 0.06147492702030416);
+assert_checkalmostequal(sum(w0(4)), 0.19515684603135780);
+assert_checkalmostequal(sum(w0(5)), 0.22685582794021467);
diff --git a/modules/signal_processing/tests/unit_tests/rpem.tst b/modules/signal_processing/tests/unit_tests/rpem.tst
new file mode 100755
index 000000000..4af34f227
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/rpem.tst
@@ -0,0 +1,47 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+nbPoints = 5; // Number of points computed
+
+// Real parameters a,b,c: here, y=u
+a=cat(2,1,zeros(1,nbPoints - 1));
+b=cat(2,1,zeros(1,nbPoints - 1));
+c=zeros(1,nbPoints);
+
+// Generate input signal
+t=linspace(0,50,1000);
+w=%pi/4;
+u=cos(w*t);
+
+// Generate output signal
+Arma=armac(a,b,c,1,1,0);
+y=arsimul(Arma,u);
+
+// Arguments of rpem
+phi=zeros(1,nbPoints*3);
+psi=zeros(1,nbPoints*3);
+l=zeros(1,nbPoints*3);
+p=1*eye(nbPoints*3,nbPoints*3);
+theta=[0*a 0*b 0*c];
+w0=list(theta,p,l,phi,psi);
+[w0, v]=rpem(w0,u,y);
+
+assert_checkequal(size(w0), 5);
+assert_checkequal(size(v,"*"), 1);
+assert_checkalmostequal(v, 0.57451013690216091);
+
+assert_checkequal(size(w0(1)), [1, 15]);
+assert_checkequal(size(w0(2)), [15, 15]);
+assert_checkequal(size(w0(3)), [1, 15]);
+assert_checkequal(size(w0(4)), [1, 15]);
+assert_checkequal(size(w0(5)), [1, 15]);
+assert_checkalmostequal(sum(w0(1)), - 1.6187817562697728);
+assert_checkalmostequal(sum(w0(2)), 925.971144340439537);
+assert_checkalmostequal(sum(w0(3)), 0.06147492702030416);
+assert_checkalmostequal(sum(w0(4)), 0.19515684603135780);
+assert_checkalmostequal(sum(w0(5)), 0.22685582794021467);
diff --git a/modules/signal_processing/tests/unit_tests/srkf.dia.ref b/modules/signal_processing/tests/unit_tests/srkf.dia.ref
new file mode 100755
index 000000000..0564fa0f0
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/srkf.dia.ref
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+f=[0 0 1; 0 1 0; 2 3 4]; //State matrix
+g=[1;-1;1]; //Input matrix
+h=[1 1 0; 0 1 0; 0 0 0]; //Output matrix
+Q=[3 2 1; 2 2 1; 1 1 1]; //Covariance matrix of dynamic noise
+R=[2 1 1; 1 1 1; 1 1 2]; //Covariance matrix of observation noise
+// Initialisation
+p0=[6 3 2; 3 5 2; 2 2 4];
+x0=[1;1;1];
+y=[2 8 7]'; // Current observation output matrix
+[x1,p1]=srkf(y,x0,p0,f,h,Q,R);
+assert_checkalmostequal(p1, [-3.3826684796422888,0,0;-0.65452136096190749,1.43147468495118102,0;-10.588783837170105,-2.49768257747417177,-5.87595341369592727]);
+assert_checkalmostequal(x1, [1.07553956834532438;4.10971223021582333;6.06654676258992787]);
diff --git a/modules/signal_processing/tests/unit_tests/srkf.tst b/modules/signal_processing/tests/unit_tests/srkf.tst
new file mode 100755
index 000000000..3551eada3
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/srkf.tst
@@ -0,0 +1,21 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte Hecquet
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+f=[0 0 1; 0 1 0; 2 3 4]; //State matrix
+g=[1;-1;1]; //Input matrix
+h=[1 1 0; 0 1 0; 0 0 0]; //Output matrix
+Q=[3 2 1; 2 2 1; 1 1 1]; //Covariance matrix of dynamic noise
+R=[2 1 1; 1 1 1; 1 1 2]; //Covariance matrix of observation noise
+// Initialisation
+p0=[6 3 2; 3 5 2; 2 2 4];
+x0=[1;1;1];
+y=[2 8 7]'; // Current observation output matrix
+[x1,p1]=srkf(y,x0,p0,f,h,Q,R);
+assert_checkalmostequal(p1, [-3.3826684796422888,0,0;-0.65452136096190749,1.43147468495118102,0;-10.588783837170105,-2.49768257747417177,-5.87595341369592727]);
+assert_checkalmostequal(x1, [1.07553956834532438;4.10971223021582333;6.06654676258992787]);
+
diff --git a/modules/signal_processing/tests/unit_tests/syredi.dia.ref b/modules/signal_processing/tests/unit_tests/syredi.dia.ref
new file mode 100755
index 000000000..782a50493
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/syredi.dia.ref
@@ -0,0 +1,18 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+[fact,b2,b1,b0,c1,c0,zzeros,zpoles]=syredi(1,4,[2*%pi/10,4*%pi/10,0,0],0.02,0.001);
+ref_fact = 0.005976;
+if norm(fact-ref_fact) > 0.0000037 then bugmes();quit;end
+if or(b2<>[1 1 1]) then bugmes();quit;end
+if or(size(b1)<>[1 3]) then bugmes();quit;end
+if b1(3)<> 1 then bugmes();quit;end
+if or(b0<>[1 1 0]) then bugmes();quit;end
+if or(size(c1)<>[1 3]) then bugmes();quit;end
+if or(size(c0)<>[1 3]) then bugmes();quit;end
+if c0(3)<> 0 then bugmes();quit;end
+if or(size(zzeros)<>[1 5]) then bugmes();quit;end
+if or(size(zpoles)<>[1 5]) then bugmes();quit;end
diff --git a/modules/signal_processing/tests/unit_tests/syredi.tst b/modules/signal_processing/tests/unit_tests/syredi.tst
new file mode 100755
index 000000000..3167fa3e2
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/syredi.tst
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+
+[fact,b2,b1,b0,c1,c0,zzeros,zpoles]=syredi(1,4,[2*%pi/10,4*%pi/10,0,0],0.02,0.001);
+ref_fact = 0.005976;
+if norm(fact-ref_fact) > 0.0000037 then pause,end
+if or(b2<>[1 1 1]) then pause,end
+if or(size(b1)<>[1 3]) then pause,end
+if b1(3)<> 1 then pause,end
+if or(b0<>[1 1 0]) then pause,end
+if or(size(c1)<>[1 3]) then pause,end
+if or(size(c0)<>[1 3]) then pause,end
+if c0(3)<> 0 then pause,end
+if or(size(zzeros)<>[1 5]) then pause,end
+if or(size(zpoles)<>[1 5]) then pause,end
diff --git a/modules/signal_processing/tests/unit_tests/xcorr.dia.ref b/modules/signal_processing/tests/unit_tests/xcorr.dia.ref
new file mode 100755
index 000000000..d8074c791
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/xcorr.dia.ref
@@ -0,0 +1,46 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+x=[1 2 3 4 3 2 1];
+c_ref=[1 4 10 20 31 40 44 40 31 20 10 4 1];
+assert_checkalmostequal(c_ref,xcorr(x));
+assert_checkalmostequal(c_ref,xcorr(x,"none"));
+assert_checkalmostequal(c_ref/7,xcorr(x,"biased"));
+assert_checkalmostequal(c_ref/44,xcorr(x,"coeff"));
+[c,ind]=xcorr(x);
+assert_checkalmostequal(c_ref./(7-abs(ind)),xcorr(x,"unbiased"));
+assert_checkalmostequal(c_ref(4:$-3),xcorr(x,3));
+assert_checkalmostequal(c_ref(4:$-3),xcorr(x,3,"none"));
+assert_checkalmostequal(c_ref(4:$-3)/7,xcorr(x,3,"biased"));
+assert_checkalmostequal(c_ref(4:$-3)/44,xcorr(x,3,"coeff"));
+[c,ind]=xcorr(x,3,"unbiased");
+assert_checkalmostequal(c_ref(4:$-3)./(7-abs(ind)),c);
+x=[1 2*%i 3 4 3 2 1];
+c_ref=[ 1,2+%i*2,6+%i*4,14+%i*6,23+%i*8,32+%i*4,44,...
+ 32-%i*4,23-%i*8,14-%i*6,6-%i*4,2-%i*2,1];
+assert_checkalmostequal(c_ref,xcorr(x));
+assert_checkalmostequal(c_ref(4:$-3),xcorr(x,3));
+x=[1 2 3 4 3 2 1];
+y=[4 3 2 1];
+c_ref=[0,0,0, 1, 4, 10, 20, 28, 32, 30, 20, 11, 4];
+c=xcorr(x,y);
+assert_checktrue(isreal(c));
+assert_checkalmostequal(c_ref,c,sqrt(%eps),20*%eps);
+assert_checkalmostequal(c_ref,xcorr(x,y,"none"),sqrt(%eps),20*%eps);
+assert_checkalmostequal(c_ref/7,xcorr(x,y,"biased"),sqrt(%eps),20*%eps);
+assert_checkalmostequal(c_ref/(norm(x)*norm(y)),xcorr(x,y,"coeff"),sqrt(%eps),20*%eps);
+assert_checkalmostequal(c_ref(4:$-3),xcorr(x,y,3));
+assert_checkalmostequal(c_ref(4:$-3),xcorr(x,y,3,"none"));
+assert_checkalmostequal(c_ref(4:$-3)/7,xcorr(x,y,3,"biased"));
+assert_checkalmostequal(c_ref(4:$-3)/(norm(x)*norm(y)),xcorr(x,y,3,"coeff"));
+[c,ind]=xcorr(x,y,3,"unbiased");
+assert_checkalmostequal(c_ref(4:$-3)./(7-abs(ind)),c);
+x=[1 2 3 4 3 2 1];
+y=[4 3 2 1+%i];
+c_ref=[0,0,0, 1-%i, 4-%i*2, 10-%i*3, 20-%i*4, 28-%i*3, 32-%i*2, 30-%i, 20, 11, 4];
+c=xcorr(x,y);
+assert_checkalmostequal(c_ref,c,sqrt(%eps),20*%eps);
+assert_checkalmostequal(c_ref(4:$-3),xcorr(x,y,3));
diff --git a/modules/signal_processing/tests/unit_tests/xcorr.tst b/modules/signal_processing/tests/unit_tests/xcorr.tst
new file mode 100755
index 000000000..ef2e1ad1b
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/xcorr.tst
@@ -0,0 +1,54 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+x=[1 2 3 4 3 2 1];
+c_ref=[1 4 10 20 31 40 44 40 31 20 10 4 1];
+assert_checkalmostequal(c_ref,xcorr(x));
+assert_checkalmostequal(c_ref,xcorr(x,"none"));
+assert_checkalmostequal(c_ref/7,xcorr(x,"biased"));
+assert_checkalmostequal(c_ref/44,xcorr(x,"coeff"));
+[c,ind]=xcorr(x);
+assert_checkalmostequal(c_ref./(7-abs(ind)),xcorr(x,"unbiased"));
+
+assert_checkalmostequal(c_ref(4:$-3),xcorr(x,3));
+assert_checkalmostequal(c_ref(4:$-3),xcorr(x,3,"none"));
+assert_checkalmostequal(c_ref(4:$-3)/7,xcorr(x,3,"biased"));
+assert_checkalmostequal(c_ref(4:$-3)/44,xcorr(x,3,"coeff"));
+[c,ind]=xcorr(x,3,"unbiased");
+assert_checkalmostequal(c_ref(4:$-3)./(7-abs(ind)),c);
+
+x=[1 2*%i 3 4 3 2 1];
+c_ref=[ 1,2+%i*2,6+%i*4,14+%i*6,23+%i*8,32+%i*4,44,...
+ 32-%i*4,23-%i*8,14-%i*6,6-%i*4,2-%i*2,1];
+assert_checkalmostequal(c_ref,xcorr(x));
+assert_checkalmostequal(c_ref(4:$-3),xcorr(x,3));
+
+x=[1 2 3 4 3 2 1];
+y=[4 3 2 1];
+c_ref=[0,0,0, 1, 4, 10, 20, 28, 32, 30, 20, 11, 4];
+c=xcorr(x,y);
+assert_checktrue(isreal(c));
+assert_checkalmostequal(c_ref,c,sqrt(%eps),20*%eps);
+assert_checkalmostequal(c_ref,xcorr(x,y,"none"),sqrt(%eps),20*%eps);
+assert_checkalmostequal(c_ref/7,xcorr(x,y,"biased"),sqrt(%eps),20*%eps);
+assert_checkalmostequal(c_ref/(norm(x)*norm(y)),xcorr(x,y,"coeff"),sqrt(%eps),20*%eps);
+
+
+assert_checkalmostequal(c_ref(4:$-3),xcorr(x,y,3));
+assert_checkalmostequal(c_ref(4:$-3),xcorr(x,y,3,"none"));
+assert_checkalmostequal(c_ref(4:$-3)/7,xcorr(x,y,3,"biased"));
+assert_checkalmostequal(c_ref(4:$-3)/(norm(x)*norm(y)),xcorr(x,y,3,"coeff"));
+[c,ind]=xcorr(x,y,3,"unbiased");
+assert_checkalmostequal(c_ref(4:$-3)./(7-abs(ind)),c);
+
+x=[1 2 3 4 3 2 1];
+y=[4 3 2 1+%i];
+c_ref=[0,0,0, 1-%i, 4-%i*2, 10-%i*3, 20-%i*4, 28-%i*3, 32-%i*2, 30-%i, 20, 11, 4];
+
+c=xcorr(x,y);
+assert_checkalmostequal(c_ref,c,sqrt(%eps),20*%eps);
+assert_checkalmostequal(c_ref(4:$-3),xcorr(x,y,3));
diff --git a/modules/signal_processing/tests/unit_tests/xcov.dia.ref b/modules/signal_processing/tests/unit_tests/xcov.dia.ref
new file mode 100755
index 000000000..6f34cfe3a
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/xcov.dia.ref
@@ -0,0 +1,16 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+x=[1 2 3 4 3 2 1];
+assert_checktrue(xcorr(x-mean(x))==xcov(x));
+x=[1 2*%i 3 4 3 2 1];
+assert_checktrue(xcorr(x-mean(x))==xcov(x));
+x=[1 2 3 4 3 2 1];
+y=[4 3 2 1];
+assert_checktrue(xcorr(x-mean(x),y-mean(y))==xcov(x,y));
+x=[1 2 3 4 3 2 1];
+y=[4 3 2 1+%i];
+assert_checktrue(xcorr(x-mean(x),y-mean(y))==xcov(x,y));
diff --git a/modules/signal_processing/tests/unit_tests/xcov.tst b/modules/signal_processing/tests/unit_tests/xcov.tst
new file mode 100755
index 000000000..be086dfe0
--- /dev/null
+++ b/modules/signal_processing/tests/unit_tests/xcov.tst
@@ -0,0 +1,22 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2008 - DIGITEO
+//
+// This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+x=[1 2 3 4 3 2 1];
+assert_checktrue(xcorr(x-mean(x))==xcov(x));
+
+x=[1 2*%i 3 4 3 2 1];
+assert_checktrue(xcorr(x-mean(x))==xcov(x));
+
+
+x=[1 2 3 4 3 2 1];
+y=[4 3 2 1];
+assert_checktrue(xcorr(x-mean(x),y-mean(y))==xcov(x,y));
+
+x=[1 2 3 4 3 2 1];
+y=[4 3 2 1+%i];
+
+assert_checktrue(xcorr(x-mean(x),y-mean(y))==xcov(x,y));