##MATLAB之使用GUI处理语音信号(三)时域分析及卷积运算
上一篇文章中我们已经利用GUI完成了大部分操作,大家一定要好好理解,今天我们来进行剩下的内容:时域分析和卷积运算。
##接下来进入教程:
一.时域分析
我们这里分析的内容为峰值、均值、均方差和方差四个内容。
(1)首先打开上一篇文章的GUI编辑界面,我们在上面直接添加,时域分析需要用到一个按钮开始时域分析,四个静态文本显示内容,以及四个可编辑文本显示计算数值,直接拖动控件放在合适位置并设置合适大小即可,过程在之前的文章中已经清楚说明,这里不再赘述,不懂得朋友可以去查看之前的文章,非常清楚。
直接上图:
(2)我们可以先运行修改代码。
需要在“时域分析”按钮的回调函数中添加如下代码:
global temp;
set(handles.text3,'String',max(max(temp)));%计算峰值
set(handles.text6,'String',mean(mean(temp)));%计算均值
set(handles.text8,'String',std(std(temp)));%计算均方差
set(handles.text10,'String',var(var(temp)));%计算方差
temp为直接引用之前的全局变量,这里要注意的是计算函数要熟练掌握:
max()---峰值
mean()---均值
std()---均方差
var()---方差
还要注意结果放置的位置,对应好可编辑文本的标签一一放进去。
看效果
二.卷积运算
(1)我们这里卷积的内容为二位数据矩阵第一列与阶跃函数进行卷积,如果你的数据是一维的,就可以直接卷积。
我们需要放置一个显示“卷积运算”的按钮,一个说明卷积内容的静态文本以及一个放图的坐标轴,过程不再多说,直接看图:
(2)下面点击运行修改代码。
在“卷积运算”按钮的回调函数中添加如下代码:
global temp;
q=u(0);%构造一个阶跃函数
p=convn(temp(:,1),q);%进行卷积运算
plot(handles.axes4,p);%画出卷积后图形
这里注意卷积运算的函数convn()。
看效果:
整体效果:
至此,利用GUI分析信号内容全部完成,利用我们讲到的知识也可以自行添加其他需求。
文章已经上传博客,可自行查看https://blog.csdn.net/weixin_44936771/article/details/107792627
之后将会在博客上传全部源码及文件,持续关注。
有任何不足指出请及时指出,共同学习。
有任何不懂得可以公众号私聊我,看到后一定及时回复。
长按图片关注
点个在看。