Signal package: Difference between revisions
(list missing functions for the signal package) |
(→FIR Filter Design: updates per Matlab) |
||
(36 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
The {{Forge|signal}} package is part of the [[Octave Forge]] project and provides signal processing algorithms for use with Octave. The functions provided by the signal package include creation of waveforms, FIR and IIR filter design, spectral analysis, Fourier and other transforms, window functions, and resampling and rate changing. | The {{Forge|signal}} package is part of the [[Octave Forge]] project and provides signal processing algorithms for use with Octave. The functions provided by the signal package include creation of waveforms, FIR and IIR filter design, spectral analysis, Fourier and other transforms, window functions, and resampling and rate changing. There are also some wavelet functions included, because there is no separate wavelet package, at least for now. | ||
You may also be interested in the [http://ltfat.sourceforge.net/ LTFAT] package. | |||
== Contribution == | |||
=== | There are many ways to contribute to the development and maintenance of the signal processing package, including but not limited to testing, writing new test cases, reviewing and editing documentation, creating useful demos or examples of how to use the functions in the package, fixing bugs in existing functions, improving compatibility with Matlab, and writing completely new functions. | ||
=== Missing Tests === | |||
Octave functions can be written to include their own built-in self tests that work with the {{manual|test}} function, see [[Tests]]. | |||
Several functions in the signal package do not have exhaustive test suites or do not include any built-in self tests at all. This is a list of functions in the signal package that do not yet have any tests. | |||
* ar_psd | |||
* arburg | |||
* aryule | |||
* besselap | |||
* bilinear | |||
* buttap | |||
* cceps | |||
* cheb | |||
* cheb1ap | |||
* cheb2ap | |||
* clustersegment | |||
* cmorwavf | |||
* cohere | |||
* cpsd | |||
* csd | |||
* dct | |||
* dct2 | |||
* dctmtx | |||
* dftmtx | |||
* diric | |||
* dwt | |||
* ellipap | |||
* firls | |||
* freqs | |||
* freqs_plot | |||
* gmonopuls | |||
* hilbert | |||
* idct | |||
* idct2 | |||
* iirlp2mb | |||
* interp | |||
* invfreq | |||
* invfreqs | |||
* invfreqz | |||
* kaiserord | |||
* levinson | |||
* mexihat | |||
* meyeraux | |||
* morlet | |||
* movingrms | |||
* mscohere | |||
* ncauer | |||
* pburg | |||
* polystab | |||
* primitive | |||
* pwelch | |||
* pyulear | |||
* qp_kaiser | |||
* sampled2continuous | |||
* sawtooth | |||
* schtrig | |||
* sftrans | |||
* sgolayfilt | |||
* shanwavf | |||
* sigmoid_train | |||
* square | |||
* ss2tf | |||
* ss2zp | |||
* tf2ss | |||
* tf2zp | |||
* tfe | |||
* tfestimate | |||
* wconv | |||
* wkeep | |||
* wrev | |||
* xcorr | |||
* xcov | |||
* zp2ss | |||
* zp2tf | |||
* zplane | |||
=== Missing Functions === | |||
This is a list of functions that are not yet implemented in the Octave signal package. Patches for some of these functions are available on the patch tracker and are undergoing review. You could help us by implementing the missing functions and adding them to the patch tracker, or by helping us review the ones that are already there. This list is subject to change and may not be complete in any sense. However, it is a starting point when looking for missing functionality or for possible projects to work on. | |||
==== Signal Generation ==== | |||
* demod | * demod | ||
* modulate | * modulate (see patch {{patch|9409}}) | ||
* seqperiod | * seqperiod | ||
* strips | * strips | ||
* vco | * vco | ||
=== Signal Measurement === | ==== Correlation and Convolution ==== | ||
* corrmtx | |||
* dtw (please refer to open feature request bug {{bug|51572}}, only pseudocode so far) | |||
==== Signal Measurement ==== | |||
* bandpower | * bandpower (see patch {{patch|8697}}) | ||
* dutycycle | * dutycycle | ||
* enbw | * enbw | ||
Line 25: | Line 110: | ||
* midcross | * midcross | ||
* overshoot | * overshoot | ||
* pulseperiod | * pulseperiod | ||
* pulsesep | * pulsesep | ||
* pulsewidth | * pulsewidth | ||
* risetime | * risetime | ||
* settlingtime | * settlingtime | ||
* sfdr | * sfdr | ||
* slewrate | * slewrate | ||
* statelevels | * statelevels (see patch {{patch|9199}}) | ||
* undershoot | * undershoot | ||
=== Filter Analysis === | ==== Filter Analysis ==== | ||
* filternorm | * filternorm | ||
Line 49: | Line 130: | ||
* ismaxphase | * ismaxphase | ||
* isminphase | * isminphase | ||
* isstable | * isstable (see patch {{patch|9265}}) | ||
* phasedelay | * phasedelay | ||
* phasez | * phasez | ||
* stepz | * stepz (see patch {{patch|8630}}) | ||
* zerophase | * zerophase | ||
=== Filter Conversion === | ==== Filter Conversion ==== | ||
* cell2sos | * cell2sos | ||
Line 68: | Line 149: | ||
* tf2zpk | * tf2zpk | ||
= | ==== FIR Filter Design ==== | ||
=== FIR Filter Design === | |||
* cfirpm | * cfirpm | ||
Line 82: | Line 155: | ||
* fircls | * fircls | ||
* fircls1 | * fircls1 | ||
* firpm | * firpm (see patch {{patch|8535}}) | ||
* firpmord | * firpmord (see patch {{patch|8535}}) | ||
* firrcos | * <s>firrcos</s> (superseded by rcosdesign) | ||
* freqsamp | * freqsamp | ||
* gaussfir | * gaussfir | ||
Line 91: | Line 164: | ||
* maxflat | * maxflat | ||
* polyscale | * polyscale | ||
* rcosdesign | |||
* <s>remezord</s> (superseded by firpmord) | |||
=== | ==== IIR Filter Design ==== | ||
* | * lp2bp | ||
* goertzel | * lp2bs | ||
* lp2hp | |||
* lp2lp (please refer to open feature request bug {{bug|46440}}, only partial code snippets so far) | |||
* yulewalk | |||
==== Transforms ==== | |||
* goertzel (see patch {{patch|8495}}) | |||
* icceps | * icceps | ||
=== Spectral Analysis === | ==== Spectral Analysis ==== | ||
* db | * db | ||
* pcov | * pcov | ||
* peig | * peig | ||
* pmcov | * pmcov | ||
* pmtm | * pmtm (please refer to open feature request bug {{bug|55714}}) | ||
* pmusic | * pmusic | ||
* rooteig | * rooteig | ||
* rootmusic | * rootmusic | ||
* spectrogram | * spectrogram (please refer to open feature request bug {{bug|45232}}) | ||
=== Window Functions === | ==== Window Functions ==== | ||
* dpss | * dpss | ||
Line 122: | Line 198: | ||
* dpssdir | * dpssdir | ||
* dpssload | * dpssload | ||
* taylorwin | * taylorwin (see patch {{patch|8506}}) | ||
=== System Identification === | ==== System Identification ==== | ||
* ac2poly | * ac2poly | ||
Line 130: | Line 206: | ||
* arcov | * arcov | ||
* armcov | * armcov | ||
* is2rc | * is2rc | ||
* lar2rc | * lar2rc | ||
* lpc | * lpc (see patch {{patch|8575}}) | ||
* lsf2poly | * lsf2poly (see patch {{patch|8726}}) | ||
* poly2ac | * poly2ac | ||
* poly2lsf | * poly2lsf (see patch {{patch|8726}}) | ||
* poly2rc | * poly2rc | ||
* prony | * prony | ||
* rc2ac | * rc2ac | ||
Line 148: | Line 222: | ||
* stmcb | * stmcb | ||
=== | ==== Object Oriented Filter Design ==== | ||
* design | * design | ||
Line 164: | Line 238: | ||
* setspecs | * setspecs | ||
* validstructures | * validstructures | ||
=== Interactive Design Tools === | ==== Interactive Design Tools ==== | ||
* dspfwiz | * dspfwiz | ||
* fdatool | * fdatool | ||
* filterbuilder | * filterbuilder | ||
* sptool | * sptool | ||
* wintool | * wintool | ||
Line 177: | Line 249: | ||
[[Category: | [[Category:Octave Forge]] | ||
[[Category: | [[Category:Missing functions]] |
Latest revision as of 06:36, 10 April 2021
The signal package is part of the Octave Forge project and provides signal processing algorithms for use with Octave. The functions provided by the signal package include creation of waveforms, FIR and IIR filter design, spectral analysis, Fourier and other transforms, window functions, and resampling and rate changing. There are also some wavelet functions included, because there is no separate wavelet package, at least for now.
You may also be interested in the LTFAT package.
Contribution[edit]
There are many ways to contribute to the development and maintenance of the signal processing package, including but not limited to testing, writing new test cases, reviewing and editing documentation, creating useful demos or examples of how to use the functions in the package, fixing bugs in existing functions, improving compatibility with Matlab, and writing completely new functions.
Missing Tests[edit]
Octave functions can be written to include their own built-in self tests that work with the test
function, see Tests.
Several functions in the signal package do not have exhaustive test suites or do not include any built-in self tests at all. This is a list of functions in the signal package that do not yet have any tests.
- ar_psd
- arburg
- aryule
- besselap
- bilinear
- buttap
- cceps
- cheb
- cheb1ap
- cheb2ap
- clustersegment
- cmorwavf
- cohere
- cpsd
- csd
- dct
- dct2
- dctmtx
- dftmtx
- diric
- dwt
- ellipap
- firls
- freqs
- freqs_plot
- gmonopuls
- hilbert
- idct
- idct2
- iirlp2mb
- interp
- invfreq
- invfreqs
- invfreqz
- kaiserord
- levinson
- mexihat
- meyeraux
- morlet
- movingrms
- mscohere
- ncauer
- pburg
- polystab
- primitive
- pwelch
- pyulear
- qp_kaiser
- sampled2continuous
- sawtooth
- schtrig
- sftrans
- sgolayfilt
- shanwavf
- sigmoid_train
- square
- ss2tf
- ss2zp
- tf2ss
- tf2zp
- tfe
- tfestimate
- wconv
- wkeep
- wrev
- xcorr
- xcov
- zp2ss
- zp2tf
- zplane
Missing Functions[edit]
This is a list of functions that are not yet implemented in the Octave signal package. Patches for some of these functions are available on the patch tracker and are undergoing review. You could help us by implementing the missing functions and adding them to the patch tracker, or by helping us review the ones that are already there. This list is subject to change and may not be complete in any sense. However, it is a starting point when looking for missing functionality or for possible projects to work on.
Signal Generation[edit]
- demod
- modulate (see patch #9409)
- seqperiod
- strips
- vco
Correlation and Convolution[edit]
- corrmtx
- dtw (please refer to open feature request bug #51572, only pseudocode so far)
Signal Measurement[edit]
- bandpower (see patch #8697)
- dutycycle
- enbw
- falltime
- midcross
- overshoot
- pulseperiod
- pulsesep
- pulsewidth
- risetime
- settlingtime
- sfdr
- slewrate
- statelevels (see patch #9199)
- undershoot
Filter Analysis[edit]
- filternorm
- filtord
- firtype
- impzlength
- isallpass
- islinphase
- ismaxphase
- isminphase
- isstable (see patch #9265)
- phasedelay
- phasez
- stepz (see patch #8630)
- zerophase
Filter Conversion[edit]
- cell2sos
- filt2block
- latc2tf
- latcfilt
- realizemdl
- sos2cell
- sos2ss
- ss2sos
- tf2latc
- tf2zpk
FIR Filter Design[edit]
- cfirpm
- equiripple
- fircls
- fircls1
- firpm (see patch #8535)
- firpmord (see patch #8535)
firrcos(superseded by rcosdesign)- freqsamp
- gaussfir
- intfilt
- kaiserwin
- maxflat
- polyscale
- rcosdesign
remezord(superseded by firpmord)
IIR Filter Design[edit]
- lp2bp
- lp2bs
- lp2hp
- lp2lp (please refer to open feature request bug #46440, only partial code snippets so far)
- yulewalk
Transforms[edit]
- goertzel (see patch #8495)
- icceps
Spectral Analysis[edit]
- db
- pcov
- peig
- pmcov
- pmtm (please refer to open feature request bug #55714)
- pmusic
- rooteig
- rootmusic
- spectrogram (please refer to open feature request bug #45232)
Window Functions[edit]
- dpss
- dpssclear
- dpssdir
- dpssload
- taylorwin (see patch #8506)
System Identification[edit]
- ac2poly
- ac2rc
- arcov
- armcov
- is2rc
- lar2rc
- lpc (see patch #8575)
- lsf2poly (see patch #8726)
- poly2ac
- poly2lsf (see patch #8726)
- poly2rc
- prony
- rc2ac
- rc2is
- rc2lar
- rc2poly
- rlevinson
- schurrc
- stmcb
Object Oriented Filter Design[edit]
- design
- designmethods
- designopts
- fdesign
- fdesign.arbmag
- fdesign.bandpass
- fdesign.bandstop
- fdesign.differentiator
- fdesign.highpass
- fdesign.hilbert
- fdesign.lowpass
- fdesign.pulseshaping
- setspecs
- validstructures
Interactive Design Tools[edit]
- dspfwiz
- fdatool
- filterbuilder
- sptool
- wintool
- wvtool