matlab怎么用中值滤波来处理一个意味数组
2个回答
展开全部
%给你个程序参考,中值滤波效果不一定好,你可以依据你的数据进行改进:
clc;clf
clear all
%载入数据 test1.mat 数据文件
load('test1'); % 也可以直接定义: test=[1 2 ……]
% test1 数组长度
n1=size(test1,1);
x1=1:n1;
test1=test1(x1);
figure(1)
plot(x1,test1,'b-')
title('test1的原始数据图')
%中值滤波法滤除噪声
figure(2)
w=7; %取窗口值为7,可自己设置其它的值试试看效果
for i=1:n1-w
v=i:i+w-1;%取滑动窗口的元素向量
%将窗口中元素排序
qr=sort(test1(v));
%取排序后的中间元素
me=qr(fix(w/2)+1);
end
%画图
plot(x1,test1)
title('test1的滤波后数据图')
%设置图形的轴限,观察后设置的,便于对比
axis([0,100,0,100])
clc;clf
clear all
%载入数据 test1.mat 数据文件
load('test1'); % 也可以直接定义: test=[1 2 ……]
% test1 数组长度
n1=size(test1,1);
x1=1:n1;
test1=test1(x1);
figure(1)
plot(x1,test1,'b-')
title('test1的原始数据图')
%中值滤波法滤除噪声
figure(2)
w=7; %取窗口值为7,可自己设置其它的值试试看效果
for i=1:n1-w
v=i:i+w-1;%取滑动窗口的元素向量
%将窗口中元素排序
qr=sort(test1(v));
%取排序后的中间元素
me=qr(fix(w/2)+1);
end
%画图
plot(x1,test1)
title('test1的滤波后数据图')
%设置图形的轴限,观察后设置的,便于对比
axis([0,100,0,100])
追问
你能不能帮我处理一下这个数据啊?就用中值滤波的方法。帮帮忙吧。麻烦了
来自:求助得到的回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询