一、读取音频
MATLAB自带一系列音频,例如:chirp(鸟叫声)、train(火车鸣笛)……调用方法如下:
load chirp;
% load train;
load上述信号后,可以看到工作区出现两个变量y(音频信号),Fs(音频信号采样频率)。
注:MATLAB自带的音频信号采样率Fs = 8192Hz。
二、采样率的那些坑
错误代码1:
如果你使用了下面的代码,程序结果一定会让你十分疑惑。
load chirp; % y, Fs
N = length(y - 1);
fc = 20e3; % 载波频率
t = (0:N - 1) / Fs;
st = (y + 0.2) .* cos(2 * pi * fc * t); % AM信号为例
当你对上述代码生成的信号st进行频谱分析时,会发现频率与理论值不符。问题在于,音频信号的采样频率 Fs = 8192Hz,但采用20KHz的载波,不符合奈奎斯特采样定律。
错误代码2:
如果你使用了下面的代码,程序结果依然会让你十分疑惑。
load chirp; % y, Fs
N = length(y - 1);
fc = 20e3; % 载波频率
fs = 4 * fc; % AM信号采样频率
t = (0:N - 1) / fs;
st = (y + 0.2) .* cos(2 * pi * fc * t); % AM信号为例