matlab编程(如何实时处理)

2023-12-13

我正在尝试用 matlab 制作频谱图, 这是我的代码:

% Record your voice for 100 seconds.
recObj = audiorecorder;
disp('Start speaking.')
recordblocking(recObj, 100);

% Store data in double-precision array.
my= getaudiodata(recObj);
figure;
specgram(my,512);

问题是,当我说话时,我希望显示频谱图,所以它应该在我说话时更新。当音频来自麦克风时,如何绘制频谱图?所以我应该能够实时看到频谱图

我也尝试过这个

% Record your voice for 100 seconds.
recObj = audiorecorder;
disp('Start speaking.')
a=0;
figure;
while a<60
    recordblocking(recObj, 100);

    % Store data in double-precision array.
    my= getaudiodata(recObj);

    specgram(my,512);
    a=a+1;
end

但它只会在 while 循环钓鱼时显示频谱图(因此运行 60 次后)


MATLAB 本质上是单线程的。一次只能发生一件事。这使得实时任务有些困难。正如你所指出的,recordblocking在这 100 秒过去之前,不会将控制权返回给您的脚本。关键就在这个词里blocking.

解决这个问题的方法是回调和非阻塞函数。 audiorecorder 对象有一些方法和属性可以实现这种行为。

The audiorecorder特性:
- StartFcn:设置一个在开始异步录制时执行的函数
- StopFcn:停止录音时执行的函数
- TimerFcn: 每隔一段时间执行的函数TimerPeriod录音期间的秒数。

然后record method将在后台开始录制和处理,按照指示调用上述函数。

