当前位置:文档之家› 基于Matlab的频谱分析

基于Matlab的频谱分析

基于Matlab的频谱分析
基于Matlab的频谱分析

编号

学士学位论文

基于MATLAB的信号波形与频谱分析学生姓名:汪娟

学号:20080204030

系部:物理系

专业:电子信息科学与技术

年级:2008 级

指导教师:黄晓俊

完成日期:2012 年 5 月 2 日

中文摘要

利用DFT分析信号频谱的基本流程,阐述了频谱分析过程中误差形成的原因及减小分析误差的主要措施。实例列举了基于MATLAB GUI编制的信号分析系统,集成了常用的信号分析方法,系统界面友好,使用方便,与传统处理方法相比效率更高。

关键词:MATLAB GUI;信号分析;频谱分析

Analysis of Signal Waveform and Frequency

Spectrum Based on MATLAB

Abstract

The use of DFT analysis of signal spectrum basic process , elaborated spectral analysis in the process of formation and reduce error analysis error measures. The examples cited MATLAB GUI system based on the signal analysis system, integrated with the commonly used method of signal analysis, the system friendly interface, convenient use, compared with the traditional processing approaches more efficient.

Key words: MATLAB GUI; signal analysis; spectrum analysis

I

目录

中文摘要 ........................................................................................................................ I Abstract ........................................................................................................................... I 引言 .. (3)

1.信号的概述 (3)

1.3 信号频谱的误差分析 (5)

2.信号的频谱分析 (6)

2.1 软件介绍 (7)

2.1.1 MATLAB软件介绍 (7)

2.1.2 GUI软件介绍 (7)

2.2 信号的频谱分析 (7)

2.2.1 信号谱分析的原理 (7)

2.2.2 信号谱编程思路 (8)

3.信号系统频谱分析实例 (9)

3.1系统设计 (9)

4.结论 (17)

参考文献 (18)

致谢 (19)

II

引言

信号的频谱分析是利用傅里叶分析的方法,求出与时域描述相对应的频域描述,从中找出信号时域波形相对应的频率函数,从中找出描述该信号频谱结构的变化规律,以达到特征提取的目的。不同信号的傅里叶分析有不同的理论与方法,但实际信号分析一般没有解析式,直接利用公式进行傅里叶分析非常困难。DFT 是一种时域和频域均离散化的傅里叶变换,适合数值计算且有快速算法,是分析信号的有力工具,本文以几种典型信号为例,介绍利用DFT分析信号频谱的基本流程,并通过GUI界面(图形用户界面)实现信号频谱分析的动态设计,以实现系统的信号频谱分析。

1.信号的概述

1.1信号的定义

广义地说,信号就是随时间和空间变化的某种物理量或物理现象。例如在通信工程中,一般将语言、文字、图像、数据等统称为消息,在消息中包含着一定的信息。通信就是从一方向另一方传送消息,给对方以信息。但传送消息必须借助于一定形式的信号(光信号、电信号等)才能传送和进行各种处理。因而,信号是消息的载体,是消息的表现形式,是通信的客观对象,而消息是信号的内容。

若信号表现为电压、电流、电荷、磁链,则称为电信号,它是现代科学技术中应用最广泛的信号。

信号通常是时间变量t的函数。信号随时间变量t变化的函数曲线称为信号的波形。

应当注意,信号与函数在概念的内涵与外延上是有区别的。信号一般是时间变量t的函数,但函数并不一定都是信号,信号是实际的物理量或物理现象,而函数则可能只是一种抽象的数学定义。

信号的特性可从两方面来描述,即时域特性与频域特性。信号的时域特性指的是信号的形,出现时间的先后,持续时间的长短,随时间变化的快慢和大小,重复周期的大小等。信号时域特性的这些表现,反映了信号中所包含的信息内容。

1.2信号的分类

(1)确定性信号与随机性信号

确定性信号:具有确定的函数形式,在任意时刻都有确定的函数值与之对应,如图1.1的正弦信号。 F(t)t

T=2∏/ω

θ/ω

图1.1 正弦信号

随机性信号:实际传输的信号往往具有无法预知的不确定性,这种信号称为不确定性信号或随机性信号。在观测随机物理现象的数据时可以遇到这种信号,但我们无法用精确地数学关系式描述这种信号。对它进行观测时,每次的结果都不一样。也就是说,任何一次观测只能代表许多可能产生的结果之一。

(2)连续时间信号和离散时间信号

连续时间信号:在所讨论信号的持续时间内,任取一个时刻都有相应的函数值与之对应,独立变量可以连续取值,这种信号称为连续时间信号,并用连续时间变量t 把该信号表示为x(t)。

离散时间信号:若仅在某些不连续的规定瞬时给出函数值,而在其他的时间没有定义,则称为离散时间序列或信号。如图1.2所示。

n

F(t)

图1.2 离散时间信号

(3)周期信号与非周期信号

按一定的时间T 周而复始,无始无终的信号叫做周期信号,而且是无始无终的信号。其表达式可以写成

