用matlab将基频为50Hz的方波展为傅里叶级数
时间: 2024-02-23 11:01:46 浏览: 160
Matlab对波形进行傅里叶变换
好的,这是一个很经典的问题。基频为50Hz的方波可以表示为周期为20ms的函数:
```
f(t) = sign(sin(2*pi*50*t))
```
其中,`sign`函数表示符号函数,即输入为正数返回1,输入为负数返回-1,输入为0返回0。这个函数的傅里叶级数可以用以下公式表示:
```
f(t) = (4/pi) * (sin(2*pi*50*t) + (1/3)*sin(2*2*pi*50*t) + (1/5)*sin(3*2*pi*50*t) + ...)
```
你可以用MATLAB来计算这个级数。以下是一个简单的示例代码:
```
% 设置采样频率和采样时长
fs = 1000; % 采样频率为1kHz
T = 0.02; % 采样时长为20ms
% 生成采样时间点
t = 0 : 1/fs : T-1/fs;
% 计算傅里叶级数
n = 1 : 2 : 99; % 取奇数项
f = zeros(size(t));
for i = 1 : length(n)
f = f + (4/pi) * sin(2*pi*n(i)*50*t) / n(i);
end
% 绘制波形图
plot(t, f);
ylim([-1.5 1.5]);
xlabel('Time (s)');
ylabel('Amplitude');
title('50Hz Square Wave');
```
运行这个代码,你就可以看到一个基频为50Hz的方波的傅里叶级数展开的波形图。
阅读全文