首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在matlab中播放音频信号,分别在Matlab上控制耳机的左右通道?

如何在matlab中播放音频信号,分别在Matlab上控制耳机的左右通道?
EN

Stack Overflow用户
提问于 2014-07-22 16:21:47
回答 1查看 1.7K关注 0票数 1

我在matlab中做音频信号处理。作为我项目的一部分,我正在播放录音信号,处理它,并实时播放它。现在,我通过两个通道发送的输出,我想要以不同的方式处理,并且希望绘制图表。

基本上,我希望左耳能听到与右耳不同的处理信号,并绘制它。

即使它不是实时的,也就是任何存储的信号(.wav等)都会有帮助。

任何帮助都将受到感谢(没有太多时间:() )

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-22 19:22:53

如果使用的是存储的.wav文件,则可以使用wavread导入,这将作为两列数组导入该文件。如果调用此数组A,则可以使用A(:, 1)操作左侧通道,使用A(:, 2)操作右侧通道。

如果您使用audiorecorder录制音频,则必须将频道数量从1更改为2,以便以立体声录制。默认为mono。

编辑:实时绘图,您可以完成以下函数的编写。该函数的输入runtime需要您想要记录的时间。它创建一个计时器timerID,并不断地从记录器对象中获取音频数据并绘制它,使用drawnow刷新图形。如果您想要进行任何处理,可以在plot命令之前的循环中执行。

代码语言:javascript
复制
function audioPlot(runtime)
timerID = tic;
recObj = audiorecorder(44100, 24, 2);
record(recObj);
h(1) = subplot(2, 1, 1);
h(2) = subplot(2, 1, 2);
while (toc(timerID) < runtime)
    if recObj.TotalSamples > 0
        audioData = getaudiodata(recObj);
        plot(h(1), audioData(:, 1))
        plot(h(2), audioData(:, 2))
        xlabel(h(1), 'Left Channel')
        xlabel(h(2), 'Right Channel')
        drawnow
    end
end
stop(recObj);
end

很高兴回答任何问题!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24892702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档