专业综合课程设计报告数字频谱分析仪.docx

上传人:b****0 文档编号:431588 上传时间:2022-10-10 格式:DOCX 页数:18 大小:727.79KB
下载 相关 举报
专业综合课程设计报告数字频谱分析仪.docx_第1页
第1页 / 共18页
专业综合课程设计报告数字频谱分析仪.docx_第2页
第2页 / 共18页
专业综合课程设计报告数字频谱分析仪.docx_第3页
第3页 / 共18页
专业综合课程设计报告数字频谱分析仪.docx_第4页
第4页 / 共18页
专业综合课程设计报告数字频谱分析仪.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

专业综合课程设计报告数字频谱分析仪.docx

《专业综合课程设计报告数字频谱分析仪.docx》由会员分享,可在线阅读,更多相关《专业综合课程设计报告数字频谱分析仪.docx(18页珍藏版)》请在冰豆网上搜索。

专业综合课程设计报告数字频谱分析仪.docx

专业综合课程设计报告数字频谱分析仪

 

专业综合

课程设计报告

 

课设题目:

数字频谱分析仪

学院:

信息与电气工程学院

专业:

电子信息工程

班级:

姓名:

学号:

指导教师:

一、设计任务

1.1Matlab实现FFT和滤波器两种方式频谱分析方法;用MatlabGUI设计频谱分析仪界面,界面上包括类似与实际频谱分析仪的参数设置和显示功能,例如:

频谱分析范围、频谱物理分辨率、频谱视觉分辨力等参数的设置,信号频谱的显示等;界面上还应包括对这两种频谱分析方法的切换键;

1.2要求设计的频谱分析仪具有对窄带信号分析的能力;

1.3仿真产生一个信号,其中包含如下频率的正弦信号:

1MHz,1.5MHz,2.1MHz,2.2MHz;各频率成分的正弦信号幅度分别为:

1V,3V,2V,4V。

对其进行分析;要求的物理频谱分辨力为0.1MHz

1.4个窄带信号,载频10GHz,信号带宽为10MHz的线性调频信号,使用频谱分析仪分析其频谱;

二、方案设计

MATLAB是Mathworks公司推出的数学软件,它将数值分析、矩阵计算、信号处理和图形显示结合在一起,为众多学科领域提供了一种简洁、高效的编程工具。

它提供的GUIDE工具为可视化编程工具,使得软件的界面设计像VB一样方便。

故本文采用MATLAB作为编程语言实现声音信号频谱分析仪,以下所讲的都是在MATLAB2013b环境中。

为了实现预期的功能,设计界面如图所示:

图1图形用户界面

界面分为三部分组成,左面为输出区,显示信号时域、频域波形,右边分为信号输入区和操作区。

信号输入分为三种输入方式,第一种为信号发生器输入,如图,信号发生器可以产生正弦、锯齿以及窄带信号波形及其叠加信号。

默认采样频率为2MHz,采样时间为6us。

单击start按键可以显示由信号发生器设置的波形时域或频谱图。

第二种为wav文件输入,可以对wav文件信号进行分析。

单击showWav按键,可以显示wav信号的时域以及频域处理后的波形。

第三种为声卡采集,通过计算机声卡采集声音信息进行频谱分析。

单击Start_record按键后通过计算机的声卡对信号进行采样,其采样频率以及采样时间需要自行设置。

通过单击show按键,可以显示声音的时域波形或频域处理的波形。

操作区主要对信号进行时域、频域分析进行选择,如果要观察信号的时域模型,只需选中Time单选框即可,如果要观察信号滤波后时域的模型,还需要选中Time后filter单选框。

如果要对信号频域分析,需要勾选Frequency单选框以及下面对应的分析方法(FFT和滤波器分析)设置坐标轴选项被选中后,通过设置相应的x、y轴的值可以调整坐标轴的刻度,方便观察。

滤波器提供的方法有低通滤波器、高通滤波器、带通滤波器。

对应的通带截止频率以及阻带截止频率需要自行设置。

另外,还提供了IIR/FIR两种设计滤波器方法的转换。

三、设计原理

3.1FFT

