📄 oqfs.h
字号:
#ifndef OQFS_H#define OQFS_H#include "common.h"#include <math.h>/*#define M_SQRT2 (1.4142135623730950488) *//* sqrt(2.0) */#define SR3 (1.7320508075688772935) /* sqrt(3.0) */#define SR10 (3.1622776601683793320) /* sqrt(10.0) */#define SR15 (3.8729833462074168852) /* sqrt(15.0) */#define A (2.6613644236006609279) /* (1/4)sqrt(2)[1+sqrt(10)+sqrt(5+2sqrt(10))] */#define B (0.2818103350856762928) /* 3.0*0.25/A *//**************************************************************** * Orthogonal quadrature mirror filters * * Sources: * * Gregory Beylkin * Ronald R. Coifman * Ingrid Daubechies * P. P. Vaidyanathan *//******************* Beylkin 18 ********************/static real b18soqf[18] = { 9.93057653743539270E-02, 4.24215360812961410E-01, 6.99825214056600590E-01, /* Maximum absolute value */ 4.49718251149468670E-01, -1.10927598348234300E-01, -2.64497231446384820E-01, 2.69003088036903200E-02, 1.55538731877093800E-01, -1.75207462665296490E-02, -8.85436306229248350E-02, 1.96798660443221200E-02, 4.29163872741922730E-02, -1.74604086960288290E-02, -1.43658079688526110E-02, 1.00404118446319900E-02, 1.48423478247234610E-03, -2.73603162625860610E-03, 6.40485328521245350E-04 };static int b18salpha = 0, b18somega = 17;static real b18doqf[18] = { 6.40485328521245350E-04, 2.73603162625860610E-03, 1.48423478247234610E-03, -1.00404118446319900E-02, -1.43658079688526110E-02, 1.74604086960288290E-02, 4.29163872741922730E-02, -1.96798660443221200E-02, -8.85436306229248350E-02, 1.75207462665296490E-02, 1.55538731877093800E-01, -2.69003088036903200E-02, -2.64497231446384820E-01, 1.10927598348234300E-01, 4.49718251149468670E-01, -6.99825214056600590E-01, /* Maximum absolute value */ 4.24215360812961410E-01, -9.93057653743539270E-02 };static int b18dalpha = 0, b18domega = 17;/******************* Coifman 6 ********************/static real c06soqf[6] = { ((SR15-3.0)/32.0)*M_SQRT2, /* 3.85807777478867490E-02, */ ((1.0-SR15)/32.0)*M_SQRT2, /* -1.26969125396205200E-01, */ ((3.0-SR15)/16.0)*M_SQRT2, /* -7.71615554957734980E-02, */ ((SR15+3.0)/16.0)*M_SQRT2, /* 6.07491641385684120E-01, */ ((SR15+13.0)/32.0)*M_SQRT2, /* 7.45687558934434280E-01, */ ((9.0-SR15)/32.0)*M_SQRT2 /* 2.26584265197068560E-01 */ };static int c06salpha = 0, c06somega = 5;static real c06doqf[6] = { ((9.0-SR15)/32.0)*M_SQRT2, /* 2.26584265197068560E-01, */ (-(SR15+13.0)/32.0)*M_SQRT2, /* -7.45687558934434280E-01, */ ((SR15+3.0)/16.0)*M_SQRT2, /* 6.07491641385684120E-01, */ ((SR15-3.0)/16.0)*M_SQRT2, /* 7.71615554957734980E-02, */ ((1.0-SR15)/32.0)*M_SQRT2, /* -1.26969125396205200E-01, */ ((3.0-SR15)/32.0)*M_SQRT2, /* 3.85807777478867490E-02 */ };static int c06dalpha = 0, c06domega = 5;/******************* Coifman 12 ********************/static real c12soqf[12] = { 1.63873364631797850E-02, -4.14649367819664850E-02, -6.73725547222998740E-02, 3.86110066823092900E-01, 8.12723635449606130E-01, /* Maximum absolute value */ 4.17005184423777600E-01, -7.64885990782645940E-02, -5.94344186464712400E-02, 2.36801719468767500E-02, 5.61143481936598850E-03, -1.82320887091009920E-03, -7.20549445368115120E-04 };static int c12salpha = 0, c12somega = 11;static real c12doqf[12] = { -7.20549445368115120E-04, 1.82320887091009920E-03, 5.61143481936598850E-03, -2.36801719468767500E-02, -5.94344186464712400E-02, 7.64885990782645940E-02, 4.17005184423777600E-01, -8.12723635449606130E-01, /* Maximum absolute value */ 3.86110066823092900E-01, 6.73725547222998740E-02, -4.14649367819664850E-02, -1.63873364631797850E-02 };static int c12dalpha = 0, c12domega = 11;/******************* Coifman 18 ********************/static real c18soqf[18] = { -3.79351286437787590E-03, 7.78259642567078690E-03, 2.34526961421191030E-02, -6.57719112814312280E-02, -6.11233900029556980E-02, 4.05176902409616790E-01, 7.93777222625620340E-01, /* Maximum absolute value */ 4.28483476377618690E-01, -7.17998216191705900E-02, -8.23019271063202830E-02, 3.45550275733444640E-02, 1.58805448636159010E-02, -9.00797613673228960E-03, -2.57451768812796920E-03, 1.11751877082696180E-03, 4.66216959820144030E-04, -7.09833025057049280E-05, -3.45997731974026950E-05 };static int c18salpha = 0, c18somega = 17;static real c18doqf[18] = { -3.45997731974026950E-05, 7.09833025057049280E-05, 4.66216959820144030E-04, -1.11751877082696180E-03, -2.57451768812796920E-03, 9.00797613673228960E-03, 1.58805448636159010E-02, -3.45550275733444640E-02, -8.23019271063202830E-02, 7.17998216191705900E-02, 4.28483476377618690E-01, -7.93777222625620340E-01, /* Maximum absolute value */ 4.05176902409616790E-01, 6.11233900029556980E-02, -6.57719112814312280E-02, -2.34526961421191030E-02, 7.78259642567078690E-03, 3.79351286437787590E-03 };static int c18dalpha = 0, c18domega = 17;/******************* Coifman 24 ********************/static real c24soqf[24] = { 8.92313668220275710E-04, -1.62949201311084900E-03, -7.34616632765623490E-03, 1.60689439640692360E-02, 2.66823001556288040E-02, -8.12666996803130540E-02, -5.60773133164719500E-02, 4.15308407030430150E-01, 7.82238930920498790E-01, /* Maximum absolute value */ 4.34386056491468390E-01, -6.66274742630007520E-02, -9.62204420335636970E-02, 3.93344271229132190E-02, 2.50822618451469330E-02, -1.52117315272391490E-02, -5.65828668594603800E-03, 3.75143615692490270E-03, 1.26656192867951870E-03, -5.89020756811437840E-04, -2.59974552319421750E-04, 6.23390338657646180E-05, 3.12298760780433580E-05, -3.25968044485761290E-06, -1.78498455869993380E-06 };static int c24salpha = 0, c24somega = 23;static real c24doqf[24] = { -1.78498455869993380E-06, 3.25968044485761290E-06, 3.12298760780433580E-05, -6.23390338657646180E-05, -2.59974552319421750E-04, 5.89020756811437840E-04, 1.26656192867951870E-03, -3.75143615692490270E-03, -5.65828668594603800E-03, 1.52117315272391490E-02, 2.50822618451469330E-02, -3.93344271229132190E-02, -9.62204420335636970E-02, 6.66274742630007520E-02, 4.34386056491468390E-01, -7.82238930920498790E-01, /* Maximum absolute value */ 4.15308407030430150E-01, 5.60773133164719500E-02, -8.12666996803130540E-02, -2.66823001556288040E-02, 1.60689439640692360E-02, 7.34616632765623490E-03, -1.62949201311084900E-03, -8.92313668220275710E-04 };static int c24dalpha = 0, c24domega = 23;/******************* Coifman 30 ********************/static real c30soqf[30] = { -2.12080863336306810E-04, 3.58589677255698600E-04, 2.17823630484128470E-03, -4.15935878160399350E-03, -1.01311175380455940E-02, 2.34081567615927950E-02, 2.81680290621414970E-02, -9.19200105488064130E-02, -5.20431632162377390E-02, 4.21566206728765440E-01, 7.74289603740284550E-01, /* Maximum absolute value. */ 4.37991626228364130E-01, -6.20359639056089690E-02, -1.05574208705835340E-01, 4.12892087407341690E-02, 3.26835742832495350E-02, -1.97617790117239590E-02, -9.16423115304622680E-03, 6.76418541866332000E-03, 2.43337320922405380E-03, -1.66286376908581340E-03, -6.38131296151377520E-04, 3.02259519791840680E-04, 1.40541148901077230E-04, -4.13404844919568560E-05, -2.13150140622449170E-05, 3.73459674967156050E-06, 2.06380639023316330E-06, -1.67408293749300630E-07, -9.51579170468293560E-08 };static int c30salpha = 0, c30somega = 29;static real c30doqf[30] = { -9.51579170468293560E-08, 1.67408293749300630E-07, 2.06380639023316330E-06, -3.73459674967156050E-06, -2.13150140622449170E-05, 4.13404844919568560E-05, 1.40541148901077230E-04, -3.02259519791840680E-04, -6.38131296151377520E-04, 1.66286376908581340E-03, 2.43337320922405380E-03, -6.76418541866332000E-03, -9.16423115304622680E-03, 1.97617790117239590E-02, 3.26835742832495350E-02, -4.12892087407341690E-02, -1.05574208705835340E-01, 6.20359639056089690E-02, 4.37991626228364130E-01, -7.74289603740284550E-01, /* Maximum absolute value. */ 4.21566206728765440E-01, 5.20431632162377390E-02, -9.19200105488064130E-02, -2.81680290621414970E-02, 2.34081567615927950E-02, 1.01311175380455940E-02, -4.15935878160399350E-03, -2.17823630484128470E-03, 3.58589677255698600E-04, 2.12080863336306810E-04 };static int c30dalpha = 0, c30domega = 29;/******************* Daubechies 2 ********************/static real d02soqf[2] = { (0.5)*M_SQRT2, /* 0.707106781186547, */ (0.5)*M_SQRT2, /* 0.707106781186547 */ };static int d02salpha = 0, d02somega = 1;static real d02doqf[2] = { (0.5)*M_SQRT2, /* 0.707106781186547, */ (-0.5)*M_SQRT2, /* -0.707106781186547 */ };static int d02dalpha = 0, d02domega = 1;/******************* Daubechies 4 ********************/static real d04soqf[4] = { (1.0+SR3)/(4.0*M_SQRT2), /* 4.82962913144534160E-01, */ (3.0+SR3)/(4.0*M_SQRT2), /* 8.36516303737807940E-01, */ (3.0-SR3)/(4.0*M_SQRT2), /* 2.24143868042013390E-01, */ (1.0-SR3)/(4.0*M_SQRT2) /* -1.29409522551260370E-01 */ };static int d04salpha = 0, d04somega = 3;static real d04doqf[4] = { (1.0-SR3)/(4.0*M_SQRT2), /* -1.29409522551260370E-01, */ (SR3-3.0)/(4.0*M_SQRT2), /* -2.24143868042013390E-01, */ (3.0+SR3)/(4.0*M_SQRT2), /* 8.36516303737807940E-01, */ -(1.0+SR3)/(4.0*M_SQRT2) /* -4.82962913144534160E-01 */ };static int d04dalpha = 0, d04domega = 3;/******************* Daubechies 6 ********************/static real d06soqf[6] = { 0.125*A, /* 3.32670552950082630E-01, */ 0.125*(M_SQRT2+2.0*A-B), /* 8.06891509311092550E-01, */ 0.125*(3.0*M_SQRT2-2.0*B), /* 4.59877502118491540E-01, */ 0.125*(3.0*M_SQRT2-2.0*A), /* -1.35011020010254580E-01, */ 0.125*(M_SQRT2+2.0*B-A), /* -8.54412738820266580E-02, */ 0.125*B /* 3.52262918857095330E-02 */ };static int d06salpha = 0, d06somega = 5;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -