使用Matlab生成从正弦变换为矩形的信号

时间:2017-06-05 13:55:54

标签: matlab signals signal-processing numeric

我希望使用Matlab生成一个使用增加的参数f从正弦转换为矩形的信号。

对于f = 0,信号应该是正弦,而对于f = 1,信号应该是具有相同频率的矩形信号。为了增加01之间的值,信号应该会增加,类似于矩形信号。

不幸的是,我不知道如何使用Matlab实现这一点。有谁知道怎么做?

我的想法是使用矩形信号的傅立叶级数,并且 - 取决于参数f - 来考虑它的不同数量的加数。

1 个答案:

答案 0 :(得分:1)

您可以使用square生成周期为2π的纯方波。

你可以对方波和正弦波进行加权平均,作为路易斯在评论中建议的信号削波的替代方法。

t = 0:0.1:2*pi;
hold on
f = 0;    % entirely sine wave
plot(t, (square(t)*f + sin(t)*(1-f)))
f = 0.5;  % half and half
plot(t, (square(t)*f + sin(t)*(1-f)))
f = 1;    % entirely square wave
plot(t, (square(t)*f + sin(t)*(1-f)))

输出:

wave