matlab - 如何在matlab中分别控制耳机左右声道在matlab中播放音频信号?

标签 matlab audio signal-processing

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

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

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

任何帮助将不胜感激(没有太多时间:()。

最佳答案

如果您使用的是存储的 .wav 文件,您可以使用 wavread导入,这会将文件作为两列数组导入。如果你调用这个数组A ,您可以使用 A(:, 1) 操作左声道右声道使用A(:, 2) .

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

编辑:要实时绘图,您可以使用我编写的以下函数。该函数将您要记录的时间量作为其输入runtime .它创建一个计时器timerID并使用 drawnow 连续从记录器对象中获取音频数据并绘制它刷新图形。如果你想做任何处理,你可以在 plot 之前的循环中进行。命令。

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

很高兴回答任何问题!

关于matlab - 如何在matlab中分别控制耳机左右声道在matlab中播放音频信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24892702/

相关文章:

audio - 识别常见的周期性波形(方波、正弦波、锯齿波...)

c++ - 过零返回高值

c - 使用 Visual Studio 2013 的 Matlab S-Function 生成器 - 缺少 rtwtypes.h

java - 如何将 SourceDataLine 的内容写入文件?

matlab - MATLAB 中的浅拷贝行为

android - 将音频(麦克风)输入共享到 Android 中的多个应用程序

audio - FFMPEG。将视频与简介和音乐连接

matlab - MATLAB 中的二维自反卷积

matlab - 在关闭等待栏时中止当前脚本

c - 如何将稀疏矩阵从 MATLAB 传递到共享库