t0=datenum(2013,1,1,0,0,0)
dt=1/24
tf=datenum(2013,12,31,23,0,0)
T=t0:dt:tf
dv = datevec(T)
C=mat2cell(dv(1:end,1:5),ones(length(T),1),5)
S=cellfun(@(t){sprintf('%4i_%02i_%02i_%02i%02i_02',t)},C)
S1=cell2mat(S)
生成的结果,S是cell数组,每个元素对应一个时间;S1是字符矩阵,每行对应一个时间。
1选5个移位寄存器
其实我也不知道这名字正不正确,反正就是z分之1那个
按顺序排列好,其中第二个初始条件(initial
conditions)设置为0,其他的默认为1.
2
先把这5个移位寄存器链接起来
第一个输出连第二个输入,以此类推到第五个接out,out这里再接一个scope以便观察信号波形
3
选一个logical
operator,并从设置中调成xor,4输入端
4
继续连线,xor的输出端接第一个移位寄存器的输入端;然后把xor输入端引到第二个移位寄存器和第三个移位寄存器的连线上,此时xor还有3个输入端,分别像刚刚那样分别引到第三和第四,第四和第五,第五和out的线上
5
点击运行
scope中显示的便是m序列,看吧
周期是31,1的个数比0多一个,而且没有重复波形!
不知道你要编程的还是simulink的....
y=0.03 0.14 0.01 0.20 0.09 0.12 0.11 0.20 0.23 0.20 0.14 0.12 0.17 0.13 0.07 0.10就是上面代码的yt,你可以这么写:
clc,clear
y=[0.03 0.14 0.01 0.20 0.09 0.12 0.11 0.20 0.23 0.20 0.14 0.12 0.17 0.13 0.07 0.10]
yt=y'n=length(yt)
alpha=[0.2 0.5 0.8]m=length(alpha)
yhat(1,1:m)=(yt(1)+yt(2))/2
for i=2:n
yhat(i,:)=alpha*yt(i-1)+(1-alpha).*yhat(i-1,:)
end
yhat
err=sqrt(mean((repmat(yt,1,m)-yhat).^2))
xlswrite('lilv.xls',yhat)
yhat2014=alpha*yt(n)+(1-alpha).*yhat(n,:)
x是时间,在这里没什么用
最后运行结果是:
yhat =
0.08500.08500.0850
0.07400.05750.0410
0.08720.09880.1202
0.07180.05440.0320
0.09740.12720.1664
0.09590.10860.1053
0.10070.11430.1171
0.10260.11210.1114
0.12210.15610.1823
0.14370.19300.2205
0.15490.19650.2041
0.15190.16830.1528
0.14560.14410.1266
0.15040.15710.1613
0.14640.14350.1363
0.13110.10680.0833
err =
0.06320.06430.0718
yhat2014 =
0.12490.10340.0967
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)