实验题目:音乐信号处理

一、实验目的

1、 了解回声的产生和梳妆滤波器;

  1. 混音效果的原理和均衡器的设计;

二、实验要求

(1)设计函数实现一段语音或音乐的回声产生;

(2)设计均衡器,使得得不同频率的混合音频信号,通过一个均衡器后,增强或削减某些频率区域,以便修正低频和高频信号之间的关系;

三、实验1:设计函数实现一段语音或音乐的回声产生

3.1 实现回声产生的分析

回声的产生在时域上实际上就是让信号周期性出现,并且带有衰减。[1]我们设输入信号为x[n],输出信号为y[n],则我们可以用差分方程来进行数学建模:(word公式复制过来乱码,我就直接截图了)

我们可以发现这是IIR中的梳状滤波器。

梳状滤波器它是由许多按一定频率间隔相同排列的通带和阻带,只让某些特定频率范围的信号通过。通过查阅文献我们可知梳状滤波器常用于衰减谐波尖峰间的频率分量,滤除周期信号的噪声。同时它的时域特性证明它可模拟回响。[2]

%CODE
Bz=1;            %分子的系数
Az=[1,0,0,0,0,0,0,0,0,0,-0.5];           %分母的系数
delta=[1,zeros(1,255)];
yy2=filter(Bz,Az,delta);%滤波器进行滤波
t=(0:length(yy2)-1);
figure(3)
plot(t,yy2);
figure(4);
freqz(yy2);

图1 梳状滤波器幅频相频特性

我们输入【1,2,3,2,1】的离散序列,观察滤波后的输出,代码如下:

%CODE
x=[1,2,3,2,1 zeros(1,251)];
figure(1);
n=[0:1:255];
stem(n,x)
yy1=filter(Bz,Az,x);%滤波器进行滤波
figure(2);
stem(n,yy1)

图2 梳状滤波器测试的输入信号

图3 梳状滤波后的输出信号

通过实验测试我们发现IIR梳状滤波器确实有模拟回响的功能。

在音乐信号处理中,我们会在混响时用到人工生成回声,在实际应用中一般不需要用到像梳状滤波器产生的无穷长的拖尾。因此我们可以根据实际需要将建模的差分方程进行调整,将无穷项的求和转换为有限项,得到H(z)

此时滤波器为FIR滤波器。因此我们接下来将用两种IIR梳状滤波器和FIR滤波器分别实现回声生成。

.2 FIR滤波器实现回声生成

3.2.1 参数设置

我们用FIR滤波器H1(z)来实现回声生成,我们产生一次回声,因此

y[n]=x[n]+ax[n-N]

我们将回声设置为有一半的幅度衰减,并且有一个时延,则

y[n]=x[n]+0.5*x[n-1]

则滤波器参数设置如下

H1(z)=1+0.5*z-1(是-1次幂)

我们根据设置的参数用matlab实现,代码如下:

3.2.2 源代码

%CODE
clc
clear
[x,fs]=audioread('1,2.wav');
x=x(:,1);
t=(0:length(x)-1)/fs;%变换得到播放时间
h=waitbar(0,'正在播放原始语音,请勿关闭!');
sound(x,fs);
pause(max(t))
waitbar(1,h,'播放结束');
delete(h);
xf=abs(fftshift(fft(x)));
figure(1)
subplot(211)
plot(t,x)
title('原始语音信号')
subplot(212)
plot(xf);
title('原始语音信号频谱')
z1=[zeros(10000,1);x];           %对信号进行延时10000个采样点
Z1=abs(fftshift(fft(z1)));
x1=[x;zeros(10000,1)];                 %使语音信号与延时后信号同等长度
y1=x1+0.5*z1;                             %信号的混响
Y1=abs(fftshift(fft(y1)));
t1=(0:length(y1)-1)/fs;%变换得到播放时间
h=waitbar(0,'正在播放混响语音,请勿关闭!');
sound(y1,fs);
pause(max(t1))
waitbar(1,h,'播放结束');
delete( h);
figure(2);
subplot(2,1,1);plot(y1); title('有限个回声滤波器时域图');       %有限回声滤波器时域波形
subplot(2,1,2);plot(Y1); title('有限个回声滤波器频谱图 ');    %有限回声滤波器频谱图

3.2.3 结果与分析

实验结果的音频在报告中无法有效展示,在此分别给出输入信号、输出信号的时域与频域的图示。这里输入信号为语音“1,2”。

图4 输入信号时域与频域图示

图5 输出信号时域与频域图示

我们可以很清晰地看到,经过该FIR滤波器后,在原有信号后加上了清晰的重复,并且有一半的衰减,实验结果符合实验预期。

3.3.2 源代码

%CODE
clear;
clc;
[x,fs]=audioread('1,2.wav');
x1=x(:,1);
t=(0:length(x)-1)/fs;%变换得到播放时间
figure(1)
plot(t,x1);
h=waitbar(0,'正在播放原始语音,请勿关闭!');
sound(x1,fs);
pause(max(t))
waitbar(1,h,'播放结束');
delete(h);
xf=abs(fftshift(fft(x1)));
figure(2)
subplot(211)
plot(t,x1)
title('原始语音信号')
subplot(212)
plot(xf);
title('原始语音信号频谱')
Bz=1;            %分子的系数
Az=[1,zeros(1,6499),-0.8];           %分母的系数
yy1=filter(Bz,Az,x1);                  %滤波器进行滤波
figure(3);
freqz(yy1);
YY1=abs(fftshift(fft(yy1)));           %经无限回声滤波器后的信号做FFT变换
t1=(0:length(yy1)-1)/fs;%变换得到播放时间
h=waitbar(0,'正在播放混响语音,请勿关闭!');
sound(yy1,fs);
pause(max(t1))
waitbar(1,h,'播放结束');
delete(h);
figure(4);
subplot(2,1,1);plot(yy1); title('无限个回声滤波器时域图');       %无限回声滤波器时域波形
subplot(2,1,2);plot(YY1); title('无限个回声滤波器频谱图 ');    %无限回声滤波器频谱图

