fft bin
- Войдите на сайт для отправки комментариев
Сб, 09/03/2019 - 20:56
Добрый день.
Серийный плоттер показывает все 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); }
Какие есть идеи?
В 53 строке вместо i написать 35. Ну и 47 строку закомментировать.
Правильно лия понимаю, что:
1) код не Ваш?
2) Вы в нём не понимаете ни одной буквы?
3) и не хотите понимать?
Мне нужны ответы на все три вопроса. чтобы понять как Вам можно помочь.
Я понял, что ответы на мри первые два вопроса - да.
Но на третий вопрос Вы не ответили.
Я здесь и поэтому , чтобы понять.
То что там написано понятно, но есть вопросы.
Ну, если так, то, учитывая
могу порекомендовать Вам одну из самых простеньких книжек, проще просто некуда. По-хорошему, её мало, но нчните с неё. Если Вы её нормально изуите, то таких постов как этот, у Вас больше не будет.
https://drive.google.com/open?id=0B9r7cRXQ4DU4dTBtRFpub0tfV00
Только именно изучайте, а не "просматривайте". Повторяю, если изучите, то таких постов, как этот у Вас больше не будет.
То что там написано понятно
Не обольщайтесь. Если Вы не знаете, как закомментировать строчку и как напечатать одно значение, а не все, то, на самом деле, Вам там НИ ХРЕНА (от слова "хрен") не понятно. Примите это и изучайте книгу, которую я Вам дал. Пока не изучите, не возвращайтесь.
= разбирайся сам.
Невозможно научить танцевать человека, который не то что ходить, а еще ползать не научился.
Здесь форум, а не школа. Заявки типа "хочу научиться танцевать" принимаются только от людей, которые уже умеют ходить.
У вас в тексте закомментированны строки 52 и 51.
А вообще я присоединяюсь к остальным комментаторам - сначала учить язык. Без этого вы дальше на добром отношении не пробьётесь.
= разбирайся сам.
Именно так! Вам был задан вопрос
3) и не хотите понимать?
Если бы Вы честно ответили "да", я, возможно, сказал бы Вам как закомментировать строку. Но Вы ответили "хочу научиться", я и стал помогать Вам учиться. И, как всегда, огрёб благодарность за помощь.
Вот и поучилось, только не знаю как здесь вставить своё изображение.
похоже на это, макс на 272 Гц
Вот и поучилось
Т.е. книга так и не изучена, а проблема решилась благодаря посту #10? Ну, что ж, "бег на месте" - тоже спорт.