Matlab 用数值方法近似计算三角波信号的频谱,代码有问题,求大神指教
Q = QUAD8(FUN,A,B,TOL,TRACE),其中A和 B为区间,tol为误差,可以忽略,Trace为量化步长,可以忽略
Q = QUAD8(FUN,A,B,TOL,TRACE,P1,P2,...)
修改为
F(k) = quad8(‘f',-2,2,,w(k));
%产生峰值为1的三角波,分析其0~63次谐波的幅值谱和相位谱
clf;
Fs =128;%采样频率
T = 1/Fs;% 采样周期
N = 128;% 采样点数
t = (0:N-1)*T;% 时间,单位:S
x=zeros(N);
for n=0:N-1
b=fix((n)/(N/4));
Y=fft(y,512);
F =10*f*[0:256]/512;
fp=2*sqrt(Y.*conj(Y));%幅度谱
xp=angle(Y); %相位谱
gl=abs(Y).^2; %功率谱
magif=ifft2(abs(f2));%幅度重构
pha=angle(f2);%取相位
phaif=ifft2(exp(j*pha));%相位重构
数据是x(i),共N个点,采样频率是fsample
扩展资料 :
信号源有很多种,包括正弦波信号源,函数发生器、脉冲发生器、扫描发生器、任意波形发生器、合成信号源等。一般来讲任意波形发生器,是一种特殊的信号源,综合具有其它信号源波形生成能力,因而适合各种仿真实验的需要。
传统都认为信号源主要给被测电路提供所需要的已知信号(各种波形),然后用其它仪表测量感兴趣的参数。可见信号源在电子实验和测试处理中,并不测量任何参数而是根据使用者的要求,仿真各种测试信号,提供给被测电路,以达到测试的需要。
参考资料来源:百度百科-三角波信号
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('计算误差');
佛博卫可: Q = QUAD8(FUN,A,B,TOL,TRACE),其中A和 B为区间,tol为误差,可以忽略,Trace为量化步长,可以忽略 Q = QUAD8(FUN,A,B,TOL,TRACE,P1,P2,...) 修改为 F(k) = quad8('f',-2,2,,w(k));
台江县13430271425: Matlab 用数值方法近似计算三角波信号的频谱,代码有问题,求大神指教 - ?
佛博卫可: 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:NF(k)=quad('sf1',-1,1,[],[],w(k)); end figure(1); plot(w,real...
台江县13430271425: 用matlab求π的近似值 π/4=1 - 1/3+1/5 - 1/7……直到某一项的绝对值小于10^ - 6 - ?
佛博卫可: 如下: y=0; for n=1:1000000%%% xx=(-1)^(n-1)/(2*n-1); if abs(xx)>10^(-6) y=y+xx; else break end end fprintf('π的近似值为%.6f ,共需迭代%d步\n',y*4,n). 介绍MATLAB和Mathematica、Maple并称为三大数学软件.它在数学类科技应用软件...
台江县13430271425: 如何用matlab 数值法算这个积分 - ?
佛博卫可: 程序: fun=sin(0.5*pi*x./y);%% a=int(int(fun,y,sqrt(x),x),x,1,2); b=simple(a) %化简 I=vpa(b,4) %得到4位近似解,也可以任意N位解 结果: I = 0.2719
台江县13430271425: 帮忙用MATLAB做个小题目,后面还有题,帮忙做个题,用MATLAB.用三种数值计算方法计算π - ?
佛博卫可:[答案] clear all;digits(30);% 割圆法 pi = 6*2^(n+1)*S(n+1)=3*2^n*a(n), a(n)为边长n = 10;syms a;for i = 1:n a = sqr...
台江县13430271425: 求大神指导用MATLAB求近似值的问题(跪求) - ?
佛博卫可: 使用图中给出的递推公式计算: n = 8; S = zeros(n+1,1); S(1) = log(6)-log(5); for i = 2 : n+1,S(i) = 1/i - 5 * S(i-1); end S(1) = []; num2str(S,'%.3f')得到的结果为 ans =-0.4122.391-11.70758.734-293.5051467.667 -7338.211 36691.166 但如果...
台江县13430271425: matlab7.0用数值法解三角函数方程 - ?
佛博卫可: 用割线法求解三角函数方程 x^4-3*x^3+5*cos(x)+8=0,在区间【0,4】内的一个解. 首先,建立自定义函数文件,保存在当前文件夹内.即 fun.m function y = fun(x) y=x^4-3*x^3+5*cos(x)+8; end 然后,建立用割线法的数值方法编写的运行代码文件,保存在当前文件夹内.即 secant.m 最好,在当前命令窗口下执行下列语句. >> x0=0;x1=4;tol=1.0e-5;secant(x0,x1,tol) (回车) %说明: x0为初值,;x1为终值,tol为误差值 得到如下解 n = 19 即计算次数 ans = 2.8642 即x值
台江县13430271425: 如何使用matlab求解非线性方程组的所有整数解 - ?
佛博卫可: 用fsolve函数,它有三种算法可以选择.具体的可以看看MATLAB的帮助文档,里面的介绍相当详细,这里不说了. 还可以用fzero函数,这个函数是采用二分法进行数值计算的. 以上两种函数的都是用数值方式解方程,而采用不同的算法会得到不同的答案
台江县13430271425: matlab中的匿名函数怎么写? - ?
佛博卫可: 匿名函数写法为func=@(x)2*x; 其中x为函数参数,2*x为函数. 数值积分是指用数值方法进行积分计算,是一种近似计算的方法,求得的是近似解,具体可以看《数值分析》. 而符号积分是指先运用不定积分求出被积函数的不定积分形式,然后带入上下限的值,求得的是准确解. 但是有些函数的不定积分求不出,所以才发明了函数积分的数值计算方法. 望采纳.
台江县13430271425: 如何不用线性规划解二元线性不等式组 - ?
佛博卫可: 线代里有线性规划么?记不得了.这就是数值近似方法,用matlab迭代计算即可.线性规划模块在matlab中很成熟