接上文:https://blog.csdn.net/weixin_53877178/article/details/122475951

目录

一、课题的任务

二、内容、步骤和要求

(1)语音信号的采集

(2)语音信号的分析

(3)语音信号的滤波

(4)App的设计

1)相关组件的使用

2)App内添加自己的全局变量

3)报错及提示功能

报错及提示功能代码示例

4)退出功能

退出功能实例


一、课题的任务

二、内容、步骤和要求

(1)语音信号的采集

(2)语音信号的分析

(3)语音信号的滤波

(4)App的设计

1)相关组件的使用

直接从组件库中拖出你想要的组件到设计视图中即可。

右边组件浏览区双击可修改组件命名。

①标签:可以用于添加标题等。

双击即可编辑文本内容,右下角检查器可以修改相关属性(字体大小、颜色,对齐方式等)。

②按钮:可以添加回调函数,单击实现想要的功能。

右击添加回调函数,进入代码视图,进行代码设计。

③单选组按钮:可以实现多功能选择,例如:低通、高通、带通、带阻的选择。

整体右击添加 Filter_natureSelectionChanged 回调函数(Filter_nature为自命名),代码视图自动生成 function Filter_natureSelectionChanged(app, event) 和 selectedButton = app.Filter_nature.SelectedObject; 利用 switch 语句可以实现相应选项对应功能。在其他的回调函数内也可以使用 app.Filter_nature.SelectedObject 进行相关的操作(不用添加 Filter_natureSelectionChanged 回调函数也能够运用)。

④编辑字段(数值):实现输入框的功能,例如在框内输入设计指标,完成滤波器的设计。

双击提示语区域即可添加提示语,数值的使用格式如:FS = app.sample_frequency.Value;(app.sample_frequency为自命名),app.sample_frequency.Value同上,也是一个全局变量。

⑤微调器:实现如音乐播放器声音大小的调整功能。

添加回调函数方法与按钮相同。

⑥编辑字段(文本):既可以作为输入,也可以作为输出。输入、输出类似“编辑字段(数值)”。

输出:在某回调函数中加入如 app.sample_frequency.Value = “汉宁窗”;

⑦坐标区:绘制时域,频域波形,甚至可以展示图片。

双击相应区域,可以改变标题、横纵坐标。在某回调函数中加入如 plot(app.original_time,t,x); 就可以绘制波形。app.original_time为坐标区的命名。

2)App内添加自己的全局变量

在左侧代码浏览器中,选择属性,点击➕傍边的下三角添加私有属性(此App内的全局变量)。

代码视图会相应生成代码,除了内部内容是个示例,可以直接删除。

定义变量名如上图所示即可。其他函数内使用全局变量,写成形如 app.path 即可实现全局变量的赋值和应用。

3)报错及提示功能

报错:

f = errordlg(msg, title);

msg: 你想要的输出内容。

title: 对话框的标题。

提示:

msgbox(message)
%msgbox('显示内容')msgbox(message,title)
%msgbox('显示内容','标题')msgbox(message,title,icon)
%msgbox('显示内容','标题','系统图标')
%系统图标主要有none,error,help,warn

报错及提示功能代码示例

[filename,pathname]=uigetfile({'*.wav;*.mp3','*.wav;*.mp3'},'选择声音文件');
if isequal([filename pathname],[0,0])errordlg("没有选中文件","错误")
elseapp.path = strcat(pathname, filename);%选择的声音文件路径msgbox("读取成功","提示")
end

此部分代码示例中还含有文件路径的获得。

4)退出功能

添加按钮,右击添加回调函数。

questdlg 的使用:

answer = questdlg(quest);
answer = questdlg(quest,dlgtitle);
answer = questdlg(quest,dlgtitle,defbtn);
answer = questdlg(quest,dlgtitle,btn1,btn2,defbtn);

answer = questdlg(quest) ; 创建一个模态对话框,其中提出问题并返回用户的回答 - 'Yes'、'No'、'Cancel' 或 ''。

默认情况下,该对话框有三个标准按钮,其标签分别为是、否和取消。

如果用户点击其中一个按钮,则 answer 值与按下的按钮的标签相同。

如果用户点击对话框标题栏上的关闭按钮 (X) 或按下 Esc 键,则 answer 值为空字符向量 (' ')。

如果用户按下 Return 键,则 answer 值与默认所选按钮的标签相同。

answer = questdlg(quest,dlgtitle) ; 指定对话框标题。

answer = questdlg(quest,dlgtitle,defbtn) ; 指定当用户按下键盘上的 Return 键时将哪个按钮作为默认按钮。defbtn 值必须与按钮标签之一匹配。

answer = questdlg(quest,dlgtitle,btn1,btn2,defbtn) ; 通过用 btn1 和 btn2 的值作为按钮标签来自定义两个标准按钮。第三个标准按钮则被删除。defbtn 值必须与 btn1 或 btn2 的值匹配。

如果用户按下键盘上的 Return 键,并且 defbtn 值与任一按钮标签都不匹配,则对话框保持打开状态。

退出功能实例

choice = questdlg("是否退出《语音信号的处理》?","退出","是","否","否");
switch choicecase "是"delete(app.UIFigure)returncase "否"return
end

最终效果展示:

语音信号的分析与处理_哔哩哔哩_bilibili