3.3.3 结果与分析

我们输入仍用录制的“1,2”,如下图

图6 输入信号时域与频域图示

经过IIR梳状滤波器后得到的输出的时域与频域图示如下图

图7 IIR梳状滤波器输出时域与频域图示

我们可以清晰地从滤波器输出的图像中看到,时域有了明显的多次回响且不断衰减,频率基本不变,频谱图的幅度变大(因为同样的分量叠加),符合实验预期。

四、实验2:设计一个均衡器

这一部分我是参考的别人的,我就不放上来了。

有需要全部源文件的可以邮箱1902946954@qq.com。

华工信工实验参考——《DSP拓展实验:音乐信号处理》相关推荐

  1. ❀工信工实验参考——《VHDL实验4—— 多功能秒表》

    一般来说,我贴上来的代码都是能直接跑的,如果不行可以邮箱交流1902946954@qq.com 仅供参考,微机的老师讲的很好,所以请还是要先自己完成咯. 免责声明,本人菜只因一只,内容仅供参考,错了不 ...

  2. ❀工信工实验参考——《VHDL实验2——数码管及分频器》

    一般来说,我贴上来的代码都是能直接跑的,如果不行可以邮箱交流1902946954@qq.com 仅供参考,微机的老师讲的很好,所以请还是要先自己完成咯. 免责声明,本人菜只因一只,内容仅供参考,错了不 ...

  3. 【正点原子STM32连载】第五十三章 DSP测试实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1

    1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...

  4. dsp 实验c语言,dsp实验报告 实验1 ccs入门实验2(c语言的使用)

    1. 1 DSP 实验报告实验报告 院 ( 系 ) 名 称 自 动 化 科 学 与 电 气 工 程 学 院 学 生 姓 名 学 号 任 课 老 师 吴 冠 2014 年 6 月 DSP 实验报告 1 ...

  5. 2021年春季学期-信号与系统-第七次作业参考答案-MATLAB实验题

    本文是 2021年春季学期-信号与系统-第七次作业参考答案 的小题的参考答案. ▌MATLAB 实验题 ▌ 在网络学堂下载一段音乐及其经过处理后的音乐数据文件,聆听相应的音频效果.使用在MATLAB中 ...

  6. 2021年春季学期-信号与系统-第四次作业参考答案-MATLAB实验1

    ![](https://img-blog.csdnimg.cn/20210316221220995.gif#pic_center#pic_center =800x#pic_center =640x) ...

  7. 2021年春季学期-信号与系统-第四次作业参考答案-MATLAB实验题2

    本文是 2021年春季学期-信号与系统-第四次作业参考答案 的内容. ▌MATLAB实验题2 2. 回声的模拟与消除 在山间,或者洞穴中说活,会听到回声,这是声音在相距较远的山壁之间来回反射传播产生的 ...

  8. 【备份】信工apache中有关http.conf的虚拟目录相关配置参考

    参考信工服务器的 在http.conf文件的后面设置是这样(#为注释) #打开虚拟端口 NameVirtualHost *:80 #设置虚拟端口80的目录 #ServerName 是访问的域名或IP ...

  9. c语言上机实验第五章答案,安徽大学C语言上机实验参考答案

    安徽大学C语言上机实验参考答案 C语言实验参考答案 实验一 5.输入并运行自已编写的程序(教材第一章P14 三编程题). 实验二 1.编写一个程序,从键盘接收3个实数(分别为10.0.20.0.5.0 ...

最新文章

  1. git reset用法
  2. sql server 作业收缩数据库
  3. GWT Spring和Hibernate进入数据网格世界
  4. html中设置data-*属性值 并在js中进行获取属性值
  5. mui(APP)全屏展示
  6. 2015年Java组B组
  7. 《ARM Cortex-M3权威指南》--语句摘要
  8. Ribbon界面制作
  9. ZKTeco live20R指纹采集识别适配谷歌浏览器
  10. OSError: cannot open resource
  11. python怎么读取txt文件并统计其字数-python读取word文本进行词频统计
  12. 【使用教程】教你如何拼接多张图片
  13. 物联网发展存在的问题,具体有哪些?
  14. php内存不够,php内存不足怎么办
  15. Oracle项目管理系统之合同评审
  16. python读取excel不读取公式_openpyxl读取excel不输出公式data_only=True属性
  17. Java/Android中汉字转拼音的两种方法,优劣比较
  18. 七彩跑马闪光灯方案开发 MCU产品开发
  19. 在Linux下玩拳皇(不是Wine的)
  20. 500多款免费商用字体,让你的设计如虎添翼!

热门文章

  1. 【转】 很霸道,但很温馨的30句话
  2. 使用WSAIoctl获取AcceptEx函数指针
  3. 《大数据+AI在大健康领域中最佳实践前瞻》 ---- 健康体检类数据的元数据解读与探索
  4. 健迷笑脸墙之Wakin-1(Powered by Smile Wall v1.0)
  5. 图片分类器部署到Core ML
  6. linux 版本命令
  7. Linux字符串处理函数strdup、strndup、strndupa、strdupa
  8. 如何高效促活?华为应用市场AppGallery Connect增长指南来啦!
  9. 高性能可编程射频移相器介绍
  10. AVL树的插入与删除(详解)