IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 《数字信号处理教程》利用matlab实现常用序列 -> 正文阅读

[数据结构与算法]《数字信号处理教程》利用matlab实现常用序列

目录

一、实验名称

二、实验器材

三、实验目的

四、实验原理

五、实验内容及结果

六、实验收获


一、实验名称

常用序列的matlab实现。

二、实验器材

安装有matlab软件的电脑、《数字信号处理教程》课本。

三、实验目的

1.掌握matlab语言的基本操作和基本的编程功能;

2.了解常用序列的图形和实现方法,并掌握matlab产生常用离散时间信号的编程方法;

3.掌握基本函数exp、imag、real,二维图形处理函数function、figure、stem、title、xlabel、ylabel、axis、grid on及通用功能图形函数subplot的用法。

四、实验原理

1.matlab功能强大、简单易学、编程效率高,具有自动控制理论、数字信号处理、动态系统仿真、图像处理等功能;

2.matlab具有多种函数图形处理和生成器,可对不同的函数进行处理,分析和计算速度快,可以运用stem函数绘制离散图形,利用起来非常方便;

3.matlab具有强大的数值计算和符号计算,可以很方便绘制二维、三维及四维图形,支持多种声音和图像格式,所编写的程序可以直接运行,无须编译,非常快捷。

五、实验内容及结果

编制程序产生单位冲激序列、单位阶跃序列、矩形序列、实指数序列和复指数序列,并利用matlab中的基本图形函数绘制出其图形。

(一)实验一:单位抽样序列。在matlab中可以用以下函数实现单位抽样序列δ(n-n0)(如图1),利用n==0来实现。

?

图1 单位冲激序列

  1. 实验代码
%单位抽样序列



function [x,n]=impseq(n0,n1,n2)? ?????%产生x(n)=delta(n-n0);n1<=n0<=nn2

????????????????????????????????? %[x,n]=impseq(n0,n1,n2)

if((n0<n1)|(n0>n2)|(n1>n2))

??? error('参数必须满足n1<=n0<=n2')

end

