基于matlab的音频信号分析即处理

一直很多人都困惑,大学里学了数字信号能干嘛,很少又实践动手的机会(这都是看个人主动性的,从来不缺锻炼的机会,机会不会摆在你面前吧!)。很多人也就是做做题目 pray for passing the test.

下面开始介绍如果利用matlab处理音频信号文件。

--------------------------------------------------------------------------------------------------------------------------------------------------

我去,CSDN不允许上传音频文件....只好传XX盘了

下面是音频文件

首先利用matlab导入音频数据,这里要注意,matlab只能识别.wav格式的音频文件....

利用wavread函数可以导入音频数据,同样可以利用import data 工具进行数据的导入

[road,fs]=wavread('road.wav');

可以看到,这里data是音频文件的两个声道数据,fs记录的是音频文件的采样频率 fs=44,100 samples/second

我们可以按照时间序列观察音频文件的数据信息

做出上图的matlab代码:

%%******************************************

% code file : DSP_music_demo.m

% code writer : EOF

% code date : 2014.11.17

% e-mail : jasonleaster@gmail.com

%%******************************************

clear all

close all

clc

% read the music source file by function 'wavread()'

[data fs] = wavread('./road.wav');

% left channel of music is stored in data(:,1);

% right channel of music is stored in data(:,2);

left = data(:,1);

right = data(:,2);

% the sampling frequency of original digital signal.

time = (1/fs)*length(left);

t = linspace(0,time,length(left));

plot(t,left);

xlabel('time(sec)');

ylabel('relative signal strength');

上面的数据点太多,观察起来不便,我们可以再细致的观察段时段内的音频数据,左声道的前2000个点

close all

clc

time = (1/44100)*2000;

t = linspace(0,time,2000);

figure;

plot(t,left(1:2000));

xlabel('time(sec)');

ylabel('relative signal strength');

可以通过soundsc()函数测试试听音频数据

soundsc(left,fs)% plays left channel as mono

soundsc(right,fs)% plays right channel mono (sound nearly the same)

soundsc(road,fs)% plays stereo (ahhh…)

好玩的来了,原本没有回声的音频,怎么处理使之具有回声的效果呢?

下面是我们构造回声的模型,以前输入的延迟和当前输入的叠加得到的输出,而回声的明显程度就和这里的Delay有关系了

下面的程序简单实现了这个模型,很好玩哟~ 哇咔咔~原来回声可以这么简单的合成

%%******************************************

% code file : echo.m

% code writer : EOF

% code date : 2014.11.17

% e-mail : jasonleaster@gmail.com

%%******************************************

clear all

close all

clc

% read the music source file by function 'wavread()'

[data fs] = wavread('./road.wav');

% left channel of music is stored in data(:,1);

% right channel of music is stored in data(:,2);

left = data(:,1);

right = data(:,2);

leftout = left;

N = 10000;% delay second = N/fs;

% N = fs*0.1;% eg: I want to delay 0.1 second

for n = N+1:length(left)

leftout(n) = left(n) + left(n - N);

end

soundsc(leftout,fs);

同样,我们还可以把左声道回声到右声道,右声道回声到左声道,这在是实现上很简单~不贴代码了。

前面我们看到的是前馈(forwar-feed)

我们再考虑别的情况,反馈型feedback

注意我把输出信号的延迟量的0.8倍叠加到输入信号,然后作为输出。这是一种正反馈(系数为0.8)。而反馈系数小于1,于是这里回声会慢慢的变弱,越来越弱,以至于人辨别不出来了,但是这种回声不会消失!

out = data;

N = fs*0.1;

for n = N +1:length(left)

out(n,1) = 0.8*out(n-N,1) + left(n);

out(n,2) = 0.8*out(n-N,2) + right(n);

end

下面是关于声音频率的控制处理

下面的部分可以实现低通滤波

%% got the low frequency

out = left;

counter = 0;

for n = 2:length(left)

out(n,1) = 0.8*out(n-1) + 0.2*left(n);

end

下面的部分可以使得播放时声音的高频部分更明显。

如果想改变播放速度,soundsc的参数,直接改变fs即可。

接下来我们看看左声道数据的频谱,发现能量集中在低频段(左右两侧低频,中间是高频段)~

我们可以对输入信号进行低通滤波。仅保留低频段的左边20000个点和右边20000个点

你会听到很好玩的低频声音哈哈哈哈哈O(∩_∩)O~

高通滤波则反之.

当生活把我们打哭的时候,我们就把生活逗笑 : )

