Matlab的连续信号生成及时频域分析

合集下载

连续时间信号实验报告

连续时间信号实验报告

一、实验目的1. 理解连续时间信号的基本概念和特性。

2. 掌握连续时间信号的时域分析方法和基本运算。

3. 学会使用MATLAB软件进行连续时间信号的时域分析和图形绘制。

4. 通过实验加深对连续时间信号理论知识的理解和应用。

二、实验原理连续时间信号是指信号在任意时刻都有确定的取值。

本实验主要涉及以下内容:1. 基本连续时间信号的时域表示,如单位冲激信号、单位阶跃信号、正弦信号等。

2. 连续时间信号的时域运算,如卷积、微分、积分等。

3. 连续时间信号的时域分析方法,如时域波形分析、时域频谱分析等。

三、实验设备1. PC机2. MATLAB软件3. 连续时间信号发生器4. 示波器四、实验内容与步骤1. 基本连续时间信号的时域表示(1)在MATLAB中编写程序,生成单位冲激信号、单位阶跃信号和正弦信号。

(2)绘制这些信号的时域波形图,观察其特性。

2. 连续时间信号的时域运算(1)编写程序,实现两个连续时间信号的卷积运算。

(2)绘制卷积结果的时域波形图,观察其特性。

3. 连续时间信号的时域分析方法(1)编写程序,对连续时间信号进行微分和积分运算。

(2)绘制微分和积分结果的时域波形图,观察其特性。

4. 使用MATLAB进行连续时间信号的时域分析(1)使用MATLAB中的函数进行连续时间信号的时域分析,如fft、ifft、diff、int等。

(2)绘制分析结果的时域波形图和频谱图,观察其特性。

五、实验结果与分析1. 基本连续时间信号的时域表示通过实验,我们成功生成了单位冲激信号、单位阶跃信号和正弦信号,并绘制了它们的时域波形图。

观察波形图,我们可以发现这些信号具有不同的特性,如单位冲激信号具有脉冲性质,单位阶跃信号具有阶跃性质,正弦信号具有周期性质。

2. 连续时间信号的时域运算通过实验,我们成功实现了两个连续时间信号的卷积运算,并绘制了卷积结果的时域波形图。

观察波形图,我们可以发现卷积运算的结果具有以下特性:(1)卷积运算的结果是两个信号的叠加。

信号与系统MATL实验及代码

信号与系统MATL实验及代码

实验一、MATLAB编程基础及典型实例一、实验目的(1)熟悉MATLAB软件平台的使用;(2)熟悉MATLAB编程方法及常用语句;(3)掌握MATLAB的可视化绘图技术;(4)结合《信号与系统》的特点,编程实现常用信号及其运算。

示例一:在两个信号进行加、减、相乘运算时,参于运算的两个向量要有相同的维数,并且它们的时间变量范围要相同,即要对齐。

编制一个函数型m文件,实现这个功能。

function [f1_new,f2_new,n]=duiqi(f1,n1,f2,n2)a=min(min(n1),min(n2));b=max(max(n1),max(n2));n=a:b;f1_new=zeros(1,length(n));f2_new=zeros(1,length(n));tem1=find((n>=min(n1))&(n<=max(n1))==1);f1_new(tem1)=f1;tem2=find((n>=min(n2))&(n<=max(n2))==1);f2_new(tem2)=f2;四、实验内容与步骤− 2 t (2)绘制信号x(t)= esin( t=0:0.1:30; 23t ) 的曲线,t的范围在0~30s,取样时间间隔为0.1s。

y=exp(-sqrt(2)*t).*sin(2*t/3); plot(t,y);(3)在n=[-10:10]范围产生离散序列:x( n)=⎧2 n ,− 3⎨≤ n ≤ 3,并绘图。

⎩0, Othern=-10:1:10;z1=((n+3)>=0);z2=((n-3)>=0);x=2*n.*(z1-z2);stem(n,x);(4)编程实现如下图所示的波形。

