从音乐信号中提取声音
实现一个基本的数字音乐合成器,并使用它来播放三声部编曲的传统歌曲。指定2千赫的采样率。将歌曲保存为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) (1 1 1) * sin(2 *π* (l (g) m (g) h (f)]的。* t);MEL = [3 2 1 2 3 3 3 0 2 2 2 0 3 5 5 0 3 2 1 2 3 3 3 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;Song = [];为Kj = 1:长度(mel)歌曲=[歌曲音符(mel(Kj),acc(Kj))零(1,0.01*fs)];结束Song = Song '/(max(abs(Song))+0.1);%要收听,输入声音(song,fs)Tune =时间表(秒((0:长度(歌曲)-1)'/fs),歌曲);
开放信号分析仪并将时间表从工作空间浏览器信号表。点击显示网格创建一个2乘2的显示网格。将光谱视图添加到顶部两个显示器和左下方显示器。选择右下角的显示,单击时频添加光谱图视图,单击时间删除时间视图。将歌曲拖到所有四个显示器上。选择右下角的显示,并在光谱图选项卡,指定的时间分辨率0.31
二、0
相邻段重叠百分比。设置权限来-50年
dB和-10年
dB。
在分析仪选项卡上,单击重复的三次复制这首歌。将副本重命名为高
,媒介
,低
双击的名字列的信号表。将副本移动到左上方和左下方的显示器。
在“信号”表中选择所有三个重复信号,然后单击进行预处理进入预处理模式。
选择
高
信号,通过在信号表中单击其名称。选择高通滤波从功能画廊。在函数参数面板上,输入一个通频带的频率450
Hz并将陡度增加到0.95
.点击应用.选择
媒介
信号,通过在信号表中单击其名称。选择带通从功能画廊。在函数参数面板中,输入230
赫兹和450
Hz分别为上、下通频带频率。增加陡度到0.95
.点击应用.选择
低
信号,通过在信号表中单击其名称。选择低通滤波器从功能画廊。在函数参数面板上,输入一个通频带的频率230
Hz并将陡度增加到0.95
.点击应用.
点击接受所有保存预处理结果并退出该模式。
查看包含过滤信号的三个显示器上的频谱图。
清除信号名称旁边的复选框,删除原始信号。
在显示选项卡上,单击时频添加频谱图视图,单击时间删除时间视图。
在光谱图选项卡,指定的时间分辨率
0.31
二、0
相邻段重叠百分比。设置权限来-50年
dB和-10年
dB。
通过单击三个滤波信号来选择它们的名字列的信号表。在分析仪选项卡上,单击出口并将信号保存到一个名为music.mat
.在MATLAB中,将文件加载到工作区。画出这三个信号的光谱。
负载音乐pspectrum(低)在Pspectrum(中)Pspectrum(高)稍等从
要听到不同的声音,请键入% sound(low.low,fs), pause(5), sound(medium.medium,fs), pause(5), sound(high.high,fs)
另请参阅
应用程序
功能
相关的例子
- 找出相关信号之间的延迟
- 通过改变窗户泄漏来解决音调问题
- 使用持久谱发现干扰
- 利用复包络的调制与解调
- 使用重新分配的光谱图寻找和跟踪脊
- 非均匀采样信号的重采样与滤波
- 使用自己的函数衰减饱和信号
- 计算振动信号的包络谱
- 从鲸鱼的歌声中提取感兴趣的区域