数字信号处理MATLAB仿真(DOC)
- 格式:doc
- 大小:165.00 KB
- 文档页数:20
3.17(1)相关函数仿真代码:A1=getAk(SNR1);A2=getAk(SNR2);A3=getAk(SNR3); %求得信号的幅度;noise=randn(1,N) + j*randn(1,N); % 构建高斯白噪声;s1=getSk(A1,f1,N);s2=getSk(A2,f2,N);s3=getSk(A3,f3,N);; %产生3个复正弦信号vn=s1+s2+s3+noise;vk=fft(vn,2*N); %对v(n)补N个零,然后做2N点FFTswk=((abs(vk)).^2)/N; %计算功率谱估计S(ω)r0=ifft(swk); %对S(k)做ifft得到r=[r0(N+2 : 2*N) , r0(1 : N)]; %根据教程3.1.8式可得r1=xcorr(vn, N-1,'biased'); %直接计算自相关函数%%%%%%%%%%%%%%%%%%%%%%%%%取序列实部,虚部%%%%%% real_r=real(r);imag_r=imag(r);real_r1=real(r1);imag_r1 = imag(r1);subplot(2,2,1);stem(real_r);xlabel('基于FFT的自相关函数的实部');ylabel('实部');subplot(2,2,2);stem(imag_r);xlabel('基于FFT的自相关函数的虚部');ylabel('虚部');subplot(2,2,3);stem(real_r1);ylabel('实部');xlabel('估计的自相关函数的实部');subplot(2,2,4);stem(imag_r1);xlabel('估计的自相关函数的虚实部');ylabel('虚部');function AK=getAk(SNR) %求得幅度%%%%%%%%%%%%%%%%%%%由SNR=10log(A^2/2*σ^2) %%%%%%% AK=((10^(SNR/10))*2)^0.5;function Sk=getSk(Ak,fk,N)Sk=Ak * exp(j * 2 * pi * fk *(0:N-1));仿真波形:(2)BT 法和周期法估计 仿真程序: clear all; clc;%设定N 值可以改变抽样信号的点数,设定M 值可以设定加窗的大小,设定N3可以补零,确定实际求fft 的点数。
Matlab中的数字信号处理方法与实例数字信号处理是一门研究数字信号在数字域中分析、处理和改变的学科。
Matlab是一种强大的数值计算工具,被广泛应用于信号处理领域。
本文将介绍一些在Matlab中常用的数字信号处理方法与实例,并通过实例来展示它们的应用。
1. 信号的采样与重构信号采样是指将连续时间信号转化为离散时间信号的过程。
在Matlab中,我们可以使用“sample”函数对信号进行采样,并使用“hold”函数对采样后的信号进行重构。
下面是一个示例:```matlabfs = 100; % 采样频率t = 0:1/fs:1; % 时间序列x = sin(2*pi*5*t); % 原始信号subplot(2,1,1);plot(t,x);title('原始信号');xlabel('时间');ylabel('幅值');subplot(2,1,2);stem(t,x);title('采样和重构后的信号');xlabel('时间');ylabel('幅值');```在这个例子中,我们生成了一个频率为5Hz的正弦信号,然后对该信号进行采样和重构。
从结果可以看出,原始信号和重构后的信号基本上是一致的。
2. 信号的频谱分析频谱分析是指将信号从时域转换到频域的过程,可以用来分析信号的频率成分。
在Matlab中,我们可以使用“fft”函数对信号进行傅里叶变换,并使用“abs”函数获取信号的幅度谱。
下面是一个示例,演示如何对信号进行频谱分析:```matlabfs = 100; % 采样频率t = 0:1/fs:1; % 时间序列x = sin(2*pi*5*t); % 原始信号N = length(x); % 信号长度X = fft(x); % 傅里叶变换f = (0:N-1)*(fs/N); % 频率坐标plot(f,abs(X));title('信号的频谱');xlabel('频率');ylabel('幅度');```在这个示例中,我们同样生成了一个频率为5Hz的正弦信号,然后对该信号进行傅里叶变换,并绘制出信号的频谱图。
基于matlab数字信号处理和仿真————————————————————————————————作者:————————————————————————————————日期:题目:数字信号的滤波处理及软件仿真学生姓名:学院:机械学院系别:测控系专业:测控技术与仪器班级:指导教师:二〇一二年月日数字信号(digital signal):时间和幅度上都是离散(量化)的信号。
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
数字信号处理主要是研究有关数字滤波技术、离散变换快速算法和频谱分析方法,是将信号以数字方式表示并处理的理论和技术,是研究用数字方法对信号进行分析、变换、滤波、检测、调制、解调以及快速算法的一门技术学科。
数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。
关键词:数字信号 ,处理 ,滤波第一章绪论 (1)1。
1数字信号处理的研究背景与意义 (1)第二章数字滤波处理的应用现状与发展趋势 (2)2。
1语音处理 (2)2.2图像处理 (2)2.3通信 (2)2。
4电视 (3)2。
5雷达 (3)2。
6生物医学信号处理 (3)第三章数字滤波算法 (4)3。
1限幅滤波法 (4)3。
2中值滤波法 (4)3.3 算术平均滤波法 (5)3.4 递推平均滤波法 (5)3.5 中位值平均滤波法 (6)3。
6限幅平均滤波法 (6)3。
7 一阶滞后滤波法 (6)3.8 加权递推平均滤波法 (7)3。
9消抖滤波法 (7)3.10 限幅消抖滤波法 (8)第四章 MATLAB软件介绍 (9)第五章基于MATLAB的数字信号滤波仿真 (10)5。
1中值滤波及均值滤波程序代码 (10)5。
2中值滤波及均值滤波仿真图形 (11)5.3中值滤波及均值滤波分析 (11)第六章总结 (13)参考文献 (14)第一章绪论1.1数字信号处理的研究背景与意义当今,数字信号处理(DSP:Digtal Signal Processing)技术正飞速发展,它不但自成一门学科,更是以不同形式影响和渗透到其他学科;它与国民经济息息相关,与国防建设紧密相连;它影响或改变着我们的生产、生活方式,因此受到人们的普遍关注. 数字化智能化和网络化是当代信息技术发展的大趋势,而数字化是智能化和网络化的基础,实际生活中遇到的信号多种多样,例如广播信号、电视信号、雷达信号、通信信号、导航信号、射电天文信号、控制信号、气象信号、遥感遥测信号等等。
基于MATLAB的信号处理仿真分析第一章绪论 (3)1.1 MATLAB简介 (3)1.2 MATLAB的特点和优势 (4)1.3图形用户界面(GUI) (5)1.4设计内容 (5)第二章信号产生及其MATLAB实现 (5)2.1离散信号及其MATLAB实现 (6)2.2连续信号及其MATLAB实现 (9)2.3噪声及波形信号的MATLAB实现 (13)第三章信号变换及其MATLAB实现 (18)3.1 Z变换 (18)3.2离散傅里叶变换DFT (20)3.3快速傅里叶变换FFT (21)第四章基于MALTAB的功率谱估计 (23)3.1 直接法…………………………………………………………………233.2 间接法…………………………………………………………………253.3 改进直接法………………………………………………………………26第五章图形用户界面(GUI)的实现………………………………………………275.1 GUI界面设计概述 (27)5.2 GUI的具体实现过程 (29)5.3 GUI总界面 (36)第六章总结…………………………………………………………………………37第七章致谢………………………………………………………………………37参考文献……………………………………………………………………………38第一章绪论1.1 MATLAB简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的数字调制仿真实验报告1:实验要求实验要求通过输入随机信号的长度 ,得到二进制的随机原始信号 ,同时把得到的原始信号用三种不同的方法调制出来。
当分别输入各个控件名称时 ,得到原始信号相应的信号输出。
2:实验过程2.1 实验条件1:实验的原始信号由MATLAB的randint(n)函数输出 ,需要确定的只是n,就是原始信号的宽度。
2:三种不同的调制函数原始信号调制信号函数振幅调制: 0: 01: cos(t+pi/3)频移调制: 0: cos(t+pi/3)1: cos(2*t+pi/6)相位移调制: 0: cos(t)1: cos(t+pi)时间t为单个信号存在的时间周期 ,为了将图形表达更加清晰 ,这里选择将其选定为2*pi ,并划分为100个具体的时间点,t=0:2*pi/99:2*pi。
2.2 实验步骤1:首先我要得到原始信号的长度 ,可以通过对s=rindint(n)函数产生的随机矩阵信号用length(s)求取其长度。
2:我们要得到单个的输入原始信号并对其进行调制 ,并同时将其用矩阵进行收集储存 ,最后输出调制后的信号。
可以分别求取不同宽度上的信号 ,并将其赋值到对应输出原始信号的时间周期内 ,收集 ,最后输出。
3:调制得到的信号是在每个单个波长时间 ,不同的时间点t应用不同的调制函数的到的。
在进行信号调制时 ,需要对这些调制得到的信号信息进行储存。
可以在循环内采用矩阵叠加的方法来储存这些信号。
4: 需要的输入只是唯一的信号长度n,输出为得到的三种调制信号5:编写实现输出全部调制信号的主函数Modulator和三个输出对应的调制信号的子函数ASK,FSK ,PSK.由子函数控制相应的信号输出.6:编写程序,调试,写实验报告3: 实验结果通过输入不同Modulator(n) ,我们得到了调制的信号和相应的图形输出。
4: 附录实验程序及输出图4.1: 主程序function Modulator(n)%定义函数global askglobal fskglobal pskglobal wglobal signal%定义全局变量ask=[];fsk=[];psk=[];%定义ASK,FSK,PSK调制信号a=[];f=[];p=[];%定义ASK,FSK,PSK决定信号signal=[];%定义输出原始信号和ASK选择信号dfp=[];%定义FSK,PSK选择信号s=randint(n);%得到原始信号w=length(s);%信号长度t=0:2*pi/99:2*pi;%划分单个信号的时间周期for n=1:wif s(n)==0;signal1=zeros(1,100);dfp1=ones(1,100);f1=cos(t+pi/3);p1=cos(t);%产生并收集信号为0的时输出原始信号和调制信号的相应信息elses(n)==1;signal1=ones(1,100);dfp1=ones(1,100);f1=cos(2*t+pi/6);p1=cos(t+pi);%产生并收集信号为1时的输出原始信号和调制信号的相应信息endsignal=[signal signal1];%得到输出原始信号信息和ASK调制的信号决定信息a1=cos(t+pi/3);a=[a a1];%得到ASK调制的信号决定信息f=[f f1];%得到FSK调制的信号决定信息p=[p p1];%得到PSK调制的信号决定信息dfp=[dfp dfp1];%得到FSK,PSK调制的选择信息end%循环结束ask=signal.*a;fsk=dfp.*f;psk=dfp.*p;%得到ASK ,FSK ,PSK调制信号ASKFSKPSK%调用子函数4.2:子函数4.2.1:ASK调制程序function ASK()global askglobal wglobal signalfigure(1)subplot(2,1,1)plot(signal,'LineWidth',1.5)axis([0 100*w -1.5 1.5])ylabel('调制前信号')title('ASK信号调制图')grid on%画出输出原始信号图subplot(2,1,2)plot(ask,'LIneWidth',1.5)axis([0 100*w -1.5 1.5])xlabel('时间')ylabel('2ASK调制后信号')grid on%画出输出ASK调制信号图4.2.2: FSK调制程序function FSK()global fskglobal wglobal signalfigure(2)subplot(2,1,1)plot(signal,'LIneWidth',1.5)axis([0 100*w -1.5 1.5])ylabel('调制前信号')title('FSK信号调制图')grid on%画出输出原始信号图subplot(2,1,2)plot(fsk,'LIneWidth',1.5)axis([0 100*w -1.5 1.5])xlabel('时间')ylabel('2FSK调制后信号')grid on%画出输出SFK调制信号图4.2.3: PSK调制程序function PSK()global pskglobal wglobal signalfigure(3)subplot(2,1,1)plot(signal,'LIneWidth',1.5)axis([0 100*w -1.5 1.5])ylabel('调制前信号')title('PSK信号调制图')grid on%画出输出信号原始图subplot(2,1,2)plot(psk,'LIneWidth',1.5)axis([0 100*w -1.5 1.5])xlabel('时间')ylabel('2PSK调制后信号')grid on%画出输出PSK调制信号图。
MATALB信号处理实习报告一、实习目的“数字信号处理”是电子信息工程专业的主干课程,其理论性较强,学生通过理论课的系统学习后,应通过MATLAB语言对其所涉及的算法进行仿真,这不仅能帮助学生理解其抽象的物理概念,工程概念和复杂算法,加强感性认识,而且能激发学生更进一步地在该领域的学习和探索热情。
二、实习任务及功能概述1. FT与DFT关系的MATLAB仿真任务要求:(1)任设一个长度为N的实序列;(2)编写MATLAB代码,实现该序列的傅立叶变换和离散傅立叶变换;(3)调试运行代码,得到仿真图形;(4)通过仿真图形观察二者的关系,并得出结论。
% x is original sequency,N is transforming point% X is FT result of x,XK is DFT result of xfunction [X,Xk]=mydft(x,N)w=2*pi*(0:127)/128;X=x*exp(-j*[1:length(x)]'*w) % x 的傅立叶变换FTsubplot(211)plot(w,abs(X))k=0:N-1;XK=x*exp(-j*[1:length(x)]'*(2*pi*k)/N) % x的离散傅立叶变换DFTsubplot(212)stem(k,abs(XK))end>> x=[1 0 1 0 0 1 0 1];>> N=32;>> mydft(x,N)由图可得DFT 是有限长序列傅里叶变换的有限点离散采样。
2. DFT 的快速算法FFT 的仿真任务要求:(1)在熟悉FFT 算法原理的基础上,对所给的时域信号进行分析;(2)对信号做时域分析时要注意混叠现象的发生;(3)对混合信号)2sin()2sin()2sin()(321t f ft t f t f πππ++=做快速傅立叶变换FFT 运算,其中1f 、2f 、3f 自设,变换点数根据所设的情况自定;(4)对变换结果做分析。
MATLAB仿真与信号处理实践指导第一章:MATLAB仿真基础MATLAB是一种功能强大的数学软件,广泛应用于科学与工程领域的仿真和信号处理任务。
本章将向读者介绍MATLAB的基本概念和使用方法,帮助读者快速入门。
1.1 MATLAB简介MATLAB是由MathWorks公司开发的一种高级技术计算语言和环境。
它集成了数值计算、可视化和编程功能,可用于进行数据分析、仿真、建模、图像处理等多种任务。
1.2 MATLAB界面MATLAB的主要界面由命令窗口、脚本编辑器和变量浏览器组成。
命令窗口可以直接输入MATLAB命令,脚本编辑器用于编写和运行MATLAB脚本,变量浏览器可以查看和管理当前工作空间中的变量。
1.3 基本数据类型MATLAB支持多种基本数据类型,如数值、字符和逻辑类型。
数值类型包括整数、浮点数和复数。
字符类型用于表示文本数据,逻辑类型用于表示真假值。
1.4 基本操作MATLAB提供了丰富的数学和矩阵操作函数,如加法、乘法、求逆、求特征值等。
同时,MATLAB还支持向量化操作,可一次对整个矩阵或向量进行计算,提高运算效率。
第二章:MATLAB仿真实践本章将介绍MATLAB在仿真领域的应用,包括利用MATLAB进行线性系统仿真、非线性系统仿真和电路仿真等方面的实践。
2.1 线性系统仿真MATLAB提供了强大的线性系统仿真工具,如系统传输函数建模、频域分析、时域响应等。
通过MATLAB,可以对各种线性系统进行仿真和分析,如低通滤波器、控制系统等。
2.2 非线性系统仿真与线性系统仿真相比,非线性系统仿真更加复杂。
MATLAB提供了多种工具箱,如Simulink和Simscape,用于建立和仿真非线性系统模型。
通过这些工具,可以更加准确地模拟和预测非线性系统的行为。
2.3 电路仿真MATLAB还提供了用于电路仿真的工具,如Circuit Design Toolbox和Simscape Electronics。
[摘要]《数字信号处理》在大专院校的通信类及电子类专业中是一门非常重要的基础课程, 具有内容抽象,学生不容易掌握的特点[1]。
另一方面,教师在讲授主要些内容时也不方便。
针对教学中存在的这种问题,为了方便教师授课和学生学习,使抽象的内容形象化,提高学生的学习兴趣,本文以MATLAB作为开发平台,设计了基于MATLAB的数字信号处理虚拟实验仿真平台,改变了传统的实验方式,将数字信号处理的实验内容集中在一个平台上,操作简单方便,结果直观准确。
MATLAB开放的环境、功能极强的图形绘制、各种工具箱及其简单易学的特点,使系统开发简单、快捷[2]。
本系统采用友好的GUI界面设计,用简洁的文字、丰富的画面将抽象的内容展现在学生面前,提高了学生的学习积极性和主动性。
[关键字]:数字信号处理;实验平台;MATLAB;GUI[Abstract]:"Digital Signal Processing" in the universities and colleges of communication and electronics professional is a very important foundation courses, with abstract students is not easy to grasp. On the other hand, teachers lectured content is not easy. Teaching, in order to enable teachers to teach and students to learn to visualize abstract content, improve students' interest in learning, this paper as a development platform of MATLAB, MATLAB-based digital signal processing virtual experiment platform is designed change the traditional experimental methods, the contents of the digital signal processing experiments concentrated on a single platform, easy to operate, intuitive and accurate results. MATLAB open environment, highly functional graphical drawing, various toolbox and its easy to learn the characteristics of the system development is simple and fast. The system uses a friendly GUI interface design, using simple language, rich picture abstract show in front of students, improve students' learning enthusiasm and initiative.[Keyword]: Digital signal processing; experimental platform; MATLAB; GUI目录第1章绪论 (1)1.1课题的背景 (1)1.2国内外研究现状 (1)1.3课题主要研究内容研究意义 (2)第2章MATLAB基础知识 (3)2.1 MATLAB 简介 (3)2.2 MATLAB语言的发展历程和影响 (4)2.3 MATLAB的特点 (4)2.4 MATLAB的工作环境 (6)第3章MATLAB在数字信号处理教学中的应用 (7)3.1 MATLAB的应用现状 (7)3.2 MATLAB在《数字信号处理》教学中的应用 (7)3.3 在数字信号处理教学实验中应用MATLAB 的意义 (8)第4章数字信号处理虚拟实验仿真平台设计的必要性和可行性 (9)4.1增加MATLAB 内容的必要性和可行性 (9)4.1.1 必要性 (9)4.1.2可行性 (10)4.2 用MATLAB做数字信号处理虚拟实验仿真平台的优点 (11)4.2.1 数字信号处理课程实验的教学现状 (11)4.2.2 强大的作图功能使抽象的概念一目了然 (11)4.2.3利用现代化的教学手段, 增强教学效果 (12)第5章基于MATLAB的数字信号处理虚拟实验仿真平台的实现 (13)5.1 界面的设计方法 (13)5.1.1 基于MATLAB的数字信号处理虚拟实验仿真平台主界面 (13)5.2 基于MATLAB数字信号处理实验设计实例 (17)6 结论 (26)致谢 (27)参考文献 (28)第1章绪论1.1课题的背景当今,数字信号处理(DSP:Digtal Signal Processing)技术正飞速发展它不但自成一门学科,更是以不同形式影响和渗透到其他学科;它与国民经济息息相关,与国防建设紧密相连;它影响或改变着我们的生产、生活方式,因此受到人们的普遍关注。
实验一 数字信号处理的Matlab仿真 一、实验目的 1、掌握连续信号及其MATLAB实现方法; 2、掌握离散信号及其MATLAB实现方法 3、掌握离散信号的基本运算方法,以及MATLAB实现 4、了解离散傅里叶变换的MATLAB实现 5、了解IIR数字滤波器设计 6、了解FIR数字滤波器设计1
二、实验设备 计算机,Matlab软件 三、实验内容 (一)、 连续信号及其MATLAB实现 1、 单位冲击信号
()0,0()1,0tttdt
例1.1:t=1/A=50时,单位脉冲序列的MATLAB实现程序如下: clear all; t1=-0.5:0.001:0; A=50; A1=1/A; n1=length(t1); u1=zeros(1,n1); t2=0:0.001:A1; t0=0; u2=A*stepfun(t2,t0); t3=A1:0.001:1; n3=length(t3); u3=zeros(1,n3); t=[t1 t2 t3]; u=[u1 u2 u3]; plot(t,u) axis([-0.5 1 0 A+2])
2、 任意函数 ()()()ftftd 例1.2:用MATLAB画出如下表达式的脉冲序列 ()0.4(2)0.8(1)1.2()1.5(1)1.0(2)0.7(3)fnnnnnnn clear all; t=-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、 单位阶跃函数 1,0()0,0tutt
例1.3:用MATLAB实现单位阶跃函数 clear all; t=-0.5:0.001:1; t0=0; u=stepfun(t,t0); plot(t,u) axis([-0.5 1 -0.2 1.2])
4、 斜坡函数 0()()gtBtt 例1.4:用MATLAB实现g(t)=3(t-1) clear all; t=0:0.01:3; B=3; t0=1; u=stepfun(t,t0); n=length(t); for i=1:n u(i)=B*u(i)*(t(i)-t0); end plot(t,u) axis([-0.2 3.1 -0.2 6.2])
5、 实指数函数 ()atftAe 例1.5:用MATLAB实现0.5()3tfte clear all; t=0:0.001:3; A=3; a=0.5; u=A*exp(a*t); plot(t,u) axis([-0.2 3.1 -0.2 14])
6、 正弦函数
02()cos()tftAT
例1.6:用MATLAB实现正弦函数f(t)=3cos(10πt+1) clear all; t=-0.5:0.001:1; A=3; f=5; fai=1; u=A*sin(2*pi*f*t+fai); plot(t,u) axis([-0.5 1 -3.2 3.2])
(二)、离散信号及其MATLAB实现 1、 单位冲激序列
1,0()0,0nnn
例2.1:用MATLAB产生64点的单位冲激序列 clear all; N=64; x=zeros(1,N); x(1)=1; xn=0:N-1; stem(xn,x) axis([-1 65 0 1.1])
2、 任意序列 ()()()mfnfmnm
例2.2:用MATLAB画出如下表达式的脉冲序列 ()8.0()3.4(1)1.8()5.6(3)2.9(4)0.7(5)fnnnnnnn clear all; N=8; x=zeros(1,N); x(1)=8.0; x(2)=3.4 x(3)=1.8; x(4)=5.6; x(5)=2.9; x(6)=0.7; xn=0:N-1; stem(xn,x) axis([-1 8 0 8.2])
3、 单位阶跃序列 1,0()0,0nunn
例2.3:用MATLAB实现单位阶跃函数 clear all; N=32; x=ones(1,N); xn=0:N-1; stem(xn,x) axis([-1 32 0 1.1])
4、 斜坡序列 0()()gnBnn 例2.4:用MATLAB实现g(n)=3(n-4)点数为32的斜坡序列 clear all; N=32; k=4 B=3; t0=1; x=[zeros(1,k) ones(1,N-k)]; for i=1:N x(i)=B*x(i)*(i-k); end xn=0:N-1; stem(xn,x) axis([-1 32 0 90])
5、 正弦序列 ()sin(2)xnAfn 例2.5:用MATLAB实现幅度A=3,频率f=100,初始相位Φ=1.2,点数为32的正弦信号 clear all; N=32; A=3; f=100; fai=1.2; xn=0:N-1; x=A*sin(2*pi*f*(xn/N)+fai); stem(xn,x) axis([-1 32 -3.2 3.2])
6、 实指数序列 ()nxnAa
例2.6:用MATLAB实现0.7()3xne,点数为32的实指数序列 clear all; N=32; A=3; a=0.7; xn=0:N-1; x=A*a.^xn; stem(xn,x)
7、 复指数序列 ()(),ajnxnAen
例2.7:用MATLAB实现幅度A=3,a=0.7,角频率ω=314,点数为32的实指数序列 clear all; N=32; A=3; a=0.7; w=314; xn=0:N-1; x=A*exp((a+j*w)*xn); stem(xn,x)
8、 随机序列 利用MATLAB产生两种随机信号: rand(1,N)在区间上产生N点均匀分布的随机序列 randn(1,N)产生均值为0,方差为1的高斯随机序列,即白噪声序列 例2.8:用MATLAB产生点数为32的均匀分布的随机序列与高斯随机序列 clear all; N=32; x_rand=rand(1,N); x_randn=randn(1,N); xn=0:N-1; figure(1); stem(xn,x_rand) figure(2); stem(xn,x_randn)
(三)、离散信号的基本运算 1、 信号的延迟 给定离散信号x(n),若信号y(n)定义为:y(n)=x(n-k),那么y(n)是信号x(n)在时间轴上右移k个抽样周期得到的新序列。 例3.1:正弦序列y(n)=sin(100n)右移3个抽样周期后所得的序列,MATLAB程序如下: clear all; N=32; w=100; k=3; x1=zeros(1,k); xn=0:N-1; x2=sin(100*xn); figure(1) stem(xn,x2) x=[x1 x2]; axis([-1 N -1.1 1.1]) N=N+k; xn=0:N-1; figure(2) stem(xn,x) axis([-1 N -1.1 1.1])
2、 信号相加 若信号12()()()xnxnxn,值得注意的是当序列1()xn和2()xn的长度不相等或者位置不对应时,首先应该使两者的位置对齐,然后通过zeros函数左右补零使其长度相等后再相加 例3.2:用MATLAB实现两序列相加 clear all; n1=0:3 x1=[2 0.5 0.9 1]; figure(1) stem(n1,x1) axis([-1 8 0 2.1] ) n2=0:7 x2=[ 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7]; figure(2)