我试图在频域中创建一个啁啾信号,只需将每个频率仓的幅度设置为 1,然后设置相位延迟函数,使得每个频率仓的最终时间延迟增加。我正在尝试从相位延迟函数计算得到的啁啾的长度。
如果每个频率的时间延迟,,等于周期乘以相位延迟引入的周期数,以及是以弧度为单位的相位延迟作为频率的函数,然后
如果我们定义作为,
然后是时间延迟,, 是(谁)给的,
对我来说很明显,当 f 达到最大值时会出现最大时间延迟, 在哪里是采样频率。
但是,当我尝试合成信号时(在 Matlab 中),
% Create frequency axis (0 to nyquist)
fs = 44100;
fAx = 0:1:(fs/2 - 1);
% Define n so td = nf = 0.25s, and define Phases
n = 0.25/(fs/2);
phi = -2*pi*n*fAx^2;
% Calculate the maximum time delay
td = n*(fs/2);
% Calculate the phase of each frequency up to nyquist
chirp_fft = exp(1i*phases);
% Create Hermitian symmetric signal and ifft
chirp_fft = [chirp_fft(1:end-1), 0, flip(conj(chirp_fft(2:end-1)))];
chirp = ifft(chirp_fft);
% Create time axis and plot chirp
tAx = 0:1/fs:(length(chirp) - 1)/fs;
plot(tAx, chirp)
所以根据我的计算,啁啾应该有 0.25 秒的最大延迟,但是,当我绘制它时:
长度为 0.5 秒。当我尝试其他值时,得到的啁啾声始终是我计算结果的两倍。实际上这不是问题,但我真的很想了解我哪里出错了!我缺少的因子二在哪里?