当前注册人数422991人 邮箱: 密码: 注册新用户 忘记密码
首页 C/C++/MFC C# ASP.NET VB.NET MATLAB Android   站内搜索 下载代码说明/积分规则
为什么要注册?

1. 可以直接免费从本站下载代码,防止邮件发送不到您的邮箱,或登录不了国外网站

2. 可以设定关键字,当有您关心的代码收录时,邮件通知您

3. 对这里的代码进行评分和评论

4. 可以和大家一起分享你的源代码,得到更多的建议

Extended DFT

扩展功能的数字傅立叶变换(DFT)源代码

2007年12月11日
MATLAB R10
程序之所以称之为扩展功能的DFT,是因为,它有如下扩展功能: 1. 可以自动扩展输入序列X,如果你输入的长度不足N,会自动以NaN补足。 2. 可以增大频率精度,至1/(N*T),其中T是采样周期。 3. 可以统计输入序列X的正弦波的幅度和相位 4. 输入序列可以包含NaN 5. 可以限制迭代的次数 6. 可以输入/计算二维矩阵
相关知识

      EDFT (Extended Discrete Fourier Transform) produce Discrete N-point Fourier Transform (DFT) for shorter then N sequence X. Unlike Fast Fourier Transform (FFT), where unknown readings outside of X are zero-padded, the proposed EDFT algorithm for calculation of DFT using only available data. Application of EDFT function is simple and similar to FFT, besides EDFT have the following additional features:
1. EDFT can extrapolate input sequence X to length N. That is, if apply EDFT for N>length(X), get the results:
F=edft(X,N)=edft(Y)=fft(Y); Y=ifft(F),
where Y is X plus non-zero forward and backward extrapolation of X to length N or/and interpolation if unknown data inside of X have been replaced by NaN (Not-a-Number).
2. EDFT can increase frequency resolution up to 1/(N*T), where T is sampling period. It is well known, that zero-padding do not increase frequency resolution of DFT, therefore the resolution of FFT algorithm is limited by length of sequence length(X)*T. Of course, there is no magic- FFT just have equal resolution on all N frequencies, while EDFT have ability to increase the resolution on some frequencies and decrease on others. The sum of resolutions along the frequency axis for both algorithms remain equal to N*length(X)*T.
3. EDFT can estimate amplitudes and phases of sinusoidal components in sequence X. Like as FFT output fft(X,N)/length(X) is proportional to amplitudes of sinusoids in X, also adding a second output argument for EDFT return the amplitude spectrum S of sequence X:
[F,S]=edft(X,N).
4. Input sequence of EDFT may contain NaN. The proposed algorithm can interpolate and reconstruct of missing readings or even data segments (gaps) inside of sequence X. You just need to replace unknown readings by NaN and run edft(X) or edft(X,N).
5. EDFT can run with limit to maximum number of iterations (input argument I) or either in non-iterative (I=1) mode
[F,S]=edft(X,N,I) or
[F,S,Stopit]=edft(X,N,I,W),
where W is weight vector and consisting of specific weights for each frequency in F. W is propotional to the amplitude spectrum of the signal. So, a`priori knowledge about form of the input sequence amplitude spectrum S can be used to setup appropriate weight vector W, otherwise default (equal) weight W=ones(size(F)) will be applied. Stopit is an informative (optional) output parameter. The first row of Stopit showing the number of performed iteration, the second row indicate breaking of iteration reason (see EDFT help).
6. Is it possible to estimate DFT of nonuniformly (irregularly) sampled input sequence by proposed algorithm? Yes, it is. As result, the Nonuniform EDFT (NEDFT) program introduced for processing of input sequence X sampled at arbitrary time moments tk. NEDFT call line: [F,S]=nedft(X,tk,fn) will perform DFT of sequence X(tk) and return outputs F(fn) and S(fn). If frequencies fn are on different grid then used by FFT and EDFT algorithms, a simple Inverse NEDFT (INEDFT) program should be applied to reconstruct Y(tn), call line: Y=inedft(F,fn,tn).
7. Two-dimensional EDFT of array X can be calculated by applying function edft2.m, call line F=edft2(X, mrows, ncols).
See programs edft.m, edft2.m nedft.m and inedft.m help for detailed info.
Launch also DEMO programs demoedft.m and demonedft.m to check proposed algorithm performance for the simulated test signal.
Read attached ExtendedDFT.pdf to get more comprehensive insight into suggested algorithm.

源代码原文下载:
Extended DFT Program EDFT produce high-resolution N-point DFT for N greater then length of data vector.

源码图片

从本站下载附件及源代码(1个附件,已经成功下载607次)

最值得关注的外文源代码

Hilbert-Huang Transform
Ideal Low Pass Filter
2D Target tracking using Kalman filter
How to apply the 2D FFT functions in Matlab
评论(评论是增加积分的一个有效途径)
字数在300字内
请如实评论
本源代码共评论134次,此处显示最近20次评论! 查看所有评论

wgy起飞  2021年07月13日
挺好的
码农  2020年08月11日
挺好的
870791837  2018年05月30日
不错
brizafly  2017年10月16日
学习学习
Cdma  2017年07月11日
帮帮的
天涯沙漠  2017年01月08日
四站 时差无源定位精 度分析
Asura_Wrath  2016年12月17日
fenghui  2016年06月06日
谢谢分享。
阻隔的光年  2016年04月07日
不错
阻隔的光年  2016年04月07日
不错
爱读书的曹操  2015年02月04日
嘿嘿嘿嘿
ppbsdm  2015年01月21日
参考一下
crystal_716  2014年11月25日
学习学习
ytt  2014年09月22日
还行
chn327816  2014年08月26日
学习中
sofiya  2014年06月09日
代码不错
sofiya  2014年06月09日
代码不错
笨鸟先飞  2014年04月30日
感觉还不错
水声  2014年04月30日
学习一下。。。
么有蜡笔的小新  2014年04月05日
感谢分享
字数在300字内
请如实评论
200万国内源码搜索
CopyRight (C) codesoso.com 2007-2009 All Rights Reserved zhihuishi   免责声明