成都理工大学MATLAB信号与系统课程设计实验报告.docx
《成都理工大学MATLAB信号与系统课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《成都理工大学MATLAB信号与系统课程设计实验报告.docx(15页珍藏版)》请在冰豆网上搜索。
成都理工大学MATLAB信号与系统课程设计实验报告
信号与系统课程设计(论文)
设计(论文)题目离散系统的响应及卷积运算和灰度图像频域处理
学院名称信息科学与技术学院
专业名称电子信息科学与技术
学生姓名邓泉铃
学生学号201313020220
任课教师杨斯涵
设计(论文)成绩
教务处制
2015年1月6日
摘要
此次的信号与系统课程设计的任务是在MATLAB软件下进行离散系统的分析仿真及卷积运算。
。
技术内容是:
根据时域分析原理,利用MATLAB软件求解系统零状态响应,冲激响应。
对MATLAB软件进行程序操作,同时利用MATLAB软件也能对书本上的知识进行验证,在MATLAB软件下编写函数程序,然后运行程序,与书本上的信号的求解进行对照分析和比较。
对MATLAB软件进行一定的了解和运用之后,开始做此次课程设计——LTI连续系统的分析仿真,用MATLAB软件对此次课程设计的系统零状态响应、冲激响应进行绘图求解,并且记录其分析过程。
关键字:
课程设计,函数程序,分析仿真。
一、基础设计
离散系统的响应及卷积运算
1.1、已知某LTI离散系统的单位序列响应
,试用MATLAB中的函数conv()求解该系统在激励
时的零状态响应
,绘出其时域波形图,并说明序列
和
的时域宽度与
的时域宽度的关系。
调用conv函数代码:
function[f,k]=dconv(f1,f2,k1,k2)
%Thefunctionofcomputerf=f1*f2
f=conv(f1,f2)
k0=k1
(1)+k2
(1);
k3=length(f1)+length(f2)-2;
k=k0:
k0+k3
subplot(2,2,1)
stem(k1,f1)
title('f1(k)')
xlabel('k')
ylabel('f1(k)')
subplot(2,2,2)
stem(k2,f2)
title('f2(k)')
xlabel('k')
ylabel('f2(k)')
subplot(2,2,3)
stem(k,f);
title('f(k)=f1(k)*f2(k)')
xlabel('k')
ylabel('f(k)')
MATLAB代码如下:
f1=ones(1,4);
k1=0:
3;
f2=ones(1,3);
k2=0:
2;
[f,k]=dconv(f1,f2,k1,k2)
运行结果如右:
f=123321
k=012345
f=123321
k=012345
y(k)的时域宽度是f(k)与h(k)之和减一。
1.2、已知某LTI离散系统的差分方程如下:
,
试用MATLAB中的impz()函数绘出该系统0~60时间范围内的单位序列响应波形。
MATLAB代码如下:
a=[2,-1,3]
b=[1,0,2];
subplot(1,1,1)
impz(b,a,60)
输出图像如下:
1.3、已知某离散系统的差分方程为
,
若输入信号为
,试用MATLAB中的filter()和stem()函数绘出该系统在
时间间隔内的零状态响应。
代码如下:
a=[1,0.5,1]
b=[1,-1,0];
k=0:
20;
x=exp(-2*k);
dk=zeros(1,length(k));
dk
(1)=1;
uk=ones(1,length(k));
subplot(2,1,1)
stem(k,x)
title('x(k)')
y=filter(b,a,x)
subplot(2,1,2)
stem(k,y)
title('零状态响应')
二、综合设计
灰度图像频域处理
实验目的:
正确理解二维傅里叶变换及滤波的基本概念,掌握低通、高通滤波器。
内容:
提供一幅灰度图像;
(1)使用Matlab中的imread命令读取图像,并用imshow显示图像;
(2)将图像数据变换到二维频域(采用命令fft),判断该图像的截止频率。
(3)在频域进行低通滤波和高通滤波,恢复空域结果(采用命令ifft),比较滤波前后的图像差异。
2.1、使用Matlab中的imread命令读取图像,并用imshow显示图像。
代码:
f=imread('F:
\邓泉铃\灰度图.jpg');
imshow(f);
title('原图')
2.2、将图像数据变换到二维频域(采用命令fft),判断该图像的截止频率。
在频域进行低通滤波和高通滤波,恢复空域结果(采用命令ifft),比较滤波前后的图像差异。
f=imread('F:
\邓泉铃\灰度图.jpg');
imshow(f);
C=fft2(double(f));
D=fftshift(fft2(double(f)));
E=ifft2(D);
figure,imshow(log(abs(D)+1),[]);
title('变换频谱图');
从图像中看出x轴与y轴的交点就是灰度图的截止频率。
2.3、
(1)低通滤波处理:
M=imread('F:
\邓泉铃\灰度图.jpg');
F=fft2(M);
F=fftshift(F);
figure;imshow(log(abs(F)),[]);
title('快速傅里叶变换(FFT)图像')
[M,N]=size(F);
nn=2;
d0=100;
m=fix(M/2);n=fix(N/2);
fori=1:
M
forj=1:
N
d=sqrt((i-m)^2+(j-n)^2);
h=1/(1+0.414*(d/d0)^(2*nn));
result(i,j)=h*F(i,j);
end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
figure,imshow(J2);
title('低通滤波图像100')
如图,当改变d0的值,滤波结果不同。
随着d0的逐渐减小,图像越来越模糊,滤波带宽越窄,效果越来越差;d0越大,滤波带越宽,能通过低通滤波器的频率范围越大,图像越清晰。
(2),高通滤波处理
高通滤波是只对某一给定频率以下的频率成分有衰减作用,而允许截频以上的频率通过,并且没有相位移的滤波过程,主要用来消除噪声。
M=imread('F:
\邓泉铃\灰度图.jpg');
[M,N]=size(F);
nn=2;
d0=50;
m=fix(M/2);n=fix(N/2);
fori=1:
M
forj=1:
N
d=sqrt((i-m)^2+(j-n)^2);
if(d==0)
h=0;
else
h=1/(1+0.414*(d0/d)^(2*nn));
end
result(i,j)=h*F(i,j);
end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
figure,imshow(J2);
title('高通滤波图像(d0=50)')
如图,当改变d0的值,滤波结果不同。
随着d0的逐渐减小,图像越来越亮,效果越来越差;d0越大,效果越好。
(3),傅里叶变换及其反变换
f=imread('F:
\邓泉铃\灰度图.jpg')
E=ifft2(D);
inshow(f0;)
title('原图');
figure,imshow(abs(E),[]);
title('反傅里叶变换图')
经过傅里叶变换之后,图像更清晰。
学生学习心得
在对Matlab的应用方面,不再仅仅的局限于搬抄课本上的程序,而是自己去思考去设计实验的源程序,更具有挑战性,也使我的Matlab
知识得到了提高,对于后续的学习会更加有帮助。
我认为开设这门课程对于锻炼我的动手操作的能力有很大的帮助,也能提高我对课程的兴趣,虽然在操作过程中遇到很多困难,主要是学校电脑的问题,MATLAB的一些函数无法使用。
学生(签名):
年月日
诚信承诺
本人郑重声明所呈交的课程报告是本人在指导教师指导下进行的研究工作及取得的研究成果。
据我所知,除了文中特别加以标注的地方外,论文中不包含其他人已经发表或撰写过的研究成果。
与我一同工作的同学对本文研究所做的贡献均已在报告中作了明确的说明并表示谢意。
学生(签名):
任课
教师
评语
成绩评定:
任课教师(签名):
年月日