Test 2

$RecursionLimit:=100000

fS=.

Définitions

n:=32

nn=(2^n)

normalize[i_]:=i-nn*Sign[i]*⌊((Abs[i]+nn/2+(Sign[i]-1)/2)/nn)⌋

oplus[i_,j_]:=normalize[i+j]

ominus[i_,j_]:=normalize[i-j]

Signaux de sortie

y1[t_]:=r1[t]/;t≥0
y1[t_]:=0/;t<0

y2[t_]:=r2[t]/;t≥0
y2[t_]:=0/;t<0

Signaux d’entrée

x1=.

x2=.

Signaux d’entrée utilisateur

us1=.

us2=.

Signaux intermédiaires

p1[t_]:=IntegerPart[oplus[1,IntegerPart[BitAnd[IntegerPart[ominus[IntegerPart[k1*us1[t]],1]],65535]]]]/;t≥0
p1[t_]:=0/;t<0

p2[t_]:=0.01*us2[t]/;t≥0
p2[t_]:=0/;t<0

r1[t_]:=x1[t]+p2[t]*r1[t-p1[t]]/;t≥0
r1[t_]:=0/;t<0

r2[t_]:=x2[t]+p2[t]*r2[t-p1[t]]/;t≥0
r2[t_]:=0/;t<0

Constante

k1:=0.001*Min[192000,Max[1,fS]]

Tests

tmax:=16000

x1[t_]:=If[t≥0,10*Sin[Pi*t/2000],0]

x2[t_]:=If[t≥0,500*Cos[Pi*t/2000],0]

us1[t_]:=If[t≥0,500*(1+Sin[6*t]),0]

us1[t_]:=500

us2[t_]:=If[t≥0,50*(1+Sin[6*t]),0]

us2[t_]:=50

fS:=11025

y1[2]

p2[1]

Plot[{x1[t],y1[t]},{t,0,tmax}]

Plot[{x2[t],y2[t]},{t,0,tmax}]