matlab 子程序 主程序,MATLAB 主程序和子程序之间的问题 子程序出错

news/2024/7/16 10:16:33

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

子程序如下:

function [Xd,Ad,Bd,A,B,g0,h0]=initial_h0(n,k,Wa,SRLa,SXLa)

% This function generates the initial guess for the numerator polynomial

% h(p).

%--------------------Inputs:

%Wa: Normalized angular frequency which includes

%sample points for the load reflectance over the

%pass band.

%SRLa: Row vector. Real part of the load reflectance

%SXLa: Row vector. Imaginary part of the load reflectance

%---------------------Output:

%h0=[...] row vector. Initial for the

%polynomial_h(p).

N=length(Wa);

g0=initial_g0(n,k,Wa,SRLa,SXLa);

for j=1:N

W=Wa(j);

p=(sqrt(-1)*W);

% Step 1: Generate row vector Xd for linear regression of the Auxiliary polynomial.

Xd(j)=W*W;

%-----------------------------------------------------

% Step 2: Generate gR and gX from g0(p)

SRL=SRLa(j);

SXL=SXLa(j);

gval=polyval(g0,p);

gR=real(gval);

gX=imag(gval);

%------------------------------------------------------

%

% Step 3: Generate array vectors Ad and Bd to generate polynomilas A(x) and B(x)

% Note that A9x)=hR and B(x)=hX/w

Ad(j)=gR*SRL+gX*SXL;

Bd(j)=-(gX*SRL-gR*SXL)/W;

end

%

% Step 4: Find the polynomials A(x) and B(x) by polynomial curve fitting:

ng=length(g0);

n=ng-1;

[A,B]=polyfitAB(n,Xd,Ad,Bd);

%

% Step 5: Determine the initial coefficients h0=[...]

h0=ABtoh(n,A,B);

return

主程序如下:

% PROGRAM FOR CHAPTER 11: Initialization for Example 6

clear

%--------------------------------inputs:---------------------------------------

n=4;

k=0;

ntr=1;

T0=0.84

%----------Measured antenna data normalized with respect to f0=100MHz, and R0=50ohm.

Wa=[0.3000 0.3300 0.3600 0.3900 0.4200 0.4500 0.4800 0.5100 0.5400 0.5700 0.6000]

SRLa =[0.6233 0.3869 0.1504 0.1168 0.2850 0.4775 0.6208 0.7172 0.7818 0.8259 0.8567]

SXLa =[-0.5541 -0.5401 -0.3407 -0.0096 0.2157 0.2838 0.2715 0.2316 0.1854 0.1399 0.0971]

%---------------Generation of Initials----------------

[Xd,Ad,Bd,A,B,g0,h0]=initial_h0(n,k,Wa,SRLa,SXLa);

%---------------------------------------------------------

%

na=n+1

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

% Start Optimization using simplest version of the LSQNONLIN

%

% Type design prefernce:

%ntr=1: design with transformer

%ntr=0: design without transformer.

% --------------------------------------------------------------

%

OPTIONS=OPTIMSET('MaxFunEvals',20000,'MaxIter',50000);

%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Design with transformer:

if ntr==1,

x0=h0;

% Call optimization function lsqnonlin:

x=lsqnonlin('sopt11',x0,[],[],OPTIONS,T0,ntr,k,Wa,SRLa,SXLa);

%

h=x;

end

%--------------------------------------------------------------------------

% Design without transformer:

if ntr==0,

for r=1:na-1

x0(r)=h0(r);

end

%Call optimization function lsqnonlin:

x=lsqnonlin('sopt11',x0,[],[],OPTIONS,T0,ntr,k,Wa,SRLa,SXLa);

for r=1:na-1

h(r)=x(r);

end

h(na)=0;

end

% Generate strictly hurwits polynomial g(p) from optimized h(p):

g=Hurwitzpoly_g(h,k);

% Compute the optimized transducer power gain

nopt=length(Wa);

for j=1:nopt

w=Wa(j);

SR=SRLa(j);

SX=SXLa(j);

L11=complex(SR,SX);

