【问题标题】:Changing the frequency of a signal using Matlab使用 Matlab 改变信号的频率
【发布时间】: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


【解决方案1】:

看起来您想要执行频率转换。这个话题很老了,你可以在很多地方找到讨论。例如。 https://www.dsprelated.com/showthread/comp.dsp/9996-1.php

【讨论】:

    猜你喜欢
    • 2016-04-25
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 2012-05-18
    • 2015-08-24
    • 2017-10-25
    • 1970-01-01
    相关资源
    最近更新 更多