使用MATLAB产生各种常见的连续信号
实验一 连续时间信号在MATLAB中的表示
k=2;
a=-1.5; b=10;
ft=k*exp((a+i*b)*t);
subplot(2,2,1);plot(t,real(ft));title('实部');axis([0,3,-2,2]);grid on; subplot(2,2,2);plot(t,imag(ft));title('虚部');axis([0,3,-2,2]);grid on; subplot(2,2,3);plot(t,abs(ft));title('模');axis([0,3,0,2]);grid on; subplot(2,2,4);plot(t,angle(ft));title('相角');axis([0,3,-4,4]);grid on;
1.1 实验目的
• 学会使用MATLAB表示常用连续时间信号的 方法
• 观察并熟悉这些信号的波形和特性
1.2 实验原理及实例分析
在某一时间区间内,除若干个不连续点外,如果任意 时刻都可给出确定的函数值,则称该信号为连续时间信号。 从严格意义上讲,MATLAB并不能处理连续时间信号,然而 可以利用连续信号在等时间间隔点的取样值来近似表示连续
出其波形图。
1.2.1 典型信号的MATLAB表示
1. 实指数信号
MATLAB中用exp函数来表示实指数信号,其语句格式为
y=K*exp(a*t) 例1-1 用MATLAB产生单边衰减指数信号 2e
1.5t
u(t ) , 并绘出时间
0 t 3 的波形。
解:MATLAB源程序为
K=2; a=-1.5; t=0:0.01:3; ft=K*exp(a*t); plot(t,ft),grid on axis([0,3,0,2.2]) title('单边指数衰减信号')
实验三 常见连续信号的MATLAB表示
实验三 常见连续信号的MATLAB 表示一、实验目的1、熟悉常见连续时间信号的意义、特性及波形;2、学会使用MATLAB 表示连续时间信号的方法;3、学会使用MATLAB 绘制连续时间信号的波形。
二、实验原理信号一般是随时间而变化的某些物理量。
按照自变量的取值是否连续,信号分为连续时间信号和离散时间信号,一般用()t f 和()n f 来表示。
若对信号进行时域分析,就需要绘制其波形,如果信号比较复杂,则手工绘制波形就变得很困难,且难以精确。
MA TLAB 强大的图形处理功能及符号运算功能,为我们实现信号的可视化及其时域分析提供了强有力的工具。
根据MA TLAB 的数值计算功能和符号运算功能,在MATLAB 中,信号有两种表示方法,一种是用向量来表示,另一种则是用符号运算的方法。
在采用适当的MATLAB 语句表示出信号后,就可以利用MA TLAB 中的绘图命令绘制出直观的信号波形了。
下面我们将介绍连续时间信号的MATLAB 表示及其波形绘制方法。
所谓连续时间信号,是指其自变量的取值是连续的,并且除了若干不连续的点外,对于一切自变量的取值,信号都有确定的值与之对应。
从严格意义上讲,MA TLAB 并不能处理连续信号。
在MATLAB 中,是用连续信号在等时间间隔点上的样值来近似表示的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。
在MA TLAB 中连续信号可用向量或符号运算功能来表示。
1、向量表示法对于连续时间信号()t f ,可以用两个行向量f 和t 来表示,其中向量t 是用形如21::t p t t =的命令定义的时间范围向量,其中,1t 为信号起始时间,2t 为终止时间,p 为时间间隔。
向量f 为连续信号()t f 在向量t 所定义的时间点上的样值。
例1 对于连续信号()()()tt t Sa t f sin == ,将它表示成行向量形式,同时用绘图命令plot( )函数绘制其波形。
实验一 连续时间信号的Matlab表示与计算
实验一连续时间信号的Matlab表示与计算一、实验目的1、初步学习MATLAB语言,熟悉MATLAB软件的基本使用。
2、掌握用MA TLAB描述连续时间信号方法,能够编写MATLAB程序,实现各种信号的时域变换和运算,并且以图形的方式再现各种信号的波形。
二、实验原理连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点之外,信号都有确定的值与之对应。
严格来说,MATLAB并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。
当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。
在MATLAB可视化绘图中,对于以t为自变量的连续信号,在绘图时统一用plot函数;而对n为自变量的离散序列,在绘图时统一用stem函数。
对于连续时间信号f(t),可用f、t两个行向量来表示。
例:t=-10:1.5:10;f=sin(t)./ t ;可以产生t= -10~10,间隔1.5的序列以及t tf)sin(=的值。
用命令:plot(t,f)可得如下图形,显然显示效果较差,这是因为t的间隔过大,只要改变为:t=-10:0.5:10;可得图1.2。
图1.1 图1.21. 信号的时域表示方法MATLAB提供了大量用以生成基本信号的函数,比如最常用的指数信号、正弦信号等就是MATLAB的内部函数,即不需要安装任何工具箱就可以调用的函数。
1.1单位阶跃信号u(t)function y=heaviside(t) %阶跃信号y = (t>=0); % y = 1 for t > 0, else y = 01.2单位冲激信号δ(t)function chongji(t1,t2,t0) %冲激信号δ(t- t 0),t 1和t 2分为起始时间和终止时间dt=0.01;t=t1:dt:t2;n=length(t);x=zeros(1,n);x(1,(t0-t1)/dt+1)=1/dt;stairs(t,x); %以阶梯方式绘画axis([t1,t2,0,1.1/dt]) 或function y = delta(t)dt = 0.01;y = (u(t)-u(t-dt))/dt;1.3指数信号指数信号atAe 在MATLAB 中可以用exp 函数表示,其调用形式为:y=A*exp(a*t)例如图1-3所示指数衰减信号的MATLAB 源程序如下(取A=1,a=-0.4):%program7_1 Decaying expponential signalA=1;a=-0.4;t=0:0.01:10;ft=A*exp(a*t);plot(t,ft);grid on;1.4正弦信号正弦信号)cos(ϕω+t A o 和)sin(ϕω+t A o 分别用MATLAB 的内部函数cos 和sin 表示,其调用形式为:)*cos(*phi t A o +ω)*sin(*phi t A o +ω 例如图1-4所示MATLAB 源程序如下(取A=1,πω20=,6/πϕ=):%program7_2 Sinusoidal signalA=1;w0=2*pi;phi=pi/6;t=0:0.01:8;ft=A*sin(w0*t+phi);plot(t,ft);grid on;图1-3 单边指数衰减信号 图1-4 正弦信号 除了内部函数外,在信号处理工具箱(Signal Processing Toolbox )中还提供了诸如抽样 函数、矩形波、三角波、周期性矩形波和周期性三角波等在信号处理中常用的信号。
2连续时间信号在MATLAB中的表示
2连续时间信号在MATLAB中的表示2-1.利用MATLAB命令画出下列连续信号的波形图(1)>> t=0:0.01:3;>> ft=2*cos(3*t+pi/4);>> plot(t,ft),grid on;>> axis([0 3 -2.2 2.2]);>> title('2cos(3t+pi/4)')(2)>> t=0:0.01:3;>> ft=2-exp(-t);>> plot(t,ft),grid on;>> title('(2-exp(-t))u(t)')(3)>> t=-1:0.01:1;>> ft=t.*(uCT(t)-uCT(t-1));>> plot(t,ft),grid on>> axis([-1 1 -0.2 1.2]);>> title('t[u(t)-u(t-1)]')(4)>> t=-1:0.01:3;>> ft=(1+cos(pi*t)).*(uCT(t)-uCT(t-2)); >> plot(t,ft),grid on>> axis([-1 3 -0.2 2.2]);>> title('[1+cos(pi*t)][u(t)-u(t-2)]')2-2.利用MATLAB命令画出下列复信号的实部、虚部、模和辐角(1)>> t=0:0.01:3;>> ft=2+exp(i*(pi/4)*t)+exp(i*(pi/2)*t);>> subplot(2,2,1);plot(t,real(ft));title('实部');axis([0 3 0 4]);grid on;>> subplot(2,2,2);plot(t,imag(ft));title('虚部');axis([0 3 0 2]);grid on;>> subplot(2,2,3);plot(t,abs(ft));title('模');axis([0 3 0 4]);grid on;>> subplot(2,2,4);plot(t,angle(ft));title('相角');axis([0 3 0 2]);grid on;(2)t=0:0.01:3;>> ft=2*exp(i*(t+pi/4));>> subplot(2,2,1);plot(t,real(ft));title('实部');axis([0 3 0 2]);grid on;>> subplot(2,2,2);plot(t,imag(ft));title('虚部');axis([0 3 0 2]);grid on;>> subplot(2,2,3);plot(t,abs(ft));title('模');axis([0 3 0 4]);grid on;>> subplot(2,2,4);plot(t,angle(ft));title('相角');axis([0 3 0 4]);grid on;2-3.利用MATLAB命令产生幅度为1、周期为1、占空比为0.5的一个周期矩形脉冲信号>> t=-0.5:0.01:3;>> ft=square(2*pi*t,50);>> plot(t,ft);grid on;axis([-0.5 3 -1.2 1.2]);>> title('幅度为1、周期为1、占空比0.5的周期举行脉冲信号')3连续时间信号在MATLAB中的运算3-1.试用MATLAB命令绘出以下信号的波形图(1)>> syms x t;>> t=-1:0.01:1;>> x=exp(-t).*sin(10*pi*t)+exp(-0.5*t).*sin(9*pi*t);>> plot(t,x)(2)>> syms x t;>> t=-1:0.01:1;>> x=sinc(t).*cos(10*pi*t);>> plot(t,x)3-2.已知连续时间信号f(t)的波形如图3-6所示,试用MATLAB 命令画出下列信号的波形图先画出图3-6:>> t=-2:0.01:2;>>f=(-t-1).*(-uCT(t+2)+uCT(t+1))+uCT(t+1)+uCT(t)-uCT(t-1)-(t-1).*(uCT(t-1)-uCT(t-2))-uC T(t-2);>> plot(t,f)>> axis([-4 4 -1 2])>> title('图3-6')>> t=-2:0.01:2;>> f1=funct2(t-1);>> f2=funct2(2-t);>> f3=funct2(2*t+1);>> f4=funct2(4-t/2);>> f5=(funct2(t)+funct2(-t)).*uCT(t);>> subplot(231);plot(t,f1);grid on;title('f(t-1)');axis([-3 3 -1 2]);>> subplot(232);plot(t,f2);grid on;title('f(2-t)');axis([-3 3 -1 2]);>> subplot(233);plot(t,f3);grid on;title('f(2t-1)');axis([-3 3 -1 2]);>> subplot(234);plot(t,f4);grid on;title('f(4-t/2)');axis([-3 3 -1 2]);>> subplot(235);plot(t,f5);grid on;title('(f(t)+f(-t))u(t)');axis([-3 3 -1 2]);3-3.试用MATLAB命令绘出如图3-7所示信号的偶分量和奇分量>> t=0:0.01:2;>> f=(uCT(t)-uCT(t-2)).*(-t+1);>> plot(t,f);title('图3-7')>> f1=fliplr(f);>> fe=(f+f1)/2;fo=(f-f1)/2;>> subplot(211),plot(t,fe);grid on>> title('fe')>> subplot(212),plot(t,fo);grid on;title('fo')4连续时间信号的卷积计算4-1用MATLAB命令绘出下列信号的卷积积分的时域波形图>> dt=0.001;t1=-0.5:dt:3.5;>> f1=uCT(t1)-uCT(t1-2);>> t2=t1;>> f2=uCT(t2)+uCT(t2-1)-uCT(t2-2)-uCT(t2-3);>> [t,f]=ctsconv(f1,f2,t1,t2,dt);6周期信号的傅里叶级数及频谱分析6-1已知周期三角信号如图6-5所示,试求出该信号的傅里叶级数,利用MATLAB编程实现其各次谐波的叠加,并验证其收敛性。
matlab求连续信号的频谱函数和离散信号频谱函数的方法 -回复
matlab求连续信号的频谱函数和离散信号频谱函数的方法-回复Matlab提供了多种方法来求解连续信号和离散信号的频谱函数。
在本文中,我们将分步骤介绍这些方法。
一、连续信号频谱函数的方法连续信号的频谱函数是通过对连续信号进行傅里叶变换得到的。
而在Matlab中,傅里叶变换可以通过fft函数实现。
下面是求解连续信号频谱函数的步骤:1. 定义连续信号首先,我们需要定义一个连续信号,用一个函数来表示。
例如,我们定义一个简单的三角波信号:matlabt = linspace(0, 1, 1000); 定义时间范围x = sawtooth(2*pi*5*t); 定义三角波信号2. 进行傅里叶变换接下来,我们使用fft函数对连续信号进行傅里叶变换。
傅里叶变换将信号从时域转换到频域。
matlabX = fft(x);3. 计算频谱函数通过进行傅里叶变换,我们得到了频谱函数X。
然而,频谱函数X是一个复数数组,其中包含了信号的幅度和相位信息。
为了获得真正的频谱,我们需要计算幅度谱。
matlabP2 = abs(X/length(x));P1 = P2(1:length(x)/2+1);P1(2:end-1) = 2*P1(2:end-1);在上述代码中,我们将频谱函数除以信号长度,然后计算幅度,并使用对称性将频谱函数变换为正频率部分。
最后,我们将频谱函数的第一个和最后一个值乘以2。
4. 绘制频谱图最后,我们可以使用plot函数将频谱函数可视化。
matlabfs = 1000; 采样频率f = fs*(0:(length(x)/2))/length(x);plot(f,P1)xlabel('Frequency (Hz)')ylabel('Amplitude')以上步骤可以用于求解任何连续信号的频谱函数。
二、离散信号频谱函数的方法离散信号的频谱函数可以通过对信号进行离散傅里叶变换(Discrete Fourier Transform,DFT)来获得。
信号与系统实验指导书版
《信号与系统》实验指导书中南大学信息科学与工程学院2014年3月目录实验一基本信号的生成 (1)实验二信号的基本运算 (8)实验三系统的时域分析 (13)实验四周期信号的频域分析 (20)实验一 基本信号的生成1.实验目的● 学会使用MATLAB 产生各种常见的连续时间信号与离散时间信号; ● 通过MATLAB 中的绘图工具对产生的信号进行观察,加深对常用信号的理解;● 熟悉MATLAB 的基本操作,以及一些基本函数的使用,为以后的实验奠定基础。
2.实验原理⑴ 连续信号的MATLAB 表示① 指数信号指数信号at Ae 在MATLAB 中可用exp 函数表示,其调用形式为exp()y A a t =**【例1】 单边衰减指数信号的MATLAB 表示如下:(取1,0.4A a ==-) % program exa_1.m, decaying exponentialA=1;a=-0.4;t=0:0.001:10;ft=A*exp(a*t);plot(t,ft)② 正弦信号正弦信号0cos()A t ωφ+和0sin()A t ωφ+分别用MATLAB 的内部函数cos 和sin 表示,其调用形式为cos(0phi)sin(0phi)A w t A w t **+**+ 【例2】 正弦信号的MATLAB 表示如下:(取01,2,/6A ωπφπ===)% program exa_2.m, sinusoidal signalA=1;w0=2*pi;phi=pi/6;t=0:0.001:8;ft=A*sin(w0*t+phi);plot(t,ft)③ 抽样函数抽样函数()Sa t 在MATLAB 中用sinc 函数表示,定义为sinc()sin()/()t t t ππ=其调用形式为y=sinc()t【例3】 抽样函数的MATLAB 表示如下:(取33t ππ=-:)% program exa_3.m, sample functiont=-3*pi:pi/100:3*pi;ft=sinc(t/pi);plot(t,ft)④矩形脉冲信号矩形脉冲信号在MATLAB中用rectpuls函数表示,其调用形式为ty=rectpuls(,width)用以产生一个幅度为1,宽度为width以0t=为对称的矩形波。
matlab求连续信号的频谱函数和离散信号频谱函数的方法 -回复
matlab求连续信号的频谱函数和离散信号频谱函数的方法-回复Matlab求连续信号的频谱函数和离散信号频谱函数的方法频谱分析是信号处理中的一个重要方面,它可以帮助我们了解信号的频率内容与特性。
在Matlab中,我们可以使用不同的方法来求解连续信号和离散信号的频谱函数。
一、连续信号的频谱函数连续信号的频谱函数描述了信号在频域中的特性,也称作连续时间傅里叶变换。
Matlab提供了多种函数来计算连续信号的频谱函数,其中最常用的是fft和fftshift。
1. fft函数fft函数是Matlab中最基本的用于计算离散信号频谱的函数。
然而,为了使用fft函数计算连续信号的频谱函数,我们需要对信号进行采样,得到离散信号。
首先,我们需要构建一个时间向量t,用于表示连续信号的时间范围。
然后,我们可以将连续信号用一个函数f(t)表示。
为了对该连续信号进行采样,我们可以选择一个合适的采样频率和采样点数。
具体步骤如下:1)设置采样频率Fs和采样点数N。
2)构建时间向量t,可以使用linspace函数生成。
3)计算信号在时间范围内的样本f(t)。
4)使用fft函数计算样本的频谱F(w)。
5)使用linspace函数生成频率向量w。
6)使用abs函数计算频谱的幅度谱A(w)。
7)使用plot函数绘制幅度谱曲线。
下面是一个示例代码:Matlab设置采样频率和采样点数Fs = 1000;N = 1000;构建时间向量t = linspace(0, 1, N);计算信号在时间范围内的样本f = sin(2*pi*50*t) + sin(2*pi*120*t);使用fft函数计算样本的频谱F = fft(f);生成频率向量w = linspace(0, Fs, N);计算频谱的幅度谱A = abs(F);绘制幅度谱曲线plot(w, A);2. fftshift函数上述示例中的频谱是以0为中心的,也就是说,其中心频率出现在频谱的正中间。
matlab信号的产生实验原理
在MATLAB中进行信号产生实验,主要利用离散时间信号的表示方法。
这些信号在MATLAB中通常用向量或矩阵来表示。
1. MATLAB中表示信号的方法:
MATLAB中的信号都是离散时间信号,这些信号在一定条件下可以近似地表示连续信号。
MATLAB语言中的基本数据类型是向量和矩阵,所以信号也用向量或矩阵来表示。
对于单通道信号,可以用列向量或行向量表示;对于多通道信号,可以用矩阵表示,矩阵中的每一列表示一个通道。
2. 实验原理:
在MATLAB中进行信号产生实验,通常基于一些特定的函数或者算法。
例如,可以通过sine函数生成正弦波信号,通过square函数生成方波信号,通过sawtooth函数生成锯齿波信号等。
以正弦波信号为例,可以这样生成:
1. 设定信号的频率、幅度和采样周期;
2. 计算每一个采样点的正弦值;
3. 将这些值组成一个列向量,代表一个周期内的离散时间信号。
在此基础上,也可以进行更复杂的信号处理实验,例如滤波、傅里叶变换、频谱分析等。
实验一 连续时间信号在MATLAB中的表示
实验一连续时间信号在MATLAB中的表示1.1实验目的1.学会运用MATLAB表示常用连续时间信号的方法2.观察并熟悉这些信号的波形和特性。
1.2实验原理及实例分析在某一时间区间内,除若干个不连续点外,如果任意时刻都可给出确定的函数值,则称该信号为连续时间信号,简称为连续信号。
从严格意义上讲,MA TLAB数值计算的方法并不能处理连续时间信号。
然而,可利用连续时间信号在等时间间隔点的取样值来近似表示连续信号,即当取样时间间隔足够小时,这些离散样值能够被MATLAB处理,并且能较好地近似表示连续信号。
MA TLAB提供了大量生成基本信号的函数。
比如常用的指数信号、正余弦信号等都是MA TLAB的内部函数。
例如: 1.正弦信号f=3sin(πt+π/2) f=3*sin(pi*t+π/2)2.实指数信号f= 2e4t f= 2*exp(4*t)3. 复指数信号f= 2e(4+j5)t f= 2*exp((4+5*j)*t)例题k=2;w=2*pi;phi=pi/4;t=0:0.01:3;ft=k*sin(w*t+phi);plot(t,ft),grid on;axis([0,3,-2.2,2.2])title('正弦信号')t=-1:0.01:3;f= (t>=0);plot(t,f)axis([-1,3,-0.2,1.2])title('单位阶跃信号')编程练习1.31.利用MA TLAB命令画出下列连续信号的波形图(1)k=2;w=3;phi=pi/4;t=0:0.01:3;ft=k*cos(w*t+phi);plot(t,ft),grid on;axis([0,3,-2.2,2.2])(2)t=0:0.01:5;g=(t>=0);f=(2+exp(-t)).*gplot(t,f)axis([-0.3,5,2,3.2])(3)k=(t>=0);w=(t>=1);f=t.*(k-w);plot(t,f);t(0:0.01:3);axis([-0.1,3,-0.3,2])(4)x=(t>=0);y=(t>=2);f=(1+cos(pi*t)).*(x-y); plot(t,f);t=0:0.1:3;axis([-0.2,3,-0.1,3])2.利用MA TLAB 命令画出下列复信号的实部,虚部,模和幅角(1)e t j t f )4(2)(π+=f=2*exp(j*(t+pi/4)) ;title('复指数函数实部')subplot(2,2,2),plot(t,imag(f)),grid on ,title('复指数函数虚部')subplot(2,2,3),plot(t,abs(f))grid on ,title('复指数函数的模')subplot(2,2,4),plot(t,angle(f))grid on ,title('复指数函数的辐角')051015复指数函数实部051015复指数函数虚部051015复指数函数的模051015复指数函数的辐角。
信号分析与处理实验MATLAB
3、系统分析与滤波
实验目的:掌握在已知系统函数或微分(差分)方程时, 分析时域响应、频率响应、系统稳定性的方法。
实验指导:实验教材第二篇之实验一、实验二 实验内容:
(1) 连续、离散系统的时域响应与零极点分析; (2) 连续系统的频率响应特性(幅度、相位); (3) 离散系统的频率响应特性(幅度、相位); (4) 教材实验内容(P58)之4、5题(filter滤波)。
[N,Wn]=buttord(Wp,Ws,Rp,Rs,'s'); %确定butterworth 的最小介数N和频率参数Wn
[z,p,k]=buttap(N); 参数
%设计模拟低通原型的零极点增益
[bp,ap]=zp2tf(z,p,k); %将零极点增益转换成分子分母参 数
[bs,as]=lp2lp(bp,ap,Wn*pi*Fs);%将低通原型转换为模拟 低通
2. 创建Chebyshev I型滤波器原型:[z,p,k]=cheblap(N,rp); 3. 表达形式从零极点增益形式转换成状态方程形式:
[A, B, C, D]=zp2ss(z,p,k); 4. 把模拟低通滤波器原型转换成模拟低通滤波器:
[At, Bt, Ct, Dt]=lp2lp(A, B, C, D, Wn); 5. 表达形式从状态方程形式转换成传递函数形式:
(3) 运用最小阶数N产生模拟滤波器原型,模拟低通滤波器的创建 函数有:buttap, cheb1ap, cheb2ap, ellipap等;
(4) 运用固有频率Wn把模拟低通滤波器原型转换成模拟低通、高 通、带通、带阻滤波器,可分别用函数lp2lp、lp2hp, lp2bp, lp2bs;
(5) 运用冲激响应不变法或双线性变换法把模拟滤波器转换成数字 滤波器,分别用函数impinvar和bilinear实现。
信号处理matlab1
连续系统冲激响应和阶跃响应求解
MATLAB源程序设计如下:
wp1=650;wp2=850;ws1=700;ws2=800;rp=0.1;rs=50;Fs=2000;
wp=[wp1,wp2]/(Fs/2);ws=[ws1,ws2]/(Fs/2); %利用Nyquist频率频率归一化
例 设计一个在通带内的最大衰减为3 dB,在阻带内的最小衰 减为40 dB的4阶低通模拟椭圆滤波器原型。
MATLAB程序如下: n=4; rp=3; rs=40; [z, p, k]=ellipap(n, rp, rs); [b, a]=zp2tf(z, p, k); w=logspace(-1, 1); freqs(b, a)
sinc(t) y = rectpuls(t,width) y = tripuls(t, width,skew)
周期信号:正弦信号,周期方波
ex1. 产生一个幅度为2,频率为4Hz,相位为 p / 6 的正弦信号
A=2; f=4; phi=pi/6; w0=2*pi*f; t=0:0.01:1; x=A*sin(w0*t+ph字低通滤波器的幅度特性
冲激响应不变法
1. 冲激响应不变法设计IIR数字滤波器的基本原理:
h(n) ha (t) tnT
2.MATLAB信号处理工箱中的专用函数impinvar( ): 格式:[BZ,AZ] =impinvar(B,A,Fs) 功能:把具有[B,A]模拟滤波器传递函数模型转换成采样频率为Fs(Hz)的数字滤波器的 传递函数模型[BZ,AZ]。采样频率Fs的默认值为Fs=1。
用MATLAB实现常用的连续时间信号及其时域运算
用MATLAB实现常用的连续时间信号及其时域运算信息与通信工程学院通信133班卢承慧一.引言1.要求:1.1用MATLAB语言产生连续时间信号1.2对连续时间信号进行时域运算2.任务:①绘制用于产生以下信号的通用程序,要求对于任意给定的参数都能实现所要求的信号。
调试并运行这些程序,具体产生由指导教师制定的信号并绘制信号波形。
t );a. f(t)=δ(t-t )。
b. f (t) = Au(t-②已知信号波形如图7.6所示,使用MATLAB语言求出下列信号的表达式并绘制出各信号波形。
a.f(-t);b.f(t-2);c.f(1-2t)。
图7.6任务②中的f (t )3.思考题编制一通用程序用于产生信号)()cos()(0t t u t Ae t f at -=-ω,要求对于任意给定的参数都能实现所要求的信号。
二.基本原理1.1连续时间信号如果在所讨论的时间间隔内,除若干个不连续点之外,对于任意时间值都可以给出确定的函数值,此信号就称为连续信号。
从严格意义上来讲,MATLAB 不能处理连续时间信号。
在MATLAB 中,使用连续时间信号在等时间间隔点的样值来近似表示连续时间信号的。
当取样时间间隔足够小时,这些离散的样值就能较好的近似出连续时间信号。
由于在MATLAB 中,矩阵的元素个数是有限的,因此MATLAB 无法表示无限序列。
MATLAB 的绘图命令有很多种,其中比较常用的绘制连续时间信号的绘图命令有“plot ”,“stairs ”,“ezplot ”等。
“plot ”适用于绘制平滑的曲线,而“stairs ”适合于绘制具有阶跃形式的图形,“ezplot ”只能用于符号函数的绘图。
1.2单位阶跃信号单位阶跃信号的波形图如图1所示,通常以符号u (t )表示⎩⎨⎧><=)0( 1)0(0)(t t t u在跳变点t=0处,函数未定义,或在t=0处规定函数值u (0)=21。
图1用MATLAB 实现单位阶跃信号%t1:起始时刻;t2:终止时刻;t0:跳变时刻 function u(t1,t0,t2)t=t1:0.01:t2; %步长值越小,图形越精确n=length(t); tt=t0:0.01:t2; n1=length(tt);x=[zeros(1,n-n1),ones(1,n1)]; %产生单位阶跃信号 stairs(t,x),grid on title('单位阶跃信号')axis([t1 t2 -0.2 1.1]) %为方便波形顶部避开图 框,改变图框坐标1.3单位冲激信号单位冲激信号是持续时间无穷小、瞬间幅度无穷大、涵盖面积恒1的理想信号。
几种简单连续信号的matlab实现
连续信号及其MATLAB实现(原创)连续信号又称为模拟信号,其信号存在于整个时间范围内,包括单位冲激信号,单位阶跃信号,斜坡信号,实指数信号,正弦信号,指数调制正弦信号,等等。
以下我们将这几种常见的连续信号用MATLAB实现。
1、单位冲激信号【例1】t=1/A=1/50时,单位脉冲δ(t)的MATLAB实现程序如下:clear allt1=-0.5:0.001:1;K=3;n1=length(t1);u=zeros(1,n1);t2=-0.5:0.001:0;n2=length(t2);u(n2)=K;plot(t1,u)2、任意函数【例2】脉冲序列:f(n)=0.4δ(n-2)+0.8δ(n-1)+1.2δ(n)+1.5δ(n+1)+1.0δ(n+2)+0.7δ(n+3),其MATLAB实现程序如下:clear allt=-2:1:3;N=length(t);x=zeros(1,N);x(1)=0.4;x(2)=0.8;x(3)=1.2;x(4)=1.5;x(5)=1.0;x(6)=0.7;stem(t,x)axis([-2.2 3.2 0 1.7])3、单位阶跃函数【例3】单位阶跃函数的MATLAB实现程序:clear allt=-0.5:0.001:1;t0=0;u=stepfun(t,t0);plot(t,u)axis([-0.6 1 -0.2 1.2])4、斜坡函数【例4】斜坡函数:g(t)=3(t-1),其MATLAB实现程序如下:clear allt=0:0.001:3;B=3;t0=1;u=stepfun(t,t0);n=length(t);for i=1:nu(i)=B*u(i)*(t(i)-t0);endplot(t,u)axis([-0.2 3.1 -0.2 6.2])5、实指数函数【例5】实指数函数:f(t)=3exp(0.5t),其实现程序:clear allt=0:0.001:3;B=3;A=3;a=0.5;u=A*exp(a*t);plot(t,u)6、正弦函数【例6】正弦函数:幅度A=3,频率f=5,相移=1,其实现程序如下:clear allt=-0.5:0.001:1;A=3;f=5;fai=1;u=A*sin(2*pi*f*t+fai);plot(t,u)7、指数调制正弦函数【例7】指数调制正弦函数:f(t)=3exp(0.5t)cos(10πt-1),其MATLAB实现程序如下:clear allt=0:0.001:2.5;A=3;a=0.5;f=5;fai=1;u1=A*exp(a*t);u2=sin(2*pi*f*t+fai);u12=u1.*u2;t0=1;u3=stepfun(t,t0);u=u12.*u3;plot(t,u)。
matlab常见信号分类和观察实验报告思考题
实验报告:Matlab常见信号分类和观察1. 背景Matlab是一种功能强大的数学软件,广泛应用于科学计算、数据分析和信号处理等领域。
信号是Matlab中的一个重要概念,在许多应用中起到了关键作用。
本实验旨在通过对常见信号的分类和观察,加深对Matlab信号处理能力的理解和应用。
2. 分析在信号处理中,常见的信号可以分为以下几类:2.1 时域信号时域信号是指信号的数值随时间变化的情况。
常见的时域信号有周期信号、非周期信号、连续信号和离散信号等。
2.1.1 周期信号周期信号是指具有重复模式的信号,其数值在一定时间间隔内重复出现。
周期信号可以用正弦函数、方波函数等进行描述。
在Matlab中,可以使用sin函数生成正弦信号,使用square函数生成方波信号。
2.1.2 非周期信号非周期信号是指没有重复模式的信号,其数值在任意时间段内不会重复出现。
非周期信号可以用脉冲函数、指数函数等进行描述。
在Matlab中,可以使用dirac函数生成单位冲激信号,使用exp函数生成指数衰减信号。
2.1.3 连续信号连续信号是指信号在任意时间段内都有定义。
连续信号可以用数学函数进行描述,如正弦函数、多项式函数等。
在Matlab中,可以使用数学函数表达式生成连续信号。
2.1.4 离散信号离散信号是指信号只在某些离散时间点上有定义。
离散信号可以用序列进行描述,如脉冲序列、阶跃序列等。
在Matlab中,可以使用数组生成离散信号。
2.2 频域信号频域信号是指信号在频率上的特性。
频域信号可以通过对时域信号进行傅里叶变换得到。
在Matlab中,可以使用fft函数进行傅里叶变换。
3. 实验过程和结果3.1 生成信号首先,我们可以通过Matlab提供的函数生成不同类型的信号。
例如,我们可以生成一个正弦信号:t = 0:0.01:10; % 时间范围为0到10,步长为0.01f = 1; % 正弦信号的频率为1HzA = 1; % 正弦信号的振幅为1x = A * sin(2*pi*f*t); % 生成正弦信号3.2 绘制信号图像接下来,我们可以使用Matlab的绘图函数将生成的信号可视化。
使用MATLAB产生各种常见的连续信号
使用MATLAB生成各种常见的连续信号%--------------------------------------指数衰减信号--------------------------------------% % 幅值为5,频率为20Hz,衰减系数为-10的指数衰减正弦信号.% 首先产生一个可调正弦信号,再想办法产生指数衰减信号,再信号乘,% 则得到指数衰减的正弦信号.%---------------------------------------------------------------------------------------% clear;clc;A = 5; % 正弦信号的幅值Fs = 1000; % 采样频率N = 1024; % 采样点数dt = 1/Fs; % 时间间隔t0 = 0:dt:(N-1)*dt; % 时间向量xt1 = exp(-10*t0); % 指数信号xt2 = 5*sin(2*pi*20*t0); %正弦信号xt = xt1.*xt2; %正弦指数衰减信号plot(t0,xt) % 绘图axis tight % 使坐标轴与数据匹配显示title('指数衰减信号 X = exp(-10*t).*5*sin(2*\pi*20*t)'); % 显示标题xlabel('t/s','FontName','New Times Roman','FontSize',11); % x轴标注ylabel('幅值/A','FontName','New Times Roman','FontSize',11); % y轴标注%-------------------------------------矩形脉冲信号---------------------------------------% % 幅值为10,脉宽为1,时间范围0~6s的矩形脉冲信号.clear;clc;A = 10; % 脉冲信号的幅值W = 1; % 脉冲信号脉宽t = 0:0.001:6; % 时间向量xt = 10*rectpuls(t,W); % 生成脉冲信号plot(t,xt) % 绘图axis([0 max(t) 0 A*1.1]) % 数据与坐标轴匹配显示title('矩形脉冲信号','FontName','New Times Roman','FontSize',11); % 显示标题xlabel('t/s','FontName','New Times Roman','FontSize',11); % x轴标注ylabel('X(t)','FontName','New Times Roman','FontSize',11); % y轴标注%----------------------------------------正弦信号----------------------------------------% % 幅值为5,频率为10Hz的正弦信号.clear;clc;A = 5; % 正弦信号幅值Fs = 1000; % 采样频率dt = 1/Fs; % 时间间隔N = 1024; % 采样点数t = 0:dt:(N-1)*dt; % 时间向量xt = 5*sin(2*pi*10*t); % 生成函数plot(t,xt); % 绘图axis tight % 数据与坐标轴匹配显示grid on % 显示网格线title('\it正弦信号 X=5*sin(20*\pi*t)','FontName','黑体','FontSize',11); % 显示标题% set(gca,'XTickLabel',{'-pi/8','-pi/16','-pi/32','-pi/64','0',...% 'pi/64','pi/32','pi/16','pi/8'})xlabel('时间','FontName','黑体','FontSize',11); % x轴标注ylabel('X(t)','FontName','New Times Roman','FontSize',11); % y轴标注%----------------------------------------方波信号----------------------------------------% % 幅值为2.5,频率为20Hz,占空比(高电平时间占整个周期信号时间的比)为50%的方波信号,并绘制方波信号的频谱图.clear;clc;A = 2.5; % 方波信号的幅值dy = 50; % 方波信号占空比t = 0:0.0001:1; % 时间向量xt = A*square(2*pi*10*t,dy); % 生成方波信号subplot(211)plot(t,xt,'m') % 绘图axis([0 max(t) -3 3]) % 使数据与坐标轴匹配显示title('方波信号','FontName','New Times Roman','FontSize',10) % 显示标题xlabel('时间/t','FontName','New Times Roman','FontSize',10); % x轴标注ylabel('幅值','FontName','New Times Roman','FontSize',10); % y轴标注%-------------------------------------方波信号幅值谱-------------------------------------% % 绘制方波信号的幅值频谱图.n = 1:25;A(n) = 4*2.5./((2*n-1)*pi);subplot(212)stem((2*n-1)*pi,A,'o','MarkerFaceColor','c','MarkerEdgeColor','r',...'MarkerSize',5); %绘制出幅值频谱图(因为幅值An和相角只有在w = nw...等一系列离散点处才存在,故周期信号的频谱是离散谱)axis([0 140 0 4]);title('方波信号频谱图','FontName','New Times Roman','FontSize',11); % 显示标题xlabel('角频率/n\omega','FontName','New Times Roman','FontSize',11); % x轴标注ylabel('幅度','FontName','New Times Roman','FontSize',11); % y轴标注%---------------------------------------准周期信号---------------------------------------% % 使用两个幅值为1的正弦信号构成一个准周期信号.% 将频率为3Hz、初相为pi/11和频率为7Hz、初相为pi/5的周期信号叠加,从而得到一个准周期信号. clear;clc;A1 = 2; % 正弦信号1幅值A2 = A1; % 正弦信号2幅值f1 = 3; % 正弦信号1频率f2 = sqrt(2); % 正弦信号2频率t1 = -pi:0.0001:pi; % 时间向量1x1 = A1*sin(2*pi*f1*t1+pi/11); % 正弦信号1t2 = -pi:0.0001:pi; % 时间向量2x2 = A2*sin(2*pi*f2*t2+pi/5); % 正弦信号2t = t1;xt = x1 + x2; % 信号叠加plot(t,xt) % 绘图axis([-pi pi -(A1+A2)*1.1 (A1+A2)*1.1]) % 使数据与坐标轴匹配显示title('准周期信号','FontName','黑体','FontSize',11); % 显示标题xlabel('时间/t','FontName','黑体','FontSize',11); % x轴标注ylabel('幅值/A','FontName','黑体','FontSize',11); % y轴标注%---------------------------------------白噪声信号---------------------------------------% % 幅值范围为-3~3的白噪声信号.clear;clc;A = 3; % 白噪声信号的幅值x = rand(1,128); % 产生随机白噪声信号值mean_x = mean(x); % 求取白噪声信号的均值y = 2*A*(x-mean_x); % 白噪声信号去均值plot(y); % 绘制白噪声信号图axis tight % 使数据与坐标轴匹配显示ylim([-A*1.1 A*1.1]); % 设置y坐标轴范围title('\it白噪声信号','FontName','黑体','FontSize',11); % 显示标题xlabel('时间/t','FontName','黑体','FontSize',11); % x轴标注ylabel('幅值/A','FontName','黑体','FontSize',11); % y轴标注%---------------------------------------------------------------------------------------%[相关曲线图]。
MATLAB在信号和系统中的应用举例
%把各部分分式对应的时域分量相加
MATLAB在信号和系统中的应用举例
图 9-1 例9-1-1中x1、 x2、 x3对应的四种波形
MATLAB在信号和系统中的应用举例
【例 9-1-2】 编写求任意高阶连续常系数线性系统冲击响 应的程序。
解: 这个问题在第4章4.3.5节介绍多项式函数库时已经打下 基础,在第7章机械振动的例7-3-1又讨论过二阶常系数线性微分 方程的解法,读者可以先看懂那些例题的解法,再看本题。任意 阶次的连续线性系统可用下列线性常微分方程表述:
if k==1 dt=input(′dt= ′); tf=input(′tf= ′); %设定时间数组 t=0∶dt∶tf; h=zeros(1,length(t)); %h的初始化 for i=1∶length(a)-1 %根的数目等于a的长度减1 h = h+ r(i)*exp(p(i)*t); %叠加各根分量
y t0
p12C1
p22C2
pn2Cn
D2y0
MATLAB在信号和系统中的应用举例
初始条件数应该和待定系数的数目相等,构成一个确定 C1、 …、 Cn的线性代数方程组,写成
V*C=Y0
其解为
C=V-1Y0
其中C=[C1,C2,…,Cn]′; Y0=[y0,Dy0,…,Dny0]′
1 1 1
p1
end plot(t,h),grid else,
end
MATLAB在信号和系统中的应用举例
◆ 程序运行结果 例如,给出系统传递函数为
H(s)
s2 7s 1
s(s 1)(s 2)(s 5)
求冲击响应。
根据程序提问依次输入:
a=poly([0,-1,-2,-5])
实验一MATLAB编程环境及常用信号的生成及波形仿真
实验⼀MATLAB编程环境及常⽤信号的⽣成及波形仿真实验⼀ MATLAB 编程环境及常⽤信号的⽣成及波形仿真⼀、实验⽬的1、学会运⽤Matlab 表⽰常⽤连续时间信号的⽅法2、观察并熟悉这些信号的波形和特性:3、实验内容:编程实现如下常⽤离散信号:单位脉冲序列,单位阶跃序列,矩形序列,实指数序列,正弦序列,复指数序列;⼆、实验原理及实例分析2、如何表⽰连续信号?从严格意义上讲,Matlab 数值计算的⽅法不能处理连续时间信号。
然⽽,可利⽤连续信号在等时间间隔点的取样值来近似表⽰连续信号,即当取样时间间隔⾜够⼩时,这些离散样值能被Matlab 处理,并且能较好地近似表⽰连续信号。
3、Matlab 提供了⼤量⽣成基本信号的函数。
如:(1)指数信号:K*exp(a*t)(2)正弦信号:K*sin(w*t+phi)和K*cos(w*t+phi)(3)复指数信号:K*exp((a+i*b)*t)(4)抽样信号:sin(t*pi)注意:在Matlab 中⽤与Sa(t)类似的sinc(t)函数表⽰,定义为:)t /()t (sin )t (sinc ππ=(5)矩形脉冲信号:rectpuls(t,width)(6)周期矩形脉冲信号:square(t,DUTY),其中DUTY 参数表⽰信号的占空⽐DUTY%,即在⼀个周期脉冲宽度(正值部分)与脉冲周期的⽐值。
占空⽐默认为0.5。
(7)三⾓波脉冲信号:tripuls(t, width, skew),其中skew 取值范围在-1~+1之间。
(8)周期三⾓波信号:sawtooth(t, width)(9)单位阶跃信号:y=(t>=0)常⽤的图形控制函数1)学习clc, dir(ls), help, clear, format,hold, clf控制命令的使⽤和M⽂件编辑/调试器使⽤操作;2)主函数函数的创建和⼦程序的调⽤;3)plot,subplot, grid on, figure, xlabel,ylabel,title,hold,title,Legend,绘图函数使⽤;axis([xmin,xmax,ymin,ymax]):图型显⽰区域控制函数,其中xmin为横轴的显⽰起点,xmax为横轴的显⽰终点,ymin为纵轴的显⽰起点,ymax为纵轴的显⽰终点。
Matlab的连续信号生成及时频域分析
基于Matlab的连续信号生成及时频域分析一、实验目的1、通过实验使学生掌握matlab表示信号的方法;2、通过实验掌握基于matlab的连续时间信号与系统的时频域分析方法。
二、实验要求1、通过这次实验,学生应能掌握matlab软件信号表示与系统分析的常用方法。
2、通过实验,学生应能够对连续信号与系统的时频域分析方法有更全面的认识。
三、实验所需环境1、pc机;2、Matlab5.3以上版本软件。
四、实验内容周期连续信号1) 正弦信号:产生一个幅度为2,频率为4Hz,相位为π/6的正弦信号t=0:0.0001:1;y=2*sin(8*pi*t+pi/6);plot(t,y);xlabel('t');ylabel('y(t)')title('ÕýÏÒÐźÅ:y=2sin(8¦Ðt+¦Ð/6)');2) 周期方波:产生一个幅度为1,基频为3Hz,占空比为20%的周期方波。
t=0:0.0001:2.5;y=square(6*pi*t,20);plot(t,y);axis([0,2.5,-1.5,1.5]);xlabel('t');ylabel('y(t)')title('·½²¨ÐźÅ');3) 阶跃信号;t=-2:0.0001:6;y=[zeros(1,20000),ones(1,60001)]; plot(t,x);axis([-2,6,0,1.5]);xlabel('t');ylabel('y(t)')title('½×Ô¾ÐźÅ');4) 指数信号:产生一个时间常数为1的指数信号;t=0:0.0001:50;指数信号51015202530354045500.511.5tx(t)x=1*exp(-0.1*t);plot(t,x);axis([0,50,0,1.5]);xlabel('t');ylabel('x(t)')title('½×Ô¾ÐźÅ');5) 矩形脉冲信号:产生高度为1、宽度为1、关于t=0对称的矩形脉冲信号;产生高度为1、宽度为w、关于t=0对称的矩形脉冲信号;产生高度为1、宽度为3、延时为2s的矩形脉冲信号。
实验四 信号与系统仿真—连续信号在Matlab中的表示
电子信息工程系实验报告课程名称: 计算机仿真技术实验项目名称:实验四 信号与系统仿真—连续信号在Matlab 中的表示实验时间:2011-11-1 班级:电信092 姓名:XXX 学号:910706201一、实 验 目 的:学会运用MATLAB 表示常用连续时间信号的方法;观察并熟悉这些信号的波形和特性。
二、实 验 环 境:硬件:PC 机,PII 以上 CPU ,内存1G ;软件:Matlab7.1三、实 验 原 理:在某一时间区间内,除若干个不连续点外,如果任意时刻都可以给出确定的函数值,则称该信号为连续时间信号,简称为连续信号。
从严格意义上讲,MATLAB 数值计算的方法并不能处理连续时间信号。
然而,可利用连续信号在等时间间隔点的取样值来近似表示连续信号,即当取样时间间隔足够小时,这些离散样值能够被MATLAB 处理,并且能较好地近似表示连续信号。
MATLAB 提供了大量生成基本信号的函数。
比如常用的指数信号、正余弦信号等都是MATLAB 的内部函数。
为了表示连续时间信号,需定义某一时间或自变量的范围和取样时间间隔,然后调用该函数计算这些点的函数值,最后画出其波形图。
四、实 验 内 容 及 过 程:1、利用MATLAB 命令画出下列连续信号的波形图。
(1)2cos(3/4)t π+为画出2cos(3/4)t π+连续信号的波形图编写如下程序代码:clear ;clc;K=2;w=3;phi=pi/4;t=0:0.01:3;ft = K.*cos(w.*t+phi);plot(t,ft);grid onaxis([0,3,-2.2,2.2]);title('余弦信号');(2)(2)()te u t --先在MATLAB 的工作目录下创建uCT 的M 文件,其MATLAB 源文件为:function f = uCT(t)f = (t>=0);保存后,就可调用该函数为画出(2)()te u t --连续信号的波形图编写如下程序代码:clc;clear;K = -1; a = -1;t = 0:0.01:3;ft = [2+K*exp(a*t)].*uCT(t);plot(t,ft);grid onaxis([0,3,0,2.2]);title('(2-exp(-t))u(t)信号'); (3)[()(1)]t u t u t --为画出(2)()te u t --连续信号的波形图编写如下程序代码:clear;clc;t = -3: 0.01:3;ft = [uCT(t)-uCT(t-1)].*t;plot(t,ft);grid onaxis([-3,3 -0.2,1.2]);title('t[u(t)-u(t-1)]信号'); (4)[1cos()][()(2)]t u t u t π+--为画出[1cos()][()(2)]t u t u t π+--连续信号的波形图编写如下程序代码:clear;clc;t = -3: 0.01: 3;ft = [uCT(t)-uCT(t-2)].*[1+cos(pi.*t)];plot(t,ft);grid onaxis([-3,3 -0.2,2]);title('[1+cos(pi*t)]*[u(t)-u(t-2)]信号');2、利用MATLAB 命令产生幅度为1、周期为1、占空比为0.5的一个周期矩形脉冲信号。
常见连续信号的MATLAB表示
实验名称:常见连续信号的MATLAB表示报告人:姓名班级学号一、实验目的1、熟悉常见连续时间信号的意义、特性及波形;2、学会使用MATLAB表示连续时间信号的方法;3、学会使用MATLAB绘制连续时间信号的波形。
二、实验内容及运行结果1、运行以上5个例题的程序,保存运行结果。
2、已知信号()t f的波形如下图所示,试用MA TLAB绘出满足下列要求的信号波形。
(1)()tf-;(2)()2-t f;(3)()atf(其中a的值分别为21=a和2=a);(4)⎪⎭⎫⎝⎛+121tf。
例题1程序如下:>> t1=-10:0.5:10;>> f1=sin(t1)./t1;>> figure(1)>> plot(t1,f1)>> xlabel('取样间隔p=0.5');>> title('f(t)=Sa(t)=sin(t)/t');>> t2=-10:0.1:10;>> f2=sin(t2)./t2;>> figure(2)>> plot(t2,f2)>> xlabel('取样间隔p=0.1');>> title('f(t)=Sa(t)=sin(t)/t');运行结果如下:f(t)=Sa(t)=sin(t)/t取样间隔p=0.5f(t)=Sa(t)=sin(t)/t取样间隔p=0.1程序如下:>> syms t>> f=sin(t)/t;>> ezplot(f,[-10,10])运行结果如下:sin(t)/tt例题3:程序如下:>> t=-1:0.01:4;>> t0=0;>> ut=stepfun(t,t0);>> plot(t,ut)>> axis([-1,4,-0.5,1.5])运行结果如下:程序如下:>> t=-4:0.01:4;>> t1=-2;>> u1=stepfun(t,t1); >> t2=2;>> u2=stepfun(t,t2); >> g=u1-u2;>> plot(t,g)>> axis([-4,4,-0.5,1.5])运行程序如下:例题五程序如下:>> t=-5:0.01:5;>> f=sign(t);>> figure(1);plot(t,f); >> axis([-5,5,-1.5,1.5]) >> s=1/2+1/2*f;>> figure(2);plot(t,s); >> axis([-5,5,-0.5,1.5])运行程序如下:第二题绘制f(t)的波形图,程序如下: >> t=0:0.01:5; %定义时间样本向量>> t1=-1; %指定信号在t1=-1该时刻发生突变 >> u1=stepfun(t,t1); %产生单位阶跃信号,u1 >> t2=1; %指定信号在t2=1该时刻发生突变 >> u2=stepfun(t,t2) %产生单位阶跃信号,u2 >> t3=-2; %指定信号在t3=-2该时刻发生突变 >> u3=stepfun(t,t3); %产生单位阶跃信号,u3 >> t4=2; %指定信号在t4=2该时刻发生突变 >> u4=stepfun(t,t4); %产生单位阶跃信号,u4>> g=(u1-u2)+(u3-u4); %表示门函数,其中,u1-u2表示门宽为2的门信号,u3-u4表示门宽为4的门信号>> plot(t,g) %绘制门函数的波形>> axis([0,5,0,5]) %设定坐标轴范围0<x<5 ,0<y<5 >> title('f(t)'); %备注波形的标题为f(t) >> xlabel('t'); %备注x 轴变量为t >> ylabel('f(t)') %备注y 轴变量为f(t) 运行结果如下:(1)f(-t)程序如下:>> t=-5:0.01:5; %定义时间样本向量>> t1=-1; %指定信号在t1=-1该时刻发生突变 >> u1=stepfun(t,t1); %产生单位阶跃信号,u1 >> t2=1; %指定信号在t2=1该时刻发生突变 >> u2=stepfun(t,t2); %产生单位阶跃信号,u2 >> t3=-2; %指定信号在t3=-2该时刻发生突变 >> u3=stepfun(t,t3); %产生单位阶跃信号,u3f(t)tf (t )>> t4=2; %指定信号在t4=2该时刻发生突变 >> u4=stepfun(t,t4); %产生单位阶跃信号,u4>> g=(u1-u2)+(u3-u4); %表示门函数,其中,u1-u2表示门宽为2的门信号,u3-u4表示门宽为4的门信号>> plot(t,g) %绘制门函数的波形>> axis([-5,0,0,5]) %设定坐标轴范围-5<x<0 ,0<y<5 >> title('f(-t)') %备注波形的标题为f(-t) >> ylabel('f(t)') %备注y 轴变量为f(t) 运行程序如下:(2)f(t -2) 程序如下:>> t=-5:0.01:5; %定义时间样本向量>> t1=-1; %指定信号在t1=-1该时刻发生突变 >> u1=stepfun(t,t1); %产生单位阶跃信号,u1 >> t2=1; %指定信号在t2=1该时刻发生突变 >> u2=stepfun(t,t2); %产生单位阶跃信号,u2 >> t3=-2; %指定信号在t3=-2该时刻发生突变 >> u3=stepfun(t,t3); %产生单位阶跃信号,u3 >> t4=2; %指定信号在t4=2该时刻发生突变 >> u4=stepfun(t,t4); %产生单位阶跃信号,u4>> g=(u1-u2)+(u3-u4); %表示门函数,其中,u1-u2表示门宽为2的门信号,u3-u4表示门宽为4的门信号>> plot(t+2,g) %绘制门函数的波形,t 向右平移两个单位 >> axis([0,5,0,5]) %设定坐标轴范围-5<x<0 ,0<y<5 >> title('f(t -2)') %备注波形的标题为f(t -2) 运行结果如下:f(-t)f (t )f(t-2)(3)f(at)当a=1/2时,f(1/2t)程序如下:>> t=-5:0.01:5; %定义时间样本向量>> t1=-1; %指定信号在t1=-1该时刻发生突变>> u1=stepfun(t,t1); %产生单位阶跃信号,u1>> t2=1; %指定信号在t2=1该时刻发生突变>> u2=stepfun(t,t2); %产生单位阶跃信号,u2>> t3=-2; %指定信号在t3=-2该时刻发生突变>> u3=stepfun(t,t3); %产生单位阶跃信号,u3>> t4=2; %指定信号在t4=2该时刻发生突变>> u4=stepfun(t,t4); %产生单位阶跃信号,u4>> g=(u1-u2)+(u3-u4); %表示门函数,其中,u1-u2表示门宽为2的门信号,u3-u4表示门宽为4的门信号>> plot(2*t, g) %绘制门函数的波形,t增大一倍,>> axis([0,5,0,5]) %设定坐标轴范围-5<x<0 ,0<y<5>> title('f(1/2t)') %备注波形的标题为f(1/2t)运行结果如下:f(1/2t)当a=2时,f(2t)的程序如下所示:>> t=-5:0.01:5; %定义时间样本向量>> t1=-1; %指定信号在t1=-1该时刻发生突变>> u1=stepfun(t,t1); %产生单位阶跃信号,u1>> t2=1; %指定信号在t2=1该时刻发生突变>> u2=stepfun(t,t2); %产生单位阶跃信号,u2>> t3=-2; %指定信号在t3=-2该时刻发生突变>> u3=stepfun(t,t3); %产生单位阶跃信号,u3>> t4=2; %指定信号在t4=2该时刻发生突变>> u4=stepfun(t,t4); %产生单位阶跃信号,u4>> g=(u1-u2)+(u3-u4); %表示门函数,其中,u1-u2表示门宽为2的门信号,u3-u4表示门宽为4的门信号>> plot(1/2*t, g) %绘制门函数的波形,t缩小一倍>> axis([0,5,0,5]) %设定坐标轴范围-5<x<0 ,0<y<5>> title('f(2t)') %备注波形的标题为f(2t)运行程序如图所示:f(2t)(4)f(1/2t+1)程序如下所示:>> t=-5:0.01:5; %定义时间样本向量>> t1=-1; %指定信号在t1=-1该时刻发生突变>> u1=stepfun(t,t1); %产生单位阶跃信号,u1>> t2=1; %指定信号在t2=1该时刻发生突变>> u2=stepfun(t,t2); %产生单位阶跃信号,u2>> t3=-2; %指定信号在t3=-2该时刻发生突变>> u3=stepfun(t,t3); %产生单位阶跃信号,u3>> t4=2; %指定信号在t4=2该时刻发生突变>> u4=stepfun(t,t4); %产生单位阶跃信号,u4>> g=(u1-u2)+(u3-u4); %表示门函数,其中,u1-u2表示门宽为2的门信号,u3-u4表示门宽为4的门信号>> plot(2*(t-1),g) %绘制门函数的波形,t伸展一倍再向左平移2个单位>> axis([-2,3,0,5]) %设定坐标轴范围-2<x<3 ,0<y<5>> title('f(1/2t+1)') %备注波形的标题为f(1/2t+1)运行程序如下:f(1/2t+1)三、讨论与总论通过本次实验,验证了:阶跃信号的时移、反转、尺度变换变换前后端点上的函数值不变,且仅对t进行变换。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用MATLAB生成各种常见的连续信号%--------------------------------------指数衰减信号--------------------------------------% % 幅值为5,频率为20Hz,衰减系数为-10的指数衰减正弦信号.% 首先产生一个可调正弦信号,再想办法产生指数衰减信号,再信号乘,% 则得到指数衰减的正弦信号.%---------------------------------------------------------------------------------------% clear;clc;A = 5; % 正弦信号的幅值Fs = 1000; % 采样频率N = 1024; % 采样点数dt = 1/Fs; % 时间间隔t0 = 0:dt:(N-1)*dt; % 时间向量xt1 = exp(-10*t0); % 指数信号xt2 = 5*sin(2*pi*20*t0); %正弦信号xt = xt1.*xt2; %正弦指数衰减信号plot(t0,xt) % 绘图axis tight % 使坐标轴与数据匹配显示title('指数衰减信号 X = exp(-10*t).*5*sin(2*\pi*20*t)'); % 显示标题xlabel('t/s','FontName','New Times Roman','FontSize',11); % x轴标注ylabel('幅值/A','FontName','New Times Roman','FontSize',11); % y轴标注%-------------------------------------矩形脉冲信号---------------------------------------% % 幅值为10,脉宽为1,时间范围0~6s的矩形脉冲信号.clear;clc;A = 10; % 脉冲信号的幅值W = 1; % 脉冲信号脉宽t = 0:0.001:6; % 时间向量xt = 10*rectpuls(t,W); % 生成脉冲信号plot(t,xt) % 绘图axis([0 max(t) 0 A*1.1]) % 数据与坐标轴匹配显示title('矩形脉冲信号','FontName','New Times Roman','FontSize',11); % 显示标题xlabel('t/s','FontName','New Times Roman','FontSize',11); % x轴标注ylabel('X(t)','FontName','New Times Roman','FontSize',11); % y轴标注%----------------------------------------正弦信号----------------------------------------% % 幅值为5,频率为10Hz的正弦信号.clear;clc;A = 5; % 正弦信号幅值Fs = 1000; % 采样频率dt = 1/Fs; % 时间间隔N = 1024; % 采样点数t = 0:dt:(N-1)*dt; % 时间向量xt = 5*sin(2*pi*10*t); % 生成函数plot(t,xt); % 绘图axis tight % 数据与坐标轴匹配显示grid on % 显示网格线title('\it正弦信号 X=5*sin(20*\pi*t)','FontName','黑体','FontSize',11); % 显示标题% set(gca,'XTickLabel',{'-pi/8','-pi/16','-pi/32','-pi/64','0',...% 'pi/64','pi/32','pi/16','pi/8'})xlabel('时间','FontName','黑体','FontSize',11); % x轴标注ylabel('X(t)','FontName','New Times Roman','FontSize',11); % y轴标注%----------------------------------------方波信号----------------------------------------% % 幅值为2.5,频率为20Hz,占空比(高电平时间占整个周期信号时间的比)为50%的方波信号,并绘制方波信号的频谱图.clear;clc;A = 2.5; % 方波信号的幅值dy = 50; % 方波信号占空比t = 0:0.0001:1; % 时间向量xt = A*square(2*pi*10*t,dy); % 生成方波信号subplot(211)plot(t,xt,'m') % 绘图axis([0 max(t) -3 3]) % 使数据与坐标轴匹配显示title('方波信号','FontName','New Times Roman','FontSize',10) % 显示标题xlabel('时间/t','FontName','New Times Roman','FontSize',10); % x轴标注ylabel('幅值','FontName','New Times Roman','FontSize',10); % y轴标注%-------------------------------------方波信号幅值谱-------------------------------------% % 绘制方波信号的幅值频谱图.n = 1:25;A(n) = 4*2.5./((2*n-1)*pi);subplot(212)stem((2*n-1)*pi,A,'o','MarkerFaceColor','c','MarkerEdgeColor','r',...'MarkerSize',5); %绘制出幅值频谱图(因为幅值An和相角只有在w = nw...等一系列离散点处才存在,故周期信号的频谱是离散谱)axis([0 140 0 4]);title('方波信号频谱图','FontName','New Times Roman','FontSize',11); % 显示标题xlabel('角频率/n\omega','FontName','New Times Roman','FontSize',11); % x轴标注ylabel('幅度','FontName','New Times Roman','FontSize',11); % y轴标注%---------------------------------------准周期信号---------------------------------------% % 使用两个幅值为1的正弦信号构成一个准周期信号.% 将频率为3Hz、初相为pi/11和频率为7Hz、初相为pi/5的周期信号叠加,从而得到一个准周期信号. clear;clc;A1 = 2; % 正弦信号1幅值A2 = A1; % 正弦信号2幅值f1 = 3; % 正弦信号1频率f2 = sqrt(2); % 正弦信号2频率t1 = -pi:0.0001:pi; % 时间向量1x1 = A1*sin(2*pi*f1*t1+pi/11); % 正弦信号1t2 = -pi:0.0001:pi; % 时间向量2x2 = A2*sin(2*pi*f2*t2+pi/5); % 正弦信号2t = t1;xt = x1 + x2; % 信号叠加plot(t,xt) % 绘图axis([-pi pi -(A1+A2)*1.1 (A1+A2)*1.1]) % 使数据与坐标轴匹配显示title('准周期信号','FontName','黑体','FontSize',11); % 显示标题xlabel('时间/t','FontName','黑体','FontSize',11); % x轴标注ylabel('幅值/A','FontName','黑体','FontSize',11); % y轴标注%---------------------------------------白噪声信号---------------------------------------% % 幅值范围为-3~3的白噪声信号.clear;clc;A = 3; % 白噪声信号的幅值x = rand(1,128); % 产生随机白噪声信号值mean_x = mean(x); % 求取白噪声信号的均值y = 2*A*(x-mean_x); % 白噪声信号去均值plot(y); % 绘制白噪声信号图axis tight % 使数据与坐标轴匹配显示ylim([-A*1.1 A*1.1]); % 设置y坐标轴范围title('\it白噪声信号','FontName','黑体','FontSize',11); % 显示标题xlabel('时间/t','FontName','黑体','FontSize',11); % x轴标注ylabel('幅值/A','FontName','黑体','FontSize',11); % y轴标注%---------------------------------------------------------------------------------------%[相关曲线图]。