FFT(FastFourierTransform,快速傅立叶变换)是离散傅立叶变换的快速算法,也是我们在数字信号处理技术中经常会提到的一个概念。

傅立叶原理表明:

任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。

那么从物理的角度去看待傅立叶变换,它其实是帮助我们改变传统的时间域分析信号的方法转到从频率域分析问题的思维。

有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。

这就是很多信号分析采用FFT变换的原因。

另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。

一个模拟信号,经过ADC采样之后,就变成了数字信号。

采样定理告诉我们,采样频率要大于信号最高频率的两倍,这些我就不在此罗嗦了。

采样得到的数字信号,就可以做FFT变换了。

N个采样点,经过FFT之后,就可以得到N个点的FFT结果。

为了方便进行FFT运算,通常N取2的整数次方(参见FFT原理)。

FFT运算量:

Nlog2N(2为对数的底)。

对于给定的时域信号y,可以通过Fourier变换得到频域信息Y。

Y可按下式计算

(式1)

式中,N为样本容量,

为采样间隔。

采样信号的频谱是一个连续的频谱,不可能计算出所有的点的值,故采用离散Fourier变换(DFT),即

(式2)

式中,

但上式的计算效率很低,因为有大量的指数(等价于三角函数)运算,故实际中多采用快速Fourier变换(FFT)。

其原理即是将重复的三角函数算计的中间结果保存起来,以减少重复三角函数计算带来的时间浪费。

由于三角函数计算的重复量相当大,故FFT能极大地提高运算效率。

3.2数字滤波器

3.2.1IIR与FIR滤波器

数字滤波器根据单位脉冲响应函数的时域特性,可分为IIR滤波器和FIR滤波器两大类。

 

IIR滤波器的特征是,具有无限长的单位脉冲响应,系统函数在z平面上存在极点,结构上存在输出到输入的反馈,即结构上是递归型的数字滤波器。

换句话说,它的输出不但取决于过去和现在的输入,还取决于过去的输出,其系统函数为:

 

   (式3)

而FIR滤波器的特征是,具有有限长的单位脉冲响应,结构上没有反馈支路,H(z)永远稳定,其系统函数为:

 

                                            

(式4)

设计数字滤波器的任务就是求滤波器的系数,或者寻求一个因果、物理上可实现的系统函数H(z),使其频率响应H(z)满足所希望得到的频域指标,即符合给定的通带截止频率、阻带截止频率、通带和阻带内允许的衰减指标。

3.2.2滤波器实现频谱分析

滤波器分析信号频率成分时,为多个带通滤波器,含有多个频段。

信号经过滤波器时,信号频率在某个频段相应的中心频率范围的带通滤波器有输出。

本节使用的滤波器可以调整滤波器状态(高通、低通、带通),自己设计滤波器通带、阻带截止频率,观察滤波后的频谱,便可以得到信号在哪个范围内有频率分量。

3.3Matlab图形用户界面设计

用户界面是指实现人与机器或程序之间交互作用的工具和方法。

如键盘、鼠标等都可成为与计算机交换信息的接口。

 

    图形用户界面GUI全称Graphical User Interfaces 则是由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面用户图形界面GUI是程序的图形化界面。

 

    GUI可以使用户定制用与MATLAB的交互方式。

把图形界面加到MATLAB 的函数和M文件中。

GUI可以在MATLAB中生成非常有效的工具和应用程序或是建立演示工作的交互式界面。

 

创建MATLAB 用户图形界面必须有三个基本元素:

  

1. 组件在matlab GUI 中的每一个项目如按钮、标签、编辑框等都是一个图形化组件。

组件又可分为三类:

图形化控件(按钮,编辑框,列表,滚动条等)、静态元素(窗口和文本字符串)、菜单和坐标系。

图形化控件和静态元素由函数uicontrol创建菜单由函数uimenu和uicontextmenu示图形化数据由函数axes创建。

 

2. 图象窗口(Figure)GUI的每一个组件都必须安排在图象窗口中可以用函figure来创建空图象窗口空图象窗口经常用于放置各种类型的组件。

 

3. 回应当用户用鼠标单击或用键盘键入一些信息那么程序就要有相应的执行动作。

