基于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的电力谐波分析

基于MATLAB的电力谐波分析电力谐波是电力系统中常见的问题,可以导致电力设备故障、能耗增加以及电压波形失真等不良效果。

因此,对电力谐波进行分析和处理具有重要意义。

MATLAB是一种功能强大的工具,可以用于电力谐波分析。

一、电力谐波的概念和原理电力谐波是指在电力系统中,超过基波频率的功率频率成分。

它们是由非线性负载引起的,如电弧炉、变频器等。

谐波会导致电压和电流波形变形,使得电压谐波、电流谐波和功率谐波产生,严重时会导致设备损坏。

电力谐波分析的主要原理是通过傅里叶级数展开,将非线性负载引起的电压和电流信号分解为基波和谐波成分。

然后,可以计算谐波分量的谐波电流、谐波电压、相角等信息。

根据这些信息,可以评估电力系统中谐波的程度,并采取适当的措施进行补偿和抑制。

二、MATLAB工具箱的使用MATLAB有多个工具箱可以用于电力谐波分析,包括基本的波形分析工具箱、信号处理工具箱和工具箱的傅里叶分析工具。

1.使用波形分析工具箱进行谐波分析在波形分析工具箱中,有多种函数可以用于谐波分析,如fft、ifft、spectrogram等。

通过调用这些函数,可以对电压和电流信号进行傅里叶变换,得到频率和幅值谱。

然后,可以从频谱中提取出谐波分量的频率、幅值等信息。

2.使用信号处理工具箱进行谐波分析信号处理工具箱提供了更多用于谐波分析的函数,如stft、wavelet 等。

通过调用这些函数,可以对电压和电流信号进行时频分析,得到谐波分量的时频特性。

此外,还可以通过滤波等方法对谐波信号进行补偿和抑制。

3.使用傅里叶分析工具进行谐波分析MATLAB的傅里叶分析工具提供了多种方法进行谐波分析,如离散傅里叶变换(DFT)、快速傅里叶变换(FFT)等。

通过调用这些函数,可以对电压和电流信号进行频域分析,得到谐波分量的频谱特性。

然后,可以计算谐波电流、谐波电压、相角等信息。

三、电力谐波分析的步骤进行电力谐波分析时,可以按照以下步骤进行:1.数据采集:使用合适的传感器采集电压和电流信号数据。

基于Matlab中FFT函数的电力谐波分析方法

