我正在编写一个程序,该程序可以从用户输入的频率中产生纯净的音调(并且程序的这一部分起作用),并且能够在给定另一个频率的情况下基于采样的单簧管产生声音声音(仅使用该样本的基本成分和谐波)。 我本想使用表查找,但我不知道如何在MATLAB中应用它,也没有找到适用于声音的示例。 我知道这里有一个类似的问题
changing the pitch of an audio wav file in matlab?
但这不是我真正想做的。 谢谢您的帮助。
%function
function y = analyse()
prompt = 'Which frequency would you like to reproduce?';
Freq = input(prompt)
[audioIn,fs] = audioread('Si_lae.wav');
[pitchValue,analyse] = pitch(audioIn,fs);
amp=1;
Fs=80000; % Fs=sampling frequency
duration=8;
values=0:1/Fs:duration;
a=amp*sin(2*pi*Freq*values);
sound(a,Fs)
[Y,Fs]=audioread('Si_lae.wav');
%Pitch shift
if pitchValue ~= 0
[N,D] = rat(8^(-0.4*pitchValue));
y = resample(y,N,D);
end
end