Signals: Convolution
03-29-2016, 01:04 AM (This post was last modified: 11-14-2017 07:47 PM by toshk.)
Post: #1
 toshk Member Posts: 186 Joined: Feb 2015
Signals: Convolution
Extended convolution code found on this forum. StatisticVar1
BAR plots for digital convolution (ask HP to give us stem plot).
Can not plot zeros with Bar plot. Change from BAR plot to LINE plot if you want to see the zeros in the plot.
this code will do piece-wise functions convolution; (LINE plot)

03-29-2016, 01:23 AM (This post was last modified: 04-01-2016 01:13 AM by toshk.)
Post: #2
 toshk Member Posts: 186 Joined: Feb 2015
RE: Signals: Convolution
lets do some convolution now (digital).
square brackets [] digital signal representation NOT accepted.

conv({1,2,3,4,5},{10,9,,8,7,6,5,4,3,2,1})

conv({1,2,3,4,0,0,0,0},{1,0,1,0,1,0,0,0})

syntax for Piecewise function {} only!!!! CAS x only
{func1, range1, func2, range2,......}
{-x+2,x<1,2,1<=x<5,.5x+1,5>=x}
conv({-x+2,x<1,2,1<=x<5,.5x+1,5>=x},{1,0,1,0,1,0,0,0})

{0,x<-1,6*x+6,-1<=x<2,18,2<=x<7,0,7<=x}
conv({-x+2,x<1,2,1<=x<5,.5x+1,5>=x},{0,x<-1,6*x+6,-1<=x<2,18,2<=x<7,0,7<=x})
04-10-2017, 10:57 PM
Post: #3
 cperrinekc Junior Member Posts: 2 Joined: Aug 2016
RE: Signals: Convolution
(03-29-2016 01:04 AM)toshk Wrote:  Extended convolution code found on this forum. StatisticVar1
BAR plots for digital convolution (ask HP to give us stem plot).
Can not plot zeros with Bar plot. Change from BAR plot to LINE plot if you want to see the zeros in the plot.
this code will do piece-wise functions convolution; (LINE plot)

Code:
 #pragma mode( separator(.,;) integer(h32) ) SAMP(); Set1(); c1; export conv(v1,v2) begin  local p1,p2,var:="x_"; L0:=MAKELIST(X,X,-10,10,1); A:=5; purge(var); IF (TYPE(v1)==6 OR TYPE(v2)==6) THEN SAMP(v1,v2); ELSE p1:=poly2symb(v1,var);  p2:=poly2symb(v2,var); c1:=symb2poly(simplify(p1*p2),var);  END; Set1();  end; #cas SAMP(v1,v2) BEGIN local f1,f2; local n,k,fa1,fa2; L3:={};L2:={};L4:={};L7:={}; IF even(length(v1)) AND instring(string(v1),"x") THEN  L3:={};L2:={};L4:={};L7:={};L7:=v1; FOR n FROM 1 TO size(L7)/2 DO L2:= select((x)->L7(2*n),L0);fa1:=unapply(L7(2*n-1),x);  FOR k FROM 1 TO length(L2) DO L3(k):=fa1(L2(k));END; L4:=CONCAT(L4,L3); END; f1:=simplify(poly2symb(L4)); A:=4; ELSE f1:=poly2symb(v1,x); END; L3:={};L2:={};L4:={};L7:={}; IF even(length(v2)) AND instring(string(v2),"x") THEN L7:=v2; FOR n FROM 1 TO size(L7)/2 DO L2:= select((x)->L7(2*n),L0);fa2:=unapply(L7(2*n-1),x);  FOR k FROM 1 TO length(L2) DO L3(k):=fa2(L2(k));END; L4:=CONCAT(L4,L3); END; f2:=simplify(poly2symb(L4)); A:=4; ELSE f2:=poly2symb(v2,x); END; c1:=symb2poly(simplify(f1*f2),x);  L3:={};L2:={};L4:={};L7:={};        END; #end Set1() BEGIN startapp("Statistics 1Var"); D1:=mat2list(c1);D2:=MAKELIST(X,X,1,length(c1),1); Statistics_1Var.H1:={'D1','D2',A}; CHECK(1); startview(1,1); END;
04-10-2017, 10:59 PM
Post: #4
 cperrinekc Junior Member Posts: 2 Joined: Aug 2016
RE: Signals: Convolution
I have been trying to add this code to my HP prime calculator, but i keep getting an error at the line where you have SAMP (v1,v2). Any ideas on how to fix this or what may be going wrong?
04-11-2017, 07:19 AM
Post: #5
 toshk Member Posts: 186 Joined: Feb 2015
RE: Signals: Convolution
(04-10-2017 10:59 PM)cperrinekc Wrote:  I have been trying to add this code to my HP prime calculator, but i keep getting an error at the line where you have SAMP (v1,v2). Any ideas on how to fix this or what may be going wrong?
Line 2: just after #pragma mode( separator(., integer(h32) )