亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我不是很明白錯誤是怎么回事?在第18行....

我不是很明白錯誤是怎么回事?在第18行....

飲歌長嘯 2023-04-09 21:17:50
錯誤:??? Error using ==> sym.sym>assumptions at 2180Second argument f not recognized.Error in ==> sym.sym>tomupad at 2156assumptions(S,x.s,a);Error in ==> sym.sym>sym.sym at 114S.s = tomupad(x,a);Error in ==> vpa at 55ss = sym(s,'f');Error in ==> ex0804 at 18A_sym(1)=double(VPA(A0,Nn));代碼:% [ex8.4] 周期方波脈沖及單邊頻譜function [A_sym,B_sym]=CTFSdbfb(T,Nf,Nn)% 采用符號計算求[0,T]內時間函數的三角級數展開系數。% 函數的輸入輸出都是數值量% Nf 諧波的階數% Nn 輸出數據的準確位數% A_sym 第1元素是直流項,其后元素依次是1,2,3...次諧波cos項展開系數% B_sym 第2,3,4,...元素依次是1,2,3...次諧波sin項展開系數syms t n k y T=5;if nargin<4;Nf=input('plear Input 所需展開的最高諧波次數:');endT=5;if nargin<5;Nn=32;endy=time_fun_s(t);A0=2*int(y,t,0,T)/T;As=int(2*y*cos(2*pi*n*t/T)/T,t,0,T);Bs=int(2*y*sin(2*pi*n*t/T)/T,t,0,T);A_sym(1)=double(VPA(A0,Nn));for k=1:NfA_sym(k+1)=double(vpa(subs(As,n,k),Nn));B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));endif nargout==0 S1=fliplr(A_sym) %對A_sym陣左右對稱交換  S1(1,k+1)=A_sym(1) %A_sym的1*k陣擴展為1*(k+1)陣S2=fliplr(1/2*S1) %對擴展后的S1陣左右對稱交換回原位置S3=fliplr(1/2*B_sym) %對B_sym陣左右對稱交換  S3(1,k+1)=0 %B_sym的1*k陣擴展為1*(k+1)陣S4=fliplr(S3) %對擴展后的S3陣左右對稱交換回原位置S5=S2-i*S4;  N=Nf*2*pi/T;k2=0:2*pi/T:N;subplot(3,3,3)x=squ_timefun(t,T) %調用連續時間函數-周期方波脈沖T=5;t=-2*T:0.01:2*T;plot(t,x)title('周期方波脈沖')axis([-10,10,-1,1.2])line([-10,10],[0,0])subplot(3,1,3)stem(k2,abs(S5)); %畫出周期方波脈沖的頻譜(脈寬a=T/2)title('周期方波脈沖的單邊頻譜')axis([0,60,0,0.6])end%-------------------------------------------function y=time_fun_s(t)% 該函數是CTFSdbfb.m的子函數。它由符號變量和表達式寫成。syms a a1T=5;a=T/2;y1=sym('Heaviside(t)')*2-sym('Heaviside(t-a1)');y=y1-sym('Heaviside(t+a1)');y=subs(y,a1,a);y=simple(y);%------------------------------function x=squ_timefun(t,T)% 該函數是CTFSdbfb.m的子函數,它由方波脈沖函數寫成。% t 是時間數組% T 是周期 duty'占空比':信號為正的區域在一個周期內所占的百分T=5;t=-2*T:0.01:2*T;duty=50;x=square(t,duty);
查看完整描述

1 回答

?
largeQ

TA貢獻2039條經驗 獲得超8個贊

主要是這幾句有問題 類型轉換不對

A_sym(1)=vpa(str2double(char(A0)),Nn);

for k=1:Nf

%    A_sym(k+1)=double(vpa(subs(As,n,k),Nn));

   A_sym(k+1)=vpa(str2double(char(subs(As,n,k))),Nn);

%    B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));

function [A_sym,B_sym]=CTFSdbfb(T,Nf,Nn)

