• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

README.mdH A D28-Jul-201925.8 KiB636488

agc_crcf_example.cH A D28-Jul-20193.7 KiB13188

agc_crcf_qpsk_example.cH A D28-Jul-20193.9 KiB12582

agc_crcf_squelch_example.cH A D28-Jul-20196 KiB167117

agc_rrrf_example.cH A D28-Jul-20193.4 KiB12485

ampmodem_example.cH A D28-Jul-20196.1 KiB168129

asgramcf_example.cH A D28-Jul-20191.9 KiB6736

asgramf_example.cH A D28-Jul-20191.9 KiB6333

autocorr_cccf_example.cH A D28-Jul-20195.1 KiB15499

bpacketsync_example.cH A D28-Jul-20194.9 KiB174113

bpresync_example.cH A D28-Jul-20197.1 KiB198138

bsequence_example.cH A D28-Jul-20191 KiB5329

cbufferf_example.cH A D28-Jul-2019966 4923

cgsolve_example.cH A D28-Jul-20192 KiB7845

channel_cccf_example.cH A D28-Jul-20197.2 KiB196134

chromosome_example.cH A D28-Jul-20191.8 KiB8844

compand_cf_example.cH A D28-Jul-20191.7 KiB6543

compand_example.cH A D28-Jul-20192.7 KiB10372

complementary_codes_example.cH A D28-Jul-20193.9 KiB13689

conversion_example.cH A D28-Jul-20194.9 KiB14077

cpfskmodem_example.cH A D28-Jul-20197.6 KiB205154

cpfskmodem_psd_example.cH A D28-Jul-20195.9 KiB166113

crc_example.cH A D28-Jul-20192 KiB7644

cvsd_example.cH A D28-Jul-20193.5 KiB13184

detector_cccf_example.cH A D28-Jul-20196.6 KiB195135

dotprod_cccf_example.cH A D28-Jul-20191.1 KiB4322

dotprod_rrrf_example.cH A D28-Jul-2019690 3514

dsssframesync_example.cH A D28-Jul-20195 KiB154108

eqlms_cccf_blind_example.cH A D28-Jul-201911.5 KiB318215

eqlms_cccf_block_example.cH A D28-Jul-20196.9 KiB189136

eqlms_cccf_decisiondirected_example.cH A D28-Jul-201910.3 KiB286198

eqlms_cccf_example.cH A D28-Jul-20195 KiB163108

eqrls_cccf_example.cH A D28-Jul-20195 KiB163108

fading_generator_example.cH A D28-Jul-20192.7 KiB10471

fec_example.cH A D28-Jul-20193.8 KiB14293

fec_soft_example.cH A D28-Jul-20196.2 KiB187127

fft_example.cH A D28-Jul-20192.7 KiB10567

fftfilt_crcf_example.cH A D28-Jul-20194.5 KiB13683

firdecim_crcf_example.cH A D28-Jul-20195.1 KiB148106

firdes_kaiser_example.cH A D28-Jul-20193.2 KiB10272

firdespm_callback_example.cH A D28-Jul-20193 KiB9667

firdespm_example.cH A D28-Jul-20192.1 KiB6946

firdespm_lowpass_example.cH A D28-Jul-20192.7 KiB9063

firfarrow_rrrf_example.cH A D28-Jul-20192.9 KiB9762

firfilt_cccf_example.cH A D28-Jul-20194.3 KiB14092

firfilt_cccf_notch_example.cH A D28-Jul-20193.6 KiB10268

firfilt_crcf_dcblocker_example.cH A D28-Jul-20193.5 KiB10366

firfilt_crcf_example.cH A D28-Jul-20194.4 KiB12783

firfilt_rrrf_example.cH A D28-Jul-20192.8 KiB9364

firhilb_decim_example.cH A D28-Jul-20193 KiB8850

firhilb_example.cH A D28-Jul-20194.9 KiB12383

firhilb_filter_example.cH A D28-Jul-20194.6 KiB12483

firhilb_interp_example.cH A D28-Jul-20193 KiB8750

firinterp_crcf_example.cH A D28-Jul-20194.7 KiB146103

firinterp_firdecim_crcf_example.cH A D28-Jul-20196.8 KiB195136

firpfbch2_crcf_example.cH A D28-Jul-20195.7 KiB170118

firpfbch_crcf_analysis_example.cH A D28-Jul-20195.2 KiB14994

firpfbch_crcf_example.cH A D28-Jul-20198.5 KiB299172

firpfbch_crcf_synthesis_example.cH A D28-Jul-20195.5 KiB158100

firpfbchr_crcf_example.cH A D28-Jul-20194.1 KiB13087

