【Matlab】傅里叶级数展开

这篇具有很好参考价值的文章主要介绍了【Matlab】傅里叶级数展开。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

一个信号系统课程中使用Matlab对傅里叶级数进行展开、绘制波形并分析的实验。

一、内容

周期函数f(t)的周期2pi,f(x)在[-pi, pi]上的表达式为:
傅里叶展开matlab,学习笔记,Matlab,matlab
傅里叶展开matlab,学习笔记,Matlab,matlab
由傅里叶级数展开式可得:
直流分量系数:
傅里叶展开matlab,学习笔记,Matlab,matlab
基波及各次谐波分量的系数:
傅里叶展开matlab,学习笔记,Matlab,matlab
傅里叶展开matlab,学习笔记,Matlab,matlab
傅里叶展开F(x)为:
傅里叶展开matlab,学习笔记,Matlab,matlab

二、原理

  1. 设周期信号f(t),其周期为T,角频率为 ,则该信号可展开为下面三角形式的傅里叶级数:
    傅里叶展开matlab,学习笔记,Matlab,matlab
    其中,
    傅里叶展开matlab,学习笔记,Matlab,matlab
    傅里叶展开matlab,学习笔记,Matlab,matlab
    傅里叶展开matlab,学习笔记,Matlab,matlab
    将a0,an,bn代入f(t)即可求得函数的傅里叶级数展开式。
  2. 用MATLAB绘制周期方波信号,并绘制其傅里叶级数展开式中基波及3次谐波、5次谐波、七次谐波并进行叠加,与原方波进行对比。

三、程序源码

% f(x)=pi + x, -pi<=x<=0
% f(x)=pi - x, 0<=x<=pi
% a_0=pi
% a_n=4 / (n^2 * pi), n=1.3.5...
% a_n=0, n=2,4,6...
% b_n=0, n=1,2,3,4...
% F(x)=pi/2 + 4/pi * (cos(x) + 1/3^2 * cos(3x) + ...)
T=2 * pi; omega=2 * pi / T; t=-2*T:0.01:2*T; a_0=pi;
y1=a_0/2 + 4 / pi * cos(omega*t);
y2=y1 + 4/pi * 1/3^2 * cos(3 * omega*t);
y3=y2 + 4/pi * 1/5^2 * cos(5 * omega*t);
y4=y3 + 4/pi * 1/7^2 * cos(7 * omega*t);
y5=a_0/2;
for i=1:2:20
    y5=y5 + 4/pi * 1/i^2 * cos(i * omega*t);
end
subplot(511),plot(t,y1);
title('基波 \pi/2+4/\picos(t)','Fontsize',12);
xlabel('x','Fontsize',12);ylabel('y_1','Fontsize',12);grid on;
subplot(512),plot(t,y2);
title('三次谐波 \pi/2+4/\pi[cos(t)+1/3^2cos(3t)]','Fontsize',12);
xlabel('x','Fontsize',12);ylabel('y_2','Fontsize',12);grid on;
subplot(513),plot(t,y3);
title('五次谐波 \pi/2+4/\pi[cos(t)+1/3^2cos(3t)+1/5^2cos(5t)]','Fontsize',12);
xlabel('x','Fontsize',12);ylabel('y_3','Fontsize',12);grid on;
subplot(514),plot(t,y4);
title('七次谐波 \pi/2+4/\pi[cos(t)+1/3^2cos(3t)+1/5^2cos(5t)+1/7^2cos(7t)]','Fontsize',12);
xlabel('x','Fontsize',12);ylabel('y_4','Fontsize',12);grid on;
subplot(515),plot(t,y5);
title('高次谐波 \pi/2+4/\pi[cos(t)+1/3^2cos(3t)+1/5^2cos(5t)+1/7^2cos(7t)+...]','Fontsize',12);
xlabel('x','Fontsize',12);ylabel('y_5','Fontsize',12);grid on;

四、结果分析

傅里叶展开matlab,学习笔记,Matlab,matlab
傅里叶级数展开如图7所示,y1是基波,y2是三次谐波,y3是五次谐波,y4是七次谐波,y5可以看作是无穷项谐波的叠加。由图可以看出谐波叠加越多,图像越接近f(x)。
傅里叶展开matlab,学习笔记,Matlab,matlab

结语

一个函数可由无穷项谐波而成,越高次的谐波分量影响越小,基波会基本定形,这就是傅里叶级数展开的原理。文章来源地址https://www.toymoban.com/news/detail-734116.html