完整资源获取:

https://download.csdn.net/download/weixin_53877178/76116847

基于Matlab App Designer的语音信号分析与处理(三):App的设计相关推荐

  1. 基于Matlab App Designer的语音信号分析与处理(二):IIR和FIR滤波器的设计,语音信号的滤波

    接上文:https://blog.csdn.net/weixin_53877178/article/details/122470759 目录 一.课题的任务 二.内容.步骤和要求 (1)语音信号的采集 ...

  2. 毕业设计-基于MATLAB的含噪语音信号降噪处理系统

    目录 前言 课题背景和意义 实现技术思路 一.设计思路 二.IIR 数字滤波器的设计原理 三.语音信号的采集. 含噪语音信号的分析处理 四.总结 实现效果图样例 最后 前言

  3. 毕业设计-基于MATLAB的含噪语音信号降噪处理方法的研究与实现

    目录 前言 课题背景和意义 实现技术思路 一.设计思路 二.IIR 数字滤波器的设计原理 三.语音信号的采集. 含噪语音信号的分析处理 实现效果图样例 最后 前言

  4. 基于matlab的语音信号去噪毕业论文,MATLAB的FIR数字滤波器语音信号的去噪研究和仿真...

    摘要:语音信号作为人类语言交流的重要手段,语音处理的质量直接影响人们的正常通信.本文基于MATLAB对语音信号及加噪信号进行时域和频域分析,设计了FIR数字滤波器,完成对加噪信号滤波的处理.结果表明设 ...

  5. 基于matlab 的语音信号分析和处理,基于matlab_的语音信号分析和处理

    基于matlab_的语音信号分析和处理 1 基于MATLAB 的语音信号分析和处理 福建师范大学协和学院 信息技术系 电子信息科学与技术专 124122006028 王祯飞 指导老师 黄小芬[摘要]本 ...

  6. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  7. matlab语音信号分析实验报告,DSP实验二 语音信号分析与处理,南京理工大学紫金学院实验报告,信号与系统...

    实验二语音信号分析与处理 学号姓名 注:1)此次实验作为<数字信号处理>课程实验成绩的重要依据,请同学们认真.独立完成,不得抄袭. 2)请在授课教师规定的时间内完成: 3)完成作业后,请以 ...

  8. 《MATLAB语音信号分析与合成(第二版)》:第4章 语音信号的线性预测分析

    <MATLAB语音信号分析与合成(第二版)>:第4章 语音信号的线性预测分析 前言 1. 数据与函数路径设置 2. MATLAB仿真一:LPC的频谱分析 3. MATLAB仿真二:普通预测 ...

  9. 《MATLAB语音信号分析与合成(第二版)》:第8章 基音周期的估算方法

    <MATLAB语音信号分析与合成(第二版)>:第8章 基音周期的估算方法 前言 1. 数据与函数路径设置 2. MATLAB仿真一:基音周期提取的预处理 3. MATLAB仿真二:倒谱法的 ...

  10. 《MATLAB语音信号分析与合成(第二版)》:第7章 语音信号的减噪

    <MATLAB语音信号分析与合成(第二版)>:第7章 语音信号的减噪 前言 1. 数据与函数路径设置 2. MATLAB仿真一:自适应滤波器LMS滤波减噪一 3. MATLAB仿真二:自适 ...

最新文章

  1. eclipse注释模板设置(未整理)
  2. 业务逻辑组件化android,AppJoint 极简 Android 组件化方案
  3. bootstrap文件不能被识别_如何使用npm安装bootstrap
  4. int 转CString
  5. 解决ORA-27103:internal error错误一例
  6. CSS 3的display:盒类型详解
  7. 《实战突击:Java Web项目整合开发》简介及源码
  8. Google Chrome Your browser is not compatible with FlexPaper问题解决
  9. 通过创建Google快讯将定期搜索结果发送到Gmail信箱
  10. 项目实训--Unity多人游戏开发(九、PUN2学习记录)
  11. 在Codesys用ST语言基于数组实现栈LIFO数据结构详细说明+代码实例
  12. 【市场调查与预测】廊坊师范学院大学生洗发水使用情况调查(课程论文)
  13. Android 开发笔记 “android调试遇到ADB server didn't ACK以及顽固的sjk_daemon进程 ”
  14. 学习5g通信心得体会_2020世界5G大会最新参观心得体会感悟5篇
  15. 【MES】MES的另一视角
  16. 电脑增加机械硬盘计算机管理,电脑新增加一块硬盘安装并使用的教程
  17. 自然语言处理中的迁移学习(下)
  18. 前端js解析识别图片二维码
  19. cstdio 错误解决
  20. 什么是cherry-pick

热门文章

  1. ESP-8266wifi模块获取网络实时时间
  2. S32DS中链接文件及启动代码学习
  3. 监控--CactiEZ使用
  4. docker常用命令
  5. 教你,用java生成验证码(这这太简单了了吧!!!!!!!)
  6. Java链表——创建链表对象
  7. 基于时间窗的AGV调度算法优化
  8. vs2017社区版在离线的电脑上注册方法
  9. java saxreader 字符串_Java SAXReader.read方法代碼示例
  10. AI自动还原OpenCV制作的九宫格拼图游戏(附源码)