Matlab 用数值方法近似计算三角波信号的频谱,代码有问题,求大神指教

题目是:试用数值方法近似计算三角波信号的频谱图示三角波可表示为:f1(t)=(1-|t|)[u(t+1)-u(t-1)]三角波信号频谱的理论值为:F(jw)=Sa... 题目是:
试用数值方法近似计算三角波信号的频谱
图示三角波可表示为:f1(t)=(1-|t|)[u(t+1)-u(t-1)]
三角波信号频谱的理论值为:F(jw)=Sa²(w/2)
答案是:
function y=sf1(t,w);
y=(t>=1&t<=1).*(1-abs(t)).*exp(j*w*t);
w=linspace(-6*pi,6*pi,512);
N=length(w);F=zeros(1,N);
for k=1:N
F(k)=quad('sf1',-1,1,[],[],w(k));
end
figure(1);
plot(w,real(F));
xlable('\omega');
ylabel('F(j\omega)');
figure(2);
plot(w,real(F)-sinc(w/2/pi).^2);
xlabel('\omega');
title('计算误差');
但是这个答案里有三个错误。一个错误是虚数j貌似前面要加个系数1?另一个错误是第一句最后不用加分号?还有个错误是运行下来提示:
>> sf1
Error using sf1 (line 2)
Not enough input arguments.
这个要怎么改啊??求指教,谢谢!
展开
 我来答
huangong
2012-06-11 · TA获得超过5859个赞
知道大有可为答主
回答量:4703
采纳率:40%
帮助的人:1563万
展开全部
function y=sf1(t,w);
y=(t>=1&t<=1).*(1-abs(t)).*exp(j*w*t);
这两句要做成 函数,放m文件里

改:y=(t>=-1&t<=1)
其他放命令窗中
w=linspace(-6*pi,6*pi,512);
N=length(w);F=zeros(1,N);
for k=1:N
F(k)=quad('sf1',-1,1,[],[],w(k));
end
figure(1);
plot(w,real(F));
xlable('\omega');
ylabel('F(j\omega)');
figure(2);
plot(w,real(F)-sinc(w/2/pi).^2);
xlabel('\omega');
title('计算误差');
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式