如何在不使用MATLAB内置函数的情况下延迟自定义输入信号k秒?
信号延迟的实现方法
给定原信号:
u = @(t) cos(5*t)*sin(2*t)
要实现该信号延迟k秒,无需调用MATLAB预构建函数,最直接且高效的方法是直接修改匿名函数的自变量,将原函数中的t替换为t - k,得到延迟后的信号函数:
u_delayed = @(t) cos(5*(t - k))*sin(2*(t - k))
原理说明
信号延迟k秒的物理意义是:延迟后的信号在时刻t的取值,等于原信号在时刻t - k的取值。对于匿名函数这类基于表达式定义的信号,直接修改自变量的偏移量是最优方案——既不需要额外计算开销,也完全符合信号延迟的数学定义,同时避免了任何预构建函数的依赖。
比如当k=1时,延迟后的信号在t=3时的取值,就等于原信号在t=2时的取值,完全匹配延迟的需求。
内容的提问来源于stack exchange,提问作者Jonathan Frutschy
相关产品推荐
相关产品推荐

