필터 지우기
필터 지우기

Signals Question difference equation: Write a function y=diffeqn(a,x,yn1) which computes the output y[n] determined by the first-order system y[n]=ay[n-1]+x[n]

조회 수: 2 (최근 30일)
I need to Write a function y=diffeqn(a,x,yn1) which computes the output y[n] of the causal system determined by the first-order autoregression system y[n]=ay[n-1]+x[n] The input vector x, contains x[n] for 0 ≤ n ≤ N − 1 and yn1 supplies the value of y[-1]. The output vector y contains y[n] for 0 ≤ n ≤ N − 1.
Note that y[−1] is necessary for computing y[0], which is the first step of autoregression. Use a for loop in your M-file to compute
  댓글 수: 5
Rick Rosson
Rick Rosson 2014년 9월 11일
I don't think you need a function within a function. Instead, you need a function that computes y as required and then a script that calls your function once or perhaps several times to test out your function.

댓글을 달려면 로그인하십시오.

채택된 답변

Image Analyst
Image Analyst 2014년 9월 11일
Hint, in test.m have both of these functions.
function test()
a = 10; % For example.
x = randi(9, 1, 7); % 1 by 7 array of integers
yn1 = 5; % For example.
yOut = diffeqn(a, x, yn1);
function [y, yn] =diffeqn(a,x,yn1)
for k = 1 : length(x)
y(k) = .....
end
% Not sure exactly what is meant by y[n], so return the full the y and y(n), i.e. the last element by itself.
yn = y(end);
Good luck.
  댓글 수: 3
Rick Rosson
Rick Rosson 2014년 9월 11일
편집: Rick Rosson 2014년 9월 11일
Since y(k) depends on y(k-1), the lower limit on the for loop should be 2 instead of 1. Otherwise, the code will trigger an error or you will need an if...else... block inside the loop (to handle the first element as a special case), which is not ideal.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Rick Rosson
Rick Rosson 2014년 9월 11일
편집: Rick Rosson 2014년 9월 11일
Here's a start. Create a file called diffeqn.m and insert the following code:
function y = diffeqn(a,x,yn1)
% Number of rows:
N = size(x,1);
% Pre-allocate:
y = zeros(N,1);
y(1) = ...
for k = 2:N
...
...
...
end
end

카테고리

Help CenterFile Exchange에서 Measurements and Feature Extraction에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by