t=-2:0.001:3;f1=((t>=-1)&(t<=1));f2=((t>=-1)&(t<=2));f=f1+f2;plot(t,f);axis([-2,3,0,3]);(5)设序列f1(k)={ 0 , 1 , 2 , 3 , 4 , 5 },f2(k)={ 6 , 5 , 4 , 3 , 2 , 1 , 0 }。

MATLAB中的时间域和频域特征提取方法

MATLAB中的时间域和频域特征提取方法

MATLAB中的时间域和频域特征提取方法引言:近年来,随着计算机技术的飞速发展,数据处理和分析成为各个领域的关注焦点。

在信号处理领域,时间域和频域特征提取是一项重要的任务,它们可以帮助我们更好地理解和利用信号的特性。

MATLAB作为一种强大的数据处理工具,提供了丰富的函数和工具箱,可以实现时间域和频域特征提取的各种方法。

本文将介绍MATLAB中常用的时间域和频域特征提取方法。

时间域特征提取方法:时间域特征是指信号在时间轴上的特性。

常见的时间域特征包括均值、方差、能量、时域波形等。

MATLAB提供了一系列函数和方法,可以方便地计算这些特征。

均值是描述信号波形中心位置的指标,MATLAB中可以使用mean函数来计算。

例如,对于一个信号向量x,可以使用mean(x)来计算其均值。

方差是描述信号离散程度的指标,MATLAB中可以使用var函数来计算。

例如,对于一个信号向量x,可以使用var(x)来计算其方差。

能量是描述信号强度大小的指标,MATLAB中可以使用norm函数来计算能量。

例如,对于一个信号向量x,可以使用norm(x)来计算其能量。

时域波形是描述信号在时间轴上的形状的指标,MATLAB提供了丰富的绘图函数,如plot和stem,可以帮助我们可视化信号的时域波形。

这些函数可以通过调整参数来实现不同的显示效果,使我们更好地观察信号的特点。

频域特征提取方法:频域特征是指信号在频率轴上的特性。

常见的频域特征包括频谱、功率谱、谱熵等。

MATLAB提供了多种方法和函数,可以方便地计算这些特征。

频谱是描述信号频率分布的指标,MATLAB中可以使用fft函数来计算信号的频谱。

例如,对于一个信号向量x,可以使用X = fft(x)来计算其频谱。

然后,可以使用plot函数将频谱可视化。

功率谱是描述信号频率分布强度的指标,MATLAB中可以使用pwelch函数来计算信号的功率谱。

例如,对于一个信号向量x,可以使用[Pxx,f] = pwelch(x)来计算其功率谱。

matlab 功率密度谱生成时域信号

matlab 功率密度谱生成时域信号

一、引言时域信号是表示信号随时间变化的波形,它通常是连续的,并且可以使用各种数学方法进行分析和处理。

在信号处理领域中,功率密度谱是对时域信号进行频域分析的重要工具,它可以帮助我们理解信号的频率成分和能量分布情况。

在matlab中,可以使用一些内置的函数和工具来生成时域信号的功率密度谱,这对于研究和分析信号具有重要意义。

二、时域信号的生成1. 在matlab中,可以使用一系列函数来生成各种类型的时域信号,如正弦信号、方波信号、三角波信号等。

其中,最常用的函数是sin()、square()和sawtooth()函数。

可以使用sin()函数生成一个频率为100Hz,幅值为1的正弦信号:```matlabfs = 1000; % 采样频率t = 0:1/fs:1-1/fs; % 时间向量x = sin(2*pi*100*t); % 生成正弦信号```2. 还可以使用randn()函数生成高斯白噪声信号:```matlabx = randn(1, 1000); % 生成包含1000个样本的高斯白噪声信号```三、功率密度谱的生成1. 一般来说,使用fft()函数可以将时域信号转换为频域信号,然后通过对频域信号取模平方即可得到功率谱密度。

```matlabN = length(x); % 信号长度X = fft(x, N); % 进行傅里叶变换Pxx = X.*conj(X)/(N*fs); % 计算功率谱密度f = (0:N-1)*(fs/N); % 频率向量plot(f,Pxx) % 作图显示xlabel('Frequency (Hz)')ylabel('Power')```四、功率密度谱的解释和应用1. 通过生成的功率密度谱,可以直观地看到信号在不同频率下的能量分布情况。

