计算机与信息工程学院综合性实验报告
专业: 通信工程 年级/班级: 20##级 20##—20##学年第一学期
一、实验目的
本实验通过MATLAB语言编写程序来实现,主要培养学生综合运用所学知识和实验方法、实验技能,提高分析、解决实际问题的能力。
二、实验仪器或设备
装MATLAB软件的计算机一台。
三、总体设计(设计原理、设计方案及流程等)
四、用if语句实现以下计算,a,b,c,x 的值从键盘输入:
1. 输入20个数,求其中最大数和最小数,要求用while循环结构和MATLAB的max和min 函数来实现。
2. 设计一段程序,用for循环求1+2+3+…+100的和。
五、实验步骤(包括主要步骤、代码分析等)
1、求函数(if循环语句)
x=input('please input x= ');
a=input('please input a= ');
b=input('please input b= ');
c=input('please input c= ');
if(x>=0.5)&&(x<1.5);
y=a*x^2+b*x+c;
elseif(x>=1.5)&&(x<3.5);
y=a*sin(x)+b+c;
elseif(x>=3.5)&&(x<5.5);
y=log(abs(b+c/x));
else
y=0;
end
disp('The answer of y= ')
disp(y)
2、求最大值、最小值
i=1;j=1;
n=0;m=0;
x=0;y=0;
while(i<=10)&&(j<=10)
a(i)=input('Enter the number of a: ');
b(j)=input('Enter the number of b: ');
n=max(a,b);
m=min(a,b);
i=i+1;'i';
j=j+1;'j';
end
x=max(n);
y=min(m);
disp('The max number is ')
disp(x)
disp('The min number is ')
disp(y)
3、求和
function [ S ] = Sum( ~ )
S=0;
for n= 1:1:100
if(n<=100)
S=S+n;
n=n+1;
end
end
end
六、结果分析与总结
1、刚开始做实验的时候,由于理论知识基础学不好,在实验过程遇到了许多的难题,使我意识到理论知识的重要性;
2、在实验过程自己遇到问题,通过看书、查资料、思考交流,最终解决问题也使我感到有成就感。
3、通过这次实验,我对matlab有了更深了解;同时学会部分函数的用法,深刻体会到matlab操作的方便、及其强大的功能。
教师签名:
年 月 日
第二篇:MATLAB综合实验报告
实验七 综合实验
一.实验目的
能综合利用信号处理的理论和Matlab工具实现对信号进行分析和处理
(1) 熟练对信号进行时域和频域分析;
(2) 熟练进行滤波器设计和实现;
(3) 掌握对信号的滤波处理和分析。
二.实验原理
设计并实现滤波器对信号进行分析和处理是信号处理课程学习的主要内容。通过对信号进行频谱分析,能发现信号的频率特性,以及组成信号的频率分量。对信号进行滤波处理,能改善信号的质量,或者为数据处理(如传输,分类等)提供预处理,等。本次实验是对特定信号进行分析并进行滤波处理,需要综合应用之前的实验内容,主要有以下几个方面。
(1)离散时间信号与系统的时域分析
Matlab为离散时间信号与系统的分析提供了丰富且功能强大的计算函数和绘图分析函数,便于离散时间信号和系统的时域表示和分析。
(2)信号的频域分析
信号处理课程主要学习了离散信号和系统的频域分析方法与实现,以及滤波器的设计与实现。离散信号与系统的频域分析包括DTFT、DFT、Z变换等,FFT则是DFT的快速实现。用Matlab分析信号的频谱可以用freqz函数或者FFT函数。
(3) 滤波器设计
滤波器的设计首先要确定滤波器的类型,即低通、高通、带通还是带阻。滤波器的边缘频率可以通过对信号的频谱分析得到,滤波器的幅度指标主要有阻带最小衰减As和通带最大衰减Ap。一般来说,As越大,对截止通过的频率分量的衰减越大;Ap越小,对需要保留的频率分量的衰减越小。因此,As越大,Ap越小,滤波器的性能越好,但随之而来,滤波器的阶数越大,实现的代价(包括计算时间和空间)越大。由此,滤波器的设计需要对滤波器性能和实现代价进行均衡考虑。
另外根据冲激响应的长度可以分为IIR和FIR两种类型。两种类型的滤波器各有特点。用FIR滤波器可以设计出具有严格线性相位的滤波器,但在满足同样指标的条件下,FIR滤波器的阶数高于IIR滤波器。Matlab为各种类型的滤波器的设计提供了丰富的函数,可以借助这些函数方便地设计出符合要求地滤波器。
(1)对信号进行时域和频域分析,确定信号x的频率分量。
程序设计:
subplot(2,1,1); plot(x);
title('time domain of x ');
[X,w]=freqz(x);
subplot(2,1,2);plot(w/pi,abs(X));
title('freqency domain of x ');
实验结果:
分析:从信号的频谱可以看出 X的频率分量有 0.2pi,0.5 pi和0.9 pi
(2)用Matlab实现滤波器。
1设计低通滤波器,滤出低频分量:
程序设计:
rp=1;rs=60;
wp=0.3*pi; ws=0.4*pi; %通带和阻带的截止频率
Fs=1; % let Fs=1
wap=tan(wp/2);was=tan(ws/2); %预畸变公式
[n,wn]=buttord(wap,was,rp,rs,'s')%设计等效模拟滤波器
[z,p,k]=buttap(n);
[bp,ap]=zp2tf(z,p,k); % 设计模拟低通原型滤波器
[bs,as]=lp2lp(bp,ap,wap) %将模拟低通原型滤波器转换为低通滤波器
[bz,az]=bilinear(bs,as,Fs/2); %实现双线性变换,即由模拟滤波器得到数字滤波器
%bz,az 为分子分母系数。
[h,w]=freqz(bz,az,256,Fs);
subplot(2,2,2);plot(w,abs(h)); %滤波器频域图
title('frequency domain of lowpass filter');
h1=impz(bz,az); %滤波器时域图
subplot(2,2,1); plot(h1);
title('time domain of lowpass filter');
y=filter(bz,az,x); %验证
y1=freqz(y);%时域转频域
subplot(2,2,4);plot(abs(y1)); %过滤图(频域)
title('x frequency domain out of lowpass filter');
subplot(2,2,3);plot(y);
title('x time domain out of lowpass filter');%过滤图时域
实验结果:
分析:通过滤波得到了略有衰减的清晰的低频信号。
2设计高通滤波器,滤出高频分量:
程序设计:
rp=1;rs=80; %参数设置
wp=0.8*pi;ws=0.6*pi;
Fs=1; % let Fs=1
wap=tan(wp/2);was=tan(ws/2); %预畸变公式
[n,wn]=buttord(wap,was,rp,rs,'s')%设计等效模拟滤波器
[z,p,k]=buttap(n);
[bp,ap]=zp2tf(z,p,k); % 设计模拟低通原型滤波器
[bs,as]=lp2hp(bp,ap,wap) %将模拟低通原型滤波器转换为低通滤波器
[bz,az]=bilinear(bs,as,Fs/2); %实现双线性变换,即由模拟滤波器 得到数字滤波器
[h,w]=freqz(bz,az,256,1);
h3=impz(bz,az);
subplot(2,2,1);plot(h3);
title('time domain of filter');%滤波器时域图
subplot(2,2,2); plot(w,abs(h));
title('frequency domain of filter'); %滤波器频域图
y=filter(bz,az,x);
subplot(2,2,3);plot(y);
title('x time domain out of filter'); %过滤图时域
y1=freqz(y);
subplot(2,2,4);plot(abs(y1)); %?w
title('x frequency domain out of filter');%过滤图(频域)
实验结果:
分析:通过滤波得到了清晰的高频信号。
3设计带通滤波器,滤出中频分量。
程序设计:
wn=[0.4,0.6]; %cut-off frequency 范围
b2=fir1(34,wn,'bandpass'); %带阻滤波器 默认是函数自动取hamming。
%f=[0 0.4 0.4 0.65 0.65 1];
%m=[1 1 0 0 1 1]; %设定带阻的范围为0.4pi-0.65pi
%b1=fir2(34,f,m,chebwin(35,60)) %为求取频率响应系数。分子为b,分母为1
h2=impz(b2,1); %滤波器时域图
subplot(2,2,1);plot(h2);
title('time domain of filter');
y2=freqz(b2,1,100);
subplot(2,2,2); plot(abs(y2)); %滤波器频域图
title('frequecy domain of filter');
y=filter(b2,1,x); %验证
subplot(2,2,3);plot(y);
title('x time domain out of filter');%过滤图时域
y1=freqz(y);
subplot(2,2,4); plot(abs(y1)); %过滤图频域
title('x frequency out of filter');
实验结果:
分析:通过滤波,很好的从复合信号X中得到了稳定且基本没有衰减的中频信号。
实验总结:
通过本实验,我充分掌握了滤波器的分析,设计过程,对滤波器在时域和频域的图形有了一定的了解,会使用MATLAB分析信号的频谱情况,并设计相应的滤波器滤出有用信号。
信号处理实验是对信号理论课程的实践和补充,能让同学们更好的理解和掌握课本的枯燥的理论。我通过实验对课本里没认识清楚的部分,有了一个认识,让我去补充学习相关重要的理论知识,更好的掌握了本科程的知识。