帮助Matlab符号工具箱

时间:2011-08-21 04:15:22

标签: matlab filter signal-processing electronics

尝试使用matlab设计三阶sallen密钥过滤器:

[B,A]=cheby1(3,1,10*10^6*2*pi,'s');

%3rd order sallen key
syms R1 R2 R3 R4 R5 C1 C2 C3
M=1+R4/R5;
num=[M/(R1*R2*R3*C1*C2*C3)];
den=[1 (1/(R1*C1)+1/(R2*C1)+1/(R2*C2)+(1-M)/(R3*C3)+1/(R3*C2)) ((C3*R3+R1*C3+R2*C3+C1*R1+(1-M)*(R1+R2)*C2)/(R1*R2*R3*C1*C2*C3)) (1/(R1*R2*R3*C1*C2*C3))];

solve('B=num','A=den','M=5','R1','R2','R3','R4','R5')

它告诉我:

Warning: 3 equations in 5 variables. New variables might be introduced.  
Warning: Explicit solution could not be found. 

cheby1为您提供chebyshev类型1过滤器的传递函数(分子和分母);然后我试着把它等同于三阶sallen键滤波器的传递函数的形式;并获得matlab来根据电容值求解电阻值。

==>我怎样才能得到我想要的解决方案?

注意:这与正在执行的实际计算无关,而与如何使用matlab有关。

1 个答案:

答案 0 :(得分:0)

也许我错过了什么,但B是1x4向量,而num是标量,所以你无法得到答案。另外,(编辑)你无法从命令窗口解决间接方程(即solve('M=5','R1','R2')不起作用,但solve('1 + R1/R2=5','R1','R2')将会

即使你纠正了那些我怀疑这对符号工具箱来说太复杂了(解决方案很可能是一个无法明确解决的高阶多项式)

您最好的选择是使用fsolve来查找数值解