如何在matlab中创建正弦合唱效果

时间:2014-01-26 16:12:46

标签: matlab sine audioeffect

我正在尝试在Matlab中创建正弦合唱效果。这是我的代码:

function y=chorus(x, f_sine, delay, depth, mix, fs);
x=wavread(x);
BL=0.7;
FB=-0.7;
FF=1;

for n=1:length(x);
M(n)=delay+depth*(0.5+0.5*sin(2*pi*f_sine*n/fs)); 
xh=x(n)+FB*xh(n-M(n));
y(n)=FF*xh(n-M(n))+BL*xh(n);


end;
soundsc(y,fs);

它有一些错误,我还没弄明白如何将原始信号与处理过的信号混合。 我怎样才能做到这一点?

第二次尝试:

function y=sine_chorus(x, f_sine, delay, depth, mix, fs);
BL=0.7;
FB=-0.7;
FF=1;
x=wavread(x);

%sound(x,fs);
D=ceil(delay*fs);
xlen=length(x);
y=zeros(size(x));
%filter

for i=D+1:1:xlen
M(i)=delay+depth*(0.5+0.5*sin((2*pi*f_sine*i)/fs));
xh=x(i)+FB*xh(i-M(i));
y(i)=FF*xh(i-M(i))+BL*xh(i);
y(i)=x(i)+mix*x(i-M(i));
end
soundsc(y,16000);

现在创建的y数组应该有我的输出信号,而不是它用零填充。 这有什么问题?

0 个答案:

没有答案