实验方案
重难点技术.
1.基波频率和音高的推算
实现思路:
乐音是指发音物体有规律地振动而产生的具有固定音高的音。基波频率是指声音中使声音达到最强的特定的最低频率。音乐是基波频率和谐波频率合成的,从音乐中首先要准确提取出每个乐音的基波频率,以便推算其他各个乐音的相对的音高频率。
比如标准F调的do音基波频率是174.610Hz,按照十二平均律的算法112i+1i2 ff=×,7个乐音频率对应基波频率的倍数依次是:1、21/6、21/3、25/12、 27/12、23/4、211/12、2,即174.610Hz、195.993Hz、219.994Hz、233.076Hz、261.619Hz、293.657Hz、329.619Hz。
1.通过FFT得到频域波形.
相关原理:
利用傅里叶分析(DFT)可以对频率构成、频率宽度等特征进行分析。
因为计算机只能处理离散的有限 长的序列数据,所以计算机进行DFT时使用的输入值是N个具体的采样值,也就是时域的信号值,输 入采样点的数量N决定了转换的计算规模。
而快速傅里叶变换(FFT)是离 散傅里叶变换DFT的快速算法,可以加快计算机的处理速度。根据采样定理, FFT能分辨的最高频率为采样频率的一半(即Nyquist频率),函数FFT返回值是以Nyqusit 频率为轴对称的。我们通过截取结果中小于等于Nyquist频率的前一半图像,从而得到相关的频域波形。
实现代码:
实验效果:
可见,信号经过FFT后的频谱图可以采用N/2+1个点的信息, x 轴是对应于时间序列的频率序列, x 轴最大的频率是FS/2, y 轴是幅值,是FFT后所得复数的模。
2.回响效果.
相关原理:
回响的说明:即对音乐信号进行“延时”+“叠加”。
(注:人耳能分辨出的声音延迟至少是0.1s,因此,最小延迟量不能小于0.1s。)
具体步骤如下:
1).暂停当前音乐;
2).从下拉菜单中获取所需延迟的采样点数num;
3).利用矩阵置零产生延迟信号z;
4).将原始信号y与延迟信号z相加,得到回响信号;
5).继续当前播放。
实现代码:
3.基波频率和音高的推算 .
实现思路:
乐音是指发音物体有规律地振动而产生的具有固定音高的音。基波频率是指声音中使声音达到最强的特定的最低频率。音乐是基波频率和谐波频率合成的,从音乐中首先要准确提取出每个乐音的基波频率,以便推算其他各个乐音的相对的音高频率。
比如标准 F调的do音基波频率是174.61Hz, 按照十二平均律的算法fi+1=fi*2 (1/12),7个乐音频率对应基波频率的倍数依次是:1、21/6、21/3、25/12、 27/12、23/4、211/12、2,即174.610、195.993、219.994、233.076、261.619、293.657、329.619。
3.通过单音节频域特性求泛音列.
相关原理:
乐器的音高通常和谐波震荡有关。譬如弦乐器或管乐器可对空气震荡以产生声音,并且可同时以不同的频率震荡,以发出不同频率的声音。而根据驻波的原理可知这些频率大多数呈现倍数关系,而这些不同频率的声波即组成泛音列。
我们先对时域信号进行傅里叶变换,得出频域特性,再通过设置最高频率和开窗的宽度,得到各个N倍频的振幅,最后通过归一化得到该乐器的泛音列。
实现代码:
得到频域特性:
求泛音列:
实验效果:
(1)频域图形:
(2)所求泛音列:
4.回响效果
相关原理:
回响的说明:即对音乐信号进行“延时”+“叠加”。(注:人耳能分辨出的声音延迟至少是0.1s,因此,最小延迟量不能小于0.1s。)
1. 具体步骤如下:
2. 暂停当前音乐;
3. 从下拉菜单中获取所需延迟的采样点数num;
4. 利用矩阵置零产生延迟信号z;
5. 将原始信号y与延迟信号z相加,得到回响信号;
6. 继续当前播放。
5.人声消除
相关原理:
首先,背景音乐一般是双声道的,也就是说两个声道的相关数据不同,而人声音频数据一部分是单声道的,也就是人声一部分音频数据平均分配到两个声道。根据这一点,我们可以使用声道数据作差抵消来达到一定的人声消除效果,而且对伴奏造成的影响也较小。
然后,我们可以利用MALAB的滤波器来进行人声频带的滤除进一步提升人声消除效果。而且可以轻松得到很高阶的滤波器。
涉及到的主要函数为fir1和filter。
fir1是基于窗口的滤波器函数,传入参数依次为滤波器阶数以及通带频率范围,返回滤波器系数,此处为了达到消除人声效果设计了相关的参数。
filter使用是y =filter(b,a,x) ,使用由分子和分母系数 b 和 a 定义的有理传递函数 对输入数据 x 进行一阶滤波,返回滤波后的音频数据。