欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LTI冲激响应卷积实验-附加音效

程序员文章站 2022-03-19 21:41:23
...

Introduction

这一部分内容主要以学习截图为主。方便自己回顾,给大家推荐一个非常优秀的B站uper,所有内容均出自他的课程。网站链接分享在此DR_CAN,Ph.D. in Dynamics and Control 机器人工程师。

本实验是关于笔记第三节现代控制理论-工程数学基础(3)-LTI冲激响应卷积

利用家里条件,在洗手间模拟冲激响应环境。尝试使用木棍,铲子及铁具相互碰撞,对比实验。

Experiment

具体步骤如下:
1、选取一段原声音乐
2、用手机录下冲激响应
3、用处理软件去除部分杂音
4、在matlab中跑以下代码

代码如下:

close all
clear
clc;

[Y1,fs1]=audioread( 'zhuimeng.mp3' ); %获取音频 1 文件,并返回采样数据到向量 y中, fs 表示采样频率
[Y2,fs2]=audioread( 'TC.mp3' ); %获取音频 1 文件,并返回采样数据到向量 y中, fs 表示采样频率

ft1 = Y1(:,1);
sigLength1 = length(ft1); %获取声音长度
t1=(0:sigLength1-1)/fs1; %求出音频 1 对应的时间坐标
subplot(3,1,1);
plot(t1,ft1); %画出音频 1 的波形图
title( ' 追梦人的波形图 ' );
xlabel( '时间(s)' );
ylabel( ' 振幅 ' );
grid;

ft2 = Y2(:,1);
sigLength2 = length(ft2); %获取声音长度
t2=(0:sigLength2-1)/fs2; %求出音频 2 对应的时间坐标
subplot(3,1,2);
plot(t2, ft2); %画出音频 2 的波形图
title( ' 冲击响应的波形图 ' );
xlabel( '时间(s)' );
ylabel( ' 振幅 ' );
grid;

ft=conv(ft1,ft2); %将两段音频进行卷积
sigLength = length(ft); %获取声音长度
t=(0:sigLength-1)/fs1;
subplot(3,1,3);
plot(t,ft); %画出卷积后的波形图
title( '卷积后的波形图 ' );
xlabel( '时间(s)');
ylabel( ' 振幅 ' );
grid;

sound(ft,fs1)

LTI冲激响应卷积实验-附加音效
图上和代码只对一种情况进行分析。
笔者对比三种物体相互碰撞产生的冲激响应,及卷积情况,排除误差外,卷积后的结果基本上相同。
致敬DR_CAN! 毕。

相关标签: 实验