24小时热门版块排行榜    

查看: 1377  |  回复: 18
当前主题已经存档。

xiaoke2046

木虫 (知名作家)

这个帖子开的好,可以学习一下
11楼2008-10-07 11:15:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

haojingyan1986

如何用origin里的相关分析求两个信号的时间差

请问怎么用origin里的相关分析求两个信号的时间差?
用这种方法时对两个信号有什么要求吗?
谢谢!!!
12楼2008-10-07 13:17:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xie7713

木虫 (正式写手)

正在学latex还没入门,大家用过的可以一起分享一下经验呀!!
13楼2008-10-20 11:35:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaogen

在 MATLAB里面如何输入温度的符号啊
14楼2008-12-01 23:32:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshilsh

荣誉版主 (职业作家)

优秀版主

★ ★ ★
csfn(金币+3,VIP+0):many thanks, 辛苦了
引用回帖:
Originally posted by xiaogen at 2008-12-1 23:32:
在 MATLAB里面如何输入温度的符号啊

matlab里没有专用的温度符号,如果你的想法是输出图形时有温度标记,建议你对图像处理下,在Word里,咱还是用老办法,先输入小写字母o,再输入大写字母C,然后将小写字母o定义为上标,即可完成。呵呵,如果真找到了,告诉你,也希望你找到了能告诉下我。
[center][url=http://www.91cool.net/][img]http://id.91cool.net/sign/?name=小木虫印&say=各位版主辛苦了![/img][/url][/center]
15楼2008-12-02 15:19:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshilsh

荣誉版主 (职业作家)

优秀版主

★ ★ ★ ★ ★ ★ ★
csfn(金币+6,VIP+0):many thanks, 辛苦了
kuhailangyu(金币+1,VIP+0):非常敬业,佩服+学习!
引用回帖:
Originally posted by haojingyan1986 at 2008-10-7 13:17:
请问怎么用origin里的相关分析求两个信号的时间差?
用这种方法时对两个信号有什么要求吗?
谢谢!!!

找到了部分方法,不知道合意否?但可惜的是在Matla里操作,不过只要能得到结果,白猫黑猫都一样的!


相关函数的应用
  相关函数应用很广,例如噪声中信号的检测、信号时延长度的检测、隐含周期性的检测、信号相关性检验等。而在平稳随机信号里应用就更多了(比如估计信号的功率谱)。由于水平有限,这里举2个简单的应用例子,权作抛砖引玉。希望大家多提意见,积极参与讨论
一 相位延迟的计算
问题描述:
设x(n)和y(n)是2个传感器上得到的观测序列,即:
x(n)=s(n)+w1(n)     (1)
y(n)=s(n-D)+w2(n)   (2)
其中,s(n)是未知信号,s(n-D)为s(n)的移位形式,w1(n)和w2(n)是未知观测噪声。
时延估计问题是通过有限个观测值{x(n),y(n),1≤n≤N}来估计时延参数D。
现有的估计办法:
(1)互相关函数的方法(适用于观测噪声w1(n)与w2(n)为零均值噪声,它们彼此独立,并且与s(n)独立。)
估计的原理:对x(n)和y(n)求互相关,互相关峰值时刻对应的t即为时延D。
(2)基于LMS自适应算法的瞬态信号时延估计
(3)离散小波变换或者小波包的方法
(4)基于人工神经网络的信号时延估计方法
(5)基于小波变换的模极大值方法的时延估计
后边几种方法比较麻烦请查阅相关的文献
各种方法的比较
相关函数法时延估计,方法简单,易于实现,但在背景噪声超过实际的声波发生信号强度时,会出现比较大的测量误差;基于人工神经网络的时延估计,根据样本数据训练神经网络,训练完毕后,可实现含噪信号到纯有用信号的非线性映射,然而一旦背景噪声的类型发生改变时,神经网络需
要重新进行训练,同时神经网络训练方法的选择!神经网络结构的最优化等问题还有待于进一步的探讨;基于小波变换的信号时延估计,目前已经应用在各个领域中,从其实际的应用效果来看,是一种值得推广使用的信号时延估计方法,相比于其他两种方法,小波变换技术更适合于强噪声环境下的声波信号的时延估计"(参考文献来自中国知网)

在信号没有噪声的情况下,时延的估计其实就是相位的估计。n=99;                              %设定每周期数据采集点数
T=6;                               %采样周期数
t=0:2*pi/(n-1):2*T*pi;             %采样数
N=length(t);
fs=1/(n-1);
y1=4*sin(t);                       %信号1
y2=8*sin(t+pi/6);                  %信号2,相位差取pi/6
Cc=xcorr(y1,y2);                   %求互相关函数
plot(Cc);
[y_max,t_max]=max(Cc)              %找出Cc的最大值及对应的t_max
sample_delay=t_max-N;              %计算与中心点相差的样点数
T_sig=(N-1)/6;                     %求信号一个周期的样点数,一个周期相对应于2*pi
delay1=pi/6                        %pi/6的弧度
delay2=2*pi*sample_delay/T_sig     %计算与中心点相差的样点数所对应的弧度值

关于“用FFT快速实现时延估计”的程序,如下:设两路信号分别为x,y且
S1=fft(x,2048) , S2=fft(y,2048)
X = S1.* conj(S2);
Y = abs(S1) .* abs(S2);
Y = Y+ eps;
G = X ./ Y;
R = ifft(G);
现在求出R后,还需怎样计算才能得出两信号的时延呀?”
这个程序估计时延的理论基础其实还是相关函数估计时延。而相关函数的计算利用的的是时域相关定理。
下面验证二种方法是一致的,也就是验证时域相关定理。
clear
n=99;                              %设定每周期数据采集点数
T=6;                               %采样周期数
t=0:2*pi/(n-1):2*T*pi;             %采样数
N=length(t);
fs=1/(n-1);
x1=4*sin(t);                       %信号1
y1=4*sin(t+pi/6);                  %信号2,相位差取pi/6
x=awgn(x1,20);                     %加入噪声
y=awgn(y1,0.001);
x2=awgn(x1./4,-3);                %噪声强度大于信号
subplot(311),plot(t,x)
subplot(312),plot(t,y)
tic
Cc=xcorr(x,y);                      %直接求互相关函数
toc
Cc1=xcorr(x1,y1);  
subplot(313),plot(Cc,'r.'),hold on
plot(Cc1,'-');
tic                                 %根据时域相关定理求互相关
S1=fft(x,2*N-1);
S2=fft(y,2*N-1);
X = S1.* conj(S2);
R1 =real(fftshift(ifft(X)));
toc
figure(2)
subplot(211),plot(Cc),title('xcorr结果')
subplot(212),plot(R1);
title('ifft计算结果')
figure(3)
plot(xcorr(x2,'unbiased'));            
由figure2可以看到2者计算的结果是吻合的,我们知道wgn是调用randn产生白噪声的,而randn产生的是均值为零,方差为1的高斯白噪声。所以上边的程序检测时延是比较准确的,即使在信号被噪声淹没的情况下,相关函数的仍然可以检测到。可以通过将加入噪声的信噪比设置为负值,然后观察效果。通过统计的时间来看,直接用xcorr求互相关比用时域相关定理法求快一些。
Elapsed time is 0.001933 seconds.
Elapsed time is 0.004124 seconds.

二 噪声中信号的检测
原理:对一噪声污染严重的信号,做自相关。从figure3可以辨别出原始信号包含正弦信号。这是一个《数字信号处理》 胡广书编 清华大学出版社 38页的例子,不过图和书上给的有些出入。书上在0点取得最大值,后边就比较正常了,而这个画出来的图像是对称的,并且在600左右一个尖峰。不知道是怎么回事。
[center][url=http://www.91cool.net/][img]http://id.91cool.net/sign/?name=小木虫印&say=各位版主辛苦了![/img][/url][/center]
16楼2008-12-02 15:24:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dnp

荣誉版主 (知名作家)

小木虫浪子

优秀版主

★ ★ ★
woshilsh(金币+3,VIP+0):感谢dnp的热心帮助,呵呵,这下热闹了,互相学习了
温度:
在图中添加温度的时候,先点击图上的A图标,然后在图中拉出文本框,输入代码:^oC即可~~
What would Jesus do?
17楼2008-12-03 16:46:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaogen

谢谢楼上的建议,
我今天在Matlab里面想编个程序算7200-6200波数范围下的主成分的权重值和得分值,请问是不是要不整个波数下对应的数据都要输入啊,那样出来的矩阵有300多列呢,而且算出特征值就一个,请问怎么办呢
18楼2008-12-04 00:08:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshilsh

荣誉版主 (职业作家)

优秀版主

引用回帖:
Originally posted by xiaogen at 2008-12-4 00:08:
谢谢楼上的建议,
我今天在Matlab里面想编个程序算7200-6200波数范围下的主成分的权重值和得分值,请问是不是要不整个波数下对应的数据都要输入啊,那样出来的矩阵有300多列呢,而且算出特征值就一个,请问怎么办呢

恩,我不知道我理解和你相同不,在我自己印象里,主成分分析中,按照特征值递减的顺序排列的协方差矩阵的特征向量相当于数据中的递减方差的方向,其特征值给出特征向量捕获的方差的量。要构成低维的主成份子空间,特征值不可能只有一个的。所以整个数据都要输入,但是经过主成份程序的过滤,最后只留下一部分,也即主成份。如果有哪里不懂,咱们尽快交流,我晚上才有时间。
[center][url=http://www.91cool.net/][img]http://id.91cool.net/sign/?name=小木虫印&say=各位版主辛苦了![/img][/url][/center]
19楼2008-12-04 08:40:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 woshilsh 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见