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

📄 cvsd_encode.m

📁 CVCD编解码的matlab仿真: CVSD文档+matlab仿真程序
💻 M
字号:
% 07.11.5
% li dong shi
% cvsd encode

function [cvsd_encode_data,sw_enc_bit_dly_1_02,sw_enc_bit_dly_2_02,sw_step_02,sw_prdct_02] = cvsd_encode(sw_smpl_val,sw_enc_bit_dly_1_01,sw_enc_bit_dly_2_01,sw_step_01,sw_prdct_01)

DELTA_MIN = 0.0002;%4;		% 0.0002 Scaled to 2 ^ 14
DELTA_MAX = 0.0078;%128;     % 0.0078 Scaled to 2 ^ 14
SYLLABIC_CONST = 0.9845;%32260;   % 0.9845 Scaled to 2 ^ 15
PRM_INTEG_CONST	= 0.9394;%30783;   % 0.9394 Scaled to 2 ^ 15

% sw_enc_bit_dly_1_01 = 0;
% sw_enc_bit_dly_2_01 = 0;
% 
% sw_step_01 = 0;
% sw_prdct_01 = 0;

% 	int sw_acc;
% 	int sw_enc_bit;
% 
% 	long int tmp1;
% 	long int tmp2;

tmp_lds_1 = 0;
tmp_lds_2 = 0;
%  Judging continuous three bit identity and syllablic filter
% 	sw_enc_bit = (sw_smpl_val > sw_prdct_01) ? 1 : -1;
if sw_smpl_val > sw_prdct_01
   sw_enc_bit = 1;
else
    sw_enc_bit = -1;
end

sw_acc = sw_enc_bit + sw_enc_bit_dly_1_01 + sw_enc_bit_dly_2_01;

tmp_lds_1 = sw_step_01;
tmp1 = SYLLABIC_CONST * tmp_lds_1;
% 	//tmp1 = SYLLABIC_CONST * sw_step_01;
% 	tmp1 >>= 15;

if (abs(sw_acc) == 3)
	sw_step_01 = tmp1 + DELTA_MAX;
else
	sw_step_01 = tmp1 + DELTA_MIN;
end
%  Primary reconstruction integration
	tmp_lds_1 = sw_prdct_01;
	tmp1 = PRM_INTEG_CONST * tmp_lds_1;
% 	//tmp1 = PRM_INTEG_CONST * sw_prdct_01;
% 	tmp1 >>= 15;
tmp_lds_1 = sw_step_01;
tmp_lds_2 = sw_enc_bit;
tmp2 = tmp_lds_1 * tmp_lds_2;
% 	tmp2 = sw_step_01 * sw_enc_bit;

	sw_prdct_01 = tmp1 + tmp2;

%  Shift register shift
sw_enc_bit_dly_2_01 = sw_enc_bit_dly_1_01;
sw_enc_bit_dly_1_01 = sw_enc_bit;

% return ((sw_enc_bit + 1)/2);
cvsd_encode_data = (sw_enc_bit + 1)/2;

sw_enc_bit_dly_1_02 = sw_enc_bit_dly_1_01;
sw_enc_bit_dly_2_02 = sw_enc_bit_dly_2_01;
sw_step_02 = sw_step_01;
sw_prdct_02 = sw_prdct_01;

⌨️ 快捷键说明

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