任意整数),...(2,1,0),()(±±==+=n n nT t f t f (1)

满足上式的最小T 值叫做该信号的周期,只要给出此信号在任一周期内的变化过程,便可确知它在任意时刻的数值。非周期信号在时间上不具有周而复始的特性。若令周期信号的周期T 趋于无限大,则成为非周期信号。

(4)能量信号和功率信号

信号f(t)的能量定义为信号电压或电流在1Ω电阻上消耗的能量,

即: ??+∞∞-+∞

∞-==dt t f dt t f E 22)(|)(| (2) 式f(t)为实数时的情况。通常把能量为有限值的信号叫做能量有限信号简称能量信号。

信号平均功率的定义是信号电压或电流在1Ω电阻上消耗的功率, 即: ?-∞→=22

2]|)(|1[lim T

T T dt t f T P (3) 式中,括号内的量是信号幅度的平方在一个周期的积分在除以周期的长度。对它取∞→T 时的极限就是信号的平均功率。当P 为有限值时,叫做功率有限信号 并简称功率信号。

1.3 信号频谱的误差分析

利用 DFT (实际是用 FFT )对连续或离散信号进行频谱分析时, 如果信号连续一般要进行采样和截断,即使信号离散也往往需要进行加窗截断。用有限的离散数据进行DFT 变换, 得到有限个DFT 数据值,与原信号的频谱肯定不同,这种不同就是分析误差。下面按信号频谱分析的基本流程,分别介绍误差形成的原因及减小分析误差的主要措施,为实际分析过程中适当选择参数提供理论依据。

(1) 混叠现象

对连续信号进行频谱分析时, 先要对信号进行采样, 理论上要求采样频率 fs 必须大于两倍信号的最高频率。在满足采样定理条件下,采样序列的数字频谱能准确反映连续信号的模拟频谱, 否则会发生频谱混叠现象。严格地讲, 实际信号的持续时间有限、频谱无限, 为了尽可能减少频谱混叠, 信号在采样之前一般都要进行预滤波处理。预滤波也不可能是理想低通,所以频谱混叠不可避免。 在实际工作中,为了减小频谱混叠的影响,可通过适当提高防混叠滤波器的指标和适当增大采样频率来实现,采样频率常取信号最高频率的2.5~3倍。

(2) 截断效应

利用计算机对离散序列或连续信号的采样序列进行DFT运算时, 往往要进行截断, 即将离散序列进行加窗处理。对离散序列的加窗实际上是将离散序列与窗函数相乘,加窗后信号的频谱是加窗前信号的频谱与窗函数频谱的卷积,造成截断后信号的频谱与截断前信号的频谱不同,这就是所谓截断效应。截断效应对频谱分析的影响主要表现在两个方面:

第一频谱泄漏原序列经截断后,频谱会向两边展宽,通常称这种展宽为泄漏。频谱泄漏使频谱变模,分辨率变差,泄漏程度与窗函数幅度谱主瓣宽度有关。窗型一定,窗口越长,主瓣越窄,频谱泄漏越小。窗口长度一定,矩形窗主瓣最窄,频谱泄漏最小,但其旁瓣的幅度最大。

第二谱间干扰对原序列截断,频谱不仅会向附近展宽,还会形成许多旁瓣, 引起不同频率间的干扰,简称谱间干扰。特别是强信号谱的旁瓣可能湮没弱信号的主谱或误认为是另一假信号的主谱线。矩形窗的旁瓣幅度大,谱间干扰严重。相对而言,布莱克曼窗的旁瓣幅度比矩形窗小,谱间干扰小,但其主瓣过渡带宽,分辨率差。采样频率或采样周期是在满足混叠误差前提下选取的,当采样频率或采样周期确定后,适当增加窗口长度有利于减小截断效应。工程上,可用试探法确定窗口长度M,即将M加倍,分别进行DFT运算,直到相邻两个长度的计算结果接近,取长度较小的M,这样既可满足截断效应要求,又可使存储单元最小且运fs 或大于且接近该值的2的整数幂。在窗口算速度最快。如对频率分辨率F0有要求,则窗口长度M可在F0长度一定情况下,如果希望引起频谱扩展的过渡带窄,可选矩形窗,但其旁瓣大, 谱间干扰严重。若选布莱克曼窗,旁瓣幅度小,谱间干扰相对较小,但主瓣过渡带更宽,分辨率会进一步下降。

(3)栅栏效应

对加窗后的序列进行DFT运算时,DFT长度必须大于或等于加窗序列的长度, 否则会作自动截断处理。实际的DFT运算一般采用FFT算法,其长度取大于或等于加窗序列的2的整数幂,不足进行补零处理,得到的DFT值是对加窗序列的连续谱进行等间隔取样的结果。这就好比通过一个有很多缝隙的栅栏去观察一个连续频谱, 很多地方会被栅栏挡住,故称栅栏效应。在加窗序列的尾部补零可使频谱的取样点更密,相当于加密了栅栏的缝隙,使原来看不到的谱分量可能看得到,减小了栅栏效应,但由于被观察的连续谱并没有发生变化,故频率分辨率并没有提高,最多只能说可视分辨率提高了。要提高信号的频率分辨率,选择主瓣窄的截断窗可有一定的改善,但谱间干扰会更严重,根本上只能通过增加原始信号的长度来实现。

2.信号的频谱分析

2.1 软件介绍

2.1.1 MATLAB软件介绍

MATLAB是Matrix Laboratory的缩写,是Math Works公司于1984年推出的一套面向工程和科学计算的高性能软件,它具有强大的矩阵计算能力和良好的图形可视化功能,为用户提供非常直观和简洁的程序开发环境。经过不断的扩充和完善,它已成为各类科学研究与工程应用中的标准工具,它集数值分析,矩阵运算,信号处理与图形显示于一体,构成了一个界面友好的用户环境。它的信号处理工具箱包含了各种经典的和现代数字信号处理技术,是一个非常优秀的算法研究与辅助设计的工具。

2.1.2 GUI软件介绍

图形用户界面GUI(Graphics User Interface) 是由各种图形对象, 如图形窗口、图轴、菜单、按钮、文本框等构建的用户界面, 是人机交流信息的工具和方法。

GUI设计可以采用两种方法,一种是利用GUIDE(Graphics User Interface Design Environment )工具进行设计。这种方法的优点是上手容易,缺点是对于有些复杂功能的实现比较困难。另一种方法是基本代码法,即在M 文件中用MATLAB 代码写出所有的图形对象控件所对应的代码(这里的M文件可以是函数文件也可以是脚本文件),通过各个参数的控制可以灵活地实现所需要的功能。这种方法的缺点是上手困难,优点是功能强大,可以实现许多复杂的功能,而且调试程序也比较容易。

2.2 信号的频谱分析

2.2.1 信号谱分析的原理

信号谱分析是“数字信号处理”课程主要内容之一,它的实质就是通过信号的傅里叶变换(FT)来分析信号的频谱结构,信号的傅里叶变换(FT)可以借助于DFT用计算机仿真方法实现。DFT的实质是序列傅里叶变换的有限点离散采样,这就使得有限长序列的频谱可以在频域采用数字运算方法进行,大大增加了数字信号处理的灵活性;另一方面,DFT有多种快速算法(FFT),使得DFT成为对信号进行谱分析的一个重要工具。信号按时间是否连续可分为连续时间信号和离散时间信号,按周期性可分为周期信号和非周期信号。那么在时域内信号可分为4大类:离散非周期信号(有限长序列),连续周期信号(周期序列),连续非

周期信号(一般模拟信号),连续周期信号。

2.2.2 信号谱编程思路

设)(~

n X n 为周期为N 的周期序列,截取其一个周期对应的主值序列,则有

?????-≤≤=其他,010),()(~N n N X n X N N (4)

对主值序列进行N 点DFT 得到其离散谱)(k X N ,即

;1,1,0,)()]([)(210-===--=∑N k n X

n X DFT k X e kn N j N n N N N π (5)

由周期序列的离散傅里叶级数(DFS )及其主值序列的DFT 之间的关系 ,1,0),1()([)(~

~=+==∑∞-∞=K N K X n X DFS K X n N N N (6)

可知道周期序列的离散傅里叶级数是以为周期进行周期延拓得到的。由周期序列的傅里叶变换FT 和DFS 之间的关系

;1,...1,0),2()(2)]([)(~~-=-=∑∞-∞=N K K N

K X N n X FT X n N N jw e πωδπ (7) 由于)(~K X N 是以为N 周期的离散谱,所以周期序列的傅里叶变换的)(ωj e X 是以π2为周期的离散谱,一个周期内有N 条谱线,第K 条谱线位于

K N π2处,傅里叶变换)(ωj e X 的幅度大小与离散傅里叶级数)(~

K X N 成正比。基于以上基本理

论;利用MATLAB 用离散傅里叶变换(DFT )对离散周期信号进行谱分析的程序流程如图2.1所示:

开始

生成离散周期信号并绘制

截取的主值序列并绘制

用FFT计算主值序列的DFT

绘制频谱曲线

结束

图2.1 谱分析流程图

3.信号系统频谱分析实例

3.1系统设计

(1) 主界面设计

本系统采用GUIDE工具进行设计。先是主界面的设计,其功能主要是将各子模块有机联系到一起,使界面美观,便于操作。设置Static Text控件String属性为“信号分析”作为主界面的标题;利用List box作为下拉实验选项控件;利用Push Button 作为运行按钮,当选择某一项实验时,在运行按钮上同步显示所选择的实现项目。

3.2 周期信号的系统界面设计

本系统所设计的频谱分析系统共有四个模块,连续周期信号的频谱分析模块如图2.2所示。在主界面选择连续周期信号,点击运行按钮即可进入对应的该模块,以图形界面形式显示,其中右边是波形窗口,右上半部分显示的是时域波形,右下半分部分显示的幅频特性,点击并拖放时域信号的波形可以改变其基频和振幅;左边是参数调节窗口,首先可选择波形的种类,有常见的正弦波、方波,另外还可以自定义周期信号,当信号选择自定义时,即会弹出一个自定义输入的对话框,可自行输入信号表达式;此外可以通过键盘输入设定基波频率;点击信息按钮即可显示相关的帮助信息;最后还有个关闭按钮可以关闭直接关闭该界面。

图2.2 连续周期信号频谱分析

图2.3所示的是离散周期信号的频谱分析界面,图2.3中是周期的正弦信号,可以通过波形拖动鼠标来改变信号的周期和幅度,也可以通过键盘输入来调整信号的参数,当参数发生改变时其幅频特性的变化趋势将同步显示。

图2.3 离散周期信号频谱分析

其主要程序代码如下:

function pushbutton1_Callback(hObject, eventdata, handles)

global flag contents val s cyc

cyc=str2num(get(handles.edit2,'string')); %获取用户填入的周期信息

ap=str2num(get(handles.edit3,'string')); %获取信号的幅值if flag==1

samp=0.1; %离散采样时间

else

samp=0.0002; %采样间隔短,连续信号

end

t=-100:samp:100; %产生时间向量

axes(handles.axes1); %选中坐标轴

if strcmp(contents{val},'正弦波') %下拉框内容判断s=ap*sin(2*pi/cyc*t);

plot(t,s);

title('正弦波');

elseif strcmp(contents{val},'方波') %下拉框内容判断s = square(2*pi/cyc*t) ;

plot(t,s);

title('周期方波');

axis([min(t) max(t) min(s)-1 max(s)+1]);

end

3.3 非周期信号的系统界面设计

连续非周期信号频谱分析模块如图2.4所示。

图2.4 连续非周期信号频谱分析

图2.5所示的离散非周期信号的频谱分析界面,该分析系统能实现常见的门信号、单边指数信号、阶跃信号等离散非周期信号的频谱分析,对信号的参数也能进行很方便的调整,日后也可扩充对自定义的非周期信号进行频谱分析。

图2.5 离散非周期信号频谱分析

其主要程序代码如下:

function pushbutton1_Callback(hObject, eventdata, handles)

global s1 s2 t val

if val == 1

samp=0.001;

else

samp=0.1;

end

t=-100:samp:100;

s1=zeros(1,length(t));

s2=zeros(1,length(t));

s3=zeros(1,length(t)); %初始化3个信号矩阵str=get(handles.popupmenu1,'string');

val=get(handles.popupmenu1,'value');

a1=str2num(get(handles.edit3,'string'));

a2=str2num(get(handles.edit10,'string'));

a3=str2num(get(handles.edit12,'string'));

switch str{val}

case '门信号'

kd1=str2num(get(handles.edit18,'string'));

gd1=str2num(get(handles.edit2,'string'));

p1=find(t==round(-kd1/2));

p2=find(t==round(kd1/2));

s1(p1:p2)=gd1;

axes(handles.axes1);

plot(t,s1);

title('1号门信号');

kd2=str2num(get(handles.edit6,'string'));

gd2=str2num(get(handles.edit7,'string'));

p11=find(t==round(-kd2/2));

p22=find(t==round(kd2/2));

s2(p11:p22)=gd2;

plot(t,s2);

title('2号门信号');

kd3=str2num(get(handles.edit8,'string'));

gd3=str2num(get(handles.edit9,'string'));

p13=find(t==round(-kd3/2));

p23=find(t==round(kd3/2));

s3(p13:p23)=gd3;

axes(handles.axes3);

plot(t,s3);

title('3号门信号');

case '单边指数信号'

a1=str2num(get(handles.edit3,'string'));

b1=str2num(get(handles.edit4,'string'));

s1=a1*exp(b1*t);

axes(handles.axes1);

plot(t,s1);

title('1号实指数信号');

a2=str2num(get(handles.edit10,'string'));

b2=str2num(get(handles.edit11,'string'));

s2=a2*exp(b2*t);

axes(handles.axes2);

plot(t,s2);

title('2号实指数信号');

a3=str2num(get(handles.edit12,'string'));

b3=str2num(get(handles.edit13,'string'));

s3=a1*exp(b3*t);

plot(t,s3);

title('3号实指数信号');

case '阶跃信号'

jy1=str2num(get(handles.edit5,'string'));

jy2=str2num(get(handles.edit14,'string'));

jy3=str2num(get(handles.edit15,'string'));

s1=double(t>=jy1);

s2=double(t>=jy2);

s3=double(t>=jy3); %逻辑类型转换为double型。

axes(handles.axes1);

plot(t,s1);

title('1号阶跃信号');

axes(handles.axes2);

plot(t,s2);

title('2号阶跃信号');

axes(handles.axes3);

plot(t,s3);

title('3号阶跃信号');

otherwise

msgbox('操作错误!');

end

v=get(handles.popupmenu1,'value');

if (a1<=0&&v==2)

cla(handles.axes4);

else

f1=fftshift(abs(fft(s1)));

axes(handles.axes4);

plot(f1);

title('1号信号频谱');

axis([1 length(f1) min(f1)-1 max(f1)+1]);

end

if (a2<=0&&v==2);

cla(handles.axes5);

else

f2=fftshift(abs(fft(s2)));

axes(handles.axes5);

plot(f2);

title('2号信号频谱');

axis([1 length(f2) min(f2)-1 max(f2)+1]);

end

if (a3<=0&&v==2)

cla(handles.axes6);

else

f3=fftshift(abs(fft(s3)));

axes(handles.axes6);

plot(f3);

title('3号信号频谱');

axis([1 length(f3) min(f3)-1 max(f3)+1]);

End

3.4 系统界面分析结果

信号的频域分析是《信号与系统》比较大的知识模块,四种类型的信号其频谱各具特点,一般来讲,若信号时域连续,则频域是非周期的,若时域离散,

则频域是周期的,本文的频谱分析系统中能够直接对比得出这样的结论。另外随着时域参数的变化,对应的频谱也会发生相应的变化,例如,对于连续周期信号来讲,时域幅度越大,对应频域的幅度越大,若时域的频率大,则对应的频域高频分量越多;对于连续的非周期信号来讲,若时域信号的脉宽越宽,则频域带宽越窄,反之则越宽。在本系统中,点击时域波形拖动鼠标就能调整时域信号的幅度和频率等参数,而与此同时其对应的频谱变化特性也同步显示出来,因而能够很方便的通过具体的波形变换直观体现出这些规律,通过理论的讲解和实际的演示,图文并茂,容易理解记住时域、频域对应的一些关系及变换的规律。

4.结论

MATLAB软件是目前全世界范围内非常流行的具有很强的科学计算和图形界面的软件系统。利用MATLAB的强大运算功能,可以解决数字信号处理过程中遇到的许多问题。本文给出了基于MATLAB软件实现信号DFT变换和FFT 频谱分析的方法。利用MATLAB软件方法,使得设计方便,快捷,大大减轻了工作量。并且,在信号DFT变换中可以清楚得看到DFT变换结果和截取长度之间的关系。通过编程仿真可以得到信号的幅频特性曲线,便于对信号进行谱分析。随着MATLAB软件版本的不断提高,其功能越来越强大,在数字信号处理,数字图像处理,仿真,自动控制等领域的应用也会有越来越广阔的前景。

MATLAB的GUIDE是专门用于图形用户界面(GUI)程序设计的快速开发环境,本文从介绍GUIDE入手结合具体的软件图形界面实例,给出了利用GUIDE 制作图形用户界面的基本方法。通过本文的研究得出利用GUIDE设计的仿真界面不仅可以对离散信号与连续信号的动态频谱进行相关分析,而且还可以对此问题作进一步的预测和分析。基于GUIDE技术制作的图形用户界面,具有友好性,开放性,方便科研人员不断地研究和扩充。

通过本次设计我对MATLAB在信号处理中优点的认识有以下几点:

(1) MATLAB可用一种几乎像通常笔算式的简练程序,把繁琐的计算交给计算机去完成。

(2) 由于MATLAB的表达式简练而准确,往往可以简化公式的推导和概念的叙述。

(3) MATLAB可以方便迅速地用三维图形、图像、声音、动画等表述计算结果。

(4) MATLAB可以很方便地把复杂的计算过程凝聚成一个程序,以后可以随意调用,避免学习研究中的重复。

(5) MATLAB的可扩展性强,有几十种工具箱可用于各类科研需要,这可缩短科研周期。

参考文献

[1]应自炉.信号与系统[M].北京:国防工业出版社,2008.3,313-316

[2]高西全,丁玉美.数字信号处理[M].西安:西安电子科技学校出版社,2008

[3]陈桂明.应用MATLAB建模与仿真[M].北京:科学出版社,2001,40-85

[4]郑君里,杨为理.信号与系统[M].北京:高等教育出版社,2000

[5]王文渊.信号与系统[M].北京:清华大学出版社,2008.9,505-508

[6]陈瑞峰,左曙光,郭伟.基于MATLAB GUI的信号分析系统[J].佳木斯大学学报:自然科学版,2009

[7]陈后金,胡健等.信号与系统[M].北京:清华大学出版社,2003

[8]张登奇,杨慧银.信号的频谱分析及MATLAB实现[J].湖南理工学院:自然科学版,2010

[9]宋建华.基于MATLAB的FFT及其应用[J].牡丹江师范学院学报(自然科学版),2007,2:3-4

[10]孙祥,徐流美等.MATLAB7.0基础教程[M].北京:清华大学出版社,2005

致谢

经过几个月的忙碌和学习,毕业论文设计已经接近尾声。作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方。如果没有指导教师的督促指导,想要完成这个设计是很难想象的。

在这里首先衷心的感谢黄晓俊老师对我的指导和帮助。他严谨的工作态度,一丝不苟的治学精神将积极影响我今后的学习和工作。黄老师平日里工作繁多,但在我做毕业设计的每个阶段,从选题到查阅资料,论文提纲的确定,中期论文的修改,后期论文格式调整等各个环节中都给予了我悉心的指导。

其次,还要感谢物理系所有的老师给予的帮助。我也学到了许多从来没有接触过的知识,我知道课本上的知识只是学习海洋中的一滴水而已,我深深的感受到在喀什师范学院的学习是我在人生道路上写下了光辉的一页,它将永远激励我勤奋学习,努力工作,我将以更优异的成绩回报我的母校。

再次感谢所有帮助过、支持过我的老师和同学们!

用MATLAB进行FFT频谱分析

用MATLAB 进行FFT 频谱分析 假设一信号: ()()292.7/2cos 1.0996.2/2sin 1.06.0+++=t t R ππ 画出其频谱图。 分析: 首先,连续周期信号截断对频谱的影响。 DFT 变换频谱泄漏的根本原因是信号的截断。即时域加窗,对应为频域卷积,因此,窗函数的主瓣宽度等就会影响到频谱。 实验表明,连续周期信号截断时持续时间与信号周期呈整数倍关系时,利用DFT 变换可以得到精确的模拟信号频谱。举一个简单的例子: ()ππ2.0100cos +=t Y 其周期为0.02。截断时不同的持续时间影响如图一.1:(对应程序shiyan1ex1.m ) 图 错误!文档中没有指定样式的文字。.1 140.0160.0180.02 截断时,时间间期为周期整数倍,频谱图 0.0250.03 0100200300400500600 7008009001000 20 40 60 80 100 截断时,时间间期不为周期整数倍,频谱图

其次,采样频率的确定。 根据Shannon 采样定理,采样带限信号采样频率为截止频率的两倍以上,给定信号的采样频率应>1/7.92,取16。 再次,DFT 算法包括时域采样和频域采样两步,频域采样长度M 和时域采样长度N 的关系要符合M ≧N 时,从频谱X(k)才可完全重建原信号。 实验中信号R 经采样后的离散信号不是周期信号,但是它又是一个无限长的信号,因此处理时时域窗函数尽量取得宽一些已接近实际信号。 实验结果如图一.2:其中,0点位置的冲激项为直流分量0.6造成(对应程序为shiyan1.m ) 图 错误!文档中没有指定样式的文字。.2 ?ARMA (Auto Recursive Moving Average )模型: 将平稳随机信号x(n)看作是零均值,方差为σu 2的白噪声u(n)经过线性非移变系统H(z)后的输出,模型的传递函数为 020406080100120140160180200 0.4 0.50.60.7 0.800.050.10.150.20.250.30.350.40.450.5 50100 150

基于Matlab的相关频谱分析程序教程

Matlab 信号处理工具箱 谱估计专题 频谱分析 Spectral estimation (谱估计)的目标是基于一个有限的数据集合描述一个信号的功率(在频率上的)分布。功率谱估计在很多场合下都是有用的,包括对宽带噪声湮没下的信号的检测。 从数学上看,一个平稳随机过程n x 的power spectrum (功率谱)和correlation sequence (相关序列)通过discrete-time Fourier transform (离散时间傅立叶变换)构成联系。从normalized frequency (归一化角频率)角度看,有下式 ()()j m xx xx m S R m e ωω∞ -=-∞ = ∑ 注:()()2 xx S X ωω=,其中()/2 /2 1lim N j n n N n N X x e N ωω→∞ =-=∑ πωπ-<≤。其matlab 近似为X=fft(x,N)/sqrt(N),在下文中()L X f 就是指matlab fft 函数的计算结果了 使用关系2/s f f ωπ=可以写成物理频率f 的函数,其中s f 是采样频率 ()()2/s jfm f xx xx m S f R m e π∞ -=-∞ =∑ 相关序列可以从功率谱用IDFT 变换求得: ()()()/2 2//2 2s s s f jfm f j m xx xx xx s f S e S f e R m d df f πωπ π ωωπ --= = ? ? 序列n x 在整个Nyquist 间隔上的平均功率可以表示为 ()()() /2 /2 02s s f xx xx xx s f S S f R d df f π π ωωπ --= = ? ? 上式中的

信号的频域分析及MATLAB实现.doc

《M A T L A B电子信息应用》 课程设计 设计五 信号的频域分析及MATLAB实现 学院: 专业: 班级: 姓名: 学号:

信号的频域分析及MATLAB实现 一、设计目的 通过该设计,理解傅里叶变换的定义及含义,掌握对信号进行频域分析的方法。 二、课程设计环境 计算机 MATLAB软件 三、设计内容及主要使用函数 快速傅里叶变换的应用 1)滤波器频率响应 对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器。其功能就是得到一个特定频率或消除一个特定频率,滤波器是一种对信号有处理作用的器件或电路。主要作用是:让有用信号尽可能无衰减的通过,对无用信号尽可能大的。 滤波器的类型:巴特沃斯响应(最平坦响应),贝赛尔响应,切贝雪夫响应。 滤波器冲激响应的傅里叶变换就是该滤波器的频率响应。

2)快速卷积 卷积定理指出,函数卷积的傅里叶变换是函数傅里叶变换的乘积。即一个域中的卷积相当于另一个域中的乘积,例如时域中的卷积就对应于频域中的乘积。其中表示f 的傅里叶变换。 这一定理对拉普拉斯变换、双边拉普拉斯变换等各种傅里叶变换的变体同样成立。在调和分析中还可以推广到在局部紧致的阿贝尔群上定义的傅里叶变换。 利用卷积定理可以简化卷积的运算量。对于长度为n 的序列,按照卷积的定义进行计算,需要做2n - 1组对位乘法,其计算复杂度为;而利用傅里叶变换将序列变换到频域上后,只需要一组对位乘法,利用傅里叶变换的快速算法之后,总的计算复杂度为。这一结果可以在快速乘法计算中得到应用。 1. 信号的离散傅里叶变换 有限长序列的离散傅里叶变换公式为: kn N j N n e n x k X )/2(10)()(π--=∑= ∑==1_0)/2()(1)(N n kn N j e k X N n x π MATLAB 函数:fft 功能是实现快速傅里叶变换,fft 函数的格式为: ),(x fft y =返回向量x 的不连续fourier 变换。 若)6 cos()(πn n x =是一个N=12的有限序列,利用MATLAB 计算

基于MATLAB的频谱分析及信号去噪仿真研究开题报告

辽宁石油化工大学 信息与控制工程学院 毕业设计(论文)开题报告 论文题目:基于MATLAB的频谱分析及信号去噪仿真研究 学生姓名:徐宏强 专业班级:信息0901 学号: 0903030123 指导教师:崔畅 2013 年 03 月 17日

填写说明: 1.题目的背景和意义 对题目的出处,背景和意义进行说明论述,不少于300字。2.题目研究现状概述 通过调研和查阅文献,对题目所涉及的技术、理论和研究成果进行说明论述,不少于1000字。 3.题目要完成的主要内容和预期目标 对题目要完成的主要内容进行说明,并说明达到的预期目标, 不少于300字 4.进度计划 从设计开始的教学周起,依据任务书的进度安排进行细化并以周为单位给出主要工作和完成的任务。 5.参考文献 对2引用的资料、论文或著作按照引用顺序列出参考文献(格式同论文《参考文献》)。不少于10篇(其中近3年的文献占1/3以上), 注:相应栏不够时自动加页。 排版要求:正文,宋体,小四,行距固定值20磅 要求学生在毕业设计(论文)开始后的第2周末完成《开题报告》,并交到指导教师评阅(交电子稿和双面打印稿)。

1.题目的背景和意义 随着时代的发展,信息的传输方式逐渐发展为通过信号的方式传送,信号在采集和传输的过程中,由于外界的影响及机器自身的原因难免会有噪声夹杂在其中,在这种情况下,会影响对信号的分析,尤其是对一些高精度数据影响更为巨大,所以对信号的去噪,提取出原始信号是一个重要课题,最为传统的去噪方式是让信号通过一个低通或者带通滤波器,通过这种方法滤去噪声,但是在这个过程中可能会使信号变得平滑失去突变信息,现今的数字滤波器分为有限冲激响应滤波器FIR和无限冲激响应滤波器IIR,在各种信号处理与分析的中,最重要的数学工具是傅立叶变换,而常用的处理工具是MATLAB,利用MATLAB设计滤波器,可以随时对比设计要求,并调整滤波器参数,这样更为直观简便,减轻工作量,有利于对滤波器的设计优化,对信号的去噪有更好的帮助。 2.题目研究现状概述 随着计算机的发展,数字信号处理的理论与技术得到飞速发展,20世纪60年代以来,我国形成了一系列的数字信号处理的理论与算法,比如,数字滤波器,快速傅立叶变换(FFT),这些都是数字信号处理的技术基础,随着信息科技的飞速发展,信号处理取得了重大的飞跃。信号的去噪是数字信号处理中的一个很重要的研究课题,在现今的各种信号中,噪声一般分为两类:相干噪声和随机噪声,相干噪声包括面波,多次波等,随机噪声包括测量误差,环境噪声等。而对信号滤除噪声的方法大致分为三种:基于傅立叶变换的去噪法,相干平均去噪法,和基于小波变换的去噪法。信号去噪在雷达的使用和通信中有着极大的作用,经过先辈们不断的研究与实验,运用滤波器进行信号去噪的方法已经相当完美了,数字滤波器, 是数字信号处理中及其重要的一部分。随着信息时代和数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能,数字滤波器分为IIR数字滤波器和FIR数字滤波器。 信号处理基本涉及到所有的工程技术领域,而信号去噪是信号处理的一个非常重要的分支,而频谱分析又是信号处理中一个非常重要的分析手段,一般的频谱分析都依靠传统频谱分析仪来完成,价格昂贵,体积庞大,不便于工程技术人员的携带。而利用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=

用Matlab进行信号与系统的时、频域分析

课程实验报告 题目:用Matlab进行 信号与系统的时、频域分析 学院 学生姓名 班级学号 指导教师 开课学院 日期 用Matlab进行信号与系统的时、频域分析 一、实验目的 进一步了解并掌握Matlab软件的程序编写及运行; 掌握一些信号与系统的时、频域分析实例; 了解不同的实例分析方法,如:数值计算法、符号计算法; 通过使用不同的分析方法编写相应的Matlab程序; 通过上机,加深对信号与系统中的基本概念、基本理论和基本分析方法的理解。 二、实验任务 了解数值计算法编写程序,解决实例; 在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'); (2)已知两个信号)()(t e t x t ε-=和)()(2/t te t h t ε-=,试用数值计算法求卷积,并分别画出)(),(t h t x 和卷积)()()(t h t x t y *=的波形。 程序代码: t2=3;t4=11; T=0.01; t=0:T:t2+t4; x=exp(-t).*((t>0)-(t>t2)); h=t.*exp(-t/2).*((t>0)-(t>t4)); y=conv(x,h)*T; yt=4*exp(-t)+2*t.*exp(-1/2*t)-4*exp(-1/2*t); subplot(3,1,1),plot(t,x); ylabel('x(t)'); subplot(3,1,2),plot(t,h); ylabel('h(t)'); subplot(3,1,3),plot(t,y(1:(t2+t4)/T+1),t,yt,'--r'); legend('by numberical','Theoretical'); ylabel('y=x*h'); xlabel('----t/s'); (3)求周期矩形脉冲信号的频谱图,已知s T s A 5.0,1.0,1===τ

Matlab对采样数据进行频谱分析

使用Matlab对采样数据进行频谱分析 1、采样数据导入Matlab 采样数据的导入至少有三种方法。 第一就是手动将数据整理成Matlab支持的格式,这种方法仅适用于数据量比较小的采样。 第二种方法是使用Matlab的可视化交互操作,具体操作步骤为:File --> Import Data,然后在弹出的对话框中找到保存采样数据的文件,根据提示一步一步即可将数据导入。这种方法适合于数据量较大,但又不是太大的数据。据本人经验,当数据大于15万对之后,读入速度就会显著变慢,出现假死而失败。 第三种方法,使用文件读入命令。数据文件读入命令有textread、fscanf、load 等,如果采样数据保存在txt文件中,则推荐使用 textread命令。如 [a,b]=textread('data.txt','%f%*f%f'); 这条命令将data.txt中保存的数据三个三个分组,将每组的第一个数据送给列向量a,第三个数送给列向量b,第二个数据丢弃。命令类似于C语言,详细可查看其帮助文件。文件读入命令录入采样数据可以处理任意大小的数据量,且录入速度相当快,一百多万的数据不到20秒即可录入。强烈推荐! 2、对采样数据进行频谱分析 频谱分析自然要使用快速傅里叶变换FFT了,对应的命令即 fft ,简单使用方法为:Y=fft(b,N),其中b即是采样数据,N为fft数据采样个数。一般不指定N,即简化为Y=fft(b)。Y即为FFT变换后得到的结果,与b的元素数相等,为复数。以频率为横坐标,Y数组每个元素的幅值为纵坐标,画图即得数据b的幅频特性;以频率为横坐标,Y数组每个元素的角度为纵坐标,画图即得数据b的相频特性。典型频谱分析M程序举例如下: clc fs=100; t=[0:1/fs:100]; N=length(t)-1;%减1使N为偶数 %频率分辨率F=1/t=fs/N p=1.3*sin(0.48*2*pi*t)+2.1*sin(0.52*2*pi*t)+1.1*sin(0.53*2*pi*t)... +0.5*sin(1.8*2*pi*t)+0.9*sin(2.2*2*pi*t); %上面模拟对信号进行采样,得到采样数据p,下面对p进行频谱分析 figure(1) plot(t,p); grid on title('信号 p(t)'); xlabel('t') ylabel('p')

基于matlab的频谱分析仪设计

Frequency Analyzer YangXiao M2013705103 HuaZhong University of Science and Technology School of Mechanical Science and Engineering Abstract: Matlab Is a numerical analysis, matrix calculation, scientific data visualization and nonlinear dynamic state system modeling and simulation, and other functions of practical software engineering.It’s easy to use the windows environment and cast off a tradition on the interactive programming language (such as C, Fortran) Edit mode In large range.In this report,The task is to design a frequency analyzer by using matlab. Keyword:frequency analyzer;Matlab;time-domain analysis;frequency-domain analysis;

1.Preface MATLAB is called Matrix Laboratory,which is designed by the United States MathWorks company.It’s a commercial mathematical software. Matlab can be use for Matrix operations, mapping functions and data, algorithm, creating the user interface, connect to other programming languages procedures, mainly used in engineering calculations, control design, signal processing and communications, image processing, signal detection, design and financial modeling analysis and other fields. GUI (Graphical User Interface, referred to as GUI, known Graphical User Interface) is displayed using the graphical user interface of computer operations.. Matlab has a powerful GUl tool. In this report, by using matlab GUI tool we could design a frequency analyzer. Frequency analyzer is the instrument which could be used to study the structure of the electrical signal spectrum, and used to measure the signal parameters of signal distortion, modulation, frequency stability and spectral purity.Frequency analyzer could be used to measure some parameters of amplifier and filter circuit system , and it is a kind of multipurpose electronic measuring instrument. FFT (Fast Fourier Transformation) is the fast algorithm of DFT(discrete Fourier transformtion), which is based on discrete Fourier transform.By using FFT we could get the answer faster than DFT.

matlab频谱分析

设计出一套完整的系统,对信号进行频谱分析和滤波处理; 1.产生一个连续信号,包含低频,中频,高频分量,对其进行采样,进行频谱分析,分别设计三种高通,低通,带通滤波器对信号进行滤波处理,观察滤波后信号的频谱。 2.采集一段含有噪音的语音信号(可以录制含有噪音的信号,或者录制语音后再加进噪音信号),对其进行采样和频谱分析,根据分析结果设计出一合适的滤波器滤除噪音信号。 %写上标题 %设计低通滤波器: [N,Wc]=buttord() %估算得到Butterworth低通滤波器的最小阶数N和3dB截止频率Wc [a,b]=butter(N,Wc); %设计Butterworth低通滤波器 [h,f]=freqz(); %求数字低通滤波器的频率响应 figure(2); % 打开窗口2 subplot(221); %图形显示分割窗口 plot(f,abs(h)); %绘制Butterworth低通滤波器的幅频响应图 title(巴氏低通滤波器''); grid; %绘制带网格的图像 sf=filter(a,b,s); %叠加函数S经过低通滤波器以后的新函数 subplot(222); plot(t,sf); %绘制叠加函数S经过低通滤波器以后的时域图形 xlabel('时间(seconds)'); ylabel('时间按幅度'); SF=fft(sf,256); %对叠加函数S经过低通滤波器以后的新函数进行256点的基—2快速傅立叶变换 w= %新信号角频率 subplot(223); plot()); %绘制叠加函数S经过低通滤波器以后的频谱图 title('低通滤波后的频谱图'); %设计高通滤波器 [N,Wc]=buttord() %估算得到Butterworth高通滤波器的最小阶数N和3dB截止频率Wc [a,b]=butter(N,Wc,'high'); %设计Butterworth高通滤波器 [h,f]=freqz(); %求数字高通滤波器的频率响应 figure(3); subplot(221); plot()); %绘制Butterworth高通滤波器的幅频响应图 title('巴氏高通滤波器'); grid; %绘制带网格的图像 sf=filter(); %叠加函数S经过高通滤波器以后的新函数 subplot(222); plot(t,sf); ;%绘制叠加函数S经过高通滤波器以后的时域图形 xlabel('Time(seconds)'); ylabel('Time waveform'); w; %新信号角频率 subplot(223);

