⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 polyphas.h

📁 FIR2LIFT is a program to factor a wavelet FIR filter pair into lifting steps.
💻 H
字号:
/*
FILE : POLYPHAS.H

Routines to handle polyphase matrices, a matrix that holds (Laurent) 
polynomials in z. This implementation only handles 2x2 matrices.

(C) C. Valens

Created     : 14/09/1999
Last update : 23/09/1999
*/


#ifndef __POLYPHASE_H__
#define __POLYPHASE_H__


#include "zpoly.h"


/*
 * A polyphase matrix is a 2x2 matrix that holds polynomials in z.
 */
typedef struct __polyphase_matrix {
  zpoly_pair row1;
  zpoly_pair row2;
} polyphase_matrix;


/*
 * Write a polyphase pair to the output stream.
 */
void polyphase_write(zpoly_pair evenodd);

/*
 * Split a zpoly into its polyphase components.
 */
zpoly_pair polyphase_split(zpoly *poly);

/*
 * Merge two polyphase components into a new zpoly.
 */
zpoly *polyphase_merge(zpoly_pair evenodd);

/*
 * Build a polyphase matrix from two zpolies.
 */
polyphase_matrix polyphase_matrix_build(zpoly_pair evenodd);

/*
 * Decomposes a polyphase matrix into two zpolies.
 */
zpoly_pair polyphase_matrix_decompose(polyphase_matrix m);

/*
 * Destroy a polyphase matrix.
 */
void polyphase_matrix_destroy(polyphase_matrix m);

/*
 * Write a polyphase pair to the output stream.
 */
void polyphase_matrix_write(polyphase_matrix m);

/*
 * Returns 1 if m1 is identical to m2, returns 0 if not.
 */
int polyphase_matrix_equal(polyphase_matrix m1, polyphase_matrix m2);

/*
 * Calculates the determinant of m.
 */
zpoly *polyphase_matrix_determinant(polyphase_matrix m);

/*
 * Create a copy of m.
 */
polyphase_matrix polyphase_matrix_copy(polyphase_matrix m);

/*
 * Transposes m.
 */
polyphase_matrix polyphase_matrix_transpose(polyphase_matrix m);

/*
 * Returns the inverse of m.
 */
polyphase_matrix polyphase_matrix_inverse(polyphase_matrix m);

/*
 * Returns a matrix that holds m1*m2.
 */
polyphase_matrix polyphase_matrix_mul(polyphase_matrix m1, polyphase_matrix m2);

/*
 * Multiplies all elements of m by poly.
 */
polyphase_matrix polyphase_matrix_scale(polyphase_matrix m, zpoly *poly);

/*
 * Reverses the exponent ordering of all elements of m.
 * If reverse_time==1 all exponents will be negated.
 */
polyphase_matrix polyphase_matrix_reverse(polyphase_matrix m, int reverse_time);


#endif /* __POLYPHASE_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -