1,语音信号处理

一段音频信号在时域上,可以用一个实数向量来表示。这个数组的大小=采样率*音频时长。举个例子:一段采样率为8000,长15.6s的音频在matlab中表示为:15.6x8000=124800大小的实数向量

下面是利用matlab读取.wav文件和.pcm文件的两种方法

1.1 读取wav

[x1, fs_n] = audioread('test\Far_common.wav');

1.2 读取pcm

fid_far = fopen("test\Far_common.pcm",'r');
x_far = fread(fid_far,inf,'int16');

从上图可以看出,音频信号在matlab中就是用一个向量来表示。

2,语音信号处理基础知识

2.1, 频谱图

概念: 表示信号频率与能量的关系。频谱图一般由相位频谱图和幅度频谱图两部分构成。

绘制方法: 对一段时域音频做傅里叶变换,得到的就是频谱图。但是由于其包含两部的信息,因此不能直接绘制。其可以作为相位频谱图和幅度频谱图分别进行绘制。

[x1, fs_n] = audioread('D:\blog\新建文件夹\Far_common.wav');
xi_fd = fft(x1);

观察结果可以发现,一维向量做傅里叶变化后得到一个同样的大小的复数向量。

2.1.1 相位频谱图

概念: 在傅里叶分析中,将各个分量的相位随频率的变化成为信号的相位谱。

绘制方法: 将频谱中的幅值部分换成相角,这里利用matlab中的angle函数进行绘制。

[x1, fs_n] = audioread('test\Far_common.wav');   %频域信息
x1_fd = fft(x1);%求相位谱
n=0:length(x1)-1;
f=n*fs_n/length(x1);
x1_abs = abs(x1_fd);
ph= 2*angle(x1_fd(1:length(x1)/2));
ph= ph *180/pi;
plot(f(1:length(x1)/2),ph(1:length(x1)/2));
xlabel('频率/hz'),ylabel('相角'),title('相位谱');

这里由于选取音频的问题,导致相位谱太过密集。

2.1.2 幅度频谱图

概念: 在傅里叶分析中,将各个分量的幅度随频率的变化成为信号的幅度谱。

绘制方法: 对信号进行fft后的复数向量进行取模操作,得到的就是幅度谱。

%求幅度谱
x1_fd_abs = abs(x1_fd);
plot(f(1:length(x1)/2),x1_fd_abs(1:length(x1)/2));
xlabel('频率/hz'),ylabel('幅度'),title('幅度谱');

2.2,功率谱(能量谱):

概念: 功率谱是功率谱密度函数的简称,它定义为单位频带内的信号功率。它表示了信号功率随着频率的变化情况,即信号功率在频域的分布状况。

绘制方法: 对信号进行fft后的复数向量进行求实部和虚部的平方和操作,得到的就是功率谱。(即幅度谱的平方)

%求功率谱
for i=1:length(x1_fd)x1_power(i)=power(real(x1_fd(i)),2)+power(imag(x1_fd(i)),2);
end

2.3,语谱图:

概念: 语谱图的横坐标是时间,纵坐标是频率,坐标点值为语音数据能量。由于是采用二维平面表达三维信息,所以能量值的大小是通过颜色来表示的,颜色深,表示该点的语音能量越强。其可以理解为利用二维坐标表示三维信息。

绘制方法: 这里利用了matlab中Voicebox资源包下的enframe函数。

%求语谱图
clear all; clc; close all;
[x,Fs]=audioread('test\Far_common.wav');   %读入数据文件
wlen=800; inc=80; win=hanning(wlen);% 设置帧长,帧移和窗函数
N=length(x); time=(0:N-1)/Fs;       % 计算时间
y=enframe(x,win,inc)';              % 分帧
fn=size(y,2);                       % 帧数
frameTime=(((1:fn)-1)*inc+wlen/2)/Fs; % 计算每帧对应的时间
W2=wlen/2+1; n2=1:W2;
freq=(n2-1)*Fs/wlen;                % 计算FFT后的频率刻度
Y=fft(y);                           % 短时傅里叶变换
clf                                 % 初始化图形
% 画出语谱图
set(gcf,'Position',[20 100 600 500]);
axes('Position',[0.1 0.1 0.85 0.5]);
imagesc(frameTime,freq,abs(Y(n2,:))); % 画出Y的图像
axis xy; ylabel('频率/Hz');xlabel('时间/s');
title('语谱图');
% 画出语音信号的波形
axes('Position',[0.07 0.72 0.9 0.22]);
plot(time,x,'k');
xlim([0 max(time)]);
xlabel('时间/s'); ylabel('幅值');
title('语音信号波形');

以上就是我对音频信号处理分析过程中遇到的幅度谱、相位谱、能量谱等基础知识的总结,如有错误,欢迎指正。