基于MATLAB的频谱分析仪设计

基于MATLAB的信号频谱分析仪的实现 一、概述 信号处理几乎涉及到所有的工程技术领域,而频谱分析又是信号处理中一个非常重要的分析手段。一般的频谱分析都依靠传统频谱分析仪来完成,价格昂贵,体积庞大,不便于工程技术人员的携带。虚拟频谱分析仪改变了原有频谱分析仪的整体设计思路,用软件代替了硬件,使工程技术人员可以用一部笔记本电脑到现场就可轻松完成信号的采集、处理及频谱分析。 在工程领域中,MA TLAB是一种倍受程序开发人员青睐的语言,对于一些需要做大量数据运算处理的复杂应用以及某些复杂的频谱分析算法MA TLAB显得游刃有余。本文将重点介绍虚拟频谱分析仪、MA TLAB软件及对正弦信号的频谱分析。 1.1虚拟频谱分析仪的功能包括: (1) 音频信号信号输入。输入的途径包括从声卡输入、从WAV文件输入、从信号发生器输入; (2) 信号波形分析。包括幅值、频率、周期、相位的估计,并计算统计量的峰值、均值、均方值和方差等信息; (3) 信号频谱分析。频率、周期的估计,图形显示幅值谱、相位谱和功率谱等信息的曲线。 2.1MA TLAB软件

