Post Reply 
Signals: Convolution
03-29-2016, 01:04 AM (This post was last modified: 11-14-2017 07:47 PM by toshk.)
Post: #1
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)

.hpprgm  Convd.hpprgm (Size: 5.78 KB / Downloads: 14)
Find all posts by this user
Quote this message in a reply
03-29-2016, 01:23 AM (This post was last modified: 04-01-2016 01:13 AM by toshk.)
Post: #2
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})
Find all posts by this user
Quote this message in a reply
04-10-2017, 10:57 PM
Post: #3
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;
Find all posts by this user
Quote this message in a reply
04-10-2017, 10:59 PM
Post: #4
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?
Find all posts by this user
Quote this message in a reply
04-11-2017, 07:19 AM
Post: #5
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(.,Wink integer(h32) )
instead of SAMP() try SAMP(v1,v2)
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)