我正在尝试为方波信号和均匀分布的噪声信号生成可变傅立叶级数。
这是我的代码,我有这个错误
未定义的功能' symsum'对于' double'类型的输入参数。
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))
我的总结在这里Summation 我该怎么解决?
答案 0 :(得分:1)
这应该可以解决问题:
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
。