MATLAB的数据导入 | 工具箱文档 (khscience.cn)
目录
MATLAB的数据导入 | 工具箱文档 (khscience.cn)
1.以音频数据作为输入
1.1 audioread()函数
声信息读取方法:audioread()
新版本中audioread()函数替换掉了wavread()函数 。
clear all; clc; close all;
signal = 'D:\毕业设计\课题相关文献\基于声特征的快速目标机动识别\程序\音频\船发动引擎声.wav';
% [wave,signal] = wavread(signal);
[wave,signal] = audioread(signal);
plot(wave) %%音频时域的图像
1.2 audiowrite()函数用法
audiowrite(filename,y,Fs,Name,Value)
(1)filename指想要保存文件的文件名,一般为想要取得名字,比如想生成音频文件叫“Test.wav”就写成“Test.wav”,注意引号和文件后缀名。
(2)Fs为取样率,一般音频信号的取样率为8000Hz
(3)y指要写入的音频数据,比如有一个序列data,就可以把y的位置写成data
(4)Name,Value指名称-值对组参数(官网上的称呼),具体来说是给其定义具体细节的参数。
2.输出数据
先输入,
clear all; clc; close all;
signal = 'D:\毕业设计\课题相关文献\基于声特征的快速目标机动识别\程序\音频\船发动引擎声.wav';
% [wave,signal] = wavread(signal);
[wave,signal] = audioread(signal);
2.1 输出音频时域图像
plot(wave); %输出音频时域图像
2.2 输出音频频域图像
plot(abs(y1)); %输出音频频域图像
3.matlab的数据文件 .mat
3.1 获取工作区中得到的matlab数据
3.2 将wav文件转换为.mat文件并保存
signal = audioread('D:\try_for_paper\bote.wav');
save signal_for_emd.mat signal
3.3 将wav文件转换为.txt文件并保存
[x,Fs]=audioread('D:\try_for_paper\bote.wav');
fid=fopen('signal_for_paper.txt','wt'); %读入语音文件
fprintf(fid,'%g\n',x(:,1));
fclose(fid);
3.4 导入matlab数据“xx.mat”
(1)如果是当前目录下的文件file1.mat,直接输入load file1。
(2)如果不是当前目录下的,输入 load(['目录\file1.mat'])。
4.load命令
4.1 加载 MAT 文件中的所有变量
加载示例 MAT 文件 signal_for_emd.mat
中的所有变量。请在加载操作前后检查工作区的内容。
disp('Contents of workspace before loading file:')
whos
disp('Contents of gong.mat:')
whos('-file','gong.mat')
load('gong.mat')
disp('Contents of workspace after loading file:')
whos
首先我们先看一下MATLAB主窗口的组织形式,在下图中,左侧的绿色区域显示的是你当前的工作目录,以及其目录中存在的文件,我们可以看到里面含有一个example2.mat文件,在右侧红色区域,是workspace区域,即当前的工作空间区域,在MATLAB计算过程中,产生的任何变量都会在其中显示。中间就不必多说了,是MATLAB主窗口,我们可以在其中输入命令。
(1)用法一:从当前工作目录中将mat数据读入到工作空间中
有两种常用的方法:方法一:双击MAT文件
我们如下图所示,双击当前工作目录中的mat文件,matlab主窗口就会自动加载进来其中的数据,我们可以看到在右侧黄色区域内出现了变量A,b,此时如果我们在主窗口中输入命令A,b,我们会看到其相应的值,但是如果我们输入B,就会发现提示错误,是因为我们的工作空间中根本没有折个变量,所以,任何定义过,或使用过的变量,都会存在在工作空间当中,直到被清除。清除之后,变不可以被使用。
(2)方法二:函数命令 load('example2.mat')
我们首先清除当前的工作空间,输入clear 命令,clear会清空之前定义的所有变量以及存储的值,我们看到执行clear命令之后,右侧工作空间也被清空,我们输入A发现,没有定义变量A提示,然后输入load('example2.mat'),就会得到和第一步一样的结果。
(3)用法二:从指定文件夹将mata数据读入到工作空间
clear清空之后,clc命令可以将当前工作窗口输入过的所有命令清屏。我们在输入命令:load('D:\\jingyan\\example.mat') 回车
可以将D盘jingyan文件夹下的example.mat文件中的数据读入进来
5. 数据导入
5.1 Excel数据导入
(1)当有多个工作表时,xlsread("表文件",2) ; "2"表示读表2的数据。
(2)读指定范围内的数据
5.2导入txt文件
5.3导入mat文件
load signal_for_emd.mat
figure;
plot(signal)
6.wav音频文件的提取和分析
6.1采样频率
也称采样速度或采样率。定义了声音信号在“模拟-数字”转化过程中,单位时间内从连续信号中提取并组成离散信号的采样个数。它用赫兹(Hz)表示。
%法一:matlab的audioread函数返回的第二个参数即为采样频率
[~,fs] = audioread([path,file]);
%法二:直接读取wav文件的28位到25位四位数据即为采样频率
fs = add_helper(A,25,4);
该部分可参考如下文章:
wav音频文件的提取和分析(matlab)_qq_43650421的博客-CSDN博客_matlab wav
7. 播放音频的对象
7.1 官方文档:
用于播放音频的对象 - MATLAB - MathWorks 中国
说明:
使用 audioplayer
对象播放音频数据。该对象包含在播放过程中提供额外灵活性的属性。例如,您可以使用 audioplayer
对象函数暂停、继续或定义回调。
7.2 创建对象:
使用采样率 Fs
为信号 Y
创建 audioplayer
对象。该函数返回音频播放器对象 player
。
实例:播放音频文件
(未完待续......)