首页 > 编程知识 正文

基本信号在matlab中的表示和运算,线性调频信号matlab

时间:2023-05-05 08:03:14 阅读:141029 作者:3514

目录一、实验目的二、实验器材三、实验原理1. MATLAB中信号的表示(1)连续时间信号)2)离散时间信号)2)信号的基本运算)1)信号的加法)2)信号的乘法)3)信号的反相)4)信号的卷积)5)系列的相演示1 .基本信号波形的可视化(1)正弦波和容易分辨的月饼) Sinc函数的生成)3)指数函数波形的生成)4)单位阶跃信号)5)单位脉冲系列)6)指数系列)发生高度1,宽度4,延迟2s的矩形脉冲信号)8)发生宽度

一.实验目的

熟悉MATLAB工作环境和基本操作命令;

掌握MATLAB中信号的显示方法

掌握MATLAB中信号的基本运算

二.实验器材计算机、MATLAB软件

三、实验原理1. MATLAB中的信号表示在MATLAB中一般用矢量表示信号,但由于MATLAB的强大图形处理功能为实现信号的可视化提供了强大的工具,所以使用MATLAB的描绘命令来描绘直观的信号波形

)连续时间信号连续时间信号是自变量的可取得范围是连续的,并且对于自变量的所有可取得的值,除了一些连续的点之外,该信号是对应于所确定的值的信号。 严格意义上,MATLAB并不是处理连续信号,而是以连续信号的等间隔点的样本值近似表示连续信号,在采样时间间隔足够小的情况下,能够以这些离散的样本值良好地近似连续信号。 因此,对于连续时间信号,用两个行向量之和表示,其中向量定义为信号开始时间、结束时间、时间间隔。 向量是在向量定义的时刻连续信号的采样值。 例如,连续时间信号可以用MATLAB语言表示为:

t=-5:0.1:5; f=cos(t;

如果表示在上面的向量中连续的信号,plot命令可以绘制该信号的时域波形。 Plot命令用直线连接点与点之间,如果点与点之间的距离很小,绘制的图形将变为平滑的曲线。 命令如下。 plot(t,f )时,信号的波形如图1-3所示。

图1-3的波形(2)离散时间信号离散时间信号一般由式f ) k表示,其中变量k是整数,表示离散的采样时间。 在MATLAB中表示离散序列f(k )时,也用两个向量表示,一个向量表示自变量k的复盖范围,另一个向量表示序列f )的值。 例如,排列f(k )={ 2,2,2,- 1,3,0,2; k=-2、-1、0、1、2、3、4}可以用MATLAB表示。

k=-2:4; f=[ 2,1,2,- 1,3,0,2 ]

如图1-4所示,可以利用MATLAB函数stem(k,f )来绘制该离散时间序列的波形。

图1-4f(k )波形图2 .信号的基本运算信号的基本运算是指信号的相加、信号的乘法运算、信号的延迟、反转等. 许多复杂的信号是通过简单信号的基本运算获得的。

)1)信号的相加是在相同的定时相加两个或更多的信号。 对于连续的时间信号,两个信号的总数目可以表示为:

y(t )=F1 ) t ) F2(T ) ) ) ) ) ) y(t )=F1 ) t ) F2(T ) )

在MATLAB中,取连续信号的离散值进行相加,所以与离散时间信号的在MATLAB中的计算方法一样,其MATLAB的计算方法为

y=f1 f2

这需要f1和f2的长度相同,位置不对应才能进行加法运算,但变量上的长度不同时,需要根据情况将信号左右填零进行加法运算。

)2)信号的乘法是指在同一时刻将两个或多个信号相乘。 将两个连续时间信号相乘后,其公式如下

y(t )=F1 ) t ) F2(T ) ) ) ) ) ) y(t )=F1 ) t ) F2(T ) )

关于离散时间信号,将其信号f1(k )和f1(k )进行乘法运算是指,对同一时刻两个信号的值进行乘法运算,可以表示如下

y(k )=F1 ) k ) F2 ) k ) )。

那个MATLAB

y=f1.*f2

这里,两个信号的长度也必须相等,如果不相等,则必须使信号的左右为零,才能进行乘法运算。

)3)信号的反转数学描述y(k )=x )-k )其MATLAB是

y=fliplr(x )

)4)信号卷积在MATLAB中,conv )函数可以快速确定两个离散时间信号的卷积和。 调用格式如下。

y=conv(x,h ) ) ) ) )。

其中,调用参数x、h分别为参与卷积运算的两个离散信号,x为包含离散信号非零采样点的行矢量,h为包含离散信号非零采样点的行矢量,矢量y为离散信号非零采样点的所有行矢量由于conv是MATLAB中对离散时间信号求卷积的函数,因此不适用于连续时间信号的卷积积分的形式。

例如:离散时间信号之和的卷积。

步骤如下。

x=[ 1,2,3,4 ]; h=[ 2,1,3 ]; y=conv(x,h )的执行结果如下。

y=2 5 11 17 13 12描绘信号的波形