语音信号处理基础知识之频谱、相位谱、幅度谱、功率谱及语谱图相关推荐

  1. 音频信号处理基础知识

    语音信号处理基础知识 1.均值 1.1.均值公式定义 x‾=x1+x2+⋯+xnn=∑j=1nxjn\overline{x} = \frac{x_1 + x_2 + \cdots + x_n}{n} ...

  2. 语音信号处理基础(二)

    语音信号处理基础(二) 1.2.2 语音编码 语音编码的目的 保证在一定语音质量的前提下,尽可能降低编码比特率,以节省频率资源. 语音编码技术的鼻祖:研究开始于1939年军事保密通信的需要,贝尔电话实 ...

  3. 语音信号处理基础(四)—语音编辑

    语音信号处理基础(四)-语音编辑 文章目录 语音信号处理基础(四)-语音编辑 实验目的 实验原理 1.信号的叠加 2.信号的卷积 3.信号采样频率的变换 实验目的 1.掌握语音信号线性叠加的方法,实现 ...

  4. 语音信号处理基础(一)

    语音信号处理基础(一) 文章目录 语音信号处理基础(一) 1.绪论 1.1概述 1.2语音信号处理的三个主要分支 1.2.1 语音合成 名词解释 共振峰 基音(fundamental tone) 基因 ...

  5. 深度学习中的语音信号处理基础

    文章目录 音频处理流程 常用谱:幅度谱.梅尔谱 时域 --> 频域 分帧 窗长 帧移 语音信号特征获取流程 梅尔谱 使用 librosa 提取梅尔谱 使用 tacotron 获取梅尔谱(推荐) ...

  6. 语音信号处理基础(八)——同态处理、倒谱、复倒谱

    文章目录 1.对短时过零率针对不同语音片段进行验证 2.验证窗函数 3.语音的同态处理.复倒谱.倒谱 倒谱图形分析 总结: 1.对短时过零率针对不同语音片段进行验证 短时平均过零率表示一帧语音中语音信 ...

  7. 利用函数wavread对语音信号进行采样_语音信号处理相关知识

    本文的初衷是为后续模型介绍和论文速览提供一个过渡,核心价值在于介绍一些较为基础的概念,以使得后文中如遇到不太理解的概念通过本文查证 一.语音的表示 语音的表示形式本质为波形,从语音到波形的理解可以想象 ...

  8. 语音信号处理基础与MFCC

    讲道理,想要处理语音这种时间信号,最适合RNN或者SNN这种神经网络来进行识别,传统的方法是基于GMM+HMM的方式进行声学模型以及语言模型的建模.现在的语音识别往往引入神经网络,进行端到端(end- ...

  9. 语音信号处理-基础(一):声学基础知识

    一.声波 1.基本概念 声音由物体的振动产生. 音叉振动时,激励周围空气质点振动,产生一个压强波动叠加在大气压上.由于空气具有可压缩性,在质点的相互作用下,不断地交替产生压缩与膨胀,并且逐渐向外传播. ...

  10. 语音信号处理基础(五)——语音分帧与加窗

    文章目录 原理 1.加窗 2.分帧 一般而言语音处理的目的有两种: 一种是对语音信号进行分析,提取特征参数,用于后续处理: 提取的特征参数主要有语音的短时能量和平均幅度.短时平均过零率.短时自相关函数 ...

最新文章

  1. linux conntrack命令 路由连接 跟踪表 显示删除监听记录
  2. cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp” 和 cl: 命令行 error D8021 :无效的数值参数“/Wno-unused-function”
  3. python读取txt文件-python txt文件的写入和读取
  4. 【算法】K-Means聚类算法(k-平均或k-均值)
  5. python中代理模式分为几种_通俗 Python 设计模式——代理模式
  6. LCS-最大公共子序列(DP问题)
  7. 2008秋季-计算机软件基础-0922课堂用例(2)
  8. 【POJ 1456】Supermarket【并查集】
  9. 编译原理第三章学习总结
  10. 如何快速的使用Visual Assist X VAX(西红柿)插件
  11. 找出java重复字符串,java 找出字符串出现重复的字符和次数
  12. 【LVGL(6)】显示中文设置,制作中文字库
  13. 前端python开发_【2020Python修炼记】前端开发之 前端工具和HTML
  14. Wireshark嗅探和协议分析
  15. pyecharts 标准线_pyecharts
  16. Sublime Text 3 3103版本 破解 + 汉化
  17. 数论 · 中国剩余定理(CRT)
  18. [又值奥运季] 2016年里约奥运会--8月13日赛事
  19. 《UNIX 环境高级编程》学习笔记—— 标准I/O库
  20. 手机也能和模拟对讲机通话,是真的吗?

热门文章

  1. 融合零样本学习和小样本学习的弱监督学习方法综述
  2. Microsoft Lync2013客户端下载
  3. 计算机导论知识梳理,《计算机导论》知识点
  4. python爬虫万能代码-python网络爬虫源代码(可直接抓取图片)
  5. 【Multisim仿真】74LS193+74LS138流水灯
  6. 《SAFe 4.0参考指南:精益软件与系统工程的规模化敏捷框架》SAFe基础
  7. SQL 数据库 学习 016 如何附加数据库
  8. python毕业设计总结范文大全_毕业论文设计总结范文.docx
  9. Python学习:Python分析中国人口(一)爬取数据
  10. ShadowGun 的学习笔记 - GodRays