第一篇:MAtlab傅里叶变换实验报告
班级
信工 142
学号
姓名
何岩
实验组别
实验日期
室温
报告日期
成绩
报告内容:(目得与要求, 原理, 步骤, 数据, 计算, 小结等)1、求信号得离散时间傅立叶变换并分析其周期性与对称性;给定正弦信号 x(t)=2*cos(2*pi*10*t),fs=100HZ,求其DTFT。
(a)代码: f=10;T=1/f;w=-10:0、2:10;t1=0:0、0001:1;t2=0:0。01:1;n1=-2;n2=8;n0=0;n=n1:0。01:n2;x5=[n>=0.01];x1=2*cos(2*f*pi*t1);x2=2*cos(2*f*pi*t2);x3=(exp(—j).^(t2’*w));x4=x2*x3;subplot(2,2,1);plot(t1,x1);axis([0 1 1、1*min(x2)1。1*max(x2)]);xlabel(’x(n)’);ylabel(’x(n)“);title('原信号 x1”);xlabel(“t”);ylabel(“x1’);subplot(2,2,3);stem(t2,x2);axis([0 1 1、1*min(x2)1。1*max(x2)]);title(’原信号采样结果 x2');xlabel('t’);ylabel('x2”);subplot(2,2,2);stem(n,x5);axis([0 1 1、1*min(x5)1.1*max(x5)]);xlabel(’n’);ylabel('x2“);title(’采样函数x2');subplot(2,2,4);stem(t2,x4);axis([0 1 —0、2+1。1*min(x4)1、1*max(x4)]);xlabel(’t”);ylabel('x4“);title(”DTFT结果 x4');(b)结果:
2、用以下两个有限长序列来验证 DTFT 得线性、卷积与共轭特性;x1(n)=[1 2 3 4 5 6 7 8 9 10 11 12];x2(n)=R 10(n)(1)线性:(a)代码: w=linspace(-8,8,10000);nx1=[0:11];nx2=[0:9];x1=[1 2 3 4 5 6 7 8 9 10 11 12];x2=[1 1 1 1 1 1 1 1 1 1];x3=[x2,zeros(1,(length(x1)—length(x2)))];x4=2*x1+3*x3;X1=x1*exp(-j*nx1'*w);%频率特性 X3=x3*exp(-j*nx1'*w);%频率特性 X4=x4*exp(—j*nx1’*w);%频率特性
subplot(5,3,1),stem(nx1,x1),axis([-1,13,0,15]);title('x1’), ylabel(“x(n)’);
subplot(5,3,2),stem(nx2,x2),axis([—1,13,0,5]);title(”x2');
subplot(5,3,3),stem(nx1,x4),axis([-1,13,0,26]);title(’x4=2*x1+3*x3“);
subplot(5,3,4),plot(w,abs(X1));ylabel('幅度’)
subplot(5,3,7),plot(w,angle(X1));ylabel(’相位')
subplot(5,3,10),plot(w,real(X1));ylabel(’实部’)
subplot(5,3,13),plot(w,imag(X1));ylabel(”虚部’)subplot(5,3,5),plot(w,abs(X3));
subplot(5,3,8),plot(w,angle(X3));
subplot(5,3,11),plot(w,real(X3));subplot(5,3,14),plot(w,imag(X3));
subplot(5,3,6),plot(w,abs(X4));
subplot(5,3,9),plot(w,angle(X4));
subplot(5,3,12),plot(w,real(X4));subplot(5,3,15),plot(w,imag(X4));
(b)结果:
(2)卷积:(a)代码: nx1=0:11;nx2=0:9;nx3=0:20;
w=linspace(-8,8,40);%w=[—8,8]分 10000 份
x1=[1 2 3 4 5 6 7 8 9 10 11 12];x2=[1 1 1 1 1 1 1 1 1 1];x3=conv(x1,x2);% x1 卷积 x2 x4=x1*exp(-j*nx1“*w);% x1频率特性 x5=x2*exp(-j*nx2’*w);% x2 频率特性 x6=x3*exp(-j*nx3”*w);% x1 卷积 x2频率特性 x7=x4、*x5;
subplot(2,2,1),stem(nx1,x1),axis([—1,15,0,15]),title(’x1“);su b plo t(2,2,2), s t em(nx2, x 2),ax i s([—1, 1
5,0,5]),title(’x2’);subplot(2,1,2),stem(nx3,x3),axis([—1,25,0,80]);title('x1卷积x2 结果 x3’);figure,subplot(2,2,1),stem(x4,”filled’),title(“x1得DTFT 结果x4’);
subplot(2,2,2),stem(x5,”filled'),title(’x2得 DTFT结果 x5’);
subplot(2,2,3),stem(x6,'filled’),title(’x3得 DTFT 结果 x6’);
subplot(2,2,4),stem(x7,“filled'),title('x4 得DTFT 结果x7’);
figure,subplot(3,2,1),stem(w,abs(x6)), ylabel(”幅度’),title(’x1 卷积 x2 得 DTFT');
subplot(4,2,3),stem(w,angle(x6)),ylabel(“相位”)
subplot(4,2,5),stem(w,real(x6)),ylabel(“实部’)
subplot(4,2,7),stem(w,imag(x6)),ylabel('虚部’)
subplot(4,2,2),stem(w,abs(x7)), title(’x1 与 x2 得 DTFT得乘积’);
subplot(4,2,4),stem(w,angle(x7));
subplot(4,2,6),stem(w,real(x7));
subplot(4,2,8),stem(w,imag(x7));
(b)结果:
(3)共轭:(a)代码: x1n=[1 2 3 4 5 6 7 8 9 10 11 12];w=—10:10;N1=length(x1n);n1=0:N1—1;x1=real(x1n);x2=imag(x1n);x2n=x1—j*x2;
X1=x2n*(exp(-j)、^(n1'*w));X2=x1n*(exp(j)、^(n1’*w));x3=real(X2);x4=imag(X2);X2=x3—j*x4;figure,subplot(211);stem(w,X1,”.’);title(“x1n共轭得 DTFT’);
subplot(212);stem(w,X2,”、’);title(“x1n 得 DTFT 取共轭且反折”);(b)结果:
3。
求 LTI 系统得频率响应 给定系统 H(Z)=B(Z)/A(Z),A=[0。98777 -0。31183 0、0256] B=[0.98997 0.989 0。98997],求系统得幅频响应与相频响应、(要求使用filter(B,A,δ(n))求解。
(a)结果: A=[0、98777-0。31183 0、0256];B=[0。98997 0、989 0、98997];C=[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] y=filter(B,A,C);subplot(2,2,1);stem(y,'、’);title(’原始序列“);
mag=abs(y);ph=angle(y);ph=ph*180/pi;subplot(2,2,2);stem(mag,”、');title('幅频特性');xlabel('时间信号n“);ylabel('信号幅度');subplot(2,2,3);stem(ph,”、’);title(“相频特性”);xlabel(“时间信号 n');ylabel(”信号相位“);(b)结果:
4.采样与频谱混叠 给定信号x(t)=100*exp(-100*t)*cos(2*pi*500*t),求该信号得频谱;当采样频率分别为 fs1=2000HZ,fs2=1000HZ;fs3=500HZ;fs4=200HZ,时输出序列得 DTFT。
(a)代码: x=100*exp(-100*t)、*cos(2*pi*500*t);t=—2:0、1:2;w=-10:0。1:10;
y=x*(exp(-j)、^(t’*w));subplot(2,1,1),plot(t,x);subplot(2,1,2),plot(w,y);title(’原始信号得频谱');figure,fs1=2000;Ts1=1/fs1;n1=-2:Ts1:2;
fs2=1000;Ts2=1/fs2;n2=-2:Ts2:2;
fs3=500;Ts3=1/fs3;n3=-2:Ts3:2;
fs4=200;Ts4=1/fs4;n4=—2:Ts4:2;x1=100。*exp(—100*n1)。*cos(2*pi*500*n1);y1=x1*(exp(-j)。^(n1”*w));subplot(221);plot(w,y1);title(“经 2000Hz 采样后信号得 DTFT”);x2=100。*exp(-100*n2)、*cos(2*pi*500*n2);y2=x2*(exp(-j)、^(n2'*w));subplot(222);plot(w,y2);title(’经 1000Hz采样后信号得 DTFT’);x3=100、*exp(—100*n3)、*cos(2*pi*500*n3);
y3=x3*(exp(—j)、^(n3“*w));subplot(223);plot(w,y3);title(’经500Hz 采样后信号得 DTFT”);x4=100.*exp(—100*n4)。*cos(2*pi*500*n4);y4=x4*(exp(—j)、^(n4’*w));subplot(224);plot(w,y4);title(’经 200Hz采样后信号得 DTFT');(b)结果:
收获及感想: DFT针对得就是有限长数字信号得傅立叶变换或傅立叶时频分析问题。但 以前得傅立叶变换就是定义在整个时间轴上得,而且一般针对得就是连续信号 ,获得得就是一个连续得频谱。
离散傅里叶变换(DFT),就是傅里叶变换在时域与频域上都呈现离散得形式,将时域信号得采样变换为在离散时间傅里叶变换(DTFT)频域得采样。在形式上,变换两端(时域与频域上)得序列就是有限长得,而实际上这两组序
列都应当被认为就是离散周期信号得主值序列。即使对有限长得离散信号作DFT,也应当将其瞧作经过周期延拓成为周期信号再作变换。在实际应用中通常采用快速傅里叶变换以高效计算 DFT。
物理意义 设 x(n)就是长度为 N 得有限长序列,则其傅里叶变换,Z 变换与离散傅里叶变换分别用以下三个关系式表示 X(e^jω)= ∑n={0,N-1}x(n)e^jωn X(z)= ∑n={0,N-1}x(n)z^-n X(k)= ∑n={0,N-1}x(n)e^-j2π/Nnk 单位圆上得 Z 变换就就是序列得傅里叶变换 离散傅里叶变换就是 x(n)得频谱 X(ejω)在[0,2π]上得 N 点等间隔采样,也就就是对序列频谱得离散化,这就就是 DFT得物理意义
第二篇:matlab实验报告
实验二
特殊函数与图形
一、实验目的及意义
掌握用Matlab软件绘制简单曲线、曲面图形,并通过绘制一些特殊函数的图形,更加深入地理解相关函数的性质,了解函数的性态。
二、实验内容
平面作图、空间作图,比较数值作图与符号作图的异同。
三、实验步骤
1.在D盘建立一个自己的文件夹;
2.开启软件平台——MATLAB,将你建立的文件夹加入到MATLAB的搜索路径中。
3.4.5.6.7.利用帮助了解函数plot, surf, ezmesh,ezsurf等的功能和用法。
开启MATLAB编辑窗口,键入你编写的M文件(命令文件或函数文件);
保存文件(注意将文件存入你自己的文件夹)并运行;
若出现错误,修改、运行直到输出正确结果;
写出实验报告,并浅谈学习心得体会。
四、实验要求与任务
根据实验内容和步骤,完成以下具体实验,按要求写出实验报告。1.作出下图所示的三维图形:
图1 提示:图形为圆环面和球面的组合.2.作出下图所示的墨西哥帽子及其剪裁图形:
图2
3.画出椭球面、双叶双曲面、单叶双曲面.
4.若要求田螺线的一条轴截面的曲边是一条抛物线:y0时x25z.试重新设计田螺线的参数方程,并画出该田螺线.
5.作出下图所示的马鞍面(颜色为灰色,并有一个标题:“马鞍面”):
图3 6.绘制黎曼函数的图形,要求分母的最大值n的数值由键盘输入(提示:使用input语句).
第三篇:matlab实验报告
求解:1.模拟比赛车道曲线和选手速度曲线;
2.估计车道长度和所围区域面积;
3.分析车道上相关路段的路面状况(用不同颜色或不同线型标记出来);
4.对参加比赛选手提出合理建议。
四.合理建议
1.通过赛道曲线可知,选手所经过的赛道上不平整的地方很多,如果平常不多多尝试不同的路况会造成比赛时的很多突发情况,都会造成选手的成绩受到很大的干扰,甚至退赛等严重的后果。所以我建议选手平时要多在不同类型的路况上练习,以增强应变能力,取得更好的成绩。
2.选手的速度分配有一些不合理,在平直的沙土路段应该全力加速,以最快速度通过这个路段,以达到最好的比赛效果。在经过坑洼碎石路时尽量保持一个恒定的速度,因为如果速度一直在变化,很容易在这种路段上陷入或者熄火,造成比赛时的极大不利。将加速尽量用在沙土路等摩擦力较大的路上,以免耗费太多的动力。我们需要将动力的效率尽量的提高。
五.实验的总结
我认为,本实验的主要目的在于让我们掌握对三次样条差值来模拟离散点表示的曲线的运用,我认为我们已经基本掌握,并且我们也掌握了用梯形法求不规则封闭图形的面积的方法,除此之外,本实验中还有考查所学知识外的方面,就是画v-t图。
事实上,根据题目所给的条件,并不能准确地画出v-t图,所以需要找到一种方法,来尽量 使结果接近真正的情况。我采用了中值的方法,这是我想到的一种比较有效的方法,并且在使用这种方法时,又运用到了三次样条差值的方法,使我对三次样条差值法理解地更加深刻,并且能更加灵活地运用。
所以我发现三次样条差值的方法运用的范围十分广泛,不仅是对路径的拟合,许多已知离散点,对应的函数连续变化的问题也可以用此方法解决,比如已知一天中几个离散时间点对应的气温,估计出一天气温的变化趋势,就可以用此方法。
最重要的是,我感到了数学建模的重要性,我发现原来生活中不少类似的问题,都是用数学建模的方法解决的。
第四篇:北航matlab上机实验报告
MATLAB基础上机指导书
实验目的
MATLAB基础上机实验的目的主要是在深入理解和掌握课程中的基本概念和原理的基础上培养学习者用计算机解决实际问题的意识,训练和提高学生分析问题、仿真、程序设计和程序调试能力。实验要求
1.整个学期的上机实践共有4个。从实验一的MATLAB的上机基本操作,到实验四的GUI设计,都本着由浅入深、由易到难、逐步深入的原则,给出了不同的上机程序。一般每个实验中有约5-7个不同难度的程序,按班级序号排列组合分组,每组学生包括5人,按组检查程序。
2.每次实验后要求学生提交上机报告,这也是整个实验过程的一个重要环节。实验结束后,要整理实验结果并认真分析和总结,根据教师要求写出实验报告。实验报告一般包括如下内容:
⑴ 实验内容:实验题目与要求。⑵ 程序清单
(3)运行结果:原始数据、相应的运行结果和必要的说明。
(4)分析与思考:调试过程及调试中遇到的问题及解决办法;调试程序的心得与体会;其他函数算法的存在与实践等。若最终未完成调试,要认真找出错误并分析原因等。常用命令参考
本节就一些常用的MATLAB命令进行介绍,使初学者尽快提高MATLAB上机调试程序的能力。
1、学会用help和doc函数。
2、输入输出文件:save/load
3、解线性方程组AX=B:X=AB
4、作图时两张曲线合并:hold on或者subplot作子图
5、程序计算时间:tic,toc或者clock
6、变量显示方式更改:format long/short/bank...7、数组元素求和:sum
8、求数组长度:length 求矩阵维数:size或者ndims 矩阵元素个数:numel
9、函数作图:
饼图:pie/pie3 误差图:errorbar 散点图:scatter/scatter3 直方图:hist 函数图:fplot 动画:movie
10、矩阵分析:
左右翻转:fliplr 上下翻转:flipud 转置:transpose 矩阵求逆:inv 矩阵范数:norm 条件数:cond 初等变换:rref 特征值:eig/eigs
11、特殊矩阵:
元素全为1的矩阵:ones 元素全为0的矩阵:zeros 单位阵:eye 魔方阵:magic 线性变化数组:linspace 聚合矩阵:cat/horzcat/vertcat
12、随机数:
创建一个元素服从均匀分布的随机数数组:rand 创建一个元素服从正态分布的随机数数组:randn 二项分布:binornd 指数分布:exprnd F分布:frnd 几何分布:geornd 超几何分布:hygernd 泊松分布:poissrnd
正态分布:normrnd 离散均匀分布:unidrnd 连续均匀分布:unifrnd
13、清屏:clc 清理内存:clear
14、字体显示变更等:preferences
15、得到一个文件夹的所有文件名:ls
16、语句太长的话可以再句末加...换行。
实验一 MATLAB快速入门操作
[实验目的] 1. 熟悉MATLAB的工作环境。2. 熟悉MATLAB的帮助系统。3. 掌握基本的运算表达。4. 掌握基本的数学函数。5. 掌握基本的字符串使用。[实验内容] 1.执行MATLAB的启动和退出。观看DEMO程序,INTRO程序,HELP文件,练习MATLAB常用命令在命令窗口中计算数学表达式,输入简单矩阵,查看工作空间中的变量,命令窗口显示清除,语句、变量及数据的表示,搜索路径设置。
2.使用函数创建字符串数组,掌握char、strvcat、strcat之间的区别。>> c1=char('china','india');>> c3=strvcat('china','india');>> c4=strcat('china','india');char中各部分互相独立,strvact竖直连接 strcat直接连接 >> c1=char('china','india')
c1 =
china india
>> c3=strvcat('china','india')
c3 =
china india
>> c4=strcat('china','india')
c4 =
chinaindia 也就是说strcat连接两个字符串,而strvcat垂直连接两个字符串. i6c2e3.设三个复数a=3+4i,b=1+2i,计算x=ab/c,注意复数的表达方式。
>> a=3+4i,b=1+2i,c=2*exp(pi/6*i)a =
3.0000 + 4.0000i
b =
1.0000 + 2.0000i
c =
1.7321 + 1.0000i
>> X=a*b/c X =
0.3349 + 5.5801i
sinx354.计算下式的结果,其中x=45°,572
注意函数参数的使用类型,掌握复杂表达式的计算。>> a=45/180*pi a =
0.7854
>> b=(sin(a)+35^(1/2))/72^(1/5)b =
2.8158
5.计算星球之间的万有引力。包括地球和太阳,地球和月亮之间的距离。具体参数太阳质量1.989×10^30千克,地球质量5.976×10^27千克,太阳和地球的距离***0米,月亮质量7.351×10^ 22千克,月亮和地球两者间距384400000米,万有引力系数K 6.67×10^-11,见P26 例2-3。
>> M1=1.989e30,M2=5.976e27,M3=7.351e22,d1=1.4960e11,d2=3.844e8 K=6.67e-11
M1 =
1.9890e+030
M2 =
5.9760e+027
M3 =
7.3510e+022
d1 =
1.4960e+011
d2 =
384400000
K =
6.6700e-011
>> F12=M1*M2*K/d1^2
F12 =
3.5426e+025
>> F23=M2*M3*K/d2^2
F23 =
1.9830e+023
333,以及数据的修改方法,尽量考2336.用两种方法创建一个二维数组433虑计算效率。在掌握二维数组基础上掌握三维数组的创建方法。
创建:方法1;x=[3,3,3;2,3,3;4,3,3] x =
3 3 2 3 3 4 3 3 方法2 在workspace中点击 new variable 就会在下面出现一个新变量unnamed 双击unnamed变量引出一个空白页面,在里面进行编辑 >> unnamed
unnamed =
3 3 2 3 3 4 3 3 修改
直接在workspace中点击需要修改的变量,在相应位置修改变量,保存后在命令窗口重新调用函数 计算
[问题讨论] 1.小结上机各个环节所出现的错误及解决的办法。
[思考问题] 1.仿真是否“真实”,与什么因素有关? 仿真是在数字计算机上进行试验的数字化技术,包括数字和逻辑模型的某些模式,这些模型描述了某一事件或经济系统在若干周期内的特征。仿真常常包括模型建立,仿真模型的建立和仿真试验三个方面。从以上可以看出,仿真其实是建立在模型之上,通过计算机或者其他载体,并借助经验知识、统计数据和信息资料等对真实或假想的系统进行试验,得出试验结果的过程。
在这点上看,仿真并不真实,因为它并不能100%模拟出真实情况,而实际上“真实”的复杂多变也难以模拟。但是,仿真可以通过以上的手段在一定范围内对真实进行模拟和预测。其与真实结果的相关性,或者说仿真方法的优劣性与其系统、模型和载体是密切相关的。
第五篇:信号与系统 MATLAB实验报告
院系:
年级:
姓名:
实验时间:
实验地点:
MATLAB实验报告
专业:
班号:
学号:
《信号与系统》
实验一 连续时间信号的表示及可视化
实验题目:
f(t)(t);f(t)(t);f(t)eat(分别取a0及a0); f(t)R(t);f(t)Sa(t);f(t)Sin(2ft)(分别画出不同周期个数的波形)。
解题分析:
以上各类连续函数,先运用t = t1: p:t2的命令定义时间范围向量,然后调用对应的函数,建立f与t的关系,最后调用plot()函数绘制图像,并用axis()函数限制其坐标范围。
实验程序:
(1)f(t)(t)
t=-1:0.01:3 %设定时间变量t的范围及步长 f=dirac(t)%调用冲激函数dirac()plot(t,f)%用plot函数绘制连续函数 axis([-1,3,-0.5,1.5])%用axis函数规定横纵坐标的范围(2)f(t)(t)
t=-1:0.01:3 %设定时间变量t的范围及步长 f=heaviside(t)%调用阶跃函数heaviside()plot(t,f)%用plot函数绘制连续函数 title('f(t)=heaviside(t)')%用title函数设置图形的名称 axis([-1,3,-0.5,1.5])%用axis函数规定横纵坐标的范围(3)f(t)eat
a=1时:
t=-5:0.01:5 %设定时间变量t的范围及步长 f=exp(t)%调用指数函数exp()
plot(t,f)%用plot函数绘制连续函数 title('f=exp(t)')%用title函数设置图形的名称 axis([-5,5,-1,100])%用axis函数规定横纵坐标的范围 a=2时:
t=-5:0.01:5 f=exp(2*t)%调用指数函数exp()plot(t,f)title('f=exp(2*t)')axis([-5,5,-1,100])a=-2时: t=-5:0.01:5 f=exp(-2*t)plot(t,f)title('f=exp(-2*t)')axis([-5,5,-1,100])(4)f(t)R(t)
t=-5:0.01:5 f=rectpuls(t,2)%用rectpuls(t,a)表示门函数,默认以零点为中心,宽度为a plot(t,f)title('f=R(t)')axis([-5 5-0.5 1.5])(5)f(t)Sa(t)
ω=1时: t=-20:0.01:20 f=sin(t)./t %调用正弦函数sin(),并用sin(t)./t实现抽样函数 plot(t,f)title('f(t)=Sa(t)')axis([-20,-20,-0.5,1.1])3
ω=5时: t=-20:0.01:20 f=sin(5*t)./(5*t)plot(t,f)title('f(t)=Sa(5*t)')axis([-20,-20,-0.5,1.1])(6)f(t)Sin(2ft)
ω=1时: t=-10:0.01:10 f=sin(t)%plot(t,f);title('f=sin(t)')axis([-10,10,-2,2])ω=5时: t=-10:0.01:10 f=sin(5*t)plot(t,f);title('f=sin(5*t)')axis([-10,10,-2,2])
实验结果;
(1)
调用正弦函数sin()4
1.510.50-0.5-1-0.500.511.522.532)
f(t)=heaviside(t)1.510.50-0.5-1-0.500.511.522.533)((a=1时:
f=exp(t)***3020100-5-4-3-2-1012345a=2时:
f=exp(2*t)***3020100-5-4-3-2-1012345
a=-2时:
f=exp(-2*t)***3020100-5-4-3-2-1012345(4)
f=R(t)1.510.50-0.5-5-4-3-2-1012345
(5)ω=1时:
f(t)=Sa(t)10.80.60.40.20-0.2-0.4-20-15-10-505101520ω=5时:
f(t)=Sa(5*t)10.80.60.40.20-0.2-0.4-20-15-10-505101520(6)ω=1时:
f=sin(t)21.510.50-0.5-1-1.5-2-10-8-6-4-20246810
ω=5时:
f=sin(5*t)21.510.50-0.5-1-1.5-2-10-8-6-4-20246810
实验心得体会:(1)在 MATLAB中,是用连续信号在等时间间隔点的样值来近似地表示连续信号的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。在 MATLAB 中t = t1: p: t2的命令定义时间范围向量,t1为信号起始时间,t2为终止时间,p为时间间隔。
(2)plot()函数可用于连续函数的绘制。
(3)用axis()函数限制坐标范围,可使图像更加匀称美观。
改进想法:
本题中函数的表示方法都不只一种。如阶跃函数可以借助符号函数来实现可视化。其程序和结果如下: t=-5:0.05:5 f=sign(t)%调用符号函数sign()axis([-5,5,-1.1,1.1])
ff=1/2+1/2*f %运用阶跃函数与符号函数的关系,表示出阶跃函数ff plot(t,ff)axis([-5,5,-0.1,1.1])
f=heaviside(t)10.80.60.40.20-5-4-3-2-1012345
实验二 离散时间信号的表示及可视化
实验题目:
f(n)(n);f(n)(n);f(n)ean(分别取a0及a0);
f(n)RN(n)(分别取不同的N值);f(n)Sa(n); f(n)Sin(n)(分别取不同的值);
解题分析:
以上各类离散函数,可仿照连续函数的可视化,先运用n =n1: p: n2的命令定义自变量的范围及步长,然后调用对应的函数,建立f与t的关系,最后调用stem()函数绘制图像,并用axis()函数限制其坐标范围。
实验程序:
(1)f(n)(n)
n=-5:0.5:5 %设定时间变量n的范围及步长 f=dirac(n)stem(n,f)%调用stem()绘制离散函数 title('f=dirac(t)')axis([-5,5,-3,10])%用axis函数规定横纵坐标的范围(2)f(n)(n)
n=-5:0.5:5 f=heaviside(n)stem(n,f)title('f=Heaviside(t)')axis([-5,5,-0.5,1.5])(3)f(n)ean
a=1时:
n=-5:0.5:5 f=exp(n)stem(n,f)title('f=exp(n)')a=2时: n=-5:0.5:5 f=exp(2*n)stem(n,f)title('f=exp(2*n)')a=-2时: n=-5:0.5:5 f=exp(-2*n)stem(n,f)title('f=exp(-2*n)')(4)f(n)RN(n)
n=-5:0.5:5 f=rectpuls(n,2)stem(n,f)title('f=R(n)')axis([-5,5,-0.5,1.5])(5)f(n)Sa(n)
ω=1时: n=-20:0.5:20 f=sin(n)./(n)stem(n,f)title('f=Sa(n)')axis([-20,-20,-0.5,1.1])ω=5时: n=-20:0.5:20 f=sin(5*n)./(5*n)13
stem(n,f)title('f=Sa(5*n)')axis([-20,-20,-1,5])(6)f(n)Sin(n)
ω=1时: n=-5:0.5:5 f=sin(n)stem(n,f)title('f=sin(n)')axis([-5,5,-2,2])ω=5时: n=-5:0.5:5 f=sin(5*n)stem(n,f)title('f=sin(5*n)')axis([-5,5,-2,2])
实验结果;
(1)
f=dirac(t)1086420-2-5-4-3-2-10123452)
f=Heaviside(t)1.510.50-0.5-5-4-3-2-10123453)((a=1时:
f=exp(n)150100500-5-4-3-2-1012345a=2时:
2.5x 104f=exp(2*n)21.510.50-5-4-3-2-1012345
a=-2时:
4f=exp(-2*n)2.5x 1021.510.50-5-4-3-2-1012345(4)
f=R(n)1.510.50-0.5-5-4-3-2-1012345
(5)ω=1时:
f=Sa(n)10.80.60.40.20-0.2-0.4-20-15-10-505101520ω=5时:
f=Sa(5*n)0.250.20.150.10.050-0.05-0.1-0.15-0.2-20-15-10-505101520(6)ω=1时:
f=sin(n)21.510.50-0.5-1-1.5-2-5-4-3-2-1012345
ω=5时:
f=sin(5*n)21.510.50-0.5-1-1.5-2-5-4-3-2-1012345
实验心得体会: 用plot()函数可以绘制离散序列,但是与连续序列有所不同,需要在括号内加上'.'。但是plot()画出来的函数图像不直观,显得很凌乱。
改进想法:
(1)对于离散函数,如果使用stem(n,f, '.')函数,绘图效果更好。如抽样函数的程序: n=-20:0.5:20 f=sin(n)./(n)stem(n,f,'.')title('f=Sa(n)')axis([-20,-20,-0.5,1.1])绘图结果如下:
f=Sa(n)10.80.60.40.20-0.2-0.4-20-15-10-505101520
对比可知此法做出的图像更加清晰美观。
(2)MATLAB 可以自动地根据曲线数据的范围选择合适的坐标系,从而使得曲线尽可能清晰地显示出来,一般情况下不必选择坐标系。但是,如果对 MATLAB自动产生的坐标轴不满意,可以利用 axis 命令对坐标轴进行调整。
实验三 系统的时域求解
实验题目:
1.设h(n)(0.9)nu(n),x(n)u(n)u(n10),求y(n)x(n)*h(n),并画出x(n)、h(n)、y(n)波形。
y(n)0.81y(n2)x(n)x(n2)的单位
j2.求因果线性移不变系统抽样响应h(n),并绘出H(e)的幅频及相频特性曲线。
解题分析:
1.用heaviside()和exp()函数 表示出x(n)和h(n),然后调用conv()函数实现x(n)和h(n)的卷积y(n)。并且分别将三个函数图像绘出。
2.通过给矩阵a,b赋值,建立系统差分方程,然后调用impz()函数求系统的冲激响应,再用函数freqs(b,a)进行系统频率响应的分析。
实验程序:
(1)
n=-10:20 %设置变量范围,默认步长为1 f=heaviside(n)x=heaviside(n)-heaviside(n-10)%阶跃函数直接相减 figure(1)%产生图像窗口1 stem(n,x)%绘制函数x title('x(n)')h=0.9.^n.*f %函数h的表达式 figure(2)%产生图像窗口2 stem(n,h)%绘制函数h title('h(n)')n1=-20:40 y=conv(h,x)%调用conv()函数求h和x的卷积
figure(3)%产生图像窗口3 stem(y)%绘制函数y title('y(n)=x(n)*h(n)')(2)
a=[1 0-0.81] %描述系统的差分方程的系数 b=[1 0-1] %描述系统的差分方程的系数 figure(1)h=impz(n,m,-10:10)%调用impz()函数求系统的冲激响应 stem(h)%绘制函数h的离散序列 title('h(n)')figure(2)freqs(b,a)%对连续系统频率响应H(jw)进行分析的函数freqs()
实验结果;
(1)
x(n)10.90.80.70.60.50.40.30.20.10-10-505101520
h(n)0.90.80.70.60.50.40.30.20.10-10-505101520y(n)=x(n)*h(n)***05060702)
(h(n)1.210.80.60.40.20-0.20510152025
100.09udeti100.05agnM100.0110-210-1100101Frequency(rad/s)1)s0.5reeeg(d0e hasP-0.5-110-210-1100101Frequency(rad/s)
实验心得体会:
(1)计算离散序列的卷积时,应考虑其结果的横坐标范围的改变。(2)向量相乘时,注意用‘.’。
(3)借助MATLAB的内部函数conv()可以很容易地完成两个信号的卷积运算,并且其完成的是两个多项式的乘法运算,在MATLAB中它们的系数构成一个行向量来表示。
(3)表示系统的方法是用系统函数分子和分母多项式系数行向量来表示。
改进想法:
(1)n=-10:20 %f=heaviside(n)x=heaviside(n)-heaviside(n-10)%figure(1)%axis([-10,20,0,1])stem(n,x)%title('x(n)')h=0.9.^n.*f %figure(2)%stem(n,h)%axis([-10,20,0,1])title('h(n)')n1=-20:40 y=conv(h,x)%figure(3)%stem(y)%axis([0,62,0,7])title('y(n)=x(n)*h(n)')
运行结果:
设置变量范围,默认步长为1
阶跃函数直接相减 产生图像窗口1 绘制函数x 函数h的表达式 产生图像窗口2 绘制函数h 调用conv函数求h和x的卷积 产生图像窗口3 绘制函数y 26
x(n)10.90.80.70.60.50.40.30.20.10-10-505101520h(n)10.90.80.70.60.50.40.30.20.10-10-505101520
y(n)=x(n)*h(n)***405060
实验四 信号的DFT分析
实验题目:
计算余弦序列x(n)cos(8n)RN(n)的DFT。分别对N=10、16、22时计算DFT,绘出X(k)幅频特性曲线,分析是否有差别及产生差别的原因。
解题分析:
用矩阵代替门函数给变量n赋值,并设定不同的N值,然后调用fft()函数实现函数的傅里叶变换,然后用subplot()和stem()函数绘图。
实验程序:
(1)N=10时:
N=10 %设定N的值为10 n=[0:N-1] %用矩阵代替门函数给n赋值 x=cos((pi/8).*n)%调用cos()函数
y=fft(x)%调用fft()函数求x的傅里叶变换 subplot(2,1,1),stem(n,y)%绘制y的离散图 title('DFT[cos((pi/8)*n]')subplot(2,1,2),stem(n,abs(y))%绘制y的幅频特性曲线 title('X(k)')(2)N=16时:
N=16 %设定N的值为16 n=[0:N-1] %用矩阵代替门函数给n赋值 x=cos((pi/8).*n)%调用cos()函数
y=fft(x)%调用fft()函数求x的傅里叶变换 subplot(2,1,1),stem(n,y)%绘制y的离散图 title('DFT[cos((pi/8)*n]')subplot(2,1,2),stem(n,abs(y))%绘制y的幅频特性曲线
title('X(k)')(3)N=22时:
N=22 %设定N的值为22 n=[0:N-1] %用矩阵代替门函数给n赋值 x=cos((pi/8).*n)%调用cos()函数
y=fft(x)%调用fft()函数求x的傅里叶变换 subplot(2,1,1),stem(n,y)%绘制y的离散图 title('DFT[cos((pi/8)*n]')subplot(2,1,2),stem(n,abs(y))%绘制y的幅频特性曲线 title('X(k)')
实验结果;
(1)N=10时:
DFT[cos((pi/8)*n]3210-10123456789X(k)64200123456789(2)N=16时:
DFT[cos((pi/8)*n]1050-5051015X(k)864200510153)N=22时:
DFT[cos((pi/8)*n]6420-20510152025X(k)***1(实验结果分析:
由图可知,不同的N值所对应的DFT序列和幅频响应不同,是因为N代表DFT的变换区间长度,当N取不同的值时,函数所对应的离散傅里叶变换和幅频特性曲线也不同。
实验心得体会: MATLAB是计算机运算,无法实现无限时间信号和无限大数量的计算,故而周期信号只能取有限个谐波分量近似合成,即N值有限,且N值越大,仿真结果越接近。所以手工求取的傅里叶变换系数与MATLAB求取存在差别。
实验五 系统时域解的快速卷积求法
实验题目:
用快速卷积法计算系统响应
y(n)x(n)*h(n),已知:
x(n)sin(0.4n)R15(n),h(n)0.9nR20(n)。要求取不同的L点数,并画出x(n)、h(n)、y(n)波形,分析是否有差别及产生差别的原因。
解题分析:
根据离散序列卷积及傅里叶变换的性质,可先求出两函数x(n)和h(n)的L点傅里叶变换,分别得到Xk和Yk,然后求Xk和Yk之积Hk的傅里叶反变换,即得到了x(n)和h(n)的卷积y(n)。
实验程序:
L=10时:
n1=[0:14] %用矩阵代替门函数给n1赋值 x=sin(0.4.*n1)%写出x的表达式 n2=[0:19] %给n2赋值 y=0.9.^n2 %写出y的表达式
Xk=fft(x,10)%调用fft()函数求x的L(=10)点傅里叶变换 Yk=fft(y,10)%求y的L点傅里叶变换 Hk=Xk.*Yk %写出Hk的表达式
h=ifft(Hk)%调用ifft()函数求Hk的傅里叶反变换 subplot(3,1,1),stem(x)%绘制x的离散图 title('x(n)')subplot(3,1,2),stem(y)%绘制y的离散图 title('y(n)')subplot(3,1,3),stem(h)%绘制h的离散图 title('h(n)')xlabel('L=10')%横坐标处做标注
(2)L=18时: n1=[0:14] x=sin(0.4.*n1)n2=[0:19] y=0.9.^n2 Xk=fft(x,18)Yk=fft(y,18)Hk=Xk.*Yk h=ifft(Hk)subplot(3,1,1),stem(x)title('x(n)')subplot(3,1,2),stem(y)title('y(n)')subplot(3,1,3),stem(h)title('h(n)')xlabel('L=18')(3)L=28时: n1=[0:14] x=sin(0.4.*n1)n2=[0:19] y=0.9.^n2 Xk=fft(x,28)Yk=fft(y,28)Hk=Xk.*Yk h=ifft(Hk)subplot(3,1,1),stem(x)title('x(n)')subplot(3,1,2),stem(y)title('y(n)')subplot(3,1,3),stem(h)title('h(n)')34
xlabel('L=28')(4)L=35时: n1=[0:14] x=sin(0.4.*n1)n2=[0:19] y=0.9.^n2 Xk=fft(x,35)Yk=fft(y,35)Hk=Xk.*Yk h=ifft(Hk)subplot(3,1,1),stem(x)title('x(n)')subplot(3,1,2),stem(y)title('y(n)')subplot(3,1,3),stem(h)title('h(n)')xlabel('L=35')
实验结果;
(1)L=10时:
x(n)10-1051015y(n)10.***1820h(n)42012345678910L=102)L=18时:
x(n)10-1051015y(n)10.***1820h(n)50-***8L=183)L=28时:
36((x(n)10-1051015y(n)10.***1820h(n)50-5051015202530L=284)L=35时:
x(n)10-1051015y(n)10.***1820h(n)50-***L=35
37(实验结果分析:
由图可知,当L取不同的值时,对应的y(n)波形形状相似,但是有所不同,产生这种差别的原因是L代表傅里叶变换区间长度,当L取不同的值时,所对应的函数波形也有所差别。
实验心得体会:(1)计算离散序列的卷积,虽然本实验的快速卷积方法看上去多次变换了变量的域,使过程变复杂了,但实际上减少了计算量,是一种快速而简单的方法。(2)用subplot绘图函数可将图形窗口分成若干等份,便于将多个图像进行分组或者比较。
改进想法:
当L取不同的值时,matlab自动生成的图像的横纵坐标范围不同,不便于相互比较,因此可以自己规定坐标轴范围,这样可以更加直观地看出各波形间的差别。