数字信号处理课程设计:语音信号采集与滤波处理系统设计与实现 (MATLAB)——(一)
语音信号采集与滤波处理系统设计与实现
任务要求
- 利用MATLAB 设计实现语音信号采集处理软件,通过MIC 实时录制并分析语音信号,包括实时显示信号波形、时域统计特征值、计算信号的频谱等;
- 采集并录制一段自己的语音信号,选取合适的滤波器性能指标,采用双线性变换设计不同类型(包括巴特沃斯、切比雪夫I 型、切比雪夫II 型、椭圆)滤波器,比较并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;
- 基于MATLAB GUI 设计语音信号采集与滤波处理系统界面,实现上述语音采集、滤波处理功能。要求该系统可以选择滤波器的类型,输入滤波器的参数,显示滤波器的频率响应,选择信号,显示滤波前后的频谱,播放功能等。
实践原理
- 采样定理
- 时域信号的FFT分析
- 双线性变换
- 滤波器设计
实现代码
- 为了将原始的模拟语音信号转变为数字信号,必须进行采样和量化,进而得到时间和幅度上均为离散的数字语音信号。
原始语音信号使用 Windows自带录音机录制,时长为 5s,录音功能代 码如下 :
fs = 44100; % 采样频率
duration = 5; % 时间长度(秒)
n = duration*fs; % 采样点数
t = (1:n)/fs;%创建一个录音文件:fs =44100, 16-bit, 单通道recObject = audiorecorder(fs, 16, 1);
fprintf('3秒后开始录音:\n');pause(3);
fprintf('录音中...\n');
recordblocking(recObject, duration);
stop(recObject);
fprintf('录制结束\n');
fprintf('按任意键播放录制音频:\n');pause
play(recObject); % 播放录制的音频
y = getaudiodata(recObject);ymax = max(abs(y)); % 归一化
y = y/ymax;audiowrite('voice1.wav', y, fs); % 写入音频,进行保存figure(1);
plot(t, y);
xlabel('时间/s');
ylabel('幅度');
title('(a)fs = 44100');
- 波形分析
[x, fs] = audioread('D:\MatlabFile\voice.wav');L = length(x);
X=fft(x,L);
A = fftshift(X);
A=abs(A);magX = abs(X);
angX = angle(X);ws = 2* pi* fs;
w = (-ws/2 + (0:L-1) * ws/L)/(2 * pi);
figure(1)
subplot(221);
plot(t, x);
title('原始信号波形');
xlabel('时间/s');
ylabel('幅度');
subplot(222);
plot(w, abs(A));
title('原始信号频谱');
xlabel('频率/Hz');
ylabel('幅度');
subplot(223);
plot(magX);
title('原始信号幅值');
subplot(224);
plot(angX);
title('原始信号相位');
- 加入正弦噪声
Au = 0.1;
n = (Au*sin(2*pi*5000*(1:size(x))/fs))'; %加入正弦噪声
% 合成后的语音信号(含噪声)
y = x + n;
% sound(y, fs ,16);figure(2)
subplot(2,2,1)
plot(t, x) %做原始语音信号的时域图形
title('原语音信号时域波形')
xlabel('时间/s');
ylabel('幅度');
subplot(2,2,2)
plot(t, y) %做原始语音信号的时域图形
title('加正弦噪声后语音信号时域波形')
xlabel('时间/s');
ylabel('幅度');y1=fft(y,L);
A1 = fftshift(y1);
A1 = abs(A1);subplot(2,2,3)
plot(w, abs(A))
title('原始语音信号频谱');
xlabel('频率/Hz');
ylabel('幅度');subplot(2,2,4)
plot(w, abs(A1))
title('加噪语音信号频谱');
xlabel('频率/Hz');
ylabel('幅度');
数字信号处理课程设计:语音信号采集与滤波处理系统设计与实现 (MATLAB)——(一)相关推荐
- matlab对图像信号进行频谱分析及滤波,数字信号处理课程设计---应用 Matlab对信号进行频谱分析及滤波...
数字信号处理课程设计---应用 Matlab对信号进行频谱分析及滤波 课课 程程 设设 计 (论文) 报计 (论文) 报 告告 书书 课程名称课程名称 数字信号处理 题题 目目 应用Matlab 对信 ...
- matlab音乐信号处理,数字信号处理课程设计---基于 MATLAB 的音乐信号处理和分析...
数字信号处理课程设计---基于 MATLAB 的音乐信号处理和分析 1<数字信号处理>课程设计设计题目:基于 MATLAB 的音乐信号处理和分析一.课程设计的目的本课程设计通过对音乐信号的 ...
- 电信专业《数字信号处理课程设计》任务书
电信专业<数字信号处理课程设计>任务书 (一) clc;clear; Y_vect=[1 -0.5 0.25]; %num X_vect=[1 2 0 1]; %den figure(1) ...
- matlab x(n)16点DFT,数字信号处理课程设计参考题目
数字信号处理课程设计资料 使用MATLAB(或其他开发工具)编程实现下述内容并写出课程设计报告. 一.课程设计参考题目与设计内容(也可自行选题) 设计一基于DFT的信号频谱分析 主要要求: 1.对离散 ...
- 数字信号处理课程设计——调制与解调
文字目录 数字信号处理课程设计 摘要: 1绪论 1.1通信信号的调制与解调 1.2设计题目 2卷积定理和希尔伯特公式理论推导 2.1卷积定理 2.2希尔伯特公式 3信号DSB调制与希尔伯特解调 3. ...
- Matlab 数字滤波器设计大报告(数字信号处理课程设计)附代码
文章中滤波器设计与信号产生.处理的全部代码,几乎每行都有注释,在这里下载:https://download.csdn.net/download/weixin_42845306/18877388 摘要 ...
- matlab编写信号采集程序,MATLAB语音信号采集课程设计
MATLAB语音信号采集课程设计 数字信号处理 课程设计报告 课设题目:语音信号的采集与处理 学 院:信息科学与工程学院 专 业:电子信息工程 班 级:电子0903 姓 名: 学 号: 指导教师:张海 ...
- 数字语音信号处理学习笔记——语音信号的数字模型(1)
2.1 概述 为了用数字信号处理方法对语音信号进行处理,首先需要建立语音信号产生的数字模型,因此,我们必须在对人的发声器官和发声机理进行研究的基础上,才能建立精确的模型.但是,由于人类语音产生过程的复 ...
- matlab 语音信号采集,MATLAB语音信号采集与处理.doc
MATLAB课程设计报告 课题:语音信号采集与处理 目录 TOC \o "1-3" \h \z \u 一.实践目的 3 二.实践原理: 3 三.课题要求: 3 四.MATLAB仿真 ...
最新文章
- ArcGIS制图之Sub Points点抽稀
- TreeView和DataGridView控件组合使用
- [转] 关于ASP.NET中由于无法创建应用程序域,因此未能执行请求解决方案
- TiDB 分布式数据库(一)
- Java数组排序解码
- html的技术标准网站,HTML5标准最新技术预览
- mysql的分页怎么不对_jsp+mysql分页显示我的怎么不对啊?显示始终不对!
- HTML中id和name的区别(js中的注意事项)
- Safari 最新技术预览版来啦,为开发者带来了哪些新功能?
- AndroidStudio debug
- 01 hadoop介绍、架构原理
- 分数阶微积分学薛定宇电子版_薛定宇
- ios app推送通知详细教程一
- 字符全角半角转换及特殊符号转换
- 【原创】Ubuntu Docker 配置网易国内镜像
- 微信小程序开发基础知识2(黑马)
- 如何提高Python代码的可读性?
- Java Stream来写算法01——自幂数(水仙花数)
- 5G手机开打价格战,4G手机将被加速淘汰
- 江西省中小学生学籍管理使用相关
热门文章
- Python--Flask在使用 SQLAlchemy出现'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
- json转换格式错误
- Android MTK修改Key键
- Springboot毕设项目考勤打卡系统 k0e7rjava+VUE+Mybatis+Maven+Mysql+sprnig)
- 方正无盘服务器,方正科技改革大学图书馆电子阅览室
- 修改linux终端命令行颜色
- FreeSwitcch(java使用)
- 本地计算机上的mysql服务启动停止工作,本地服务开启MySQL57提示本地计算机上MySQL服务启动后停止。。。。...
- linux生成ssl证书
- 函数调用栈(Call Stack)