24小时热门版块排行榜    

查看: 565  |  回复: 1

cdg234

新虫 (初入文坛)

[求助] matlab请教 已有1人参与

初学,编了个程序,全通型微环的输入输出波,编好号运行出错,提示“In an assignment  A(I) = B, the number of elements in B and I must be the same.

Error in fft (line 37)
        ot1m(m)=Ow*exp(i*hw*t1(l))*dw/2*pi;”
将“ot1m(m)"改为"ot1m"能运行,但感觉结果完全不对啊,求大神指教。代码如下:

function fft
neff=1.5;
R=10e-6;
tao=1;
t=0.9;
c=3e8;
TR=2*pi*R*neff./c;
F=pi*t^(0.5)/(1-t);
Tc=F*TR;
lambdac=1.4960e-6;
i=sqrt(-1);
figure;
for n=1:3;
    subplot(1,3,n);
    u=[0.25,0.5,1];
    tao1=u*Tc;
    to1=3*tao1;   
    wc=2*pi*c./lambdac;
    t1=linspace(1,25*4^(n-1),25*4^(n-1)*8);
    ft1=zeros(25*4^(n-1)*8,1);
    ot1=zeros(25*4^(n-1)*8,1);
    for l=1:25*4^(n-1)*8;
    ft1(l)=exp(-((t1(l)-to1)/tao1).^2)*exp(i*wc*t1(l));
    lambda=linspace(1.48e-6,1.51e-6,500);
    w=zeros(500,1);
    ot1m=zeros(499,1);
      for m=1:499;        
        w(m)=2*pi*c./lambda(m);
        w(m+1)=2*pi*c./lambda(m+1);
        dw=w(m+1)-w(m);
        hw=(w(m+1)+w(m))/2;
        A=exp(-(((hw-wc).*tao1)/2).^2);        
        B=exp(-i*(hw-wc)*to1);
        Fw=sqrt(pi)*tao1.*A.*B;
        Hw=(t1(l)-tao*exp(-i*hw*TR))./(t1(l)-tao*t*exp(-i*hw*TR));
        Ow=Fw*Hw;
        ot1m(m)=Ow*exp(i*hw*t1(l))*dw/2*pi;
      end;
    ot1(l)=sum(ot1m);
    end
   
   plot(t1,ft1,'r--',t1,ot1,'b-.','LineWidth',2);      
   xlabel('时间(ps)');
   legend('输入','输出','Location', 'East');
end
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bill110100

铜虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
cdg234: 金币+5 2014-01-09 09:42:37
问题是你的OW是1*3的矩阵,
后面的ot1m(m)里面是矩阵乘法,最后的结果也是一个矩阵,不能保存在矩阵的一个元里!
2楼2014-01-08 21:24:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cdg234 的主题更新
信息提示
请填处理意见