奇次谐波和偶次谐波图形
时间: 2024-02-14 08:17:19 浏览: 204
奇次谐波和偶次谐波是指正弦波的频率是基波频率整数倍的波形。奇次谐波的频率是基波频率的奇数倍,例如第三次谐波、第五次谐波等等。偶次谐波的频率是基波频率的偶数倍,例如第二次谐波、第四次谐波等等。在波形中,奇次谐波和基波的相位相同,而偶次谐波的相位与基波相差180度。通常,奇次谐波波形为对称的,而偶次谐波波形为非对称的。下面是奇次谐波和偶次谐波的简单示意图:
奇次谐波:
```
/\ /\ /\
/ \ / \ / \
/ \ / \ / \
_____/______\/______\/______\_____
```
偶次谐波:
```
/ \/ \/ \
/ \ / \
____/_________\____/__________\___
```
相关问题
继续写程序,续写上面的程序:e.合并从基波到十九次谐波的各奇次谐波分量。f.将上述波形分别画在一幅图中,可以看出它们逼近方波的过程。
以下是续写程序的代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 设置参数
A = 1.0 # 方波的幅值
T = 2.0 # 方波的周期
N = 20 # 谐波的个数
# 定义方波函数
def square_wave(x, A, T):
y = np.zeros_like(x)
y[x % T < T / 2] = A
y[x % T >= T / 2] = -A
return y
# 计算谐波分量的振幅
def amplitude(n):
return 4 * A / (np.pi * (2 * n - 1))
# 计算从基波到十九次谐波的各奇次谐波分量的波形
x = np.linspace(0, T, 1000)
y = np.zeros_like(x)
for n in range(1, N + 1):
if n % 2 == 1:
y += amplitude(n) * np.sin(2 * np.pi * (2 * n - 1) * x / T)
# 绘制波形图
plt.plot(x, square_wave(x, A, T), label='Square Wave')
plt.plot(x, y, label='Odd Harmonics')
for n in range(1, N + 1):
if n % 2 == 1:
plt.plot(x, amplitude(n) * np.sin(2 * np.pi * (2 * n - 1) * x / T), '--', label=f'{2*n-1}th Harmonic')
plt.legend()
plt.show()
```
运行程序,得到的图形如下:

在这幅图中,我们可以看到从基波到十九次谐波的各奇次谐波分量(虚线)在逐渐逼近方波(实线)。这是因为奇次谐波分量的周期是原始波形周期的整数倍,因此可以用较少的谐波分量来逼近原始波形。
matlab,周期信号的波形图如下图所示,E=1,T=π,试分别画出信号的两次谐波、五次谐波、十次谐波、二十次谐波、三十次谐波、五十次谐波叠加波形。
### MATLAB 中绘制周期信号的谐波叠加
对于给定周期信号 \( E = 1 \),\( T = \pi \),可以通过傅里叶级数展开来表示该周期信号并计算其不同次数的谐波分量。为了实现这一点,在 MATLAB 中定义时间向量 `t` 和频率变量 `n` 来构建所需的谐波项。
#### 定义时间和频率范围
首先创建一个合适的时间间隔用于绘图:
```matlab
t = linspace(0, 2*pi, 1000);
```
这行代码生成了一个从 0 到 \(2\pi\) 的线性分布的时间序列,共有 1000 个点[^1]。
#### 计算基频和谐波成分
设基频为 \(f_0=\frac{1}{T}\),则第 k 次谐波对应的角频率为 \(k*2*\pi*f_0=k/T\)。基于此,可以编写函数来累加指定数量的谐波分量:
```matlab
function y = harmonic_sum(t, num_harmonics)
% 初始化输出数组
y = zeros(size(t));
% 基本参数设定
E = 1;
T = pi;
for k = 1:num_harmonics
omega_k = (2*k-1)*pi/T; % 只考虑奇次谐波
% 添加当前谐波到总和中
y = y + (4*E/(pi*(2*k-1)))*sin(omega_k*t);
end
end
```
上述代码实现了对前 N 个奇次谐波(因为偶次谐波系数通常为零)求和的功能,并返回最终的结果作为输入时间 t 上的一系列幅度值。
#### 调用函数并作图
接下来调用上面编写的 `harmonic_sum()` 函数分别获取所需次数下的谐波合成波形数据,并利用 subplot 将它们排列在一个图形窗口内展示出来:
```matlab
figure('Name', 'Harmonic Summation Visualization');
subplot(3,2,1); plot(t, harmonic_sum(t, 2)); title('二次谐波');
subplot(3,2,2); plot(t, harmonic_sum(t, 5)); title('五次谐波');
subplot(3,2,3); plot(t, harmonic_sum(t, 10)); title('十次谐波');
subplot(3,2,4); plot(t, harmonic_sum(t, 20)); title('二十次谐波');
subplot(3,2,5); plot(t, harmonic_sum(t, 30)); title('三十次谐波');
subplot(3,2,6); plot(t, harmonic_sum(t, 50)); title('五十次谐波');
% 设置全局字体大小和其他属性以提高可读性和美观度
set(gcf,'DefaultAxesFontSize',8);
sgtitle(['周期信号(E=' num2str(E) ', T=' num2str(T) ')的各阶谐波叠加']);
```
这段脚本会依次显示二至五十次谐波叠加后的波形图像,帮助直观理解随着谐波数目增加时原始方波逐渐逼近的过程。
阅读全文
相关推荐
















