当前位置:文档之家› 基于MATLAB的谐波分析FFT

基于MATLAB的谐波分析FFT

基于MATLAB的谐波分析FFT
基于MATLAB的谐波分析FFT

目录

(1)Matlab6.5以上版本软件; ....................................................... 错误!未定义书签。绪论. (1)

1 公式分析及计算 (2)

1.1傅里叶变换的原理 (2)

1.2傅里叶变换的证明 (3)

1.3 周期信号的分解 (3)

1.4 方波的分解 (5)

2 建模与仿真 (7)

2.1建模 (7)

2.2仿真 (8)

3 仿真结果分析 (10)

4 小结 (11)

参考文献 (13)

绪论

方波是一种非正弦曲线的波形,通常会于电子和讯号处理时出现。由于一般电子零件只有“高(1)”和“低(0)”两个值,方波就自然产生,所以理想方波只有“高”和“低”这两个值。电流的波形为矩形的电流即为方波电流。不论时间轴上下是不是对称的,只要是矩形就可叫方波,必要时,可加“对称”,“不对称”加以说明。而在现实世界,方波只有有限的带宽。因为方波可以快速从一个值转至另一个(即0→1或1→0),所以方波就用作时钟讯号来准确地触发同步电路。但是如果用频率定义域来表示方波,就会出然一连串的谐波。所以方波可用相应频率的基波及其奇次谐波合成。

在电路信号系统的分析中,随着电路规模的加大,微分方程的阶数以及联立后所得的方程的个数也随之加大,加上电器元件的多样化,这些都给解题运算分析电路系统带来了一定的困难。传统的计算机编程语言,如FORTRAN、C语言等,虽然都可以帮助计算,但在处理高阶微分方程和大规模的联立方程组的问题时大量的时间和精力都花在矩阵处理和图形的生成分析等繁琐易错的细节上。而MATLAB凭借其强大的矩阵运算能力、简便的绘图功能、可视化的仿真环境以及丰富的算法工具箱,已成为科研和工程技术人员的有力开发工具。利用MATLAB不仅可以简单快速的求解电路方程,同时,MAYLAB提供的Simulink工具还可以直接建立电路模型,随意改变模型的参数,并且还可以快速得到仿真拟结果,进一步省去了编程的步骤。MATLAB具有数值计算功能;图形处理及可视化功能;可视化建模及动态仿真功能等等。它给用户带来的是最直观,最简洁的程序开发环境。它的语言简洁紧凑,使用方便灵活,程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。同时,它的运算符也很丰富。由于MATLAB是用C

语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。它的程序的可移植性,基本上不做修改就可以在各种型号的计算机和操作系统上运行。

本文应用MATLAB来验证定理:方波可用相应频率的基波及其奇次谐波合成。

1 公式分析及计算

1.1傅里叶变换的原理

任何具有性质周期为T 的波函数()f t 都可以表示为三角函数所构成的级数之和,即:

∑∞

=++=1

0)s i n c o s (21

)(n n n t b t n a a t f ωω (1)

其中:t 为时间,ω为角频率。ω=T

π

2(T 为周期),第一项01a 2为直流分量。

图1 方波

所谓周期性函数的傅里叶变换(Fourier transform )就是将周期性函数张凯成直流分量,基波和所有n 次谐波的叠加。

图1所示的方波可以写成函数形式:

h (0≤t <2

T )

()f t =

-h (-2

T ≤t <0)

在这里,h 为常数2。很明显,此方波为奇函数,并且它没有常数项,同时,它是一个周期为T 的函数,所以我们可以用傅里叶级数来表示这个函数。

()f t =

∑∞

=--1

])12sin[()1

21

(

4n t n n h

ωπ

(2) 我们把它展开,可以得到:

)7sin 7

1

5sin 513sin 31(sin 4)( ++++=

t t t t h

t f ωωωωπ (3)

1.2傅里叶变换的证明

下面,我们要从数学角度来证明为什么公式(3)能成立。由于这是一个奇函数,常数项0a 可以用积分函数计算出来:

2

202a =()0T

T

f x dt T -=?

所以其常数项不存在,即0a =0,下面开始计算n a 与n b :

22

2=()cos()T

T n a f x n t dt T ω-?

020

222()cos()cos()T

T h n t dt h n t dt T T ωω-=-+??

[][]0

202

22sin()sin()T T h h n t n t T n T n ωωωω-=-+

0=

22

2=()sin()T

T n b f x n t dt T ω-?

[][]0202

22cos()cos()T

T h h n t n t T n T n ωωωω-=-+ 2[1(1)]n h

n π

=

-- 由上式可知,当n =2,4,6,

时,0n b =;当n =1,3,5,时,4n h

b n π

=

。然后我们将n a 与n b 都带入公式(1),就可以得到公式(3):

)7sin 7

1

5sin 513sin 31(sin 4)( ++++=

t t t t h

t f ωωωωπ 如果我们取的项越多,就会越逼近原本的方波函数。

1.3 周期信号的分解

周期信号是定义在(-∞, ∞)区间,每隔一定的时间T ,按相同规律重复变化的信号,它可表示为

f(t)=f(t+mT)

式中m 为任意整数。时间T 称为该信号的重复周期,简称为周期。

需要指出的是,只有当周期信号满足狄里赫利条件时,才能展开为傅里叶级数。 狄里赫利条件是:

1)函数在任意有限区间内连续,或只有有限个第一类间断点(当t 从左或右趋于这个间断点时,函数有有限的左极限和右极限) 2)在一周期内,函数有有限个极大值或极小值。 设有周期信号f(t),它的周期是T ,角频率Ω=2πF=

T

π

2,它可分解为 (2-1)

上式中系数a n ,b n 称为傅里叶系数。为简便, 式

积分区间(t 0, t 0+T )取为(-2T ,2

T

)或(0,T )。考虑到正、余弦函数的正交条件,可得傅里叶系数

a n =?-22

2

T

T

T f (t)cos(n Ωt)dt, n=0,1,2,…… (2-2) b n =?-22

2T

T

T f (t)sin(n Ωt)dt, n=0,1,2,…… (2-3)

式中T 为函数f(t)的周期,Ω=

T

π

2为角频率,由上述两式,傅里叶系数a n 和b n 都

