Shifting a signal to the right or left
Afficher commentaires plus anciens
How can I shift a signal to the left or right? Is there any inbuilt command for it?
6 commentaires
SSG_newbiecoder
le 1 Fév 2018
Modifié(e) : SSG_newbiecoder
le 6 Fév 2018
Jos (10584)
le 6 Fév 2018
maybe you should give an example of the input and expected output?
SSG_newbiecoder
le 6 Fév 2018
Modifié(e) : SSG_newbiecoder
le 6 Fév 2018
mathematics
le 15 Sep 2019
Sk Group
le 24 Jan 2021
https://www.swebllc.com/signal-shift-function-in-matlab/
Réponses (6)
Jos (10584)
le 20 Sep 2019
x = 1:5
shift = 3
x = circshift(x,shift)
N = numel(x)
ix = (1:N) - shift
tf = ix < 1 | ix > N
x(tf) = 0
SSG_newbiecoder
le 20 Sep 2019
2 votes
Jos (10584)
le 1 Fév 2018
x = 1:10
k = 3
xs = circshift(x,k)
Manoj Kumar Koduru
le 23 Nov 2020
0 votes
clc;
close all;
L=input ('Enter the no.: ');
n=-L:L;
y=[zeros(1,L),1,zeros(1,L)];
if n >0
y(L+1:end) = n(1:end-L);
elseif n <0
y(1:end+L) = n(-L+1:end);
end
y
plot(n,y);
1 commentaire
Shukumar Pattnaik
le 10 Fév 2021
sir what is the use of line 5 ??
Sk Group
le 8 Fév 2021
0 votes
MATLAB CODE:
function [n1,x1] = sigshift(x,n,k)
n = 1:10;
k = 2;
x = exp(n);
if k>0
disp(‘Positive’);
n1 = n(1):n(end)+k;
x1 = [zeros(1,k) x];
else
disp(‘Negative’);
n1 = n(1)+k:n(end);
x1 = [x zeros(1,abs(k))]; % abs is for absolute value of (k) because quantity can never be (-ve) negative %
end
Sk Group
le 8 Fév 2021
0 votes
MATLAB CODE:
function [n1,x1] = sigshift(x,n,k)
n = 1:10;
k = 2;
x = exp(n);
if k>0
disp(‘Positive’);
n1 = n(1):n(end)+k;
x1 = [zeros(1,k) x];
else
disp(‘Negative’);
n1 = n(1)+k:n(end);
x1 = [x zeros(1,abs(k))]; % abs is for absolute value of (k) because quantity can never be (-ve) negative %
end
MATLAB CODE:
function [y n1] = sigfold(x,n)
n1 = -fliplr(n)
y = fliplr(x)
end
Catégories
En savoir plus sur Logical dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!