二、实验原理 2.1快速傅立叶变换(FFT) 在各种信号序列中,有限长序列占重要地位。对有限长序列可以利用离散傅立叶变换(DFT)进行分析。DFT不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。 有限长序列的DFT是其z变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的谱分析。FFT是DFT 的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。 MATLAB为计算数据的离散快速傅立叶变换,提供了一系列丰富的数学函数,主要有Fft、Ifft、Fft2 、Ifft2, Fftn、ifftn和Fftshift、Ifftshift等。当所处理的数据的长度为2的幂次时,采用基-2算法进行计算,计算速度会显著增加。所以,要尽可能使所要处理的数据长度为2的幂次或者用添零的方式来添补数据使之成为2的幂次。 Fft函数调用方式:○1Y=fft(X); ○2Y=fft(X,N); ○3Y=fft(X,[],dim)或Y=fft(X,N,dim)。 函数Ifft的参数应用与函数Fft完全相同。 2.2周期图法功率谱分析原理 周期图法是把随机数列x(n)的N个观测数据视为能量有限的序列,直接计算x(n)的傅立叶变换,得X(k),然后再取幅值的平

MATLAB关于FFT频谱分析的程序

MATLAB关于FFT频谱分析的程序 %***************1.正弦波****************% fs=100;%设定采样频率 N=128; n=0:N-1; t=n/fs; f0=10;%设定正弦信号频率 %生成正弦信号 x=sin(2*pi*f0*t); figure(1); subplot(231); plot(t,x);%作正弦信号的时域波形 xlabel('t'); ylabel('y'); title('正弦信号y=2*pi*10t时域波形'); grid; %进行FFT变换并做频谱图 y=fft(x,N);%进行fft变换 mag=abs(y);%求幅值 f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换 figure(1); subplot(232); plot(f,mag);%做频谱图 axis([0,100,0,80]); xlabel('频率(Hz)'); ylabel('幅值');

