和上一节 matlab 画短时能量图 的区别在于,上一节是求平方,现在是求绝对值。但是得到的图形和上一节一样,短时平均幅度谱 相比 短时能量谱 的好处在于节省计算量,而且不会出现计算溢出错误。

fid=fopen('zqq.txt', 'rt');
x=fscanf(fid, '%f');
fclose(fid);%计算窗长为50,帧移=0时的语音能量
s=fra(50, 50, x);%帧长为50个数字,帧移为50个数字, 得到s为1319行,50列的矩阵。也就是每一行有50个数字,这50个数字为一帧
%disp(length(s2));
%disp(size(s2, 1));
%disp(size(s2, 2));
s2=abs(s);
%b=sum(a,dim); a表示矩阵;dim等于1或者2,1表示每一列进行求和,2表示每一行进行求和;表示每列求和还是每行求和;b表示求得的行向量
energy=sum(s2, 2);%对矩阵s2每一行求和, energy为1319行,1列,也就是每个数字代表一帧能量
%disp(size(energy, 1));
%disp(size(energy, 2));
subplot(2, 2, 1);
plot(energy);
xlabel('帧数');
ylabel('短时能量E');
legend('窗长N=50');
axis([0, 1500, 0, 10*10^5]);%计算窗长为100,帧移=0时的语音能量
s=fra(100, 100, x);
s2=abs(s);
energy=sum(s2, 2);
subplot(2, 2, 2);
plot(energy);
xlabel('帧数');
ylabel('短时能量E');
legend('窗长N=100');
axis([0, 750, 0, 2*10^6]);%计算窗长为400,帧移=0时的语音能量
s=fra(400, 400, x);
s2=abs(s);
energy=sum(s2, 2);
subplot(2, 2, 3);
plot(energy);
xlabel('帧数');
ylabel('短时能量E');
legend('窗长N=400');
axis([0, 190, 0, 7*10^6]);%计算窗长为800,帧移=0时的语音能量
s=fra(800, 800, x);
s2=abs(s);
energy=sum(s2, 2);
subplot(2, 2, 4);
plot(energy);
xlabel('帧数');
ylabel('短时能量E');
legend('窗长N=800');
axis([0, 95, 0, 14*10^6]);function f=fra(len, inc, x)%len为帧长,inc为帧长一帧移%size(X,1),返回矩阵X的行数;%size(X,2),返回矩阵X的列数;%disp(size(x, 1));fh=fix(((size(x, 1) - len)/inc) + 1);%计算帧数,fh=1319%disp(fh);f=zeros(fh, len);%fh行,len列的0矩阵,这里是1319行,50列的0矩阵i=1; n=1;while i<=fhj=1;%下面的循环是每次循环一次填满一行50个数字,也就是一帧,填满一行以后,将行数加1后再次填while j<=lenf(i, j)=x(n);j=j+1;n=n+1;endn=n-len+inc;% n-len代表将恢复到上帧的末尾,+inc的意思是在上一帧的末尾再移动inc长度 i=i+1;end
end

