alwaysfly 发表于 2006-9-12 10:21

处理混合信号遇到的问题

:@(最近在用一个文献中的方法处理一个正弦和随机信号的混叠信号(文献中第2部分到第3页的第二段结束)
得出的结果不正确
因为以前没有学过信号
所以不知道理解和程序有没有问题
希望好心人给指点一二
谢谢
程序
%extract the periodic signal
clear
clc
%load the arbitrary signal data11 and the periodic signal data11sin.
load data11.txt
load data11sin.txt
xx=data11sin(:,2);
H1=zeros(256,1);
H2=zeros(256,1);
HH=zeros(256,1);

for ii=1:10
       xx1=data11(ii*5:ii*5+127,2);
       xx2=data11(740+ii*5:ii*5+867,2);
       h1=window(128,'Hamming');
         x1=xx1.*h1;
         x2=xx2.*h1;
         xkd=fft(x1,256);
         xk=fft(x2,256);
      for jj=1:256
    H1(jj)=xkd(jj)*conj(xk(jj))+H1(jj);
    H2(jj)=xkd(jj)*conj(xkd(jj))+H2(jj);
      end
end


for ii=1:256
    HH(ii)=H1(ii)/H2(ii);
end
figure(1);
ifftHH=ifft(HH);
bn=ifftHH;
subplot(211);
plot(abs(HH));
subplot(212);
plot(abs(bn));
h2=boxcar(127);
bm=bn(1:127).*h2;

b=bm.';
figure(2);
plot(abs(b));
a=1;
X=data11(:,2);


y=filter(b,a,X);
figure(3);
subplot(311),
plot(X),
axis([ 0 1000 -0.5 0.5]),
subplot(312),
plot(real(y)),
axis([ 0 1000 -0.5 0.5]),
subplot(313),
plot(xx),
axis([ 0 1000 -0.5 0.5]);

songzy41 发表于 2006-9-15 21:31

看了楼主提供的文献(文献中第2部分到第3页的第二段结束)和程序,没有发现重大的错误,程序是按文献来编写的。只是建议把
b=bm.';
改为
b=real(bm');
因为bn从IFFT变过换来,实际上是一个实数序列,只是有计算误差,才会有虚部,仔细看的话,会发现虚部很小。
但我有二个问题想和楼主商讨:
1,正如楼主讲的,文献是给出“处理一个正弦和随机信号的混叠信号”,正因为是这样两个信号相叠加,才使文献中(1)式的Sxx(分母中)可分解为Spp+Srr,它们的交叉项为0,即它们不相关。
但在楼主给的信号data11中,似乎并不是一个正弦和随机信号的混叠信号,而是多个正弦信号或衰减的正弦信号,因此在这种条件下,用文献的方法是否合适?
2,在文献中,有二的参数没有很好地交待(至少在文献中第2部分到第3页的第二段结束内),即对Δ和K怎么选择。我认为这两个参数也十分关键,它们和信号的特性有关,只有适当地选择,才能起到消噪的作用。

alwaysfly 发表于 2006-9-17 20:07

楼上的大哥
首先要谢谢你

其次是我得信号是一个衰减的正弦信号,中间某一个时间点出现一个冲击信号。其实这个信号是一个梁在一个节点上受到正弦力和某一个时间点出现一个冲击力后梁上某一点的位移信号。这算是正弦和随机信号的混叠吗,我没学过信号,有些不是很清楚。

至于那两个参数,我曾经试着变化了一个K的值,结果没有大的变化。

songzy41 发表于 2006-9-18 16:51

我细分析后有这两点看法:
1,文献中提出的方法,虽文献中没有说,但我感觉只适用于稳态的信号,而不适用非稳态的情况。而楼主使用的是指数衰减的正弦信号属于非稳态信号。
2,还是上帖所说的,这方法用于“处理正弦(非衰减的)和随机信号的混叠信号”。在文献中是说该方法是把一个周期信号从宽带信号中提取出来,也是这个意思(衰减信号严格讲不能算是周期信号)。而楼主的信号,把data11和data11sin作谱分析可看到都是窄带信号,因此楼主想用这方法来解决可能不合适。
我还想进一步问一下,楼主说“信号是一个梁在一个节点上受到正弦力和某一个时间点出现一个冲击力后梁上某一点的位移信号”,data11和data11sin是代表什么信号,楼主想达到什么样的目的。

[ 本帖最后由 songzy41 于 2006-9-18 16:54 编辑 ]

alwaysfly 发表于 2006-9-19 09:03

data11是加了正弦和冲击后梁上某点的振动响应
data11sin是只加正弦梁上某点的振动响应
我现在是想琢磨检测结构的突然损伤的
因为突然损伤在ANSYS中无法模拟
所以先尝试用加正弦激励后的突然出现冲击力来模拟突然损伤后结构的响应
现在就是想把这个信号的正弦和冲击成分分别分离出来

楼上大哥的建议我会仔细考虑的
那是不是去掉衰减系数设置
结果会好一些呢?

songzy41 发表于 2006-9-19 10:09

1,如果在实际情况中有衰减,去掉衰减不是不符合实际情况?

2,从data11和data11sin来看,似乎冲击力作用梁上某点后产生的振动在某些频率上与正弦力作用梁上某点的振动的频率相同。为什么怎样说呢,因为在正弦力作用梁上某点的振动时有频率f1,幅值为a1,当冲击力作用梁上某点后产生的振动也有f2,幅值是a2。如果仅是正弦力作用梁上某点的振动,幅值应为a1,但在冲击力作用后a2>a1。说明冲击力也激发出这频率。
也正因为如此,我在上帖中指出data11和data11sin都是窄带信号,因此楼主想用这方法来解决可能不合适。

3,是否可寻找其它把这个信号中的正弦力作用和冲击力作用的成分分别分离出?

[ 本帖最后由 songzy41 于 2006-9-19 10:12 编辑 ]
页: [1]
查看完整版本: 处理混合信号遇到的问题