通过定期更新回调函数中的数据,您可以更新您的绘图。不幸的是,以允许实时更新的有效方式来完成这同样不是一件容易的事。但这应该让你开始。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab编程(如何实时处理) 的相关文章

  • 禁止 MATLAB 自动获取焦点[重复]

    这个问题在这里已经有答案了 我有以下问题 在我的 MATLAB 代码中 我使用如下语句 figure 1 更改某些数据的目标数字 问题是 在此 MATLAB 之后 系统将焦点集中在具有该图形的窗口上 当我在后台运行一个大脚本并尝试在计算机上
  • 如何将数据传递给 MATLAB oncleanup 函数?

    我有一个编译好的 matlab 程序 可以自动调整机器参数 在调整周期结束时 我需要恢复一些原始设置 有时会发生意外错误 有时用户会发现调整算法未正常工作 因此应终止 使用 control C 如果发生可预测的错误 我可以使用 try ca
  • 通过多次合并相同的行向量来构建矩阵

    有没有一个matlab函数可以让我执行以下操作 x 1 2 2 3 然后基于x我想建立矩阵m 1 2 2 3 1 2 2 3 1 2 2 3 1 2 2 3 您正在寻找REPMAT http www mathworks com help t
  • MATLAB:将当前文件夹设置为脚本位置

    我在不同的文件夹中有一些脚本和数据 我使用addpath和相对路径经常 我的问题是 只有当我的当前文件夹是我执行的脚本所在的位置时 这才有效 例如 如果我执行添加路径 X 的脚本 A 然后执行位于路径 X 中的脚本 B 则 Matlab 不
  • 使用简单矩阵乘法时出错

    我在一次简单的乘法运算中偶然发现了一个错误 这让我感到非常惊讶 我一直以为这里发生了什么 只为矩阵乘法 http www mathworks nl help matlab matlab prog operators html x 2 y z
  • matlab 中的动画绘图

    我正在尝试创建一个三角形的动画图 最终结果应该是十个三角形 后面跟着两个更大的三角形 后面跟着一条直线 使用matlab文档 https de mathworks com help matlab ref drawnow html 我最终得到
  • 保存符号方程以供以后使用?

    From here http www mathworks com help releases R2011a toolbox symbolic brvfu8o 1 html brvfxem 1 我正在尝试求解这样的符号方程组 syms x y
  • 帮助我理解FFT函数(Matlab)

    1 除了负频率之外 FFT 函数提供的最小频率是多少 是零吗 2 如果它为零 我们如何在对数刻度上绘制零 3 结果总是对称的 或者只是看起来是对称的 4 如果我使用abs fft y 来比较2个信号 我是否会失去一些准确性 1 除了负频率之
  • 轴标注问题

    通过运行我编写的以下 matlab 函数 可以互换图中的 x 轴和 y 轴 谁能告诉我问题出在哪里或者帮我解决它吗 预先感谢您的任何帮助 function axislabeling n x 1 1 n y 1 1 n z zeros n n
  • 优先连接,Matlab 中的复杂网络

    大家好 我现在正在 MATLAB 中研究优先附件模型 在理解以下内容时遇到一些困难 假设我一开始有 4 个节点 连接如下 time 0 1 lt gt 2 3 lt gt 4 在下一个时间步骤中 我添加一个节点和 4 个连接 然后添加另一个
  • 如何在Matlab中将图像从笛卡尔坐标更改为极坐标?

    我正在尝试将图像的像素从 x y 坐标转换为极坐标 但我遇到了问题 因为我想自己编写该函数 这是我到目前为止所做的代码 function newImage PolarCartRot read and show the image image
  • MATLAB 中的逻辑数组与数值数组

    我正在比较两个二进制数组 我有一个数组 其中值可以是一或零 如果值相同则为 1 如果不同则为零 请注意 我正在做检查之外的其他事情 因此我们不需要进入矢量化或代码的性质 在 MATLAB 中使用数值数组和逻辑数组哪个更有效 Logical
  • MATLAB:图像角坐标和引用元胞数组

    我在比较不同元胞数组中的元素时遇到一些问题 这个问题的背景是我正在使用bwboundariesMATLAB 中的函数可追踪图像的轮廓 该图像是结构横截面 我试图找出整个部分是否具有连续性 即 只有一个轮廓由bwboundaries命令 完成
  • 在 MATLAB 图中用值标记点

    以下命令确实用正方形标记了点 但没有在其中放入值 例如 21 0 X 21 8 2 1 0 Y 0 1 2 3 4 plot X Y k s 我应该添加哪个参数以便全部5点值出现在图上吗 这些值不能一一键入 因为它们是随机数 因此它们可能会
  • 基本矩阵错误?

    我试图通过扫描从相机拍摄的两个图像 检测图像中的特征 匹配它们 创建基本矩阵 使用相机内在函数计算基本矩阵 然后分解它以找到旋转和翻译 这是matlab代码 I1 rgb2gray imread 1 png I2 rgb2gray imre
  • 在Matlab图例中使用Latex?

    我的 matlab 不接受我的 Latex 例如 如果我使用legend b 6 rightarrow b 7 它没有向我显示箭头 我该如何解决这个问题 尝试使用 Latex 解释器 例如 legend b 6 rightarrow b 7
  • 在 MATLAB 中验证输入的最佳实践

    在验证 MATLAB 函数中的输入时 什么时候使用 inputParser 比使用断言更好 或者还有其他更好的工具可用吗 我个人发现使用 inputParser 不必要地复杂 对于 Matlab 始终需要检查 3 项内容 存在 类型和范围
  • 使用网络计算机进行 Matlab 并行处理

    我熟悉matlabpool and parfor用法 但我仍然需要加快计算速度 我的 1GB 网络中有一台功能更强大的计算机 两台计算机都有 R2010b 并且具有相同的代码和路径 使用两台计算机进行并行计算的最简单方法是什么 我今天使用的
  • MATLAB - 从目录读取文件?

    我希望从目录中读取文件并对每个文件迭代执行操作 此操作不需要更改文件 我知道我应该为此使用 for 循环 到目前为止我已经尝试过 FILES ls path to folder for i 1 size FILES 1 STRU pdbre
  • MATLAB;具有 2+ 个/分割图例的饼图 R2017b

    我正在创建一个饼图 理想情况下希望图例水平显示在顶部和 或底部 然而 在几乎所有情况下 这是不可能的 因为图例超出了数字 因此 我理想情况下希望将图例分成两个 或更多 子图例并单独放置它们 我知道这不是 MATLAB 中的内置功能 我使用的

