Contents

dsp.AdaptiveLatticeFilter System object

Package: dsp

Adaptive lattice filter

Description

The dsp.AdaptiveLatticeFilter computes output, error, and coefficients using a Lattice based FIR adaptive filter.

To implement the adaptive FIR filter object:

  1. Define and set up your adaptive FIR filter object. See Construction.

  2. Call step to implement the filter according to the properties of dsp.AdaptiveLatticeFilter. The behavior of step is specific to each object in the toolbox.

Construction

H = dsp.AdaptiveLatticeFilter returns a Lattice based FIR adaptive filter System object™, H. This System object is used to compute the filtered output and the filter error for a given input and desired signal.

H = dsp.AdaptiveLatticeFilter('PropertyName', PropertyValue,...) returns an AdaptiveLatticeFilter System object, H, with each specified property set to the specified value.

H = dsp.AdaptiveLatticeFilter(LEN,'PropertyName',PropertyValue,...) returns an AdaptiveLatticeFilter System object, H, with the Length property set to LEN and other specified properties set to the specified values.

Properties

Method

Method to calculate filter coefficients

Specify the method used to calculate filter coefficients as one of 'Least-squares Lattice' |'QR-decomposition Least-squares Lattice' |'Gradient Adaptive Lattice' . The default value is 'Least-squares Lattice'. For algorithms used to implement these three different methods, refer to [1] [2]. This property is nontunable.

Length

Length of the filter coefficients vector

Specify the length of the FIR filter coefficients vector as a positive integer value. This property is nontunable.

The default value is 32.

ForgettingFactor

Least-squares lattice forgetting factor

Specify the Least-squares lattice forgetting factor as a scalar positive numeric value less than or equal to 1. Setting this value to 1 denotes infinite memory during adaptation. This property applies only if the Method property is set to 'Least-squares Lattice' or 'QR-decomposition Least-squares Lattice'. The default value is 1.

StepSize

Joint process step size of the gradient adaptive filter

Specify the joint process step size of the gradient adaptive lattice filter as a positive numeric scalar less than or equal to 1. This property applies only if the Method property is set to 'Gradient Adaptive Lattice'. The default value is 0.1.

Offset

Offset for denominator of StepSize normalization term

Specify an offset value for the denominator of the StepSize normalization term as a nonnegative numeric scalar. A nonzero offset helps avoid a divide-by-near-zero condition when the input signal amplitude is very small. This property applies only if the Method property is set to 'Gradient Adaptive Lattice'. The default value is 1.

ReflectionStepSize

Reflection process step size

Specify the reflection process step size of the gradient adaptive lattice filter as a scalar numeric value between 0 and 1, both inclusive. Use this property only if the Method property is set to 'Gradient Adaptive Lattice'. The default value is the StepSize property value.

AveragingFactor

Averaging factor of the energy estimator

Specify the averaging factor as a positive numeric scalar less than 1. Use this property to compute the exponentially windowed forward and backward prediction error powers for the coefficient updates. This property applies only if the Method property is set to 'Gradient Adaptive Lattice. The default is the value of 1 - StepSize.

InitialPredictionErrorPower

Initial prediction error power

Specify the initial values for the prediction error vectors as a scalar positive numeric value.

If the Method property is set to 'Least-squares Lattice' or 'QR-decomposition Least-squares Lattice', the default value is 1.0. If the Method property is set to 'Gradient Adaptive Lattice', the default value is 0.1.

InitialCoefficients

Initial coefficients of the filter

Specify the initial values of the FIR adaptive filter coefficients as a scalar or a vector of length equal to the value of the Length property. The default value is 0.

LockCoefficients

Locked status of the coefficient updates

Specify whether to lock the filter coefficient values. By default, the value of this property is false, and the object continuously updates the filter coefficients. If this property is set to true, the filter coefficients do not update and their values remain the same.

This property is applicable only if the Method property is set to 'Gradient Adaptive Lattice'.

Methods

cloneCreate Adaptive Lattice filter object with same property values
isLockedLocked status for input attributes and nontunable properties
msesimMean-square error for Adaptive Lattice filter
releaseAllow property value and input characteristics changes
resetReset filter states for Adaptive Lattice filter
stepApply Adaptive Lattice filter to input

Examples

QPSK adaptive equalization with FIR filter

Create the QPSK signal and the noise, filter them to obtain the received signal, and delay the received signal to obtain the desired signal:

D = 16;
b = exp(1i*pi/4)*[-0.7 1];
a = [1 -0.7];
ntr = 1000;
s = sign(randn(1,ntr+D)) + 1i*sign(randn(1,ntr+D));
n = 0.1*(randn(1,ntr+D) + 1i*randn(1,ntr+D));
r = filter(b,a,s) + n;
x = r(1+D:ntr+D);
d = s(1:ntr);

Use the Adaptive Lattice Filter to compute the filtered output and the filter error for the input and desired signal:

lam = 0.995;
del = 1;
h = dsp.AdaptiveLatticeFilter('Length', 32, ...
    'ForgettingFactor', lam, 'InitialPredictionErrorPower', del);
[y,e] = step(h,x,d);

Plot the In-Phase and the Quadrature components of the desired, output, and the error signals:

subplot(2,2,1); plot(1:ntr,real([d;y;e]));
title('In-Phase Components');
legend('Desired','Output','Error');
xlabel('time index'); ylabel('signal value');
subplot(2,2,2); plot(1:ntr,imag([d;y;e]));
title('Quadrature Components');
legend('Desired','Output','Error');
xlabel('time index'); ylabel('signal value');

Plot the received and equalized signals' scatter plots:

subplot(2,2,3); plot(x(ntr-100:ntr),'.'); axis([-3 3 -3 3]);
title('Received Signal Scatter Plot'); axis('square'); 
xlabel('Real[x]'); ylabel('Imag[x]'); grid on;
subplot(2,2,4); plot(y(ntr-100:ntr),'.'); axis([-3 3 -3 3]);
title('Equalized Signal Scatter Plot'); axis('square');
xlabel('Real[y]'); ylabel('Imag[y]'); grid on;

References

[1] Griffiths, Lloyd J. "A Continuously Adaptive Filter Implemented as a Lattice Structure". Proceedings of IEEE Int. Conf. on Acoustics, Speech, and Signal Processing, Hartford, CT, pp. 683–686, 1977 .

[2] Haykin, S. Adaptive Filter Theory, 4th Ed. Upper Saddle River, NJ: Prentice Hall, 1996.

Was this topic helpful?