信号处理实验七音频频谱分析仪设计与实现
- 格式:docx
- 大小:582.74 KB
- 文档页数:16
哈尔滨工程大学
实验报告
实验名称:离散时间滤波器设计
班级:电子信息工程4班
学号:
姓名:
实验时间:2016年10月31日18:30
成绩:________________________________
指导教师:栾晓明
实验室名称:数字信号处理实验室哈尔滨工程大学实验室与资产管理处制
实验七音频频谱分析仪设计与实现
一、实验原理
MATLAB 是一个数据分析和处理功能十分强大的工程实用软件,其数据采集工具箱为实现数据的输入和输出提供了十分方便的函数命令。本实验要求基于声卡和MTLAB 实现音频信号频谱分析仪的设计原理与实现,功能包括:
(1)音频信号输入,从声卡输入、从WAV 文件输入、从标准信号发生器输入;
(2)信号波形分析,包括幅值、频率、周期、相位的估计、以及统计量峰值、均值、均方值和方差的计算。
(3)信号频谱分析,频率、周期的统计,同行显示幅值谱、相位谱、实频谱、虚频谱和功率谱的曲线。
1、频率(周期)检测 对周期信号来说,可以用时域波形分析来确定信号的周期,也就是计算相邻的两个信号波峰的时间差、或过零点的时间差。这里采用过零点(ti)的时间差T(周期)。频率即为f = 1/T ,由于能够求得多个T 值(ti 有多个),故采用它们的平均值作为周期的估计值。
2、幅值检测 在一个周期内,求出信号最大值ymax 与最小值ymin 的差的一半,即A = (ymax - ymin)/2,同样,也会求出多个A 值,但第1个A 值对应的ymax 和ymin 不是在一个周期内搜索得到的,故以除第1个以外的A 值的平均作为幅值的估计值。
3、相位检测
采用过零法,即通过判断与同频零相位信号过零点时刻,计算其时间差,然后换成相应的相位差。φ=2π(1-ti/T),{x}表示x 的小数部分,同样,以φ的平均值作为相位的估计值。
频率、幅值和相位估计的流程如图1所示。 4、数字信号统计量估计 (1) 峰值P 的估计
在样本数据x 中找出最大值与最小值,其差值为双峰值,双峰值的一半即为峰值。
P=0.5[max(yi)-min(yi)]
(2)均值估计
i N
i y N
y E ∑==
1
)(
式中,N 为样本容量,下同。 (3) 均方值估计
()20
2
1
∑==
N
i i
y
N
y E
(4) 方差估计
∑=-=
N
i i
Y E y N
y D 0
2
))
((1
)(
图 1 频率,幅值和相位估计的流程图
其中ti n表示第n个过零点,y i为第i个采样点的值,Fs为采样频率。
5、频谱分析原理
时域分析只能反映信号的幅值随时间的变化情况,除单频率分量的简单波形外,很难明确提示信号的频率组成和各频率分量大小,而频谱分析能很好的解决此问题。由于从频域能获得的主要是频率信息,所以本节主要介绍频率(周期)的估计与频谱图的生成。
(1)DFT 与FFT
对于给定的时域信号y ,可以通过Fourier 变换得到频域信息Y ,Y 可按下式计算
()t t f y f y Y N i i i i ∆⎥⎦
⎤⎢⎣⎡∆+∆=∑∑-101
-N 0)2sin(j t)2cos(f ππ
式中,N 为样本容量,Δt = 1/Fs 为采样间隔。
采样信号的频谱是一个连续的频谱,不可能计算出所有的点的值,故采用离散Fourier 变换(DFT),即
1,,2,1,0,)(/21
-=∆=∆--∑N k t e y f k Y N ki j N i π
式中,Δf = Fs/N 。但上式的计算效率很低,因为有大量的指数(等价于三角函数)运算,故实际中多采用快速Fourier 变换(FFT)。其原理即是将重复的三角函数算计的中间结果保存起来,以减少重复三角函数计算带来的时间浪费。由于三角函数计算的重复量相当大,故FFT 能极大地提高运算效率。
(2)频率、周期的估计
对于Y(k Δf),如果当k Δf = f 时,Y(k Δf)取最大值,则f 为频率的估计值,由于采样间隔的误差,f 也存在误差,其误差最大为Δf / 2,周期T=1/f 。
从原理上可以看出,如果在标准信号中混有噪声,用上述方法仍能够精确地估计出原标准信号的频率和周期。
(3)频谱图
为了直观地表示信号的频率特性,工程上常常将Fourier 变换的结果用图形的方式表示,即频谱图。
以频率f 为横坐标,|Y(f)|为纵坐标,可以得到幅值谱; 以频率f 为横坐标,arg Y(f)为纵坐标,可以得到相位谱; 以频率f 为横坐标,Re Y(f)为纵坐标,可以得到实频谱; 以频率f 为横坐标,Im Y(f)为纵坐标,可以得到虚频谱。
根据采样定理,只有频率不超过Fs/2的信号才能被正确采集,即Fourier 变换的结果中频率大于Fs/2的部分是不正确的部分,故不在频谱图中显示。即横坐标f ∈[0, Fs/2]
(4)频谱图
模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户需求。根据人类解决一般问题的经验,如果一个问题由两个问题组合而成,那么它的复杂程度大于分别考虑每个问题时的复杂程度之和,也就是说把复杂的问题分解成许多容易解决的小问题,原来的问题也就容