convolution of 2 discrete signal

69 Ansichten (letzte 30 Tage)
HADIMARGO
HADIMARGO am 27 Jul. 2019
Beantwortet: Pramil am 21 Aug. 2024
hi. this is my code:
clc
clear all
n=-2:1:12;
nx = -2:8 ; nh = 0:12; % Set time vectors for x and h
x = usD(n-1) - usD(n-6); % Compute values of x
h = tri((nh-6)/4); % Compute values of h
y = conv(x,h); % Compute the convolution of x with h
ny=(nx(1) + nh(1)) + (0:(length(nx) + length(nh) - 2)) ;
subplot(3,1,1) ; stem(nx,x,'k','filled');
xlabel('n') ; ylabel('x'); axis([-2,20,0,4]);
subplot(3,1,2) ; stem(nh,h,'k','filled') ;
xlabel('n') ; ylabel('h'); axis([-2,20,0,4]);
subplot(3,1,3) ; stem(ny,y,'k','filled');
xlabel('n') ; ylabel('y'); axis([-2,20,0,4]);
function z = usD(n)
z = double(n >= 0); % Set output to one for non-
% negative arguments
I = find(round(n) ~= n); % Index non-integer values of n
z(I) = NaN ;
end
function d= tri(n)
....
....
....
end
in this code i want to stem conv(x,h). i need to define function tri in the last. can u help me.
the result:
  1 Kommentar
KALYAN ACHARJYA
KALYAN ACHARJYA am 27 Jul. 2019
Bearbeitet: KALYAN ACHARJYA am 27 Jul. 2019
Please do share tri function file. Is the x and h having same length?

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Pramil
Pramil am 21 Aug. 2024
Hi Hadimargo,
Based on your code, and result image, it looks like you want to create a triangular waveform. Here’s how you can define the "tri" function:
function d = tri(n)
% Create triangular waveform centered at zero
d = max(1 - abs(n), 0);
end
This function will generate a triangular waveform with a peak value of 1 and a base width of 2 units. You can adjust the function as needed to fit your specific requirements.
Here’s your complete code with the "tri" function defined:
clc
clear all
n = -2:1:12;
nx = -2:12; nh = 0:14; % Set time vectors for x and h
x = usD(n-1) - usD(n-6); % Compute values of x
h = tri((nh-6)/4); % Compute values of h
y = conv(x,h); % Compute the convolution of x with h
ny = (nx(1) + nh(1)) + (0:(length(nx) + length(nh) - 2));
subplot(3,1,1); stem(nx,x,'k','filled');
xlabel('n'); ylabel('x'); axis([-2,20,0,4]);
subplot(3,1,2); stem(nh,h,'k','filled');
xlabel('n'); ylabel('h'); axis([-2,20,0,4]);
subplot(3,1,3); stem(ny,y,'k','filled');
xlabel('n'); ylabel('y'); axis([-2,20,0,4]);
function z = usD(n)
z = double(n >= 0); % Set output to one for non-negative arguments
I = find(round(n) ~= n); % Index non-integer values of n
z(I) = NaN;
end
function d = tri(n)
% Create triangular waveform centered at zero
d = max(1 - abs(n), 0);
end
This should give you the desired convolution plot.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by