% 采用符號計算求[0,T]內時間函數的三角級數展開系數。

%    函數的輸入輸出都是數值量

%  Nf  諧波的階數

% Nn  輸出數據的準確位數

% A_sym 第1元素是直流項,其后元素依次是1,2,3...次諧波cos項展開系數

% B_sym 第2,3,4,...元素依次是1,2,3...次諧波sin項展開系數

syms t  n  k  y 

T=5;

if nargin<4;Nf=input('plear Input 所需展開的最高諧波次數:');end

T=5;

if nargin<5;Nn=32;end

y=time_fun_s(t);

A0=2*int(y,t,0,T)/T;

As=int(2*y*cos(2*pi*n*t/T)/T,t,0,T);

Bs=int(2*y*sin(2*pi*n*t/T)/T,t,0,T);

A_sym(1)=vpa(str2double(char(A0)),Nn);

for k=1:Nf

%    A_sym(k+1)=double(vpa(subs(As,n,k),Nn));

   A_sym(k+1)=vpa(str2double(char(subs(As,n,k))),Nn);

%    B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn));

B_sym(k+1)=vpa(str2double(char(subs(Bs,n,k))),Nn);end

   if nargout==0 

      S1=fliplr(A_sym)                          %對A_sym陣左右對稱交換  

      S1(1,k+1)=A_sym(1)   %A_sym的1*k陣擴展為1*(k+1)陣

      S2=fliplr(1/2*S1)        %對擴展后的S1陣左右對稱交換回原位置

    S3=fliplr(1/2*B_sym)      %對B_sym陣左右對稱交換  

    S3(1,k+1)=0        %B_sym的1*k陣擴展為1*(k+1)陣

    S4=fliplr(S3)        %對擴展后的S3陣左右對稱交換回原位置

  S5=S2-i*S4;  

   N=Nf*2*pi/T;

    k2=0:2*pi/T:N;

   subplot(3,3,3)

    x=squ_timefun(t,T)   %調用連續時間函數-周期方波脈沖

    T=5;t=-2*T:0.01:2*T;

    plot(t,x)

    title('周期方波脈沖')

    axis([-10,10,-1,1.2])

    line([-10,10],[0,0])

    subplot(3,1,3)

    stem(k2,abs(S5));   %畫出周期方波脈沖的頻譜(脈寬a=T/2)

    title('周期方波脈沖的單邊頻譜')

    axis([0,60,0,0.6])

    end

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

function y=time_fun_s(t)

% 該函數是CTFSdbfb.m的子函數。它由符號變量和表達式寫成。

syms a a1

T=5;a=T/2;

y1=sym('Heaviside(t)')*2-sym('Heaviside(t-a1)');

y=y1-sym('Heaviside(t+a1)');

y=subs(y,a1,a);

y=simple(y);

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

function x=squ_timefun(t,T)

% 該函數是CTFSdbfb.m的子函數,它由方波脈沖函數寫成。

% t  是時間數組

% T  是周期    duty'占空比':信號為正的區域在一個周期內所占的百分

T=5;t=-2*T:0.01:2*T;duty=50;

x=square(t,duty);

S1 =

 

[ NaN, NaN, NaN]

 

 

S1 =

 

[ NaN, NaN, NaN]

 

 

S2 =

 

[ NaN, NaN, NaN]

 

 

S3 =

 

[ NaN, NaN, 0]

 

 

S3 =

 

[ NaN, NaN, 0]

 

 

S4 =

 

[ 0, NaN, NaN]

 

x =

  Columns 1 through 12

     1     1     1     1     1     1     1     1     1     1     1     1

  Columns 13 through 24

     1     1     1     1     1     1     1     1     1     1     1     1

  Columns 25 through 36

     1     1     1     1     1     1     1     1     1     1     1     1

  Columns 37 through 48

     1     1     1     1     1     1     1     1     1     1     1     1

、、、、、、

 


查看完整回答
反對 回復 2023-04-11
  • 1 回答
  • 0 關注
  • 292 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號