对于正弦信号,功率密度谱会在对应的频率点上有明显的峰值,并且能量几乎全部集中在该频率附近;而对于白噪声信号,功率密度谱则会在各个频率上都有一定的能量分布,没有明显的峰值。

MATLAB离散信号的产生和频谱分析实验报告

MATLAB离散信号的产生和频谱分析实验报告

MATLAB离散信号的产⽣和频谱分析实验报告实验⼀离散信号的产⽣和频谱分析⼀、实验⽬的仿真掌握采样定理。

学会⽤FFT 进⾏数字谱分析。

掌握FFT 进⾏数字谱分析的计算机编程实现⽅法。

培养学⽣综合分析、解决问题的能⼒,加深对课堂内容的理解。

⼆、实验要求掌握采样定理和数字谱分析⽅法;编制FFT 程序;完成正弦信号、线性调频信号等模拟⽔声信号的数字谱分析;三、实验内容单频脉冲(CWP )为)2e xp()()(0t f j T t rec t t s π=。

式中,)(Ttrect 是矩形包络,T 是脉冲持续时间,0f 是中⼼频率。

矩形包络线性调频脉冲信号(LFM )为)]21(2exp[)()(20Mt t f j Ttrect t s +=π。

式中,M 是线性调频指数。

瞬时频率Mt f +0是时间的线性函数,频率调制宽度为MT B =。

设参数为kHz f 200=,ms T 50=,kHz B 10=,采样频率kHz f s 100=。

1.编程产⽣单频脉冲、矩形包络线性调频脉冲。

2.编程实现这些信号的谱分析。

3.编程实现快速傅⽴叶变换的逆变换。

四、实验原理1、采样定理所谓抽样,就是对连续信号隔⼀段时间T 抽取⼀个瞬时幅度值。

在进⾏模拟/数字信号的转换过程中,当采样频率fs ⼤于信号中最⾼频率f 的2倍时(fs>=2f),采样之后的数字信号完整地保留了原始信号中的信息,⼀般实际应⽤中保证采样频率为信号最⾼频率的5~10倍;采样定理⼜称奈奎斯特定理。

2、离散傅⾥叶变换(FFT )长度为N 的序列()x n 的离散傅⽴叶变换()X k 为:10()(),0,....,1N nkN n X k x n W k N -===-∑N 点的DFT 可以分解为两个N/2点的DFT ,每个N/2点的DFT ⼜可以分解为两个N/4点的DFT 。

依此类推,当N 为2的整数次幂时(2MN =),由于每分解⼀次降低⼀阶幂次,所以通过M 次的分解,最后全部成为⼀系列2点DFT 运算。

连续非周期信号频谱分析及Matlab实现

连续非周期信号频谱分析及Matlab实现

连续非周期信号频谱分析及Matlab实现作者:谢海霞孙志雄来源:《现代电子技术》2013年第11期摘要:为了便于计算机辅助计算复杂的连续信号频谱,经常采用DFT方法。

DFT不仅能反映信号的频域特征更便于用计算机处理。

这里先对连续非周期信号做离散化处理,然后截短得到有限长序列,最后做DFT变换。

针对常用信号DFT谱分析的原理及谱分析中的相关问题进行了较为深入的探讨,并结合实例用Matlab仿真软件进行了分析和验证。

关键词: DFT;频谱分析; Matlab;矩形窗; Hamming窗中图分类号:TN911.72⁃34 文献标识码: A 文章编号: 1004⁃373X(2013)11⁃0053⁃040 引言频谱分析在数字信号处理中用途广泛:如滤波、检测等方面,这些都需要DFT(Discrete Fourier Transform)运算[1⁃3]。

信号的Fourier变换建立了信号的时域与频域之间的一一对应关系,可以借助DFT来分析。

有限长序列的DFT可以由数字方法直接计算,且DFT存在快速算法,便于用计算机处理[4⁃6]。

本文介绍具体的连续非周期信号结合Matlab软件来分析其频谱。

1 连续非周期信号谱DFT分析在已知连续信号数学解析式的情况下,非周期信号的频谱可以根据Fourier变换的定义进行解析计算。

实际应用中的多数信号不存在数学解析式,信号的频谱无法利用傅里叶分析公式方法直接计算,一般需采用数值方法进行近似计算分析频谱,在进行数字计算时,需对计算的连续变量进行离散化。

由于连续非周期信号[x(t)]的频谱函数[X(jω)]是连续函数,因此,需要对其进行离散化处理得到[x[n]]以近似分析相应的频谱。

通过建立序列[x[n]]的离散Fourier 变换[X[m]]与连续非周期信号[x(t)]的Fourier变换[X(jω)]之间的关系,可以利用DFT对连续非周期信号频谱进行近似分析,此近似分析过程中一般将会出现三种现象:混叠现象、泄漏现象和栅栏现象[7⁃8]。

matlab时域数据转换频域

一、概述时域数据和频域数据是信号处理中常见的两种数据形式,它们分别表示了信号在时间和频率上的特征。

在信号处理和分析中,经常需要将时域数据转换为频域数据,以便更好地理解和分析信号的特性。

MATLAB作为一种强大的数学软件工具,可以帮助我们实现时域数据到频域数据的转换,本文将介绍在MATLAB中进行时域数据转换频域的方法。

二、MATLAB中的频域分析工具MATLAB提供了丰富的频域分析工具,包括快速傅里叶变换(FFT)、离散傅里叶变换(DFT)等。

这些工具可以帮助我们将时域数据转换为频域数据,并进行频谱分析、滤波等操作。

三、使用FFT进行时域数据转换频域1. 准备时域数据我们需要准备时域数据,可以是一维的信号数据,也可以是多维的数据。

在MATLAB中,可以通过直接输入数据或者读取外部文件的方式获取时域数据。

2. 调用FFT函数进行频域转换在MATLAB中,可以使用fft函数来进行快速傅里叶变换,将时域数据转换为频域数据。

FFT函数的语法为:Y=fft(X)其中,X为输入的时域数据,Y为输出的频域数据。

通过调用fft函数,我们可以得到时域数据的频域表示。

3. 频域数据处理与分析得到频域数据之后,我们可以进行频谱分析、滤波、频域特征提取等操作。

MATLAB提供了丰富的工具和函数,例如spectrogram函数用于频谱分析,滤波器设计工具用于频域滤波等,可以帮助我们对频域数据进行进一步的处理和分析。

四、示例下面以一个简单的示例来演示如何在MATLAB中进行时域数据转换频域的操作。

假设我们有一个简单的正弦信号,其频率为100Hz,振幅为1,采样率为1000Hz,信号时长为1s。

我们首先生成这个信号,并画出其时域波形。

```matlabfs=1000; 采样率为1000Hzt=0:1/fs:1; 时间范围为0到1sf=100; 频率为100Hzx=sin(2*pi*f*t); 生成正弦信号plot(t,x); 画出时域波形xlabel('Time(s)'); ylabel('Amplitude');title('Time Dom本人n Signal');```接下来,我们调用fft函数,将时域数据转换为频域数据,并画出其频谱图。

matlab通过输入输出的时域信号求频响函数

文章标题:深入理解MATLAB中时域信号求频响函数的方法1. 介绍MATLAB是一种广泛应用于工程和科学领域的计算软件,其强大的信号处理能力使其成为了时域信号求频响函数的研究利器。

在本文中,我们将深入探讨MATLAB中通过输入输出的时域信号来求取频响函数的方法,以帮助读者更好地理解和应用这一技术。

2. 时域信号的定义时域信号是指信号随时间变化的波形。

在MATLAB中,我们可以使用一维数组来表示时域信号,其中每个元素代表了在对应时间点上的信号值。

通过对时域信号进行分析,我们可以了解到信号的幅度、频率、相位等信息,从而为后续的频域分析奠定基础。

3. 频响函数的含义频响函数是指系统对不同频率信号的响应情况,它可以帮助我们了解系统在不同频率下的特性。

在MATLAB中,通过输入输出的时域信号来求取频响函数,可以帮助我们深入了解系统的频率响应,并进一步用于系统的建模、仿真和控制。

4. MATLAB中时域信号求频响函数的方法在MATLAB中,我们可以使用多种方法来对时域信号求取频响函数。

其中最常用的方法是利用傅里叶变换和频谱分析的工具箱。

通过对输入输出的时域信号进行傅里叶变换,我们可以得到它们的频谱,进而求取频响函数。

具体步骤如下:4.1 输入输出时域信号的获取我们需要获取系统的输入信号和输出信号。

在MATLAB中,可以通过读取文件、仿真模型或者自定义信号生成函数来获取这些时域信号。

4.2 时域信号的傅里叶变换接下来,我们对输入输出的时域信号进行傅里叶变换。

通过调用MATLAB中的fft函数,我们可以将时域信号转换为频域信号。

4.3 频域信号的处理得到频域信号后,我们可以对其进行进一步的处理,例如频谱分析、滤波等操作。

这些处理可以帮助我们更好地理解系统的频率响应。

4.4 求取频响函数通过对输入输出的频域信号进行处理,我们可以求取系统的频响函数。

这一步一般会涉及到一些复杂的数学运算或者工具箱函数的调用,但MATLAB提供了丰富的工具和函数来简化这一过程。

利用Matlab绘制正弦信号的频谱图并做相关分析

利用Matlab绘制正弦信号的频谱图并做相关分析利用Matlab绘制正弦信号的频谱图并做相关分析一、作业要求:1、信号可变(信号的赋值、相位、频率可变);2、采样频率fs可变;3、加各种不同的窗函数并分析其影响;4、频谱校正;5、频谱细化。

二、采用matlab编写如下程序:clear;clf;fs=100;N=1024; %采样频率和数据点数A=20;B=30;C=0.38;n=0:N-1;t=n/fs; %时间序列x=A*sin(2*pi*B*t+C); %信号y=fft(x,N); %对信号进行傅里叶变换yy=abs(y); %求得傅里叶变换后的振幅yy=yy*2/N; %幅值处理f=n*fs/N; %频率序列subplot(3,3,1),plot(f,yy); %绘出随频率变化的振幅xlabel('频率/\itHz');ylabel('振幅');title('图1:fs=100,N=1024');grid on;%两种信号叠加,x=A*sin(2*pi*B*t+C)+2*A*sin(2*pi*1.5*B*t+2.5*C); %信号y=fft(x,N); %对信号进行傅里叶变换yy=abs(y); %求得傅里叶变换后的振幅yy=yy*2/N; %幅值处理f=n*fs/N; %频率序列subplot(3,3,2),plot(f,yy); %绘出随频率变化的振幅xlabel('频率/\itHz');ylabel('振幅');title('图2:fs=100,N=1024,两种信号叠加');grid on;%加噪声之后的图像x=A*sin(2*pi*B*t+C)+28*randn(size(t));y=fft(x,N);yy=abs(y);yy=yy*2/N; %幅值处理subplot(3,3,3),plot(f(1:N/2.56),yy(1:N/2.56));xlabel('频率/\itHz');ylabel('振幅');title('图3:fs=100,N=1024混入噪声');grid on;%改变采样点数N=128N=128;n=0:N-1;t=n/fs; %时间序列x=A*sin(2*pi*B*t+C); %信号y=fft(x,N); %对信号进行傅里叶变换yy=abs(y); %求得傅里叶变换后的振幅yy=yy*2/N; %幅值处理f=n*fs/N; %频率序列subplot(3,3,4),plot(f(1:N/2.56),yy(1:N/2.56)); %绘出随频率变化的振幅xlabel('频率/\itHz');ylabel('振幅');title('图4:fs=100,N=128');grid on;%改变采样频率为200Hz时的频谱fs=400;N=1024;n=0:N-1;t=n/fs;x=A*sin(2*pi*B*t+C); %信号y=fft(x,N); %对信号进行快速傅里叶变换yy=abs(y); %求取傅里叶变换的振幅yy=yy*2/N; %幅值处理f=n*fs/N;subplot(3,3,5),plot(f(1:N/2.56),yy(1:N/2.56)); %绘出随频率变化的振幅xlabel('频率/\itHz');ylabel('振幅');title('图5:fs=400,N=1024');grid on;%加三角窗函数fs=100;N=1024; %采样频率和数据点数n=0:N-1;t=n/fs; %时间序列x=A*sin(2*pi*B*t+C); %信号window=triang(N);%生成三角窗函数x=x.*window';%加窗函数y=fft(x,N); %对信号进行傅里叶变换yy=abs(y); %求得傅里叶变换后的振幅yy=yy*2/N; %幅值处理f=n*fs/N; %频率序列subplot(3,3,6),plot(f(1:N/2.56),2*yy(1:N/2.56)); %绘出随频率变化的振幅xlabel('频率/\itHz');ylabel('振幅');title('图6:fs=100,N=1024,加三角窗函数');grid on;%加海明窗函数后的频谱fs=100;N=1024;n=0:N-1;t=n/fs;x=A*sin(2*pi*B*t+C); %信号window=hamming(N);%生成海明窗函数x=x.*window';%加窗函数y=fft(x,N); %对信号进行快速傅里叶变换yy=abs(y); %求取傅里叶变换的振幅yy=yy*2/N; %幅值处理f=n*fs/N;subplot(3,3,7),plot(f(1:N/2.56),1.852*yy(1:N/2.56)); %绘出随频率变化的振幅xlabel('频率/\itHz');ylabel('振幅');title('图7:fs=100,N=1024,加海明窗函数');grid on;%加汉宁窗函数后的频谱fs=100;N=1024;n=0:N-1;t=n/fs;x=A*sin(2*pi*B*t+C); %信号window=hanning(N);%生成汉宁窗函数x=x.*window';%加窗函数y=fft(x,N); %对信号进行快速傅里叶变换yy=abs(y); %求取傅里叶变换的振幅yy=yy*2/N; %幅值处理f=n*fs/N;subplot(3,3,8),plot(f(1:N/2.56),2*yy(1:N/2.56)); %绘出随频率变化的振幅xlabel('频率/\itHz');ylabel('振幅');title('图8:fs=100,N=1024,加汉宁窗函数');grid on;三、运行结果如下:四、分析与结论:1)从所做图像可以看出,信号的幅值均小于真实值,说明在截断信号时存在泄露。

南邮信号课程实验

课程实验报告( 2014 / 2015 学年第 1 学期)实验名称:用Matlab进行信号与系统的时频域分析专业电子信息工程学生姓名班级学号指导教师指导单位通信与信息工程学院日期2014 年11月 6 日一、实验目的1.了解连续信号、离散信号的波形特点;2.掌握连续信号、离散信号的Matlab实现;3.熟悉Matlab中plot、stem等函数的应用;4.掌握利用matlab函数表示常见信号波形。

二、实验任务1.用matlab软件画出连续时间信号的卷积的波形并修改其时间区间改成不同脉宽观察其卷积波形;2.用matlab软件计算卷积结果并画出卷积波形;3.用matlab软件画出矩形脉冲频谱图并修改其时间常数和脉宽和幅度,观察比较实验结果。

三、主要仪器设备硬件:微型计算机软件:Matlab四、实验内容(一)连续时间信号的卷积上机题1.已知两个信号)2()1()(1---=t t t x εε和)1()()(2--=t t t x εε,试分别画出)(),(21t x t x 和卷积)()()(21t x t x t y *=的波形。

(上机原程序及所画出的波形图)T=0.01;t1=1;t2=2;t3=0;t4=1;t=0:T:t2+t4;x1=ones(size(t)).*((t>t1)-(t>t2));x2=ones(size(t)).*((t>t3)-(t>t4));y=conv(x1,x2)*T;subplot(3,1,1),plot(t,x1);ylabel('x1(t)');subplot(3,1,2),plot(t,x2);ylabel('x2(t)');subplot(3,1,3),plot(t,y(1:(t2+t4)/T+1));ylabel('y(t)=x1*x2');xlabel(----→t/s');修改后T=0.01;t1=2;t2=4;t3=0;t4=1;t=0:T:t2+t4;x1=ones(size(t)).*((t>t1)-(t>t2));x2=2*ones(size(t)).*((t>t3)-(t>t4));y=conv(x1,x2)*T;subplot(2,5,1),plot(t,x1);ylabel('x1(t)');subplot(2,5,2),plot(t,x2);ylabel('x2(t)');subplot(2,5,3),plot(t,y(1:(t2+t4)/T+1));ylabel('y(t)=x1*x2');xlabel(----→t/s');上机题2.已知两个信号)()(t e t x t ε-=和)()(2/t te t h t ε-=,试用数值计算法求卷积,并分别画出)(),(t h t x 和卷积)()()(t h t x t y *=的波形。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Matlab的连续信号生成及时频域分析 一、实验目的 1、通过实验使学生掌握matlab表示信号的方法; 2、通过实验掌握基于matlab的连续时间信号与系统的时频域分析方法。 二、实验要求 1、通过这次实验,学生应能掌握matlab软件信号表示与系统分析的常用方法。 2、通过实验,学生应能够对连续信号与系统的时频域分析方法有更全面的认识。 三、实验所需环境 1、pc机; 2、Matlab5.3以上版本软件。

四、实验内容 周期连续信号 1) 正弦信号:产生一个幅度为2,频率为4Hz,相位为π/6的正弦信号 t=0:0.0001:1; y=2*sin(8*pi*t+pi/6); plot(t,y); xlabel('t'); ylabel('y(t)') title('ÕýÏÒÐźÅ:y=2sin(8¦Ðt+¦Ð/6)');

2) 周期方波:产生一个幅度为1,基频为3Hz,占空比为20%的周期方波。 t=0:0.0001:2.5; y=square(6*pi*t,20); plot(t,y); axis([0,2.5,-1.5,1.5]); xlabel('t'); ylabel('y(t)') title('·½²¨ÐźÅ');