title('正弦信号y=2*pi*10t幅频谱图N=128'); grid; %求均方根谱 sq=abs(y); figure(1); subplot(233); plot(f,sq); xlabel('频率(Hz)'); ylabel('均方根谱'); title('正弦信号y=2*pi*10t均方根谱'); grid; %求功率谱 power=sq.^2; figure(1); subplot(234); plot(f,power); xlabel('频率(Hz)'); ylabel('功率谱'); title('正弦信号y=2*pi*10t功率谱'); grid; %求对数谱 ln=log(sq); figure(1); subplot(235); plot(f,ln);

基于MATLAB的信号波形与频谱分析 精品

辽宁科技大学毕业设计(论文)第I页 基于MATLAB的信号波形与频谱分析 摘要 本文利用MATLAB软件进行信号频谱分析的设计,并通过GUI界面(图形用户界面)实现信号频谱分析的动态设计。用户可与计算机交互式地进行对象参数的设置、控制算法的选取、以及对离散信号与连续信号的动态频谱分析。并利用MATLAB内嵌的Simulink模块,实现系统的信号频谱分析,满足不同用户的不同要求。 MATLAB的GUIDE是专门用于图形用户界面(GUI)程序设计的快速开发环境,本文从介绍GUIDE入手结合具体的软件图形界面实例,给出了利用GUIDE制作图形用户界面的基本方法。通过本文的研究得出利用GUIDE设计的仿真界面不仅可以对离散信号与连续信号的动态频谱进行相关分析,而且还可以对此问题作进一步的预测和分析。基于GUIDE技术制作的图形用户界面,具有友好性,开放性,方便科研人员不断地研究和扩充。 关键词频谱分析;GUI;SIMULINK;MATLAB