matlab数字音频处理实验报告,数字信号处理实践——基于matlab的音频信号分析即处理...相关推荐

  1. matlab数字音频处理实验报告,数字信号处理MATLAB实验1

    wavread 实验一熟悉MATLAB环境 一.实验目的 (1)熟悉MATLAB的主要操作命令. (2)学会简单的矩阵输入和数据读写. (3)掌握简单的绘图命令. (4)用MATLAB编程并学会创建函 ...

  2. matlab fft谱分析实验报告,数字信号处理实验报告-FFT算法的MATLAB实现.doc

    数字信号处理实验报告-FFT算法的MATLAB实现.doc 数字信号处理 实验报告实验二FFT算法的MATLAB实现一.实验目的通过本实验的学习,掌握离散傅立叶变换的理论,特别是FFT的基本算法以及其 ...

  3. 数字信号处理matlab实验报告,数字信号处理,matlab实验报告

    数字信号处理,matlab实验报告 Matlab实验报告 实验一: 1. 实验Matlab代码: N=25; Q=0.9+0.3*j; WN=exp(-2*j*pi/N); x=zeros(25,1) ...

  4. matlab数字信号处理实验报告,数字信号处理实验报告(Matlab与数字信号处理基础).doc...

    西华大学实验报告(理工类) 开课学院及实验室:电气信息学院 6A-205实验时间 :年月日学 生 姓 名学号成 绩学生所在学院电气信息学院年级/专业/班课 程 名 称数字信号处理课 程 代 码实验项目 ...

  5. matlab数字信号处理实验报告,数字信号处理实验报告一 离散信号及其MATLAB实验...

    数字信号处理 离散信号及其MATLAB实验 南昌航空大学实验报告 2012 年 04 月 06 日 课程名称: 数字信号处理 实验名称: 离散信号及其MATLAB实现 班级: 090423班 学号: ...

  6. matlab验证dtft移位性质,数字信号处理教程:MATLAB释义与实现(第2版)

    第1章 信号和信号处理1.1信号的分类1.2信号处理51.2.1信号处理的举例51.2.2信号处理的一般任务61.2.3数字信号处理71.3信号采样和复原实例81.4本书概貌的说明10复习思考题12习 ...

  7. 【数字信号处理】基于matlab LMD算法和ELMD算法管道泄漏信号处理【含Matlab源码 1985期】

    ⛄一.局部分解理论研究 局部均值分解算法(Local Mean Decomposition, LMD) 作为处理非平稳随机信号的一种手段,得到了广泛应用,并成熟地应用于机械故障诊断.信号特征提取与分析 ...

  8. matlab数字信号处理实验报告,【实验设计论文】Matlab的数字信号处理课程实验设计(共3490字)...

    摘要:本文设计了一个基于Matlab的"数字信号处理"课程综合性实验.该实验把"数字信号处理"课程中的许多离散的知识点串接了起来,包括采样.量化.滤波器设计.滤 ...

  9. 全相位数字信号处理方法及matlab实现,数字信号处理及matlab实现_实验报告册.doc...

    数字信号处理及matlab实现_实验报告册.doc 数字信号处理及MATLAB实现实验报告实验人孙敬贤实验1离散时间信号产生及频谱分析一.实验目的㈠掌握MATLAB产生常用离散时间信号的产生方法.㈡掌 ...

最新文章

  1. 知乎热议!一个博士生接受怎样的训练是完整的科研训练?
  2. java隐藏控件_Android控件的显示和隐藏
  3. 卡特兰数(Catalan number)
  4. session和cookie到底有什么联系?这一篇文章给你分析的明明白白~
  5. HDU4633(Polya计数)
  6. 报任安书文言现象_干货丨文言文句式详解,快点收藏!
  7. [2021.1.27多校省选模拟10]跑步(线段树合并)
  8. find_package()的查找*.cmake的顺序
  9. android学习资料整理-----高级篇
  10. 下载站mime属性设置(让文件可下载)
  11. 禅道类似软件_整理几款开源项目管理软件
  12. 卡尔曼滤波和互补滤波的区别
  13. git操作是出现Username for 'https://github.com':的验证问题
  14. 2.1Mysql 基础--基本介绍
  15. 文本分类(2)——取特征词构建词典
  16. pytorch_lesson16.1 OpenCV索贝尔算子/拉普拉斯算子调用+pytorch中构建cnn+复现经典模型(LeNet5+AlexNet)
  17. virtualBox虚拟机之间网络互通设置
  18. 图形驱动程序和显卡驱动什么区别_鸡血驱动已发布,可新买的显卡打不上驱动?这事儿别急...
  19. signal(SIGCHLD, SIG_IGN)
  20. 麦克斯韦方程组在电力传动领域的应用(1)

热门文章

  1. 国标视频融合监控汇聚云平台的方案实现及场景应用
  2. Mstar的Monitor方案OSD 菜单制作(一)————开篇
  3. Golang: 获取mp3歌曲文件时长
  4. Reentlock实现原理摘记
  5. 靠播放量tiktok赚钱,tiktok播放量可以赚钱吗?
  6. git merge origin master和git merge origin/master的区别
  7. MySql基础知识总结(SQL优化篇)
  8. Microsoft Windows Laptop ASUS 华硕笔记本电脑屏幕忽明忽暗问题可能解决方案
  9. 【LeetCode-SQL每日一练】——2. 第二高的薪水
  10. Java实现接口防篡改