用matlab写一个35hz方波的合成与分解
时间: 2023-11-21 12:06:32 浏览: 96
生成35Hz方波的代码如下:
```
fs = 1000; % 采样率
T = 1/35; % 方波周期
t = 0:1/fs:T-1/fs; % 时间序列
x = square(2*pi*35*t); % 生成35Hz方波
plot(t, x);
xlabel('Time (s)');
ylabel('Amplitude');
```
分解35Hz方波的代码如下:
```
N = 50; % 分解的谐波数
f = (1:N)*35; % 谐波频率
A = zeros(N, 1); % 谐波幅值
for n = 1:N
A(n) = 4/pi/n; % 计算谐波幅值
end
y = zeros(size(t)); % 分解后的方波
for n = 1:N
y = y + A(n)*sin(2*pi*f(n)*t); % 累加谐波分量
end
plot(t, x, t, y);
xlabel('Time (s)');
ylabel('Amplitude');
legend('Original', 'Decomposed');
```
这里采用的是傅里叶级数分解的方法,根据公式可以计算出每个谐波分量的幅值。最后将所有谐波分量加起来,得到分解后的方波。
阅读全文