⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nufft_r.m

📁 著名的Sparco工具包。是matlab下解决线性约束
💻 M
字号:
 function [rr, arg] = nufft_r(om, N, J, K, alpha, beta, use_true_diric)%function [rr, arg] = nufft_r(om, N, J, K, alpha, beta, use_true_diric)% make NUFFT "r" vector% in:%	om	[M,1]	digital frequency omega in radians%	N		signal length%	J		# of neighbors used per frequency location%	K		FFT size (should be > N)%	alpha	[0:L]	Fourier series coefficients of scaling factors%	beta		scale gamma=2pi/K by this in Fourier series%				typically is K/N (me) or 0.5 (Liu)% out:%	rr	[J,M]	r vector for each frequency%	arg	[J,M]	dirac argument for t=0%% Copyright 2001-12-13, Jeff Fessler, The University of Michiganif nargin < 4, help(mfilename), error(mfilename), endif ~isvar('alpha') | isempty(alpha)	alpha = [1];	% default Fourier series coefficients of scaling factorsendif ~isvar('beta') | isempty(beta)	beta = 0.5;	% default is Liu version for nowendif ~isvar('use_true_diric') | isempty(use_true_diric)	use_true_diric = false;endM = length(om);gam = 2*pi/K;dk = om / gam - nufft_offset(om, J, K);		% [M,1]arg = outer_sum(-[1:J]', dk');			% [J,M] diric arg for t=0L = length(alpha) - 1;if ~isreal(alpha(1)), error 'need real alpha_0', endif L > 0	rr = zeros(J,M);	for l1 = -L:L		alf = alpha(abs(l1)+1);		if l1<0, alf = conj(alf); end		r1 = nufft_diric(arg + l1 * beta, N, K, use_true_diric);		rr = rr + alf * r1;			% [J,M]	endelse	rr = nufft_diric(arg, N, K, use_true_diric);	% [J,M]end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -