% m0 = 7% m0 初始节点,全连接
% m = 4% m 加一个点的同时加谨厅的边数
% N= 5000% N 总的节点数
把前面的含晌闹%都去掉。
把值付给四个变量wp=2*pi*5000ws=2*pi*12000Rp=2As=30
1. buttord
(1)[N,wc]=buttord(wp,ws,αp,αs)
调用参数wp,ws分别为数字滤波手李器的通带、阻带截止频率的归一化值,要求:0≤wp≤1,0≤ws≤1。1表示数字频率pi。
αp,αs分别为通带最大衰减和组带最小衰减(dB)。
当ws≤wp时,为高通滤波器;
当wp和ws为二元矢量时,为带通或带阻滤波器,这时wc也是二元向量。
N,wc作为butter函数的调用参数。
(2)[N,Ωc]=buttord(Ωp,Ωs,αp,αs,‘s’)
用于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率Ωc。
Ωp,Ωs,Ωc均为实际模拟角频率。
说明:buttord函数使用阻带指标计算3dB截止频率,这样阻带会刚好满足要求,而通带会有富余。
2.buttap(N)
[z0,p0,k0]=buttap(N)
用于计算N阶巴特沃斯归一化(3dB截止频率Ωc=1)模拟低通原型滤波器系统函数的零、极点和增益因子。
说明:如果要从零、极点模型得到系统函数的分子、分母多项式系数向量ba、aa,可调孙举用
[B,A]=zp2tf(z0,p0,k0)
3.butter
(1)[b,a]=butter(N,wc,‘ftype’)
计算N阶巴特沃斯数字滤波器系统函数分子、分母多项式的系数向量b、a。
调用参数毕凯迟N和wc分别为巴特沃斯数字滤波器的阶数和3dB截止频率的归一化值(关于pi归一化),一般是调用buttord(1)格式计算N和wc。
系数b、a是按照z-1的升幂排列。
(2)[B,A]=butter(N,Ωc,‘ftype’,‘s’)
计算巴特沃斯模拟滤波器系统函数的分子、分母多项式系数向量ba、aa。
调用参数N和Ωc分别为巴特沃斯模拟滤波器的阶数和3dB截止频率(实际角频率),可调用buttord(2)格式计算N和Ωc。
系数B、A按s的正降幂排列。
tfype为滤波器的类型:
◇ftype=high时,高通;Ωc只有1个值。
◇ftype=stop时,带阻阻;此时Ωc=[Ωcl,Ωcu],分别为带阻滤波器的通带3dB下截止频率和上截止频率。
◇ ftype缺省时:
若Ωc只有1个值,则默认为低通;
若Ωc有2个值,则默认为带通;其通带频率区间Ωcl <Ω <Ωcu。
注意:所设计的带通和带阻滤波器系统函数是2N阶。因为带通滤波器相当于N阶低通滤波器与N阶高通滤波器级联。
[N,wc]=buttord(wp,ws,Rp,As,'s')
[B,A]=butter(N,wc,'s')
k=0:511fk=0:14000/512:14000wk=2*pi*fk
Hk=freqs(B,A,wk)
画图,两行两列
subplot(2,2,1)
plot(fk/1000,20*log10(abs(Hk)))grid on
坐标轴意义
xlabel('频率(kHz)')ylabel('幅度(dB)')
坐标的取值范围
axis([0,14,-40,5])
你好,首先我要说你选择matlab这一强大软件是明智的,它的功能十分全面,其优化工具箱解决你的问题十分方便线性规划的求解程序名为linprog,调用格式为[x,fval,exitflag,output,lambda] = linprog(c,A,b,Aeq,beq,lb,ub,x0,options)其中,x:最优解;val:最优闷尘解处的函数值;exitflag:程序结束时的状态指示(>0: 收敛桥坦,0: 函数调用次数或迭代次数达到最大值(该值在options中指定) <0: 不收敛); Output:包含以下数据的结构变量(iterations实际迭代次数, cgiterations 实际PCG迭代次数(大规模计算用),algorithm 实际使用的算法);lambda:包含以下数蚂消禅据的结构变量(ineqlin 不等式约束的LAGRANGE乘子, eqlin等式约束的LAGRANGE乘子, upper上界约束的LAGRANGE乘子, lower下界约束的LAGRANGE乘子);c:目标函数矩阵;A/Aeq:不等式/等式限制条件系数矩阵;b/beq:不等式/等式限制条件常数项矩阵;lb:自变量定义域下限;ub:自变量定义域上限;x0:初始解(缺省时程序自动取x0=0)options:包含算法控制参数的结构 实际应用是并没有这么复杂,很多参数缺省就可以了,用你的例题演示就是:(在命令窗口输入)f=[-2-3]A=[0,14,21,1]b=[12206]lb=zeros(3,1)[x,fval]=linprog(f,A,b,[],[],lb)计算出x=[06],即x1=0,x2=6fval=-18解释一下linprog函数只能求最小值,所以将目标函数系数全变为相反数,最终得到的结果应为fval的相反数希望以上内容对你学习matlab能有一定帮助,以后可以多看看帮助文件,里面讲解很详细。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)