flexframesync_example.cH A D28-Jul-20196.1 KiB174116

flexframesync_reconfig_example.cH A D28-Jul-20193.5 KiB12373

framesync64_example.cH A D28-Jul-20196.8 KiB195131

freqmodem_example.cH A D28-Jul-20194.6 KiB137100

fskframesync_example.cH A D28-Jul-20196.7 KiB202136

fskmodem_example.cH A D28-Jul-20194.9 KiB158102

fskmodem_waterfall_example.cH A D28-Jul-20193.5 KiB11374

gasearch_example.cH A D28-Jul-20193.6 KiB13279

gasearch_knapsack_example.cH A D28-Jul-20196.5 KiB204136

gmskframesync_example.cH A D28-Jul-20197.2 KiB233171

gmskmodem_example.cH A D28-Jul-20194.6 KiB144104

gradsearch_datafit_example.cH A D28-Jul-20193.6 KiB15093

gradsearch_example.cH A D28-Jul-20193.3 KiB11280

iirdecim_crcf_example.cH A D28-Jul-20195 KiB156112

iirdes_analog_example.cH A D28-Jul-20198.7 KiB265203

iirdes_example.cH A D28-Jul-20199.4 KiB263211

iirdes_pll_example.cH A D28-Jul-20194.6 KiB151108

iirfilt_cccf_example.cH A D28-Jul-20197.6 KiB206160

iirfilt_crcf_dcblocker_example.cH A D28-Jul-20193.4 KiB10164

iirfilt_crcf_example.cH A D28-Jul-20194.6 KiB13188

iirhilb_example.cH A D28-Jul-20195 KiB12383

iirhilb_filter_example.cH A D28-Jul-20194.3 KiB11877

iirinterp_crcf_example.cH A D28-Jul-20194.4 KiB13693

interleaver_example.cH A D28-Jul-20191.6 KiB6127

interleaver_scatterplot_example.cH A D28-Jul-20193.8 KiB14598

interleaver_soft_example.cH A D28-Jul-20193 KiB9058

kbd_window_example.cH A D28-Jul-20191.6 KiB5941

libliquid_example.cH A D28-Jul-2019414 2110

lpc_example.cH A D28-Jul-20194.3 KiB14499

matched_filter_example.cH A D28-Jul-20196.7 KiB207150

math_lngamma_example.cH A D28-Jul-20191.4 KiB5641

math_primitive_root_example.cH A D28-Jul-2019568 3016

modem_arb_example.cH A D28-Jul-20193.5 KiB13281

modem_example.cH A D28-Jul-20193.4 KiB11881

modem_soft_example.cH A D28-Jul-20193.2 KiB11981

modular_arithmetic_example.cH A D28-Jul-2019818 3620

msequence_example.cH A D28-Jul-20193 KiB10760

msequence_generator_example.cH A D28-Jul-20191.3 KiB5441

msourcecf_example.cH A D28-Jul-20193.5 KiB11268

msresamp2_crcf_example.cH A D28-Jul-20198.7 KiB238167

msresamp_crcf_example.cH A D28-Jul-20197.8 KiB225154

msresamp_crcf_noise_example.cH A D28-Jul-20194.3 KiB13791

nco_crcf_mix_example.cH A D28-Jul-20193.3 KiB10264

nco_example.cH A D28-Jul-20192.1 KiB7345

nco_pll_example.cH A D28-Jul-20194.7 KiB154105

nco_pll_modem_example.cH A D28-Jul-20195.9 KiB185119

nyquist_filter_example.cH A D28-Jul-20193.8 KiB12597

ofdmflexframesync_example.cH A D28-Jul-20196.4 KiB185130

ofdmframegen_example.cH A D28-Jul-20191.8 KiB7240

ofdmframesync_example.cH A D28-Jul-20199.2 KiB277170

ordfilt_rrrf_example.cH A D28-Jul-20191.8 KiB6739

packetizer_example.cH A D28-Jul-20194.6 KiB158107

packetizer_soft_example.cH A D28-Jul-20196.3 KiB197138

pll_example.cH A D28-Jul-20192.3 KiB9356

poly_findroots_example.cH A D28-Jul-2019832 3721

polyfit_example.cH A D28-Jul-20191.8 KiB7347

polyfit_lagrange_example.cH A D28-Jul-20192.1 KiB7845

qdetector_cccf_example.cH A D28-Jul-20198.3 KiB231168

qnsearch_example.cH A D28-Jul-20191.7 KiB6840

qpacketmodem_example.cH A D28-Jul-20194.5 KiB14093

qpacketmodem_performance_example.cH A D28-Jul-20197.9 KiB200144

qpilotsync_example.cH A D28-Jul-20195.7 KiB164116

