【发布时间】:2015-04-25 22:50:52
【问题描述】:
我必须创建一个具有以下定义的函数:
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。如果未提供 amp,则应默认为 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 时,它看起来不像一个正弦函数,它看起来更像一个锯齿函数,非常尖锐。我做错了什么?
【问题讨论】:
标签: matlab