我必须使用以下定义创建一个函数:
function [ s1,s2,sums ] = sines( pts,amp,f1,f2 )
输出参数s1是行向量,其长度(元素数)等于pts。 s1的元素是正弦函数的值,当给出等间距的参数时,从零开始并延伸到正弦的f1周期。正弦波的幅度等于amp。矢量s2与s1相同,除了s2包含f2周期。向量和是s1和s2的总和。如果省略f2,则应将其设置为比f1大5%的值。如果f1也被省略,那么它应该设置为100.如果没有提供放大器,那么它应该默认为1.最后,如果省略了pts,那么它应该设置为1000.我已经完成了以下操作:
function [ s1,s2,sums ] = sines( pts,amp,f1,f2 )
if nargin == 3
f2 = f1 + (f1*0.05);
elseif nargin == 2
f1 = 100;
f2 = f1 + (f1*0.05);
elseif nargin == 1
amp = 1;
f1 = 100;
f2 = f1 + (f1*0.05);
elseif nargin == 0
pts = 1000;
amp = 1;
f1 = 100;
f2 = f1 + (f1*0.05);
end
t = 0:pts-1;
s1 = amp * sin( 2*pi*f1.*t );
s2 = amp * sin( 2*pi*f2.*t );
sums = s1 + s2;
end
结果看起来应该像频率调制正弦函数,但是当我绘制sums
它看起来不像正弦函数时,它看起来更像锯齿函数,非常尖锐。我做错了什么?
答案 0 :(得分:1)
您忘记将时间步长t
标准化为0-1。要分别获得f1
和f2
的{{1}}和s1
个句点
s2