fft bin

gena321
Offline
Зарегистрирован: 19.01.2019
Добрый день.
 Серийный плоттер показывает все bin, как сделать так,чтобы он показывал только один bin, например bin #35 ?
Всего их  здесь 64.
#include "arduinoFFT.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(PA0, PA1, PA2, PA3, PA4, PA5);
#define SAMPLES 128             //Must be a power of 2, # of bins = samples/by 2 = 64

#define SAMPLING_FREQUENCY 1000 //Hz, must be less than 10000 due to ADC

int i;
arduinoFFT FFT = arduinoFFT();

unsigned int sampling_period_us;
unsigned long microseconds;

double vReal[SAMPLES];
double vImag[SAMPLES];

void setup() {
  Serial.begin(115200);
  lcd.begin(16, 2);
  sampling_period_us = round(1000000 * (1.0 / SAMPLING_FREQUENCY));
}

void loop() {

  /*SAMPLING*/
  for (int i = 0; i < SAMPLES; i++)
  {
    microseconds = micros();    //Overflows after around 70 minutes!

    // vReal[i] = analogRead(0);
    vReal[i] = analogRead(PA7);
    vImag[i] = 0;

    while (micros() < (microseconds + sampling_period_us)) {
    }
  }

  /*FFT*/
  FFT.Windowing(vReal, SAMPLES, FFT_WIN_TYP_HAMMING, FFT_FORWARD);
  FFT.Compute(vReal, vImag, SAMPLES, FFT_FORWARD);
  FFT.ComplexToMagnitude(vReal, vImag, SAMPLES);
  double peak = FFT.MajorPeak(vReal, SAMPLES, SAMPLING_FREQUENCY);

  /*PRINT RESULTS*/
  // Serial.println(peak);     //Print out what frequency is the most dominant.

  for (int i = 0; i < (SAMPLES / 2); i++)
  {
    /*View all these three lines in serial terminal to see which frequencies has which amplitudes*/

    // Serial.print((i * 1.0 * SAMPLING_FREQUENCY) / SAMPLES, 1);
    //Serial.print(" ");
     Serial.println(vReal[i], 1);    //View only this line in serial plotter to visualize the bins

  }

  //delay(1000);  //Repeat the process every second OR:
  // while(1);       //Run code once
  lcd.setCursor(0, 0);
  lcd.print("V");
  lcd.setCursor(3, 0);
  lcd.print(peak);

}

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Какие есть идеи?

nik182
Offline
Зарегистрирован: 04.05.2015

В 53 строке вместо i написать 35. Ну и 47 строку закомментировать. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Правильно лия понимаю, что:

1) код не Ваш?
2) Вы в нём не понимаете ни одной буквы?
3) и не хотите понимать?

Мне нужны ответы на все три вопроса. чтобы понять как Вам можно помочь.

gena321
Offline
Зарегистрирован: 19.01.2019
Изучаю fft
Программа отсюда
Не знаю как закомментировать строку 47
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

gena321 пишет:

Изучаю fft
Программа отсюда
Не знаю как закомментировать строку 47

Я понял, что ответы на мри первые два вопроса - да.

Но на третий вопрос Вы не ответили.

gena321
Offline
Зарегистрирован: 19.01.2019

Я здесь и поэтому , чтобы понять.

То что там написано понятно, но есть вопросы.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, если так, то, учитывая

gena321 пишет:

Не знаю как закомментировать строку 47

могу порекомендовать Вам одну из самых простеньких книжек, проще просто некуда. По-хорошему, её мало, но нчните с неё. Если Вы её нормально изуите, то таких постов как этот, у Вас больше не будет.

https://drive.google.com/open?id=0B9r7cRXQ4DU4dTBtRFpub0tfV00

Только именно изучайте, а не "просматривайте". Повторяю, если изучите, то таких постов, как этот у Вас больше не будет.

gena321 пишет:

То что там написано понятно

Не обольщайтесь. Если Вы не знаете, как закомментировать строчку и как напечатать одно значение, а не все, то, на самом деле, Вам там НИ ХРЕНА (от слова "хрен") не понятно. Примите это и изучайте книгу, которую я Вам дал. Пока не изучите, не возвращайтесь.

gena321
Offline
Зарегистрирован: 19.01.2019

= разбирайся сам.

andriano
andriano аватар
Онлайн
Зарегистрирован: 20.06.2015

Невозможно научить танцевать человека, который не то что ходить, а еще ползать не научился.

Здесь форум, а не школа. Заявки типа "хочу научиться танцевать" принимаются только от людей, которые уже умеют ходить.

nik182
Offline
Зарегистрирован: 04.05.2015

У вас в тексте закомментированны строки 52 и 51.

А вообще я присоединяюсь к остальным комментаторам - сначала учить язык. Без этого вы дальше на добром отношении не пробьётесь. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

gena321 пишет:

= разбирайся сам.

Именно так! Вам был задан вопрос

ЕвгенийП пишет:

3) и не хотите понимать?

Если бы Вы честно ответили "да", я, возможно, сказал бы Вам как закомментировать строку. Но Вы ответили "хочу научиться", я и стал помогать Вам учиться. И, как всегда, огрёб благодарность за помощь.

gena321
Offline
Зарегистрирован: 19.01.2019

Вот и  поучилось, только не знаю как здесь  вставить своё  изображение.  

 

gena321
Offline
Зарегистрирован: 19.01.2019

похоже на это, макс на 272 Гц 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

gena321 пишет:

Вот и  поучилось

Т.е. книга так и не изучена, а проблема решилась благодаря посту #10? Ну, что ж, "бег на месте" - тоже спорт.

gena321
Offline
Зарегистрирован: 19.01.2019
Да, русский это не мой родной язык .
Спасибо всем.