eguang8116 发表于 2008-7-9 14:27

请问如何对加噪后的信号进行校正

请问如何对加噪后的信号进行校正能否给个简单的:@P 例子?谢谢

eguang8116 发表于 2008-7-21 15:40

没人知道么????????????????

zhwang554 发表于 2008-7-21 21:51

如何对加噪后的信号进行校正

在任一种校正方法上加上噪声即可, 一般循环多次求均匀根值或均方误差. 下程序是FFT/apFFT组合校正法的加噪结果.
close all;clc;clear all;
T=100;k=1;
while T>0;
    T=T-1;
N=128;
w=2*pi;
t=-N+1:N-1;
f=3.19;
y=1.0*exp(j*(w*t*f/N+50.0*pi/180))+1*randn(size(t));
y1 = y(N:2*N-1);
win =hanning(N)';
win1 = win/sum(win);
y11= y1.*win1;
y11_fft = fft(y11,N);
a1 = abs(y11_fft);
a11=a1(4)*2;
p1 = mod(phase(y11_fft)*180/pi,360);
y2 = y(1:2*N-1);
win =hanning(N)';;
winn =conv(win,win);%apFFT须要卷积窗
win2 = winn/sum(winn);
y22= y2.*win2;
y222=y22(N:end)+;%构成长N的apFFT输入数据
y2_fft = fft(y222,N);
a2 = abs(y2_fft);
p2=mod( phase(y2_fft)*180/pi,360);
      ee=(p1-p2)/180/(1-1/N);
      aa=(a1.^2)./a2;
      ff=round(f);
      p22(k)=p2(ff+1);
      f22(k)=ee(ff+1)+ff;
      a22(k)=aa(ff+1);
      k=k+1;
end
disp('phase correction')
p22=sqrt(mean(p22.^2))
disp('frequency correction')
f22=sqrt(mean(f22.^2))
disp('amplitude correction')
aaa=sqrt(mean(a22.^2))

运行结果
phase correction             p22 = 50.3756550128181
frequency correction       f22 =3.18756832433475
amplitude correction       aaa =1.01499361347264

[ 本帖最后由 zhwang554 于 2008-7-21 22:01 编辑 ]

eguang8116 发表于 2008-7-22 08:49

非常感谢3楼的回复

谢谢,我还有个弱弱的问题,一个纯净信号如果被加上了噪声,那它就有可能不是平稳的信号了,那么还能用诸如fft等频谱分析方法对其进行分析么,还可以用先前的各种校正方法对其进行校正了么,这个问题一直搞不明白,有什么资料可以参考么

zhwang554 发表于 2008-7-22 11:01

加噪信号的校正

一个信号加上噪声仍可以用FFT分析和校正, 这还是FFT分析的一个优点,

一个振幅为1的复指数信号在FFT振幅谱上的最大振幅约为1, 但幅值为1的随机噪声在N阶FFT振幅谱的方差只有1/N, 因为随机噪声的频谱是全部频谱,所以在每个频率上的噪声就均开了,只占1/N, 如N=1024, 则只占千分之一.

如3楼程序中,一个振幅为1,          频率为,3.19,      初相位50度   的复指数信号, 加上幅值为1的随机噪声, 从时域看信号失真很大, 但频域仍可分辨, 校正值为
   N=128            振幅为1.0089频率为,3.1857   初相位50.259
   N=1024          振幅为1.0048频率为,3.1906   初相位50.0854
校正误差不大. N越大, 误差越小.

校正方法不同,效果不一样,
能量中心法至少要以5条受噪声污染的谱线求出校正值, 有的谱线幅值还很小, 校正误差大
比值法的二条谱线有时一大一小, 幅值小的引起的误差就大了
时移相位差法, fft/apfft组合校正法等从二条最大幅值的谱线校正,效果好

现实机械振动信号都是有噪的, 只是有大有小, FFT分析时有的高次谐波谱线就被噪声淹没了

[ 本帖最后由 zhwang554 于 2008-7-22 15:18 编辑 ]

eguang8116 发表于 2008-7-23 14:30

非常感谢zhwang554

