
matlab中的数组索引不能是0 for n = 0:1:1108 x1(n+1)=00001xn(mod(n+1,length(xn))+1)+20cos(2pi4000n)+15cos(2pi25000n)+01randn;end
第一步,确定时间t的范围,即
t=0:001:025
第二步,将已知值,赋值给相应的变量。如
β1=1000,fm=100,τr=U(001,002)/100, f1=1700,Aj=U(08,1)
第三步,利用for循环语句进行累加,即
bt0=0;
for j=1:1000
bt=bt0+Ajexp(-β1(t-j/fm-τr))sin(2pif1(t-j/fm-τr))
end
第四步,使用plot函数。绘制t-b(t)时域图
如何用matlab求一周期函数的傅里叶系数?这个问题实际上是一个拟合系数a0,a1,b1, ,an,bn的问题。
1、求解之前,必须已知x和f(x) 一系列对应数据;
2、使用函数体自定义傅里叶函数,即
function y=func(a,x)
。。。。。。傅里叶函数表达式
end
3、使用随机数,初定拟合系数的初值,如
p0=rand(1,2n+1)
4、使用lsqcurvefit拟合函数,求解拟合系数p。即
p=lsqcurvefit(@func,p0,x,y);
这里,a0=p(1),a1=p(2),b1=p(3),
5、检验拟合精度,如相关系数R^2
6、使用plot函数,绘制原始数据和拟合数据对比图
上述为求解过程。
。。。这个函数还有周期? y = x0 + 1 ?? 周期是多少?老师你教教我吧。
如果是
x = linespace(0,1,100); (其实就是x = 0:1:100;)
y = sin(x) + 1;
直接
x = 0:1:1000;
y = sin(x) + 1;
plot(x, y)
就得了。
利用Matlab中的函数rectpuls(t,Width)可以产生宽度为Width的非周期矩形信号
%下面就是用rectpuls函数产生宽度为4的非周期矩形信号
t=-3:4/100:3;
w=rectpuls(t,4);
plot(t,w);
ylim([-05 15]);
grid on;
另外也可以用函数rectwin(N)产生N点的矩形窗函数
Square函数可以产生占空比可变的周期矩形信号
%产生周期为2的矩形信号,周期是通过2pi/pi计算得到,占空比为50%
t=-3:4/100:3;
y=square(pit,50);
plot(t,y);
grid
ylim([-15 15])
在这里周期应该是[0,r), 后边是开区间,然后下个周期为[r,2r), 否则v=r点就会出现两个值了。
程序如下,
clear; clc; close all;
R=27668e+003;
r=173225;
k=00400;
step_size=00001; %指数据精度,即步长
v_1period=0:step_size:r-step_size; % 在一个周期内v的取值
x_1period=Rexp(-kv_1period); % 在一个周期内x的取值
num_period=4; % 周期个数
x=[];
for i=1:num_period
x=[x x_1period];
end
v=0:step_size:r4-step_size;
plot(v,x);
xlabel('v'); ylabel('x');
哪里没看明白可以问我
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)