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

📄 delayline.m

📁 matlab code for discrete time signal processing overlay and a
💻 M
字号:
% Delayline.m (based on vibrato.m)
function y=Delayline(x,SAMPLERATE,Modfreq,Width,BLen)
ya_alt=0;
Delay=Width; % basic delay of input sample in sec
DELAY=round(Delay*SAMPLERATE); % basic delay in # samples
WIDTH=round(Width*SAMPLERATE); % modulation width in # samples
if WIDTH>DELAY 
  error('delay greater than basic delay !!!');
end
MODFREQ=Modfreq/SAMPLERATE; % modulation frequency in # samples
LEN=length(x);        % # of samples in WAV-file
L=2+DELAY+WIDTH*2;    % length of the entire delay  
Delayline=zeros(L,1); % memory allocation for delay
y=zeros(size(x));     % memory allocation for output vector

j=1;
for n=1:(LEN-1)
   %M=MODFREQ;
   if j>BLen
       j=1;
   end
   MOD=j*Modfreq/SAMPLERATE;
   ZEIGER=1+DELAY+WIDTH*MOD;
   i=floor(ZEIGER);
   frac=ZEIGER-i;
   Delayline=[x(n);Delayline(1:L-1)]; 
   %---Linear Interpolation-----------------------------
   y(n,1)=Delayline(i)*frac+Delayline(i-1)*(1-frac);
   %---Allpass Interpolation------------------------------
   %y(n,1)=(Delayline(i+1)+(1-frac)*Delayline(i)-(1-frac)*ya_alt);  
   %ya_alt=y(n,1);
   %---Spline Interpolation-------------------------------
   %y(n,1)=Delayline(i+1)*frac^3/6
   %....+Delayline(i)*((1+frac)^3-4*frac^3)/6
   %....+Delayline(i-1)*((2-frac)^3-4*(1-frac)^3)/6
   %....+Delayline(i-2)*(1-frac)^3/6; 
   %3rd-order Spline Interpolation
   j=j+1;
end 

⌨️ 快捷键说明

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