how to calculate the convolution of two signal without using CONV() ?
Mostrar comentarios más antiguos
Hi everyone, i was wondering how to calculate the convolution of two sign without Conv();. I need to do that in order to show on a plot the process. i know that i must use a for loop and a sleep time, but i dont know what should be inside the loop, since function will come from a pop-up menu from two guides.(guide' code are just ready);
option = get(handles.popupmenu1,'value');
option2 = get(handles.popupmenu2,'value');
// something that switch the func.
conv(x,h);
//plot the conv.
4 comentarios
Image Analyst
el 25 de Sept. de 2018
For 1-D convolution, you need two for loops, one inside the other. What does "show on a plot the process" mean? What exactly are you going to plot? Why do you need to plot anything anyway? Is this homework? Why not simply use conv() and not do all this complicated, unnecessary stuff? (Actually the convolution is not that hard if you'd just try it.) What do you mean by "two guides"? Do you have 1 fig file, or two?
Synchro_mdn
el 25 de Sept. de 2018
Image Analyst
el 25 de Sept. de 2018
Not sure what that means. Why do you need a delay? Do you want to show a set of boxes representing the kernel moving along over the top of another set of boxes representing the signal? Doing the convolution is one thing (a really easy thing), but providing the animation, if that is what is required will be a lot harder.
Synchro_mdn
el 25 de Sept. de 2018
Respuesta aceptada
Más respuestas (5)
Manoj Manu
el 16 de Ag. de 2021
1 voto
close all
clearvars
%x=input('Enter x: ')
x=sin(2*pi*0.1.*(1:1:11));
%h=input('Enter h: ')
h=[1 2 3 4 5 3 1 -1];
% convolution
m=length(x);
n=length(h);
X=[x,zeros(1,n)];
H=[h,zeros(1,m)];
for i=1:n+m-1
Y(i)=0;
for j=1:m
if(i-j+1>0)
Y(i)=Y(i)+X(j)*H(i-j+1);
else
end
end
end
% plot results
figure;
subplot(3,1,1); stem(x, '-b^'); xlabel('n');
ylabel('x[n]'); grid on;
subplot(3,1,2); stem(h, '-ms');
xlabel('n'); ylabel('h[n]'); grid on;
subplot(3,1,3); stem(Y, '-ro');
ylabel('Y[n]'); xlabel('----->n'); grid on;
title('Convolution of Two Signals without conv function');
1 comentario
Royston Mendonca
el 24 de En. de 2022
what exactly is '-b^', '-ro' and '-ms' ?
Sk Group
el 25 de Oct. de 2021
1 voto
Convolution without conv function in MATLAB | Complete CODE | Explanation | Example And Output
For complete detailed post visit: https://www.swebllc.com/convolution-without-function-in-matlab/
Kiran K V
el 28 de Jun. de 2022
1 voto
clear all;
clc;
x = input ('Enter the first signal/sequence ');
h = input('Enter the second signal/sequence ');
Find the length of the individual signals, and thus the output
[~,L]= size (x);
[~,M] = size (h);
len y = L + M - 1
y = zeros (1, len_y);
len = 1:1en_y;
for i = 0 / l * eny
for j = 0/1 * eny
if ((i-j+1)>0 && (i-j+1)<=M && (j+1)<=L) y(i+1)=y(i+1)+x(j+1),^ * h(i-j+1);
end
end
end
disp (y)
stem (len, y)
1 comentario
Or Baron
el 31 de Jul. de 2022
what do you mean by y(i+1)=y(i+1)+x(j+1),^ * h(i-j+1); ? what does ,^ mean?
Muhammad
el 27 de Ag. de 2023
0 votos
1 2 3
-1 2 3
Mehmet Eren Dikmen
el 28 de Mzo. de 2024
0 votos
Hi guys i need to find a matlab code which can take 2 inputs of 2 different signals and generates and y(t) signal. This y(t) signal must be a another signal. So I'm basicaly looking for a signal for output. This is soooo urgent
Categorías
Más información sobre Programming en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

