如何找到所选频率的相位角?

How can I find phase angle for chosen frequency?

我是 matlab 的新手,所以我的问题可能很愚蠢。我有两个信号 rec(t) 和 sent(t),我想通过从交叉频谱获得的相位与频率关系找到时间延迟。我通过rec(t)和sent(t)之间互相关的FFT得到交叉谱。这是:

time=data(15:length(data),1);                                               %time of measurement - s
sent=data(15:length(data),2);                                               %sent signal - mV
rec=data(15:length(data),3);                                                %recorded signal - mV
samples=length(time);                                                       %number of samples
Fs=samples/max(time);                                                       %sampling frequency - Hz
dt=max(time)/samples;                                                       %time interval - s
freq=(0:samples/2)/samples/dt;                                              %frequency scale for FFT
FFTrec=fft(rec);                                                            %FFT of recorded signal
FFTsent=fft(sent);                                                          %FFT of sent signal
CorrRecSent=(ifft(FFTrec.*conj(FFTsent)));                                  %cross correlation definition
CS=fft(CorrRecSent);                                                        %cross spectrum (CS)
amp=abs(CS);                                                                %amplitude of CS
amp1=amp(1:samples/2+1);                                                    %amplitude of CS for half of the frequency spectrum
A2=angle(CS);
A1=A2(1:samples/2+1);                                                       %phase angle of (CS)
A=unwrap(A1);                                                               %unwrapped phase
plot(freq,(A));
xlabel('frequency (Hz)')
ylabel('phase (rad)')

这是情节。是否有任何命令或程序如何获得给定频率的精确相位角(用黑线标记)?或者我怎样才能找到绘制的橙色线的斜率?我选择这个频率范围是因为我发送的信号是5 kHz,所以选择了附近的东西。

感谢您的帮助。

在图中,您将 freq 设置为 x 轴向量,将 A 设置为 y 轴向量。

要想知道橙色线的斜率,首先要知道4000Hz和8000Hz所在的索引是:

f1 = find(freq==4000);
f2 = find(freq==8000);

那你可以看看这两点是哪个阶段:

p1 = A(f1);
p2 = A(f2);

最终斜率将是 deltaX / deltaY:

slope = (f2-f1)/(p2-p1);