随机推荐

  • codeIgniter使用mysql_real_escape_string()代替。数据库连接问题

    我在带有数据库的服务器上安装了代码点火器 我想在我的 mac 上运行相同的数据库 我使用 MAMP 并将项目文件夹复制到 htdocs 中 但出现此错误 请你帮帮我好吗 ErrorException 8192 mysql escape st
  • Angular 2:无法绑定到“ngModel”,因为它不是“input”的已知属性

    我正在尝试在 Angular 2 中实现动态表单 我向动态表单添加了删除和取消等附加功能 我已经遵循了这个文档 https angular io docs ts latest cookbook dynamic form html 我对代码做
  • 无法在 azure 机器学习服务工作区中注册 ONNX 模型

    我尝试以两种不同的方式将 ONNX 模型注册到 Azure 机器学习服务工作区 但遇到无法解决的错误 第一种方法 通过 Jupyter Notebook 和 python 脚本 model Model register model path
  • Matplotlib 类似于 matlab trisurf

    长话短说 我想用 python 绘制一个通用的 3D 三角形网格 Matplotlib 似乎是理想的候选者 但我会选择任何可以实现我将要描述的功能的 3D 渲染 假设我有一个由 X Y 和 Z 定义的三角形网格 点云的 3D 坐标 每个长度
  • Android - SSL/TLS 和 ECC(椭圆曲线加密)

    我正在开发一个与网络服务器通信的 Android 应用程序 我们使用 HTTPS 进行此通信 并且 Android 应用程序内还有一个客户端证书用于身份验证 我们使用 ECC ANSI x9 62 创建 SSL 证书 以便拥有非常小的证书
  • Opencv dll问题

    我正在遵循使用 opencv 进行对象检测的教程 我一步一步完成 但是当我运行它时 我收到此错误 The program can t start because opencv 244d dll is missing from your co
  • AVAudioSession :麦克风耳机作为输入,iPhone扬声器作为输出

    使用iOS10 有更多的可能性来管理AUdioSession 但我无法在音频通过iPhone扬声器发出时保持耳机麦克风作为输入 下面的 overrideOutputAudioPort 方法还将输入音频端口覆盖为 iphone 麦克风 let
  • Wpf面板后台问题

    当我不设置面板背景时 我无法获取鼠标事件 为什么有这种行为 我可以通过将背景设置为透明 默认情况下为空 来获取面板上的鼠标事件 空背景和透明背景有什么区别 When Background null它在渲染时不会向 MILCore 发出任何绘
  • Azure Analysis Services 是否支持服务主体登录 SQL Azure

    我有一个 Azure Analysis Services 模型 使用以下连接字符串从 SQL Azure 读取数据 Data Source MySQLAzureDB database windows net Initial Catalog
  • 不使用ros编译roscpp(使用g++)

    我正在尝试在不使用ROS其余部分的情况下编译roscpp 我只需要订阅一个节点 但该节点拥有使用旧版本ROS的节点 并且由于编译问题 我无法将我的程序与他的程序集成 我从git下载了源代码 https github com ros ros
  • 从 C# 执行多行 PowerShell 脚本

    我是 PowerShell 新手 我正在尝试从 C 执行 PowerShell 脚本 我编写的 PS 脚本将 xml 文件从主机 运行 PS 脚本 传输到远程计算机 脚本如下 Username User Password Pass Secu
  • 如果steps_per_epoch不适合样本数量怎么办?

    使用 Kerasfit generator steps per epoch 应等于可用样本总数除以batch size 但是发电机或fit generator如果我选择一个batch size不适合样本中的 n 次 是否会产生样本直到无法填
  • microsoft.office.tools.excel.dll 安装在哪里?

    我已经安装了带 NET 4 0的VS2010 SP1 但找不到microsoft office tools excel dll所在的位置 问题 gt 在哪里可以找到这个 DLL 通常 一旦安装了该程序集 该程序集就应该位于 GAC 中Off
  • 如何在 CMFCEditBrowseCtrl::EnableFileBrowseButton 中设置默认文件扩展名?

    如何在 CMFCEditBrowseCtrl EnableFileBrowseButton 中给出默认文件扩展名 应该如何传递参数 我尝试像下面的代码 CMFCEditBrowseCtrl py file path py file path
  • Java中将字符串拆分为等长子字符串

    如何分割字符串 Thequickbrownfoxjumps Java 中相同大小的子字符串 例如 Thequickbrownfoxjumps 4 个相同大小的应该给出输出 Theq uick brow nfox jump s 类似问题 Sc
  • PhantomJS open() 太慢

    我在 NodeJS 中进行网页抓取时遇到问题 我想从远程网页获取一些数据 但数据已从 javascript 插入到 html 中 我开始使用 PhantomJS 它运行得很好 除了一件事阻碍了我完成工作 PhantomJS 运行速度太慢 这
  • 关于暂定定义

    我从一本关于暂定定义的书中读到 暂定定义是没有任何外部数据声明 存储类说明符并且没有初始值设定项 暂定定义 如果翻译单元的结尾是 已达到并且没有出现带有初始化程序的定义 标识符 请解释一下上面这句话的意思 另外 声明和定义之间的区别 我因此
  • RCPP_MODULE 用于继承类

    当我尝试使用继承类的模块时遇到问题 基本上 我无法编译这部分 RCPP MODULE PACE using namespace Rcpp class
  • 何时使用 StringBuilder? [复制]

    这个问题在这里已经有答案了 可能的重复 字符串与 StringBuilder 我刚刚重温了一些我用来学习 VB NET 的书籍 我不确定我是否已经理解了这一点 了解 StringBuilder 是如何 什么的 使用指导是什么 如果您要连接
  • matlab编程(如何实时处理)

    我正在尝试用 matlab 制作频谱图 这是我的代码 Record your voice for 100 seconds recObj audiorecorder disp Start speaking recordblocking rec