help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Want to know how to inluce octave fft lib in my Qt program


From: Prasanth N P
Subject: Re: Want to know how to inluce octave fft lib in my Qt program
Date: Mon, 21 Oct 2013 16:18:43 +0530




On Mon, Oct 21, 2013 at 4:16 PM, Prasanth N P <address@hidden> wrote:



On Mon, Oct 21, 2013 at 4:05 PM, Prasanth N P <address@hidden> wrote:



On Mon, Oct 21, 2013 at 3:52 PM, c. <address@hidden> wrote:

On 21 Oct 2013, at 12:08, Prasanth N P <address@hidden> wrote:


> Ys, now I got what is top posting. Is this is the right method?
>
>
>
> I have a  set of samples in an array and want to do the fft function and want to collect back to an array. This is my need. How can I implement this? I am tried to as given below.
>
>    fp = fopen("buffer","r");
>   if (fp == NULL)
>       return 0;
>
>   for (ucI=0;ucI< 1024;ucI++)
>       fscanf(fp,"%d\n",&InData[ucI]);
>
>
>   octave_value_list input;
>
>
>   for (int i = 0; i < 1024; i++)
>   {
>       input (i) = InData[i];
>
>   }
>
>   octave_value_list output = feval ("fft", input, 1024);
>
>
> Is this is the right method? How can I collect the output to an array?

Hi,

No, it isn't, what you are doing now is equivalent to calling fft in the interpreter with 1024 scalar inputs equal to the entries of your vector.
and you are expecting fft to return 1024 outputs while you will get only one vector output ...


The following example should point you in the right direction (beware, this is untested code):


 fp = fopen("buffer","r");
  if (fp == NULL)
        return 0;

  ColumnVector input_vector (1024, 0.0);

  for (int ucI=0; ucI< 1024; ucI++)
    fscanf(fp, "%d\n", input_vector.fortran_vec () + ucI);


  octave_value_list input;
  input(0) = input_vector;

  octave_value_list output = feval ("fft", input, 1);

  ColumnVector output_vector = output(0).column_vector_value ();

  for (int ucI=0; ucI< 1024; ucI++)
     std::cout << output_vector.fortran_vec ()[ucI];


HTH,
c.







Thank you for your cooperation. But when executed it shows errors

error: feval: function `fft' not found
error: octave_base_value::array_value(): wrong type argument `<unknown type>' 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]