主要内容

从音乐信号中提取声音

实施基本的数字音乐合成器并使用它以三种语音排列播放传统歌曲。指定2 kHz的采样率。将歌曲保存为MATLAB®时间表。

fs = 2e3;T = 0:1 / FS:0.3-1 / FS;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)[11 1] * sin(2 * pi * [l(g)m(g)h(f)]'。* t);梅尔= [3 2 11 2 3 3 0 2 2 2 0 3 5 5 0 3 2 11 2 3 3 3 3 2 2 3 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 3 0 2 2 3 0 1] +1;歌曲= [];为了Kj = 1: song = [song note(mel(Kj),acc(Kj)) zeros(1,0,0.01*fs)];结尾song = song'/(max(abs(歌曲))+ 0.1);%听到,键入声音(歌曲,fs)曲调=时间表(秒((0:长度(歌曲)1)/ fs),歌曲);

打开信号分析仪并将时间表从Workspace浏览器拖到Signal表。点击显示网格▼创建一个显示的两个逐个网格。选择顶部两个显示器和左下显示,然后单击光谱按钮添加频谱视图。选择右下显示,单击时频添加声谱图视图,单击时间删除时间视图。将歌曲拖到所有四个显示器上。选择右下角显示,并在光谱图选项卡,指定在邻接段之间的0.31秒(310毫秒)和0%重叠的时间分辨率。设定电源限制 - 50. DB和 - 10. dB。

在这一点分析仪选项卡,单击重复的把这首歌复制三份。将副本重命名为中等的,低的双击姓名列。将副本移动到顶部两个位置,并显示左下角。

使用过滤器对重复信号进行预处理。

  1. 选择通过单击信号表中的名称来信号。在这一点分析仪选项卡,单击高通滤波.在这一点高通滤波选项卡出现时,输入一个450 Hz的通频带频率并将陡度增加到0.95。点击高通滤波

  2. 选择中等的通过单击信号表中的名称来信号。在这一点分析仪选项卡,单击预处理▼并选择承担.在这一点承担出现的选项卡,输入230Hz和450 Hz分别为较低和上通带频率。将陡峭增加到0.95。点击承担

  3. 选择低的通过单击信号表中的名称来信号。在这一点分析仪选项卡,单击低通滤波器.在这一点低通滤波器标签出现时,输入一个230 Hz的通频带频率,并将陡度增加到0.95。点击低通滤波器

在包含过滤信号的三个显示器中的每一个上:

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

  2. 在这一点展示选项卡,单击时频添加频谱图视图并单击时间删除时间视图。

  3. 在这一点光谱图选项卡,指定在邻接段之间的0.31秒和0%重叠的时间分辨率。设定电源限制 - 50. DB和 - 10. dB。

单击它们选择三个过滤的信号姓名列。在这一点分析仪选项卡,单击出口并将信号保存到名为MAT文件music.mat.在MATLAB中,将文件加载到工作区中。画出这三个信号的频谱。

加载音乐pspectrum(低)PSPectrum(中)PSPectrum(高)保持离开

图包含轴对象。具有标题FRES = 1.9536 Hz的轴对象包含3个类型的线。

要听不同的声音,打字% sound(low.low,fs), pause(5), sound(medium.medium,fs), pause(5), sound(high.high,fs)

也可以看看

应用

职能

相关例子

更多关于