Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MATLAB中对声音进行调制_Matlab_Audio_Pitch_Pitch Shifting - Fatal编程技术网

如何在MATLAB中对声音进行调制

如何在MATLAB中对声音进行调制,matlab,audio,pitch,pitch-shifting,Matlab,Audio,Pitch,Pitch Shifting,我正在编写一个程序,该程序根据用户输入的频率生成纯音(程序的这一部分工作正常),并且在给定另一个频率的情况下,能够根据单簧管的采样声音(仅该样本,使用其基本原理和谐波)生成声音。 我曾想过使用表格查找,但我不知道如何在MATLAB中应用它,而且我还没有找到应用于声音的示例。 我知道这里有一个类似的问题 但这并不是我想要做的。 谢谢你的帮助 %function function y = analyse() prompt = 'Which frequency would you like

我正在编写一个程序,该程序根据用户输入的频率生成纯音(程序的这一部分工作正常),并且在给定另一个频率的情况下,能够根据单簧管的采样声音(仅该样本,使用其基本原理和谐波)生成声音。 我曾想过使用表格查找,但我不知道如何在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

upfirdn
在需要重新采样时很好,但与使用
resample
功能相比,它对抗锯齿有更多的控制。是的,但我必须发出另一种声音,而不是简单地更改采样率。