关闭。这个问题需要更多 focused .它目前不接受答案。
想改进这个问题?更新问题,使其仅关注一个问题 editing this post .
6年前关闭。
Improve this question
我正在使用 Matlab 的 audioread(filename,y,Fs) 函数,它将音频文件转换为矩阵。我想知道该矩阵的每个值是如何生成的。是否可以通过将您自己的值赋予矩阵然后使用 sound() 函数发出声音来产生类似于吉他声音的特定声音?
最佳答案
1)该矩阵的每个值是如何生成的
矩阵的列数与 channel 数一样多(1 channel = 单声道 = 1 列;2 channel = 立体声 = 2 列)。作为附加输入,您可以指定 'dataType'
: 如果 'dataType'
是 'native'
Matlab 将导入用于压缩的相同值,您可以使用 audioinfo()
函数先验地知道这些值。如果 'dataType'
未指定或 'double'
(默认)这些值在 [-1;+1] 范围内标准化。
2)是否可以产生特定的声音
你当然可以。尽管您可能需要很长时间才能生成像吉他这样的复杂声音。但是可以很容易地产生一个给定频率的正弦音并播放它。当然要注意音频文件的正弦波频率和采样频率。
快速演示:
fs = 16000; % sampling frequency in Hz
T = 5; % 5 seconds duration
t = 0:(1/fs):T;
f = 440; % tone frequency (A4 note)
a = 0.5; % amplitude (volume)
y = a*sin(2*pi*f*t); % tone matrix
sound(y, fs); % rock it!
关于matlab - Matlab中如何将声音转换为矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35337189/