声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3012|回复: 24

[综合讨论] 雷达数据读入到MATLAB的问题!

[复制链接]
发表于 2008-5-18 22:21 | 显示全部楼层 |阅读模式

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

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

x
大家好,我这里有个问题想请教各位:
我用探地雷达采集了一些数据,用自带的雷达软件读出的wiggle图如下:
1.jpg
从图中可见异常非常的明显!可是当我把数据转换为txt格式后,再在MATLAB里打开得到的是下面的图形:
2.jpg
从图中可见,异常不明显!同样的数据为何有如此大的区别呢?是读取方法的问题吗?读取数据的程序代码如下(是论坛高手们帮助提供的):
clc; fid=fopen('zy.txt');
m=4096; a2=fscanf(fid,'%f',[m,inf]);
n=size(a2,2); a=zeros(m,n);
for i=1:n, a(:,i)=bin2dec(int2str(a2(:,i))); end
for l=1:n, subplot(1,n,l); plot(a(:,l),1:m); axis off; axis('ij'); end

数据见附件:由于文件太大所以分了四个!

zy1-13.txt

161.74 KB, 下载次数: 43

zy14-26.txt

170.74 KB, 下载次数: 29

zy27-39.txt

169.89 KB, 下载次数: 23

zy40-50.txt

136.23 KB, 下载次数: 19

回复
分享到:

使用道具 举报

 楼主| 发表于 2008-5-18 22:23 | 显示全部楼层
请各位大虾们指教!谢谢!:@)
发表于 2008-5-18 22:35 | 显示全部楼层
上面那个图的横坐标尺度比较小,使得波动看起来比较明显。
发表于 2008-5-19 08:37 | 显示全部楼层
1,采集来的数据我想是正确的,但在显示上,加以了控制。在0-1之间的峰值与4附近的峰值在量级差了将近几十倍至一百多倍,所以要把在0-1之间的峰值完全显示出来的话,则4附近的峰值就显得很小,就象楼主显示的那样。但如果在显示时把0-1之间的峰值限止在某一范围中,超值部分就截幅(如wiggle图所示),则就能把4附近的峰值突显出来。

2,读入.txt文件不必怎么复杂,可用
x1=load('zy1-13.txt');
x2=load('zy14-26.txt');
x3=load('zy27-39.txt');
x4=load('zy40-50.txt');
x=[x1; x2; x3; x4];

评分

1

查看全部评分

 楼主| 发表于 2008-5-19 09:18 | 显示全部楼层
 楼主| 发表于 2008-5-19 09:21 | 显示全部楼层
原帖由 songzy41 于 2008-5-19 08:37 发表
1,采集来的数据我想是正确的,但在显示上,加以了控制。在0-1之间的峰值与4附近的峰值在量级差了将近几十倍至一百多倍,所以要把在0-1之间的峰值完全显示出来的话,则4附近的峰值就显得很小,就象楼主显示的那样。但 ...


用你的方法读取的数据是这样的:
3.jpg
 楼主| 发表于 2008-5-19 09:23 | 显示全部楼层
原帖由 songzy41 于 2008-5-19 08:37 发表
1,采集来的数据我想是正确的,但在显示上,加以了控制。在0-1之间的峰值与4附近的峰值在量级差了将近几十倍至一百多倍,所以要把在0-1之间的峰值完全显示出来的话,则4附近的峰值就显得很小,就象楼主显示的那样。但 ...


我主要是想把4附近的峰值显出来,你能告诉我该怎么做吗?谢谢!
 楼主| 发表于 2008-5-19 09:38 | 显示全部楼层
4.jpg

我选了某一道数据,上图是没有改变坐标所得到的波形,下图是改变纵坐标所得到的波形,下图异常显示的很明显,但是0-500附近的采样点的值不能完全显示,有没有同时兼顾的方法呢?
发表于 2008-5-19 09:47 | 显示全部楼层
按我的截幅,程序如下,
x1=load('zy1-13.txt');
x2=load('zy14-26.txt');
x3=load('zy27-39.txt');
x4=load('zy40-50.txt');
x=[x1; x2; x3; x4];
[m1,m2]=size(x);
for l=1:m1
    for k=1:m2;
        if x(l,k)>1000
            x(l,k)=1000;
        elseif x(l,k)<-1000
            x(l,k)=-1000;
        end
    end
end
n=m2:-1:1;
for l=1:m1
    y=x(l,:)+400*(l-1);
    plot(y,n); hold on;
end
hold off   
得到的图有
vi21a.jpg

评分

1

查看全部评分

发表于 2008-5-19 09:52 | 显示全部楼层
原帖由 vivid920 于 2008-5-19 09:38 发表
34839

我选了某一道数据,上图是没有改变坐标所得到的波形,下图是改变纵坐标所得到的波形,下图异常显示的很明显,但是0-500附近的采样点的值不能完全显示,有没有同时兼顾的方法呢?

就象我在4楼指出的,“在0-1之间的峰值与4附近的峰值在量级差了将近几十倍至一百多倍”,要同时兼顾很难,要兼顾,必然使4附近的峰值看不清楚,而且wiggle图中本身也是截幅后画的。
 楼主| 发表于 2008-5-19 10:00 | 显示全部楼层
原帖由 songzy41 于 2008-5-19 09:47 发表
按我的截幅,程序如下,
x1=load('zy1-13.txt');
x2=load('zy14-26.txt');
x3=load('zy27-39.txt');
x4=load('zy40-50.txt');
x=[x1; x2; x3; x4];
[m1,m2]=size(x);
for l=1:m1
    for k=1:m2;
        i ...


非常感谢你!如果我要对每一道加一定信噪比的噪声呢,该如何加啊?我尝试加过但是总觉得不对,不是我想要的效果!你能告诉我吗?
发表于 2008-5-19 10:59 | 显示全部楼层
你不妨试试,用awgn函数来加噪声。
 楼主| 发表于 2008-5-19 11:07 | 显示全部楼层
原帖由 songzy41 于 2008-5-19 10:59 发表
你不妨试试,用awgn函数来加噪声。


我用这个函数加了
可是好像效果不好
是不是我用的方法不对呢
比如说我要加个信噪比我10的噪声
是不是y=awgn(x,10)
 楼主| 发表于 2008-5-19 11:39 | 显示全部楼层
radardata=load('25s.txt' );
X=radardata(1:4096);
XN=X+100*randn(1,4096);

我对某一道加入了这样的噪声
可以知道信噪比么?
 楼主| 发表于 2008-5-19 14:33 | 显示全部楼层
x=load('zy.txt');
[m1,m2]=size(x);
for l=1:m1
    for k=1:m2;
        if x(l,k)>1000
            x(l,k)=1000;
        elseif x(l,k)<-1000
            x(l,k)=-1000;
        end
    end
end
n=m2:-1:1;
for l=1:m1
    y=x(l,:)+400*(l-1)+50*randn(1,4096);
    plot(y,n),axis tight; hold on;
end
hold off
figure(2);
y1=zeros(m2,m1);
for b=1:m1
    [c,l]=wavedec(y(:,b),3,'sym4'); %分解原始雷达信号
    [thr,sorth,keepapp]=ddencmp('den','wv',y(:,b));
    y1(:,b)=wdencmp('gbl',c,l,'db1',3,thr,sorth,keepapp);
end
for l=1:m1
    plot(y1(:,l),n);axis tight;
    hold on;
end
hold off

我对y加入了50*randn(1,4096)的噪声,然后用小波默认阈值去噪方法进行去噪,用了上面的代码,但是结果不对,请问是怎么回事?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-18 02:53 , Processed in 0.069721 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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