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

📄 init.m

📁 实现fs1016w的CELP的低速率语音编解码功能的基于vc开发环境的原代码。
💻 M
📖 第 1 页 / 共 2 页
字号:

% 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 + -