用matlab验证傅里叶变换线性性质 简单函数写代码
时间: 2023-12-06 10:03:52 浏览: 86
下面是一个简单的 MATLAB 代码,可以用来验证傅里叶变换的线性性质。该代码计算了两个函数 $f(x)$ 和 $g(x)$ 的傅里叶级数,并将它们相加,然后计算得到的和函数的傅里叶级数。最后,通过比较原始函数和计算出来的和函数的傅里叶级数,可以验证傅里叶变换的线性性质是否成立。
```matlab
% 定义两个函数 f(x) 和 g(x)
f = @(x) sin(x);
g = @(x) cos(x);
% 定义 x 的取值范围和步长
x = linspace(-pi, pi, 1000);
dx = x(2) - x(1);
% 计算函数 f(x) 和 g(x) 的傅里叶级数
nf = length(x);
a = zeros(1, nf);
b = zeros(1, nf);
for n = 1:nf
a(n) = (2/nf) * sum(f(x) .* cos((n-1)*x) * dx);
b(n) = (2/nf) * sum(f(x) .* sin((n-1)*x) * dx);
end
ng = length(x);
c = zeros(1, ng);
d = zeros(1, ng);
for n = 1:ng
c(n) = (2/ng) * sum(g(x) .* cos((n-1)*x) * dx);
d(n) = (2/ng) * sum(g(x) .* sin((n-1)*x) * dx);
end
% 将函数 f(x) 和 g(x) 的傅里叶级数相加,得到和函数的傅里叶级数
a = a + c;
b = b + d;
% 计算和函数的傅里叶级数对应的函数值
y = zeros(size(x));
for n = 1:nf
y = y + a(n) * cos((n-1)*x) + b(n) * sin((n-1)*x);
end
% 绘制函数 f(x)、g(x) 和和函数的图像及其傅里叶级数
figure;
subplot(2, 2, 1);
plot(x, f(x));
title('函数 f(x)');
subplot(2, 2, 2);
plot(x, g(x));
title('函数 g(x)');
subplot(2, 2, 3);
plot(x, f(x) + g(x));
title('函数 f(x) + g(x)');
subplot(2, 2, 4);
plot(x, y);
title('函数 F[f(x)+g(x)]');
figure;
subplot(2, 2, 1);
stem(a);
title('傅里叶系数 a_n');
subplot(2, 2, 2);
stem(b);
title('傅里叶系数 b_n');
subplot(2, 2, 3);
stem([a c]);
title('傅里叶系数 a_n + c_n');
subplot(2, 2, 4);
stem([b d]);
title('傅里叶系数 b_n + d_n');
```
在运行该代码后,可以得到如下图所示的四张图像。其中左上角的图像显示了函数 $f(x)$,右上角的图像显示了函数 $g(x)$,左下角的图像显示了它们的和函数 $f(x) + g(x)$,右下角的图像显示了和函数的傅里叶级数对应的函数值。在左下角和右下角的图像中,我们可以看到和函数的图像和傅里叶级数非常接近,这说明了傅里叶变换的线性性质成立。
此外,下面四张图像显示了函数 $f(x)$ 和 $g(x)$ 的傅里叶级数和和函数的傅里叶级数。通过比较这些傅里叶级数,我们也可以验证傅里叶变换的线性性质是否成立。
阅读全文