function Faf = frft(f, a)
% The fast Fractional Fourier Transform
% input: f = samples of the signal
% a = fractional power
% output: Faf = fast Fractional Fourier transform
error(nargchk(2, 2, nargin));
f = f(:);
N = length(f);
shft = rem((0:N-1)+fix(N/2),N)+1;%rem（）取余数；fix（）取整数部分;总体是右边的一半数移到左边；
sN = sqrt(N);
a = mod(a,4);
% do special cases
if (a==0), Faf = f; return; end;
if (a==2), Faf = flipud(f); return; end;%flipud turn oppsite
if (a==1), Faf(shft,1) = fft(f(shft))/sN; return; end
if (a==3), Faf(shft,1) = ifft(f(shft))*sN; return; end
% reduce to interval 0.5 < a < 1.5
if (a>2.0), a = a-2; f = flipud(f); end
if (a>1.5), a = a-1; f(shft,1) = fft(f(shft))/sN; end
if (a<0.5), a = a+1; f(shft,1) = ifft(f(shft))*sN; end
% the general case for 0.5 < a < 1.5
alpha = a*pi/2;
tana2 = tan(alpha/2);
sina = sin(alpha);
f = [zeros(N-1,1) ; interp(f) ; zeros(N-1,1)];%increase sampling rate
% chirp premultiplication
chrp = exp(-i*pi/N*tana2/4*(-2*N+2:2*N-2)'.^2);
f = chrp.*f;
% chirp convolution
c = pi/N/sina/4;
Faf = fconv(exp(i*c*(-(4*N-4):4*N-4)'.^2),f);
Faf = Faf(4*N-3:8*N-7)*sqrt(c/pi);
% chirp post multiplication
Faf = chrp.*Faf;
% normalizing constant
Faf = exp(-i*(1-a)*pi/4)*Faf(N:2:end-N+1);

1个回答

matlabr2016b 打包.m文件生成C++动态库出现如下问题 Compiler version: 6.3 (R2016b) Dependency analysis by REQUIREMENTS. 警告: Adding path "D:\gobs-master\frfrcode190414" to Compiler path instance. Parsing file "D:\gobs-master\frfrcode190414\frft.m" (Referenced from: "Compiler Command Line"). Deleting 1 temporary MEX authorization files. Removing: 'C:\Users\WANGHU~1\AppData\Local\Temp\mathworks_tmp_016b05319_5808.auth'. Generating file "D:\gobs-master\lib\frft\for_testing\frft.h". Generating file "D:\gobs-master\lib\frft\for_testing\frft.cpp". Generating file "D:\gobs-master\lib\frft\for_testing\frft.exports". Generating file "D:\gobs-master\lib\frft\for_testing\readme.txt". Executing command: ""D:\matlab\bin\mbuild" -client mbuild -O -v -output "frft" -I"D:\gobs-master\lib\frft\for_testing" "D:\gobs-master\lib\frft\for_testing\frft.cpp" DEFFILE"=""D:\gobs-master\lib\frft\for_testing\frft.def""" LINKEXPORT"=""/DLL /def:\"\$DEFFILE\"""" LDEXT"="".dll""" CMDLINE250"=""mt -outputresource:\$EXE;2 -manifest \$MANIFEST""" -outdir "D:\gobs-master\lib\frft\for_testing""详细模式已开。 未标识 MEX 选项文件；将查找隐式选择内容。 ... 正在查找编译器 'Intel C++ Composer XE 2011 with Microsoft SDK 7.1'... ... 正在查找环境变量 'ICPP_COMPILER12'...否。 找不到已安装的编译器 'Intel C++ Composer XE 2011 with Microsoft SDK 7.1'。 ... 正在查找编译器 'Intel C++ Composer XE 2011 with Microsoft Visual Studio 2008'... ... 正在查找环境变量 'ICPP_COMPILER12'...否。 找不到已安装的编译器 'Intel C++ Composer XE 2011 with Microsoft Visual Studio 2008'。 ... 正在查找编译器 'Intel C++ Composer XE 2011 with Microsoft Visual Studio 2010 '... ... 正在查找环境变量 'ICPP_COMPILER12'...否。 找不到已安装的编译器 'Intel C++ Composer XE 2011 with Microsoft Visual Studio 2010 '。 ... 正在查找编译器 'Intel C++ Composer XE 2013 with Microsoft SDK 7.1'... ... 正在查找环境变量 'ICPP_COMPILER14'...否。 ... 正在查找环境变量 'ICPP_COMPILER13'...否。 找不到已安装的编译器 'Intel C++ Composer XE 2013 with Microsoft SDK 7.1'。 ... 正在查找编译器 'Intel C++ Composer XE 2013 with Microsoft Visual Studio 2010'... ... 正在查找环境变量 'ICPP_COMPILER14'...否。 ... 正在查找环境变量 'ICPP_COMPILER13'...否。 找不到已安装的编译器 'Intel C++ Composer XE 2013 with Microsoft Visual Studio 2010'。 ... 正在查找编译器 'Intel C++ Composer XE 2013 with Microsoft Visual Studio 2012'... ... 正在查找环境变量 'ICPP_COMPILER14'...否。 ... 正在查找环境变量 'ICPP_COMPILER13'...否。 找不到已安装的编译器 'Intel C++ Composer XE 2013 with Microsoft Visual Studio 2012'。 ... 正在查找编译器 'Intel C++ Composer XE 2013 with Microsoft Visual Studio 2013'... ... 正在查找环境变量 'ICPP_COMPILER14'...否。 ... 正在查找环境变量 'ICPP_COMPILER13'...否。 找不到已安装的编译器 'Intel C++ Composer XE 2013 with Microsoft Visual Studio 2013'。 ... 正在查找编译器 'Intel Parallel Studio XE 2015 for C++ with Microsoft SDK 7.1'... ... 正在查找环境变量 'ICPP_COMPILER15'...否。 找不到已安装的编译器 'Intel Parallel Studio XE 2015 for C++ with Microsoft SDK 7.1'。 ... 正在查找编译器 'Intel Parallel Studio XE 2015 for C++ with Microsoft Visual Studio 2012'... ... 正在查找环境变量 'ICPP_COMPILER15'...否。 找不到已安装的编译器 'Intel Parallel Studio XE 2015 for C++ with Microsoft Visual Studio 2012'。 ... 正在查找编译器 'Intel Parallel Studio XE 2015 for C++ with Microsoft Visual Studio 2013'... ... 正在查找环境变量 'ICPP_COMPILER15'...否。 找不到已安装的编译器 'Intel Parallel Studio XE 2015 for C++ with Microsoft Visual Studio 2013'。 ... 正在查找编译器 'Intel Parallel Studio XE 2015 for C++ with Microsoft Visual Studio 2015'... ... 正在查找环境变量 'ICPP_COMPILER15'...否。 找不到已安装的编译器 'Intel Parallel Studio XE 2015 for C++ with Microsoft Visual Studio 2015'。 ... 正在查找编译器 'Intel Parallel Studio XE 2016 for C++ with Microsoft SDK 7.1'... ... 正在查找环境变量 'ICPP_COMPILER16'...否。 找不到已安装的编译器 'Intel Parallel Studio XE 2016 for C++ with Microsoft SDK 7.1'。 ... 正在查找编译器 'Intel Parallel Studio XE 2016 for C++ with Microsoft Visual Studio 2012'... ... 正在查找环境变量 'ICPP_COMPILER16'...否。 找不到已安装的编译器 'Intel Parallel Studio XE 2016 for C++ with Microsoft Visual Studio 2012'。 ... 正在查找编译器 'Intel Parallel Studio XE 2016 for C++ with Microsoft Visual Studio 2013'... ... 正在查找环境变量 'ICPP_COMPILER16'...否。 找不到已安装的编译器 'Intel Parallel Studio XE 2016 for C++ with Microsoft Visual Studio 2013'。 ... 正在查找编译器 'Intel Parallel Studio XE 2016 for C++ with Microsoft Visual Studio 2015'... ... 正在查找环境变量 'ICPP_COMPILER16'...否。 找不到已安装的编译器 'Intel Parallel Studio XE 2016 for C++ with Microsoft Visual Studio 2015'。 ... 正在查找编译器 'MinGW64 Compiler (C++)'... ... 正在查找环境变量 'MW_MINGW64_LOC'...是('C:\TDM-GCC-64')。 ... 正在查找文件 'C:\TDM-GCC-64\bin\g++.exe'...是。 ... 正在查找文件夹 'C:\TDM-GCC-64'...是。 找到已安装的编译器 'MinGW64 Compiler (C++)'。 ... 正在查找编译器 'Microsoft Visual C++ 2008'... ... 正在查找环境变量 'VS90COMNTOOLS'...否。 找不到已安装的编译器 'Microsoft Visual C++ 2008'。 ... 正在查找编译器 'Microsoft Visual C++ 2010'... ... 正在查找环境变量 'VS100COMNTOOLS'...否。 找不到已安装的编译器 'Microsoft Visual C++ 2010'。 ... 正在查找编译器 'Microsoft Visual C++ 2012'... ... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 11.0...否。 ... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 11.0...否。 ... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 11.0...否。 ... 正在查找注册表设置 'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 11.0...否。 找不到已安装的编译器 'Microsoft Visual C++ 2012'。 ... 正在查找编译器 'Microsoft Visual C++ 2013 Professional'... ... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 12.0...否。 ... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 12.0...否。 ... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 12.0...否。 ... 正在查找注册表设置 'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 12.0...否。 找不到已安装的编译器 'Microsoft Visual C++ 2013 Professional'。 ... 正在查找编译器 'Microsoft Visual C++ 2015 Professional'... ... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。 ... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0...否。 ... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 14.0...否。 ... 正在查找注册表设置 'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 14.0...否。 找不到已安装的编译器 'Microsoft Visual C++ 2015 Professional'。 ... 正在查找编译器 'Microsoft Visual C++ 2017'... ... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 15.0...否。 ... 正在查找注册表设置 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 15.0...否。 ... 正在查找注册表设置 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 15.0...否。 ... 正在查找注册表设置 'HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 15.0...否。 找不到已安装的编译器 'Microsoft Visual C++ 2017'。 ... 正在查找编译器 'Microsoft Windows SDK 7.1 (C++)'... ... 正在查找注册表设置 'HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1' InstallationFolder...否。 找不到已安装的编译器 'Microsoft Windows SDK 7.1 (C++)'。 未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器；请访问 http://www.mathworks.com/help/matlab/matlab_external/install-mingw-support-package.html。如需更多选项，请访问 http://www.mathworks.com/support/compilers/R2016b/win64.html。 Error: An error occurred while shelling out to mbuild (error code = -1). Unable to build executable. 看中间已经找到编译器，但是在编译的时候并没有使用依旧找到的编译器，的编译器依旧换了两三个，但均报这个错误。 求大神帮忙。。。。。。
FRFT程序运行时说Not enough input arguments. 是怎么回事
function Faf = frft(f, a) % The fast Fractional Fourier Transform % input: f = samples of the signal % a = fractional power % output: Faf = fast Fractional Fourier transform error(nargchk(2, 2, nargin)); f = f(:); N = length(f); shft = rem((0:N-1)+fix(N/2),N)+1; sN = sqrt(N); a = mod(a,4); % do special cases if (a==0), Faf = f; return; end; if (a==2), Faf = flipud(f); return; end; if (a==1), Faf(shft,1) = fft(f(shft))/sN; return; end if (a==3), Faf(shft,1) = ifft(f(shft))*sN; return; end % reduce to interval 0.5 < a < 1.5 if (a>2.0), a = a-2; f = flipud(f); end if (a>1.5), a = a-1; f(shft,1) = fft(f(shft))/sN; end if (a<0.5), a = a+1; f(shft,1) = ifft(f(shft))*sN; end % the general case for 0.5 < a < 1.5 alpha = a*pi/2; tana2 = tan(alpha/2); sina = sin(alpha); f = [zeros(N-1,1) ; interp(f) ; zeros(N-1,1)]; % chirp premultiplication chrp = exp(-i*pi/N*tana2/4*(-2*N+2:2*N-2)'.^2); f = chrp.*f; % chirp convolution c = pi/N/sina/4; Faf = fconv(exp(i*c*(-(4*N-4):4*N-4)'.^2),f); Faf = Faf(4*N-3:8*N-7)*sqrt(c/pi); % chirp post multiplication Faf = chrp.*Faf; % normalizing constant Faf = exp(-i*(1-a)*pi/4)*Faf(N:2:end-N+1); %%%%%%%%%%%%%%%%%%%%%%%%% function xint=interp(x) % sinc interpolation N = length(x); y = zeros(2*N-1,1); y(1:2:2*N-1) = x; xint = fconv(y(1:2*N-1), sinc([-(2*N-3):(2*N-3)]'/2)); xint = xint(2*N-2:end-2*N+3); %%%%%%%%%%%%%%%%%%%%%%%%% function z = fconv(x,y) % convolution by fft N = length([x(:);y(:)])-1; P = 2^nextpow2(N); z = ifft( fft(x,P) .* fft(y,P)); z = z(1:N);

Java学习的正确打开方式

【超详细分析】关于三次握手与四次挥手面试官想考我们什么？

Vue快速实现通用表单验证

2019年Spring Boot面试都问了什么？快看看这22道面试题！
Spring Boot 面试题 1、什么是 Spring Boot？ 2、Spring Boot 有哪些优点？ 3、什么是 JavaConfig？ 4、如何重新加载 Spring Boot 上的更改，而无需重新启动服务器？ 5、Spring Boot 中的监视器是什么？ 6、如何在 Spring Boot 中禁用 Actuator 端点安全性？ 7、如何在自定义端口上运行 Sprin...
Java 数据持久化系列之JDBC

JavaScript 中， 5 种增加代码可读性的最佳实践

Java 9 ← 2017，2019 → Java 13 ，来看看Java两年来的变化

【图解算法面试】记一次面试：说说游戏中的敏感词过滤是如何实现的？

OpenCV-Python 绘图功能 | 七

GitHub 标星 1.6w+，我发现了一个宝藏项目，作为编程新手有福了！

Java知识体系最强总结(2020版)

Windows可谓是大多数人的生产力工具，集娱乐办公于一体，虽然在程序员这个群体中都说苹果是信仰，但是大部分不都是从Windows过来的，而且现在依然有很多的程序员用Windows。 所以，今天我就把我私藏的Windows必装的软件分享给大家，如果有一个你没有用过甚至没有听过，那你就赚了????，这可都是提升你幸福感的高效率生产力工具哦！ 走起！???? NO、1 ScreenToGif 屏幕，摄像头和白板...

Fiddler+夜神模拟器进行APP抓包
Fiddler+夜神模拟器进行APP抓包 作者：霞落满天 需求：对公司APP进行抓包获取详细的接口信息，这是现在开发必备的。 工具：Fiddler抓包，夜神模拟器 模拟手机 安装APP 1.下载Fiddler https://www.telerik.com/download/fiddler Fiddler正是在这里帮助您记录计算机和Internet之间传递的所有HTTP和HTTPS通信...
Java9到Java13各版本新特性代码全部详解(全网独家原创)
Java现在已经发展到了Java13了（正式版本），相信很多朋友还对各个版本还不是很熟悉，这里面专门把Java9到Java13各个版本的一些新特性做了一些详细讲解。我在网上也找了很多，但基本都是官方文档的CV，没有任何代码演示，而且官方的示例代码也不是很好找得到，官方API目前还是Java10，官方文档真是坑啊。所以我在这里专门写了一篇文章，主要针对平时开发与有关的功能Java9到Java13各...

CPU对每个程序员来说，是个既熟悉又陌生的东西？ 如果你只知道CPU是中央处理器的话，那可能对你并没有什么用，那么作为程序员的我们，必须要搞懂的就是CPU这家伙是如何运行的，尤其要搞懂它里面的寄存器是怎么一回事，因为这将让你从底层明白程序的运行机制。 随我一起，来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说，我们首先就要搞明白它是怎么回事，也就是它的内部构造，当然，CPU那么牛的一个东...

B 站上有哪些很好的学习资源?

[Pyhon疫情大数据分析] 一.腾讯实时数据爬取、Matplotlib和Seaborn可视化分析全国各地区、某省各城市、新增趋势

2020年十大前沿科技，了解一下