Ciglet is a lightweight C library for digital signal processing, in particular audio and speech processing.
Language: C99
License: BSD
In the past few years I've been writing and maintaining quite a few C-written speech processing projects (e.g. libllsm, libpyin, moresampler), some of which were partially translated from Matlab/Octave-based prototypes. Gradually I ended up having lots of frequent rewrites of C version of Matlab routines such as sum, fir1, conv, interp1, etc. In August 2016 I finally made the move to extract all these repeating patterns and group them into one independent library. Since it would be referred by quite a few projects, the new library is meant to be lightweight, easy to link, and fast, which is why it's named ciglet, an acronym of "C-written sIGnal codeLETs".
- random number generation:
randu,randn - miscellaneous:
max,min,linterp,fastatan2 - complex arithmetics:
c_cplx,c_conj,c_add,c_sub,c_mul,c_div,c_exp,c_abs,c_arg
- vectorized arithmetics:
sumfp,sumsqrfp,maxfp,minfp - descriptive statistics:
meanfp,varfp,medianfp,xcorr,corr,cov - sorting:
selectnth,sort - peak picking:
find_peak,find_valley,find_maxima,find_minima
fzero, polyval, roots
- products:
matmul,mvecmul,dot - solving a linear system:
lu,lusolve - pivoting:
ppivot,permm,permv
- enumeration:
linspace,iota - 2d array operations:
malloc2d,free2d,copy2d,flatten,reshape,transpose
wavread, wavwrite
- windows:
boxcar,hanning,hamming,mltsine,blackman_harris,nuttall98,blackman - Fourier transform:
fft,ifft,czt,iczt,idft,dct,fftshift - phase manipulation:
wrap,unwrap,phase_diff - complex number conversion:
abscplx,argcplx,polar2real,polar2imag,complete_symm,complete_asymm - cepstral analysis:
rceps,irceps,minphase - filtering:
fir1,conv,filter,filtfilt,moving_avg,moving_rms,medfilt1,kalmanf1d,kalmans1d - linear prediction:
levinson,lpc,flpc,lpgain,lpspec,lpresf - interpolation:
interp1,interp1u,sincinterp1u,interp_in_blank,rresample - operations on sinusoids:
gensin,gensins,safe_aliased_sinc,safe_aliased_dsinc - miscellaneous:
fetch_frame,diff,cumsum,flip,white_noise,itakura_saito
- psychoacoustics:
mel2freq,freq2mel,freq2bark,bark2freq,eqloud,melspace - frequency estimation:
ifdetector_estimate,correlogram,invcrgm - spectrogram and STFT:
stft,istft,qifft,spgm2cegm,cegm2spgm - filterbank analysis:
filterbank_spgm,filterbank_spec,be2cc,be2ccgm - spectral envelope estimation:
spec2env - glottal model:
lfmodel_from_rd,lfmodel_spectrum,lfmodel_period
plotopen, plot, imagesc, plotclose