如何在Matlab中生成区间[-T/2, T/2]的归一化半正弦波
解决方法
调整时间范围后,原有的正弦表达式不再适配新的区间,需要重新推导波形公式,修改后的完整代码如下:
Rc = 1e3; T = 1/Rc; Fs = 2e3; % 采样频率 dt = 1/Fs; over = Fs/Rc; % 采样因子 - 2 sps = 10; time = -T/2 : dt/sps : T/2; % 调整时间范围到 [-T/2, T/2] % 重新推导半正弦波形:将time映射到[0, T]区间,对应角度[0, pi] half_Sine = sin(pi*(time + T/2)/T).^3; figure(1); plot(time./T, half_Sine, 'b--o'); % 时间轴用 time/T 表示 grid on xlabel('time/T','FontSize',13); ylabel('a(t)','FontSize',13);
关键调整说明:
- 时间向量:直接设置为
-T/2 : dt/sps : T/2,覆盖目标时间范围。 - 波形表达式:原公式
sin(pi*time/(2*T)).^3是基于time∈[0,2T]设计的,对应角度范围[0,pi]。现在通过time + T/2将时间平移到[0,T],再用pi*(...)/T映射到[0,pi],让波形在-T/2处从0开始,到0处达到峰值1,再到T/2处回到0,符合半正弦形态。 - 时间轴显示:绘图时用
time./T作为x轴数据,将时间轴归一化到[-0.5, 0.5],满足要求。
内容的提问来源于stack exchange,提问作者Rory
相关产品推荐
相关产品推荐