quantize_example.cH A D28-Jul-20193.5 KiB12386

random_histogram_example.cH A D28-Jul-201912.7 KiB365302

repack_bytes_example.cH A D28-Jul-20191.7 KiB6637

resamp2_cccf_example.cH A D28-Jul-20195 KiB13290

resamp2_crcf_decim_example.cH A D28-Jul-20195.4 KiB148100

resamp2_crcf_example.cH A D28-Jul-20194 KiB12779

resamp2_crcf_filter_example.cH A D28-Jul-20194 KiB11172

resamp2_crcf_interp_example.cH A D28-Jul-20195.4 KiB14799

resamp_crcf_example.cH A D28-Jul-20198.5 KiB233166

resamp_crcf_noise_example.cH A D28-Jul-20194.7 KiB14497

ricek_channel_example.cH A D28-Jul-20196.2 KiB179120

rresamp_crcf_example.cH A D28-Jul-20195 KiB142102

rresamp_crcf_rnyquist_example.cH A D28-Jul-20194.8 KiB135101

rresamp_rrrf_example.cH A D28-Jul-20195 KiB142102

scramble_example.cH A D28-Jul-20193.2 KiB13682

smatrix_example.cH A D28-Jul-20194.6 KiB211114

spgramcf_example.cH A D28-Jul-20192.7 KiB9756

spgramf_example.cH A D28-Jul-20192.3 KiB8851

spwaterfallcf_example.cH A D28-Jul-20192.5 KiB8745

symstreamcf_example.cH A D28-Jul-20192.3 KiB8650

symsync_crcf_example.cH A D28-Jul-20195.3 KiB161104

symsync_crcf_full_example.cH A D28-Jul-201911.4 KiB315236

symsync_crcf_kaiser_example.cH A D28-Jul-20197.7 KiB209147

symtrack_cccf_example.cH A D28-Jul-20197.3 KiB201138

wdelayf_example.cH A D28-Jul-20191.3 KiB5835

windowf_example.cH A D28-Jul-20191.3 KiB6425

README.md

