make function to shift discrete signal
Show older comments
hello I am currently studying DSP and using matlab . I build a function that shifting signals and the out put of this function is n and y for exmaple :
x=[ 2 3 0 -5 2 1 ]; n=-1:4;
and i want that y(n)=x(2-K)
and this is my code :
clc;
clear all;
x=[ 2 3 0 -5 2 1 ];
n=-1:4;
m=2;
k=-1
shifting_by_m (x,m,n,k)
stem(n,x)
and the function is :
function [n,x] =shifting_by_k (x,m,n,k)
if (k<0)
n=m+flip(-n) %%h(m-k)
x=flip(x)
else (k>0)
n=(-1)*(m-n)
x=x
end
end
the question is there a way to write in my main code '(2-k)' and that the function will get that m=2 and k<0 ?
3 Comments
Adam
on 26 Jun 2018
If your function only supports a scalar k then why don't you just pass in 2-k as that argument? Where k is whatever you want it to be in your original equation and within the function it is just the single shift - i.e. whatever you pass it, which would be the result of 2-k
tomer polsky
on 26 Jun 2018
Adam
on 27 Jun 2018
Why are you trying to pass '2-k' into a function? Just calculate 2-k and pass the result of that into the function as the desired shift.
Answers (0)
Categories
Find more on Signal Generation, Analysis, and Preprocessing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!