声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2225|回复: 11

[综合] 数据分析的一个综合例子,新手请进

[复制链接]
发表于 2007-7-29 15:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
例子原型来自《matlab7.0从入门到精通》 求是科技编著。对其例子略作删改,正弦信号中高斯白噪声的滤除、信号直流成分和线性成分的去除(使用detrend函数,记得论坛上有去均值和趋势项的程序。二者十分相似)。拿来和大家分享:@) ,同时希望大家都能把自己感觉不多的例子和笔记拿出来分享。共同学习,一起进步!
clear
b=ones(1,5)./5;%均值模板
t=0:0.1:10;
x=40*sin(t)+6*randn(size(t));%正弦加高斯白噪声
y=2*t+0.5*randn(size(t));%带线性成分的随机信号
z=3+0.5*randn(size(t));%带直流成分的随机信号
X=filter(b,1,x);
X1=medfilt1(x,10);
Y=detrend(y);%去除线性成分
Z=detrend(z,'constant');%去除直流成分
a=get(0);
figure('position',a.ScreenSize);%figure('position',a.MonitorPositions);
%最大化窗口,便于显示
hold on;
subplot(311),plot(t,x,t,X,'r.',t,X1,'g*')
axis([0 10 -60 60]);
legend('原始数据','均值滤波','一维中值滤波','Location','best');
title('高斯噪声的滤除效果');
subplot(312),plot(t,y,t,Y,'r.');
legend('原始数据','去除线性成分后','Location','best');
title('使用detrend去除线性成分')
subplot(313),plot(t,z,t,Z,'k-');
legend('原始数据','去除直流成分后','Location','best');
title('使用detrend去除直流成分')

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2007-7-29 15:56 | 显示全部楼层

回复 #1 花如月 的帖子

有没有滤波器的,能不能整几个例子
发表于 2007-7-29 16:00 | 显示全部楼层
挺好的例子。
 楼主| 发表于 2007-7-29 16:03 | 显示全部楼层
谢谢版主鼓励,最近在补信号处理的基础。所以会做不少例题,同时也会遇到不少问题。问的问题要是太没水准你可不许笑话我。再整理出好的例子还会在这个帖子下跟的
 楼主| 发表于 2007-7-29 16:05 | 显示全部楼层

回复 #2 zhangnan3509 的帖子

正在整理,准备和二维的放到一起。我补一维信号处理是为了,理解二维图像的一些滤波处理。基础不好,可是闹了不少笑话
发表于 2007-7-29 16:16 | 显示全部楼层

回复 #5 花如月 的帖子

我对很多内容也不清楚!滤波器这块基本是空白,所以有点私心了,以后多发点,我们共同学习啊
 楼主| 发表于 2007-7-29 18:14 | 显示全部楼层
问一些基本的问题:在对序列做fft的时候,fft的点数和序列长度有关系么?变换后的序列是复数,在频域滤波里似乎都是利用fft结果幅值信息,相位信息有什么用处?

另外eight提到过使用EMD和小波可以消除正弦波中的白噪声,哪位高人有没有例程呢?很想知道消噪的效果,毕竟平均值和中值滤波效果都不怎么好

[ 本帖最后由 花如月 于 2007-7-29 18:48 编辑 ]
发表于 2007-7-29 19:11 | 显示全部楼层

回复 #7 花如月 的帖子

eight做过一个消噪的例子,但不是消除正弦中白噪声,至于程序 你得问他了,而且很多论文上都有关于小波消噪的,可以找找看!
我觉得为什么fft之后,往往做幅频谱,其目的应该是为了使谱图更加直观简单,虽然做双边复数谱物理意义比较突出。

对于仿真信号,习惯上取点都是2^n倍,至于fft取点,你用的应该是fft(x,N),点之间的关系在help里有解释
Y = fft(X,n) returns the n-point DFT. If the length of X is less than n, X is padded with trailing zeros to length n. If the length of X is greater than n, the sequence X is truncated. When X is a matrix, the length of the columns are adjusted in the same manner.
发表于 2007-7-29 19:36 | 显示全部楼层

回复 #7 花如月 的帖子

同时我不看好 EMD的消噪,起码我没有得到好的例子
发表于 2007-7-30 08:50 | 显示全部楼层
[localimg=560,420]1[/localimg][localimg=560,420]2[/localimg][localimg=560,420]3[/localimg]小波消澡试了些,但不是很明白.消噪的效果也不是很好.我这有用polyfit函数消噪的图,效果很好,和你的差不多.[localimg=560,420]1[/localimg]
发表于 2007-7-30 08:52 | 显示全部楼层
map1.jpg map2.jpg map3.jpg
哈哈,格式搞错了 
s2=z;
s1=z;
a1=polyfit(t,s2,1);
s2=s2-polyval(a1,t);
plot(t,s1,t,s2,'r');
legend('原始数据','去除高斯白噪声','Location','best');
其它的程序跟花如月的一样了

小波的消噪程序
[thr,sorh,keepapp,crit]=ddencmp('den','wp',b);
%use all threshold choose wdencmp noise dispose\
[c,treed,perf0,perf12]=wpdencmp(b,sorh,3,'db2',crit,thr,keepapp);
figure;
plot(t,s1,t,c,'r');
legend('原始数据','去除高斯白噪声','Location','best'); wavelet.jpg
不太会用,所以效果不是很好.

[ 本帖最后由 hector1982 于 2007-7-30 09:07 编辑 ]
发表于 2007-7-30 08:57 | 显示全部楼层

回复 #11 hector1982 的帖子

把程序贴上吧!图限制在400K,应该没问题啊
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 20:24 , Processed in 0.070495 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表