Use MATLAB built-in function conv() to compute and plot y[n]

3 Ansichten (letzte 30 Tage)
CHENG-YI LI
CHENG-YI LI am 28 Okt. 2018
Beantwortet: asad ali am 1 Mai 2021
my code is: clear all; close all; clc;
%first sequence x=[0, 1, 1, 1, 0, 0, 0]; %second sequence h=[1, 2, 4, 8, 16, 32, 64];
%built-in function
y= conv(x,h); disp('The convolution output is'); disp(y); and the command window is: >> k=[0, 1, 1, 1, 0, 0, 0]; >> >> y=[1, 2, 4, 8, 16, 32, 64]; >> >> z= conv(k,y); >> >> disp(z) 0 1 3 7 14 28 56 112 96 64 0 0 0
>> subplot(6,1,1);plot(k);subplot(6,1,2);plot(y);subplot(6,1,3);plot(z); >> subplot(6,1,1);stem(k);subplot(6,1,2);stem(y);subplot(6,1,3);stem(z); My problem is that the figure "欲2" where I make the code doesn't match the figure "欲" which the question gives. I have no idea if my code and the final figure"欲2" is right.
  5 Kommentare
CHENG-YI LI
CHENG-YI LI am 28 Okt. 2018
May you help me solve the problem?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Bruno Luong
Bruno Luong am 28 Okt. 2018
Bearbeitet: Bruno Luong am 28 Okt. 2018
I don't see what is the difficulty for you.
MATLAB array is 1-indexing, and CONV just do the work on array indices.
If you know the correspondence between indices and the [n] value, which obviously 0-base, therefore equal to (matlab indices-1), just shift the indices and plot with 2 arguments.
x = ...
h = ...
y = conv(x,h);
subplot(3,1,1);
stem(0:length(x)-1,x);
subplot(3,1,2);
stem(0:length(h)-1,h)
subplot(3,1,3);
stem(0:length(y)-1,y)

Weitere Antworten (1)

asad ali
asad ali am 1 Mai 2021
x = ...
h = ...
y = conv(x,h);
subplot(3,1,1);
stem(0:length(x)-1,x);
subplot(3,1,2);
stem(0:length(h)-1,h)
subplot(3,1,3);
stem(0:length(y)-1,y)

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by