%COMPUTATION OF GAIN

g=Hurwitzpoly_g(h,k);

T=gain(w,h,g,k,L11);

Ta(j)=T;

end

na=n+1

for i=1:na

y(i)=g(na-i+1);

x(i)=h(na-i+1);

end

%

if k==0

% Syntisize the lossless equalizer from its back-end reflection

% coefficient:clc

[m CV]=synthesis(x,y);

end

plot(Wa,Ta)

CV=general_synthesis(h,g);

运行错误结果为:

??? Undefined command/function 'polyfitAB'.

Error in ==> initial_h0 at 38

[A,B]=polyfitAB(n,Xd,Ad,Bd);

Error in ==> UntitledEX6 at 13

[Xd,Ad,Bd,A,B,g0,h0]=initial_h0(n,k,Wa,SRLa,SXLa);

求大神帮帮忙


http://www.niftyadmin.cn/n/1176889.html

相关文章

程序员第一次软件实习需掌握的5大技巧

2019独角兽企业重金招聘Python工程师标准>>> 如果你正在阅读这篇文章,并且刚刚拿到你的第一份实习offer,那么恭喜你!你的辛勤工作、熬夜学习、专研技术等等努力通通没有白费。面试官非常欣赏你,你拿到了临时签约的offe…

20145222GDB调试汇编堆栈过程分析

GDB调试汇编堆栈过程分析 实践代码example.c #include<stdio.h> short addend1 1; static int addend2 2; const static long addend3 3;static int g(int x) {return x addend1; } static const int f(int x) {return g(x addend2); }int main(void) {return f(8)…

linux利用grep查看打印匹配的下几行或前后几行的命令

转自&#xff1a;http://www.itokit.com/2013/0308/74883.html linux系统中&#xff0c;利用grep打印匹配的上下几行 如果在只是想匹配模式的上下几行&#xff0c;grep可以实现。$grep -5 parttern inputfile //打印匹配行的前后5行$grep -C 5 parttern inputfile //打印匹配行…

lorenz画图matlab,Matlab画Lorenz系统的最大李雅普诺夫指数图

Lorenz 系统文档分两个文件方程m文件和计算L指数m文件分开写&#xff0c;复制粘贴即可运行matlab2012a&#xff0c;改写方程文件和参数即可算自己的系统&#xff0c;其中最大L指数用的是经典的柏内庭(G.Benettin)计算方法&#xff0c;准确快速无误&#xff01;附计算结果图&…

客户端的用户登录信息如何保存

问题描述用户登录之后&#xff0c;登录之后进入每个的Activity&#xff0c;都可以获得用户名&#xff0c;用户名一般保存在哪&#xff1f;我是新手&#xff0c;请大家指导~~ 解决方案1android有5个保存机制&#xff0c;你想保存哪里就保存哪里 解决方案2一般情况下&#xff0c;…

2017.2.13 开涛shiro教程-第十二章-与Spring集成(二)shiro权限注解

原博客地址&#xff1a;http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习。 第十二章-与Spring集成&#xff08;二&#xff09;shiro权限注解 shiro注解不仅可以使用在web环境&#xff0c;在独立的JavaSE中也是可以使用的。下面只以web为例。 shiro提供了s…

Lua 调用 Opencv 的方法

Lua 调用 Opencv 的方法 最近想用 Lua 调用 Opencv 进行相关像素级操作&#xff0c;如&#xff1a;bitwise_and 或者 bitwise_or&#xff0c;从而完成图像 IoU 的计算。 那么&#xff0c;怎么用 Lua 调用 Opencv 呢&#xff1f; 查了 Torch 的官方文档&#xff0c;发现只有这么…

matlab alpha策略,不可不知的N种量化策略模型——alpha策略

原标题&#xff1a;不可不知的N种量化策略模型——alpha策略本文共2880字&#xff0c;预计阅读需13分钟这是一个量化(程序化)策略全方位揭密帖&#xff01;如果你是一个拥有充足的时间&#xff0c;充满求知欲&#xff0c;渴望通过自身的努力克服重重障碍、独立学习量化投资策略…