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

📄 decoder.m

📁 the implement of the encoder and the decoder of the CELP
💻 M
字号:
function [spch_syn]=decoder(frm_num)

global frames szsubf sub_cnt nsubf cindex cgain pcode pgain descalor pbuf lbuf lpcMat %codebook_lpc lpcword 
global b_hpf a_hpf d_hpf1 b_lpf a_lpf d_lpf1 olpc ALPHA BETA ip op TRUE FALSE

dp1=zeros(1,olpc+1);
dp2=zeros(1,olpc+1);
dp3=zeros(1,2);


for frm_count=1:frm_num
    offset=(frm_count-1)*frames;
    for isub=1:nsubf
        sub_cnt=sub_cnt+1;
        
        lpt=(isub-1)*szsubf+1; hpt=lpt+szsubf-1;            % Set segment range for decoding in each frame
        
        % Re-synthesize stochastic excitation components
        syn_e0(lpt:hpt)=exc_syn(cindex(sub_cnt),cgain(sub_cnt));        
        
        % Re-synthesize pitch components, given stochastic excitation
        [syn_e1(lpt:hpt),pbuf]=pitch_syn(syn_e0(lpt:hpt),pbuf,pcode(sub_cnt),pgain(sub_cnt));
        
        % Re-synthesize speech on sub-frame level, given synthesized pitch
        [voc(lpt:hpt),lbuf]=lpcr(lpcMat(frm_count,:),lbuf,syn_e1(lpt:hpt));
        
        % Scale down synthesized speech 
        voc(lpt:hpt)=voc(lpt:hpt)*descalor;
        % Postfilter the syn speech
        [ voc(lpt:hpt), ip, op, dp1, dp2, dp3 ] = ...
        postfilt( voc(lpt:hpt), szsubf, ALPHA, BETA, ip, op, dp1, dp2, dp3, lpcMat(frm_count,:), olpc );
        
    end
    
    [voc,d_hpf1]=filter(b_hpf,a_hpf,voc,d_hpf1);                 % Highpass filter output speech at 100 HZ
       
    spch_syn(offset+1:offset+frames)=voc;
end
        

⌨️ 快捷键说明

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