00.10.20.30.40.50.60.70.80.91-2-1.5-1-0.500.511.52ty(t)正弦信号:y=2sin(8πt+π/6)

00.511.522.5-1.5-1-0.500.511.5ty(t)方波信号3) 阶跃信号; t=-2:0.0001:6; y=[zeros(1,20000),ones(1,60001)]; plot(t,x); axis([-2,6,0,1.5]); xlabel('t'); ylabel('y(t)') title('½×Ô¾ÐźÅ');

4) 指数信号:产生一个时间常数为1的指数信号; t=0:0.0001:50; x=1*exp(-0.1*t); plot(t,x); axis([0,50,0,1.5]); xlabel('t'); ylabel('x(t)') title('½×Ô¾ÐźÅ');

5) 矩形脉冲信号:产生高度为1、宽度为1、关于t=0对称的矩形脉冲信号;产生高度为1、宽度为w、关于t=0对称的矩形脉冲信号;产生高度为1、宽度为3、延时为2s的矩形脉冲信号。 t=-2:0.01:6; plot(t,rectpuls(t,1)); axis([-2,6,0,1.5]); xlabel('t'); ylabel('x(t)') title('¾ØÐÎÂö³å1');

-2-1012345600.511.5ty(t)阶跃信号

-2-1012345600.511.5tx(t)矩形脉冲1