辽宁科技大学毕业设计(论文)第II页 Abstract Using MATLAB software for signal spectrum analysis of the design, and through the GUI interface (graphical user interface) signal spectrum analysis of the dynamic design. Users can interactively with the computer targeting parameters for the establishment, control algorithm selection, and the discrete signals and continuous signal analysis of the dynamic spectrum. MATLAB and Simulink embedded module, the signal system to achieve spectral analysis, meet the needs of different users with different needs. MATLAB GUIDE is devoted to the graphical user interface (GUI) design procedures for the rapid development environment, This paper introduced GUIDE start from the context of the specific examples of graphical interface software, GUIDE is produced using a graphical user interface methods. Through this paper, the study of the use of simulation GUIDE interface design can not only right for discrete signal and the signal dynamic spectrum analysis, but also the issue for further analysis and forecasts. GUIDE technology based on the production of graphical user interface is friendly and open, facilitate researchers continue to study and expanded. Keywords Spectrum Analysis ;GUI;SIMULINK;MATLAB

基于MATLAB的频率调制与解调

郑州轻工业学院 课程设计说明书 题目:利用MATLAB实现信号的频率调制与解调 姓名:宋蒙 院(系):电气信息工程学院 专业班级:电子信息工程专业 学号:541101030233 指导教师:赵红梅 成绩: 时间:2014年 6 月9 日至2014年 6 月13 日