matlab 画短时平均幅度谱相关推荐

  1. 【MATLAB图像处理】傅里叶变换--幅度谱、相位谱、逆变换

    fft2()  傅里叶正变换 fftshift()  频谱搬移-直流量(f=0)搬移至频谱中心 I=imread('exp2.tif'); %读入原图像 I1=I(:,:,1:3); %四通道转为三通 ...

  2. 用MATLAB画出离散幅度和相位谱

    Eg:画出x(t)=cos(πt/8),|t|<=4 信号的x(t)的离散幅度和相位谱 main.m echo on fnct='Fcos'; a=-4; b=4; n=24; tol=0.1; ...

  3. matlab 画短时能量图

    使用的 zqq.txt 是一个语音文件,只有1列,数字大概有60000多个 fid=fopen('zqq.txt', 'rt'); x=fscanf(fid, '%f'); fclose(fid);% ...

  4. 语音信号短时域分析之短时平均能量(四)

    由于语音信号的能量随时间而变化,清音和浊音之间的能量差别相当显著,因此对短时能量和短时平均幅度进行分析,可以描述语音的这种特征变换情况.定义n时刻某语音信号的短时平均能量E为: 式中,N为窗长,可见短 ...

  5. 【数字语音处理】Part3 语音信号的短时时域分析:短时平均、短时自相关、语音端点检测、基音周期估值

    Part3 语音信号的短时时域分析 一.帧和加窗的概念 二.短时平均能量 三.短时平均幅度函数 四.短时平均过零率 五.短时自相关分析 六.基于能量和过零率的语音端点检测 七.基音周期估值 八.总结 ...

  6. matlab如何将函数做成幅度谱,好用的画包络谱和幅值谱matlab函数 | 学步园

    画包络函数: function hua_baol (y,fs,style,varargin) %画包络函数是hua_baoluo的代码简化版 %输入参数要么是3个,要么是5个 %当三个的时候 y_hh ...

  7. matlab画傅立叶变换后相位谱,对一幅图像进行傅里叶变换后,包含频谱(也叫幅度谱)和相位谱两部分,请问那一部分更重要?...

    对一幅图像进行傅里叶变换后,包含频谱(也叫幅度谱)和相位谱两部分,请问那一部分更重要? 更多相关问题 [判断题] 抗盐产品切换到中分时,生产线不需要酸洗. [判断题] 机械密封中的载荷系数不是越大越好 ...

  8. 音频信号 过零率 matlab,MATLAB计算信号短时平均过零率

    MATLAB计算信号短时平均过零率 MATLAB计算信号短时平均过零率 一.原理: 短时平均过零率表示一帧语音中语音信号波形穿过横轴的次数 二.计算过零率代码 clear all; clc; clos ...

  9. MATLAB计算信号短时平均过零率

    一.原理: 短时平均过零率表示一帧语音中语音信号波形穿过横轴的次数 二.计算过零率代码 clear all; clc; close all; filedir=[]; % 设置路径 filename=' ...

  10. 使用matlab读取图像并通过matlab自带的fft2,fftshift,ifftshift,ifft2等函数获取该图像的傅里叶频谱图,幅度图,相位谱图,幅度图,相位谱图,幅度谱重建图以及相位谱重建

    %% 读取图像.预处理 Picture1 = imread('Cameraman.tif');tryPicture1=rgb2gray(Picture1); % 如果是RGB图像,转成灰度图 catc ...

最新文章

  1. linux - python - 异常:error while loading shared libraries
  2. HDU 1430 关系映射 + 打表 .
  3. vscode使用汇总——常用插件、常用配置、常用快捷键
  4. directplay需要安装吗_燃气报警器需要安装吗这里告诉你
  5. UITabbarController 实例一
  6. 我国计算机网络事业发展,金标尺公考
  7. css 动态生成圆形区域内扇形个数_CSS实用技巧总结
  8. HTML5 实现图片预览和查看原图
  9. Gson 转化为带反斜杠的json
  10. 一事无成,感觉自己是个 loser
  11. linux安装向日葵命令行版
  12. sql查询数据库所有表(select * from sysobjects )
  13. 西门子cnc sinumerik_2020邯郸cnc加工中心编程要多久就是工厂傅
  14. discuz模板风格制作入门
  15. 总账科目往来批量导入程序
  16. PHP推荐简单采集微博文章信息自用
  17. C语言之利用文件保存数据
  18. JavaWeb之jsp
  19. 计算机桌面右下角的图标不见了,电脑右下角图标不见了怎么办 系统托盘图标消失了解决方法...
  20. 数值优化:经典随机优化算法及其收敛性与复杂度分析

热门文章

  1. 第一章第4节-GIS平台
  2. 如何下载静海区卫星地图高清版大图
  3. TCPDF微软雅黑字体
  4. 美国g口无限流量服务器,不是所有的G口服务器都独享不限流量,美国SK洛杉矶G口除外...
  5. MySQL 安装 5.0
  6. 指派问题:匈牙利算法
  7. powerdesign如何利用表导出sql
  8. 这5款电影资源网站,让人第一眼就心动,第二眼就流连忘返!
  9. 计算机磁盘修复工具,chkdsk磁盘修复工具
  10. oracle使用max提升效率,小小小的问题------关于count(*) 和 max(rownum) 效率问题