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

实验四 非周期信号频域分析1 实验目的(1) 掌握傅里叶变换的分析方法及其物理意义。
(2) 掌握各种典型的连续时间非周期信号的频谱特征以及傅里叶变换的主要性质。
(3) 学习掌握利用MA TLAB 语言编写计算CTFT 的仿真程序,并能利用这些程序对一些典型信号进行频谱分析,验证CTFT 的若干重要性质。
2 实验原理及方法2.1连续时间信号傅里叶变换——CTFT傅里叶变换在信号分析中具有非常重要的意义,它主要是用来进行信号的频谱分析的。
傅里叶变换和其逆变换定义如下:⎰∞∞--=dt e t x j X t j ωω)()( 4-1 ⎰∞∞-=ωωπωd e j X t x t j )(21)( 4-2连续时间傅里叶变换主要用来描述连续时间非周期信号的频谱。
任意非周期信号,如果满足狄里克利条件,它可以被看作是由无穷多个不同频率(这些频率都是非常的接近)的周期复指数信号e j ωt 的线性组合构成的,每个频率所对应的周期复指数信号e j ωt 称为频率分量,其相对幅度为对应频率的|X(j ω)|之值,其相位为对应频率的X(j ω)的相位。
X(j ω)通常为关于ω的复函数,可以按照复数的极坐标表示方法表示为:X(j ω)=| X(j ω)|e j ∠ X(j ω)其中,| X(j ω)|称为x(t)的幅度谱, ∠X(j ω)称为x(t)的相位谱。
给定一个连续时间非周期信号x(t),它的频谱是连续且非周期的。
对于连续时间周期信号,也可以用傅里叶变换来表示其频谱,其特点是,连续时间周期信号的傅里叶变换是由冲激序列构成的,是离散的——这是连续时间周期信号的傅里叶变换的基本特征。
2.2 用MA TLAB 实现CTFT 及其逆变换2.2.1 用MATLAB 实现CTFT 的计算MA TLAB 进行傅里叶变换有两种方法,一种利用符号运算的方法计算,另一种是数值计算,本实验采用数值计算的方法。
严格来说,用数值计算的方法计算连续时间信号的傅里叶变换需要有个限定条件,即信号是时限信号,也就是当时间|t|大于某个给定时间时其值衰减为零或接近于零,这个条件与前面提到的为什么不能用无限多个谐波分量来合成周期信号的道理是一样的。
matlab软件仿真实验(信号与系统)(1)

matlab软件仿真实验(信号与系统)(1)《信号与系统实验报告》学院:信息科学与⼯程学院专业:物联⽹⼯程姓名:学号:⽬录实验⼀、MATLAB 基本应⽤实验⼆信号的时域表⽰实验三、连续信号卷积实验四、典型周期信号的频谱表⽰实验五、傅⽴叶变换性质研究实验六、抽样定理与信号恢复实验⼀MATLAB 基本应⽤⼀、实验⽬的:学习MATLAB的基本⽤法,了解 MATLAB 的⽬录结构和基本功能以及MATLAB在信号与系统中的应⽤。
⼆、实验内容:例⼀已知x的取值范围,画出y=sin(x)的图型。
x=0:0.05:4*pi;y=sin(x);plot(y)例⼆计算y=sin(π/5)+4cos(π/4)例三已知z 取值范围,x=sin(z);y=cos(z);画三维图形。
z=0:pi/50:10*pi;x=sin(z);y=cos(z);plot3(x,y,z)xlabel('x')ylabel('y')zlabel('z')例四已知x的取值范围,⽤subplot函数绘图。
参考程序:x=0:0.05:7;y1=sin(x);y2=1.5*cos(x);y3=sin(2*x);y4=5*cos(2*x);subplot(2,2,1),plot(x,y1),title('sin(x)')subplot(2,2,2),plot(x,y2),title('1.5*cos(x)')subplot(2,2,3),plot(x,y3),title('sin(2*x)')subplot(2,2,4),plot(x,y4),title('5*cos(2*x)')连续信号的MATLAB表⽰1、指数信号:指数信号Ae at在MATLAB中可⽤exp函数表⽰,其调⽤形式为:y=A*exp(a*t) (例取 A=1,a=-0.4)参考程序:A=1;a=-0.4;t=0:0.01:10;ft=A*exp(a*t);plot(t,ft);grid on;2、正弦信号:正弦信号Acos(w0t+?)和Asin(w0t+?)分别由函数cos和sin表⽰,其调⽤形式为:A*cos(w0t+phi) ;A*sin(w0t+phi) (例取A=1,w0=2π,?=π/6) 参考程序:A=1;w0=2*pi; phi=pi/6; t=0:0.001:8;ft=A*sin(w0*t+phi);plot(t,ft);grid on ;3、抽样函数:抽样函数Sa(t)在MATLAB中⽤sinc函数表⽰,其定义为:sinc(t)=sin(πt)/( πt)其调⽤形式为:y=sinc(t)参考程序:t=-3*pi:pi/100:3*pi;ft=sinc(t/pi);plot(t,ft);grid on;4、矩形脉冲信号:在MATLAB中⽤rectpuls函数来表⽰,其调⽤形式为:y=rectpuls(t,width),⽤以产⽣⼀个幅值为1,宽度为width,相对于t=0点左右对称的矩形波信号,该函数的横坐标范围由向量t决定,是以t=0为中⼼向左右各展开width/2的范围,width的默认值为1。
matlab 计算频谱的命令

【主题】matlab 计算频谱的命令一、matlab 中的频谱分析在 matlab 中,频谱分析是一种常见的数据处理技术,主要用于分析信号在频域上的特性。
频谱分析可以帮助我们了解信号的频率成分、周期性特征以及信号之间的关系,因此在信号处理、通信系统、音频分析等领域有着广泛的应用。
matlab 提供了丰富的频谱分析函数和命令,通过这些工具我们可以快速、准确地进行频谱分析,并获取有价值的信息。
二、常用的频谱分析命令1. fftfft 是 matlab 中最常用的频谱分析命令之一。
它可以将时域信号转换为频域信号,通过计算信号的傅立叶变换来获取信号的频谱信息。
其基本语法为:Y = fft(X),其中 X 表示输入的时域信号,Y 表示输出的频域信号。
对于一个长度为 N 的输入信号,fft 命令将返回一个长度为 N 的复数数组,其中包含了信号在频域上的幅度和相位信息。
我们可以进一步对这些复数进行振幅谱和相位谱的分析,以获取更详细的频谱特征。
2. periodogramperiodogram 是用于计算信号功率谱密度(PSD)的命令。
它可以帮助我们分析信号在频域上的能量分布情况,从而了解信号的频率成分和能量分布情况。
其基本语法为:Pxx = periodogram(X),其中 X 表示输入的信号。
通过 periodogram 命令,我们可以得到信号在不同频率上的功率谱密度估计值,以及相应的频率坐标。
这些信息对于分析信号的频谱特性非常有帮助,可以用于识别信号的主要频率成分和频率分布规律。
3. spectrogramspectrogram 命令用于计算信号的短时傅立叶变换,并绘制信号的时频谱图像。
它可以帮助我们观察信号在时间和频率上的变化规律,从而发现信号的时变特性和频率变化趋势。
其基本语法为:S = spectrogram(X),其中 X 表示输入的信号。
通过 spectrogram 命令,我们可以得到信号的时频谱图像,其中横轴表示时间,纵轴表示频率,颜色表示信号强度。
电路、信号与系统(2)实验指导书

描述线性时不变离散系统的差分方程为
编写求解上述方程的通用程序。
[建模]
将方程变形可得(用MATLAB语言表示)
a(1)*y(n)= b(1)*u(n)+…+ b(nb)*u(n-nb+1)- a(2)*y(n-1)-…- a(na)*y(n-na+1)
令us== [u(n),…, u(n-nb+1)]; ys=[y(n-1),…, y(n-na+1)]
x(n)={2,1,-1,3,1,4,3,7}(其中加下划线的元素为第0个采样点)在MATLAB中表示为:
n=[-3,-2,-1,0,1,2,3,4]; x=[2,1,-1,3,1,4,3,7];
当不需要采样位置信息或这个信息是多余的时候,可以只用x向量来表示。
(一)离散信号的MATLAB表述
[问题]
实验一连续时间信号与系统分析
一、实验目的
1、了解连续时间信号的特点;
2、掌握连续时间信号的MATLAB描述;
3、掌握连续LTI系统单位冲激响应的求解方法;
4、掌握连续LTI系统的零状态响应的求解方法。
二、实验内容
严格说来,只有用符号推理的方法才能分析连续系统,用数值方法是不能表示连续信号的,因为它给出的是各个样点的数据。只有当样本点取得很密时才可看成连续信号。所谓很密,是相对于信号变化的快慢而言的。以下均假定相对于采样点密度而言,信号变化足够慢。
elseif lu<lh nh=0; nu=lh-lu;
else nu=0; nh=0;
end
dt=0.1;
lt=lmax;
u=[zeros(1, lt), uls, zeros(1, nu), zeros(1, lt)];
实验二--连续时间信号的频域分析

实验二连续时间信号的频域分析专业班级通信1601 姓名宁硕学号 20 评分:实验日期: 2017 年 12 月 13日指导教师: 张鏖峰一、实验目的1、掌握连续时间周期信号的傅里叶级数的物理意义和分析方法;2、观察截短傅里叶级数而产生的“Gibbs现象”,了解其特点以及产生的原因;3、掌握连续时间傅里叶变换的分析方法及其物理意义;4、掌握各种典型的连续时间非周期信号的频谱特征以及傅里叶变换的主要性质;5、学习掌握利用MATLAB语言编写计算CTFS、CTFT和DTFT的仿真程序,并能利用这些程序对一些典型信号进行频谱分析,验证CTFT、DTFT的若干重要性质。
基本要求:掌握并深刻理傅里叶变换的物理意义,掌握信号的傅里叶变换的计算方法,掌握利用MATLAB编程完成相关的傅里叶变换的计算。
以看得很清楚。
二、实验原理及方法任何一个周期为T1的正弦周期信号,只要满足狄利克利条件,就可以展开成傅里叶级数。
其中三角傅里叶级数为:2.1或:2.2指数形式的傅里叶级数为:2.3其中,为指数形式的傅里叶级数的系数,按如下公式计算:2.4傅里叶变换在信号分析中具有非常重要的意义,它主要是用来进行信号的频谱分析的。
傅里叶变换和其逆变换定义如下:2.52.6连续时间傅里叶变换主要用来描述连续时间非周期信号的频谱。
按照教材中的说法,任意非周期信号,如果满足狄里克利条件,那么,它可以被看作是由无穷多个不同频率(这些频率都是非常的接近)的周期复指数信号ejt的线性组合构成的,每个频率所对应的周期复指数信号ejt称为频率分量(frequency component),其相对幅度为对应频率的|X(j)|之值,其相位为对应频率的X(j)的相位三、实验内容和要求Q2-1 编写程序Q2_1,绘制下面的信号的波形图:其中,0 = 0.5π,要求将一个图形窗口分割成四个子图,分别绘制cos(0t)、cos(30t)、cos(50t) 和x(t) 的波形图,给图形加title,网格线和x 坐标标签,并且程序能够接受从键盘输入的和式中的项数。
信号与系统(陈后金)_MATLAB

function [f,k]=impseq(k0,k1,k2) %产生 f[k]=delta(k-k0);k1<=k<=k2 k=[k1:k2];f=[(k-k0)==0]; k0=0;k1=-50;k2=50; [f,k]=impseq(k0,k1,k2); stem(k,f)
已知三角波x(t),用MATLAB画出的x(2t)和x(2-2t) 波形
x(2t) 1 0. 8 0. 6 0. 4 0. 2 03 1 0. 8 0. 6 0. 4 0. 2 03 2 1 0 1 2 3 2 1 0 x(2-2t) 1 2 3
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -3
指数信号Aeat
指数序列ak
y = A*exp(a*t);
幂运算a.^k实现
正弦型信号
抽样函数Sa(t) 矩形脉冲信号
内部函数cos( ) 和sin( )
sinc(t) y = rectpuls(t,width)
三角波脉冲信号 y = tripuls(t, width,skew)
三、表达式
数值
MATLAB用常规的十进制表示数值 用i或j作为后缀来表示复数的虚部 例 1.235e5表示1.235105,x=2+3j abs(x) 求复数x的模 angle(x) 求复数x的相角(弧度) real(x) 求复数x的实部 imag(x) 求复数x的虚部 conj(x) 求复数x的共轭
九、stem函数——绘图函数(discrete)
k=0:39; stem(k,cos(0.9*pi*k)); title('cos(0.9\pik)');
数字信号处理实验报告_完整版

实验1 利用DFT 分析信号频谱一、实验目的1.加深对DFT 原理的理解。
2.应用DFT 分析信号的频谱。
3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境 计算机、MATLAB 软件环境 三、实验基础理论1.DFT 与DTFT 的关系有限长序列 的离散时间傅里叶变换 在频率区间 的N 个等间隔分布的点 上的N 个取样值可以由下式表示:212/0()|()()01N jkn j Nk N k X e x n eX k k N πωωπ--====≤≤-∑由上式可知,序列 的N 点DFT ,实际上就是 序列的DTFT 在N 个等间隔频率点 上样本 。
2.利用DFT 求DTFT方法1:由恢复出的方法如下:由图2.1所示流程可知:101()()()N j j nkn j nN n n k X e x n eX k W e N ωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑ 由上式可以得到:IDFTDTFT( )12()()()Nj k kX e X k Nωπφω==-∑ 其中为内插函数12sin(/2)()sin(/2)N j N x eN ωωφω--= 方法2:实际在MATLAB 计算中,上述插值运算不见得是最好的办法。
由于DFT 是DTFT 的取样值,其相邻两个频率样本点的间距为2π/N ,所以如果我们增加数据的长度N ,使得到的DFT 谱线就更加精细,其包络就越接近DTFT 的结果,这样就可以利用DFT 计算DTFT 。
如果没有更多的数据,可以通过补零来增加数据长度。
3.利用DFT 分析连续信号的频谱采用计算机分析连续时间信号的频谱,第一步就是把连续信号离散化,这里需要进行两个操作:一是采样,二是截断。
对于连续时间非周期信号,按采样间隔T 进行采样,阶段长度M ,那么:1()()()M j tj nT a a a n X j x t edt T x nT e ∞--Ω-Ω=-∞Ω==∑⎰对进行N 点频域采样,得到2120()|()()M jkn Na a M kn NTX j T x nT eTX k ππ--Ω==Ω==∑因此,可以将利用DFT 分析连续非周期信号频谱的步骤归纳如下: (1)确定时域采样间隔T ,得到离散序列(2)确定截取长度M ,得到M 点离散序列,这里为窗函数。
实验二 连续时间信号的频域分析

实验二连续时间信号的频域分析专业班级通信1601 姓名宁硕学号20 评分:实验日期: 2017 年 12 月 13日指导教师:张鏖峰一、实验目的1、掌握连续时间周期信号的傅里叶级数的物理意义和分析方法;2、观察截短傅里叶级数而产生的“Gibbs现象”,了解其特点以及产生的原因;3、掌握连续时间傅里叶变换的分析方法及其物理意义;4、掌握各种典型的连续时间非周期信号的频谱特征以及傅里叶变换的主要性质;5、学习掌握利用MATLAB语言编写计算CTFS、CTFT和DTFT的仿真程序,并能利用这些程序对一些典型信号进行频谱分析,验证CTFT 、DTFT 的若干重要性质。
基本要求:掌握并深刻理傅里叶变换的物理意义,掌握信号的傅里叶变换的计算方法,掌握利用MATLAB 编程完成相关的傅里叶变换的计算。
以看得很清楚。
二、实验原理及方法任何一个周期为T 1的正弦周期信号,只要满足狄利克利条件,就可以展开成傅里叶级数。
其中三角傅里叶级数为:∑∞=++=1000)]sin()cos([)(k k k t k b t k a a t x ωω或: ∑∞=++=100)cos()(kk k t k A A t x ϕω指数形式的傅里叶级数为:∑∞-∞==kt jk k e F t x 0)(ω 其中,k F 为指数形式的傅里叶级数的系数,按如下公式计算:⎰--=2/2/111)(1T Tt jk k dt e t x T F ω傅里叶变换在信号分析中具有非常重要的意义,它主要是用来进行信号的频谱分析的。
傅里叶变换和其逆变换定义如下:⎰∞∞--=dt e t x j X t j ωω)()(⎰∞∞-=ωωπωd e j X t x tj )(21)( 连续时间傅里叶变换主要用来描述连续时间非周期信号的频谱。
按照教材中的说法,任意非周期信号,如果满足狄里克利条件,那么,它可以被看作是由无穷多个不同频率(这些频率都是非常的接近)的周期复指数信号e j?t 的线性组合构成的,每个频率所对应的周期复指数信号e j?t 称为频率分量(frequency component ),其相对幅度为对应频率的|X(j?)|之值,其相位为对应频率的X(j?)的相位三、实验内容和要求Q2-1 编写程序Q2_1,绘制下面的信号的波形图:Λ-+-=)5cos(51)3cos(31)cos()(000t t t t x ωωω∑∞==10)cos()2sin(1n t n n nωπ其中,?0 = π,要求将一个图形窗口分割成四个子图,分别绘制cos(?0t)、cos(3?t)、cos(5?t) 和x(t) 的波形图,给图形加title,网格线和x坐标标签,并且程序能够接受从键盘输入的和式中的项数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《信号与系统A(1)》课程自学报告实施报告题目:连续非周期信号频谱分析及Matlab实现学号:姓名:任课教师:联系方式:第一部分. 理论自学内容阐述(一) 系统物理可实现性、佩利-维纳准则通过之前的学习我们知道,理想低通滤波器在物理上是不可能实现的,但是我们却可以做出传输特性接近理想特性的网络。
如下图是一个低通滤波器,其中 R =√RC图1-1 一个低通滤波网络则其网络传递函数为:(式1-1)引入符号 ωc =1√LC,则(式1-1)改为:其中)(1t v CRL )(2t v --++()()()R L LC C RL C R V V H ωωωωωωωωj 11 j 11j j 11j j j 212+-=+++==()()()ωϕωωωωωωωωωωωj 222e j 3j 33j 11j H H c c cc c c =⎪⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛⋅+⎪⎪⎭⎫ ⎝⎛-=2+222=()()⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡⎪⎪⎭⎫ ⎝⎛--=⎪⎪⎭⎫ ⎝⎛+⎥⎥⎦⎤⎢⎢⎣⎡⎪⎪⎭⎫ ⎝⎛-=2c c 2c 22c 1arctan 11j ωωωωωϕωωωωωH 求出其冲激响应为:h (t )=2ωc √3e−ωc 2sin (√3ωct )画出波形图及频谱图如下:图1-2 h(t)的波形图幅度特性 相位特性图1-3 幅度特性和相位特性可以看出这些曲线与理想低通滤波器有相似之处,但是同时也有不同之处。
这个电路的幅度特性不可能出现零值,冲激响应的起始时刻在t=0处。
那么究竟什么样的系统数学模型可以在物理上实现呢?就时间域特性而言,一个物理可实现网络的冲激响应h(t)在t<0时必须为0。
那么由于理想低通滤波器不是一个因果系统,所以它是不可能在物理上实现的。
从频域特性来看,|H(jw)|要满足平方可积条件。
佩利和维纳证明了对于幅度函数|H(jw)|物理可实现的必要条件是这就是佩利—维纳准则。
佩利—维纳准则只从幅度特性上提出要求,而在相位特性方面却没有给出约束,因此该准则只是系统物理可实现的必要条件,而不是充分条件。
其实只要我们找到一个满足该准则的|H(jw)|,就一定可以找到适当的相位函数φ(w )与它一起构成一个物理可实现的系统函数。
几点说明:①佩利—维纳准则要求可实现的幅度特性其总的衰减不能过于迅速; ②对于物理可实现系统,可以允许H(jw)特性在某些不连续的频率点上为零,但不允许在一个有限频带内为零。
按此原理,理想低通,理想带通,理想带阻等理想滤波器都是不可实现的。
③佩利-维纳准则是系统物理可实现的必要条件,而不是充分条件。
(二) 调制与解调在通信系统中,信号从发射端传输到接收端,为实现信号的传输,往往需要进行调制和解调。
1.调制①定义:将信号的频谱搬移到任何所需的较高频段上的过程。
②分类:按载波:正弦型信号作为载波脉冲串或一组数字信号作为载波按连续性:模拟(连续)调制数字调制模拟调制是数字调制的基础。
∞<+⎰∞∞ωωωd 1)(j ln -2H③说明:我们可以利用傅里叶变换的某些性质说明搬移信号频谱的原理。
由公式载波信号(如cos(w0t))与调制信号(g(t))乘积的傅立叶变换等于二者分别的傅里叶变换卷积除以2π,则可以得到信号的频谱被搬移到载频w0附近。
(a)图2-1 调制原理方框图及其频谱2.解调①定义:将已调信号恢复成原来的调制信号的过程。
②说明:下图是实现解调的一种原理方框图,这里,cos(w0t)信号是接收端的本地载波信号,它与发送端的载波同频同相。
f(t)与cos(w0t)相乘的结果使频谱F(w)向左、右分别移动±w0(并乘以系数1/2),得到G0(w),然后再利用一个低通滤波器(带宽大于wm,小于2w0-wm),滤去在频率为2w0附近的分量,即可取出g(t),完成解调。
(a)图2-2 同步解调原理方框图及其频谱第二部分. 案例陈述及实现方案(一)案例背景在当今,信号系统是一门针对信号分析和系统分析的学科。
信号又分为离散信号和连续信号。
根据对连续信号的分析导出了对线性系统的分析方法:时域分析、频域分析、复频域分析,进而导出了对离散信号的分析方法。
在系统分析的方法中,有运用到很多数学变换和计算:傅里叶变换、拉普拉斯变换,还有级数的运用等等。
频谱分析在数字信号的处理中用途十分广泛,比如如滤波、检测等方面都需要离散傅里叶运算。
信号的傅里叶变换建立了信号的时域与频域之间的一一对应关系,可以借助离散傅里叶来分析信号。
如果连续信号数学解析式已知,非周期信号的频谱就可以根据傅里叶变换的定义进行解析计算。
而在实际应用中,大多数信号不存在数学解析式,这样它们的频谱就无法利用傅里叶分析公式直接计算,这时就需采用数值方法进行近似计算,从而达到分析频谱的目的。
而在进行数字计算时,我们需要对计算的连续变量进行离散化。
由于连续非周期信号 x(t)的频谱函数 X(jω) 是连续函数,因此,需要对其进行离散化处理,从而得到 x[n] ,此时才能近似地分析相应的频谱。
通过建立序列 x[n] 的离散傅里叶变换 X[m] 与连续非周期信号x(t) 的傅里叶变换X(jω) 之间的关系,可以利用离散傅里叶对连续非周期信号频谱进行近似分析。
(二)案例功能及指标在上述近似分析过程中一般将会出现三种现象:①频谱混叠:由傅里叶计算得出的频谱是信号 x(t) 的频谱 X(jω) 周期化的抽样值,如果抽样频率不满足抽样定理,在连续信号离散化时,就会出现信号频谱的混叠,这种现象被称为频谱混叠。
②频率泄漏:对连续非周期信号的采样序列 x[n] 进行离散傅里叶运算时,时间长度总是取有限值,在将信号截短的过程中,就会出现分散的扩展谱线的现象,被称为频率泄漏。
③栅栏现象:由离散傅里叶变换得到的频谱X[m] 只能是连续非周期信号频谱X(jω) 上的有限离散频点采样,由于 X[m] 是离散序列,因而无法反映抽样点之间的具体细节,这种现象称为栅栏现象。
这些现象与应用中信号和离散傅里叶变换的参数选择有关。
频率混叠与连续信号的时域抽样间隔有关,频率泄漏与信号的时域及窗型有关,栅栏现象与离散傅里叶变换的点数有关。
在大多数情况下,一般已知待分析连续信号的最高频率,以及离散傅里叶变换分析的频率分辨率的目标值。
下面根据信号的傅里叶变换的理论,讨论利用离散傅里叶变换进行谱分析的参数(抽样频率、持续时间、样点数等)选择的原则。
首先确定信号抽样频率 fs,fs应满足时域抽样定理,即 fs ≥2fm,其中 fm为待分析的连续信号的最高频率,抽样间隔T应满足:T=1fn⁄≤1(2fm)⁄(1)紧接着确定抽样信号的长度 N ,N 应满足频率分辨率Δf 的要求,即N≥cfn∆f⁄(2)矩形窗时取 c=1,Hamming窗时取 c=2 。
根据谱线间隔Δfd确定离散傅里叶变换的点数L ,即:L≥fs∆fd⁄(3)L 一般取满足式(3)的2的整数幂次。
下面所描述的两个案例将分别讨论近似过程中可能出现的问题及其解决方法。
[案例 1]已知一连续信号为x(t)=cos(2πf0t)+cos(2πf1t),其中f0=100 Hz,f1=130 Hz。
现以频率fs=600 Hz对该信号进行抽样,试利用离散傅里叶变换分析其频谱。
分析思路及步骤:由于抽样频率fs大于信号x(t)的最高频率f1的2倍,故抽样过程没有造成混叠,抽样后的序列为x[n]=x(t)|t=nT cos(2πf0t)+cos(2πf1t)。
由于 x[n] 为无限长序列,可采用矩形窗对其进行加窗截短处理。
为了能够分辨这两个间隔为Δf=f1-f0=30 Hz的相邻谱峰,由式(2)可得矩形窗的长度N 应满足N ≥20。
现应用Matlab软件进行频谱分析。
分别取 N=10和 N= 20时,由离散傅里叶变换计算出的频谱做对比。
[案例 2]已知一连续信号为x(t)=cos(2πf0t)+0.15cos(2πf1t),其中f0=50Hz,f1=100 Hz。
现以频率fs=400 Hz 对该信号进行抽样,试利用离散傅里叶变换分析其频谱。
分析思路及步骤:采样频率满足抽样定理,所以采样后的频谱不会产生混叠现象,但由于信号y(t) 中存在一个较弱的频率分量 f1,若采用矩形窗函数加窗,则由于其旁瓣泄漏较大,很难检测出信号 y(t) 幅度较小的频率分量 f1,因而采用Hamming窗函数,以此解决频率泄漏现象。
第三部分. 案例成果阐述及代码[案例 1]已知一连续信号为x(t)=cos(2πf0t)+cos(2πf1t),其中f0=100 Hz,f1=130 Hz。
现以频率 fs=600 Hz对该信号进行抽样,试利用DFT分析其频谱。
实现代码如下:N1=10N2=20L=512f0=100f1=130fs=600T=1/fsws=2*pi*fst1=(0:N1-1)*Tt2=(0:N2-1)*Tx1=cos(2*pi*f0*t1)+cos(2*pi*f1*t1)x2=cos(2*pi*f0*t2)+cos(2*pi*f1*t2)X1=fftshift(fft(x1,L))X2=fftshift(fft(x2,L))w=(-ws/2+(0:L-1)*ws/L)/(2*pi)subplot(2,1,1)plot(w,abs(X1));ylabel('幅度谱'):xlabel('频率/Hz') subplot(2,1,2)plot(w,abs(X2));ylabel('幅度谱');xlabel('频率/Hz')在matlab中执行该代码得到如下所示的图形:(可执行代码文件见附件 exp1)(a)信号样本点数N=10(b)信号样本点数N=20分析:由于 N =10不满足式(2),所以由上图(a)几乎分辨不出信号中两个频率分量。
而由上图(b)可见,当信号的长度满足式(2)时,可清晰地分辨出信号中的两个不同频率分量。
[案例 2]已知一连续信号为x(t)=cos(2πf0t)+0.15cos(2πf1t),其中f0=50Hz,f1=100 Hz。
现以频率fs=400 Hz 对该信号进行抽样,试利用离散傅里叶变换分析其频谱。
实现代码如下:N1=30N2=50;L=512;f1=50,f2=100;fs=600;T=1/fs;ws=2*pi*fs;t1=(0:N1-1)*T;t2=(0:N2-1)*T;y1=cos(2*pi*f1*t1)+0.15*cos(2*pi*f2*t1);y2=cos(2*pi*f1*t2)+0.15*cos(2*pi*f2*t2);wh1=(hamming(N1))';y11=y1.*wh1;wh2=(hamming(N2))';y22=y2.*wh2;Y1=fftshift(fft(y1,L));Y2=fftshift(fft(y2,L));Y11=fftshift(fft(y11,L));Y22=fftshift(fft(y22,L));w=(-ws/2+(0:L-1)*ws/L)/(2*pi);subplot(2,2,1)plot(w,abs(Y1));ylabel('幅度谱');xlabel('频率/Hz');subplot(2,2,2)plot(w,abs(Y11));ylabel('幅度谱');xlabel('频率/Hz');subplot(2,2,3)plot(w,abs(Y2));ylabel('幅度谱');xlabel('频率/Hz');subplot(2,2,4)plot(w,abs(Y22));ylabel('幅度谱');xlabel('频率/Hz');在matlab中执行该代码,得到如下图形:(可执行代码文件见附件 exp2)(a)矩形窗N=30 (b)矩形窗N=50(c)Hamming 窗N=30 (d)Hamming 窗N=50分析:图(a)、图(c)与图(b)、图(d)相比,Hamming窗以增加主瓣宽度来降低旁瓣能量,检测出较弱的频率分量 f1。