Example Code

Multivariable Polynomial Matrix Spectral Factorization

Code and Documents

Attachment

Overview

This program solves the polynomial matrix spectral factorization problem.


Introduction

The multivariable spectral factorization problem can be mathematically defined as follows:

Given

A(z^-1)A'(z)+R = D(z^-1)R~D'(z) ,

where

A(z^-1)=A0+A1z^-1+A2z^-2

R is a matrix and ' is transpose,

we find the polynomial matrix spectral factor:

D(z^-1)=D0+D1z^-1+D2z^-2

using feedback. This algorithm is useful for optimal Wiener filtering problems and H infinity filtering/control.

2.jpg

The example VI shows the original zeros of A and the zeros of the spectral factor D. When R=0 the two sets of zeros will of course coincide (except in the case when A has non-minimum phase terms in which case any non-minimum phase zeros get reflected back inside the unit circle of the z-plane).

Steps to Implement or Execute Code

1. Open msfact.llb

2. Run the main.vi

Requirements

Software

LabVIEW 8.6 or newer

Hardware

N/A

Additional Notes

See A control theoretical approach to the multivariable spectral factorization problem for more details.

**This document has been updated to meet the current required format for the NI Code Exchange. For more details visit this discussion thread**

Example code from the Example Code Exchange in the NI Community is licensed with the MIT license.

Contributors