1. ホーム
  2. マットラボ

[解決済み] double 型の入力引数に対して未定義の関数 'symsum' が存在する。

2022-03-03 11:18:32

質問

矩形波信号と一様分布ノイズ信号の可変フーリエ級数を生成しようとしています。

これは私のコードですが、このようなエラーが発生しました。

入力引数が 'double' 型の場合、未定義の関数 'symsum' があります。

fs = 1000;       %Sampling  frequency Hz [1 1000]
l = 1 ;         %Signal length sec [1 10]

% Fourier Series Parameter
h = 1;    %Amplitude [0 10]; default 1
k =1 ;  %Fourier Series lenght(k);[1 21]

% Noise Signal specific parameters

h1 = 1;  %Amplitude (h); [0 10]; default: 1

%calculate signal
%x = 0:1/fs:L-1/fs; 

x = 0:1/fs:l-1; 

n = [1; Inf];
f(x) = 4*h/pi * symsum( (1./k) * sin((2*pi*k*x)),k,2*n-1,n); %Fourier series for a square wave signal

%uniformly distributed noise signaL
%Noise signal specific parameters
%Amplitude (h); [0 10]; default: 1
h2 = 1 ; % Noise Amplitude

sig_Noise = h2*(f(x) + sigma*randn(1,length(x))); %  signal with phase  & amplitude noise 

plot(x,f(x)) 

私のまとめはこちら 要約 どうすれば直せますか?

どのように解決するのですか?

これでうまくいくはずです。

fs = 1000; %Sampling Frequency Hz [1 1000]
l = 10; % Signal Length sec [1 10]
h = 1; % Amplitude [0 10] - Default 1
h2 = 1; % Noise Amplitude
sigma = 1;
x = 0:(1/fs):(l-1);

syms k;
syms f(x);
f(x) = 4*h/pi() * symsum((1/k)*sin(2*pi()*k*x),k,1,Inf); % Fourier series for a square wave signal

fplot(x,f(x));

実は、記号的な数学を扱いたい場合、記号的な変数を扱う必要があります。 syms キーワードを使用します。プロット用には fplot 関数を使用する必要があります。 plot .