在丁康老师写的书中介绍了4种单频校正的方法:比值法,能量重心法,fft+ft法和相位差法,那zhwang554兄提到的fft/apfft是不是算第五种方法了,而且效果比前4种效果要好呢,另外哪里有介绍这种方法的详细点的资料。我现在做的课题与频谱校正相关,感觉相关资料有点少,就有一本书和一些pdf,不知道怎么深入研究下去,还请帮忙啊

zhwang554 发表于 2008-7-23 17:15

回复 6楼

fft有4种单频校正的方法:比值法,能量重心法,fft+ft法和相位差法,

apfft也有                        比值法,能量重心法,fft+ft法和相位差法,

fft/apfft组合校正法是利用fft的振幅谱a1,相位谱p1和apfft的振幅谱a2,相位谱p2来校正,有特点,如振幅A=a1.^2/a2; 可以一次将整个频谱的振幅校正值图示出,然后找出峰值处的校正振幅值, 而能量中心法等是先在振幅谱上一个个找峰值,再求校正值, 所以楼2中用了这种方法

各种校正方法中,用的谱线越少,用最大谱线, 噪声影响就小,fft相位差法, apfft相位差法, fft/apfft法均较好.

apfft可在下贴中可参玖

"“如何准确确定信号中强线谱的相位?”的帖子为:
http://forum.vibunion.com/forum/thread-41548-1-1.html

“请教全相位谱分析问题”的帖子为:
http://forum.vibunion.com/forum/thread-41727-1-1.html

"请求apFFT完整的算法,过程"的帖子为:
http://forum.vibunion.com/forum/thread-63944-1-2.html

[ 本帖最后由 zhwang554 于 2008-7-23 17:26 编辑 ]

yangzj 发表于 2008-7-23 22:54

本帖最后由 wdhd 于 2016-9-12 13:50 编辑

原帖由 eguang8116 于 2008-7-23 14:30 发表
在丁康老师写的书中介绍了4种单频校正的方法:比值法,能量重心法,fft+ft法和相位差法,那zhwang554兄提到的fft/apfft是不是算第五种方法了,而且效果比前4种效果要好呢,另外哪里有介绍这种方法的详细点的资料。我 ...

<<离散频谱分析校正理论与技术>>一书已由科学出版社出版了,可作为参考,中间讨论了在高斯白噪声下,比值法和几种相位差法的精度

[ 本帖最后由 yangzj 于 2008-7-23 22:55 编辑 ]

eguang8116 发表于 2008-7-24 17:07

非常感谢2位!

有机会希望继续请教

S0704082 发表于 2008-8-3 10:08

各位大侠,如果是多频信号加噪

如果是多频信号加入噪声,而且多频信号中的幅值有十分小的项,比如最小幅值0.05,为了能够识别有用信号,进行频谱校正,请问应该加入多大的噪声信号

eguang8116 发表于 2008-8-3 23:02

我觉得如果信号本身比较小的话,加噪声会把信号淹没

zhwang554 发表于 2009-3-12 18:36

回复 6楼 的帖子

本帖最后由 wdhd 于 2016-9-12 13:50 编辑

  王兆华,黄翔东:数字信号全相位谱分析和滤波技术,电子工业出版社,2009.3
  一书己出版,
  书中笫1-6章详细介绍了全相位FFT频谱分析和校正,可参考.
  书中还附有3个matlab程序
  fft和apfft 比较程序
  fft/apfft 时移相位差法校正程序,
  apfft/apfft 时移相位差法校正程序
  [ 本帖最后由 zhwang554 于 2009-3-12 18:46 编辑 ]

zcs661 发表于 2009-3-12 20:37

回复楼主!

也可以参考杨志坚,丁康论文,有两篇是关于噪声背景下离散频谱校正的

xjzhendong 发表于 2012-11-29 23:12

看了王博士和王兆华老师的书,发现频谱校正都是采用模拟信号,比如上面的程序中,已知了f=3.19,才有了下面的程序ff=round(f);
如果从现场采集了一段信号,不确定信号的形式,这种方法还行吗?
我正在思考,谢谢老师指点
页: [1]
查看完整版本: 请问如何对加噪后的信号进行校正