主要内容

从音乐信号中提取声音

实现一个基本的数字音乐合成器,并使用它来播放传统歌曲的三声编曲。指定2 kHz的采样率。将歌曲保存为MATLAB®时间表。

fs = 2 e3;t = 0:1 / fs: 0.3 - 1 / f;L = [0 130.81 146.83 164.81 174.61 196.00 220 246.94];M = [0 261.63 293.66 329.63 349.23 392.00 440 493.88];H = [0 523.25 587.33 659.25 698.46 783.99 880 987.77];注意= @ (f, g) (1 1 1) * sin(2 *π* (l (g) m (g) h (f)]的。* t);MEL = [3 2 1 2 3 3 3 0 2 2 2 2 2 0 3 5 5 0 3 2 1 2 3 3 3 2 2 2 1]+1;Acc = [3 0 5 0 3 0 3 3 2 0 2 2 3 0 5 5 3 0 5 0 3 3 0 3 2 3 0 1]+1;歌= [];Kj = 1:length(mel) song = [song note(mel(Kj),acc(Kj)) zero (1,0.01*fs)];结束歌=歌曲' / (max (abs(歌曲))+ 0.1);%要听到,输入声音(song,fs)曲调=时间表(秒((0:长度(歌曲)1)/ fs),歌曲);

开放信号分析仪并将时间表从工作空间浏览器到信号表。点击显示网格创建一个2乘2的网格显示。在顶部两个显示器和左下方显示器中添加一个频谱视图。选择右下角的显示,单击时频要添加光谱图视图,请单击时间删除时间视图。把歌曲拖到所有四个显示。选择右下角的显示,并在光谱图选项卡,指定时间分辨率0.31二、0相邻段之间的重叠%。设置权限-50年dB和-10年dB。

分析仪选项卡上,单击重复的三次,把这首歌复制三份。将副本重命名为媒介,通过双击的名字列。将副本移动到最上面两个和左下方的显示。

在“信号”表中选中所有三个重复信号,单击进行预处理使用实例进入预处理模式。

  1. 选择在signal表中单击其名称。选择高通滤波功能画廊。在函数参数面板中,输入的通频带频率450并将陡度增加到0.95.点击应用

  2. 选择媒介在signal表中单击其名称。选择带通功能画廊。在函数参数面板中,输入230赫兹和450Hz分别为上通频带和下通频带频率。增加陡度到0.95.点击应用

  3. 选择在signal表中单击其名称。选择低通滤波器功能画廊。在函数参数面板中,输入的通频带频率230并将陡度增加到0.95.点击应用

点击接受所有保存预处理结果并退出。

test.png

查看包含滤波信号的三个显示器上的光谱图。

  1. 通过清除其名称旁边的复选框来删除原始信号。

  2. 显示选项卡上,单击时频添加光谱图视图并单击时间删除时间视图。

  3. 光谱图选项卡,指定时间分辨率0.31二、0相邻段之间的重叠%。设置权限-50年dB和-10年dB。

test.png

通过单击它们来选择三个经过筛选的信号的名字列。在分析仪选项卡上,单击出口并将信号保存到一个名为music.mat.在MATLAB中,将文件加载到工作区中。画出这三个信号的光谱。

负载音乐pspectrum(低)pspectrum(媒介)pspectrum(高)

图中包含一个axes对象。标题为Fres = 1.9536 Hz的axis对象包含3个类型为line的对象。

要听到不同的声音,键入%声音(low.low,fs),暂停(5),声音(medium.medium,fs),暂停(5),声音(high.high,fs)

另请参阅

应用程序

功能

相关的例子

更多关于

Baidu
map