📄 init.m
字号:
h9 = -0.0455563702;
h10 = -0.0403068550;
h11 = 0.0005029835;
h12 = 0.0729262903;
h13 = 0.1572008878;
h14 = 0.2247288674;
h15 = 0.2505359650;
blpf31 = [ h0, h1, h2, h3, h4, h5, h6, h7,...
h8, h9, h10, h11, h12, h13, h14, h15...
h14, h13, h12, h11, h10, h9, h8, h7,...
h6, h5, h4, h3, h2, h1, h0 ];
alpf31 = zeros( 1, 31 );
zlpf31 = zeros( 30, 1 );
alpf31(1,1) = 1.0;
% IVFILT.M
global ziv;
% INVERSE FILTER MEMORY
ziv = zeros( 8, 1 );
% TBDM.M
global tau2;
tau2 = zeros( 6, 1 );
% VOICE.M
global vstate dither snr maxmin voice vdc;
global lbve lbue fbve fbue ofbue olbue;
global sfbue slbue;
global MAXVDC MXVDCL;
global nvdc nvdcl;
global vdcl;
% INIT GENERAL VOICING DETECTION PARAMETERS
MAXVDC = 10;
MXVDCL = 10;
nvdcl = 5;
ref = 3000;
vstate = 0;
dither = 20;
sfbue = 0;
slbue = 0;
lbve = ref;
fbve = ref;
fbue = fix( ref/16 );
ofbue = fix( ref/16 );
lbue = fix( ref/32 );
olbue = fix( ref/32 );
snr = 64.0 * ( fbve/fbue );
vdcl = zeros( MXVDCL, 1 );
vdcl(1) = 600;
vdcl(2) = 450;
vdcl(3) = 300;
vdcl(4) = 200;
vdcl(5) = 0;
voice = zeros( 2,3 );
% INIT VOICING COEFFICIENT AND LINEAR DISCRIMINANT ANALYSIS VARIABLES
% VOICING DECISION PARAMETER VECTOR (* DENOTES ZERO COEFFICIENT)
%
% * MAXMIN
% LBE/LBVE
% ZC
% RC1
% QS
% IVRC2
% aR_B
% aR_F
% * LOG(LBE/LBVE)
% Define 2-D voicing decision coefficient vector according to the voicing
% parameter order above. Each row (VDC vector) is optimized for a specific
% SNR. The last element of the vector is the constant.
% E ZC RC1 Qs IVRC2 aRb aRf c
vdc = ...
[ ...
0., 0., 0., 0., 0., 0., 0., 0., 0., 0.;...
1714., 874., 510., 500., 500., 0., 0., 0., 0., 0.;...
- 110., -97., -70., -10., 0., 0., 0., 0., 0., 0.;...
334., 300., 250., 200., 0., 0., 0., 0., 0., 0.;...
-4096., -4096., -4096., -4096., -4096., 0., 0., 0., 0., 0.;...
-654., -1021., -1270., -1300., -1300., 0., 0., 0., 0., 0.;...
3752., 2451., 2194., 2000., 2000., 0., 0., 0., 0., 0.;...
3769., 2527., 2491., 2000., 2000., 0., 0., 0., 0., 0.;...
0., 0., 0., 0., 0., 0., 0., 0., 0., 0.;...
1181., -500., -1500., -2000., -2500., 0., 0., 0., 0., 0. ...
];
% DYPTRK.M
global ipoint alphax s p
% INIT DYNAMIC PROGRAMMING CONSTANTS
ipoint = 0;
alphax = 0;
p = zeros( 60, 2 );
s = zeros( 60, 1 );
% PLACEA.M
global allv
% INIT ANALYSIS WINDOW PLACEMENT FLAG
allv = 0;
% ENCODE.M
global enctab entau enadd enscl enbits entab6 rmst;
% LPC PARAMETER ENCODING TABLES
enctab = [ 0, 7, 11, 12, 13, 10, 6, 1, 14, 9, 5, 2, 3, 4, 8, 15 ]';
entau = [ ...
19, 11, 27, 25, 29, 21, 23, 22, 30, 14, 15, 7, 39, ...
38, 46, 42, 43, 41, 45, 37, 53, 49, 51, 50, 54, 52, ...
60, 56, 58, 26, 90, 88, 92, 84, 86, 82, 83, 81, 85, ...
69, 77, 73, 75, 74, 78, 70, 71, 67, 99, 97, 113, 112, ...
114, 98, 106, 104, 108, 100, 101, 76 ...
]';
enadd = [ 1920, -768, 2432, 1280, 3584, 1536, 2816, -1152]';
enscl = [ .0204, .0167, .0145, .0147, .0143, .0135, .0125, .0112 ]';
enbits = [ 6, 5, 4, 4, 4, 4, 3, 3 ]';
entab6 = [ ...
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, ...
2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, ...
5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, ...
9, 9, 9, 10, 10, 11, 11, 12, 13, 14, 15 ...
]';
rmst = [ ...
1024, 936, 856, 784, 718, 656, 600, 550, ...
502, 460, 420, 384, 352, 328, 294, 270, ...
246, 226, 206, 188, 172, 158, 144, 132, ...
120, 110, 102, 92, 84, 78, 70, 64, ...
60, 54, 50, 46, 42, 38, 34, 32, ...
30, 26, 24, 22, 20, 18, 17, 16, ...
15, 14, 13, 12, 11, 10, 9, 8, ...
7, 6, 5, 4, 3, 2, 1, 0 ...
]';
% DECODE.M
global ivtab corth detau detab7 descl deadd qb nbit zrc abit;
global drc dpit drms ivp2h erate iovoic first;
% LPC PARAMETER DECODING TABLES
ivtab = [ ...
24960, 24960, 24960, 24960, 25480, 25480, 25483, 25480, ...
16640, 1560, 1560, 1560, 16640, 1816, 1563, ...
1560, 24960, 24960, 24859, 24856, 26001, ...
25881, 25915, 25913, 1560, 1560, 7800, ...
3640, 1561, 1561, 3643, 3641 ...
]';
corth = [ ...
32767., 32767., 32., 32., 32., 32., 16., 16.; ...
10., 8., 6.4, 6.4, 11.2, 11.2, 5.6, 5.6; ...
5., 4., 3.2, 3.2, 6.4, 6.4, 3.2, 3.2; ...
0., 0., 0., 0., 0., 0., 0., 0. ...
];
detau = [ ...
0, 0, 0, 3, 0, 3, 3, 31, 0, 3, 3, 21, 3, 3, 29, 30, ...
0, 3, 3, 20, 3, 25, 27, 26, 3, 23, 58, 22, 3, 24, 28, 3, ...
0, 3, 3, 3, 3, 39, 33, 32, 3, 37, 35, 36, 3, 38, 34, 3, ...
3, 42, 46, 44, 50, 40, 48, 3, 54, 3, 56, 3, 52, 3, 3, 1, ...
0, 3, 3, 108, 3, 78, 100, 104, 3, 84, 92, 88, 156, 80, 96, 3, ...
3, 74, 70, 72, 66, 76, 68, 3, 62, 3, 60, 3, 64, 3, 3, 1, ...
3, 116, 132, 112, 148, 152, 3, 3, 140, 3, 136, 3, 144, 3, 3, 1, ...
124, 120, 128, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 1, 1 ...
]';
detab7 = [ ...
4, 11, 18, 25, 32, 39, 46, 53, ...
60, 66, 72, 77, 82, 87, 92, 96, ...
101, 104, 108, 111, 114, 115, 117, 119, ...
121, 122, 123, 124, 125, 126, 127, 127 ...
]';
descl = [ .6953, .6250, .5781, .5469, .5312, .5391, .4688, .3828 ]';
deadd = [ 1152, -2816, -1536, -3584, -1280, -2432, 768, -1920 ]';
qb = [ 511, 511, 1023, 1023, 1023, 1023, 2047, 4095 ]';
nbit = [ 8, 8, 5, 5, 4, 4, 4, 4, 3, 2 ]';
zrc = [ 0, 0, 0, 0, 0, 3, 0, 2, 0, 0 ]';
abit = [ 2, 4, 8, 16, 32 ]';
% INIT DECODING VARIABLES
drc = zeros( 3, MAXORD );
dpit = zeros( 3 );
drms = zeros( 3 );
ivp2h = 0;
erate = 0;
iovoic = 0;
first = 1;
% HAM84.M
global dactab;
% INIT HAMMING 8,4 DECODING TABLE
dactab = [ ...
16, 0, 0, 3, 0, 5, 14, 7, 0, 9, 14, 11, ...
14, 13, 30, 14, 0, 9, 2, 7, 4, 7, 7, 23, 9, ...
25, 10, 9, 12, 9, 14, 7, 0, 5, 2, 11, 5, 21, ...
6, 5, 8, 11, 11, 27, 12, 5, 14, 11, 2, 1, 18, ...
2, 12, 5, 2, 7, 12, 9, 2, 11, 28, 12, 12, 15, ...
0, 3, 3, 19, 4, 13, 6, 3, 8, 13, 10, 3, 13, 29, ...
14, 13, 4, 1, 10, 3, 20, 4, 4, 7, 10, 9, 26, ...
10, 4, 13, 10, 15, 8, 1, 6, 3, 6, 5, 22, 6, 24, ...
8, 8, 11, 8, 13, 6, 15, 1, 17, 2, 1, 4, 1, 6, ...
15, 8, 1, 10, 15, 12, 15, 15, 31 ...
]';
% SYNTHS.M
global ivuv ipiti rmsi rci pc sout;
% INITIALIZE SYNTHS PITCH EPOCH VARIABLES
ivuv = zeros(11,1);
ipiti = zeros(11,1);
rmsi = zeros(11,1);
rci = zeros(MAXORD,11);
pc = zeros(MAXORD,1);
sout = zeros(LFRAME,1);
% PITSYN.M
global ivoico ipito rmso psFirst rco yarc jsamp;
% INITIALIZE PITSYN INTERNALS
ivoico = 0;
ipito = 0;
rmso = 0;
psFirst = 1;
rco = zeros(MAXORD,1);
yarc = zeros(MAXORD,1);
jsamp = 0;
% BSYNZ.M
global kexc exc exc2 ipo bsRmso Zhpf Zlpf
% INITIALIZE SYNTHESIS VARIABLES
kexc = [ ...
8, -16, 26, -48, 86, -162, 294, -502, 718, -728, ...
184, 672, -610, -672, 184, 728, 718, 502, 294, 162, ...
86, 48, 26, 16, 8 ...
]';
exc = zeros( MAXPIT+MAXORD, 1 );
exc2 = zeros( MAXPIT+MAXORD, 1 );
ipo = 0;
bsRmso = 0;
Zlpf = zeros(2,1);
Zhpf = zeros(2,1);
% RANDOM.M
global j k y;
% INITIALIZE RANDOM NUMBER GENERATOR
y = [ -21161, -8478, 30892, -10216, 16950 ]';
j = MIDTAP;
k = MAXTAP;
% DEEMPH.M
global Zdemph;
% INITIALIZE DEEMPHASIS FILTER TAPS
Zdemph = zeros(4,1);
% BUFMAN.M
global BigBuf sPtr ePtr BBUFSIZE;
% INITIALIZE BUFFER MANAGEMENT CONSTANTS
sPtr = 1;
ePtr = 361;
BBUFSIZE = 600;
BigBuf = zeros( BBUFSIZE,1 );
% GUI.M
global guiSbuf1 guiSbuf2 guiSin guiDisplayMode guiState guiSline guiDisplayType;
global guiExcit guiFrames;
% INIT GRAPHICAL USER INTERFACE (GUI)
close;
guiDisplayMode = 0;
guiDisplayType = 0;
guiSline = 0;
guiSbuf1 = zeros( LFRAME, 1 );
guiSbuf2 = zeros( LFRAME, 1 );
guiSin = zeros( LFRAME, 1 );
guiFrames = 0;
guiExcit = [];
% INITIALIZE FUNCTION STATIC VARIABLES
analysState = zeros( 10, 6 ); % 1=osbuf,2=osptr,3:5=vwin,6=obound
analysState( 1, 5 ) = DVWINL; % vwin(1,AF)=DVWINH
analysState( 2, 5 ) = DVWINH; % vwin( 2, AF ) = DVWINH
onsetState = zeros( 15, 6 );
onsetState( 1, 4 ) = 63.0/64.0; % zd = 63./64. same as d=1. in C code.
% START GUI
guiinit(0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -