永发信息网

Undefined function or method 'sdpvar' for input arguments of type 'double'.这个是什么

答案:1  悬赏:70  手机版
解决时间 2021-01-24 19:33
  • 提问者网友:谁的错
  • 2021-01-24 13:36
%定义部分:
N = 40; %滤波器为40阶
M = 201;%取点数
wp = 0.3*pi;%通带截止频率
ws = 0.4*pi;%阻带起始频率
w =linspace(0,pi,M)';%在0~π之间取M个点
c = (cos(w*[0:(N-1)]));
s = (sin(w*[0:(N-1)]));
Hd = zeros(M, 1);
a = find(wb = find(w>ws);%查找阻带
Hd(a) = 1*exp(-j*15*w(a));%理想的通带
Hd(b) = 0;%理想的阻带
Hr = real(Hd);%取实部
Hi = -imag(Hd);%取负的虚部

%算法部分:
Q = [];
p = [];
Inx = find((w <= wp) | (w >= ws));
x = sdpvar(N,1);
t = sdpvar(1,1);
F = [];
for r = 1:1:length(Inx)
Q = [c(Inx(r), :); s(Inx(r), :)];
p = [Hr(Inx(r)); Hi(Inx(r))];
F = F + set('||Q*x-p|| < t');
end
sol = solvesdp(F, t);%求解
x = double(x);
fvtool(x);
最佳答案
  • 五星知识达人网友:何以畏孤独
  • 2021-01-24 14:55
你之前有定义N为双精度的? 你看下帮助 sdpvar(m,n) m n 似乎得是整数
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