It's awesome learning about the mathematical theory of a Fourier transform, and then seeing a recreational application for it. Math and science are beautiful!
Looks like a really great tool for displaying noise. If you really wanted to see if it actually works, you would use a tone generator rather than music that sounds like noise.
In the late 60's HP had a billboard done to advertise a new spectrum analyzer product. In the old days the billboards were done with paper panels that were applied like wall paper. The guys didn't realize they had got the panels in the wrong order and the sign read anal spectromizer. Soon doctors started inquiring as to what this new device was used for. The sign got corrected quite quickly, butt not before lots of laughter.
Thanks Paul for your Learnelectronics videos. I enjoy watching these and improving my electronics skills. I was in the process of making a 'volume meter' with LEDs with an Electret microphone and got a little stuck with the analogue output - didn't figure to sample and then calculate the peak to peak - makes sense! Keep up the good work
Congrats on the Banggood swag! I buy a lot of stuff from them for my projects. Usually really good stuff for a very good price. Keep the video's coming I really enjoy them!
I'm pretty sure the "black magic" is just finding the magnitude for the complex data points returned. It doesn't filter anything, it's just a part of how the FFT returns data and how you need to convert it for display.
Fully acknowledged, that is exactly what I also thought. The author has actually no clue what he is doing. It shows some bars moving up and down, looks nice, but there is no understanding of the details. How do we know which frequency each bar stands for? Typical Arduino crap, all is sooo easy. Just import a library that someone else made and feel like a code guru. Horrible.
Hello, it seem that the library fix_fft.h doesn't exist anymore in the GitHub link. Instead it seems to be another library called arduinofft.h, but the fuctions seems to use slightly different variables.
Hello, is there a simple rudimentary way to show the value of the dominant frequency? Ive tried to put 64 values in an array, then find the biggest magnitude and the biggest next to it, then applied (Fs/64) * ( N1 * Mag1 + N2 * Mag2) / ( Mag1+ Mag2) but i get random numbers from a random range
What happened to me was that the microphone's voltage output was too low. It actually might work with a single-frequency tone generator, for example, www.szynalski.com/tone-generator/ Just choose a square wave, bring the microphone as close to the speakers as possible(or even better, put it on headphones and bring one of them to the microphone), turn up the volume to the maximum and hopefully it will work :)
Do you know if the microphone analog output behaves the same as audio from headphone jack in our phones? Would be nice to see "clearer" spectrum from the cable
non-commercial audio signals [i.e. your phone's headphone jack] do not have a well-standardized line level, but typically operate on the order of 1V. As the analog input range of most arduinos is 0-5V, an amplification stage before the input would help maximize your resolution, but direct input would likely produce a measurable result.
Heyy, I'm doing a project for detecting high frequency. Were you able to find a method to detect higher frequencies? What is the maximum frequency that we can detect using Arduino?
How can I create a UVC light spectrum analyzer with Arduino UNO R3? I have a Waveshare UV Sensor GUVA-S12SD already. I am new to Arduino and need instructions on how to assemble. I want to be to output the wavelength on a display or some sort.
Hi, any idea about how to save data in a .txt file? I need to save it and not to display :/ I'm using a leonardo ETH board, and I need to apply a FFT to accelerometer datas, but I'm not able to do it. Thanks for answers ! :)
Would it be possible to add to this code something to detect a specific frequency in a specific volume and then use an "if" argument to make Arduino do something? Thanks
while you will probably not get access to such a display, the library with the oscilloscope(oszi.ino) is for a 16 bit color tft display that can be up to 15" at 1024x768. all controllable by an arduino via simple UART(Serial or SoftwareSerial). they were available on aliexpress once, but not anymore. they are made by Stone HMI somewhere in china /edit: what im trying to say: displays like that do exist, probably from other manufacturers too, but they are hard to come by
Sure ! I did an experiment like that at work not too long ago ! FFT of your vibrations data over time will give you the amplitude of the vibration over each frequency.
sweet project, i would like make a 3 phase voltage/current harmonic spectrum analyzer for the smart-grid to test for dirty power. a cheap-o fluke-41 single-phase.. thanks ..:) esp32?? i would be interesting to play some audio tones like 400, 2000, 5000 hz to see the vertical bar graph results 🤔
netter Witz, ich hätte gesagt 3. Einer der die DIN Norm des Leuchtmittels überprüft, einer der drauf achte, dass es gesetzlich konform ist und ein Hilfsarbeiter, der die Lampe wechselt.
Hi there, this is a really cool video, thanks for posting it. I was wondering if I wanted to build this and also wanted to use a 1.3 in oled how would I change the code to run the larger display?
The Fix_FFT is not at the URL in the video, but I managed to find the Fix_FFT close by. I having problems compiling. how do you implement the Fix_FFT files (.h and cpp)? I tried to include the Fix_FFT files in the sketch library as well. "Arduino: 1.6.13 (Windows 10), Board: "Arduino/Genuino Uno" Here is the Error messages that I get C:\Users\John\AppData\Local\Temp\ccmvj0ye.ltrans0.ltrans.o: In function `main': sketch/main.c:17: undefined reference to `fopen' sketch/main.c:22: undefined reference to `fseek' sketch/main.c:23: undefined reference to `ftell' sketch/main.c:24: undefined reference to `rewind' sketch/main.c:32: undefined reference to `fopen' collect2.exe: error: ld returned 1 exit status exit status 1 Error compiling for board Arduino/Genuino Uno. This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences. " Thanks John
A simple solution is, go to the libaray manager and add search for fft....and there is a fix_fft, simply add this and the arduino IDE now knows where the lib is.
You could do fft on your audio signal, target the desired frequency and set your alarm off when a peak of a certain amplitude at your target frequency is detected
There was some difference particularly on the music, but the system was so "noisy" that it mostly masked the mic input. Good for proof of concept but really needs filtering.
I'm looking into your code and I was wondering. Is it possible to printout the data into integers instead of displaying it on a LCD? It's my first time I'm going to make use of FFT and it's a lot to take. Could you perhaps help me by pushing me in the right direction?
well now we will see who read the description :P very interesting that an arduino is able to do this computation. that microphone could use a little preamplification :P
I said where the code came from, I did not steal it. You want to split the $2.25 I made off this? Email me your PayPal at arduino0169@gmail.com. I'm happy to split it with you.
this project is pretty amazing. i just want to ask if i can replace the microphone to a 3.5 mm female jack and connect my phone on it? i want to get the output spectrum of music coming from my phone. Thanks in advance sir. I already subscribed :)
@@learnelectronics oh thank you very much sir!!! . the purpose of what i ask is for music scoring of out final project thank you very much it will help a lot :D
thank your very much for the video. I am an arduino rookie and I would really like to do this build, but I do not have an OLED but a LCD (a000096) screen. So i am using quite a few more pins. Maybe you got an idea or can help me out with the code to receive the same result?
There's two aspects making that quite a challlenge: Speed and memory. Speed: With 'analogRead' you can only get a maximum sampling rate of 9.1kHz, which - at the absolute max - allows for 4.5kHz signals to be sampled. The sampling rate can be increased drastically by using direct register manipulation, tho. Memory: You need at least two full waves (ts > 2T) for FFT to work reliably. This means that for a 20Hz signal to be sampled at the necessary sampling frequency for 20kHz will take 8000 samples, so at absolute minimum (uint8_t) 8kB of SRAM, which is just not available, not even in the Arduino MEGA. We could work around these by performing two or more FFTs for different frequency ranges, but we would be shooting out of the Arduino's comfort zone there. It's simply not built for such tasks.
ihey coool video. would it be posibel to make a tutorial where a arduino recieving and information on a specific frequenzy. just so we can get an idea about how radio signals are decoded.
Hola. Me da el siguiente error; In file included from C:\Users\Daniel\Downloads\spectrum\spectrum.ino:15: C:\Users\Daniel\Downloads\spectrum\fix_fft.h:7:10: fatal error: avr/pgmspace.h: No such file or directory #include ^~~~~~~~~~~~~~~~ compilation terminated. exit status 1 Compilation error: avr/pgmspace.h: No such file or directory Cual puede ser la falla? Gracias
Hi. Could anybody please post a build of Arduino decibel meter for an Airgun with shown Max last reading. Small size would be preferable, possibly Arduino Nano and Oled screen. Most Android Phone Apps don't work correctly as the phone kills the Microphone sensitivity automatically and sampling isn't fast enough. Thanks in advance. Good Video BTW.
PARECE QUE LA RESPUESTA NO TIENE NADA QUE VER con la realidad, solo simula el espectro porque ¿como una bocina de cel va mover frecuencias bajas al extremo de la grafica?
There is no frequency in the code. Samples are read in a for loop. What is the sampling rate ? How one can do FFT without knowing the sampling rate ? So nobody will see anything except unknown frequencies with unknown sampling rate. Very funny.
Where did you get the fix_fft library? you should post links to libs or include them with code. I found one from TJC no go, copied one from:forum.arduino.cc/index.php?topic=353495.0 errors.... error: 'prog_int8_t' does not name a type const prog_int8_t Sinewave[N_WAVE-N_WAVE/4] PROGMEM = {
Ok, this is already kinda old, I just discovered it, still ... What the hell is your sampling rate (frequency)? You do nothing in your source to do a controlled sampling. The 128 samples are taken as fast as the A/D would do it - that ist useless. You need to determine a sampling freuqency, otherwise the results are just a funny display of funny jumping lines.
Very nice project, it inspired me to build it, too. I changed the OLED display & corrected the word ANALIZER, and left the rest as it is. I ran a frequency test, showing that the maximum frequency is 4400Hz. Is there any chance to increas the frequency to some 18kHz? Even if we have to limit the number of channels/filters? Here is the link to the video: ua-cam.com/video/q3_xnfpSlT0/v-deo.html
Awesome video, you've been pumping out tons of content which is awesome! With time, subscribers and views will come, btw the fluke giveaway is great. I tried this one out but I'm not getting great results. I'm just looking at the 64 values in the serial monitor that would be displayed, and I don't see a visible change when clapping or talking. If I turn the pot on the microphone up, the leftmost values will go from around 8 to 60, (as well as a couple values next to it) but the rest of the spectrum is static. Any ideas?
Correction, how many Germans need to change a scrap engineering Philips German bulb? Please avoid monologue, Gebels is a dead man. Leave us to answer those kinds of questions.
If the sampling frequency is low, it'll never detect high frequencies anyway. Also, you'll get no meaningful info of any freqs whose period is longer than the sampling window.
this only take DC Offset data[i] = val / 4 - 128 BLACK MAGIC !! it just calculate the magnitude of the Bins is the same as PITAGORAS !!!! magnitud = SQRT( REAL**2 + IMG**2) int dat = sqrt(data(i)*data(i) + im(i)*im(i)) FFT function: fix_fft(int8_t fr[], int8_t fi[], int16_t m, int16_t inverse) where : fr[] = real array fi[] = imaginary array m = 2 elevated at m Bins, 7 in your case is 128 bins inverse: 0 = FFT and 1 = inverse FFT
Why do you care? For my Computer Science class we had to write our own FFT from scratch. And after that the professor said "You're never gonna use it, you should use libraries and documentation for specific use case"
It's awesome learning about the mathematical theory of a Fourier transform, and then seeing a recreational application for it. Math and science are beautiful!
Fourier transformation 😅😅😅I failed my test😂😂😂
Looks like a really great tool for displaying noise. If you really wanted to see if it actually works, you would use a tone generator rather than music that sounds like noise.
In the late 60's HP had a billboard done to advertise a new spectrum analyzer product. In the old days the billboards were done with paper panels that were applied like wall paper. The guys didn't realize they had got the panels in the wrong order and the sign read anal spectromizer. Soon doctors started inquiring as to what this new device was used for. The sign got corrected quite quickly, butt not before lots of laughter.
I know someone who has a big heavy old one and he calls it a rectum paraliser
The backward joke still fresh nowadays. Thanks for the story. Amazing.
Thanks Paul for your Learnelectronics videos. I enjoy watching these and improving my electronics skills. I was in the process of making a 'volume meter' with LEDs with an Electret microphone and got a little stuck with the analogue output - didn't figure to sample and then calculate the peak to peak - makes sense! Keep up the good work
Congrats on the Banggood swag! I buy a lot of stuff from them for my projects. Usually really good stuff for a very good price. Keep the video's coming I really enjoy them!
George Chambers thanks! new videos every day
Line 54 is getting the complex magnitude at each frequency not "filtering out noise and hum".
I'm pretty sure the "black magic" is just finding the magnitude for the complex data points returned. It doesn't filter anything, it's just a part of how the FFT returns data and how you need to convert it for display.
Fully acknowledged, that is exactly what I also thought. The author has actually no clue what he is doing. It shows some bars moving up and down, looks nice, but there is no understanding of the details. How do we know which frequency each bar stands for? Typical Arduino crap, all is sooo easy. Just import a library that someone else made and feel like a code guru. Horrible.
I think you need to add some pull-down resistors to remove some of the noise, especially since you are using an analog input on the Arduino.
That's pretty cool. Congrats on your sponsorship from Banggood! I got some products by them and have been satisfied thus far.
Hello, it seem that the library fix_fft.h doesn't exist anymore in the GitHub link. Instead it seems to be another library called arduinofft.h, but the fuctions seems to use slightly different variables.
Great little project .. amazing the arduino has enough power to do an fft
ทท
Obviously not working. Picking up interference/hum.
I could not get the OLED to show the graph. So I hooked the build to my oscilloscope and whistled. I got sine wave changing with my pitch.
Hello, is there a simple rudimentary way to show the value of the dominant frequency? Ive tried to put 64 values in an array, then find the biggest magnitude and the biggest next to it, then applied (Fs/64) * ( N1 * Mag1 + N2 * Mag2) / ( Mag1+ Mag2) but i get random numbers from a random range
can i do this in serial ploter without LCD
You have 60 hz hum on the line.
50hz in europe
@@mikestckl6939 Right, and I thought USA was the ONLY country in the world, they do
unhappily for me it did not work. The words ->Spectrum Analizer
What happened to me was that the microphone's voltage output was too low. It actually might work with a single-frequency tone generator, for example, www.szynalski.com/tone-generator/
Just choose a square wave, bring the microphone as close to the speakers as possible(or even better, put it on headphones and bring one of them to the microphone), turn up the volume to the maximum and hopefully it will work :)
If you did a filter sweep on that signal we could see the freqs moving around? ;)
Do you know if the microphone analog output behaves the same as audio from headphone jack in our phones?
Would be nice to see "clearer" spectrum from the cable
non-commercial audio signals [i.e. your phone's headphone jack] do not have a well-standardized line level, but typically operate on the order of 1V. As the analog input range of most arduinos is 0-5V, an amplification stage before the input would help maximize your resolution, but direct input would likely produce a measurable result.
I don't get the +im[i] * im[i] in the noise filter equation since im[i] = 0;
Hey i got a question, what were the names of the hardware components you used?
Does not work, error message when compiling.
Heyy, I'm doing a project for detecting high frequency. Were you able to find a method to detect higher frequencies? What is the maximum frequency that we can detect using Arduino?
I have error Message fix_fft was Not declared in this scope "fix_fft(Data,im,7,0); please Help. Thanks
Omo Ivo That's probably an error due to a "}" or ";"
learnelectronics
Thanx!!!
How can I create a UVC light spectrum analyzer with Arduino UNO R3? I have a Waveshare UV Sensor GUVA-S12SD already. I am new to Arduino and need instructions on how to assemble. I want to be to output the wavelength on a display or some sort.
cool. what is the bandwidth?
Hi, any idea about how to save data in a .txt file? I need to save it and not to display :/
I'm using a leonardo ETH board, and I need to apply a FFT to accelerometer datas, but I'm not able to do it. Thanks for answers ! :)
hey, good video
Would it be possible to add to this code something to detect a specific frequency in a specific volume and then use an "if" argument to make Arduino do something?
Thanks
how can i make arduino listen to a particular frequency so that it can trigger a task when the frequency is recieved
Was wondering that as well... did you find it out?
Check the level, if it's above the noise level, it's probably a signal
I thought this joke in the beginning is gonne be discriminating but - as a german - i can say you only speak the truth
Can i use input from aux and not from mic?
Of all the projects you have in your drop box, which one is this?
Can we use led strips with this arduino instead of this display panel.
That’s actually what I’m working on right now, although instead of using a microphone it’ll take in audio input from a standard 3.5 mm aux input
question? do you have mike gain turned all the way up? i built this with all that you have there and the display you have to talk really loud.
Excellent work I have to order one off this oled displays and try this project 👍👍
Maybe with a tft display spi interface ?
jose luis arenas perez most of the TFT displays I've seen use way more than the 5-7 pins of SPI. but it would be cool in color
while you will probably not get access to such a display, the library with the oscilloscope(oszi.ino) is for a 16 bit color tft display that can be up to 15" at 1024x768. all controllable by an arduino via simple UART(Serial or SoftwareSerial). they were available on aliexpress once, but not anymore. they are made by Stone HMI somewhere in china
/edit: what im trying to say: displays like that do exist, probably from other manufacturers too, but they are hard to come by
Can you record the data?
Can an accelerometer be used instead of microphone ....we are working on vibrational analysis ..need some suggestions
Sure ! I did an experiment like that at work not too long ago ! FFT of your vibrations data over time will give you the amplitude of the vibration over each frequency.
Is it possible to get the spectrum data? I would like to plot some graphics. Thanks.
sweet project, i would like make a 3 phase voltage/current harmonic spectrum analyzer for the smart-grid to test for dirty power. a cheap-o fluke-41 single-phase.. thanks ..:) esp32??
i would be interesting to play some audio tones like 400, 2000, 5000 hz to see the vertical bar graph results 🤔
Hello, I really like the idea. I was wondering is there a way that this setup can be implemented on 32x64 RGB led Matrix board?
yeah you could prob just use a bunch of decoders/demultiplexers
netter Witz, ich hätte gesagt 3. Einer der die DIN Norm des Leuchtmittels überprüft, einer der drauf achte, dass es gesetzlich konform ist und ein Hilfsarbeiter, der die Lampe wechselt.
+Chris N. Danke mein Freund
Habe daran gelacht
Are specrum lines depend on sound DESIBEL or sound frequance?
It shows the db levels in a range of frequencies
Great tutorial! I was looking for it!
Hi there, this is a really cool video, thanks for posting it. I was wondering if I wanted to build this and also wanted to use a 1.3 in oled how would I change the code to run the larger display?
No change in code to use a larger OLED. They have the same resolution. You will just get a bigger display.
The Fix_FFT is not at the URL in the video, but I managed to find the Fix_FFT close by. I having problems compiling. how do you implement the Fix_FFT files (.h and cpp)? I tried to include the Fix_FFT files in the sketch library as well.
"Arduino: 1.6.13 (Windows 10), Board: "Arduino/Genuino Uno"
Here is the Error messages that I get
C:\Users\John\AppData\Local\Temp\ccmvj0ye.ltrans0.ltrans.o: In function `main':
sketch/main.c:17: undefined reference to `fopen'
sketch/main.c:22: undefined reference to `fseek'
sketch/main.c:23: undefined reference to `ftell'
sketch/main.c:24: undefined reference to `rewind'
sketch/main.c:32: undefined reference to `fopen'
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino/Genuino Uno.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
"
Thanks
John
A simple solution is, go to the libaray manager and add search for fft....and there is a fix_fft, simply add this and the arduino IDE now knows where the lib is.
could this work with a camera module? :o at least for visible light spectrum
I need to filter in a noisy hambient a specific sound and to "set On" an alarm: any suggestion? Thanks in advance, Sergio
You could do fft on your audio signal, target the desired frequency and set your alarm off when a peak of a certain amplitude at your target frequency is detected
Ummmm... I didn't see any real difference between your voice, the music, and "no" sound... Are we even sure it's working?
There was some difference particularly on the music, but the system was so "noisy" that it mostly masked the mic input. Good for proof of concept but really needs filtering.
I'm looking into your code and I was wondering. Is it possible to printout the data into integers instead of displaying it on a LCD? It's my first time I'm going to make use of FFT and it's a lot to take. Could you perhaps help me by pushing me in the right direction?
Yes, all the graphics are doing is talking a value held in a variable and printing it
well now we will see who read the description :P
very interesting that an arduino is able to do this computation. that microphone could use a little preamplification :P
fredlllll it was turned all the way up
i meant an aditional opamp. at least the graph didnt look like the microphone picked up much
fredlllll ahh, ok. yeah it didn't pick up too much
What about a led matrix display ?
jose luis arenas perez yes, that would work. make sure you check out tomorrow's video...
Circuit Diagram??
The code from this video is stolen from my channel (6y old video). Not nice ...
I said where the code came from, I did not steal it. You want to split the $2.25 I made off this? Email me your PayPal at arduino0169@gmail.com. I'm happy to split it with you.
@@learnelectronics I don't need money. Just mention the source in the description and will be ok :)
@cbm80amiga he still didn't mention you. That's the thing about giving out open source codes
hey I'd really appreciate it if you could tell me how one can land such a gig with banggood! (or other retailers, too). thanks in advance
+Tejas Arlimatti work hard 12 hours a day, put out quality videos and they will notice you and contact you
this project is pretty amazing. i just want to ask if i can replace the microphone to a 3.5 mm female jack and connect my phone on it? i want to get the output spectrum of music coming from my phone.
Thanks in advance sir. I already subscribed :)
Yep, that will work
@@learnelectronics oh thank you very much sir!!! . the purpose of what i ask is for music scoring of out final project thank you very much it will help a lot :D
Arduino Spectrum "Analizer" :D
+learnelectronics Did you do anything to get the refresh rate high? I have my setup working, but the refresh rate is about 3 Hz
+Tim Beaulieu No I didn't change anything
Hi. i didnt find the file spectrum in your source code :-(
It's there now, sorry about that
hey!! sir instead of OLED !! how can i use 8X8 LED's ? please rply fast THANK YOU :)
Anmol yadav fast
Thanks for your vidéo and your clear explaination
thank your very much for the video. I am an arduino rookie and I would really like to do this build, but I do not have an OLED but a LCD (a000096) screen. So i am using quite a few more pins. Maybe you got an idea or can help me out with the code to receive the same result?
Herrclueless most lcd's are character driven not pixel driven. So I'm not sure it could work. Sorry.
learnelectronics ah I see, that's too bad. Thank you
Thank You for amazing video and sharing information; can we have full audio spectrum display? i.e 20 Hz to 20kHz?
Prasanna Gunasinhe
That's really pushing the limits of the Arduino's analog sampling rate, even with the ADC prescaler set for fast sampling.
There's two aspects making that quite a challlenge: Speed and memory.
Speed: With 'analogRead' you can only get a maximum sampling rate of 9.1kHz, which - at the absolute max - allows for 4.5kHz signals to be sampled. The sampling rate can be increased drastically by using direct register manipulation, tho.
Memory: You need at least two full waves (ts > 2T) for FFT to work reliably. This means that for a 20Hz signal to be sampled at the necessary sampling frequency for 20kHz will take 8000 samples, so at absolute minimum (uint8_t) 8kB of SRAM, which is just not available, not even in the Arduino MEGA.
We could work around these by performing two or more FFTs for different frequency ranges, but we would be shooting out of the Arduino's comfort zone there. It's simply not built for such tasks.
ihey coool video. would it be posibel to make a tutorial where a arduino recieving and information on a specific frequenzy. just so we can get an idea about how radio signals are decoded.
Nice video! I think you can just leave out the OLED_RESET it works fine without it.
Javier Palla Lorden thanks, I'll have to try it
Did you remove your Spectrum Analyzer code from your dropbox?
No I haven't.
Okay, I must have over looked it, I will look again! :)
Hola. Me da el siguiente error; In file included from C:\Users\Daniel\Downloads\spectrum\spectrum.ino:15:
C:\Users\Daniel\Downloads\spectrum\fix_fft.h:7:10: fatal error: avr/pgmspace.h: No such file or directory
#include
^~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
Compilation error: avr/pgmspace.h: No such file or directory
Cual puede ser la falla?
Gracias
The code is sloppy. Mistakes riddled throughout the file.
i tried and found out that is not working also this video does not explain with detail just find another video.
Hi. Could anybody please post a build of Arduino decibel meter for an Airgun with shown Max last reading. Small size would be preferable, possibly Arduino Nano and Oled screen. Most Android Phone Apps don't work correctly as the phone kills the Microphone sensitivity automatically and sampling isn't fast enough. Thanks in advance. Good Video BTW.
Plss answer that how can I find frequency of sound using microphone and this whole set up of
PARECE QUE LA RESPUESTA NO TIENE NADA QUE VER con la realidad, solo simula el espectro porque ¿como una bocina de cel va mover frecuencias bajas al extremo de la grafica?
There is no frequency in the code. Samples are read in a for loop. What is the sampling rate ? How one can do FFT without knowing the sampling rate ? So nobody will see anything except unknown frequencies with unknown sampling rate. Very funny.
Where did you get the fix_fft library? you should post links to libs or include them with code. I found one from TJC no go, copied one from:forum.arduino.cc/index.php?topic=353495.0 errors.... error: 'prog_int8_t' does not name a type
const prog_int8_t Sinewave[N_WAVE-N_WAVE/4] PROGMEM = {
If I could remember where I found it, I would have posted the link. It seems to be randomly floating around.
Could You add it to the dropbox? pls...
Done!
Danke!
jacekf Gern geschehen
Band good😅😅😅sponsorship 🎉🎉🎉I have less money to play with toys 😂😂😂many thanks for the detailed video😅😅😅I can save a hundred instead of buying😂😂😂
0:06 thanks for that compliment ^^
Ok, this is already kinda old, I just discovered it, still ... What the hell is your sampling rate (frequency)? You do nothing in your source to do a controlled sampling. The 128 samples are taken as fast as the A/D would do it - that ist useless. You need to determine a sampling freuqency, otherwise the results are just a funny display of funny jumping lines.
0:09 i yelled “nein!” 😐
neeeeeeeeeeein
Nice video. Now how's about some links to the code. Thanks!
Joe Dempsey, Sr. It was in the description...www.dropbox.com/sh/m6c40pu99fqxb5b/AABAQTv67pbYOl6gNozWwDNLa/spectrum?dl=0
Thanks, but no more accurate with "arduinoFFT"
worked brilliantly thanks
Very nice project, it inspired me to build it, too. I changed the OLED display & corrected the word ANALIZER, and left the rest as it is. I ran a frequency test, showing that the maximum frequency is 4400Hz. Is there any chance to increas the frequency to some 18kHz? Even if we have to limit the number of channels/filters?
Here is the link to the video:
ua-cam.com/video/q3_xnfpSlT0/v-deo.html
Awesome video, you've been pumping out tons of content which is awesome! With time, subscribers and views will come, btw the fluke giveaway is great. I tried this one out but I'm not getting great results. I'm just looking at the 64 values in the serial monitor that would be displayed, and I don't see a visible change when clapping or talking. If I turn the pot on the microphone up, the leftmost values will go from around 8 to 60, (as well as a couple values next to it) but the rest of the spectrum is static. Any ideas?
Mariano Elia my best guess would be an amplitude issue with your mic, have you tried it with a line-in signal?
an amazing joke.
Is sound & noise considered as spectrum, I thought radio signals are considered as spectrum !! hah
Correction, how many Germans need to change a scrap engineering Philips German bulb?
Please avoid monologue, Gebels is a dead man.
Leave us to answer those kinds of questions.
Nice, but didn't pick up your voice at all!!!!!!!
Awesome!!!
good job
Not good. On this analizer you can see only the low frequency.
+Jurij Lang adjust the code for the frequency you want
If the sampling frequency is low, it'll never detect high frequencies anyway.
Also, you'll get no meaningful info of any freqs whose period is longer than the sampling window.
Amusing joke and true, except I've German blood too so it might be a genetic bias :)
this only take DC Offset
data[i] = val / 4 - 128
BLACK MAGIC !!
it just calculate the magnitude of the Bins
is the same as PITAGORAS !!!!
magnitud = SQRT( REAL**2 + IMG**2)
int dat = sqrt(data(i)*data(i) + im(i)*im(i))
FFT function:
fix_fft(int8_t fr[], int8_t fi[], int16_t m, int16_t inverse)
where :
fr[] = real array
fi[] = imaginary array
m = 2 elevated at m Bins, 7 in your case is 128 bins
inverse: 0 = FFT and 1 = inverse FFT
NINE!
thanks !
that's not wrong OM, may be some litle QSB.... cause propagation.
best 73 from YB land
cool. iam german to.
0:05
*speech 0*
Hahaha
Not funny
The joke is you need 0 germans... we have enough migrants to do it for us. Thats not even a joke.
LOL at your explanation of the FFT code... you should really read/understand it... it's not that difficult.
Not a programmer...but if you dont like my videos feel free to not watch them.
Why do you care?
For my Computer Science class we had to write our own FFT from scratch. And after that the professor said "You're never gonna use it, you should use libraries and documentation for specific use case"
Nice joke but it's true. So go on working no time for talking.....
Yinzer ;)
How'd yinz guess? Yinz see me dahntahn on da south side n'at?