0 5 10 15 20 25 30 35 40 45 50 0 0.5 1 1.5 t x(t) 指数信号 t=-2:0.01:6; plot(t,rectpuls(t,3)); axis([-2,6,0,1.5]); xlabel('t'); ylabel('x(t)') title('¾ØÐÎÂö³å2');

t=-2:0.01:6; plot(t,rectpuls(t-2,3)); axis([-2,6,0,1.5]); xlabel('t'); ylabel('x(t)') title('¾ØÐÎÂö³å3');

2、信号的基本运算 1) 信号的尺度变换、翻转、时移(平移) 已知三角波f(t),用MATLAB画信号f(t)、f(2t)和f(2-2t) 波形,三角波波形自定。 t=-3:0.001:3; ft=tripuls(t,3,1); subplot(3,1,1) plot(t,ft) title('Ô-Èý½Ç²¨') ft1=tripuls(2*t,3,1); subplot(3,1,2) plot(t,ft1) title('Èý½Ç²¨£ºf(2t)') ft2=tripuls((2-2*t),3,1); subplot(3,1,3); plot(t,ft2); title('Èý½Ç²¨£ºf(2-2t)');

-2-1012345600.511.5tx(t)矩形脉冲2

-2-1012345600.511.5tx(t)矩形脉冲3

