では、本題に入りましょう。
MATLAB を使用して (i) 既知の係数に基づいてフーリエ級数を生成し、その後 (ii) インパルスが既知の場合に出力関数を決定しようとしています。
これまでのところ、このコードを使用してフーリエ級数を取得しました。
clear all
syms x k L n
evalin(symengine,'assume(k,Type::Integer)');
a = @(f,x,k,L) (2/(pi*k))* sin((pi*k)/(2 * L));
fs = @(f,x,n,L) (1/2*L) + symsum(a(f,x,k,L)*cos(k*2*pi*x/L),k,1,n);
f = x;
pretty(fs(f,x,11,1))
これは希望どおりに機能します。インパルス応答は次のようになります。
h = heaviside(x) * exp(-5*x);
ここで、関数を取得するために、それぞれの関数で畳み込みを実行する必要があります。しかし、次のように入力すると、エラーが発生します。
x1 = fs(f,x,1,1);
conv(h,x1)
Undefined function 'conv2' for input arguments of type 'sym'.
Error in conv (line 38)
c = conv2(a(:),b(:),shape);
どんな助けでもいただければ幸いです