我是靠谱客的博主 忧心牛排,最近开发中收集的这篇文章主要介绍【 MATLAB 】离散傅里叶级数(DFS)及 IDFS 的 MATLAB 实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

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

分析式:

tilde X(k) = DFS[tilde x(n)] = sum_{n = 0}^{N-1}tilde x(n)W_N ^{nk}

其中:

W_N = e^{-j frac{2pi}{N}}

综合式:

tilde x(n) = IDFS[tilde X(n)] = frac{1}{N}sum_{k = 0}^{N-1}tilde X(k)W_N^{-nk}

这里我必须先声明,关于分析式和综合式前面那个系数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 xn

n = [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 xn

n = [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 实现的全部内容,希望文章能够帮你解决【 MATLAB 】离散傅里叶级数(DFS)及 IDFS 的 MATLAB 实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部