语音信号处理MATLAB实现
matlab语音信号处理的一段代码
涉及到的函数sound()函数audioread()函数
sound函数的输入参量是音频数据向量、采样频率和转换位数。
也可以自己写些声音数据。下面的声音声调和频率有关,长度和数据长度有关:
例如:
sound(sin(2*pi*25*(1:4000)/100));
响两声就是:
sound(sin(2*pi*25*(1:4000)/100));
pause(1);
sound(sin(2*pi*25*(1:4000)/100));
MATLAB也自带了很多声音:
%鸟声
load chirp
sound(y,Fs)
%锣声
load gong
sound(y,Fs)
%哈里路亚
MATLAB里函数audioread的使用格式:
[y,Fs]=audioread('D:\MATLAB\work\noisymusic.wav');
sound(y,Fs);
还涉及到数字信号处理的一部分信号处理的知识,这里只是简单的用低通滤波器来进行处理,可以发现滤波的效果并不好
[y,fs]=audioread('D:\matlab\work\voice.mp3');
sound(y,fs) % 回放语音信号
n=length(y) %选取变换的点数
y_p=fft(y,n); %对n点进行傅里叶变换到频域
f=fs*(0:n/2-1)/n; % 对应点的频率
figure(1)
subplot(2,1,1);
plot(y); %语音信号的时域波形图
title('原始语音信号采样后时域波形');
xlabel('时间轴')
ylabel('幅值 A')
subplot(2,1,2);
plot(f,abs(y_p(1:n/2))); %语音信号的频谱图
title('原始语音信号采样后频谱图');
xlabel('频率Hz');
ylabel('频率幅值');
%对音频信号产生噪声L=length(y) %计算音频信号的长度noise=0.1*randn(L,2); %产生等长度的随机噪声信号(这里的噪声的大小取决于随机函数的幅度倍数)y_z=y+noise; %将两个信号叠加成一个新的信号——加噪声处理 pause(5)sound(y_z,fs)
%对加噪后的语音信号进行分析
n=length(y); %选取变换的点数
y_zp=fft(y_z,n); %对n点进行傅里叶变换到频域
f=fs*(0:n/2-1)/n; % 对应点的频率
figure(2)
subplot(2,1,1);
plot(y_z); %加噪语音信号的时域波形图
title('加噪语音信号时域波形');
xlabel('时间轴')
ylabel('幅值 A')
subplot(2,1,2);
plot(f,abs(y_zp(1:n/2))); %加噪语音信号的频谱图
title('加噪语音信号频谱图');
xlabel('频率Hz');
ylabel('频率幅值');
%对加噪的语音信号进行去噪程序如下:
fp=1500;fc=1700;As=100;Ap=1;
%(以上为低通滤波器的性能指标)
wc=2*pi*fc/fs; wp=2*pi*fp/fs;
wdel=wc-wp;
beta=0.112*(As-8.7);
N=ceil((As-8)/2.285/wdel);
wn= kaiser(N+1,beta);
ws=(wp+wc)/2/pi;
b=fir1(N,ws,wn);
figure(3);
freqz(b,1);
title('低通滤波器的幅频图');
xlabel('频率/hz');
ylabel('幅度/db');
%(此前为低通滤波器设计阶段)——接下来为去除噪声信号的程序——
x=fftfilt(b,y_z);
X=fft(x,n);
figure(4);
subplot(2,2,1);plot(f,abs(y_zp(1:n/2)));
title('滤波前信号的频谱');
subplot(2,2,2);plot(abs(X));
title('滤波后信号频谱');
subplot(2,2,3);plot(y_z);
title('滤波前信号的波形')
subplot(2,2,4);plot(x);
title('滤波后信号的波形')
pause(5);
sound(x,fs) %回放滤波后的音频
语音信号处理MATLAB实现相关推荐
- matlab关于噪声课设,基于matlab的有噪声的语音信号处理的课程设计.doc
基于matlab的有噪声的语音信号处理的课程设计.doc DSP实验课程设计实验报告DSP实验课程设计实验报告姓名学号班级1课程设计题目基于MATLAB的有噪声的语音信号处理的课程设计.2课程设计的目 ...
- 基于matlab的语音信号基本处理系统,基于matlab的语音信号处理及分析
内容简介: 毕业设计 基于matlab的语音信号处理及分析(共19页,8147字) 引言 数字信号处理的主要研究对象是数字信号,且是采用运算的方法达到处理的目的的,因此,其实现方法,基本上分成两种实现 ...
- 语音信号处理频域语谱图matlab实验,语音信号的频域分析
实验二:语音信号的频域分析 实验目的:以MATLAB 为工具,研究语音信号的频域特性,以及这些特性在<语音信号处理>中的应用情况. 实验要求:利用所给语音数据,分析语音的频谱.语谱图.基音 ...
- 基于matlab的有噪声语音信号处理,基于matlab的有噪声语音信号处理毕设
基于matlab的有噪声语音信号处理毕设 - I - I 大学本科毕业设计论文 基于MATLAB的有噪声语音信号处理- II - II 摘要 滤波器设计在数字信号处理中占有极其重要的地位,FIR 数字 ...
- 【老生谈算法】matlab实现语音信号处理与仿真——语音信号处理算法
基于Matlab的语音信号处理与仿真 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]MATLAB语音处理.docx 2.算法 ...
- 基于matlab的音频信号处理系统,毕业设计-基于matlab的语音信号处理及分析
资料简介 毕业设计 基于matlab的语音信号处理及分析(共19页,8147字) 引言 数字信号处理的主要研究对象是数字信号,且是采用运算的方法达到处理的目的的,因此,其实现方法,基本上分成两种实现方 ...
- matlab声音信号加入余弦噪声,基于窗函数法的数字滤波器语音信号处理
摘要:有限长冲激响应(FIR)数字滤波器具有描述方便.系统稳定.易于实现线性相位等特点,获得了广泛的应用.该文采用FIR数字滤波器的窗函数法设计滤波器,针对语音信号中出现的加性噪声进行消除,并在mat ...
- 基于matlab的语音信号处理,基于MATLAB语音信号处理的研究
摘 要:语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一.通过语音传递信息是人类最重要.最有效.最常用和最方便的交换信 ...
- 基于MATLAB的语音信号处理系统的设计
目 录 摘 要 I Abstract II 1 绪论 1 2 语音信号处理系统设计方案 2 2.1MATLAB的说明 2 2.2系统框架及实现流程图 2 2.2.1系统框架: 2 2.2.2系统流程图 ...
最新文章
- 架构 | 微服务架构下如何解耦,对于已经紧耦合下如何重构?
- CSS 中的内联元素、块级元素以及display的各个属性的特点
- 自动部署war包脚本
- Java io流---拷贝目录
- shell实战训练营Day1
- 分布式锁 动态代理 Java数据结构List,Set,Map,Spring执行流程,Spring MVC组件
- 计算机证据的获取,计算机证据获取技术的研究与应用.pdf
- 系统视图和用户视图的区别_读书笔记——数据库系统概论
- [总结]RTMP流媒体技术零基础学习方法
- 虚拟机下安装MS-DOS
- 2019最新猎豹网校JAVA语言数据结构与算法教程(Java语言 )
- 2.10 MapReduce文件合并
- 微软服务器操作系统后门,Windows操作系统后门
- 新猿木子李:0基础学python培训教程 Python操作Redis之集合类型2
- Flutter时间转换工具类
- MyEclipse开发Struts1实例
- Mysql 修改管理员密码
- Java时间类型转换详细代码示例
- 如何创建完美的Facebook封面照片
- 合肥千峰前端培训---使用layui写传统mvc模式后台管理