[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Question on defining a digital signal x[n]
From: |
Juan Pablo Carbajal |
Subject: |
Re: Question on defining a digital signal x[n] |
Date: |
Wed, 8 May 2013 21:54:32 +0200 |
On Wed, May 8, 2013 at 9:38 PM, Oceanic <address@hidden> wrote:
> Hello,
>
> Some background - I am currently teaching myself DSP and have recently taken
> a Signals & Systems course.
> As part of the process I am also learning how to use Octave.
>
> As a learning exercise I am going back to see if I can use Octave instead of
> pen-and-paper to go through past examples and exercises. I will probably be
> asking a lot of questions and hopefully I can can get some help. I would
> like to make a preemptive apology for the noob questions
>
> So first question:
>
> I have a digital signal described as follows:
> x[n] = 0, when n <= -3 and when n >= 2
> x[n] = 1, otherwise
>
> I described the signal successfully (at least a window of the signal, since
> it extends to +ve and -ve infinity) using the following code (contents of .m
> file below):
>
> y = ones(1,20);
> x = [-10:9];
> n = length(x);
> for i = 1:n
> if x(i) <= -3 | x(i) >= 2
> y(i) = 0;
> end
> end
>
> stem(x,y)
> axis([-15 15 -1 1.5])
>
> My question is - Is there a more efficient way to describe this signal
> (probably without having to use a for-loop)? What are the best-practices for
> describing such signals?
>
> Thank you.
>
>
>
>
> --
> View this message in context:
> http://octave.1599824.n4.nabble.com/Question-on-defining-a-digital-signal-x-n-tp4652749.html
> Sent from the Octave - General mailing list archive at Nabble.com.
> _______________________________________________
> Help-octave mailing list
> address@hidden
> https://mailman.cae.wisc.edu/listinfo/help-octave
You can do it without a for loop. What you do is create vectors of
boolean variables... example below
(signal that is 1 if input is between -n and n)
function y = signal (t,n)
tf = t >= -n & t <= n;
y = zeros(size(t));
y(tf) = 1;
endfunction
You can generalize this. Also check in the signal package in
Octave-forge[1] exmaples like sigmoid_train [2]
[1] http://octave.sourceforge.net/signal/overview.html
[2] http://octave.sourceforge.net/signal/function/sigmoid_train.html