+Ω++Ω+Ω++Ω++Ω+Ω+=t n b t b t b t n a t a t a a t f n n sin 2sin sin cos 2cos cos 2)(2121

是n 的函数,其中a n 是n 的偶函数,即a n -= a n ;而b n 是n 的奇函数,既有b n -=- b n

将式(2-1)中同频率项合并,可写成如下形式 f(t)=

++Ω++Ω+)2cos()cos(2

22110

??t A t A A …… =

)cos(21

0n n n t n A A ?+Ω+∑∞

= (2-4) 式中 00a A =

A n =22b a +,n=1,2,……

n ?=-arctan(

n

n

a b ) 如将式(2-4)的形式化为(2-1)的形式,他们系数之间的关系为 a 00A =

a n n n A ?cos =,n=1,2,……

b n n n A ?sin -=,

式(2-4)表明,任何满足狄里赫利条件的周期函数可分解为直流和许多余弦(或正弦)分量。其中第一项

2

A 是常数项,它是周期信号中所包涵的直流分量;式中第二项A )cos(11?+Ωt 称为基波或一次谐波,它的角频率与原周期信号相同,A 1是基波振幅,1?是基波初相角;式中第三项A )2cos(22?+Ωt 称为二次谐波,它的频率是基波频率的两倍,A 2是二次谐波振幅,2?是其初相角。以此类推,还有三次、四次、……谐波。一般而言,A )cos(n n t n ?+Ω称为n 次谐波,A n 是n 次谐波的振幅,n ?是其初相角。式(2-4)表明,周期函数可以分解为各谐波分量。

1.4 方波的分解

设方波信号f(t)的周期为T ,宽度为2T

,将其展开为傅里叶级数

由式(2-2)和(2-3)可得

?

-Ω=

22

)cos()(2T T n dt

t n t f T

a

=dt t n T

T )cos()1(20

2Ω-?-+

dt

t n T

T )cos()1(2

20

Ω?

()[]()[]02sin 1

220sin 12T t n n T T t n n T ΩΩ?+-Ω-Ω?

考虑到

T π

2=

Ω,可得

=n a

()()()??Ω+Ω-=-20

02sin 2

sin 12T

T n dt

t n T dt t n T b

()()[]02c os 122

0c os

1

2T t n n T T t n n T Ω-Ω?+-ΩΩ?=

()[]?

?=??==-=,5,3,1n ,6,4,240cos 12

n n n n π

ππ

将它们代入到式(2-1),得到信号的傅里叶级数展开式为

()()()()???

????+Ω+?+Ω+Ω+Ω=

t n t t t t f sin n 15sin 513sin 31sin 4)(π,n=1,3,5,……

它只含一、三、五…奇次谐波分量。

下图中画出了一个周期的方波组成情况,由图可见,当它包含的谐波分量愈多时,波形就愈接近原来的方波信号()t f (图中虚线所示),其均方误差愈小,还可以看出,频率较低的谐波,其振幅较大,他们组成方波的主体,而频率较高的高次谐波振幅较小,它们主要影响波形的细节,波形中所包含的高次谐波愈多,波形的边缘愈陡峭。

(a )基波 (b )基波“+”三次谐波

(c )基波+三次谐波+五次谐波 (d )基波+三次谐波+五次谐波+七次谐波 由图中还可以看出,合成波形所包含的谐波,除间断点附近外,它愈接近于原方波信号。在间断点附近,随着所含谐波次数的增高,合成波形的尖峰愈靠近间断点,但尖峰幅度并未明显减小。可以证明,即使合成波形所含谐波次数n ∞→时,在间断点处仍有约9%的偏差,这种现象称为吉布斯现象。在傅里叶级数的项数取得很大时,间断点处尖峰下的面积非常小以致趋近于零,因而在均方的意义上合成波形同原方波的真值之间没有区别。

2 建模与仿真

2.1建模

上文中,我们证明了一个以原点为奇对称中心的方波可以用奇次正弦波的叠加

来逼近。()f t 可以简化为()y t :

111

()sin sin 3sin 5sin(21)35

21

y t t t t k t k =+++

+

-+- (4)

如果我们能验证()y t 是方波,那么我们可以得出()f t 也是方波,只是()f t 的方波的幅值是()y t 幅值的

4h

π

倍。

已知方波的宽度为π,周期为2π,我们可以用MATLAB 程序来检验这种逼近的程度与特征。 程序如下:

t = 0:.01:2*pi; % 设定一个时间数组, 有101 个点

y = sin(t);plot(t,y),figure(gcf),pause % 频率为w=1(f=1/2π)的正弦基波 y = sin(t) + sin(3*t)/3; plot(t,y), pause % 叠加三次谐波 y = sin(t) + sin(3*t)/3 + sin(5*t)/5 + sin(7*t)/7 + sin(9*t)/9; plot(t,y) % 用1, 3, 5, 7, 9 次谐波叠加

% 为了绘制三维曲面, 要把各次波形数据存为一个三维数组, 因此必须重新定义y, 重编程。

y = zeros(10,max(size(t))); x = zeros(size(t)); for k=1:2:19

x = x + sin(k*t)/k; y((k+1)/2,: ) = x; end

pause, figure(1),plot(t,y(1:9,: )),grid % 将各波形迭合绘出 line([0,pi+0.5],[pi/4,pi/4]) % 加上方波幅度线及标注 text(pi+0.5,pi/4,' pi/4' ) halft=ceil(length(t)/2); pause, figure(2),

mesh(t(1:halft),[1:10],y(:,1:halft)), % 只用正半周波形 pause,clc

2.2仿真

仿真结果如图2至图6所示,其中所有的横坐标为时间t ,纵坐标为幅值y :

图2 频率为112f ωπ

??

==

??

?

的正弦基波

图3 叠加三次谐波

图4 用1, 3, 5, 7, 9 次谐波叠加

图5 谐波合成的二维曲线

图6 谐波合成的三维曲面

从图6可以看出,所取的阶次越高,合成结果就越接近与方波。至于总是消除不了边缘上的尖峰,这个就是吉布斯效应。

3 仿真结果分析

根据周期信号的傅里叶展开式可知,任何方波周期性信号,只要满足公式(1)条件,都可以分解为一个直流分量和由基波及奇次谐波分量的叠加。

通过数学工具MATLAB 中编程可得,在正弦波(图2)的基础上实现三次谐波的叠加出现波形如图3所示。依次对正弦波信号进行奇次谐波叠加过程(图4),最终结果我们看到了图5中的图像,波形稳定在了4

y π

=的周期性方波。图六为图五

的的三维图像分布图。通过图像的特性我们证明了:当奇次谐波的次数越高时,方波可由正弦波形产生谐波构成。同理可知,一定条件下,周期性方波信号可由相应频率的基波和奇次谐波合成。

4 小结

通过这次基础强化训练让我认识了MATLAB这个有着强大功能的软件。经过这一段时间的学习,我对MATLAB有了较为系统的了解。它的应用领域相当广泛:微积分、矩阵代数、应用数学、物理、力学、信号与系统、电子线路、电机学、机械振动、自动控制和通信技术等。它只需几笔简单的程序,就可以完成繁琐的计算。它的扩展性强,在学好其基础部分之后,还有几十种工具箱可以用于各类科研需要,这可以缩短学习和实践工作的距离。

拿到老师给的题目后,我针对题目进行了分析。方波可用相应频率的基波及其奇次谐波合成,并用MATLAB实现仿真。仔细思考了课题,发现相应频率的基波及其奇次谐波的合成,就是傅里叶的展开式。显然,这要求我要深入研究傅里叶级数展开分析的理论知识,利用MATLAB强大的图形处理功能,符号运算功能以及数值计算功能,实现相应频率的基波及其奇次谐波合成方波。

在这次训练中,我用MATLAB实现方波信号的傅里叶级数分解与综合,绘出包含不同谐波次数的合成波形,观察合成波形与原矩形波形之间的关系及吉布斯现象,证明课题的正确性。

于是我使用MATLAB,输入相关的程序,并且运行它,检查它的正确性,并且修正。在程序的调试过程中遇到很多的问题。有的程序我根本就不知道它错在哪里,也不知道怎么去改正。只有不断的翻书,不断的修改程序,不断的调试。终于绘制出了所需要的图像。

在写相关源程序的时候,我还收索了大量的网站,在网上收索了很多关于MATLAB的资料。在这个过程中我发现网上有很多有用的知识。以后应该多注意,充分合理的利用网络,通过网络来学习东西。

这次基础强化训练使我明白了在知识的领域里我还有很多很多的不足,并且再一次的深深的体会到理论和实践之间还有很到的差别。在以后的学习中应该多多的注意实践知识的训练和积累。在以后的学习生活中要不断的开拓自己的动手能力,不断的训练自己的动手能力。

这次基础强化训练让我学习了了数字信号系统处理里的相关知识,也复习了高数中的相关知识,并且我还对mathtype数学公式编辑器有了一定的了解,并且会用它编辑公式。

21世纪人类的知识正以指数规律飞速增长,我们已经借助计算机辅助设计和制造,设计业和制造业已经大大的提高了效率,创造了空前的财富。但是在我们的教和学的过程中,我们还在做繁琐重复的计算这种机械劳动,如何从其中解放出来?就成了提高学习效率的关键环节。现在我们虽然在大学中学习计算机课程,也只是为了以后的就业需要,很少对学生在学校学习有直接帮助。目前我们还处在“计算器水平”。正因为这样,我们没有足够时间用于概念的思考,知识的扩充和思维的创新。

就像学习信号与系统一样,傅里叶变换,拉普拉斯变换等,都是很复杂的计算,而且做出的答案只是一个单纯的函数式。根本不知道有什么用,而有了MATLAB,我们既可以很快做出答案,并且可以得到它的图像,一举两得,既形象又具体。使枯燥无味的计算变得生动有趣,而且便于理解。

在以后的学习中,我还会继续学习、使用MATLAB,它使计算机真正成为教学有力的工具。

参考文献

[1] 刘泉,阙大顺,郭志强.数字信号处理原理与实现.北京:电子工业出版社,2009

[2] 刘泉,江雪梅.信号与系统.北京:高等教育出版社,2006

[3] 施阳,李俊. MATLAB语言工具箱--T oolBox实用指南.西安:西北工业大学出版社,1999

[4] 贺兴华,王继阳,周晖.MATLAB7.X图像处理.北京:人民邮电出版社,2006

[5] 梁虹. 信号与系统分析及MATLAB实现.北京:电子工业出版社,2002年

[6] 罗建军. MATLAB教程.北京:电子工业出版社,2005年

本科生课程设计成绩评定表

指导教师签字:

年月日

基于matlab谐波抑制的仿真研究(毕设)

电力系统谐波抑制的仿真研究 目 录 1 绪论…………………………………………………………………………… 1.1 课题背景及目的………………………………………………………… 1.2国内外研究现状和进展………………………………………………… 1.2.1国外研究现状 …………………………………………………… 1.2.1国内研究现状 …………………………………………………… 1.3 本文的主要内容…………………………………………………………… 2 有源电力滤波器及其谐波源研究……………………………………………… 2.1 谐波的基本概念………………………………………………………… 2.1.1 谐波的定义……………………………………………………… 2.1.2谐波的数学表达………………………………………………… 2.1.3电力系统谐波标准………………………………………………… 2.2 谐波的产生……………………………………………………………… 2.3 谐波的危害和影响……………………………………………………… 2.4 谐波的基本防治方法…………………………………………………… 2.5无源电力滤波器简述…………………………………………………… 2.6 有源电力滤波器介绍…………………………………………………… 2.6.1 有源滤波器的基本原理.……………………………………… 2.6.2 有源电力滤波器的分类.……………………………… 2.7并联型有源电力滤波器的补偿特性…………………………………… 2.7.1谐波源………………………………………………………… 2.7.2有源电力滤波器补偿特性的基本要求…………………………… 2.7.3影响有源电力滤波器补偿特性的因素…………………………… 2.7.4并联型有源电力滤波器补偿特性……………………………… 2.8 谐波源的数学模型的研究……………………………………………… 2.8.1 单相桥式整流电路非线性负荷………………………………… 2.8.2 三相桥式整流电路非线性负荷.………………………………… 3 基于瞬时无功功率的谐波检测方法…………………………………………… 3.1谐波检测的几种方法比较…………………………………………… 3.2三相电路瞬时无功功率理论…………………………………………… 3.2.1瞬时有功功率和瞬时无功功率……………………………………… 3.2.2瞬时有功电流和瞬时无功电流……………………………………… 3.3 基于瞬时无功功率理论的p q -谐波检测算法.…………………… 3.4基于瞬时无功功率理论的p q i i -谐波检测法.…………………… 4并联有源电力滤波器的控制策略…………………………………………… 4.1并联型有源电力滤波器系统构成及其工作原理………………………… 4.2并联有源电力滤波器的控制研究.……………………………… 4.2.1并联有源电力滤波器直流侧电压控制…………………… 4.2.2有源电力滤波器电流跟踪控制技术…………………………… 4.2.2.1 PWM 控制原理………………………………………… 4.2.2.2滞环比较控制方式………………………………………… 4.2.2.3三角波比较方式………………………… 4.3有源电力滤波器的主电路设计 …………………………………………

Matlab中的FFT使用说明

FFT是Fast Fourier Transform(快速傅里叶变换)的简称,FFT算法在MATLAB 中实现的函数是Y=fft(x,n)。刚接触频谱分析用到FFT时,几乎都会对MATLAB 的fft函数产生一些疑惑,下面以看一个例子(根据MATLA帮助修改)。 Fs = 2000; % 设置采样频率 T = 1/Fs; % 得到采用时间 L = 1000; % 设置信号点数,长度1 秒 t = (0:L-1)*T; % 计算离散时间, % 两个正弦波叠加 f1 = 80; A1 = 0.5; % 第一个正弦波100Hz,幅度0.5 f2 = 150; A2 = 1.0 ; % 第2个正弦波150Hz,幅度 1.0 A3 = 0.5; % 白噪声幅度; x = A1*sin(2*pi*f1*t) + A2*sin(2*pi*f2*t); % 产生离散时间信号; y = x + A3*randn(size(t)); % 叠加噪声; % 时域波形图 subplot(2,1,1) plot(Fs*t(1:50),x(1:50)) title('Sinusoids Signal') xlabel('time (milliseconds)') subplot(2,1,2) plot(Fs*t(1:50),y(1:50)) title('Signal Corrupted with Zero-Mean Random Noise') xlabel('time (milliseconds)') NFFT = 2A nextpow2(L); % 设置FFT点数,一般为2 的N次方,如1024,512 等Y = fft(y,NFFT)/L; % 计算频域信号, f = Fs/2*linspace(0,1,NFFT/2+1); %频率离散化,fft后对应的频率是-Fs/2到Fs/2,由NFFT个离散频点表示 % 这里只画出正频率; % Plot single-sided amplitude spectrum. figure; plot(f,2*abs(Y(1:NFFT/2+1))); % fft 后含幅度和相位,一般观察幅度谱,并把负频率加上去, title('Single-Sided Amplitude Spectrum of y(t)') xlabel('Frequency (Hz)')

Simulink下的频谱分析方法及matlab的FFT编程

Simulink下的频谱分析方法 实现功能: 信号发生器一个信号输入,实时显示其频谱分析 调用模块: 信号源(Signal Processing Blockset -> Signal Processing Sources -> Sine Wave) Tip 1:不能用连续的信号源 频谱观察窗(Signal Processing Blockset -> Signal Processing Sources -> Spectrum Scope)Tip 2: 不能用普通的观察窗 Tip 3:必须构上设置中的Buffer input. Buffer size 越大越精细。 Tip 4: 剩下的tips读帮助。 连接关系: 如下图所示 原理框图实验结果:

输出示意图------------------------------ ------------------------------ 实现功能: 从Workspace读取一组数,进行频谱分析 调用模块: From Workspace Tip 1: 采样时间不能用0,即必须使用离散模式 Tip 2: 从其他模型中Scope保存出来的“Structure with time”的数据可以直接用频谱观察窗(同上一功能) ------------------------------ ------------------------------ 实现功能: 从dSPACE读取一组数,进行频谱分析 实现方法:

1. 从dSPACE读数保存成文件,数据导入Workspace(过程略) 2. 采用从其他模型的Scope保存数据为“Structure with time”的方式构建一个结构变量ScopeData1 3. 使用以下代码将dSPACE数据dscapture拷贝到结构变量ScopeData1中 %% =[0::]; %纯粹为占位,19157为dSPACE保存数据长度 for i=1:19157 end %% 4. 采用下图中的模型进行频谱分析 实验结果: 通过以上方法对单轴压电加速度传感器进行灵敏度分析,下图分别为采用dSPACE和直接利用示波器分析的结果对比。

基于MATLAB的电力谐波分析

目录 摘要 (2) Abstract (2) 1:绪论 (2) 1.1课题背景 (2) 1.2谐波的产生 (3) 1.3电网中谐波的危害 (5) 1.4研究谐波的重要性 (5) 2:谐波的限制标准和常用措施 (7) 2.1国外谐波的标准和规定 (8) 2.1.1谐波电压标准 (8) 2.1.2谐波电流的限制 (9) 2.2我国谐波的标准和规定 (9) 2.2.1谐波电压标准 (10) 2.2.2谐波电流的限制 (11) 2.3谐波的限制措施 (12) 3:谐波的检测与分析 (15) 3.1电力系统谐波检测的基本要求 (15) 3.2国内外电力谐波检测与分析方法研究现状 (15) 3.3谐波的分析 (18) 3.3.1电力系统电压(或电流)的傅立叶分析 (19) 3.3.2基于连续信号傅立叶级数的谐波分析 (19) 4:电力谐波基于FFT的访真 (21) 4.1快速傅立叶变换的简要和计算方法 (21) 4.1.1快速傅立叶变换的简要 (21) 4.1.2快速傅立叶变换的计算方法 (21) 4.2 FFT应用举例 (22) 5:结论 (28) 附录: (28) 参考文献: (30) 致谢: (30)

基于MATLAB的电力谐波分析 学生: 指导老师: 电气信息工程学院 摘要:电力系统的谐波问题早在20世纪20年代就引起人们的注意,到了50年代和60年代,由于高压直流输电技术的发展,发表了有关换流器引起电力系统谐波问题的大量论文。70年代以来,由于电力电子技术的飞速发展,各种电力电子装置在电力系统、工业、交通及家庭中的应用日益广泛,谐波所造成的危害也日趋严重。世界各国都对谐波问题予以充分的关注。 本文首先对目前国内外电力谐波检测与分析方法进行了综述与展望,并对电力谐波的基本概念、性质和特征参数进行了详细的分析,给出了谐波抑制的措施。并得出基于连续信号傅立叶级数的各次谐波系数的计算公式,推导了该计算公式与MATLAB函数FFT计算出的谐波系数的关系。实例证明:准确测量各次谐波参数,对电力系统谐波分析和抑制具有很大意义,可确保系统安全、可靠、经济地运行。同时实验结果表明,该法对设备要求不高,易于实现。 关键字:MA TLAB电力谐波分析 Harmonic Analysis of Electric Power System Based On Matlab Student: Teacher: Electrical and Information Engineering Abstract:The harmonic problem of electric power system has caused the attention of people in1920s and 1930s.Until 1950s,owing to the development of high voltage direct current transportation electricity technology,people published a large number of theses about the electricity power system harmonic problem,which caused by the current transform device.Since 1970s,because of the speedly development of eletricity power electronics technology,the various electric power electronics devices were applied extensively in the electric power system,industry,traffic and family,but the harm which the harmonic creates was serious more and more.Many country of the world all pay attention to the harmonic problem. Summary and Prospects of the first domestic and international power harmonics detection and analysis methods, and power harmonics of the basic concepts of the nature and characteristic parameters of a detailed analysis, given a harmonic suppression measures. Obtained based on the

电流平均值谐波检测方法MATLAB仿真

摘要 本论文首先对国内外谐波抑制技术发展现状、有源电力滤波器原理与结构及三相瞬时无功功率理论进行了综述。重点研究了基于瞬时无功功率 理论。检测法及改进的电流移动平均值谐波检测法。在对电流移动平均值原理进行分析的基础上,给出了电流平均值谐波检测方案及实现检测的原理框图。 接着以MATLAB6.1软件包中的SIMULINK仿真环境为平台,构建了平均值谐波检测法的仿真模型;对电流平均值谐波检测方案进行了仿真研 究,并与基于滤波器的。谐波检测法的仿真结果进行了分析对比。结果表明,所采用的仿真方法与所构建的仿真模型不仅有效,而且证实了平均值谐波检测法比滤波器法有良好的动态响应性能。 在仿真基础上,提出了基于LF2407ADSP芯片电流平均值谐波检测法的数字实现方案,进而开发了三相并联型数字有源电力滤波器实验系统。进行了软、硬件设计。搭建的硬件电路包括:过零同步检测、电流和电压检测、PWM输出等几部分。采用模块化设计思路,用DSP汇编语言编写了系统软件,其中包括:ADC及中断处理、捕获及捕获中断处理、三相到两相电流转换、平均值法谐波计算、两相到三相变换、PI调节、PWM输出 控制及主程序等模块,并在软件开发系统下进行了调试。为实现电流同步采样处理,根据LF2407A事件管理器捕获单元特点,提出一种用软件实现锁相环的控制方法。 最后对有源电力滤波器进行了系统调试。实验结果表明,采用电流平均值谐波检测法结合软件锁相环控制方法能有效、准确的检测谐波,用该检测法开发的DSP有源电力滤波器实验系统,能够有效消除由非线性负载产生的谐波。关键词有源电力滤波器,瞬时无功功率,谐波电流检测,电流移动平均值,数字信号处理器 关键词有源电力滤波器,瞬时无功功率,谐波电流检测,电流移动平均值,数字信号处理器

按时间抽取的基2FFT算法分析与MATLAB实现

按时间抽取的基2FFT 算法分析及MATLAB 实现 一、DIT-FFT 算法的基本原理 基2FFT 算法的基本思想是把原始的N 点序列依次分解成一系列短序列,充分利用旋转因子的周期性和对称性,分别求出这些短序列对应的DFT ,再进行适当的组合,得到原N 点序列的DFT ,最终达到减少运算次数,提高运算速度的目的。 按时间抽取的基2FFT 算法,先是将N 点输入序列x(n)在时域按奇偶次序分解成2个N/2点序列x1(n)和x2(n),再分别进行DFT 运算,求出与之对应的X1(k)和X2(k),然后利用图1所示的运算流程进行蝶形运算,得到原N 点序列的DFT 。只要N 是2的整数次幂,这种分解就可一直进行下去,直到其DFT 就是本身的1点时域序列。 图1 DIT-FFT 蝶形运算流图 二、DIT-FFT 算法的运算规律及编程思想 1.原位计算 对N=M 2点的FFT 共进行M 级运算,每级由N/2个蝶形运算组成。在同一级中,每个蝶的输入数据只对本蝶有用,且输出节点与输入节点在同一水平线上,这就意味着每算完一个蝶后,所得数据可立即存入原输入数据所占用的数组元素(存储单元),经过M 级运算后,原来存放输入序列数据的N 个存储单元中可依次存放X(k)的N 个值,这种原位(址)计算的方法可节省大量内存。 2.旋转因子的变化规律 N 点DIT ―FFT 运算流图中,每个蝶形都要乘以旋转因子p W N ,p 称为旋转因子的指数。例如N =8 =3 2 时各级的旋转因子: 第一级:L=1, 有1个旋转因子:p W N =J /4W N =J 2L W J=0 第二级:L=2,有2个旋转因子:p W N =J /2W N =J 2L W J=0,1 第三级:L=3,有4个旋转因子:p W N =J W N =J 2L W J=0,1,2,3 对于N =M 2的一般情况,第L 级共有1 -L 2个不同的旋转因子: p W N =J 2L W J=0,1,2,… ,1 -L 2-1 L 2=M 2×M -L 2 = N ·M -L 2 故: 按照上面两式可以确定第L 级运算的旋转因子

Matlab编程实现FFT变换.

Matlab编程实现FFT变换及频谱分析的程序代码 内容 1.用Matlab产生正弦波,矩形波,以及白噪声信号,并显示各自时域波形图 2.进行FFT变换,显示各自频谱图,其中采样率,频率、数据长度自选 3.做出上述三种信号的均方根图谱,功率图谱,以及对数均方根图谱 4.用IFFT傅立叶反变换恢复信号,并显示恢复的正弦信号时域波形图 源程序 %*************************************************************** **********% % 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; %求均方根谱

matlab信号仿真谐波

综合训练① 实验内容:利用matlab绘制频率自定的正弦信号(连续时间和离散时间),复指数信号(连续时间),并举例实际中哪些物理现象可以用正弦信号,复指数信号来表示。绘制成谐波关系的正弦信号(连续时间和离散时间),分析其周期性和频率之间的关系。实验步骤: 一、绘制谐波关系的正弦信号 分析:由于正弦信号可以表示成两个共轭的复指数信号相减,然后再除去两倍的单位虚数得到,故,我们将正弦信号设置为 X=exp(j*pi*n/4)-exp(-j*pi*n/4))/(2*j) 此信号就相当于 x=sin(pi*n/4) 设计程序如下: n=[0:32]; %设置n的取值 x=(exp(j*pi*n/4)-exp(-j*pi*n/4))/(2*j); %限定离散正弦信号 stem(n,x) %绘制该离散正弦信号 通过Matlab所得图形如下:

分析:同样的连续型的正弦信号同样也可以用类似方式绘制. x=sym('(exp(j*pi*t/T)+exp(-j*pi*t/T))/2');%函数表示正弦信号 x5=subs(x,5,'T'); %设置周期大小ezplot(x5,[0,10]) %绘制图形 所得结果如下:

二、绘制复指数信号 分析:由于复指数信号有实数部分和虚数部分,所以绘制其图形,我们采取了分别绘制的方法,将实数和虚数分别画出。 实验程序如下: t=[0:.01:10]; %产生时间轴的等差点 y=exp((1+j*10)*t); %设置复指数信号 subplot(211),plot(t,real(y)); %绘制实数信号图形 grid subplot(212),plot(t,imag(y)); %绘制虚数部分图形 grid 实验所得结果如下:

MATLAB中FFT结果的物理意义

FFT结果的物理意义 最近正在做一个音频处理方面的项目,以前没有学过fft,只是知道有这么个东西,最近这一用才发现原来欠缺这么多,最基本的,连fft的输入和输出各自代表什么都不知道了,终于在网上查到这样的一点资料,得好好保存了,也欢迎大家分享。 FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什意思、如何决定要使用多少点来做FFT。现在圈圈就根据实际经验来说说FFT结果的具体物理意义。一个模拟信号,经过ADC采样之后,就变成了数字信号。采样定理告诉我们,采样频率要大于信号频率的两倍,这些我就不在此罗嗦了。 采样得到的数字信号,就可以做FFT变换了。N个采样点,经过FFT之后,就可以得到N个点的FFT结果。为了方便进行FFT运算,通常N取2的整数次方。假设采样频率为Fs,信号频率F,采样点数为N。那么FFT之后结果就是一个为N点的复数。每一个点就对应着一个频率点。这个点的模值,就是该频率值下的幅度特性。具体跟原始信号的幅度有什么关系呢?假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。而第一个点就是直流分量,它的模值就是直流分量的N倍。而每个点的相位呢,就是在该频率下的信号的相位。第一个点表示直流分量(即0Hz),而最后一个点N的再下一个点(实际上这个点是不存在的,这里是假设的第N+1个点,也可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率Fs,这中间被N-1个点平均分成N等份,每个点的频率依次增加。例如某点n所表示的频率为:Fn=(n-1)*Fs/N(ps:横坐标第n个点对应的频率值Fn的计算公式。整个横坐标代表了采样频率Fs,被分为N点。故其频率分辨率为Fs/N)。由上面的公式可以看出,Fn所能分辨到频率为为Fs/N,如果采样频率Fs为1024Hz,采样点数为1024点,则可以分辨到1Hz。1024Hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒时间的信号并做FFT,则结果可以分析到1Hz,如果采样2秒时间的信号并做FFT,则结果可以分析到0.5Hz。如果要提高频率分辨力,则必须增加采样点数,也即采样时间。频率分辨率和采样时间是倒数关系。 假设FFT之后某点n用复数a+bi表示,那么这个复数的模就是An=根号a*a+b*b,相位就是Pn=atan2(b,a)。根据以上的结果,就可以计算出n点(n≠1,且n<=N/2)对应的信号的表达式为:An/(N/2)*cos(2*pi*Fn*t+Pn),即2*An/N*cos(2*pi*Fn*t+Pn)。对于n=1点的信号,是直流分量,幅度即为A1/N。由于FFT结果的对称性,通常我们只使用前半部分的结果,即小于采样频率一半的结果。 好了,说了半天,看着公式也晕,下面圈圈以一个实际的信号来做说明。假设我们有一个信号,它含有2V的直流分量,频率为50Hz、相位为-30度、幅度为3V的交流信号,以及一个频率为75Hz、相位为90度、幅度为1.5V的交流信号。用数学表达式就是如下:S=2+3*cos(2*pi*50*t-pi*30/180)+1.5*cos(2*pi*75*t+pi*90/180)式中cos参数为弧度,所以-30度和90度要分别换算成弧度。我们以256Hz的采样率对这个信号进行采样,总共采样256点。按照我们上面的分析,Fn=(n-1)*Fs/N,我们可以知道,每两个点之间的间距就是1Hz,第n个点的频率就是n-1。我们的信号有3个频率:0Hz、50Hz、75Hz,应该分别在第1个点、第51个点、第76个点上出现峰值,其它各点应该接近0。实际情况如何呢?我们来看看FFT的结果的模值如图所示。

基于matlab的信号合成与分解

为了便于进行周期信号的分析与处理,常要把复杂的周期信号进行分解,即将周期信号分解为正余弦等此类基本信号的线性组合,通过对这些基本信号单元在时域和频域特性的分析来达到了解信号特性的目的。本文主要阐述了傅立叶级数的推演过程,从而得出周期信号的分解与合成的基本原理。 1 绪论 研究信号是为了对信号进行处理和分析,信号处理是对信号进行某些加工或变换,目的是提取有用的部分,去掉多余的部分,滤除各种干扰和噪声,或 将信号进行转化,便于分析和识别。信号的特性可以从时间特性和频率特性两 方面进行描述,并且信号可以用函数解析式表示(有时域的,频域的及变化域 的),也可用波形或频谱表示。 系统分析的主要任务是分析系统对指定激励所产生的影响。其分析过程主要包括建立系统模型,根据模型建立系统的方程,求解出系统的响应,必要时 对解得的结果给出物理解释。系统分析是系统综合与系统诊断的基础。 任何满足狄里赫利条件的周期信号都是由各种不同频率、幅度和初相的正弦波叠加而成的。对周期信号由它的傅立叶级数展开式可知,各次谐波为基波 频率的整数倍。而非周期信号包括了从零到无穷大的所有频率成分,每一个频 率成分的幅度均趋向无穷小,但其相对大小式不同的。 信号的分解与合成 周期信号的信号分解与合成 设有周期信号,它的周期为T,角频率,则的三角傅里 叶级数表示的一般形式为 (2.2-1) 其中

可以写成更紧凑的和式为: 式(2.2-1)中的系数、称为傅里叶系数,为在函数中的分量(相对大小);为在函数中的分量,它可由式(2.1-7)求 得。为简便,式(2.1-7)的积分区间取为或。考虑到正、余弦函数的正交条件(2.1-3),由式(2.1-7),可得傅立叶系数 (2.2-2) 周期信号也可分解为一系列余弦信号,即: 其中 方波信号的分解与合成 现以周期为T、幅值为1的方波信号为例 方波信号的分解与合成【12】 由式(2)可得

信号与系统课程设计-用MATLAB模拟方波信号的分解与合成

信号与线性系统 课程设计 题目 学号姓名学号姓名学号姓名学号姓名 院系 年级 专业 日期

摘要 的方波信号进行傅里叶级数展开,并绘制离散幅度利用MATLAB对周期为T 谱和不同次谐波叠加后的图形。通过观察绘制的各个图像,加深对傅立叶变换和信号的分解与合成的理解。 Abstract Expanded the square wave signal with periodic T0 to Fourier series by MATLAB , and drew the discrete spectrum and plot the patterns after different sub harmonics are superimposed. Through the observation of each image, deepen the understanding of the Fourier transform and signal decomposition and synthesis. 关键词:矩形信号傅里叶级数谐波叠加分解与合成 Keywords: Squarewave signal.Fourier series. Harmonic superposition. Decomposition and synthesis 一、设计目的和要求 本设计主要利用MATLAB绘制信号的离散幅度谱和各次谐波叠加后的波形,通过观察谐波展开次数增加后的波形,进一步掌握信号分解与合成的原理。 培养运用所学知识分析解决问题的能力。 掌握用MATLAB实现通信系统仿真实验的能力。 这里要做一个信号的分解与合成的仿真系统,利用matlab软件的仿真模拟能力来体现信号的分解与合成过程中出现的情况。

MATLAB中FFT的使用方法

MATLAB中FFT的使用方法 一.调用方法 X=FFT(x); X=FFT(x,N); x=IFFT(X); x=IFFT(X,N) 用MATLAB进行谱分析时注意: (1)函数FFT返回值的数据结构具有对称性。 例: N=8; n=0:N-1; xn=[4 3 2 6 7 8 9 0]; Xk=fft(xn) →Xk = 39.0000 -10.7782 + 6.2929i 0 - 5.0000i 4.7782 - 7.7071i 5.0000 4.7782 + 7.7071i 0 + 5.0000i -10.7782 - 6.2929i Xk与xn的维数相同,共有8个元素。Xk的第一个数对应于直流分量,即频率值为0。 (2)做FFT分析时,幅值大小与FFT选择的点数有关,但不影响分析结果。在IFFT时已经做了处理。要得到真实的振幅值的大小,只要将得到的变换后结果乘以2除以N即可。 二.FFT应用举例 例1:x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t)。采样频率fs=100Hz,分别绘制N=128、1024点幅频图。 clf; fs=100;N=128; %采样频率和数据点数