到了这里,关于【Matlab】傅里叶级数展开的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 常数项级数、函数项级数、幂级数与傅里叶级数

    提示:本文的适用对象为已修过《微积分A1》的非数学系学生,文中题型方法为个人总结,为个人复习使用。部分理解虽然不太严谨,但对于解题的实用性较强。若有疏漏or错误,欢迎批评指正。 (1)判断无穷级数收敛性的方法 1.( 通过无穷级数的前n项和来判断 )若一个无

    2024年02月05日
    浏览(44)
  • 傅里叶级数和傅里叶变换之间的关系推理及应用

    傅里叶级数和傅立叶变换是傅里叶分析的两个主要工具,它们之间有密切的关系。 傅里叶级数是将一个周期函数分解为一系列正弦和余弦函数的和。它适用于周期性信号,可以将周期函数表示为一组振幅和相位不同的谐波分量的和。傅里叶级数展示了一个周期函数在不同频率

    2024年02月07日
    浏览(58)
  • 傅里叶级数和泰勒级数逼近已知函数的动态过程

    本文代码: Fourier级数和Taylor级数对原函数的逼近动画 级数是对已知函数的一种逼近,比较容易理解的是Taylor级数,通过多项式来逼近有限区间内的函数,其一般形式为 f ( x ) = ∑ n = 0 N a n x n f(x)=sum_{n=0}^N a_nx^n f ( x ) = n = 0 ∑ N ​ a n ​ x n 其中最著名的应该是自然指数,根据

    2024年02月12日
    浏览(36)
  • 傅里叶变换与Matlab

      很多初学者学习了傅里叶变换之后,只是对其公式死记硬背,从而达到做题的目的,但并不理解其原理,对于很多时频分析问题的理解不够透彻。之前自己也是如此,在经过深入学习之后,对变换公式的的本质进行探讨,理解变换的原理及意义所在,同时将傅里叶变换和

    2024年01月20日
    浏览(52)
  • 傅里叶级数系数的完整详细算法

    傅里叶级数系数的完整详细算法 一、三角函数相关公式和定积分 在分析傅里叶级数之前,一定要先熟悉三角函数的相关公式,以及三角函数的积分。 1、两角和公式: sin( α + β ) = sin( α ) * cos( β ) + cos( α ) * sin( β ) sin( α - β ) = sin( α ) * cos( β ) - cos( α ) * sin( β ) cos( α + β

    2024年02月04日
    浏览(37)
  • matlab快速傅里叶变换

    快速傅里叶变换(FFT)是数字信号处理中常用的算法之一,可以用于信号分析、滤波、频率估计和信号生成等。在 Matlab 中,快速傅里叶变换是一个重要的工具,可以快速地计算信号的频域表示,帮助研究人员更好地理解和分析信号。本文将介绍 Matlab 中的快速傅里叶变换及其

    2024年02月09日
    浏览(46)
  • Matlab:二维傅里叶变换

    fft2 函数将二维数据变换为频率空间。例如,您可以变换二维光学掩膜以揭示其衍射模式。 以下公式定义 m×n 矩阵 X 的离散傅里叶变换 Y。 i 是虚数单位,p 和 j 是值范围从 0 到 m–1 的索引,q 和 k 是值范围从 0 到 n–1 的索引。在此公式中,X 和 Y 的索引平移 1 位,以反映 M

    2023年04月17日
    浏览(44)
  • 快速傅里叶变换MATLAB代码实现

    任何连续测量的时序或信号,都可以表示为不同频率的余弦(或正弦)波信号的无限叠加。FFT(Fast Fourier Transform)是离散傅立叶变换的快速算法,可以将一个信号变换到频域。 对于包含 n n n 个均匀采样点的向量 x x x ,其傅里叶变换定义为 y k + 1 = ∑ j = 0 n − 1 ω j k x j + 1

    2023年04月09日
    浏览(73)
  • MATLAB——FFT(快速傅里叶变换)

    基础知识 FFT即快速傅里叶变换,利用周期性和可约性,减少了DFT的运算量。常见的有按时间抽取的基2算法(DIT-FFT)按频率抽取的基2算法(DIF-FFT)。 1.利用自带函数fft进行快速傅里叶变换 若已知序列 x = [ 4 , 3 , 2 , 6 , 7 , 8 , 9 , 0 ] x=[4,3,2,6,7,8,9,0] x = [ 4 , 3 , 2 , 6 , 7 , 8 , 9 , 0 ]

    2024年02月03日
    浏览(75)
  • MATLAB——DFT(离散傅里叶变换)

    题目1: 已知有限长序列x(n)为: x(n)=[0,1,2,3,4,5,6,7,8,9],求x(n)的DFT和IDFT。要求 1)画出序列傅里叶变换对应的|X(k)|和arg[X(k)]图形。 2)画出原信号与傅里叶逆变换IDFT[X(k)]图形进行比较。 知识点: DFT(Discrete Fourier Transform)和IDFT(Inverse Discrete Fourier Transform)是互为逆运算的变换

    2023年04月23日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包