我想产生一个正弦波的减幅在一个固定的时间间隔

38视图(30天)
谁能告诉我怎样画一个正弦波的振幅10 5秒钟。振幅降到5 abd保持从5到10秒。10秒到15秒后,振幅进一步下降到3。

答案(3)

KSSV
KSSV 2022年3月22日
你可以进行类似下图:
t = linspace (0, 1000);
y = 0(大小(t));
idx = t < = 5;
y (idx) = 10 * sin (t (idx));
idx = t > 5 & t < = 10;
y (idx) = 5 * sin (t (idx));
idx = t > 10;
y (idx) = 3 * sin (t (idx));
情节(t, y)

Burhan Burak AKMAN
Burhan Burak AKMAN 2022年3月22日
您可以创建在for循环,
%,我们需要创建正弦波我使用2赫兹的频率可以改变
频率= 2;
%角速度
w = 2π* *频率;
%预先配置零波阵列的快速计算
波= 0 (1000);
%指数波
i = 1;
t = linspace (0, 1000)
如果t < = 5
振幅= 10;
elseift < = 10
振幅= 5;
elseift < = 15
幅值= 3;
结束
波(i) =振幅* sin (w * t);
我=我+ 1;
结束
情节(波)

山姆翟
山姆翟 2022年3月22日
编辑:山姆翟 2022年3月22日
因为没有指定波的频率和振幅下降是标题所提到的,这是另一个解决方案的竞争者,它提供了一个 光滑函数 产生一个 阻尼正弦波的振幅在指定的时间间隔 :
请注意 :方程来源于知识衰减正弦波。关键是要制定所需的指数衰减信封在指定的时间间隔
的参数是:
  • 振幅在最初的时间吗,
  • 振幅在最后的时间吗,
  • 是时间间隔。
%仿真设置
tStart = 0;%开始时间
往往= 20;%结束时间
stepSize = 0.01;%每个元素之间的大小
元素个数=长度(tStart: stepSize:往往);%的元素数量
%的方程
t = linspace (tStart,往往,元素个数);%元素的创建等间距的数量区间tStart,往往在x轴上
y = ((5 * exp(-(日志(5/3)/ 5)* (t - 5)) + 10 * exp(-(日志(2)/ 5)* t)) / 2 + ((5 * exp(-(日志(5/3)/ 5)* (t - 5)) - 10 * exp(-(日志(2)/ 5)* t)) / 2)。* (t - 5))迹象。* cos((2 *π/ 5)* t);
%创建一个2 d线情节和指定颜色、线型和线宽。
情节(t y“b -”,“线宽”,1.5);
网格;
yticks ([-10 5 0 3 5 10]);
包含(“t”);
ylabel (“y”);
标题(“顺利衰减正弦波”)
结果 :
如果你想生成多个峰值振幅相同的在指定的时间间隔,然后 @Burhan Burak AKMAN 广义的解决方案(这是建立在 @KSSV 的条件逻辑概念)是最接近你寻求什么。然而,条件逻辑可能会产生不连续的时间间隔周期的正弦信号时不一样的时间间隔的长度。

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!