subplot (1,3,1; stem(x; title (‘x’); subplot (1,3,2 ); s

tem(h); title(‘h(k)’);subplot(1,3,3);stem(y); title(‘y(k)’);

其波形如图1-5所示。

图1-5 离散时间信号卷积和时域波形

由上面例子可以看出,函数conv( )不考虑离散时间信号和的非零样值点的时间序号,也不返回离散时间信号的非零样值点的时间序号。为了完整地表示离散时间信号,我们不仅需要知道卷积的值,还需要知道其值对应的时间序号。由于卷积信号的时域宽带等于和的时域宽带之和减2.其MATLAB生成时间序号的命令如下:

k1=-1:2k2=0:2k=(k1(1)+k2(1)):(k1(end))+k2(length(k2)))

运行结果为
k1 =

-1 0 1 2

k2 =

0 1 2

k =

-1 0 1 2 3 4

根据上面分析,则离散时间信号、以及他们的卷积信号的时域波形如图1-6所示。

图1-6 离散时间信号卷积和时域波形 (5)序列的相关

利用MATLAB函数conv计算连续时间信号的相关。自相关和互相关序列可以直接调用MATLAB函数xcorr来计算。

(6)常用函数

MATLAB为用户提供了能够产生基本矩阵的几个重要的函数如下:

zeros:生成零矩阵。调用格式:zeros(n)或者zeros(4,3)ones:生成全部元素均为1的矩阵。调用格式:ones(n)或者ones(4,3)eye:生成单位矩阵。调用格式:eye(n)或者eye(4,3)rand:生成在[0,1]上均匀分布的随机矩阵。调用格式:rand(n)或rand(4,3)randn:生成均值为0,方差为1的正态分布的随机矩阵。exp:指数函数。sin:正弦函数。调用格式:sin(t)cos:余弦函数rectpule:矩形脉冲信号。调用格式:rectpule(t)或 rectpule(t,w)square:生成方波函数。调用格式:square (w0t)或 square (w0t,DUTY)sawtooth:生成三角波(锯齿波)。 四、示例演示 1.基本信号波形的可视化

利用MATLAB软件的信号处理工具箱(Signal Processing Toolbox)中的专用函数产生信号并绘出波形。

(1)正弦波和听话的月饼

程序如下:

t=0:0.01:3*pi;y1=sin(2*t);y2=cos(2*t); plot(t,y1,t,y2);legend('正弦波','听话的月饼');

(2)产生Sinc函数 t=linspace(-5,5,1024); %t取值的范围f=sinc(t/pi); %产生sinc函数plot(t,f)

(3)产生指数函数波形 x=-2:0.5:2;y=exp(-x);plot(x,y); %连续指数函数hold on;stem(x,y); %离散指数序列

(4)单位阶跃信号 t=-10:10;x=((t-0)>=0);stem(t,x); %单位阶跃序列hold on;plot(t,x,’r’); %单位阶跃函数

(5)单位冲激序列 k=-10:10x=(k==0); t=-10:0.01:10;x1=(t==0);stem(k,x); %单位冲激序列hold on;plot(t,x1,'r') %单位冲激函数

(6)指数序列 clear alla=input('输入指数a= ');K=input('输入常数K= ');N=input('输入序列长度N= ');k=0:N;x=K*a.^k;stem(k,x); (7) 产生高度为1,宽度为4,延时2s的矩形脉冲信号 t=-2:0.02:6;x=rectpuls(t);plot(t,x);axis([-2 6 -0.1 1.1]) (8) 产生幅度为1,基频为2Hz,占空比为50%的周期方波信号 clear allf0=2;t=0:0.0001:3;w0=2*pi*f0;x=square(w0*t,50);plot(t,x);axis([0 3 -1.5 1.5]); 2.信号的运算 (1)两个序列的加、乘运算 clear allt=0:0.01:2;f1=2.^(-3*t);f2=0.7*sin(4*pi*t);f3=f1+f2;f4=f1.*f2;subplot(2,2,1);plot(t,f1);title('f1(t)');grid on;subplot(2,2,2);plot(t,f2);title('f2(t)');grid on;subplot(2,2,3);plot(t,f3);title('f1+f2'); grid on;subplot(2,2,4);plot(t,f4);title('f1*f2'); grid on;

其运行结果如图1-7所示

图1-7 信号的基本运算 (2)两个序列的相关

利用MATLAB计算两个有限长序列
x[k]=[1,2,-2,1,2,-1,4,4,2],y[k]=[2,-1,4,1,-2,3]的互相关。
程序如下:

x = input('Type in the reference sequence = ');y = input('Type in the second sequence = ');% Compute the correlation sequencen1 = length(y)-1; n2 = length(x)-1;r = conv(x,fliplr(y));k = (-n1):n2';stem(k,r);xlabel('Lag index'); ylabel('Amplitude');v = axis;axis([-n1 n2 v(3:end)]);

自相关和互相关序列可以直接调用MATLAB函数xcorr来计算。

x = input('Type in the reference sequence = ');y = input('Type in the second sequence = ');% Compute the correlation sequencen1 = length(y)-1; n2 = length(x)-1;r = xcorr(x,y);k = (-n1):n2';stem(k,r(3:end));xlabel('Lag index'); ylabel('Amplitude');

五、实验内容

1.了解所给的MATLAB相关函数, 并在计算机上运行这些范例程序,观察其运行结果。并结合范例程序所完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序的编程算法。
2.利用MATLAB产生下列信号波形图。
(1)

(2),设

(3),其中,,。

3.已知序列和

(1)计算离散序列的卷积,并绘制其波形图。

(2)计算离散序列的互相关,并绘制其波形图。

六、更多相关文章点这里哦

数字信号处理----全套Matlab实验报告

通信工程(信息类,电子类,电气工程,自动化,计算机,软件工程,机电,等相关专业)全套学习指导

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。