Matlab课程设计数据滤波程序.docx
- 文档编号:25089358
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:16
- 大小:32.32KB
Matlab课程设计数据滤波程序.docx
《Matlab课程设计数据滤波程序.docx》由会员分享,可在线阅读,更多相关《Matlab课程设计数据滤波程序.docx(16页珍藏版)》请在冰豆网上搜索。
Matlab课程设计数据滤波程序
Matlab综合
课程设计报告
设计题目:
专业物联网工程
班级142
学生王明莲
指导教师刘庆
2016年春季学期
设计任务:
题目:
功能:
。
要求:
。
第一部分(20%)
第二部分(20%)
第三部分(30%)
第四部分(30%)
报告成绩:
指导教师:
预习报告(20%):
平时成绩(10%):
验收答辩成绩(50%):
设计报告成绩(20%):
总评成绩:
一、总体设计
1.程序的总体设计
二、功能实现
1.(流程图)
三、测试及调试(测试方案、存在的问题及解决方法)
2.详细描述程序编写的步骤及编写过程中出现的问题;
3.详细描述程序测试方案,采用的调试方法及调试手段;
4.详细描述调试中出现的问题、对问题的分析及解决方法。
四、总结
包括但不限于以下内容:
5.对Matlab知识的掌握程度;
6.对程序设计方法(自顶向下、结构化设计)的体会和掌握程度;
7.分析问题和解决问题的能力,并举例说明;
8.建议与意见。
附件:
主要源程序代码(需打印)
附件一:
一维信号滤波
高斯滤波:
%高斯滤波的代码
x=0:
2047;
a=load('data.txt');%运行时data.txt文件要放到当前目录(currentdirectory)中
gau=[0.00090.01750.12950.35210.35210.12950.01750.0009];%标准差为1时的高斯函数一维模板,如果标准差不为1,则要修改模板
y=conv(a,gau);
y=y(1:
length(y)-length(gau)+1);
figure;
subplot(1,2,1);plot(x,a);
xlabel('高斯滤波前的序列');
subplot(1,2,2);plot(x,y);
xlabel('高斯滤波后的序列');
%高斯函数的一维模板可以由这个函数得到:
fspecial('gaussian',[1n],sigma)
%当标准差sigma是某一固定数字时,存在一个N,对于任意的n>=N,模板都一样
中值滤波:
functiony=yiweimid(x,N)
[m,n]=size(x);
xin=zeros(1,n);
fori=1:
1:
n-N
q=median(x(1,i+N));
xin(1,i+N)=q;
end
y=xin;
End
%中值滤波的代码:
x=0:
2047;
a=load('data.txt');%运行时data.txt文件要放到当前目录(currentdirectory)中
n=5;%n为模板长度,值可以改变
y=medfilt1(a,n);
figure;
subplot(1,2,1);plot(x,a);
xlabel('中值滤波前的序列');
subplot(1,2,2);plot(x,y);
xlabel('中值滤波后的序列');
均值滤波:
functiony=yiweijun(x,N)
[m,n]=size(x);
xin=zeros(1,n);
fori=1:
1:
n-N
q=sum(x(1,i+N))/(N+1);
xin(1,i+N/2)=q;
end
y=xin;
end
%均值滤波的代码:
x=0:
2047;
a=load('data.txt');%运行时data.txt文件要放到当前目录(currentdirectory)中
n=5;%n为模板长度,值可以改变
mean=ones(1,n)./n;%mean为1×n的模板,各数组元素的值均为1/n
y=conv(a,mean);
y=y(1:
length(y)-length(mean)+1);
figure;
subplot(1,2,1);plot(x,a);
xlabel('均值滤波前的序列');
subplot(1,2,2);plot(x,y);
xlabel('均值滤波后的序列');
附件二:
二维信号滤波
高斯滤波:
functiond=gaussfilt(s)
[row,col]=size(s);
k=1;
n=mean(mean(s));
img=double(s);
n1=floor((n+1)/2);
%n2=floor((col+1)/2);
fori=1:
n
forj=1:
n
b(i,j)=exp(-((i-n1)^2+(j-n1)^2)/(4*k))/(4*pi*k);
end
end
img1=conv2(img,b,'same');
d=uint8(img1);
end
中值滤波:
functiony=midfilter(x,n)
[row,col]=size(x);
x1=double(x);
x2=x1;
fori=1:
row-n+1
forj=1:
row-n+1
c=x1(i:
i+(n-1),j:
j+(n-1));
e=c(1,:
);
foru=2:
n
e=[e,c(u,:
)];
end
mm=median(e);
x2(i+(n-1)/2,j+(n-1)/2)=mm;
end
end
y=uint8(x2);
end
均值滤波:
functiony=midjunzhi(x,n)
[row,col]=size(x);
x1=double(x);
x2=x1;
fori=1:
row-n+1
forj=1:
row-n+1
c=x1(i:
i+(n-1),j:
j+(n-1));
e=c(1,:
);
foru=2:
n
e=[e,c(u,:
)];
end
mm=sum(e)/(n*n);
x2(i+(n-1)/2,j+(n-1)/2)=mm;
end
End
附件三:
二维信号滤波算法的改进
中值滤波改进算法:
functiony=midfiltergaijin(x,n)
[row,col]=size(x);
x1=double(x);
x2=x1;
fori=1:
row-n+1
forj=1:
row-n+1
c=x1(i:
i+(n-1),j:
j+(n-1));
e=c(1,:
);
foru=2:
n
e=[e,c(u,:
)];
end
if(x2(i+(n-1)/2,j+(n-1)/2)==max(e)||x2(i+(n-1)/2,j+(n-1)/2)==min(e))
mm=median(e);
x2(i+(n-1)/2,j+(n-1)/2)=mm;
else
x2(i+(n-1)/2,j+(n-1)/2)=x2(i+(n-1)/2,j+(n-1)/2);
end
end
y=uint8(x2);
end
均值滤波改进算法:
functiony=midjunzhigaijin(x,n)
%一种改进的均值滤波算法
[row,col]=size(x);
x1=double(x);
x2=x1;
fori=1:
row-n+1
forj=1:
row-n+1
c=x1(i:
i+(n-1),j:
j+(n-1));
e=c(1,:
);
foru=2:
n
e=[e,c(u,:
)];
end
if(x2(i+(n-1)/2,j+(n-1)/2)==max(e)||x2(i+(n-1)/2,j+(n-1)/2)==min(e))
mm=sum(e)/(n*n);
x2(i+(n-1)/2,j+(n-1)/2)=mm;
else
x2(i+(n-1)/2,j+(n-1)/2)=x2(i+(n-1)/2,j+(n-1)/2);
end
end
end
y=uint8(x2);
End
gui界面程序:
functionvarargout=untitled(varargin)
gui_Singleton=1;
gui_State=struct('gui_Name',mfilename,...
'gui_Singleton',gui_Singleton,...
'gui_OpeningFcn',@untitled_OpeningFcn,...
'gui_OutputFcn',@untitled_OutputFcn,...
'gui_LayoutFcn',[],...
'gui_Callback',[]);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
end
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
});
end
%Endinitializationcode-DONOTEDI
%---Executesjustbeforeuntitledismadevisible.
functionuntitled_OpeningFcn(hObject,eventdata,handles,varargin)
%Choosedefaultcommandlineoutputforuntitled
handles.output=hObject;
%Updatehandlesstructure
guidata(hObject,handles);
%---Outputsfromthisfunctionarereturnedtothecommandline.
functionvarargout=untitled_OutputFcn(hObject,eventdata,handles)
%Getdefaultcommandlineoutputfromhandlesstructure
varargout{1}=handles.output;
%---Executesonbuttonpressintogglebutton1.
functiontogglebutton1_Callback(hObject,eventdata,handles)
%---Executesonselectionchangeinpopupmenu1.
functionpopupmenu1_Callback(hObject,eventdata,handles)
%---Executesduringobjectcreation,aftersettingallproperties.
functionpopupmenu1_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
%---Executesonbuttonpressinradiobutton1.
functionradiobutton1_Callback(hObject,eventdata,handles)
functionUntitled_1_Callback(hObject,eventdata,handles)
functionUntitled_2_Callback(hObject,eventdata,handles)
functionUntitled_3_Callback(hObject,eventdata,handles)
functionUntitled_6_Callback(hObject,eventdata,handles)
functionUntitled_7_Callback(hObject,eventdata,handles)
functionUntitled_10_Callback(hObject,eventdata,handles)
globalyy;
%str=get(hobject,'string');
axes(handles.axes2);
gyi1=gaosiyi(yy,3);
imshow(gyi1);
axes(handles.axes3);
gyi2=medfilt2(yy);
imshow(gyi2);
--------------------------------------------------------------------
functionUntitled_11_Callback(hObject,eventdata,handles)
globaljiaoyan;
%str=get(hobject,'string');
axes(handles.axes2);
gaosi1=gaussfilt(jiaoyan);
imshow(gaosi1);
axes(handles.axes3);[row,col]=size(jiaoyan);
n=floor(mean(mean(jiaoyan)));
gaosi22=fspecial('gaussian',3,1);
gaosi2=filter2(gaosi22,jiaoyan)/255;
imshow(gaosi2);
functionUntitled_8_Callback(hObject,eventdata,handles)
globalyy;
%str=get(hobject,'string');
axes(handles.axes2);
junyi1=yiweijun(yy,3);
imshow(junyi1);
axes(handles.axes3);
junyi2=medfilt2(yy);
imshow(junyi2);
functionUntitled_9_Callback(hObject,eventdata,handles)
globalimg;
globaljiaoyan;
%str=get(hobject,'string');
axes(handles.axes2);
erjun1=midjunzhi(jiaoyan,3);
imshow(erjun1);
axes(handles.axes3);
junmo=fspecial('average',3);
erjun2=filter2(junmo,jiaoyan)/255;
imshow(erjun2);
functionUntitled_4_Callback(hObject,eventdata,handles)
globalyy;
%str=get(hobject,'string');
axes(handles.axes2);
midyi1=yiweimid(yy,3);
imshow(midyi1);
axes(handles.axes3);
midyi2=medfilt2(yy);
imshow(midyi2);
functionUntitled_5_Callback(hObject,eventdata,handles)
functionUntitled_12_Callback(hObject,eventdata,handles)
globaljiaoyan;
%str=get(hobject,'string');
axes(handles.axes2);
ermid1=midfilter(jiaoyan,3);
imshow(ermid1);
axes(handles.axes3);
ermid2=medfilt2(jiaoyan);
imshow(ermid2);
functionUntitled_13_Callback(hObject,eventdata,handles)
globalimg;
[filename,pathname]=...
uigetfile({'*.jpg';'*.bmp';'*.gif'});
str=[pathnamefilename];
img=imread(str);
axes(handles.axes1);
imshow(img);
functionUntitled_14_Callback(hObject,eventdata,handles)
[FileNamepathname]=...
uigetfile({'*.xlsx'});
str=[FileNamepathname];
data1=xlsread(str);
set(handles.listbox1,'string',data1);
handles.data=data;
guidata(hobjects.handles);
functionUntitled_15_Callback(hObject,eventdata,handles)
clc
clearall;
close(gcf);
functionfigure1_ResizeFcn(hObject,eventdata,handles)
functionlistbox1_Callback(hObject,eventdata,handles)
functionlistbox1_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionUntitled_16_Callback(hObject,eventdata,handles)
functionUntitled_17_Callback(hObject,eventdata,handles)
obedefinedinafutureversionofMATLAB
globalimg;
globalyy;
axes(handles.axes5);
dy=0.1*rand(size(img));
yy=y+dy;
plot(x,yy);
functionUntitled_18_Callback(hObject,eventdata,handles)
globalimg;
globaljiaoyan;
axes(handles.axes5);
gaosi=imnoise(img,'gaussian',0.02);
jiaoyan=gaosi;
imshow(gaosi);
functionUntitled_19_Callback(hObject,eventdata,handles)
globalimg;
globaljiaoyan;
axes(handles.axes5);
jiaoyan=imnoise(img,'salt&pepper',0.02);
imshow(jiaoyan);
functionaxes6_ButtonDownFcn(hObject,eventdata,handles)
axes(handles.axes6);
huanying=imread('1.jpg');
imshow(huanying);
functionedit1_Callback(hObject,eventdata,handles)
functionedit1_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionUntitled_20_Callback(hObject,eventdata,handles)
globalimg;
globaljiaoyan;
%str=get(hobject,'string');
axes(handles.axes7);
erjun11=midjunzhigaijin(jiaoyan,3);
imshow(erjun11);
functionUntitled_21_Callback(hObject,eventdata,handles)
globaljiaoyan;
%str=get(hobject,'string');
axes(handles.axes7);
erjun11=midfiltergaijin(jiaoyan,3);
imshow(erjun11);
functionaxes1_ButtonDownFcn(hObject,eventdata,handles)
图片:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 课程设计 数据 滤波 程序