文章目录
前言
用生成的一组音频文件举例
一、构造一组声音
模拟钢琴音乐,采用逐渐衰减振荡的正弦波
FFT的频域展示:
源代码:
function sound_fir
Fs = 1000; % 采样频率
freq = [200, 230, 260, 290, 320, 350, 380,410, 440,470]; % 频率数组
rythm = 0.5; % 持续时间,单位:秒
gap_duration = 0.2; % 间隔时间,单位:秒
y = []; % 初始化 y
note_length = numel(freq); % 使用频率的长度
% 生成时间向量
x = linspace(0, rythm, floor(Fs * rythm));
s = zeros(note_length, numel(x));
% 生成每个频率的波形
for i = 1:note_length
s(i, :) = sin(2 * pi * freq(i) * x) .* (1 - x / (rythm));
end
% 合并音频信号,并添加间隔
for i = 1:note_length
y = [y, s(i, :)]; % 添加当前音符
% 添加间隔
y = [y, zeros(1, round(Fs * gap_duration))]