有关离散傅里叶级数(DFS)我之前也写过一些博文,例如:离散周期信号的傅里叶级数(DFS)

这里我再次给出标准公式。

分析式:

其中:

综合式:

这里我必须先声明,关于分析式和综合式前面那个系数1/N,到底在分析式的前面还是综合式的前面,不同的书籍定义还不一样,这个我们无所谓了。这里先以这里为准!

先看看分析式,使用MATLAB进行编程时,我们可以使用循环嵌套的方式编程,但是这样做不高效并且很麻烦,这不是我们提倡的做法,我们提倡使用向量化编程,我顺手推到了一下向量化编程的形式:

这里声明,n,k都是行向量,x以及X都是列向量的前提下推导的。

给出手稿版,写的不太详细,但是我想看我这篇博文的人肯定都是本专业的人,所以应该是能看懂的,只需点播而已:

根据这个最后的形式,我们给出dfs的函数程序,为了编程方便,我们同时约定X以及x也为行向量吧。

function [Xk] = dfs(xn,N)
% Computes Discrete Fourier Series Coefficients
%______________________________________________
% [Xk] = dfs(xn,N)
% Xk = DFS coefficients array over 0 <= k <= N - 1
% xn = One period of periodic signal over 0 <= n <= N - 1
% N = Fundamental period of xnn = [0:1:N-1]; % row vector for n
k = [0:1:N-1]; % row vector for k
WN = exp(-j*2*pi/N);
nk = n'*k;
WNnk = WN .^ nk;   %DFS matrix
Xk = xn * WNnk;


下面研究IDFS,同样给出手稿版推导向量化编程方案:

上面少了一个负号,在所有的n*k的值前面加一个负号即可。

直接给出MATLAB函数:

function [xn] = idfs(Xk,N)
% Computes Discrete Fourier Series Coefficients
%______________________________________________
% [xn] = idfs(Xk,N)
% Xk = DFS coefficients array over 0 <= k <= N - 1
% xn = One period of periodic signal over 0 <= n <= N - 1
% N = Fundamental period of xnn = [0:1:N-1]; % row vector for n
k = [0:1:N-1]; % row vector for k
WN = exp(-j*2*pi/N);
nk = k' * n;
WNnk = WN .^(- nk);   %IDFS matrix
xn = (Xk*WNnk)/N;

上面的推导可谓是一目了然,那么下面给出一个小例子,来体会下这两个函数的应用。

clc;clear;close all;xn = [0,1,2,3];
N = 4;
Xk = dfs(xn,N)xn = idfs(Xk,N)

Xk =

6.0000 + 0.0000i  -2.0000 + 2.0000i  -2.0000 - 0.0000i  -2.0000 - 2.0000i

xn =

0.0000 - 0.0000i   1.0000 - 0.0000i   2.0000 - 0.0000i   3.0000 + 0.0000i

