语音信号采集与滤波处理系统设计与实现

任务要求

  1. 利用MATLAB 设计实现语音信号采集处理软件,通过MIC 实时录制并分析语音信号,包括实时显示信号波形、时域统计特征值、计算信号的频谱等;
  2. 采集并录制一段自己的语音信号,选取合适的滤波器性能指标,采用双线性变换设计不同类型(包括巴特沃斯、切比雪夫I 型、切比雪夫II 型、椭圆)滤波器,比较并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;
  3. 基于MATLAB GUI 设计语音信号采集与滤波处理系统界面,实现上述语音采集、滤波处理功能。要求该系统可以选择滤波器的类型,输入滤波器的参数,显示滤波器的频率响应,选择信号,显示滤波前后的频谱,播放功能等。

实践原理

  1. 采样定理
  2. 时域信号的FFT分析
  3. 双线性变换
  4. 滤波器设计

实现代码

  • 为了将原始的模拟语音信号转变为数字信号,必须进行采样和量化,进而得到时间和幅度上均为离散的数字语音信号。

原始语音信号使用 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)——(一)相关推荐

  1. matlab对图像信号进行频谱分析及滤波,数字信号处理课程设计---应用 Matlab对信号进行频谱分析及滤波...

    数字信号处理课程设计---应用 Matlab对信号进行频谱分析及滤波 课课 程程 设设 计 (论文) 报计 (论文) 报 告告 书书 课程名称课程名称 数字信号处理 题题 目目 应用Matlab 对信 ...

  2. matlab音乐信号处理,数字信号处理课程设计---基于 MATLAB 的音乐信号处理和分析...

    数字信号处理课程设计---基于 MATLAB 的音乐信号处理和分析 1<数字信号处理>课程设计设计题目:基于 MATLAB 的音乐信号处理和分析一.课程设计的目的本课程设计通过对音乐信号的 ...

  3. 电信专业《数字信号处理课程设计》任务书

    电信专业<数字信号处理课程设计>任务书 (一) clc;clear; Y_vect=[1 -0.5 0.25]; %num X_vect=[1 2 0 1]; %den figure(1) ...

  4. matlab x(n)16点DFT,数字信号处理课程设计参考题目

    数字信号处理课程设计资料 使用MATLAB(或其他开发工具)编程实现下述内容并写出课程设计报告. 一.课程设计参考题目与设计内容(也可自行选题) 设计一基于DFT的信号频谱分析 主要要求: 1.对离散 ...

  5. 数字信号处理课程设计——调制与解调

    文字目录 数字信号处理课程设计 摘要: 1绪论 1.1通信信号的调制与解调 1.2设计题目 2卷积定理和希尔伯特公式理论推导 2.1卷积定理 ​2.2希尔伯特公式 3信号DSB调制与希尔伯特解调 3. ...

  6. Matlab 数字滤波器设计大报告(数字信号处理课程设计)附代码

    文章中滤波器设计与信号产生.处理的全部代码,几乎每行都有注释,在这里下载:https://download.csdn.net/download/weixin_42845306/18877388 摘要 ...

  7. matlab编写信号采集程序,MATLAB语音信号采集课程设计

    MATLAB语音信号采集课程设计 数字信号处理 课程设计报告 课设题目:语音信号的采集与处理 学 院:信息科学与工程学院 专 业:电子信息工程 班 级:电子0903 姓 名: 学 号: 指导教师:张海 ...

  8. 数字语音信号处理学习笔记——语音信号的数字模型(1)

    2.1 概述 为了用数字信号处理方法对语音信号进行处理,首先需要建立语音信号产生的数字模型,因此,我们必须在对人的发声器官和发声机理进行研究的基础上,才能建立精确的模型.但是,由于人类语音产生过程的复 ...

  9. matlab 语音信号采集,MATLAB语音信号采集与处理.doc

    MATLAB课程设计报告 课题:语音信号采集与处理 目录 TOC \o "1-3" \h \z \u 一.实践目的 3 二.实践原理: 3 三.课题要求: 3 四.MATLAB仿真 ...

最新文章

  1. ArcGIS制图之Sub Points点抽稀
  2. TreeView和DataGridView控件组合使用
  3. [转] 关于ASP.NET中由于无法创建应用程序域,因此未能执行请求解决方案
  4. TiDB 分布式数据库(一)
  5. Java数组排序解码
  6. html的技术标准网站,HTML5标准最新技术预览
  7. mysql的分页怎么不对_jsp+mysql分页显示我的怎么不对啊?显示始终不对!
  8. HTML中id和name的区别(js中的注意事项)
  9. Safari 最新技术预览版来啦,为开发者带来了哪些新功能?
  10. AndroidStudio debug
  11. 01 hadoop介绍、架构原理
  12. 分数阶微积分学薛定宇电子版_薛定宇
  13. ios app推送通知详细教程一
  14. 字符全角半角转换及特殊符号转换
  15. 【原创】Ubuntu Docker 配置网易国内镜像
  16. 微信小程序开发基础知识2(黑马)
  17. 如何提高Python代码的可读性?
  18. Java Stream来写算法01——自幂数(水仙花数)
  19. 5G手机开打价格战,4G手机将被加速淘汰
  20. 江西省中小学生学籍管理使用相关

热门文章

  1. Python--Flask在使用 SQLAlchemy出现'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
  2. json转换格式错误
  3. Android MTK修改Key键
  4. Springboot毕设项目考勤打卡系统 k0e7rjava+VUE+Mybatis+Maven+Mysql+sprnig)
  5. 方正无盘服务器,方正科技改革大学图书馆电子阅览室
  6. 修改linux终端命令行颜色
  7. FreeSwitcch(java使用)
  8. 本地计算机上的mysql服务启动停止工作,本地服务开启MySQL57提示本地计算机上MySQL服务启动后停止。。。。...
  9. linux生成ssl证书
  10. 函数调用栈(Call Stack)