鼠标单击或键入信息是一个事件如果matlab程序运行相应的函数那么matlab函数肯定会有所反应。

例如如果用户单击一按钮这个事件必然引起相应的matlab语句执行。

这些相应的语句被称为回应在执行GUI的单个图形组件时必须有一个回应。

3.4利用matlab设计数字滤波器

3.4.1设计IIR滤波器(巴特沃斯)

Matlab提供的buttord函数可以计算滤波器的阶数以及截止频率;butter函数可以计算滤波器的分子分母多项式的系数。

模拟滤波器转数字滤波器有两种方法,冲击响应不变法和双线性变换法。

分别为[bz,az] = impinvar(b,a,fs)和[bz,az] = bilinear(b,a,fs)。

设计巴特沃斯低通滤波器:

function[y_filter,f_filter,Y_filter]=filter_lowpass(y,fp,fs,Fs,n)

wp=2*pi*fp;

ws=2*pi*fs;

Rp=1;

As=30;

[N,wc]=buttord(wp,ws,Rp,As,'s');%计算率波器的阶数和3dB截止频率

[B,A]=butter(N,wc,'s');%计算滤波器系统函数分子分母多项式

%模拟滤波器转数字滤波器

[Bz,Az]=impinvar(B,A,Fs);%用脉冲响应不变法进行模数变换

同理,也可以利用双线性变换法进行模数转换

[Bz,Az]=bilinear(B,A,Fs);

对于带通滤波器,输入频率wp、ws为一个二维矩阵,即可。

对于高通滤波器,输入频率wp>ws,在[B,A]=butter(N,wc,’high’,'s');添加’high’这一属性即得出高通滤波器传递函数分子分母的多项式。

3.4.2设计FIR滤波器(hamming窗函数法)

function[y_filter,f_filter,Y_filter]=fir_lowpass(y,fp,fs,Fs,n)

%将模拟频率转换成数字频率

wp=fp./(Fs/2);

ws=fs./(Fs/2);

Rp=0.25;

As=40;

Fs

wc=(wp+ws)/2

%海明窗的过渡带宽为6.6pi/N,故可以用它近似求所需滤波器阶数。

N1=ceil(6.6*pi/abs(ws-wp))%根据过渡带宽度求滤波器阶数

b1=fir1(N1,wc);%计算率波器的阶数和3dB截止频率

同理设计带通与高通滤波器。

3.5MatlabGUI打包成独立的exe文件

matlab编程很方便,强大的矩阵运算功能,很多好用的工具箱,但是一般程序都要在matlab环境中运行,能否脱离这个环境打包发布呢,matlab也提供了这样的工具。

转化为c/c++程序并编译为.exe,可使用VC编译器(按默认路径安装)。

MCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。

四、结果及分析

4.1其中包含如下频率的正弦信号:

1MHz,1.5MHz,2.1MHz,2.2MHz;各频率成分的正弦信号幅度分别为:

1V,3V,2V,4V。

对其进行分析;要求的物理频谱分辨力为0.1MHz

图2正弦混叠信号

其频谱为:

图3正弦混叠频谱

利用滤波器进行分析:

如:

4.1.1设计低通滤波器(通带截止频率为1.2MHz,阻带截止频率为1.5MHz)

4.1.1.1使用IIR滤波器设计

图4滤波后频谱

滤波后的时域信号:

图5滤波后时域

由上可知,信号有4个频率分别为1、1.5、2.1、2.2MHz的正弦信号混叠而成,在其频谱图(图3)可以看到其频谱,若要达到其物理频谱分辨率为0.1MHz,其信号采集时间应该为10us。

经过低通滤波器后,其大于1MHz的频率分量都被滤除,只保留了1MHz的频谱,如(图4)所示。

其时域波形为(图5)所示,可见只保留了1MHz的频率分量。

4.1.1.2使用FIR滤波器设计

图6滤波后频谱

时域波形为:

图7滤波后时域波形

图8调整坐标轴

很明显,使用FIR滤波器造成的时间延迟更长。

这是因为IIR可以用较低的阶数获得较好的选择性,而FIR滤波器阶数较大,阶数越大,信号延时越长

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1