主要内容

从音乐信号中提取声音

实现一个基本的数字音乐合成器,并使用它以三种声音的方式播放传统歌曲。指定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=[0261.63293.66329.63349.23392.00440493.88];h=[0523.25587.33659.25698.46783.99880987.77];注=@(f,g)[11]*sin(2*pi*[l(g)m(g)h(f)]'.*t;梅尔=[3 2 1 2 3 3 0 2 2 0 3 5 0 3 2 1 2 3 3 3 2 1]+1;acc=[3 0 5 0 3 3 2 0 2 3 0 5 5 3 0 5 0 3 3 0 2 3 0 1]+1;宋=[];对于Kj = 1: song = [song note(mel(Kj),acc(Kj)) zeros(1,0,0.01*fs)];终止宋=宋'/(最大(abs(宋))+0.1);%要收听,请键入声音(歌曲、fs)曲调=时间表(秒((0:长度(歌曲)1)/ fs),歌曲);

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

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

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

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

  2. 选择中等的通过单击信号表中的名称发送信号。上分析器选项卡,单击预处理▼并选择带通. 上带通选项卡中,分别输入230 Hz和450 Hz作为通带的下限和上限频率。将陡度增加到0.95。点击带通

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

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

  1. 清除原始信号名称旁边的复选框以删除原始信号。

  2. 陈列选项卡,单击时频要添加光谱图视图,请单击时间删除时间视图。

  3. 光谱图选项卡,指定0.31秒的时间分辨率和相邻线段之间0%的重叠。设定功率限制 - 50 数据库和 - 10 dB。

通过单击三个过滤后的信号来选择它们名称信号表中的列。上分析器选项卡,单击出口并将信号保存到一个名为音乐垫.在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)

另见

应用程序

功能

相关实例

更多关于