📄 init.m
字号:
% CELPANAL.M
global FrameCnt no gamma2 fc mxsw nseg idb bb plevel1 plevel2
global cbindex ncsize gindex cbgbits cbgtype SimType ber
% INIT CELP EXECUTIVE VARIABLES
SimType = ANALYSIS;
% SimType = SYNTHESIS;
FrameCnt = 0;
scale = 1.0;
descale = 1.0;
ll = 240;
l = 60;
lp = 60;
nn = ll/l;
no = 10;
minv = zeros( 1, LFRAME ) - 32768;
maxv = zeros( 1, LFRAME ) + 32767;
sold = zeros( LFRAME, 1 );
sumdm = zeros( 10, 1 );
sumdm2 = zeros( 10, 1 );
stream = zeros( STREAMBITS, 1 );
v = zeros( LFRAME, 1 );
bb = zeros( MAXNP + 1, 1 );
ssub = zeros( LFRAME, 1 );
gamma2 = 0.8;
framedm2 = 0;
framedm = 0;
sbits = [ 3 4 4 4 4 3 3 3 3 3 ]';
pbits = [ 8 6 5 0 0 ]';
pointer = 1;
nseg = 0;
mxsw = 1;
cbindex = 0;
ncsize = 512;
gindex = 0;
cbgbits = 5;
cbgtype = [ 'log' ];
cbbits = 9;
sync = 1;
syndavg = 0;
% CELPSYN.M
vdecoded = zeros( LFRAME, 1 );
dps = zeros( MAXPA, 1 );
dss = zeros( MAXNO+1, 1 );
npf = zeros( LFRAME, 1 );
pf = zeros( LFRAME, 1 );
hppf = zeros( LFRAME, 1 );
sumsnr = 0;
framesnr = 0;
sumsnrp = 0;
framesnrp = 0;
sumsnrh = 0;
framesnrh = 0;
% OUTPUT SPEECH HIGH PASS FILTER PARAMETERS AND FILTER MEMORY
dhpf1o = zeros( 3, 1 );
dhpf2o = zeros( 3, 1 );
ahpfo = [ 0.946, -1.892, 0.946 ]';
bhpfo = [ 1.0, -1.889033, 0.8948743 ]';
% BIT STREAM BIT ERROR PROTECTION VARIABLES
bitprotect = [ 40, 41, 42, 47, 72, 92, 93, 94, 99, 124, 139 ]';
codeword = zeros( CODELENGTH1, 1 );
protect = TRUE;
paritybit = 0;
% BIT STREAM PERMUTATION TABLE
load bitperm.dat;
bitperm = reshape( bitperm', 144, 1 );
% BIT ERROR CONTROL VARIABLES
mask = zeros( STREAMBITS, 1 );
ber = 0.0;
errors = 0;
total = 0;
% NUMBER OF FULL SEARCH PITCH DELAYS
plevel1 = 2 ^ pbits(1);
% NUMBER OF DELTA SEARCH PITCH DELAYS
plevel2 = 2 ^ pbits(2);
% DIMENSION OF D1A AND D1B
idb = MMAX + MAXNP - 1 + l;
% BITSTREAM DECODING ARGUMENTS
bitsum1 = cbbits + cbgbits + pbits(1) + pbits(3);
bitsum2 = cbbits + cbgbits + pbits(2) + pbits(3);
% GENERATE MATRIX FOR ERROR CONTROL CODING
[ hmatrix, syndrometable ] = mtrxgen( CODELENGTH1, CODELENGTH2 );
% GENERATE HAMMING WINDOWS
hamw = ham( ll );
hamws = ham( l );
% INITIALIZE FILTER TAPS AND MEMORY - 2nd ORDER BUTTERWORTH 100 HZ HPF
bhpf = [ 0.946, -1.892, 0.946 ];
ahpf = [ 1.0, -1.889033, 0.8948743 ];
dhpf1 = zeros( 2, 1 );
% PCTOLSP2.M
global lastfreq
% INIT VECTOR OF PREVIOUS FRAME LSPS
lastfreq = zeros( MAXNO, 1 );
% LSP34.M
global lspQ
% INIT LSP QUANTIZATION TABLE
lspQ = [ ...
100, 170, 225, 250, 280, 340, 420, 500, ...
0, 0, 0, 0, 0, 0, 0, 0; ...
210, 235, 265, 295, 325, 360, 400, 440, ...
480, 520, 560, 610, 670, 740, 810, 880; ...
420, 460, 500, 540, 585, 640, 705, 775, ...
850, 950, 1050, 1150, 1250, 1350, 1450, 1550; ...
620, 660, 720, 795, 880, 970, 1080, 1170, ...
1270, 1370, 1470, 1570, 1670, 1770, 1870, 1970; ...
1000, 1050, 1130, 1210, 1285, 1350, 1430, 1510, ...
1590, 1670, 1750, 1850, 1950, 2050, 2150, 2250; ...
1470, 1570, 1690, 1830, 2000, 2200, 2400, 2600, ...
0, 0, 0, 0, 0, 0, 0, 0; ...
1800, 1880, 1960, 2100, 2300, 2480, 2700, 2900, ...
0, 0, 0, 0, 0, 0, 0, 0; ...
2225, 2400, 2525, 2650, 2800, 2950, 3150, 3350, ...
0, 0, 0, 0, 0, 0, 0, 0; ...
2760, 2880, 3000, 3100, 3200, 3310, 3430, 3550, ...
0, 0, 0, 0, 0, 0, 0, 0; ...
3190, 3270, 3350, 3420, 3490, 3590, 3710, 3830, ...
0, 0, 0, 0, 0, 0, 0, 0; ...
];
% INTANALY.M
global w lspold oldlsp
% INIT LSP INTERPOLATION WEIGHTS AND VALUES
oldlsp = zeros( MAXNO, 1 );
w = [
0.875, 0.625, 0.375, 0.125; ...
0.125, 0.375, 0.625, 0.875 ...
];
lspold = [ .03, .05, .09, .13, .19, .23, .29, .33, .39, .44 ]';
% CSUB.M
global d1a d2a d3a d4a d1b d2b d3b d4b e0
% INIT FILTER MEMORIES
d1a = zeros( MAXPA, 1 );
d1b = zeros( MAXPA, 1 );
d2a = zeros( MAXNO+1, 1 );
d2b = zeros( MAXNO+1, 1 );
d3a = zeros( MAXNO+1, 1 );
d3b = zeros( MAXNO+1, 1 );
d4a = zeros( MAXNO+1, 1 );
d4b = zeros( MAXNO+1, 1 );
e0 = zeros( MAXLP, 1 );
% MEXCITE1.M MEXCITE2.M MEXCITE3.M
global e1 e0save ccor
% CODEBOOK SEARCH RESIDUALS
e0save = zeros( l, 1 );
e1 = 0;
ccor = 0;
% PSEARCH.M
global oldptr pdelay pstype submult ptype
global pindex tauptr minptr oldptr
% CODEBOOK SEARCH INDEX PLACEHOLDER
oldptr = 1;
% PITCH CODEBOOK SEARCH TYPE: HIER, INTG, OR FULL
pstype = [ 'hier' ];
% PITCH GAIN QUANTIZER TYPE
ptype = [ 'max2'];
% PITCH GAIN INDEX
pindex = 0;
% PITCH DELAY POINTER
tauptr = 0;
% MINIMUM DELAY POINTER
minptr = 0;
% ADAPTIVE CODEBOOK PITCH DELAYS
load pdelay.dat
pdelay = reshape( pdelay', 256, 1 );
% PITCH SUBMULTIPLE DELAY TABLE
load submult.dat
% PGAIN.M
global Ypg
% INIT OUTPUT OF PERCEPTUAL WEIGHTING FILTER
Ypg = zeros( MAXLP, 1 );
% DELAY.M
global dfrac twelfths wsinc hwin FirstDelay DelaySize DelayM1 DelayM2
% FIVE FRACTIONAL DELAYS CALCULATED OVER AN 8 POINT INTERPOLATION, -4 TO 3
dfrac = [ 0.25, 0.33333333, 0.5, 0.66666667, 0.75 ]';
twelfths = [ 3, 4, 6, 8, 9 ]';
DelayM1 = -4;
DelayM2 = 3;
FirstDelay = TRUE;
DelaySize = DelayM2 - DelayM1 + 1;
wsinc = zeros( DelaySize, NFRAC );
hwin = zeros( (12*DelaySize) + 1 );
% PENCODE.M
global pitch2max5
% INIT LLOYD-MAX QUANTIZATION TABLE
pitch2max5 = [ ...
-0.993, -0.831, -0.693, -0.555, -0.414, -0.229, 0.0, 0.139, ...
0.255, 0.368, 0.457, 0.531, 0.601, 0.653, 0.702, 0.745, ...
0.780, 0.816, 0.850, 0.881, 0.915, 0.948, 0.983, 1.020, ...
1.062, 1.117, 1.193, 1.289, 1.394, 1.540, 1.765, 1.991 ...
]';
% LDELAY.M
global lwsinc lhwin FirstLdelay LdelaySize LdelayM1 LdelayM2
% FIVE FRACTIONAL DELAYS CALCULATED OVER A 40-POINT INTERPOLATION, -20 TO 19
LdelayM1 = -20;
LdelayM2 = 19;
FirstLdelay = TRUE;
LdelaySize = LdelayM2 - LdelayM1 + 1;
lwsinc = zeros( LdelaySize, NFRAC );
lhwin = zeros( (12*LdelaySize) + 1 );
% CBSEARCH.M
global StochCB
% INITIALIZE STOCHASTIC CODEBOOK
load stochcb.dat
StochCB = reshape( stochcb', 1, 1090 );
StochCB = StochCB( 1:1082 );
% CGAIN.M
global Ycg y59save y60save Engcg
% INIT STOCHASTIC CODEBOOK SEARCH INTERMEDIATE VALUES
Ycg = zeros( MAXL, 1 );
y59save = 0;
y60save = 0;
Engcg = 0;
% GAINCODE.M
global gainlog5
% INIT STOCHASTIC CODEBOOK GAIN QUANTIZATION TABLE
gainlog5 = [ ...
-1330., -870., -660., -520., -418., -340., -278., -224., ...
-178., -136., -98., -64., -35., -13., -3., -1., ...
1., 3., 13., 35., 64., 98., 136., 178., ...
224., 278., 340., 418., 520., 660., 870., 1330. ...
]';
% PACKTAU.M
% PITCH (TAU) PERMUTATION TABLE FOR ENCODING AT THE TRANSMITTER
load pdencode.dat
% PITCH PARAMTER BIT ALLOCATION
pbits = [ 8, 6, 5, 0, 0 ]';
% RANDOM.M
global j k y;
% INITIALIZE RANDOM NUMBER GENERATOR
y = [ -21161, -8478, 30892, -10216, 16950 ]';
j = MIDTAP;
k = MAXTAP;
% INTSYNTH.M
global wIS lspoldIS
% INIT LSP INTERPOLATION WEIGHTS AND VALUES
wIS = [
0.875, 0.625, 0.375, 0.125; ...
0.125, 0.375, 0.625, 0.875 ...
];
lspoldIS = [ .03, .05, .09, .13, .19, .23, .29, .33, .39, .44 ]';
% DCODTAU.M
global lptrDT
% INIT DELTA DELAY DECODING POINTER
lptrDT = 0;
% PITCH (TAU) PERMUTATION TABLE FOR DECODING AT THE RECEIVER
load pddecode.dat
% GENERATE PITCH (TAU) DELTA DELAY TABLE FOR DECODING AT THE RECEIVER
pdtabi( pdencode(1:MAXPD)+1, 1 ) = (0:MAXPD-1)';
% SMCBG.M
global enableSMCBG oldcbgain
% INIT SMOOTHING ENABLE FLAG AND OLD CB GAIN VECTOR
enableSMCBG = FALSE;
oldcbgain = zeros( CBGAINHISTORY, 1 );
% SMT.M
global enableSMT oldtau
% INIT SMOOTHING ENABLE FLAG AND OLD PITCH LAG VECTOR
enableSMT = FALSE;
oldtau = zeros( TAUHISTORY, 1 );
% SMPG.M
global enableSMPG oldpgain
% INIT SMOOTHING ENABLE FLAG AND OLD PITCH GAIN VECTOR
enableSMPG = FALSE;
oldpgain = zeros( PGAINHISTORY, 1 );
% POSTFILT.M
global ipZ opZ
% INIT POSTFILTER MEMORY AND POWER VALUES, ALSO POWER ESTIMATION FILTER MEMORY
ip = 0;
op = 0;
dp1 = zeros( MAXNO+1, 1 );
dp2 = zeros( MAXNO+1, 1 );
dp3 = zeros( 2, 1 );
ipZ = 0;
opZ = 0;
% GUI.M
global guiDisplayMode guiState guiDisplayType
global guiFrames guiIfile guiOfile guiTrajTrk
% INIT GRAPHICAL USER INTERFACE (GUI)
close;
guiState = 0;
guiDisplayMode = 0;
guiDisplayType = 0;
guiFrames = 0;
guiTrajTrk = FALSE;
% START GUI WITH RUN/OPTIONS/EXIT QUERY WINDOW
global CELPpath
CELPpath = cd;
guiinit(0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -