我希望使用Matlab生成一个使用增加的参数f
从正弦转换为矩形的信号。
对于f = 0
,信号应该是正弦,而对于f = 1
,信号应该是具有相同频率的矩形信号。为了增加0
和1
之间的值,信号应该会增加,类似于矩形信号。
不幸的是,我不知道如何使用Matlab实现这一点。有谁知道怎么做?
我的想法是使用矩形信号的傅立叶级数,并且 - 取决于参数f
- 来考虑它的不同数量的加数。
答案 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)))
输出: