|
原帖由 vivid920 于 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)
.....
我对y加入了50*randn(1,4096)的噪声,然后用小波默认阈值去噪方法进行去噪,用了上面的代码,但是结果不对,请问是怎么回事?
语句:
for l=1:m1
y=x(l,:)+400*(l-1)+50*randn(1,4096);
plot(y,n),axis tight; hold on;
end
其中y是1*4096的数组,而不是50*4096的数组,所以不能把它当后者处理。我改后的程序如下,但在zy.txt文件中,排列可能和楼主不一样,但计算方法按楼主的,小波去噪还是有效的。
x=load('zy.txt');
x=x';
[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(l,:)=x(l,:)+50*randn(1,4096);
plot(y(l,:)+400*(l-1),n);
axis tight; hold on;
end
hold off
figure(2);
y1=zeros(m1,m2);
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,:)+400*(l-1),n);axis tight;
hold on;
end
hold off
得图有
[ 本帖最后由 songzy41 于 2008-5-19 16:46 编辑 ] |
-
加噪后的信号
-
小波滤波后的信号
评分
-
1
查看全部评分
-
|