利用互相关对齐两个信号

11视图(30天)
露易丝·威尔逊
露易丝·威尔逊 2021年8月12日
编辑: 图像分析 2021年8月12日
我有两个四通道记录仪,共有六个麦克风。由于两者之间的时间差录音机~ 5秒,我需要调整信号。我以前这样做成功的使用代码函数AlignWave文件交换,在下面的代码我对齐两个渠道第二记录器与第一频道第一个录音机。然而在我47个记录的数据集,有一个文件,这并不工作,我不知道为什么。在这种情况下,只有一两个文件的第二个录音机是正确对齐。
我很乐意分享数据,但是超过5 mb的文件是压缩格式。
% %对齐。wav从第二与第一记录仪记录
i = 1:高度(uPa_out.recorder_671105061)
wav1 = uPa_out.recorder_671105061.pos1{我,1};%的datetime文件在第一次记录器
wav1_dt = strsplit (uPa_out.recorder_671105061.wavFile{1},我,“。”);
wav1_dt = datetime (wav1_dt (2),“InputFormat”,“yyMMddHHmmss”);
start_range = wav1_dt-seconds (5);
rec2_files = {uPa_out.recorder_335577141.pos5{1},我uPa_out.recorder_335577141.pos2{我1}};% datetime文件的第二个录音机
rec2_files_dt = strsplit (uPa_out.recorder_335577141.wavFile{1},我,“。”);
rec2_files_dt = datetime (rec2_files_dt (2),“InputFormat”,“yyMMddHHmmss”);
%只有对齐频道不同记录如果有< = 5秒
%之间
如果(rec2_files_dt > = start_range) & (rec2_files_dt < = wav1_dt)
b = 1:长度(rec2_files)
wav2 = rec2_files {1, b};
x = xcorr (wav1 wav2);%利用互相关对齐数据
[~ d] = max (x);% d指数最大的x的值
延迟= d-max(长度(wav1), (wav2));
如果延迟> 0
yfrag =[0(延迟,1);wav2];
其他的
yfrag = wav2(延迟+ 1:结束);
结束
wav2_files_new {1, b} = yfrag;
wav2_files_new{2,} =延迟+ 1;
结束
Data.five_new = wav2_files_new {1};
Data.two_new = wav2_files_new {1,2};
%的正确长度渠道长度都是一样的
如果延迟> 0
其他的%如果第二数据记录器是左移到与数据一致
%的第一个录音机,那么你需要删除在年底“额外的”数据
%频道第一个录音机
长度(1,- 1)=长度(wav2_files_new {1 1});%每个新调整通道的长度会有所不同
长度(2,1)=长度(wav2_files_new {1,2});
min_length = min(长度);%找到最短的重塑通道,减少所有渠道的长度
uPa_out.recorder_671105061.pos1{我1}= uPa_out.recorder_671105061.pos1{1}我(1:min_length);
uPa_out.recorder_671105061.pos6{我1}= uPa_out.recorder_671105061.pos6{1}我(1:min_length);
uPa_out.recorder_671105061.pos3{我1}= uPa_out.recorder_671105061.pos3{1}我(1:min_length);
uPa_out.recorder_671105061.pos4{我1}= uPa_out.recorder_671105061.pos4{1}我(1:min_length);
%也需要削减第二长的通道记录仪
%就减少两个,一个将保持不变,一个将会改变
%根据信道的时间越长
uPa_out.recorder_335577141.pos5_new{我1}= Data.five_new (1: min_length);
uPa_out.recorder_335577141.pos2_new{我1}= Data.two_new (1: min_length);
结束
其他的
%不对齐文件如果他们有不同的开始时间
警告(的文件从不同的录音机有不同的开始时间);
结束
结束
%看看每个通道的信号
图(我);
次要情节(611);情节(uPa_out.recorder_671105061.pos1{1}我)
次要情节(612);情节(uPa_out.recorder_671105061.pos6{1}我)
次要情节(613);情节(uPa_out.recorder_671105061.pos3{1}我)
次要情节(614);情节(uPa_out.recorder_671105061.pos4{我1});
次要情节(615);情节(uPa_out.recorder_335577141.pos5{1}我)
次要情节(616);情节(uPa_out.recorder_335577141.pos2{我1});
次要情节(615);情节(Data.five_new);
次要情节(616);情节(Data.two_new);
次要情节(615);情节(uPa_out.recorder_335577141.pos5_new{我1});
次要情节(616);情节(uPa_out.recorder_335577141.pos2_new{我1});

答案(1)

图像分析
图像分析 2021年8月12日
你可以压缩它们,把它们放在你的MATLAB驱动器或谷歌开车。
互相关并不总是找到一个信号是在另一个地方。 这是一个神话。有时这是真的,有时不是。也许你有一个情况,这不是真的。它所做的就是找到两个信号的乘积最大,这可能不会发生,你认为最好的信号重叠——特别是如果信号是不同的像一个更大的或不同振幅相比其他。请看附呈的演示。
2的评论
图像分析
图像分析 2021年8月12日
编辑:图像分析 2021年8月12日
就我个人而言,我还没有做过,但这是文档。看起来像你还需要一个电子邮件地址,但你可以选择一个即时/一次性一个像 answers@malinator.com 之类的。
共享文件夹 MATLAB
从R2019b开始,如果你想要别人能够查看或编辑你的文件,你可以共享的文件夹 MATLAB 和控制文件的权限。您可以通过邀请个别成员共享一个文件夹访问的文件夹或通过共享文件夹的链接。
共享一个文件夹 MATLAB ® , MATLAB开车连接器 必须运行和您所选择的文件夹必须在你分享吗 MATLAB 开车 。如果你是在工作 MATLAB在线™ ,你不需要 MATLAB 开车 分享总是启用以来连接器共享文件夹。
关于分享的更多信息 MATLAB 开车 ,包括限制,请参阅 MATLAB 开车 文档。 共享一个文件夹
共享一个文件夹的邀请,在当前浏览器文件夹,右键单击该文件夹并选择 分享 > 管理成员 。您可以选择分享只限查看或为每个人单独可以编辑权限。输入几个地址,使用分号或逗号分隔符。你只能这样做,如果他们都有相同的访问级别。
你邀请的人以这种方式共享文件夹将会收到一封电子邮件邀请。他们必须接受邀请访问共享文件夹。当邀请个别参与者,您可以随时更改每个成员的访问后最初的邀请。
共享一个文件夹和一个只限查看的链接时,浏览器在当前文件夹,右键单击文件夹并选择 分享 > 管理链接 。点击 复制链接 将链接复制到剪贴板。
MATLAB 在线 共享一个文件夹,你之前没有共享的邀请,右键单击文件夹并选择 分享 > 邀请成员 。分享链接的文件夹,右键单击文件夹并选择 分享 > 创建链接
从技术支持也看到这篇博文万博1manbetx

登录置评。

标签

s manbetx 845


释放

R2020a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!