Return To Numerix Home Page   Numerix Web Site  

SigLib™ ANSI C Example Programs

  SigLib DSP Library Information

This directory contains the ANSI C source example programs for SigLib.

All of these examples can be compiled with the free Microsoft (V15.0 / Visual Studio 9) and Borland (V5.5.1) C/C++ compilers using Signal Visualizer which is available from : http://signalvisualize.sourceforge.net/.

All of the examples, with the exception of the Order Analysis example, will compile with any ANSI C compiler that supports the socket.h API or the winsock.h API. The Order Analysis example requires a 32 bit compiler because of the amount of data that is processed.

CostasQAM - Costas loop QAM / p/4 DQPSK V.26b modulation / demodulation example
OrderAnalysis - Order analysis example

180det.c - 180 degree phase reversal detector
adpcm.c - One bit per sample Adaptive Differential Pulse Coded Modulation
agc.c - Automatic gain control
all-pole.c - All-pole filter - see also OnePole.c and iir.c
am.c - Amplitude modulate
am2.c - Amplitude modulate
analytic.c - Generate an analytic signal from a real one
arb-fft.c - Arbitrary length FFT - using chirp z-Transform / FFT
bilinear.c - Bilinear transform IIR filter design - see also iir.c
bitcount.c - Bit count test functions
bpsk.c - Binary phase shift keying - see also dbpsk.c and bpsk8.c
bpsk8.c - Binary phase shift keying with 8 kHz sample rate and also shows how to use the debug output
cepstrum.c - Cepstrum analysis
chirp_3d.c - Spectrogram of chirp signals
chirp-z.c and chirp-z2.c - Chirp z-transform
cmplxfir.c - Complex FIR filter
comb1.c and comb2.c - Comb filters
complex.c - Complex numbers
compshft.c - Complex frequency shift
convolve.c - Convolution
copyovl.c - Array copying with overlap
cornu_s.c - Plot of Cornu's spiral
corr1.c, corr2.c and corr3.c - Correlatio examples
costasl.c - Costas loop - see also pll.c
covar.c - Covariance
dbpsk.c - Binary phase shift keying - see also bpsk.c. See bpsk8.c to see how to support 8 kHz sample rate
ddf.c - Utility to display data files in time and freq. domain
debug.c - Debug log file useage
decint.c - Time domain decimation and interpolation
deconv.c - Deconvolution
delay.c - Delays. See also fifo.c
DeltMod1.c and DeltMod2.c - Delta modulation / demodulation
dfplusi.c - Converts z-domain coefficients from Digital Filter Plus format to SigLib format - see also iir.c
dft_fft.c - Comparison of the DFT and FFT algorithms
dotprod.c - Dot product
dtmf.c - DTMF generation and detection, see also dtmfwav.c and dtmf_gen.c
dtmf_gen.c - Generate a DTMF sequence to a file (dtmf.wav) from a text file (dtmf.txt). Performs DTMF detection on the data in the file, see also dtmf.c and dtmfwav.c
dtmf_wav.c - Performs DTMF detection on data file (tones.wav), see also dtmf.c and dtmf_gen.c
echorev.c - Echo / reverberation
ELGate.c - Early-late gate timing synchronizer
envelope.c - Envelope detect a waveform using a Hilbert transform
evm.c - Envelope detect a waveform using a Hilbert transform
FDFilt.c - Frequency domain filters - overlap-add, aoverlap-save
fdhilb.c - Frequency domain Hilbert transform
fdinterp.c - Frequency domain pitch shifting
fdinter2.c - Frequency domain sinx/x interpolation
fft.c - Fast Fourier transform - see also : ffttone.c, rfft.c and dft_fft.c
FFTBin.c - Translate frequencies to FFT bin numbers and vice versa, see also fft.c
ffttone.c - Use the FFT to calculate the FFT bin and the magnitude of the peak tone in the signal, see also fft.c
fifo.c - FIFO delay. See also delay.c
fir1.cfir2.c and fir3.c - FIR filter, see also firadds.c and FDFilt.c
firadds.c - FIR filter add samples - see also fir.c
firdesn.c - FIR filter design and use, see also firdesnw.c and fir.c
firdesnw.c - FIR filter design and use, see also firdesn.cfirdesnw.c and fir.c
FreqMod1.c and FreqMod2.c - Frequency modulation. See also FreqModC.c
FreqModC.c - Frequency modulation of a complex sinusoid. See also FreqMod1.c and FreqMod2.c
fsk.c - Frequency shift keying, see also fskn.c for non integer number of samples per symbol, fsktime.c for sample timing detector and bpsk8.c for 8 kHz sample rate support.
fskn.c - Frequency shift keying, see also fsk.c
fsktime.c
- Frequency shift keying sample timing detector, see also fsk.c and fskn.c
GausFilt.c - Gaussian filter
GoertzC.c - Complex Goertzel filter detector - see also GoertzD.c and GoertzF.c
GoertzD.c - Goertzel filter detector - see also GoertzC.c and GoertzF.c
GoertzF.c - Goertzel filter - see also GoertzC.c and GoertzD.c
harmonic.c - Signal construction from harmonics
hilbert.c - Hilbert transformer
histogrm.c - Histogram
iir.c and iir2.c - IIR filter and Bilinear transform test program - see also bilinear.cIIR-Gain.ciirshft1.c and OrdNIIR.c
IIR-Gain.c - IIR filter gain modification - see also iir.cbilinear.c and dfplusi.c
iirnotch.c - IIR notch (band-stop) filter design
iirshft1.c - Low pass and high pass IIR filter design using Butterworth and Bessel specifications - digital prototype - see also bilinear.c and iir.c
iirshft2.c - Low pass and high pass IIR filter design using Butterworth and Chebyshev specifications - digital prototype - see also bilinear.c and iir.c
iirshft3.c - Low pass and high pass IIR filter design using Butterworth specifications - digital prototype - see also bilinear.c and iir.c
iirspln.c - Low pass and high pass IIR filter design using Butterworth and Bessel specifications - analog prototype
IntDiff.c - Integration and differentiation
interp.c - Interpolating points within a data set
intleave.c - Channel data interleaving and de-interleaving
inv_fir.c - FIR filter frequency inversion
isquare.c - Frequency domain pitch shifting
kurtosis.c - Calculated the kurtosis value of waveforms
LeakyInt.c - Leaky integrator
lin_dbm.c - Calculate linear and dBm values for fixed point word lengths
lms.c - Least Mean Square adaptive filter
manchest.c - Manchester encoding
MatchFil.c - Matched filter
math.c - Math test functions
matrix.c and matrix2.c - Matrix algebra
median.c - Median filter
microscn.c - Microscan spectrum analyzer
minmax.c - Minimum and maximum detectors
minmaxs.c - Select minimum and maximum values
modcount.c - Modulo incrementing and decrementing of index numbers
modulate.c - Amplitude modulation
modulo.c - Modulo arithmetic
movepeak.c - Move the peak location in an array to another location
mrate.c - Poly-phase multi-rate filter
MSCoher.c - Magnitude squared coherence - see also psd.c and WelchPSE.c
multiplx.c - Channel multipIexing / demultiplexing
NonCaus.c - Non-causal linear phase IIR filter - see also iir.c
OnePole.c - One pole IIR filter - see also iir.c and all-pole.c
OrdNIIR.c - Order N IIR filter - does not use the more common biquad structure - see also iir.c
ovl_add.c - Overlap and add - used to overlap data from one array to another
PeakAveR.c - Peak to average ratio
pid.c - PID controler
PkHold1.c and PkHold2.c - Peak hold of a signal
pll.c - Phase locked loop - see also costasl.c
pn9pn15.c
- PN9 and Pn15 sequence generation and scrambling - see also prbs.c
polynom.c - Polynomial expansion
prbs.c - PRBS scramblers and descramblers. See also pn9pn15.c.
preemp.c - Pre-emphasis and de-emphasis filters for speech processing
pre-warp.c - Pre-warp frequencies for Bilinear transform - see also bilinear.c
psd.c - Cross and auto power spectrum / power spectral density - see also WelchPSE.c and MSCoher.c
pwm.c - Pulse width modulation
qam16.c - QAM 16. See bpsk8.c to see how to support 8 kHz sample rate
qpsk.c - Quadrature phase shift keying. See also qpsk2.c. See bpsk8.c to see how to support 8 kHz sample rate
qpsk2.c - QPSK demodulation using Costas loop and Early-late gate synchronization
quantize.c - Spectrum of quantized signal with different FFT sizes
rcf.c - Raised cosine filter and square root raised cosine filter
regress.c - Regression analysis
RemoveDC.c - Remove D.C. component of signal
resamplc.c - Resample the data in the array using linear and sinc interpolation - functions are contiguous across array boundaries
resample.c - Resample the data in the array using linear and sinc interpolation - functions are discontiguous across array boundaries
resize.c - Resize (increase or decrease) the size of arrays being used to process data
resonate.c - Resonator filter structure
rfft.c - Real FFT - see also fft.c
roots.c - Calculates the roots of the real and complex polynomials - ax^2 + bx + c = 0
rotate.c - Rotate the samples in an array
round.c - Rounding
sequence.c - Character, word and bit sequence detection functions
sgram.c - Spectrogram of signal held in a file
sig2wav.c - File convert .sig to .wav
sig_gen.c - Signal generation
sine_fft.c - Spectrum of various sinewaves
sinpower.c - Signals raised to successive powers
sinx_x.c - Plot of sin(x) / x curve
spec_inv.c - Time domain spectral inverse
stats.c - Statistics
SyncAsyn.c - Synchronous to asynchronous conversion functions
TDShift.c - Time domain pitch shifting
trend.c - Trend analysis and detrending
trig.c - Fast trig functions - sin, cos and sincos
trigger.c - Trigger sampling - returns the location of the zero crossing when trigger level exceeded
trigrev.c - Clock trigger reverberator - ensures a continuous clock at a given nominal frequency
trigsel.c - Select the values from an input signal dependent on the values in the trigger array
tworby1c.c - Two real FFTs with one complex one
vit-k3.c - Constraint length K=3 convolutional encode with Viterbi decode
vit-v32.c - V.32 convolutional encode with Viterbi decode
weightvs.c - Weighted vector sum
WelchPSE.c - Welch Power Spectral Density calculation - see also psd.c and MSCoher.c
window.c - Windowing functions
WordLen.c - Wordlength modification functions - these functions are used in modems for supporting n-ary shift keying
ZeroCros.c - Zero crossing detector
ZoomFFT.c - Zoom FFT - see also ZoomFFTs.c
ZoomFFTs.c - Simple zoom FFT see also ZoomFFT.c

Utility Files

plot_fd.h - Plots frequency domain response of vector


For further information, please contact :
Email Numerix Email : numerix@numerix-dsp.com
   
Indigo Consulting Ltd., 7 Dauphine Close,
Coalville, Leics., LE67 4QQ, UK.
Phone : +44 (0)208 020 0046,
Fax : +44 (0)208 020 0047

Copyright © 2008, Indigo Consulting Ltd. Permission is granted to create WWW pointers to this document.
SigLib, Digital Filter Plus and Numerix-DSP are trademarks of Indigo Consulting Ltd. All other trademarks acknowledged.
Numerix-DSP are continuously increasing the functionality of SigLib and reserve the right to alter the product at any time.