MATLAB在信号与系统中的应用
- 格式:doc
- 大小:816.50 KB
- 文档页数:10
matlab软件仿真实验(信号与系统)(1)《信号与系统实验报告》学院:信息科学与⼯程学院专业:物联⽹⼯程姓名:学号:⽬录实验⼀、MATLAB 基本应⽤实验⼆信号的时域表⽰实验三、连续信号卷积实验四、典型周期信号的频谱表⽰实验五、傅⽴叶变换性质研究实验六、抽样定理与信号恢复实验⼀MATLAB 基本应⽤⼀、实验⽬的:学习MATLAB的基本⽤法,了解 MATLAB 的⽬录结构和基本功能以及MATLAB在信号与系统中的应⽤。
⼆、实验内容:例⼀已知x的取值范围,画出y=sin(x)的图型。
x=0:0.05:4*pi;y=sin(x);plot(y)例⼆计算y=sin(π/5)+4cos(π/4)例三已知z 取值范围,x=sin(z);y=cos(z);画三维图形。
z=0:pi/50:10*pi;x=sin(z);y=cos(z);plot3(x,y,z)xlabel('x')ylabel('y')zlabel('z')例四已知x的取值范围,⽤subplot函数绘图。
参考程序:x=0:0.05:7;y1=sin(x);y2=1.5*cos(x);y3=sin(2*x);y4=5*cos(2*x);subplot(2,2,1),plot(x,y1),title('sin(x)')subplot(2,2,2),plot(x,y2),title('1.5*cos(x)')subplot(2,2,3),plot(x,y3),title('sin(2*x)')subplot(2,2,4),plot(x,y4),title('5*cos(2*x)')连续信号的MATLAB表⽰1、指数信号:指数信号Ae at在MATLAB中可⽤exp函数表⽰,其调⽤形式为:y=A*exp(a*t) (例取 A=1,a=-0.4)参考程序:A=1;a=-0.4;t=0:0.01:10;ft=A*exp(a*t);plot(t,ft);grid on;2、正弦信号:正弦信号Acos(w0t+?)和Asin(w0t+?)分别由函数cos和sin表⽰,其调⽤形式为:A*cos(w0t+phi) ;A*sin(w0t+phi) (例取A=1,w0=2π,?=π/6) 参考程序:A=1;w0=2*pi; phi=pi/6; t=0:0.001:8;ft=A*sin(w0*t+phi);plot(t,ft);grid on ;3、抽样函数:抽样函数Sa(t)在MATLAB中⽤sinc函数表⽰,其定义为:sinc(t)=sin(πt)/( πt)其调⽤形式为:y=sinc(t)参考程序:t=-3*pi:pi/100:3*pi;ft=sinc(t/pi);plot(t,ft);grid on;4、矩形脉冲信号:在MATLAB中⽤rectpuls函数来表⽰,其调⽤形式为:y=rectpuls(t,width),⽤以产⽣⼀个幅值为1,宽度为width,相对于t=0点左右对称的矩形波信号,该函数的横坐标范围由向量t决定,是以t=0为中⼼向左右各展开width/2的范围,width的默认值为1。
Matlab软件在信号与系统课程中的应用摘要:简要介绍了信号与系统传统的教学方式及Matlab软件的特点,并通过实例介绍了Matlab在信号与系统课程中的应用。
关键词:信号与系统Matlab 教学1 传统的教学方式《信号与系统》是我国高校电子信息类专业的必修课程。
该课程无论从教学内容还是教学目的来看,都是一门应用性和实践性极强的课程,其中的基本原理和方法广泛应用于计算机信息处理的各个领域。
但是长期以来,《信号与系统》课程一直采用黑板式的单一理论教学方式,学生们仅能依靠做习题来巩固和理解教学内容,虽然手工演算训练了计算能力和思维方法,但是对一些应用性极强的内容却无法亲自动手设计、调试、分析,严重影响了学生对所学知识的理解和应用,在一定程度上也制约了学生学习的主动性和创造性,达不到培养综合能力的目的。
因此,迫切需要进行教学方法和教学手段的改革。
2 Matlab软件的特点Matlab软件是1984年由Mathworks公司推出,目前已成为国际上最流行、应用最广泛的科学与工程计算软件,其主要特点有以下几点。
(1)高效的数值计算和符号计算功能,使我们从繁杂的数学运算分析中解脱出来。
(2)完备的图形处理功能,实现计算结果和编程的可视化。
(3)友好的用户界面及接近数学表达式的自然化语言,易于学习和掌握。
(4)功能丰富的应用工具箱,为我们提供了大量方便实用的处理工具。
Matlab的这些特点,使得学生们在学习《信号与系统》时,就可以摆脱烦琐的数学运算,从而更注重于信号与系统的基本分析方法和应用的理解与思考,并能将课程的重点、难点及部分习题用MATLAB进行形象、直观的可视化计算机模拟与仿真实现,进一步加深对信号与系统的基本原理、方法及应用的理解。
3 Matlab在信号与系统课程中的应用我们以Matlab在S域分析中的应用为例。
在S域分析中,一般是要求画出系统的零极点分布图、单位冲激响应和系统的幅频和相频特性。
通常按照常规方法这种波形很难画出,但是应用Matlab就很容易。
M AT L A B语言编程实训报告题目MATLAB在信号与系统中的应用年级2008 专业电子信息工程目录第一章绪论 (2)1.1 本设计课题目的及意义, 重点解决的问题 (2)1.1.1 MATLAB在信号与系统中应用的目的及意义 (2)1.1.2 重点解决的问题 (2)1.2 课题的社会和技术背景 (2)1.3 实现的具体功能 (3)第二章课题的基本概念和原理 (4)2.1 MATLAB的概念 (4)2.2 信号与系统的概念 (4)2.3 信号与系统分析的基本内容与方法 (5)2.4 离散系统的基本概念 (6)2.5连续系统模型及表示 (6)第三章系统设计和实现 (7)3.1采用的软件及开发平台 (7)3.1.1系统设计软件 (7)3.1.2开发平台和编程环境 (7)3.2系统的详细设计 (8)3.2.1建模 (8)3.2.2解决方法 (9)3.3系统设计的亮点 (9)第四章结束语 (10)参考文献 (10)第一章绪论1.1 本设计课题目的及意义, 重点解决的问题1.1.1 MATLAB在信号与系统中应用的目的及意义MATLAB在信号与系统中应用能够让学生熟悉MATLAB软件平台、工具箱、高效的数值计算及符号计算功能。
熟悉MATLAB软件的信号处理编程方法和结果的可视化。
了解数字信号处理的计算机仿真方法。
进一步加深对信号与系统的基本原理、方法及应用的理解。
MATLAB软件具有强大的数值分析和计算结果可视化的功能.运用MATLAB软件,通过一个应用实例,将信号与系统课程的理论与实践教学有机地结合,有效地解决了教学中的难点问题,说明了MATLAB软件在信号与系统课程的实践教学中具有重要的实际意义1.1.2 重点解决的问题matlab的基本使用方法, matlab的预定义函数, 如何用matlab绘图, 如何在matlab中编程, 基于matlab的矩阵运算、符号运算、数值分析等。
1.2 课题的社会和技术背景长期以来, “信号与系统”课程一直采用黑板式的单一的教学方式, 学生仅依靠做习题来巩固和理解教学内容, 对课程中大量的应用性较强的内容不能实际动手设计、调试、分析, 严重影响和制约了教学效果。
MATLAB在信号处理领域的应用案例随着科技的发展,信号处理已经成为了许多领域中不可或缺的一部分。
而在信号处理中,MATLAB作为一种高效且灵活的编程环境,广泛应用于各种信号处理算法的研究和实现。
本文将通过几个实际应用案例,介绍MATLAB在信号处理领域的丰富功能及其在实际问题中的应用。
一、音频信号处理音频信号是人们日常生活中最常接触到的信号之一。
MATLAB提供了丰富的音频处理工具箱,可以方便地实现音频的采集、处理和分析。
例如,我们可以使用MATLAB的音频录制函数进行音频信号的采集,并使用预先定义的滤波器函数对音频进行去噪。
此外,MATLAB还提供了音频压缩算法的实现,使得音频文件的存储和传输更加高效。
二、图像信号处理在图像处理中,MATLAB同样发挥着重要的作用。
通过MATLAB提供的图像处理工具箱,我们可以对图像进行各种滤波、增强和分割操作。
例如,可以使用MATLAB的图像平滑函数对图像进行模糊处理,或者使用边缘检测算法实现图像的边缘提取。
此外,MATLAB还提供了图像压缩算法的实现,可以对图像进行有损或无损的压缩,以满足不同应用的需求。
三、生物信号处理生物信号是一种具有时变特性的信号,如心电图(ECG)和脑电图(EEG)。
MATLAB提供了一系列函数和工具箱,用于处理和分析生物信号的特征。
例如,使用MATLAB的波形识别工具箱,可以对ECG信号进行心律失常的自动检测和分析。
此外,还可以使用MATLAB的信号处理工具箱对EEG信号进行频谱分析,以研究大脑的活动。
四、通信信号处理通信信号处理是将信息进行编码、传输和解码的过程,是现代通信系统中不可或缺的一环。
MATLAB提供了丰富的通信信号处理工具箱,用于设计和模拟各种调制、解调和误码控制算法。
例如,可以使用MATLAB的OFDM工具箱对正交频分复用(OFDM)系统进行仿真和性能分析。
此外,MATLAB还提供了对数字滤波器和符号调制算法的支持,方便了通信系统的设计和验证。
信号与系统卷积的原理及应用matlab实验一、信号与系统基础概念信号是指随时间或空间变化的物理量,可以是电压、电流、声音等。
系统是指对输入信号进行处理的设备或算法,可以是滤波器、放大器等。
二、卷积的定义卷积是一种信号处理方法,用于描述一个信号经过另一个信号响应后产生的输出。
数学上,卷积可以表示为两个函数之间的积分运算,即:y(t) = ∫x(τ)h(t-τ)dτ其中,y(t)表示输出信号,x(t)表示输入信号,h(t)表示系统的单位响应。
三、卷积定理卷积定理是指在频域中进行卷积运算时,等价于对两个函数进行乘法运算后再进行逆变换。
即:F{f*g} = F{f}·F{g}其中,f和g分别为两个函数,在频域中表示为F{f}和F{g}。
四、离散卷积与离散卷积定理在数字信号处理中,使用离散卷积来描述一个序列经过另一个序列响应后产生的输出序列。
离散卷积可以表示为:y[n] = ∑x[k]h[n-k]其中,y[n]表示输出序列,x[k]表示输入序列,h[n-k]表示系统的单位响应。
离散卷积定理是指在频域中进行离散卷积运算时,等价于对两个序列进行乘法运算后再进行逆变换。
即:DFT{f*g} = DFT{f}·DFT{g}其中,f和g分别为两个序列,在频域中表示为DFT{f}和DFT{g}。
五、matlab实验1. 实验目的通过matlab实现离散卷积的计算,并观察离散卷积定理的效果。
2. 实验步骤(1)生成两个长度为N的随机序列x和h。
(2)使用matlab自带函数conv计算x和h的离散卷积y1,并绘制其图像。
(3)将x和h分别进行N点FFT变换得到X和H,在频域中计算它们的乘积Y2=X·H。
(4)将Y2进行N点IFFT变换得到y2,并绘制其图像。
(5)比较y1和y2的差异,观察离散卷积定理的效果。
3. 实验结果与分析实验结果如下图所示:从图中可以看出,y1和y2基本重合,说明离散卷积定理在频域中成立。
MATLAB 在信号与系统中的应用主要内容:1、信号的表示、产生和运算2、系统的表示及转换3、卷积、差分方程及系统的响应4、连续时间傅里叶变换5、离散时间傅立叶变换6、Z 变换7、快速傅立叶变换一、信号的表示、产生和运算信号的表达信号是传递信息的载体,按照信号的特点不同,可以将信号表示成一个或几个独立变量的函数。
在信号与系统中主要研究一个自变量的情况,并以此为依据将信号分为两大类:连续信号和离散信号。
计算机只能处理离散的数字信号,对连续信号应首先做离散处理。
MATLAB 中以数组和矩阵表示离散信号或序列,如:X=[2 3 5 6 1]n=[-2 –1 0 1 2]信号的产生1)单位抽样序列代码: x=[1 zeros(1, N-1)] n=0:N-1函数:function [x,n]=impseq(n0,n1,n2) n=[n1:n2];x=[(n-n0)==0];例如:[x, n]=impseq(1, -2, 2)输出:x = 0 0 0 1 0n = -2 -1 0 1 22)单位阶跃序列代码: x= ones(1,N) n=0:N-1函数:function [x,n]=stepseq(n0,n1,n2) n=[n1:n2];x=[(n-n0)>=0];⎩⎨⎧≠==δ0,00,1)(n n n )(0n n -δ⎩⎨⎧<≥=0,00,1)(n n n u )(0n n u -例如:[x, n]=stepseq(1, -2, 2)输出:x = 0 0 0 1 1n = -2 -1 0 1 23)实指数序列代码: n=0:N-1; x=a.^n;4)复指数序列代码: n=0:N-1; x=exp((lu+j*w0)*n);5)随机序列rand(1,N) 产生[0,1]上均匀分布的随机矢量。
randn(1,N) 产生均值为0,方差为1的高斯随机序列,即白噪声。
6)其它序列正弦序列:用sin ,cos 等函数。
方波:用square 函数。
锯齿波:用sawtooth 函数。
辛克函数:用sinc 函数。
例: t=0:0.01*pi:2*pi;x=sin(2*pi*t);序列的运算1)信号加 代码: x=x1+x2;x1和x2长度相同,位置对应才能相加,否则应作处理。
如:function [y,n]=sigadd(x1,n1,x2,n2)n_min=min(min(n1),min(n2));n_max=max(max(n1),max(n2));n=n_min:n_max;y1=zeros(1,length(n)); y2=y1;y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;y=y1+y2;例如 n1=-2:1; x1=1:4; n2=-1:2; x2=1:4;[y,n]=sigadd(x1,n1,x2,n2)输出:y=1 3 5 7 4 n=-2 -1 0 1 2R a n a n x n ∈∀=,,)(n e n x n jw ∀=+σ,)()()(2)(1)(n x n x n x +=2)信号乘 代码: x=x1.*x2; %数组乘法x1和x2长度相同,位置对应才能相乘,否则应作处理。
3)改变比例 代码: y=k*x4)折叠 代码: y=fliplr(x) 5)累加求和代码: y=sum(x(n1:n2));6)信号能量和功率 代码: Ex=sum(abs(x).^2));Px=sum(abs(x).^2))/N;二、系统的表达常用的系统表达方式有:1) 传递函数法;2)零极点增益法;3)带余数的部分分式展开法;4)状态空间法;5)二阶部分积;6)lattice 结构;7)卷积矩阵。
1)传递函数法用两个z 域中的多项式之商来表示系统传递函数,也可看作数字滤波器的z 域表达式,分子的根为零点,分母的根为极点。
2)零极点增益法把分子分母上的多项式表示为因式形式。
可用roots 函数和poly 函数与传递函数转换。
则对应的多项式为:y=[0.1 0.5 1]; x=[0.3 2 5]; k=1;b=k*poly(y);; a=poly(x);b = 1.0000 -1.6000 0.6500 -0.0500a = 1.0000 -7.3000 12.1000 -3.0000)(2*)(1)(n x n x n x =)(*)(n x k n y =)()(n x n y -=∑==21)()(n n n n x n y 2|)(|∑∞-∞==n n x Ex用roots函数验证:>> y=roots(b) >> x=roots(a)y = x =1.0000 5.00000.5000 2.00000.1000 0.3000>> k=b(1)/a(1)k = 13)带余数的部分分式展开法用residue函数可实现该形式与传递函数的转换[b,a] = residue(r,p,k)[r,p,k] = residue(b,a)例:b=[-4 8]; a=[1 6 8];[r,p,k] = residue(b,a)r = -12 p = -4 k=[]8 -2三、时间域分析离散系统时间域分析1 .已知离散系统单位冲激响应,用卷积可以求出系统的输出响应,对应的函数为conv。
例:x(n)=[3, 11, 7, 0, –1, 4, 2]; n=-3:3;h(n)=[2, 3, 0, -5, 2, 1]; n=-1:4求y(n)=x(n)*h(n)解: x=[3, 11, 7, 0, -1, 4, 2]; h=[2, 3, 0, -5, 2, 1];y=conv(x,h);y =6 31 47 6 -51 -5 41 18 -22 -3 8 2MATLAB的卷积函数不能给出脚标定位,可采用扩展的卷积函数function [y, ny]=conv_m(x,nx,h,nh)nyb=nx(1)+nh(1);nye=nx(length(x))+nh(length(h));ny=nyb:nye;y=conv(x,h);又解: x=[3, 11, 7, 0, -1, 4, 2]; nx=-3:3;h=[2, 3, 0, -5, 2, 1]; nh=-1:4[y, n]=conv_m(x,nx,h,nh);输出:y = 6 31 47 6 -51 -5 41 18 -22 -3 8 2n = -4 -3 -2 -1 0 1 2 3 4 5 6 72 .已知离散系统的差分方程,使用filter函数可求出差分方程的系统响应。
例:已知系统的差分方程为:y(n)-y(n-1)+0.9y(n-2)=x(n);1)计算并画出n=-20,…120的脉冲响应h(n).2)计算并画出n=-20,…120的阶跃响应s(n).b=[1];a=[1,-1,0.9];x=impseq(0,-20,120);n=[-20:120];h=filter(b,a ,x);subplot(2,1,1); stem(n,h);title('Implulse Response');xlabel('n');ylabel('h(n)');x=stepseq(0,-20,120);s=filter(b,a,x);subplot(2,1,2); stem(n,s);title('Implulse Response');xlabel('n');ylabel('s(n)');四、傅里叶分析连续时间信号傅里叶分析连续信号的傅立叶变换应采用数值方法完成,这里主要介绍函数freqs 画出连续系统的频率响应。
例:一阶微分方程为求其频率响应。
解:可以验证该系统为一个因果、稳定的LTI代码如下:a=[1 3]; b=3;freqs(b,a)∑∑==∀-=-N k M m k k n m n x b k n y a 00)()(离散时间信号傅里叶分析1、傅里叶变换的幅度、相位、实部和虚部例:求出 的傅里叶变换,并画出其幅度、相位、实部和虚部。
解:首先用解析的方法求出信号的离散傅里叶变换为再画出相应的图形,代码如下:w=[0:1:500]*pi/500;X=exp(j*w)./(exp(j*w)-0.5);magX=abs(X); angX=angle(X);realX=real(X); imagX=imag(X) ;subplot(2,2,1);plot(w/pi,magX);gridxlabel('freqency in pi units');ylabel('Magnitude');subplot(2,2,3);plot(w/pi,angX);gridxlabel('freqency in pi units');ylabel('Angle')subplot(2,2,2);plot(w/pi,realX);gridxlabel('freqency in pi units');ylabel('Real')subplot(2,2,4);plot(w/pi,imagX);gridxlabel('freqency in pi units');ylabel('Image') )()5.0()(n u n x n =2、DTFT 的性质验证DTFT 具有多种性质,如:线性,时移,频移,共轭对称,卷积等,这些性质都可通过MATLAB 进行验证。
例:设 是在 内,[0,1]之间均匀分布的随机序列,并令 验证样本移位性质 代码:x=rand(1,11); n=0:10;k=0:500;w=(pi/500)*k;X=x*(exp(-j*pi/500)).^(n'*k);%DTFT of xy=x;m=n+2;Y=y*(exp(-j*pi/500)).^(m'*k);%DTFT of y Y_check=(exp(-j*2).^w).*X;error=max(abs(Y-Y_check))error = 1.1178e-0143、 freqz 画出离散系统的频率响应例子:已知差分方程画出系统的频率响应b=ones(1,10); a=1;freqz(b,a);快速傅里叶变换常用fft 等函数求信号的傅立叶变换并进一步求出其幅度谱和相位谱。