how to calculate the convolution of two signal without using CONV() ?
287 次查看(过去 30 天)
显示 更早的评论
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 个评论
Image Analyst
2018-9-25
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.
采纳的回答
Dimitris Kalogiros
2018-9-25
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');
3 个评论
Allard Quek
2022-3-12
the first characters represent the colour and the second characters represent the shape:
'-b^': blue triangle
'-ro': red circle
'-ms': magenta square
更多回答(5 个)
Manoj Manu
2021-8-16
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');
Sk Group
2021-10-25
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/
0 个评论
Kiran K V
2022-6-28
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 个评论
Mehmet Eren Dikmen
2024-3-28
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
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Filter Design 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!