首页 > 解决方案 > 带有键盘功能的Matlab声音

问题描述

我必须声明这个函数,其中 phi 是从 0 到 2pi 的随机值

$$x(n)=A \cos (2 \pi fn T+\phi)$$

必须像这样声明它并用声音使用它

createWaveform(频率,fs,持续时间,A)

现在我已经做到了

createWaveform(440,8000,2,1);


function createWaveform(frequency,fs,duration,A)
    n = linspace(0,duration-1/fs,duration*fs);
    for i=  1:duration
        sound(A*cos(2*pi*frequency*n(i)+(2*pi).*rand(1,1)));
    end
end



    function [tone] = note(keynum,relDuration,fullDuration,fs)
                basetone = 440;
                frequency = basetone * nthroot(2,12)^(keynum-49);
                [tone]=createWaveform(frequency,fs,relDuration*fullDuration,1);
    end

这样做了,声音仍然很奇怪,没有真正的音调,就像敲破麦克风一样

标签: matlab

解决方案


推荐阅读