• 大小: 79KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-18
  • 语言: 其他
  • 标签: 延时  

资源简介

代码很简单,是使用fft、ifft与时域同频域的关系进行延时。网上各种延时都是使用的补零延时。但是在麦克风阵列信号处理中,由于两个麦克间的距离一般小于2cm,延时时间非常短,经常不足1个采样点。而且之前请教的方法都不对,但是这个是可以用的。

资源截图

代码片段和文件信息

clc
close all
clear all
t0 = 56000;             %只取信号前56000个采样点
[simul1fs] = audioread(‘fapb0_sa1.wav‘);    %提取干声信号和其采样率
t2 = 1/fs;              %延时时间,先测试刚好移动一点的结果
signal1 = zeros(t01);
signal1(1:t0) = simul1(1:t0) ;  %提取信号
signal2 = fft(signal1);         %作fft
%反变换
frequency= (linspace(0fst0))‘;%每点对应的频率,且要转置矩阵,否则为行向量,有可能死机
w = 2*pi*frequency;             %模拟角频率表达式
transfer = exp(-i*w.*t2);       %时域延时对应频域的系数矩阵
Out_w1 = signal2 .* transfer;   %fft结果点乘系数(或者说传递函数)
Out1 = ifft(Out_w1);            %反变换输出

figure;         %作图,把两个信号放在一张图上,放大对比看延时情况  
plot (signal1);
hold on;
plot(real(Out1));

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     118214  2017-11-08 14:52  信号延时\fapb0_sa1.wav

     文件        755  2018-07-28 11:21  信号延时\sdelay_byfft.m

     目录          0  2018-07-28 11:21  信号延时

----------- ---------  ---------- -----  ----

               118969                    3


评论

共有 条评论