-3-2-1012300.51原三角波-3-2-1012300.51三角波:f(2t)

-3-2-1012300.51三角波:f(2-2t)tf(t)2) 信号的相加与相乘 相加用算术运算符“+”实现,相乘用数组运算符“.*”实现。 已知信号x(t)=exp(-0.4*t),y(t)=2cos(2pi*t),画出信号x(t)+y(t)、x(t)*y(t)\波形。 t=0:0.001:8; x=exp(-0.4*t); y=2*cos(2*pi*t); ft1=x+y; subplot(2,1,1); plot(t,ft1); title('x(t)+y(t)'); ft2=x.*y; subplot(2,1,2); plot(t,ft2); title('x(t)*y(t)');

1) 离散序列的差分与求和、连续信号的微分与积分 已知三角波f(t),画出其微分与积分的波形,三角波波形自定。 t0=-3;t1=3;dt=0.01; t=t0:dt:t1; f1=tripuls(t,3,0.5); max_f=max(f1); min_f=min(f1); df=diff(f1)/dt; max_df=max(df); min_df=min(df); f=inline('tripuls(t,3,0.5)'); for x=1:length(t) intf(x)=quad(f,-3,t(x)); end max_if=max(intf); min_if=min(intf); subplot(3,1,1),plot(t,f1,'linewidth',2); grid; line([t0 t1],[0 0]); ylabel('f(t)','rotation',0); axis([t0,t1,min_f-0.2,max_f+0.2]); subplot(3,1,2),plot(t(1:length(t)-1),df,'linewidth',2); grid; line([t0 t1],[0 0]); ylabel('df(t)/dt','rotation',0); axis([t0,t1,min_df-0.2,max_df+0.2]);

