我对matlab编程有关正弦曲线的问题。
问题如下: 考虑定义:函数[s1,s2,sums] =正弦(pts,amp,f1,f2)。输入pts是一个整数,但是amp,f1和f2并不一定是整数。输出参数s1是行向量,其长度(元素数)等于pts。 s1的元素是正弦函数的值,当给出等间距的参数时,从零开始并延伸到正弦的f1周期。 (注意,我们要求整个周期,因此如果f1是一个整数,则s1的第一个和最后一个元素将是0而不是一个非常小的舍入误差。)正弦波的幅度等于amp。矢量s2与s1相同,除了s2包含f2周期。向量和是s1和s2的总和。如果省略f2,则应将其设置为比f1大5%的值。如果也省略了f1,则应将其设置为100.如果未提供放大器,则默认为1.最后,如果省略了pts,则应将其设置为1000.
这是我很困惑的:如何定义步长pts。我使用了以下方法,但它无法正常工作。请帮我解决。
function [s1, s2, sums] = sines(pts,amp,f1,f2)
.................
t = linspace(0, 1, pts);
s1=amp*sin(2*pi*f1*t);
s2=amp*sin(2*pi*f2*t);
感谢。
答案 0 :(得分:0)
至于您感到困惑的部分代码,这应该适合您:
n=pts-1
t=0:n;
s1=amp*sin(2*pi*f1/n*t);
s2=amp*sin(2*pi*f2/n*t);
然后你加上s1 + s2。如果有的话,你仍然需要处理丢失的输入。