n=0:N-1;t=n/fs; %时间序列 x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号 y=fft(x,N); %对信号进行快速Fourier变换 mag=abs(y); %求得Fourier变换后的振幅 f=n*fs/N; %频率序列 subplot(2,2,1),plot(f,mag); %绘出随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=128');grid on; subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅xlabel('频率/Hz'); ylabel('振幅');title('N=128');grid on; %对信号采样数据为1024点的处理 fs=100;N=1024;n=0:N-1;t=n/fs; x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号 y=fft(x,N); %对信号进行快速Fourier变换 mag=abs(y); %求取Fourier变换的振幅 f=n*fs/N; subplot(2,2,3),plot(f,mag); %绘出随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=1024');grid on; subplot(2,2,4) plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=1024');grid on; 运行结果:

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进行fft谐波分析

FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。 虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什意思、如何决定要使用多少点来做FFT。 现在就根据实际经验来说说FFT结果的具体物理意义。一个模拟信号,经过ADC采样之后,就变成了数字信号。采样定理告诉我们,采样频率要大于信号频率的两倍,这些我就不在此罗嗦了。 采样得到的数字信号,就可以做FFT变换了。N个采样点,经过FFT之后,就可以得到N个点的FFT结果。为了方便进行FFT运算,通常N取2的整数次方。 假设采样频率为Fs,信号频率F,采样点数为N。那么FFT之后结果就是一个为N点的复数。每一个点就对应着一个频率点。这个点的模值,就是该频率值下的幅度特性。具体跟原始信号的幅度有什么关系呢?假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。而第一个点就是直流分量,它的模值就是直流分量的N倍。而每个点的相位呢,就是在该频率下的信号的相位。第一个点表示直流分量(即0Hz),而最后一个点N的再下一个点(实际上这个点是不存在的,这里是假设的第N+1个点,也可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率Fs,这中间被N-1个点平均分成N等份,每个点的频率依次增加。例如某点n所表示的频率为:Fn=(n-1)*Fs/N。由上面的公式可以看出,Fn所能分辨到频率为为Fs/N,如果采样频率Fs 为1024Hz,采样点数为1024点,则可以分辨到1Hz。1024Hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒时间的信号并做FFT,则结果可以分析到1Hz,如果采样2秒时间的信号并做FFT,则结果可以分析到0.5Hz。如果要提高频率分辨力,则必须增加采样点数,也即采样时间。频率分辨率和采样时间是倒数关系。 假设FFT之后某点n用复数a+bi表示,那么这个复数的模就是An=根号a*a+b*b,相位就是Pn=atan2(b,a)。根据以上的结果,就可以计算出n点(n≠1,且n<=N/2)对应的信号的表达式为:An/(N/2)*cos(2*pi*Fn*t+Pn),即2*An/N*cos(2*pi*Fn*t+Pn)。对于n=1点的信号,是直流分量,幅度即为A1/N。 由于FFT结果的对称性,通常我们只使用前半部分的结果,即小于采样频率一半的结果。 好了,说了半天,看着公式也晕,下面以一个实际的信号来做说明。 假设我们有一个信号,它含有2V的直流分量,频率为50Hz、相位为-30度、幅度为3V 的交流信号,以及一个频率为75Hz、相位为90度、幅度为1.5V的交流信号。用数学表达式就是如下: S=2+3*cos(2*pi*50*t-pi*30/180)+1.5*cos(2*pi*75*t+pi*90/180) 式中cos参数为弧度,所以-30度和90度要分别换算成弧度。我们以256Hz的采样率对这个信号进行采样,总共采样256点。按照我们上面的分析,Fn=(n-1)*Fs/N,我们可以知道,每两个点之间的间距就是1Hz,第n个点的频率就是n-1。我们的信号有3个频率:0Hz、50Hz、75Hz,应该分别在第1个点、第51个点、第76个点上出现峰值,其它各点应该接近0。实际情况如何呢?我们来看看FFT的结果的模值如图所示。

利用MATLAB实现信号DFT的计算

07级电信(2)班 刘坤洋 24 实验一 利用MATLAB 实现信号DFT 的计算 一、实验目的: 1、熟悉利用MATLAB 计算信号DFT 的方法 2、掌握利用MATLAB 实现由DFT 计算线性卷积的方法 二、实验设备:电脑、matlab 软件 三、实验内容: 1、练习用matlab 中提供的内部函数用于计算DFT (1) fft (x ),fft (x ,N ),ifft (x ),ifft (x ,N )的含义及用法 (2) 在进行DFT 时选取合适的时域样本点数N 请举例,并编程实现 题目: 源程序: >> N=30; %数据的长度 >>L=512; %DFT 的点数 >>f1=100; f2=120; >>fs=600; %抽样频率 >>T=1/fs; %抽样间隔 >>ws=2*pi*fs; >>t=(0:N-1)*T; >>f=cos(4*pi*f1*t)+cos(4*pi*f2*t); >>F=fftshift(fft(f,L)); >>w=(-ws/2+(0:L-1)*ws/L)/(2*pi); >>hd=plot(w,abs(F)); >>ylabel('幅度谱') >> xlabel('频率/Hz') 的频谱 分析利用)π4cos()π4cos()(DFT 21t f t f t x +=Hz 600,Hz 120,Hz 10021===s f f f

>> title('my picture') 结果图: (3) 在对信号进行DFT 时选择hamming 窗增加频率分辨率 请举例,并编程实现 题目: 源程序:>> N=50; %数据的长度 >>L=512; %DFT 的点数 >>f1=100;f2=150; >>fs=600; %抽样频率 >>T=1/fs; %抽样间隔 >>ws=2*pi*fs; >>t=(0:N-1)*T; >>f=cos(4*pi*f1*t)+0.15*cos(4*pi*f2*t); 的频谱 分析利用)π4cos(15.0)π4cos()(DFT 21t f t f t x +=Hz 600,Hz 150,Hz 10021===s f f f

信号matlab仿真实验复习

一. 生成一个基频为20Hz ,幅度为±1的周期方波信号; (1)试确定该信号的周期? (2)画出该信号5个周期内的波形;画出该信号的幅度频谱图; (3)该信号谱线间隔和频带宽度是多少,对它进行时域采样,采样频率Fs 至少为多少? (4)设计一个IIR/FIR 低通滤波器,滤去该周期信号中80Hz 以后的频率成分,要求通带截止频率80Hz ,阻带截止频率90Hz ,通带纹波小于3dB ,阻带衰减大于50dB ,用matlab 命令画出滤波器的频率响应,以及滤波后的信号波形和频谱。 答:1.周期为0.05秒; 3.谱线间隔为20Hz, 带宽为40Hz ,采样频率至少为80Hz 。 Fs=1000; N=256; % 时域/频率采样点 t=0:1/Fs:(N-1)/Fs; x=square(2*pi*20*t); %产生幅度为[-1,1],频率为20Hz 的方波 subplot(2,1,1) %方波绘图 plot(t,x); title('5个周期的矩形波') axis([0,0.1,-1.5,1.5]) T=0.05; %求方波的频谱 t1=0:1/Fs:(T-1/Fs); xn=square(2*pi*20*t1); Xk=fft(xn,N); Xk=fftshift(abs(Xk)); Xkl=Xk/N; subplot(2,1,2) plot(Fs/N*[0:1:N-1],Xkl) title('方波信号的频谱') [n,Wn]=buttord(80/500,90/500,3,50); %确定butterworth 滤波器的阶次 butterworth 低通滤波 %器:通带截止频率80Hz ,阻带截止频率90Hz ,通带纹波小于3dB ,阻带衰减大于50dB , %以上参数可以变化 [b,a]=butter(n,Wn); %确定滤波器传递函数 y=filter(b,a,x); %滤波 figure %滤波器频率特性 freqs(b,a); title('低通滤波器频率特性') ; figure subplot(2,1,1) plot(t,y) ;title('矩形波通过低通滤波器后的波形') ;axis([0,0.1,-1.5,1.5]) subplot(2,1,2) N=512; %可适当增减 fy=fftshift(fft(y,N)); %矩形波通过低通滤波器后的频谱 f=(-N/2:(N/2-1))*2; f=f*Fs/N; plot(f,abs(fy)/N) ;title('矩形波通过低通滤波器后的频谱') 二.设有连续信号()cos(240)f t t π=??, (1)利用DFT 计算该连续时间信号的频谱,采样频率至少应取多少?80HZ (2)以采样频率Hz F s 1000=对信号)(t f 采样得)(t f a ,请画出两个周期内的离散 信号)(t f a 的波形;[要求横

关于使用Matlab里Powergui的FFTTool分析的问题及解决办法

首先设置 POWERLIB—》powergui,将该模块拖入模型中即可 在需要进行频谱分析的地方连接一示波器 示波器参数设定: Parameters—》Data history—》Save data to workspace; Format—》Structure with time. 运行一次后,双击powergui—》FFT Analysis. 1. 问题1及解决办法 仿真完成后,采用Powergui分析FFT,有时会发生错误:"simulation time of the signals is not enough long for the given fundamental frequency". 很多论坛说是仿真时间短了,可能这也是原因,不过更有可能是这样: FFT的数据来自于示波器SCOPE,在SCOPE PARAMETERS/GENERAL选项卡/SAMPLING 中,有DECIMATION和SAMPLE TIME两项,DECIMATION的意思是 The Decimation parameter allows you to write data at every nth sample, where n is the decimation factor. The default decimation, 1, writes data at every time step. 所以,如果选择DECIMATION,记录数据的时刻为第N个采样点,采样点间的时间间隔为采样步长,而在MATLAB Simulink中,如果采用变步长仿真,采样周期就是变化的,这样就很难对采样的数据进行FFT分析,或许软件只认可采样周期一定的数据,所以会出现文首的错误。 如果选择sample time,那么采样周期固定(与仿真步长无关),这样就可以进行FFT 分析了。所以如果遇到文首的错误,可以尝试将示波器的SAMPLing改为sample time,并设定采样周期,Sampling time

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