郑州轻工业学院 课 程 设 计 任 务 书 题目 利用MATLAB 实现信号的频率调制与解调 专业、班级 电子信息工程11级 2班 学号 33 姓名 宋蒙 主要内容、基本要求、主要参考资料等: 主要内容: 利用MATLAB 对信号 ()()???? ?≤=其他 ,0t ,10002t t Sa t m 进行频率调制,载波信号频率为1000Hz ,频偏常数s t K f 2.0,500==。首先在MATLAB 中显示调制信号的波形和频谱,已调信号的波形和频谱,比较信号调制前后的变化。然后对已调信号解调,并比较解调后的信号与原信号的区别。 基本要求: 1、掌握利用MATLAB 实现信号频率调制与解调的方法。 2、学习MATLAB 中信号表示的基本方法及绘图函数的调用,实现对常用连续时间信号的可视化表示。 3、加深理解调制信号的变化;验证信号调制的基本概念、基本理论,掌握信号与系统的分析方法。 主要参考资料: 1、王秉钧等. 通信原理[M].北京:清华大学出版社,2006.11 2、陈怀琛.数字信号处理教程----MATLAB 释义与实现[M].北京:电子工业出版社,2004. 完 成 期 限: 2014.6.9—2014.6.13 指导教师签名: 课程负责人签名: 2014年 6月 13日