012345678-2-10123x(t)+y(t)012345678-2-1012x(t)*y(t)

-3-2-1012300.51f(t)

-3-2-10123-1.5-1-0.500.5df(t)/dt

-3-2-1012300.511.5∫f(t)dt

tsubplot(3,1,3), plot(t,intf,'linewidth',2); grid; line([t0 t1],[0 0]); ylabel('¡Òf(t)dt','rotation',0); axis([t0,t1,min_if-0.2,max_if+0.2]) xlabel('t');

3、连续时间系统分析 1) 连续时间系统零状态响应的求解方法 求系统y”(t)+2y’(t)+100y(t)=10f(t)的零状态响应,已知f(t)=(sin2t) u(t)。 ts=0; te=5; dt=0.01; t=ts:dt:te; sys=tf([1],[1 2 100]); f=10*sin(2*pi*t); y=lsim(sys,f,t); plot(t,y); xlabel('t'); ylabel('y(t)'); title('Á¬ÐøÊ±¼äϵͳÁã״̬ÏìÓ¦');

2) 连续时间系统冲激响应和阶跃响应的求解方法 求系统y”(t)+2y’(t)+100y(t)=10f(t)的零状态响应,已知f(t)为单位冲激信号。 ts=0; te=5; dt=0.01; t=ts:dt:te; sys=tf([1],[1 2 100]); f=10*sin(2*pi*t); y=impulse(sys,t); plot(t,y); xlabel('t'); title('y”(t)+2y’(t)+100y(t)=10f(t)的零状态响应');

00.511.522.533.544.55-0.08

-0.06-0.04-0.0200.020.040.060.080.1ty”(t)+2y’(t)+100y(t)=10f(t)的零状态响应

00.511.522.533.544.55-0.25-0.2-0.15-0.1-0.0500.050.10.150.2ty(t)y”(t)+2y’(t)+100y(t)=10f(t)的零状态响应

相关文档
最新文档