基于MATLAB的信号频谱分析仪的实现

基于MATLAB的信号频谱分析仪的实现
基于MATLAB的信号频谱分析仪的实现

基于的信号频谱分析仪的实现

一、概述

信号处理几乎涉及到所有的工程技术领域,而频谱分析又是信号处理中一个非常重要的分析手段。一般的频谱分析都依靠传统频谱分析仪来完成,价格昂贵,体积庞大,不便于工程技术人员的携带。虚拟频谱分析仪改变了原有频谱分析仪的整体设计思路,用软件代替了硬件,使工程技术人员可以用一部笔记本电脑到现场就可轻松完成信号的采集、处理及频谱分析。

在工程领域中,是一种倍受程序开发人员青睐的语言,对于一些需要做大量数据运算处理的复杂应用以及某些复杂的频谱分析算

法显得游刃有余。本文将重点介绍基于的虚拟频谱分析仪的设计。本文设计的虚拟频谱分析仪的功能包括:

() 音频信号信号输入。输入的途径包括从声卡输入、从文件输入、从信号发生器输入;

() 信号波形分析。包括幅值、频率、周期、相位的估计,并计算统计量的峰值、均值、均方值和方差等信息;

() 信号频谱分析。频率、周期的估计,图形显示幅值谱、相位谱和功率谱等信息的曲线。

二、实验原理

时域抽样定理

时域抽样定理给出了连续信号抽样过程中信号不失真的约束条件:对于基带信号,信号抽样频率 大于等于倍的信号最高频

率 ,即 。时域抽样是把连续信号 变成适于数字

系统处理的离散信号 。对连续信号 以间隔抽样,则可得到

的离散序列为 。

图 连续信号抽样的离散序列 若 ,则信号 与 的频谱之间存在: 其中: 的频谱为

, 的频谱为 。 可见,信号时域抽样导致信号频谱的周期化。 ()为抽

样角频率, 为抽样频率。数字角频率Ω与模拟角频率ω的关系为:Ωω。

离散傅立叶变换()

有限长序列)(n x 的离散傅立叶变换()为

)e (j Ω

X ()∑∞

-∞=-=n n X T )(j 1sam ωω)e (j ΩX []k X )e (j ωX )j (ωX T sam /2πω=[]k X ()t X []()kT

t kT X X ==k ()t X []k X ()t X []()kT t kT X X ==k m sam f f 2≥sam f m f T f sam

1=

10,)()]([)(1

0-≤≤==∑-=-N n W n x n x DFT k X N n kn N

逆变换为

10,)(1)]([)(10

-≤≤==∑-=-N n W k X N k X IDFT n x N n kn N 快速傅立叶变换()

在各种信号序列中,有限长序列占重要地位。对有限长序列可以利用离散傅立叶变换()进行分析。不但可以很好的反映序列的频谱特性,而且易于用快速算法()在计算机上进行分析。

有限长序列的是其变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的谱分析。是的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。

为计算数据的离散快速傅立叶变换,提供了一系列丰富的数学函数,主要有、、 、, 、和、等。当所处理的数据的长度为的幂次时,采用基算法进行计算,计算速度会显著增加。所以,要尽可能使所要处理的数据长度为的幂次或者用添零的方式来添补数据使之成为的幂次。

函数调用方式:();

=();

=(,[])或=()。

函数的参数应用与函数完全相同。

波形分析原理

.4.1 信号频率、幅值和相位估计

()频率(周期)检测

对周期信号来说,可以用时域波形分析来确定信号的周期,也就是计算相邻的两个信号波峰的时间差、或过零点的时间差。这里采用过零点()的时间差(周期)。频率即为,由于能够求得多个值(有多个),故采用它们的平均值作为周期的估计值。

()幅值检测

在一个周期内,求出信号最大值与最小值的差的一半,

即 ( ),同样,也会求出多个值,但第个值对应的和不是在一个周期内搜索得到的,故以除第个以外的值的平均作为幅值的估计值。

()相位检测

采用过零法,即通过判断与同频零相位信号过零点时刻,计算其时间差,然后换成相应的相位差。φπ(),{}表示的小数部分,同样,以φ的平均值作为相位的估计值。

下图是本设计利用过零检测法估算信号周期、频率、幅值和相位的流程图。

相关主题
相关文档
最新文档