how to do implement difference equation in matlab

122 次查看(过去 30 天)
Hi i am stuck with this question
Write a MATLAB program to simulate the following difference equation 8y[n] - 2y[n-1] - y[n-2] = x[n] + x[n-1] for an input, x[n] = 2n u[n] and initial conditions: y[-1] = 0 and y[0] = 1
(a) Find values of x[n], the input signal and y[n], the output signal and plot these signals over the range, -1 = n = 10.
The book has told to user filter command or filtic
my code is down kindly guide me about initial conditions
  5 个评论
Fangjun Jiang
Fangjun Jiang 2011-11-15
编辑:Walter Roberson 2021-3-5
My advice:
2. Use proper punctuation mark, e.g. comma, period, question mark.
3. Read your own question again after posting, e.g. what is x[n] = 2n u[n]?
4. Update your question with comments, not answers.

请先登录,再进行评论。

回答(3 个)

Honglei Chen
Honglei Chen 2011-11-14
I think your b is incorrect, it should be [1 1] instead. To accommodate for the initial value of y and x, you need to translate them into the corresponding filter state. filter command is an implementation of direct form II transpose, so you can use filtic to convert y and x to the state.
Here is an example, where n runs from 1 to 10. Based on you example, x[0] is 1.
n = 1:10;
a = [8 -2 -1];
b = [1 1];
yi = [1 0];
xi = 1;
zi = filtic(b,a,yi,xi)
y = filter(b,a,2.^n,zi)
BTW, I doubt if the input is really 2.^n as this becomes unbounded very quickly. Are you sure it's not 2.^(-n)?
HTH
  8 个评论
Divya K M
Divya K M 2020-5-9
移动:DGM 2023-2-26
output of difference equation should be discrete but the output waveform is coming continuous
Aditya Kumar Singh
Aditya Kumar Singh 2020-11-17
移动:DGM 2023-2-26
use stem instead of plot... you should get the correct waveform after that

请先登录,再进行评论。


Mohazam Awan
Mohazam Awan 2017-10-10
%%DSP LAb Task 4
% Difference equation implementation in matlab
%
clc
clear all
close all
% using filter function
n=-5:1:10;
index=find(n==0);
x=zeros(1,length(n));
x(index)=1;
subplot(2,2,1)
stem(n,x)
grid on
axis tight
b=[1 0];
a=[1 -2];
y=filter(b,a,x);
subplot(2,2,2)
stem(n,y,'filled','r')
grid on
axis tight
% Now without filter function
y1=zeros(1,length(n));
for i=1:length(n)
if(n(i)<0)
y1(i)=0;
end
if (n(i)>=0)
y1(i)=2*y1(i-1)+x(i);
end
end
subplot(2,2,3)
stem(n,y1,'filled','k')
grid on
axis tight
  2 个评论
Divya K M
Divya K M 2020-5-9

Is this code for given question if so means can I explain

Daniel
Daniel 2024-3-27
Why do you use negative samples in the n vector? I am trying to use only positve samples and it doesnt work

请先登录,再进行评论。


Fangjun Jiang
Fangjun Jiang 2011-11-14
It might be a filter. But I thought all the assignment was asking you to do is to write a for-loop to generate the y series data based on the equation and the initial conditions.
  1 个评论
moonman
moonman 2011-11-14
移动:DGM 2023-2-26
no book has told to use filter is my code correct?? How to cater for initial conditions y[-1]=0 and y[0]=1

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matched Filter and Ambiguity Function 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by