【 MATLAB 】离散傅里叶级数(DFS)及 IDFS 的 MATLAB 实现相关推荐

  1. 离散傅里叶级数DFS

    傅氏变换的几种可能形式 一. 连续时间.连续频率----傅里叶变换Fourier Transform 对称性: 时域连续,则频域非周期. 反之亦然. 二. 连续时间.离散频率----傅里叶级数Four ...

  2. matlab 离散控制系统仿真,实验二-基于Matlab的离散控制系统仿真.doc

    实验 基于Matlab的离散控制系统仿真一.实验目的 学习使用Matlab命令对控制系统进行仿真的方法. 学习使用Simulink工具箱对控制系统进行仿真的方法. 二.实验原理 1. 控制系统命令行仿 ...

  3. 【 MATLAB 】离散傅里叶级数(DFS)与DFT、DTFT及 z变换之间的关系

    上篇博文我们简单的讨论了离散傅里叶级数DFS和离散傅里叶变换DFT之间的关系,简单地说,DFT就是DFS在一个周期内的表现. [ MATLAB ]离散傅里叶变换(DFT)以及逆变换(IDFT)的MAT ...

  4. matlab表示DFT和DTFT,【 MATLAB 】离散傅里叶级数(DFS)与DFT、DTFT及 z变换之间的关系...

    上篇博文我们简单的讨论了离散傅里叶级数DFS和离散傅里叶变换DFT之间的关系,简单地说,DFT就是DFS在一个周期内的表现. 为了后面讨论方便,这里给出DFS的系数公式(分析公式):         ...

  5. matlab中idfs,【 MATLAB 】离散傅里叶变换(DFT)以及逆变换(IDFT)的MATLAB实现

    刚刚写过一篇用MATLAB实现离散傅里叶级数的博文,如下: 离散傅里叶变换不是一种神奇的东西,它和离散傅里叶级数关系很紧密,紧密到使用MATLAB编写离散傅里叶变换以及逆变换的函数一模一样,只需改个名 ...

  6. 离散傅里叶变换DFT与FFT,MATLAB的FFT函数使用(原创)——如何使用fft()绘制出真正的频谱图像

    以前一直对MATLAB中fft()函数的使用一直存在疑惑,为什么要加一 些参数,并且如何确定这些参数,也查了许多资料,但很多都感觉只是 表面一说根本没有讲清其本质.但随着学习的推进,慢慢有所领悟,所 ...

  7. 五种傅里叶变换的分析(FT、FS、DTFT、DFT、DFS)(基于MATLAB)

    五种傅里叶变换 FT: 傅里叶变换 Fourier Transform FS: 傅里叶级数 Fourier Series DTFT:离散时间傅里叶变换 Discrete-time Fourier Tr ...

  8. MATLAB离散傅里叶变换实验结果分析,Matlab离散傅里叶变换实验报告

    Matlab离散傅里叶变换实验报告 班级 信工082 学号 16 姓名 刘刚 实验组别 实验日期 室温 报告日期 成绩 报告内容:(目的和要求,原理,步骤,数据,计算,小结等) 实验三 离散傅立叶变换 ...

  9. 离散信号(四)| 周期信号 |离散傅里叶级数(DFS)推导 + 主要性质(周期卷积定理、帕斯瓦尔定理)

    离散傅里叶变换(DFT)要解决两个问题:一是信号离散化后它的频谱情况:二是快速运算算法.第一个问题将涉及周期离散信号的傅里叶级数(DFS),以及由DFS得到非周期信号的离散时间傅里叶变换(DTFT)和 ...

最新文章

  1. 在CentOS 6.6 64bit上基于源码安装全功能的vim 7.4实录
  2. [转]优秀编程的“艺术”
  3. Redis应用场景说明与部署
  4. 手动安装huson插件的做法
  5. 对oracle sql的一些总结
  6. Leetcode题库 136.只出现一次的数字(异或 C实现)
  7. 《R语言数据分析》——3.2 聚集
  8. 图像处理Pillow详解
  9. [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性
  10. NOI2019 SX 模拟赛 no.5
  11. call_user_func_array 调用回调函数
  12. oracle数据文件5属于孤立,system数据文件问题库起不来,当家帮忙看看
  13. UNIX编程艺术笔记
  14. 原生JS中动态添加元素
  15. matlab求变上限积分的导数,变上限积分函数的求导
  16. 3Dmax导出插件制作
  17. 天龙八部手游服务器维护公告,天龙八部手游 近期更新维护公告
  18. Xposed 傻瓜式 安装
  19. dad my_英文绘本 || My Dad!《我爸爸》
  20. 电磁兼容工程(Electromagnetic compatibility engineering Herry Ott )读书笔记--章12 数字电路的辐射

热门文章

  1. ESX中的Linux热添加磁盘
  2. 一个httpwebrequest异步下载的例子
  3. opengl地球贴纹理_一文看懂材质/纹理 Material, Texture, Shading, Shader 的区别
  4. java list 截取部分数据_Java List.subList()方法:获取列表中指定范围的子列表
  5. elastic ik分词搜索_php环境下使用elasticSearch+ik分词器进行全文搜索
  6. 面试官问我:spring、springboot、springcloud的区别,我笑了
  7. php如何word转html格式文件,PHP将上传word文件,转化为Html格式,(多种转换方式)
  8. linux 打印函数宏,linux内核中的嵌入式汇编宏函数
  9. java受保护的数据与_Javascript类定义语法,私有成员、受保护成员、静态成员等介绍...
  10. OpenCV中的图像阈值处理算法