1
2liquid-dsp examples
3===================
4
5This directory contains all the examples for interfacing the liquid modules.
6
7 * `agc_crcf_example.c`:
8    Automatic gain control example demonstrating its transient response.
9
10 * `agc_crcf_qpsk_example.c`:
11    Automatic gain control test for data signals with fluctuating signal
12    levels.  QPSK modulation introduces periodic random zero-crossings which
13    gives instantaneous amplitude levels near zero.  This example tests the
14    response of the AGC to these types of signals.
15
16 * `ampmodem_example.c`:
17    Tests simple modulation/demodulation of the ampmodem (analog amplitude
18    modulator/demodulator) with noise, carrier phase, and carrier frequency
19    offsets.
20
21 * `asgramcf_example.c`:
22    ASCII spectrogram example for complex inputs. This example demonstrates
23    the functionality of the ASCII spectrogram. A sweeping complex sinusoid
24    is generated and the resulting spectral periodogram is printed to the
25    screen.
26
27 * `asgramf_example.c`:
28    ASCII spectrogram example for real-valued input. This example demonstrates
29    the functionality of the ASCII spectrogram for real-valued input siganls.
30    A cosine signal with time-varying frequency is generated and the resulting
31    spectral periodogram is printed to the screen. Because the time signal has
32    no complex component, its spectrum is symmetric.
33
34 * `autocorr_cccf_example.c`:
35    This example demonstrates the autocorr (auto-correlation) object
36    functionality.  A random time-domain sequence is generated which exhibits
37    time-domain repetitions (auto-correlation properties), for example:
38    abcdabcdabcd....abcd.  The sequence is pushed through the autocorr object,
39    and the results are written to an output file. The command-line arguments
40    allow the user to experiment with the sequence length, number of sequence
41    repetitions, and properties of the auto-correlator, as well as signal-to-
42    noise ratio.
43
44 * `bpacketsync_example.c`:
45
46 * `bpresync_example.c`:
47    This example demonstrates the binary pre-demodulator synchronizer. A random
48    binary sequence is generated, modulated with BPSK, and then interpolated.
49    The resulting sequence is used to generate a bpresync object which in turn
50    is used to detect a signal in the presence of carrier frequency and timing
51    offsets and additive white Gauss noise.
52
53 * `bsequence_example.c`:
54    This example demonstrates the interface to the bsequence (binary sequence)
55    object.  The bsequence object acts like a buffer of bits which are stored
56    and manipulated efficiently in memory.
57
58 * `bufferf_example.c`:
59
60 * `cgsolve_example.c`:
61    Solve linear system of equations `Ax = b` using the conjugate-
62    gradient method where A is a symmetric positive-definite matrix.
63    Compare speed to matrixf_linsolve() for same system.
64
65 * `chromosome_example.c`:
66
67 * `compand_cf_example.c`:
68
69 * `compand_example.c`:
70    This example demonstrates the interface to the compand function
71    (compression, expansion).  The compander is typically used with the
72    quantizer to increase the dynamic range of the converter, particularly for
73    low-level signals.  The transfer function is computed (emperically) and
74    printed to the screen.
75
76 * `complementary_codes_example.c`:
77    This example demonstrates how to generate complementary binary codes
78    in liquid.  A pair of codes is generated using the bsequence
79    interface, their auto-correlations are computed, and the result is
80    summed and printed to the screen.  The results are also printed to
81    an output file, which plots the sequences and their
82    auto-correlations.
83
84    SEE ALSO: `bsequence_example.c`
85              `msequence_example.c`
86
87 * `cpfskmodem_example.c`:
88
89 * `conversion_example.c`:
90
91    This example demonstrates conversion from complex baseband to a real-valued
92    signal, and then down-conversion back to complex baseband while removing the
93    negative image.
94
95     STEP 1: A signal is generated at complex baseband consisting of narrow-band
96             filtered noise and an offset tone (to show asymmetry in the transmit
97             spectrum).
98
99     STEP 2: The signal is mixed up to a carrier 'fc' (relative to the sampling
100             frequency) and the real-component of the result is retained. This is
101             the DAC output. The spectrum of this signal has two images: one at
102             +fc, the other at -fc.
103
104     STEP 3: The DAC output is mixed back down to complex baseband and the lower
105             image is (mostly) filtered off. Reminants of the lower frequency
106             component are still visible due to the wide-band and low-order
107             filter on the receiver. The received complex baseband signal also
108             has a reduction in power by 2 because half the signal's energy (the
109             negative image) is filtered off.
110
111 * `crc_example.c`:
112    Cyclic redundancy check (CRC) example.  This example demonstrates how a
113    CRC can be used to validate data received through un-reliable means (e.g.
114    a noisy channel).  A CRC is, in essence, a strong algebraic error
115    detection code that computes a key on a block of data using base-2
116    polynomials.  Also available is a checksum for data validation.
117
118    SEE ALSO: `fec_example.c`
119
120 * `cvsd_example.c`:
121    Continuously-variable slope delta example, sinusoidal input. This example
122    demonstrates the CVSD audio encoder interface, and its response to a
123    sinusoidal input.  The output distortion ratio is computed, and the
124    time-domain results are written to a file.
125
126 * `dotprod_cccf_example.c`:
127    This example demonstrates the interface to the complex
128    floating-point dot product object (dotprod_cccf).
129
130 * `dotprod_rrrf_example.c`:
131    This example demonstrates the interface to the floating-point dot
132    product object (dotprod_rrrf).
133
134 * `eqlms_cccf_blind_example.c`:
135    This example tests the least mean-squares (LMS) equalizer (EQ) on a
136    signal with an unknown modulation and carrier frequency offset. That
137    is, the equalization is done completely blind of the modulation
138    scheme or its underlying data set. The error estimate assumes a
139    constant modulus linear modulation scheme. This works surprisingly
140    well even more amplitude-modulated signals, e.g. 'qam16'.
141
142 * `eqlms_cccf_block_example.c`:
143    This example tests the least mean-squares (LMS) equalizer (EQ) on a
144    signal with an unknown modulation and carrier frequency offset.
145    Equalization is performed blind on a block of samples and the reulting
146    constellation is output to a file for plotting.
147
148 * `eqlms_cccf_decisiondirected_example.c`:
149    Tests least mean-squares (LMS) equalizer (EQ) on a signal with a known
150    linear modulation scheme, but unknown data. The equalizer is updated
151    using decision-directed demodulator output samples.
152
153 * `eqlms_cccf_example.c`:
154 * `eqrls_cccf_example.c`:
155 * `fct_example.c`:
156
157 * `fec_example.c`:
158    This example demonstrates the interface for forward error-correction (FEC)
159    codes.  A buffer of data bytes is encoded and corrupted with several
160    errors.  The decoder then attempts to recover the original data set.  The
161    user may select the FEC scheme from the command-line interface.
162
163    SEE ALSO: `crc_example.c`
164              `checksum_example.c`
165              `packetizer_example.c`
166
167 * `fec_soft_example.c`:
168    This example demonstrates the interface for forward error-correction
169    (FEC) codes with soft-decision decoding.  A buffer of data bytes is
170    encoded before the data are corrupted with at least one error and
171    noise. The decoder then attempts to recover the original data set
172    from the soft input bits.  The user may select the FEC scheme from
173    the command-line interface.
174
175    SEE ALSO: `fec_example.c`
176              `packetizer_soft_example.c`
177
178 * `fft_example.c`:
179    This example demonstrates the interface to the fast discrete Fourier
180    transform (FFT).
181
182    SEE ALSO: `mdct_example.c`
183              `fct_example.c`
184
185  * `fftfilt_crcf_example.c`
186
187    Complex FFT-based finite impulse response filter example. This example
188    demonstrates the functionality of firfilt by designing a low-order
189    prototype and using it to filter a noisy signal.  The filter coefficients
190    are  real, but the input and output arrays are complex. The filter order
191    and cutoff frequency are specified at the beginning, and the result is
192    compared to the regular corresponding firfilt_crcf output.
193
194    SEE ALSO: `firfilt_crcf_example.c`
195
196 * `firdecim_crcf_example.c`:
197    This example demonstrates the interface to the firdecim (finite
198    impulse response decimator) family of objects.
199    Data symbols are generated and then interpolated according to a
200    finite impulse response square-root Nyquist filter.  The resulting
201    sequence is then decimated with the same filter, matched to the
202    interpolator.
203
204    SEE ALSO: `firinterp_crcf_example.c`
205
206 * `firdes_kaiser_example.c`:
207    This example demonstrates finite impulse response filter design using a
208    Kaiser window.
209
210    SEE ALSO: `firdespm_example.c`
211
212 * `firdespm_example.c`:
213    This example demonstrates finite impulse response filter design using the
214    Parks-McClellan algorithm.
215
216    SEE ALSO: `firdes_kaiser_example.c`
217
218 * `firfarrow_rrrf_sine_example.c`:
219
220 * `firfilt_rrrf_example.c`:
221
222 * `firfilt_cccf_example.c`:
223    This example demonstrates the finite impulse response (FIR) filter
224    with complex coefficients as a cross-correlator between transmitted
225    and received sequences.
226
227 * `firfilt_crcf_example.c`:
228    Complex finite impulse response filter example. Demonstrates the
229    functionality of firfilt by designing a low-order prototype and using it
230    to filter a noisy signal.  The filter coefficients are real, but the
231    input and output arrays are complex. The filter order and cutoff
232    frequency are specified at the beginning.
233
234 * `firhilb_decim_example.c`:
235    Hilbert transform: 2:1 real-to-complex decimator.  This example
236    demonstrates the functionality of firhilb (finite impulse response Hilbert
237    transform) decimator which converts a real time series into a complex one
238    with half the number of samples.  The input is a real-valued sinusoid of N
239    samples. The output is a complex-valued sinusoid of N/2 samples.
240
241    SEE ALSO: `firhilb_interp_example.c`
242
243 * `firhilb_example.c`:
244
245 * `firhilb_interp_example.c`:
246    Hilbert transform: 1:2 complex-to-real interpolator.  This example
247    demonstrates the functionality of firhilb (finite impulse response Hilbert
248    transform) interpolator which converts a complex time series into a real
249    one with twice the number of samples.  The input is a complex-valued
250    sinusoid of N samples. The output is a real-valued sinusoid of 2*N
251    samples.
252
253    SEE ALSO: `firhilb_decim_example.c`
254
255 * `firpfbch2_crcf_example.c`:
256    Example of the finite impulse response (FIR) polyphase filterbank
257    (PFB) channelizer with an output rate of 2 Fs / M as an (almost)
258    perfect reconstructive system.
259
260 * `firinterp_crcf_example.c`:
261    This example demonstrates the interp object (interpolator)
262    interface. Data symbols are generated and then interpolated
263    according to a finite impulse response Nyquist filter.
264
265 * `firpfbch_crcf_analysis_example.c`:
266    Example of the analysis channelizer filterbank. The input signal is
267    comprised of several signals spanning different frequency bands. The
268    channelizer downconverts each to baseband (maximally decimated), and
269    the resulting spectrum of each is plotted.
270
271 * `firpfbch_crcf_example.c`:
272    Finite impulse response (FIR) polyphase filter bank (PFB)
273    channelizer example.  This example demonstrates the functionality of
274    the polyphase filter bank channelizer and how its output is
275    mathematically equivalent to a series of parallel down-converters
276    (mixers/decimators). Both the synthesis and analysis filter banks
277    are presented.
278
279 * `firpfbch_crcf_synthesis_example.c`:
280    Example of the synthesis channelizer filterbank.  Random symbols are
281    generated and loaded into the bins of the channelizer and the
282    time-domain signal is synthesized.  Subcarriers around the band
283    edges are disabled as well as those near 0.25 to demonstrate the
284    synthesizer's ability to efficiently notch the spectrum. The results
285    are printed to a file for plotting.
286
287 * `flexframesync_example.c`:
288    This example demonstrates the basic interface to the flexframegen and
289    flexframesync objects used to completely encapsulate raw data bytes
290    into frame samples (nearly) ready for over-the-air transmission. A
291    14-byte header and variable length payload are encoded into baseband
292    symbols using the flexframegen object.  The resulting symbols are
293    interpolated using a root-Nyquist filter and the resulting samples are
294    then fed into the flexframesync object which attempts to decode the
295    frame. Whenever frame is found and properly decoded, its callback
296    function is invoked.
297
298 * `flexframesync_reconfig_example.c`:
299    Demonstrates the reconfigurability of the flexframegen and
300    flexframesync objects.
301
302 * `framesync64_example.c`:
303    This example demonstrates the interfaces to the framegen64 and
304    framesync64 objects used to completely encapsulate data for
305    over-the-air transmission.  A 24-byte header and 64-byte payload are
306    encoded, modulated, and interpolated using the framegen64 object.
307    The resulting complex baseband samples are corrupted with noise and
308    moderate carrier frequency and phase offsets before the framesync64
309    object attempts to decode the frame.  The resulting data are
310    compared to the original to validate correctness.
311
312    SEE ALSO: `flexframesync_example.c`
313
314 * `freqmodem_example.c`:
315
316 * `fskmodem_example.c`:
317    This example demostrates the M-ary frequency-shift keying
318    (MFSK) modem in liquid. A message signal is modulated and the
319    resulting signal is recovered using a demodulator object.
320
321 * `gasearch_example.c`:
322
323 * `gasearch_knapsack_example.c`:
324
325 * `gmskmodem_example.c`:
326
327 * `gradsearch_example.c`:
328
329 * `gradsearch_datafit_example.c`:
330    Fit 3-parameter curve to sampled data set in the minimum
331    mean-squared error sense.
332
333 * `iirdes_analog_example.c`:
334    Tests infinite impulse reponse (IIR) analog filter design. While this
335    example seems purely academic as IIR filters used in liquid are all
336    digital, it is important to realize that they are all derived from their
337    analog counterparts. This example serves to check the response of the
338    analog filters to ensure they are correct.  The results of design are
339    written to a file.
340
341    SEE ALSO: `iirdes_example.c`
342              `iirfilt_crcf_example.c`
343
344 * `iirdes_example.c`:
345    Tests infinite impulse reponse (IIR) digital filter design.
346
347    SEE ALSO: `iirdes_analog_example.c`
348              `iirfilt_crcf_example.c`
349
350 * `iirdes_pll_example.c`:
351    This example demonstrates 2nd-order IIR phase-locked loop filter
352    design with a practical simulation.
353
354    SEE ALSO: `nco_pll_example.c`
355              `nco_pll_modem_example.c`
356
357 * `iirfilt_cccf_example.c`:
358    Complex infinite impulse response filter example. Demonstrates the
359    functionality of iirfilt with complex coefficients by designing a
360    filter with specified parameters and then filters noise.
361
362 * `iirfilt_crcf_example.c`:
363    Complex infinite impulse response filter example. Demonstrates the
364    functionality of iirfilt by designing a low-order prototype (e.g.
365    Butterworth) and using it to filter a noisy signal.  The filter
366    coefficients are real, but the input and output arrays are complex.  The
367    filter order and cutoff frequency are specified at the beginning.
368
369 * `iirinterp_crcf_example.c`:
370    This example demonstrates the iirinterp object (IIR interpolator)
371    interface.
372
373 * `interleaver_example.c`:
374    This example demonstrates the functionality of the liquid interleaver
375    object.  Interleavers serve to distribute  grouped bit errors evenly
376    throughout a block of data. This aids certain forward error-correction
377    codes in correcting bit errors.  In this example, data bits are
378    interleaved and de-interleaved; the resulting sequence is validated to
379    match the original.
380
381    SEE ALSO: `packetizer_example.c`
382
383 * `interleaver_scatterplot_example.c`:
384
385 * `interleaver_soft_example.c`:
386
387 * `kbd_window_example.c`:
388
389 * `lpc_example.c`:
390    This example demonstrates linear prediction in liquid. An input signal
391    is generated which exhibits a strong temporal correlation. The linear
392    predictor generates an approximating all-pole filter which minimizes
393    the squared error between the prediction and the actual output.
394
395 * `matched_filter_example.c`:
396
397 * `math_lngamma_example.c`:
398    Demonstrates accuracy of lngamma function.
399
400 * `mdct_example.c`:
401
402 * `modem_arb_example.c`:
403    This example demonstrates the functionality of the arbitrary modem, a
404    digital modulator/demodulator object with signal constellation points
405    chosen arbitrarily.  A simple bit-error rate simulation is then run to
406    test the performance of the modem.  The results are written to a file.
407
408    SEE ALSO: `modem_example.c`
409
410 * `modem_example.c`:
411    This example demonstates the digital modulator/demodulator (modem) object.
412    Data symbols are modulated into complex samples which are then demodulated
413    without noise or phase offsets.  The user may select the modulation scheme
414    via the command-line interface.
415
416    SEE ALSO: `modem_arb_example.c`
417
418 * `modem_soft_example.c`:
419    This example demonstates soft demodulation of linear
420    modulation schemes.
421
422 * `modular_arithmetic_example.c`:
423    This example demonstates some modular arithmetic functions.
424
425 * `msequence_example.c`:
426    This example demonstrates the auto-correlation properties of a
427    maximal-length sequence (m-sequence).  An m-sequence of a certain length
428    is used to generate two binary sequences (buffers) which are then
429    cross-correlated.  The resulting correlation produces -1 for all values
430    except at index zero, where the sequences align.
431
432    SEE ALSO: `bsequence_example.c`
433
434 * `msourcecf_example.c`:
435    This example demonstrates generating multiple signal sources simultaneously
436    for testing using the msource (multi-source) family of objects.
437
438 * `msresamp_crcf_example.c`:
439    Demonstration of the multi-stage arbitrary resampler.
440
441 * `msresamp2_crcf_example.c`:
442    Demonstration of the multi-stage half-band resampler.
443
444 * `nco_example.c`:
445    This example demonstrates the most basic functionality of the
446    numerically-controlled oscillator (NCO) object.
447
448    SEE ALSO: `nco_pll_example.c`
449              `nco_pll_modem_example.c`
450
451 * `nco_pll_example.c`:
452    This example demonstrates how the use the nco/pll object
453    (numerically-controlled oscillator with phase-locked loop) interface for
454    tracking to a complex sinusoid.  The loop bandwidth, phase offset, and
455    other parameter can be specified via the command-line interface.
456
457    SEE ALSO: `nco_example.c`
458              `nco_pll_modem_example.c`
459
460 * `nco_pll_modem_example.c`:
461    This example demonstrates how the nco/pll object (numerically-controlled
462    oscillator with phase-locked loop) can be used for carrier frequency
463    recovery in digital modems.  The modem type, SNR, and other parameters are
464    specified via the command-line interface.
465
466    SEE ALSO: `nco_example.c`
467              `nco_pll_example.c`
468
469 * `nyquist_filter_example.c`:
470 * `ofdmflexframesync_example.c`:
471 * `ofdmframegen_example.c`:
472 * `ofdmframesync_example.c`:
473
474 * `packetizer_example.c`:
475    Demonstrates the functionality of the packetizer object.  Data are encoded
476    using two forward error-correction schemes (an inner and outer code)
477    before data errors are introduced.  The decoder then tries to recover the
478    original data message.
479
480    SEE ALSO: `fec_example.c`
481              `crc_example.c`
482
483 * `packetizer_soft_example.c`:
484    This example demonstrates the functionality of the packetizer object
485    for soft-decision decoding.  Data are encoded using two forward error-
486    correction schemes (an inner and outer code) before noise and data
487    errors are added. The decoder then tries to recover the original data
488    message. Only the outer code uses soft-decision decoding.
489
490    SEE ALSO: `fec_soft_example.c`
491              `packetizer_example.c`
492
493 * `pll_example.c`:
494    Demonstrates a basic phase-locked loop to track the phase of a
495    complex sinusoid.
496
497 * `poly_findroots_example.c`:
498
499 * `polyfit_example.c`:
500    Test polynomial fit to sample data.
501
502    SEE ALSO: `polyfit_lagrange_example.c`
503
504 * `polyfit_lagrange_example.c`:
505    Test exact polynomial fit to sample data using Lagrange interpolating
506    polynomials.
507
508    SEE ALSO: `polyfit_example.c`
509
510 * `qdetector_cccf_example.c`:
511    This example demonstrates the functionality of the qdetector object
512    to detect an arbitrary signal in time in the presence of noise,
513    carrier frequency/phase offsets, and fractional-sample timing
514    offsets.
515
516 * `qpacketmodem_example.c`:
517    This example demonstrates the basic packet modem encoder/decoder
518    operation. A packet of data is encoded and modulated into symbols,
519    channel noise is added, and the resulting packet is demodulated
520    and decoded.
521
522 * `qnsearch_example.c`:
523
524 * `quantize_example.c`:
525
526 * `random_histogram_example.c`:
527    This example tests the random number generators for different
528    distributions.
529
530 * `repack_bytes_example.c`:
531    This example demonstrates the repack_bytes() interface by packing a
532    sequence of three 3-bit symbols into five 2-bit symbols.  The
533    results are printed to the screen.  Because the total number of bits
534    in the input is 9 and not evenly divisible by 2, the last of the 5
535    output symbols has a zero explicitly padded to the end.
536
537  * `resamp2_cccf_example.c`
538    This example demonstrates the halfband resampler cenetered at the
539    quarter sample rate to split the signal into positive and negative
540    frequency bands. Two distinct narrow-band signals are generated; one
541    at a positive frequency and one at a negative frequency. The resamp2
542    object is run as a filter to separate the two about the zero-
543    frequency center point.
544
545 * `resamp2_crcf_example.c`:
546    This example demonstrates the halfband resampler running as both an
547    interpolator and a decimator. A narrow-band signal is first
548    interpolated by a factor of 2, and then decimated. The resulting RMS
549     error between the final signal and original is computed and printed
550    to the screen.
551
552 * `resamp2_crcf_decim_example.c`:
553    Halfband decimator.  This example demonstrates the interface to the
554    decimating halfband resampler.  A low-frequency input sinusoid is
555    generated and fed into the decimator two samples at a time, producing one
556    output at each iteration.  The results are written to an output file.
557
558    SEE ALSO: `resamp2_crcf_interp_example.c`
559              `decim_rrrf_example.c`
560
561 * `resamp2_crcf_filter_example.c`:
562    Halfband (two-channel) filterbank example. This example demonstrates
563    the analyzer/synthesizer execute() methods for the resamp2_xxxt
564    family of objects.
565
566    NOTE: The filterbank is not a perfect reconstruction filter; a
567          significant amount of distortion occurs in the transition band
568          of the half-band filters.
569
570 * `resamp2_crcf_interp_example.c`:
571    Halfband interpolator.  This example demonstrates the interface to the
572    interpolating halfband resampler.  A low-frequency input sinusoid is
573    generated and fed into the interpolator one sample at a time, producing
574    two outputs at each iteration.  The results are written to an output file.
575
576    SEE ALSO: `resamp2_crcf_decim_example.c`
577              `interp_crcf_example.c`
578
579 * `resamp_crcf_example.c`:
580
581 * `scramble_example.c`:
582    Data-scrambling example.  Physical layer synchronization of received
583    waveforms relies on independent and identically distributed underlying
584    data symbols.  If the message sequence, however, is '00000....' and the
585    modulation scheme is BPSK, the synchronizer probably won't be able to
586    recover the symbol timing.  It is imperative to increase the entropy of
587    the data for this to happen.  The data scrambler routine attempts to
588    'whiten' the data sequence with a bit mask in order to achieve maximum
589    entropy.  This example demonstrates the interface.
590
591 * `smatrix_example.c`:
592
593 * `spgramcf_example.c`:
594   Spectral periodogram example with complex inputs.
595
596 * `spgramf_example.c`:
597   Spectral periodogram example with real inputs.
598
599 * `symsync_crcf_example.c`:
600    This example demonstrates the basic principles of the symbol timing
601    recovery family of objects, specifically symsync_crcf. A set of random
602    QPSK symbols are generated and interpolated with a timing offset. The
603    resulting signal is run through the symsync_crcf object which applies a
604    matched filter and recovers timing producing a clean constellation.
605
606 * `symsync_crcf_full_example.c`:
607    This example extends that of `symsync_crcf_example.c` by including options
608    for simulating a timing rate offset in addition to just a timing phase
609    error. The resulting output file shows not just the constellation but the
610    time domain sequence as well as the timing phase estimate over time.
611
612 * `symsync_crcf_kaiser_example.c`:
613    This is a simplified example of the symync family of objects to show how
614    symbol timing can be recovered after the matched filter output.
615
616  * `symtrack_cccf_example.c`:
617
618    This example demonstrates how to recover data symbols using the symtrack
619    object. A stream of modulated and interpolated symbols are generated using
620    the symstream object. The resulting samples are passed through a channel
621    to add various impairments. The symtrack object recovers timing, carrier,
622    and other information imparted by the channel and returns data symbols
623    ready for demodulation.
624
625 * `wdelayf_example.c`:
626
627 * `windowf_example.c`:
628    This example demonstrates the functionality of a window buffer (also
629    known as a circular or ring buffer) of floating-point values.
630    Values are written to and read from the buffer using several
631    different methods.
632
633    SEE ALSO: `bufferf_example.c`
634              `wdelayf_example.c`
635
636