如何在MATLAB中对声音进行调制
我正在编写一个程序,该程序根据用户输入的频率生成纯音(程序的这一部分工作正常),并且在给定另一个频率的情况下,能够根据单簧管的采样声音(仅该样本,使用其基本原理和谐波)生成声音。 我曾想过使用表格查找,但我不知道如何在MATLAB中应用它,而且我还没有找到应用于声音的示例。 我知道这里有一个类似的问题 但这并不是我想要做的。 谢谢你的帮助如何在MATLAB中对声音进行调制,matlab,audio,pitch,pitch-shifting,Matlab,Audio,Pitch,Pitch Shifting,我正在编写一个程序,该程序根据用户输入的频率生成纯音(程序的这一部分工作正常),并且在给定另一个频率的情况下,能够根据单簧管的采样声音(仅该样本,使用其基本原理和谐波)生成声音。 我曾想过使用表格查找,但我不知道如何在MATLAB中应用它,而且我还没有找到应用于声音的示例。 我知道这里有一个类似的问题 但这并不是我想要做的。 谢谢你的帮助 %function function y = analyse() prompt = 'Which frequency would you like
%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
upfirdn
在需要重新采样时很好,但与使用resample
功能相比,它对抗锯齿有更多的控制。是的,但我必须发出另一种声音,而不是简单地更改采样率。