0001 function sig_mod = DynamicX_varying_model(Name,n);
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048 N = n;
0049 sig = MakeSignal(Name,N);
0050
0051 sig_old = sig;
0052
0053
0054 t = (1:N)./N;
0055 if strcmp(Name,'HeaviSine'),
0056 signal = (1+randn*.05)*4.*sin(4*pi.*t*(1+randn*.02));
0057 signal = signal - sign(t - .3*(1+randn*.01)) - sign(.72*(1+randn*.01) - t);
0058
0059 elseif strcmp(Name,'Doppler'),
0060 sig = sqrt(t.*(1-t)).*sin((2*pi*1.05) ./(t+.05));
0061 signal = (1+randn*.02)*sqrt(t.*(1-t)).*sin((2*pi*1.05*(1+randn*.02)) ./(t+.05*(1+randn*.02)));
0062
0063 elseif strcmp(Name,'Ramp')
0064 sig = t - (t >= .37);
0065 signal = (1+randn*.05)*t - (t >= .37*(1+randn*.02));
0066 elseif strcmp (Name,'Blocks')
0067 pos = [ .1 .13 .15 .23 .25 .40 .44 .65 .76 .78 .81];
0068 hgt = [4 (-5) 3 (-4) 5 (-4.2) 2.1 4.3 (-3.1) 2.1 (-4.2)];
0069 sig = zeros(size(t));
0070 for j=1:length(pos)
0071 sig = sig + (1 + sign(t-pos(j))).*(hgt(j)/2) ;
0072 end
0073 signal = sig;
0074 for j=1:length(pos)-1
0075 rand_s = randn;
0076 wt = (1+rand_s*.1);
0077 wt = 1+randsrc*rand*.2;
0078 signal(ceil(pos(j)*N):floor(pos(j+1)*N)) = signal(ceil(pos(j)*N):floor(pos(j+1)*N))*wt;
0079 end
0080
0081 elseif strcmp(Name,'Piece-Polynomial'),
0082 n = N;
0083 t = (1:fix(n/5)) ./fix(n/5);
0084 sig1=20*(t.^3+t.^2+4)*(1+(randn*.1));
0085 sig3=40*(2.*t.^3+t)*(1+(randn*.1)) + 100*(1+(randn*.05));
0086 sig2=10.*t.^3*(1+(randn*.05)) + 45*(1+(randn*.1));
0087 sig4=16*t.^2+8.*t*(1+randn*.1)+16*(1+(randn*.05));
0088 sig5=20*(t+4)*(1+(randn*.1));
0089 sig6(1:fix(n/10))=ones(1,fix(n/10))*(1+(randn*.1));
0090 sig6=sig6*20*(1+(randn*.05));
0091 sig(1:fix(n/5))=sig1;
0092 sig(2*fix(n/5):-1:(fix(n/5)+1))=sig2;
0093 sig((2*fix(n/5)+1):3*fix(n/5))=sig3;
0094 sig((3*fix(n/5)+1):4*fix(n/5))=sig4;
0095 sig((4*fix(n/5)+1):5*fix(n/5))=sig5(fix(n/5):-1:1);
0096 diff=n-5*fix(n/5);
0097 sig(5*fix(n/5)+1:n)=sig(diff:-1:1);
0098
0099 sig((fix(n/20)+1):(fix(n/20)+fix(n/10)))=ones(1,fix(n/10))*10;
0100 sig((n-fix(n/10)+1):(n+fix(n/20)-fix(n/10)))=ones(1,fix(n/20))*150;
0101
0102 bias=sum(sig)/n;
0103 sig=sig-bias;
0104 signal = sig;
0105 end
0106
0107 sig_mod = signal;
0108
0109
0110
0111
0112
0113
0114
0115
0116