实验课程

THIS NAME

实验课程

当前位置: 首页 >> 实验课程 >> 正文

数字信号处理-离散时间信号的表示与运算

发布日期:2024-03-06    作者:高萌萌     来源:     点击:

离散时间信号的表示与运算

一、实验目的

1、熟悉MATLAB的绘图函数;

2、掌握单位取样序列、单位阶跃序列、矩形序列和正余弦序列的产生方法;

3、掌握离散时间信号基本运算的MATLAB实现;

二、实验内容

1、写出离散时间信号的表示与运算的 Matlab  程序

2、将程序在计算机上仿真实现,验证程序的正确性并完成仿真。

三、实验原理及说明

1、序列相加和相乘

 设有序列             ,它们相加和相乘如下:

       

注意,序列相加(相乘)是对应序列值之间的相加(相乘),因此参加运算的两个序列必须具有相同的长度,并且保证位置相对应。如果不相同,在运算前应采用zeros函数将序列左右补零使其长度相等并且位置相对应。在MATLAB中,设序列用x1x2表示,序列相加的语句为:x=x1+x2;然而要注意,序列相乘不能直接用x=x1*x2,该式表示两个矩阵的相乘,而不是对应项的相乘。对应项之间相乘的实现形式是点乘“.*”,实现语句为:x=x1.*x2

2、序列翻转

设有序列:       ,在翻转运算中,序列的每个值以n=0为中心进行翻转,需要注意的是翻转过程中序列的样值向量翻转的同时,位置向量翻转并取反。MATLAB中,翻转运算用fliplr函数实现。设序列       用样值向量x和位置向量nx表述,翻转后的序列       用样值向量y和位置向量ny描述。

3、序列的移位

移位序列       的移位序列可表示为:       ,其中,       时代表序列右移       个单位;       时代表序列左移       个单位。在移位过程中,序列值未发生任何变化,只是位置向量的增减。MATLAB中没有固定函数实现移位运算。设序列       用样值向量x和位置向量nx描述移位       后的序列       用样值向量y和位置向量ny描述。

四、实验设备

1、计算机

2、软件:Matlab  

五、实验方法

实例1产生单位采样序列      

                   

MATLAB中,函数zeros(1,N)产生一个N个零的列向量,利用它可以实现在有限的区间上的单位采样序列。按照前面所述的方法,将下列文件输入到Command Window窗口中。

程序:

n=0:49;            %定义横轴坐标

x=zeros(1,50);       %matlab中数组下标从1开始

x(1)=1;

stem(n,x);           %绘制离散序列数据

title('xxxxxxxxx-单位采样信号序列')

实例2产生单位阶跃序列      

           

MATLAB中,函数ones(1,N)产生一个N1的行向量,利用它可以实现在有限区间上的单位阶跃序列。按照前面所述方法,将下列指令编辑到Command Window窗口中。

程序:

n=0:49;            %定义横轴坐标

x=ones(1,50);       %matlab中数组下标从1开始

x(1)=1;

stem(n,x);           %绘制离散序列数据

title('xxxxxxxxx-单位阶跃信号序列')

实例3产生矩形阶跃序列          

           

MATLAB中,函数sign(x)产生在x大于0时其值为1;在等于0时其值为0,在x小于0时其值为-1。利用它可以实现窗长度为N的矩形序列。

程序:

N=10;

n=0:49;            %定义横轴坐标

x=sign(sign(N-1-n)+1);      

    stem(n,x);           %绘制离散序列数据

title('xxxxxxxxx-矩形序列')

实例4已知两个离散序列                     ,用MATLAB绘出           的波形。

程序:

a1=[-3,-2,-1,0,1,2,3];

k1=-3:3;

a2=[-2,-1,0,1,2];

k2=-2:2;

k=min([k1:k2]):max([k1,k2]);

f1=zeros(1,length(k));

f2=zeros(1,length(k));

f1(find((k>=min(k1))&(k<=max(k1))==1))=a1;

f2(find((k>=min(k2))&(k<=max(k2))==1))=a2;

f=f1+f2;

stem(k,f,'filled');

title('xxxxxxxxx-相加f(k)')

实例5已知离散序列       ,利用MATLAB绘出其翻转信号。

程序:

k1=-3:3;

f1=2*3.^k;

f=fliplr(f1);

k=-fliplr(k1);

stem(k,f);

title('xxxxxxxxx-翻转f(k)')

实例6 已知离散信号       ,利用MATLAB绘出       波形。

程序:

a0=[-3,-2,-1,0,1,2,3];

k0=-3:3;

k1=3;

k=k0+k1;

f=a0;

stem(k,f,'filled');

title('xxxxxxxxx-位移f(k)')

实例7产生正弦和余弦序列

           

             

程序:

N=50;                       %采样50个点

A=1;                        %正余弦波的幅值为1

f=50;                        %信号频率为50Hz

fs=500;                      %采样频率为500Hz

n=0:N-1;                    

x=A*sin(2*pi*f*n/fs);           %获得采样点的值      

y=A*cos(2*pi*f*n/fs);            

subplot(1,2,1);                  %子图分割函数,参数一表示列,参数二表示行,

stem(n,x);                      %参数三表示绘图序号

title('xxxxxxxxx-正弦序列')

subplot(1,2,2);

stem(n,y);

title('xxxxxxxxx-余弦序列')

六、实验结果

      fa7f03cefa3fdecb96c7f02e99d30b5       878805619e36a7a7afbd86e0d09fcf0

1 单位采样信号序列                    2 单位阶跃信号序列

4c5db84496b8180a948c70578968a70 1ec612733c059f6a3be866eccc97ce6

图3 矩形序列                             图4 相加f(k)

79063b990dc87d959dc9721804c43df e25b7bd0139c2d880f8aee00dc3fcb8

图5 翻转f(k)                             图6 位移f(k)

      51f60fbf5c0b1d382a4034564ff7b9e

图7 正弦、余弦序列

 

上一条:数字信号处理-数字滤波器的分析与设计 下一条:网络爬虫技术与应用-​​Scrapy爬虫基础

关闭