利用MATLAB实现信号的频率调制与解调 电子信息工程 11级 2班指导老师:赵红梅 摘要:FM属于角度调制,角度调制与线性调制不同,已调信号频谱不再是原调制信号频谱的线性搬移,而是频谱的非线性变换,会产生与频谱搬移不同的新的频率成分,故又称为非线性调制。FM调制又称为频率调制,与幅度调制相比,角度调制的最突出的优势在于其较高的抗噪声性能,但获得这种优势的代价是角度调制占用比幅度调制信号更宽的带宽。调制在通信系统中有十分重要的作用,通过调制不仅可以进行频谱搬移,把调制信号的频谱搬移到所希望的位置上,从而将调制信号转换成适合于传播的已调信号,而且它对系统的传输有效性和传输的可靠性有着很大的影响,调制方式往往决定了一个通信系统的性能 本课程设计主要基于MATLAB集成环境编写程序实现FM 调制与解调过程,并分别绘制出调制信号、已调信号和解调信号的时域及频域波形。 关键词: FM调制;非相干解调;MATLAB

利用matlab怎样进行频谱分析、、

利用matlab怎样进行频谱分析 图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的区域,对应的频率值较高。傅立叶变换在实际中有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅立叶变换就表示f的谱。从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅立叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。换句话说,傅立叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数,傅立叶逆变换是将图像的频率分布函数变换为灰度分布函数。 这样通过观察傅立叶变换后的频谱图,也叫功率图,我们首先就可以看出,图像的能量分布,如果频谱图中暗的点数更多,那么实际图像是比较柔和的(因为各点与邻域差异都不大,梯度相对较小),反之,如果频谱图中亮的点数多,那么实际图像一定是尖锐的,边界分明且边界两边像素差异较大的。对频谱移频到原点以后,可以看出图像的频率分布是以原点为圆心,对称分布的。将频谱移频到圆心除了可以清晰地看出图像频率分布以外,还有一个好处,它可以分离出有周期性规律的干扰信号,比如正弦干扰,一副带有正弦干扰,移频到原点的频谱图上可以看出除了中心以外还存在以某一点为中心,对称分布的亮点集合,这个集合就是干扰噪音产生的,这时可以很直观的通过在该位置放置带阻滤波器消除干扰。另外我还想说明以下几点: 1、图像经过二维傅立叶变换后,其变换系数矩阵表明: 若变换矩阵Fn原点设在中心,其频谱能量集中分布在变换系数短阵的中心附近(图中阴影区)。若所用的二维傅立叶变换矩阵Fn的原点设在左上角,那么图像信号能量将集中在系数矩阵的四个角上。这是由二维傅立叶变换本身性质决定的。同时也表明一股图像能量集中低频区域。 2、变换之后的图像在原点平移之前四角是低频,最亮,平移之后中间部分是低频,最亮,亮度大说明低频的能量大(幅角比较大)。 从计算机处理精度上就不难理解,一个长度为N的信号,最多只能有N/2+1个不同频率,再多的频率就超过了计算机所能所处理的精度范围)X[]数组又分两种,一种是表示余弦波的不同频率幅度值:Re X[],另一种是表示正弦波的不同频率幅度值:Im X[],Re是实数(Real)的意思,Im是虚数(Imagine)的意思,采用复数的表示方法把正余弦波组合起来进行表示,但这里我们不考虑复数的其它作用,只记住是一种组合方法而已,目的是为了便于表达(在后面我们会知道,复数形式的傅立叶变换长度是N,而不是N/2+1)。

matlab声音信号频谱分析的课程设计

原语音信号 [y,fs,bits]=wavread('C:\Users\Administrator\Desktop\111.wav'); >> sound(y,fs,bits); >> n=length(y) n = 92611 >> Y=fft(y,n); >> subplot(2,1,1);plot(y); >> subplot(2,1,2);plot(abs(Y));

加噪声 >> [y,fs,bits]=wavread('C:\Users\Administrator\Desktop\111.wav'); >> sound(y,fs,bits); >> n=length(y) n = 92611 >> Noise=0.2*randn(n,2); >> s=y+Noise; >> sound(s) >> subplot(2,1,1); >> plot(s) >> S=fft(s); >> subplot(2,1,2); >> plot(abs(S)) >> title('加噪语音信号的频谱波形')

FIR 低通滤波器 fp=1000;fc=1200;As=100;Ap=1;fs=30000; >> wc=2*fc/fs;wp=2*fp/fs; >> N=ceil((As-7.95)/(14.36*(wc-wp)/2))+1; >> beta=0.1102*(As-8.7); >> Win=Kaiser(N+1,beta); b=fir1(N,wc,Win); >> freqz(b,1,512,fs); >> s_low=filter(b,1,s); >> plot(s_low);title('信号经过低通滤波器的时域图') >> S_low=fft(s_low,n); >> plot(abs(S_low));title('信号经过低通滤波的频谱') >> sound(s_low,fs,bits)

基于MATLAB的语音信号的频谱分析

数字信号处理 结课报告 设计题目:基于MATLAB的语音信号的频谱分析姓名: 专业班级: 学号: 成绩: 指导教师: 日期: 2013 年 11 月 30 日

1.课程设计目的 综合运用数学信号处理的理论知识进行语音信号的频谱分析,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。 2.理解设计基本要求 1)熟悉离散信号和系统的时域特性。 2)熟悉线性卷积和相关的计算编程方法。 3)掌握序列傅里叶变换的计算机实现方法,利用序列傅里叶变换对离散信号、系统和 系统的响应进行频域分析。 4)学会MATLAB的使用,掌握MATLAB的程序设计方法。 5)利用MATLAB对wav文件进行频谱分析。 6)分别用不同的滤波器对加噪语音信号进行滤波,选择最佳滤波器。 3.课程设计内容 选择一个wav文件作为分析的对象,或录制一段语音信号,对其进行频谱分析,分别对加噪前后的语音信号进行频谱分析,再通过不同滤波器根据信号的频谱特点重构语音信号,选出最佳滤波方案。 4.课程设计实现步骤 (1)语音信号的获取 选择一个wav文件作为分析的对象,可以利用Windows下的录音机或其他软件,录制一段自己的话音,在MATLAB中,[y,fs,bits]=wavread('Blip',[N1 N2]);用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。[N1 N2]表示读取的值从N1点到N2点的值。 sound(y);用于对声音的回放。向量y则就代表了一个信号,也即一个复杂的“函数表达式”,也可以说像处理一个信号的表达式一样处理这个声音信号。 下面是语音信号在MATLAB中的语言程序,它实现了语音的读入与打开,并绘出了语音信号时域波形,然后对语音信号进行频谱分析。在MATLAB中,可以利用函数fft对信号进行快速傅里叶变化,得到信号的频谱特性。 在频谱特性中分析最大值的位置(可能有几个),它代表的频率和时域的采样时间有关,相邻的两点之间的距离为。其中,N是离散傅里叶变换用的点数,是采样的时间,前面在读取 wav文件时得到了采样频率。 既然知道了该声波的频谱,按频率就可以反演它的时域值,利用以上分析的主要峰值来重构声波。由于没有考虑相位和其他的频谱分量,所以波形和原来的波形相差甚大,但大体的频率是没有错的。 fs=25600; %语音信号采样频率为25600 [x,fs,bits]=wavread('C:\windows\system32\config\systemprofile\Des ktop\mayue.wav'); sound(x,fs,bits); %播放语音信号

相关主题
文本预览
相关文档 最新文档