华工信工实验参考——《DSP拓展实验:音乐信号处理》
实验题目:音乐信号处理
一、实验目的
二、实验要求
(2)设计均衡器,使得得不同频率的混合音频信号,通过一个均衡器后,增强或削减某些频率区域,以便修正低频和高频信号之间的关系;
三、实验1:设计函数实现一段语音或音乐的回声产生
3.1 实现回声产生的分析
回声的产生在时域上实际上就是让信号周期性出现,并且带有衰减。[1]我们设输入信号为x[n],输出信号为y[n],则我们可以用差分方程来进行数学建模:(word公式复制过来乱码,我就直接截图了)
%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,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)
在音乐信号处理中,我们会在混响时用到人工生成回声,在实际应用中一般不需要用到像梳状滤波器产生的无穷长的拖尾。因此我们可以根据实际需要将建模的差分方程进行调整,将无穷项的求和转换为有限项,得到H(z)
此时滤波器为FIR滤波器。因此我们接下来将用两种IIR梳状滤波器和FIR滤波器分别实现回声生成。
.2 FIR滤波器实现回声生成
3.2.1 参数设置
我们用FIR滤波器H1(z)来实现回声生成,我们产生一次回声,因此
%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”。
我们可以很清晰地看到,经过该FIR滤波器后,在原有信号后加上了清晰的重复,并且有一半的衰减,实验结果符合实验预期。
%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 结果与分析
我们可以清晰地从滤波器输出的图像中看到,时域有了明显的多次回响且不断衰减,频率基本不变,频谱图的幅度变大(因为同样的分量叠加),符合实验预期。
有需要全部源文件的可以邮箱1902946954@qq.com。
华工信工实验参考——《DSP拓展实验:音乐信号处理》相关推荐
- ❀工信工实验参考——《VHDL实验4—— 多功能秒表》
一般来说,我贴上来的代码都是能直接跑的,如果不行可以邮箱交流1902946954@qq.com 仅供参考,微机的老师讲的很好,所以请还是要先自己完成咯. 免责声明,本人菜只因一只,内容仅供参考,错了不 ...
- ❀工信工实验参考——《VHDL实验2——数码管及分频器》
一般来说,我贴上来的代码都是能直接跑的,如果不行可以邮箱交流1902946954@qq.com 仅供参考,微机的老师讲的很好,所以请还是要先自己完成咯. 免责声明,本人菜只因一只,内容仅供参考,错了不 ...
- 【正点原子STM32连载】第五十三章 DSP测试实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...
- dsp 实验c语言,dsp实验报告 实验1 ccs入门实验2(c语言的使用)
1. 1 DSP 实验报告实验报告 院 ( 系 ) 名 称 自 动 化 科 学 与 电 气 工 程 学 院 学 生 姓 名 学 号 任 课 老 师 吴 冠 2014 年 6 月 DSP 实验报告 1 ...
- 2021年春季学期-信号与系统-第七次作业参考答案-MATLAB实验题
本文是 2021年春季学期-信号与系统-第七次作业参考答案 的小题的参考答案. ▌MATLAB 实验题 ▌ 在网络学堂下载一段音乐及其经过处理后的音乐数据文件,聆听相应的音频效果.使用在MATLAB中 ...
- 2021年春季学期-信号与系统-第四次作业参考答案-MATLAB实验1
![](https://img-blog.csdnimg.cn/20210316221220995.gif#pic_center#pic_center =800x#pic_center =640x) ...
- 2021年春季学期-信号与系统-第四次作业参考答案-MATLAB实验题2
本文是 2021年春季学期-信号与系统-第四次作业参考答案 的内容. ▌MATLAB实验题2 2. 回声的模拟与消除 在山间,或者洞穴中说活,会听到回声,这是声音在相距较远的山壁之间来回反射传播产生的 ...
- 【备份】信工apache中有关http.conf的虚拟目录相关配置参考
参考信工服务器的 在http.conf文件的后面设置是这样(#为注释) #打开虚拟端口 NameVirtualHost *:80 #设置虚拟端口80的目录 #ServerName 是访问的域名或IP ...
- c语言上机实验第五章答案,安徽大学C语言上机实验参考答案
安徽大学C语言上机实验参考答案 C语言实验参考答案 实验一 5.输入并运行自已编写的程序(教材第一章P14 三编程题). 实验二 1.编写一个程序,从键盘接收3个实数(分别为10.0.20.0.5.0 ...
最新文章
- git reset用法
- sql server 作业收缩数据库
- GWT Spring和Hibernate进入数据网格世界
- html中设置data-*属性值 并在js中进行获取属性值
- mui(APP)全屏展示
- 2015年Java组B组
- 《ARM Cortex-M3权威指南》--语句摘要
- Ribbon界面制作
- ZKTeco live20R指纹采集识别适配谷歌浏览器
- OSError: cannot open resource
- python怎么读取txt文件并统计其字数-python读取word文本进行词频统计
- 【使用教程】教你如何拼接多张图片
- 物联网发展存在的问题,具体有哪些?
- php内存不够,php内存不足怎么办
- Oracle项目管理系统之合同评审
- python读取excel不读取公式_openpyxl读取excel不输出公式data_only=True属性
- Java/Android中汉字转拼音的两种方法,优劣比较
- 七彩跑马闪光灯方案开发 MCU产品开发
- 在Linux下玩拳皇(不是Wine的)
- 500多款免费商用字体,让你的设计如虎添翼!