【发布时间】:2017-06-05 17:52:41
【问题描述】:
我想使用 Matlab 更改给定振荡信号 y(t) 的频率。
我们以正弦信号为例:
h = 0.01; %step width
t = 0:h:2*pi;
y = sin(2*pi*t);
这会生成频率为1 Hz 的正弦信号,假设t 以秒为单位。
是否可以在不使用y = sin(2*pi*x*t) 的情况下将信号y(t) 的频率更改为x Hz 的任意频率(因为我想要更改频率的实际信号没有通过解析给出)?
我真正想做的是比较不同频率的信号的信号形式,方法是将它们的频率更改为一个共同的频率并叠加它们。重要的是可以在相同的时间点评估不同的信号。
【问题讨论】:
-
你可以只使用 x Hz 的常用采样指标吗?
-
对于您的正弦示例,在正弦方程中添加
x是指定信号频率的唯一方法。这意味着您将在一秒钟内通过2*pi*x弧度。 -
您的信号是周期性的吗?如果它不是周期性的,则不能将其更改为更高的频率,而只能更改为较低的频率,否则您将缺乏信息
-
如果您的信号是周期性的并且您只想将其重新调整到更高的频率,这将是一个简单的第一次尝试:
y2=repmat(y,1,ceil(scaleFactor)); y2=y2(round(linspace(1,scaleFactor*length(y),length(y))));如果这没有帮助,您将需要提供信号示例你正在处理 -
您可以尝试为每个振荡信号按不同的量缩放绘图的水平轴(即时间)?例如
hold all; plot(t,y1); plot(t/2, y2)。从视觉上看,它与将 y2 的频率加倍具有相同的效果。
标签: matlab signals signal-processing numeric