实现一个基本的数字音乐合成器,并使用它来播放传统歌曲在一个三声音安排。指定采样率为2khz。保存歌曲作为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 0 3 5 5 0 3 2 1 2 3 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 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 3 3 3 0 2 3 0 1]+1;歌= [];为kj=1:length(mel)song=[歌曲注释(mel(kj),acc(kj))零(1,0.01*fs)];结束歌=歌曲' / (max (abs(歌曲))+ 0.1);%听到,输入声音(song,fs)曲调=时间表(秒((0:长度(歌曲)-1)’/fs),歌曲;
开放信号分析仪然后将时间表从工作区浏览器拖动到信号表。单击显示网格创建一个2乘2的显示网格。选择顶部的两个显示器和左下角的显示器,单击光谱按钮,添加光谱视图。选择右下角显示,单击时频要添加光谱图视图,请单击时间若要删除时间视图,请将歌曲拖到所有四个显示器上。选择右下角的显示器,然后在光谱图Tab,指定时间分辨率为0.31秒(310毫秒),相邻段之间0%重叠。设置权限来 dB和 dB。
在分析仪选项卡上,单击复制三次创作歌曲的三个副本。将副本重命名为高的
,媒介
和低
通过双击的名字信号表中的列。将副本移动到顶部的两个和左下角的显示器上。
使用滤波器对重复信号进行预处理。
选择高的
在signal表中单击它的名称。在分析仪选项卡上,单击高通滤波.在高通滤波选项卡出现时,输入一个450 Hz的通频带频率并将陡度增加到0.95。点击高通滤波.
选择媒介
在signal表中单击它的名称。在分析仪选项卡上,单击预处理▼ 选择带通.在带通选项卡中,分别输入230hz和450hz作为上、下通频带频率。将陡度增加到0.95。点击带通.
选择低
在signal表中单击它的名称。在分析仪选项卡上,单击低通.在低通选项卡,输入230 Hz的通带频率,并将陡度增加到0.95。单击低通.
在三个包含过滤信号的显示器上:
通过清除其名称旁边的复选框来删除原始信号。
在显示选项卡上,单击时频添加一个声谱图视图,单击时间删除时间视图。
在光谱图选项卡,指定时间分辨率为0.31秒,相邻段之间的重叠为0%。设置权限来 dB和 dB。
通过点击它们来选择三个过滤的信号的名字列。在分析仪选项卡上,单击出口并将信号保存到一个mat文件中music.mat
。在MATLAB中,将文件加载到工作区。绘制三个信号的频谱。
负载音乐pspectrum(低)保持在…上pspectrum(媒介)pspectrum(高)从
%要听到不同的声音,请键入%声音(低。低,fs),暂停(5),声音(中。中,fs),暂停(5),声音(高。高,fs)