interpolate.m

来自「the implement of the encoder and the dec」· M 代码 · 共 32 行

M
32
字号
function [ x, y ] = interpolate( x, start, n, d, m )

global TRUE FALSE nfrac

global dfrac twelfth wsinc FirstComp dlysize dlyml dlymh szsubf

y = zeros( 1, szsubf );
kmin = dlyml;
kmax = kmin + dlysize - 1;

% Get hamming windowed sinc interpolating function for each fraction.
if FirstComp == TRUE
    hwin = hamming( (12*dlysize) + 1 )';
    for i = 1:nfrac
        wsinc( i,1:dlysize ) = sinc( dfrac(i) + (kmin:kmax) ) .* ...
                                  hwin( 12*(0:dlysize-1) + twelfth(i) + 1 );
    end
    FirstComp = FALSE;
end

% find the corresponding index
indx=find(abs(dfrac-d)<10e-4);

% resample
for i = 0:n-1
    x( start + i ) = sum( x( start - m + i + (kmin:kmax) ) .* ...
                          wsinc(indx,(1:dlysize)));
end

y( 1:n ) = x( start:start+n-1 );
x( start:start+n-1 ) = zeros( 1, n );

⌨️ 快捷键说明

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