基于Matlab中FFT函数的电力谐波分析方法
"@? @I)!# $ "
? 时代表直流含量, $ H) 时 代 表 基 波 含 量 , 依 次 类 图 P 为上 推) 。图 # 为某晶闸管整流装置电流波形, 述两种方法计算出的图 # 中各次谐波含量,其谐波 畸变率为 +’J#T 。图 N 为贵阳铝厂三组装车间低压 总电流波形 > 图 + 为采用采用上述两种方法计算出 的图 N 中各次谐波含量, 其谐波畸变率为 #?’?"T 。 " 结 论
(")*+,-. ","$/0-0 +1 2$2.#)-."$ 3+42) 0/0#2* %"025 +, !"#$"%
C1 D2E1, FG-7 H12%I5, :12 JG-7K.G57 (L.G%%& %I ,&-./01.2& ,7K17--017K M71N-041/E %I L.1-7.- 27O ?-.G%&%KE , P5G27 #!**+#, FG172) 6%0#)".#: ?G- .500-7/;%0 N%&/2K-< %I -&-./01.2& Q%R-0 4E4/-6 14 272&ES-O 27O 2.G1-N- /G26Q&1/5O- .2&.5&2/17K I%065&24 %I /G- I57O26-7/2& 27O G206%71.4T RG1.G 14 2QQ&1-O /% .%6Q20- R1/G /G- .2&.5&2/17K 0-45&/4 %I %7- %I 32/&2=U4 I57./1%74B>>?T /G- 0-&2/1%7 %I /G- /R% 14 2.G1-N-O’ ?G- N2&1O1/E %I /G- 272&E414 14 Q0%N-O =E Q02./1.2& 2QQ&1.2/1%74’ 72/ 4+)50: G206%71. 272&E414; >>?; 32/&2=

基于MATLAB的谐波分析FFT概要

基于MATLAB的谐波分析FFT概要

基于MATLAB的谐波分析FFT概要谐波分析是一种用于分析信号频谱的方法,主要用于确定信号中存在的谐波成分。

在MATLAB中,谐波分析可以通过使用快速傅里叶变换(FFT)来实现。

本文将详细介绍基于MATLAB的谐波分析FFT的概要。

首先,快速傅里叶变换(FFT)是一种用于将时域信号转换为频域信号的数学技术。

它能够将信号分解为一系列频率成分,并显示每个成分的幅度和相位。

因为FFT算法在计算上非常高效,所以它成为了谐波分析的主要工具。

在MATLAB中进行谐波分析FFT时,首先需要准备要分析的信号。

信号可以是实际测量到的数据,也可以是经过仿真或计算得到的数据。

通常,信号是一个包含多个周期的数据序列。

然后,为了进行谐波分析,需要对信号进行预处理。

这包括对信号进行采样和量化。

采样是将连续信号转换为离散数据点的过程,而量化是将连续数据转换为离散数值的过程。

在MATLAB中,可以使用内置的函数来执行这些操作。

接下来,将使用MATLAB的FFT函数对预处理后的信号进行频谱分析。

FFT函数将信号转换为复数数组表示形式,并将其分解为频率成分。

它返回一个包含信号频率谱的长度为N的向量,其中N是输入信号的长度。

在得到频谱后,可以使用MATLAB的plot函数来可视化频谱。

可以将频谱以线性刻度或对数刻度绘制,以便更好地显示信号的谐波成分。

通过分析频谱中的峰值,可以确定信号中存在的谐波频率和对应的幅度。

谐波分析不仅可以用于确定信号中存在的谐波成分,还可以用于分析信号的频率特性和频带宽度。

通过对谐波分析结果进行进一步处理和计算,可以得到信号的功率谱密度、频谱峰值等相关信息。

在进行谐波分析FFT时,还需要注意一些常见的问题和注意事项。

例如,由于FFT是一种离散傅里叶变换方法,它要求输入信号的长度必须是2的幂。

如果信号长度不符合这个要求,可以使用MATLAB的补零技术进行填充。

此外,为了改善谐波分析的准确性,还可以对信号进行窗函数处理。

基于MATLAB的FFT算法实现

基于MATLAB的FFT算法实现

基于MATLAB的FFT算法实现摘要:本文研究了基于MATLAB的快速傅里叶变换(FFT)算法的实现。

傅里叶变换是一种重要的信号处理工具,广泛应用于图像处理、语音处理、通信系统等领域。

FFT是一种快速计算傅里叶变换的算法,可以大大提高傅里叶变换的计算效率。

本文详细介绍了FFT算法的原理和实现步骤,并通过MATLAB编程实现了FFT算法,并对不同信号和数据集进行了测试和分析。

实验结果表明,基于MATLAB的FFT算法可以有效地计算傅里叶变换,并且具有较高的精确性和稳定性。

关键词:MATLAB、FFT、傅里叶变换、计算效率、精确性、稳定性一、引言傅里叶变换是一种将时域信号转换到频域的重要工具,可以解析复杂的周期信号和非周期信号。

傅里叶变换在图像处理、语音处理、通信系统等领域有广泛的应用。

由于传统的傅里叶变换算法计算复杂度较高,耗时较长,因此需要一种快速计算傅里叶变换的算法。

快速傅里叶变换(FFT)算法是一种通过分治和递归的方法,将傅里叶变换计算的时间复杂度从O(N^2)降低到O(NlogN),大大提高了傅里叶变换的计算效率。

二、FFT算法原理FFT算法是一种递归的分治算法,它将长度为N的输入序列分为两个长度为N/2的子序列,然后通过对子序列进行FFT变换,再利用蝶形运算(butterfly operation)将结果合并,最终得到整个输入序列的傅里叶变换结果。

FFT算法的关键步骤包括序列分组、计算旋转因子、递归计算和合并。

通过这些步骤,可以将傅里叶变换的计算复杂度从O(N^2)降低到O(NlogN)。

三、基于MATLAB的FFT算法实现步骤1.读入输入序列,并将序列长度补齐为2的指数幂,方便进行分组计算。

2.进行FFT算法的递归计算。

首先将输入序列分为两个长度为N/2的子序列,然后对子序列进行递归计算,最终得到子序列的傅里叶变换结果。

3.计算旋转因子。

根据旋转因子的定义,计算出旋转因子的实部和虚部。

基于MATLAB的谐波分析FFT概要

基于MATLAB的谐波分析FFT概要

基于MATLAB的谐波分析FFT概要谐波分析是一种用于研究信号频谱及频率成分的技术。

它可以通过将信号分解为不同频率的谐波分量,来揭示信号的频率结构和频率成分之间的关系。

谐波分析可以在多个领域中得到广泛应用,包括音频处理、振动分析、机械故障诊断等。

快速傅里叶变换(Fast Fourier Transform,FFT)是一种常用的谐波分析方法,它通过对信号进行频域离散傅里叶变换(Discrete Fourier Transform,DFT)来实现。

FFT算法是一种高效的计算DFT的方法,其时间复杂度为O(N log N),相较于直接计算DFT的O(N^2)时间复杂度更加高效。

因此,FFT方法广泛应用于信号处理领域中。

谐波分析的基本思想是,将时域信号转换为频域信号,并通过对频域信号的分析,得出信号的频率分量和振幅。

谐波分析的关键步骤包括:数据预处理、信号转换、频谱分析和结果可视化。

在MATLAB中,进行谐波分析主要涉及以下几个函数:1. fft(x):该函数用于计算信号x的FFT,返回信号的频域表示。

2. abs(X):该函数用于计算X的幅度谱,即频域信号的振幅值。

3. angle(X):该函数用于计算X的相位谱,即频域信号的相位角度。

4. fftshift(X):该函数用于将频域信号X的零频分量移动到频谱的中心。

在进行谐波分析时,可以按照以下步骤进行:1.载入信号数据并进行预处理。

预处理可以包括去除直流分量、去除噪声等。

2. 使用fft(函数计算信号的FFT,得到频域信号X。

3. 使用abs(函数计算频谱的幅度谱,得到信号的频率分量和振幅。

4. 使用angle(函数计算频谱的相位谱,得到信号的相位信息。

5. 使用fftshift(函数将频域信号X的零频分量移动到频谱的中心,以便于结果的可视化。

6. 可视化频谱分析结果。

可以使用plot(函数绘制频率-振幅图,也可以使用stem(函数绘制频谱,以直观地展示信号的频域特征。

matlab谐波提取

matlab谐波提取

matlab谐波提取Matlab是一种功能强大的数学软件,广泛应用于科学计算和工程领域。

在信号处理中,谐波提取是一项重要的分析任务。

本文将介绍如何使用Matlab进行谐波提取,并给出一些实际应用示例。

什么是谐波?在信号处理中,谐波是指频率为原始信号频率的整数倍的分量。

例如,原始信号频率为100Hz,那么它的谐波分量可以是100Hz、200Hz、300Hz等。

谐波分量通常具有不同的振幅和相位,它们与原始信号之间存在一种特殊的关系。

在Matlab中,我们可以使用fft函数来进行频域分析。

该函数将时域信号转换为频域信号,使我们能够观察到信号的频谱特征。

对于谐波提取,我们可以通过观察频谱图来确定谐波分量的存在。

下面是一个简单的示例。

假设我们有一个包含谐波分量的信号,频率分别为100Hz、200Hz和300Hz,振幅分别为1、0.5和0.3。

我们可以通过以下代码来生成这个信号:```matlabfs = 1000; % 采样率t = 0:1/fs:1-1/fs; % 时间向量f1 = 100; % 第一个谐波频率f2 = 200; % 第二个谐波频率f3 = 300; % 第三个谐波频率A1 = 1; % 第一个谐波振幅A2 = 0.5; % 第二个谐波振幅A3 = 0.3; % 第三个谐波振幅x = A1*sin(2*pi*f1*t) + A2*sin(2*pi*f2*t) + A3*sin(2*pi*f3*t); % 生成信号```生成信号后,我们可以使用fft函数将其转换为频域信号,然后观察频谱图。

以下是相应的代码:```matlabN = length(x); % 信号长度X = fft(x); % 进行频域变换X_mag = abs(X)/N; % 计算频谱幅值f = (0:N-1)*(fs/N); % 构造频率向量plot(f,X_mag); % 绘制频谱图xlabel('频率(Hz)');ylabel('幅值');```运行上述代码后,我们将得到一个频谱图,横轴表示频率,纵轴表示幅值。

用MATLAB进行FFT谐波分析

用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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录(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 都可以表示为三角函数所构成的级数之和,即:∑∞=++=10)sin cos (21)(n n n t n b t n a a t f ωω (1)其中:t 为时间,ω为角频率。

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

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

图1所示的方波可以写成函数形式:h (0≤t <2T )()f t =-h (-2T ≤t <0)在这里,h 为常数2。

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

()f t =∑∞=--1])12sin[()121(4n t n n hωπ(2) 我们把它展开,可以得到:)7sin 715sin 513sin 31(sin 4)( ++++=t t t t ht f ωωωωπ (3)1.2傅里叶变换的证明下面,我们要从数学角度来证明为什么公式(3)能成立。

由于这是一个奇函数,常数项0a 可以用积分函数计算出来:2202a =()0TTf x dt T -=⎰所以其常数项不存在,即0a =0,下面开始计算n a 与n b :222=()cos()TT n a f x n t dt T ω-⎰020222()cos()cos()TT h n t dt h n t dt T T ωω-=-+⎰⎰[][]020222sin()sin()T T h h n t n t T n T n ωωωω-=-+0=222=()sin()TT n b f x n t dt T ω-⎰[][]020222cos()cos()TT h h n t n t T n T n ωωωω-=-+ 2[1(1)]n hn π=-- 由上式可知,当n =2,4,6,时,0n b =;当n =1,3,5,时,4n hb n π=。

然后我们将n a 与n b 都带入公式(1),就可以得到公式(3):)7sin 715sin 513sin 31(sin 4)( ++++=t t t t ht 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 ,2T)或(0,T )。

考虑到正、余弦函数的正交条件,可得傅里叶系数a n =⎰-222TTT f (t)cos(n Ωt)dt, n=0,1,2,…… (2-2) b n =⎰-222TTT 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)(21210是n 的函数,其中a n 是n 的偶函数,即a n -= a n ;而b n 是n 的奇函数,既有b n -=- b n将式(2-1)中同频率项合并,可写成如下形式 f(t)=++Ω++Ω+)2cos()cos(222110ϕϕt A t A A …… =)cos(210n n n t n A A ϕ+Ω+∑∞= (2-4) 式中 00a A =A n =22b a +,n=1,2,……n ϕ=-arctan(nna b ) 如将式(2-4)的形式化为(2-1)的形式,他们系数之间的关系为 a 00A =a n n n A ϕcos =,n=1,2,……b n n n A ϕsin -=,式(2-4)表明,任何满足狄里赫利条件的周期函数可分解为直流和许多余弦(或正弦)分量。

其中第一项2A 是常数项,它是周期信号中所包涵的直流分量;式中第二项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 dtt n t f Ta=dt t n TT )cos()1(202Ω-⎰-+dtt n TT )cos()1(220Ω⎰()[]()[]02sin 1220sin 12T t n n T T t n n T ΩΩ•+-Ω-Ω•考虑到T π2=Ω,可得=n a()()()⎰⎰Ω+Ω-=-2002sin 2sin 12TT n dtt n T dt t n T b()()[]02cos 1220cos 12T t n n T T t n n T Ω-Ω•+-ΩΩ•=()[]⋯⋯=⋯⋯==-=,5,3,1n ,6,4,240cos 12n 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)3521y 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, 重编程。

相关文档
最新文档