【发布时间】:2014-05-12 22:17:42
【问题描述】:
这是我第一次在此类项目中使用 Octave/MATLAB。我对信号处理也完全陌生,所以请原谅我缺乏知识。该项目的最终目标是创建一个 mfile,该文件将能够获取将从麦克风录制的 wav 文件,为其添加噪声失真级别,该级别将由用户以增量方式指定,并且还添加对于将要生成的新 wav 文件,音频的右声道或左声道的可变起始延迟。
2014 年 5 月 13 日凌晨 12:29 编辑 在与合作伙伴讨论目标和设备之后,我对现在需要做什么有了更清晰的想法,现在需要找出如何解决这些空白。延迟很可能必须在最大 10 到 300 ns 之间,噪声强度应该在 0 到 5 之间,范围从无声到重度静态。
clear;
delay=input('Delay in ns: ');
noise=input('Level of distortion: );
[y,Fs,nbits]=wavread(filename);
generate some noise same length and sampling as file
[newy,Fs]=[y+y2,Fs];
shift over wave x many nanoseconds
wavwrite(newy,Fs,'newwave');
对于当前合并信号目标的任何帮助,或者如果您可以帮助生成噪声以覆盖到任何大小的 .wav 录音上,我将不胜感激。
【问题讨论】:
-
关于您的要求的几个问题。 1)两个文件的采样率是否相同?如果不是,您将需要更困难的采样率转换。 2)延迟是否只需要采样间隔准确? 3) 假设 2 个输入文件是单声道的,因为它们来自麦克风,你是在混音到立体声,其中文件 1 到左声道,另一个到右声道,还是到另一个单声道文件或其他?
-
1) 两个文件的采样率不同。我现在可以看到实现混合它们可能会更加困难。我想我想从生成与给出的任何输入相同长度和样本的失真开始,以便可以以更简单的方式添加它。 2)延迟必须是实时准确的,特别是纳秒,但这只是几秒的倍数,所以希望它不会太难。 3)我和我的搭档计划使用的录音设备通过RCA连接器具有左右输入和左右输出,因此应该是立体声的。
-
那么 file1 信号是否需要进入 1 个输出通道,然后 file2 进入另一个,或者信号是否混合以便组合信号进入两个输出通道?我问的原因是,如果它们像前者那样分开,那么两个输入信号就不需要相互混合。另一方面,如果确实需要混合它们,那么您的首要任务就是将采样率转换为其中一个以匹配另一个。我很好奇为什么它们会以不同的速率运行,因为您的输入是模拟的,并且您可以控制 A/D 转换的速率。
-
让我快速地用伪 matlab 代码重写我想要做的事情,这样更容易看到。我将在早上编辑顶部以更好地反映这一点。再次感谢jaket的兴趣! delay=input('ns 中的延迟:');噪声=输入('失真程度:); [y,Fs,nbits]=wavread(文件名); 产生一些与文件相同长度和采样的噪声 newwave=[y+y2,Fs]; 在 x 波上移动许多纳秒 wavwrite(newwave);很抱歉起初令人困惑的目标。这两个文件系统是为了学习目的来组合信号,但最终新的文件系统应该是相同的长度和样本。
标签: matlab audio signal-processing delay octave