寒汉兵 发表于 2009-8-16 11:20

两路信号上频率为10K的信号的相位差?

求助:现在有两路实验信号(含噪声),采样频率100k,长度512,那么求这两路信号上频率为10K的信号的相位差,该如何实现?

sunrongxiaowei 发表于 2009-8-16 11:47

没能很明白你的意思,两路信号上频率为10K的相位差是什么概念?

寒汉兵 发表于 2009-8-16 17:00

本帖最后由 VibInfo 于 2016-10-20 16:14 编辑

原帖由 sunrongxiaowei 于 2009-8-16 11:47 发表
没能很明白你的意思,两路信号上频率为10K的相位差是什么概念?
有一个发射器发射信号频率为10K的脉冲信号,两个接收器,处在不同的位置。两个接收器接收的信号用采集器采集,由于两个接受器的空间位置不同,声波到达两个接受器所经历的声程也就不同,必然引起相位的不同(即:相位差),我现在就是想求出相位差

hcharlie 发表于 2009-8-16 18:13

回复 板凳 寒汉兵 的帖子

采集点512点,要求10K频率下的相位,建议采集频率由100K变成102.4K,这样FFT以后频率分辨率200Hz,第50谱线即为10K。求出这两个点的FFT,各求出第50谱线的相位,取其差即可。

VibrationMaster 发表于 2009-8-16 18:18

回复 地板 hcharlie 的帖子

自己生成一个10k正弦信号,与两个信号分别作相关,有相关系数得到相位差,然后相减。这适用于所有的情形

寒汉兵 发表于 2009-8-16 20:27

本帖最后由 VibInfo 于 2016-10-20 16:16 编辑

原帖由 hcharlie 于 2009-8-16 18:13 发表
采集点512点,要求10K频率下的相位,建议采集频率由100K变成102.4K,这样FFT以后频率分辨率200Hz,第50谱线即为10K。求出这两个点的FFT,各求出第50谱线的相位,取其差即可。
这里面是不是存在着泄露的问题,并且这个信号是我在已采集的CW脉冲信号(有噪声污染)中截取的,我手上已有的是数据采样率就是100K,无法改变,用apFFT能否求10K下的相位差?

寒汉兵 发表于 2009-8-16 20:28

本帖最后由 VibInfo 于 2016-10-20 16:21 编辑

原帖由 VibrationMaster 于 2009-8-16 18:18 发表
自己生成一个10k正弦信号,与两个信号分别作相关,有相关系数得到相位差,然后相减。这适用于所有的情形
信号不是单频信号,还有其他噪声信号,相关能否实现?

hcharlie 发表于 2009-8-16 21:20

本帖最后由 VibInfo 于 2016-10-20 16:21 编辑

原帖由 寒汉兵 于 2009-8-16 20:27 发表

这里面是不是存在着泄露的问题,并且这个信号是我在已采集的CW脉冲信号(有噪声污染)中截取的,我手上已有的是数据采样率就是100K,无法改变,用apFFT能否求10K下的相位差?
取500个点做DFT,仍然取第50谱线,如果10K频率准确,取了50个整周期数据就没有泄漏。

[ 本帖最后由 hcharlie 于 2009-8-16 21:28 编辑 ]

zhwang554 发表于 2009-8-17 19:21

fft求相位差不一定要保证整数倍取样关系

不一定要保证整数倍取样关系, 由於两路信号频率相同,频率偏离引起的相位误差相同, 相减时互相抵消, 二路相位测量值之差即相位差

[ 本帖最后由 zhwang554 于 2009-8-17 19:44 编辑 ]

hcharlie 发表于 2009-8-18 07:28

回复 9楼 zhwang554 的帖子

如果不是整数倍采样,则相位本身也不正确,怎样求相位差?

zhwang554 发表于 2009-8-18 10:04

fft相位测不准,相位差测得准

不是整数倍采样,fft相位是测不准,但测两路相同频率信号的相位差测得准,两路误差相等,抵消了
由於相位差只在两个频率相同的信号才有意义,所以fft测相位差测得准

如信号相位为p,频偏为df,则fft相位测量值为p+df*pi*(N-1)/N,后一项为频偏df引起的相位失真,只和df和N有关, 这个公式可参见信号处理书

今有两路同频信号,其频偏df也相同,相位分别为p1和p2
则笫一路fft相位测量值为      p11=p1+df*pi*(N-1)/N
笫二路fft相位测量值为      p22=p2+df*pi*(N-1)/N
两路fft相位测量值之差为      p22-p11=p2-p1                      即两路信号相位差

下面是采样频率fs=100k,两路信号频率都是f=10k,但初相位分别为50度和100度的测相位差程序,N=512时,测的相位差是准确的50度,但每一路的相位都不准确

close all;clc;clear all;
N=512;
w=2*pi;
t=-0:N-1;
f=10000;
fs=100000;
y1=cos(1*(w*t*f/fs+50.0*pi/180));
win =hanning(N)';
win1 = win/sum(win);
y11= y1.*win1;
y11_fft = fft(y11,N);
a1 = abs(y11_fft);
p1 = mod(phase(y11_fft)*180/pi,360);
y2=cos(1*(w*t*f/fs+100.0*pi/180));
y22= y2.*win1;
y22_fft = fft(y22,N);
a2 = abs(y22_fft);
p2 = mod(phase(y22_fft)*180/pi,360);
pp=p2-p1;
disp('两路相位差')
pp(52)
disp('第一路相位')
p1(52)
disp('第二路相位')
p2(52)

运行结果:
两路相位差50.000度
第一路相位 85.930度
第二路相位 135.93度

[ 本帖最后由 zhwang554 于 2009-8-18 20:49 编辑 ]

z_c217 发表于 2012-3-14 16:35

回复 1 # 寒汉兵 的帖子

我现在也遇到了同样的问题,就是求同一个多频声源发出的信号,不同接收点接收到的两路信号的相位差如何求解的问题,能不能赐教一下呢?我需要求出不同频率对应的相位差。谢谢了!!

rencs1 发表于 2012-3-15 09:15

{:{20}:}楼主最后也没给说说
页: [1]
查看完整版本: 两路信号上频率为10K的信号的相位差?