用matlab产生时域离散信号实验报告(有关数字信号处理)

1.正弦序列离散正弦序列的MATLAB表示与连续信号类似,只不过是用stem函数而不是用plot函数来画出序列的波形。下面就是正弦序列的MATLAB源程序。%正弦序列实现程序k=0:39;fk=sin(pi/6*k);stem(k,fk)2.指数序列离散指数序列的一般形式为,可用MATLAB中的数组幂运算(即点幂运算)c*来实现。下面为用MATLAB编写绘制离散时

大家好,又见面了,我是你们的朋友全栈君。

1.正弦序列

离散正弦序列的MATLAB表示与连续信号类似,只不过是用stem函数而不是用plot函数来画出序列的波形。下面就是正弦序列的MATLAB源程序。

%正弦序列实现程序k=0:39;fk=sin(pi/6*k);stem(k,fk)

2.指数序列

离散指数序列的一般形式为,可用MATLAB中的数组幂运算(即点幂运算)c*来实现。下面为用MATLAB编写绘制离散时间实指数序列波形的函数。

function dszsu(c,a,k1,k2)%c:指数序列的幅度%a:指数序列的底数%k1:绘制序列的起始序号%k2:绘制序列的终止序号k=k1:k2;x=c*(a.^k);stem(k,x,'filled')hold onplot([k1,k2],[0,0])hold off



利用上述函数,实现实指数波形MATLAB程序如下(其中值分别为)。

%离散时间实指数序列实现程序subplot 221;dszsu(1,5/4,0,20);xlabel('k');title('f1[k]');subplot 222dszsu(1,3/4,0,20);xlabel('k');title('f2[k]');subplot 223;dszsu(1,-5/4,0,20);xlabel('k');title('f3[k]');subplot 224;dszsu(1,-3/4,0,20);xlabel('k');title('f4[k]');



分析程序运行结果,对于离散时间实指数序列,当的绝对值大于1时,序列为随时间发散的序列,当的绝对值小于1时,序列为随时间收敛的序列。同时可见,当的值小于零时,其波形在增长或衰减的同时,还交替地改变序列值的符号。

对于离散时间虚指数序列,可用通过调用下列绘制虚指数序列时域波形的MATLAB函数。

function[]=dxzsu(n1,n2,w)%n1:绘制波形的虚指数序列的起始时间序号%n2:绘制波形的虚指数序列的终止时间序号%w:虚指数序列的角频率k=n1:n2;f=exp(i*w*k);Xr=real(f)Xi=imag(f)Xa=abs(f)Xn=angle(f)subplot(2,2,1), stem(k,Xr,'filled'),title('实部');subplot(2,2,3), stem(k,Xi,'filled'),title('虚部');subplot(2,2,2), stem(k,Xa,'filled'),title('模');subplot(2,2,4), stem(k,Xn,'filled'),title('相角');

利用上述函数,实现虚指数波形MATLAB程序如下(其中虚指数分别为)

%离散时间虚指数实现程序figure(1);dxzsu(0,20,pi/4);figure(2);dxzsu(0,20,2);程序运行结果如图1.21(a)、(b)所示。由图可见,只有当虚指数序列的角频率满足为有理数时,信号的实部和虚部和相角都为周期序列,否则为非周期序列。对于复指数序列,其一般形式为可以通过调用下面绘制复指数序列时域波形的MATLAB函数。function dfzsu(n1,n2,r,w)%n1:绘制波形的虚指数序列的起始时间序号%n2:绘制波形的虚指数序列的终止时间序号%w:虚指数序列的角频率%r: 指数序列的底数k=n1:n2;f=(r*exp(i*w)).^k;Xr=real(f);Xi=imag(f);Xa=abs(f);Xn=angle(f);subplot(2,2,1), stem(k,Xr,'filled'),title('实部');subplot(2,2,3), stem(k,Xi,'filled'),title('虚部');subplot(2,2,2), stem(k,Xa,'filled'),title('模');subplot(2,2,4), stem(k,Xn,'filled'),title('相角');

利用上述函数,实现复指数序列波形MATLAB程序如下。

%复指数序列实现程序(r>1)figure(1);dfzsu(0,20,1.2,pi/4);%复指数序列实现程序(0<r<1)figure(2);dfzsu(0,20,0.8,pi/4);%复指数序列实现程序(r=1)figure(3);dfzsu(0,20,1,pi/4);


当r>1时,复指数序列的实部和虚部分别为幅度按指数增长的正弦序列;当0<r<1时,复指数序列的实部和虚部分别为幅度按指数衰减的正弦序列;当r=1时,复指数序列的实部和虚部分别为等幅正弦序列。

3.单位抽样序列

可以通过借助MATLAB中的零矩阵函数zeros表示。全零矩阵zeros(1,N)产生一个由N个零组成的列向量,对于有限区间的可以通过以下MATLAB程序表示

% 单位抽样序列实现程序k=-30:30;delta=[zeros(1,30),1,zeros(1,30)];stem(k,delta)

4.单位阶跃序列

可以通过借助MATLAB中的单位矩阵函数ones表示。单位矩阵ones(1,N)产生一个由N个1组成的列向量,对于有限区间的可以通过以下MATLAB程序表示

% 单位阶跃序列实现程序k=-30:30;uk=[zeros(1,30),ones(1,31)];stem(k,uk)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127718.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 51单片机八路抢答器proteus仿真

    51单片机八路抢答器proteus仿真51单片机八路抢答器由于51单片机小板,按键比较少,还有一些功能上的缺陷,所以说无法完成八路抢答器,所以我们用proteus仿真,代码与实验结果如下:/********************************Function: 八路抢答器Date: Sep20,2017By:Third GroupBolancheL************

    2022年10月20日
    0
  • unity3d在工业仿真中的应用_虚拟现实例子

    unity3d在工业仿真中的应用_虚拟现实例子JonathanLinowes(作者),童明(译者)文中示例代码下载亚马逊京东China-Pub当当目录列表内容译者序审校者简介前言第1章万物皆可虚拟11.1虚拟现实对你来说意味着什么21.2头戴式显示器的类型41.2.1桌面VR41.2.2移动VR41.3虚拟现实与增强现实的区别51.4应用与游戏51.5本书涵盖的内容81.6VR体

    2022年9月12日
    1
  • golang 2021激活码【注册码】

    golang 2021激活码【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    88
  • quick-cocos2d-x游戏开发【5】——创建菜单

    quick-cocos2d-x游戏开发【5】——创建菜单

    2022年1月8日
    46
  • SQL注入学习「建议收藏」

    SQL注入学习「建议收藏」SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。学习目的:能找到注入点能判断数据库是什么类型能绕过各种过滤SQL注入平台层注入原因:数据库平台漏洞或数据库配置不安全代码层注入原因:程序员对输入未进行细致地过滤,从而执行了非法的数据查询SQL注入漏洞的方法数字注入字符串注入SQL注入方法有很多种,按数据类型可以分为

    2022年8月20日
    4
  • php spreadsheet导入

    php spreadsheet导入/***导入*/publicfunctionimport(){//composer安装//composerrequirephpoffice/phpspreadsheet$upload_file=$_FILES[‘file’][‘tmp_name’];//文件类型//$ext=strtolower(pathinfo($_FILES[‘file…

    2022年9月2日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号