n=[n1:n2];??????????????????????? %x=[zeros(1,(n0-n1),1,zeros(1,(n2-n0))];

x=[(n-n0)==0];

2.实验结果

在命令窗口做以下操作:

(1)输入“n1=-2,n0=3,n2=6”回车;

(2)输入“[x,n]=impseq(n0,n1,n2)”回车;

(3)输入“stem(n,x)”回车。结果如下:

3.碰到的问题及解决方法

问题:由于第一次使用function函数,对function函数不是很了解,在运行结果时没有给输入和输出变量定义初始值,导致运行不出来。

解决方法:在运行程序后输入n1=-2,n0=3,n2=6回车,再输入[x,n]=impseq(n0,n1,n2)回车,最后输入stem(n,x)回车,即可运行出结果。

(二)实验二:单位阶跃序列。在matlab中可以用n>=0来实现u(n-n0)(如图2)。

?

图2 单位阶跃序列

1.实验代码

%单位阶跃序列



function [x,n]=stepseq(n0,n1,n2) ???????%产生x(n)=delta(n-n0);n1<=n0<=nn2

?????????????????????????????????? %[x,n]=stepseq(n0,n1,n2)

if((n0<n1)|(n0>n2)|(n1>n2))

??? error('参数必须满足n1<=n0<=n2')

end

n=[n1:n2];???????????????????????? %x=[zeros(1,(n0-n1),1,zeros(1,(n2-n0))];

x=[(n-n0)>=0];

2.实验结果

在命令窗口做以下操作:

(1)输入“n1=-4,n0=4,n2=10”回车;

(2)输入“[x,n]=stepseq(n0,n1,n2)”回车;

(3)输入“stem(n,x)”回车。结果如下:

(三)实验三:矩形序列。在matlab中可以用两个单位阶跃序列相减来产生矩形序列(如图3)。

图3 矩形序列

1.实验代码

%矩形序列



function [x1,x2,x3,n]=RN(n0,n1,n2)

if((n0<n1)|(n0>n2)|(n1>n2))

??? error('参数必须满足n1<=n0<=n2')

end

n=[n1:n2];

x1=[(n-n0)>=9];

x2=[(n-n0)>=-8];

x3=x2-x1;

2.实验结果

在命令窗口做以下操作:

(1)输入“n1=-10,n0=0,n2=10”回车;

(2)输入“[x1,x2,x3,n]=RN(n0,n1,n2)”回车;

(3)输入“stem(n,x3,'rp');title('矩形序列');”回车。结果如下:

(四)实验四:实指数序列。在matlab中可以用数组运算符“.^”来实现实指数序列。

1.实验代码

%实指数序列



n=0:10;?????????????????????? %定义n的范围

x=(0.8).^n;

stem(n,x,'b.');?????????????? %绘制离散图像

title('实指数序列x=(0.8)^n');? %对图像主题的说明

xlabel('n');????????????????? %对横轴进行说明

ylabel('x=(0.8)^n');????????? %对纵轴进行说明

grid on;????????????????????? %打开图像网格

2.实验结果

?

3.碰到的问题及解决方法

问题:在编写代码时,指数函数x=(0.8)^n少写了一点,运行程序时出现错误。

解决方法:将x=(0.8)^n改为x=(0.8).^n,再重新运行即可出来结果。

(五)实验五:复指数序列。在matlab中可以用编程来实现复指数序列? ,其中a=0.4,b=0.6。

1.实验代码

%复指数序列



n=0:10;?????????????????????? %定义n的范围

x=exp((0.4+0.6j)*n);



%产生实部图像

subplot(2,1,1);?????????????? %定义图像窗口为2x1(2行1列),坐标为(1,1)(第一行第一列)

stem(n,real(x),'b.');???????? %绘制实部离散图像,并设置线为b(蓝色)点线型

axis([-4,10,min(real(x))-1,1.2*max(real(x))]);????? %定义图像1的横轴、纵轴范围

title('复指数序列实部图像');?? %对图像主题的说明

xlabel('n');????????????????? %对横轴进行说明

ylabel('real(x)');??????????? %对纵轴进行说明

grid on;????????????????????? %打开图像网格



%产生虚部图像

subplot(2,1,2);?????????????? %定义图像窗口为2x2(2行2列),坐标为(2,1)(第二行第一列)

stem(n,imag(x),'m.');???????? %绘制虚部离散图像,并设置线为m(洋红色)点线型

axis([-4,10,min(imag(x))-1,1.2*max(imag(x))]);????? %定义图像2的横轴、纵轴范围

title('复指数序列虚部图像');?? %对图像主题的说明

xlabel('n');????????????????? %对横轴进行说明

ylabel('imag(x)');??????????? %对纵轴进行说明

grid on;????????????????????? %打开图像网格

2.实验结果

?

?

六、实验收获

????????通过本次实验,有了很多意想不到的收获,主要有函数知识及用法、产生图像方法、实验时需要注意的点。

? ? ? ? 1.函数知识:基本函数exp、imag、real,二维图形处理函数function、

figure、stem、title、xlabel、ylabel、axis、grid on及通用功能图形函数subplot,这些函数非常有用,也非常重要,在实现一般图像时基本都有用到。

? ? ? ? 2.产生图像方法:有三种函数可以产生图形,包括function函数、plot

函数和stem函数。

? ? ? ? 3.实验时需要注意的点

????????在用到function函数时,需要注意:

????????1)在赋值之前先运行代码程序;

????????2)在命令窗口先对输入变量赋值;

????????3)再对“[输出]=文件名(输入)“运行;

????????4)最后用stem函数产生图形。

????????要产生图形时需要弄清楚要产生的图形是连续的还是离散的,再选用plot函数(绘制连续图形)和stem函数(绘制离散图形)。

? ? ? ? 4.总之,只要积极主动、细心、有耐心,注意理论联系实际、多做多学多问,就会有进步,就会学到更多知识。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-10-02 15:06:48  更:2021-10-02 15:07:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 9:51:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码