How to design and implement a digital low-pass filter on an Arduino

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ธ.ค. 2024
  • In this video, you'll learn how a low-pass filter works and how to implement it on an Arduino to process signals in real-time.
    You don't have to be a mathematician to design your low-pass filter. You can use libraries to do the work for you. The python scripts linked below can help you to get started.
    github.com/cur...
    github.com/cur...
    The Arduino examples are also available:
    github.com/cur...
    There's also a high-pass version now:
    github.com/cur...
    with a few details about the derivation here:
    github.com/cur...
    To use the Jupyter Notebook, start by following the instructions to download Python:
    wiki.python.or...
    and then follow the instructions to install Jupyter:
    jupyter.org/in...
    Correction(s):
    @ 9:28, the Butterworth filter sum should be from 0 to n.

ความคิดเห็น • 287

  • @vigneshperiyasamy3019
    @vigneshperiyasamy3019 ปีที่แล้ว +31

    I regret that i Have not seen this explanation during my College study. while i was studing, I could not understand DFT, FIlters, signal processing, what is the need of different plots, why we need to study bilinear transformation, what is the need of Continous, differential equations...etc. what is not covered in this video; Signals, Control system, Maths, Embedded system, Python programming.. really usefull. Thank u. thank god atleast now I came to know.

    • @ShirishJadav162
      @ShirishJadav162 10 หลายเดือนก่อน +1

      Same.. professors go through the theories less of implementation or failed to explain the uses of the theory they are teaching. And mostly that is why they are professors and not engineers.

    • @fog1257
      @fog1257 4 หลายเดือนก่อน +1

      I'm at the university now but I must say I've been lucky with what teachers I got. The teachers I've had in hardware programming, control theory and electronics all have about 30 years of experience working as engineers before they started teaching so they lay an immense amount of focus on having their students understand instead of just picking formulas that fit. Of course some students really hate this since it makes the exams much harder when you need to really understand everything before you have a chance to answer. I like it because learning the course is enough to make me apply it and built better things than I could before.

  • @tjb6255
    @tjb6255 ปีที่แล้ว +41

    You're truly underrated! I've never seen such a lucid explanation for implementing a project based on filters.
    Thank you very much Curio Res!!

  • @evanbarnes9984
    @evanbarnes9984 2 ปีที่แล้ว +31

    This is insanely helpful for a project I'm working on in the long term. I can't believe you put this out for free! Instant sub

  • @TheTim2302
    @TheTim2302 2 ปีที่แล้ว

    Respect for the (hidden) effort making this represenatation.

    • @curiores111
      @curiores111  2 ปีที่แล้ว

      Too kind Tim, thank you.

  • @fahimfaisalamio8037
    @fahimfaisalamio8037 2 ปีที่แล้ว +1

    I can't begin to think how underrated this channel is. You are a Philosopher's Stone level gem!

  • @wenhaoye8773
    @wenhaoye8773 2 ปีที่แล้ว +3

    There is no doubt that this is one of the best videos i hv seen, super clear, easy to understand, visualization is very good.

    • @curiores111
      @curiores111  2 ปีที่แล้ว

      Glad to hear that Wenhao!

  • @snivesz32
    @snivesz32 3 ปีที่แล้ว +9

    This is so cool. It's very interesting how the continuous transfer function becomes a discrete transfer function with terms that only require the last value of y and current and last values of x. The accelerometer demonstration was a great applied example. Fantastic.

    • @curiores111
      @curiores111  3 ปีที่แล้ว +4

      Yes its discrete form is surprisingly simple. Those coefficients pack a surprising amount of detail. Thank you for the kind words.

    • @snivesz32
      @snivesz32 3 ปีที่แล้ว +1

      @@curiores111 Can you suggest other filters that have less phase delay?

    • @curiores111
      @curiores111  3 ปีที่แล้ว +2

      @@snivesz32 Sorry, not off-hand. Generally speaking most filters I've encountered would have more phase delay than a basic low-pass filter. There are probably some exceptions (with other tradeoffs, no doubt).

    • @chrisdonnell7200
      @chrisdonnell7200 2 ปีที่แล้ว

      @@snivesz32 there are necessarily delays (unless you can look into the future). Even an analog low pass filter like a capacitor will cause a phase shift.

  • @simonsattler9587
    @simonsattler9587 3 ปีที่แล้ว +26

    Just great explaination of math background, transition and final implementation! Thank you!

  • @danielardelian2
    @danielardelian2 7 หลายเดือนก่อน

    Excellent presentation! The Python and Arduino code is much appreciated!

    • @curiores111
      @curiores111  7 หลายเดือนก่อน

      That's very generous Daniel. I'm so glad you found the code useful. 💖

  • @ollydsouza
    @ollydsouza ปีที่แล้ว +6

    Thank you very much for your tutorials - calm , well paced and very educational. As a researcher this is not just learning - it is meditative experience as well.

  • @fishercawkey
    @fishercawkey หลายเดือนก่อน

    Great to find this video after just watching a series of videos on FIR and IIR filters. I'm able to identify the feedforward and feedback components of the filter.
    Thank you for the video!

  • @Fuscao_Preto
    @Fuscao_Preto หลายเดือนก่อน

    Nice found this a week before my presentation and on the day of the paper submission. Thanks TH-cam.

  • @MrMindMaster
    @MrMindMaster ปีที่แล้ว

    Just wanted to thank you.... The ugly math part is the most useful to me! I have to create the coefficients without using any scipy libraries for a project of mine. You're a lifesaver!

  • @manuel_youtube_ttt
    @manuel_youtube_ttt 3 ปีที่แล้ว +1

    OMG this video is pure gold. I never turn on the notification bell, but I just did for your channel, your videos are amazing.

    • @curiores111
      @curiores111  3 ปีที่แล้ว +1

      wow, thank you! 😁 I had a lot of fun making this one (well okay I did get a little tired after the 20th animation script but hey you gotta put a little blood and sweat in there or it doesn't come out right).

  • @Engineer_Valat
    @Engineer_Valat ปีที่แล้ว +1

    Great explanation, I haven't watched a video explaining technical topics so beautifully in a long time.

    • @curiores111
      @curiores111  ปีที่แล้ว

      Many thanks, Valat. Hopefully more to come soon.

  • @RafaelKarosuo
    @RafaelKarosuo ปีที่แล้ว +3

    Digital filters is a huge topic and your example and explanations are superb! very digestible and easy to follow
    THANKS😃

  • @rahim9568
    @rahim9568 2 ปีที่แล้ว

    Thank you so much, Not every teachers deserve to called one because that title is reserved for great ones like you.

  • @AbroadinSouthKorea
    @AbroadinSouthKorea 2 ปีที่แล้ว

    the quality of the video is really great

  • @mibrahim4245
    @mibrahim4245 2 ปีที่แล้ว

    As a Mechatronics engineer I tell you this is ORIGINAL and indicates a deep understanding ! ..
    God Bless You

  • @ashwatha532
    @ashwatha532 ปีที่แล้ว

    doing my masters and this video saved my assignment

  • @holo8447
    @holo8447 2 ปีที่แล้ว

    Imho your videos are among the best on TH-cam. Not only is the quality of your animations extremely good, the depth of your explanations allows to easily follow and understand the topics.
    I really hope you have a great future on TH-cam.

  • @Petch85
    @Petch85 2 ปีที่แล้ว

    This was a grate refresh of and old cause I took years ago.
    But I have some questions.
    1. What influence dos the sampling frequency have. What would happen if you sampled slow or if you sampled super fast? (say 100 Hz and 10kHz)
    2. If it was sound. If I needed real time sound, say I was recording on my pc, and I could only allow a delay of 5 ms, who would I find the order I could accept.
    3. And if it was sound and the phase change is different for different frequencies, how high an order could I accept without hearing the phase change? Assuming it was for a recording and the delay could be handled before combining with other signals.
    4. If you have multiple signals and you want a low of high pass filter on all the signals, is it better to apply the filters on each signal chain or only one filter on the combined signal.
    You know it is a good video when you just keep coming up with new questions. 🙂

  • @prashantnayak7278
    @prashantnayak7278 8 หลายเดือนก่อน

    This is a really nice explanation of filter design and its implementation on real-time microcontrollers. Your python code is impressive; I am a research scientist, and I want to cite your work in one of my works on filter design for real-time noise control.

  • @aravindhdeivag111
    @aravindhdeivag111 9 หลายเดือนก่อน

    Excellent content mam, you deserve a million views. I have never understood any of these before. You've connected all the subjects perfectly

  • @BeMuslimOnly
    @BeMuslimOnly 8 หลายเดือนก่อน

    You did an exceptional job, please do more of these videos. It was very informative

  • @frank676
    @frank676 2 ปีที่แล้ว +8

    Great video, you made the subject understandable and easy to implement. Made my own filter and it worked just fine. I was just wandering how do you make high-pass filters.

  • @tolis5631
    @tolis5631 3 หลายเดือนก่อน +1

    5:01. Can I find some citation(books etc) for that? How do we know that the difference equation coefficients are those? Thank you!

  • @FatherGapon-gw6yo
    @FatherGapon-gw6yo หลายเดือนก่อน

    This is a really good video from an educational perspective

  • @evanlane1690
    @evanlane1690 ปีที่แล้ว +1

    These are amazing! I'm really hoping you're planning on continuing your channel. Your explanations are fantastic.

  • @maksymkloka7819
    @maksymkloka7819 2 ปีที่แล้ว

    This is great. I wish every video on TH-cam was this awesome. Thank you.

    • @curiores111
      @curiores111  2 ปีที่แล้ว

      Too kind, Maksym, thank you!

  • @papalevies
    @papalevies 3 ปีที่แล้ว +6

    Great explanation

  • @johnhopkins6731
    @johnhopkins6731 2 ปีที่แล้ว

    That was a great (although fast paced) overview.

    • @curiores111
      @curiores111  2 ปีที่แล้ว

      thank you for the feedback. :)

  • @malehakim248
    @malehakim248 ปีที่แล้ว

    First of all, this is a very much master piece. After getting frustrated in implementing a narrow-bandpass filter in the Analog world, am looking forward to implementing it in the digital world. Do you mind doing a video on using a bandpass filter?

    • @curiores111
      @curiores111  ปีที่แล้ว

      Appreciate the request. I actually have a analog filter video planned as well as bandpass/high-pass. Hard to get to them, though. Hopefully I will find some time soon.

  • @satishrengarajan5806
    @satishrengarajan5806 2 ปีที่แล้ว +1

    Precise and concise presentation. Great video!

  • @nowyouknow-sortof
    @nowyouknow-sortof หลายเดือนก่อน

    Thanks for making this video! clearly explained with such simplicity 💯

  • @Corredor1230
    @Corredor1230 2 ปีที่แล้ว

    This is awesome, I’m learning filter design right now, and it was great to look at a practical application of it with Arduino. So cool!

  • @herosamurai
    @herosamurai 3 ปีที่แล้ว +2

    Great video! kinda funny the part about "ugly math" 'cause I studied mechatronics and when I took Signal processing I really dont understand so much because there was so much abstract theory and I am more of the practical side because I am focus on Robotics, but your explanation was precise, simple and efficient, thank you!

    • @curiores111
      @curiores111  3 ปีที่แล้ว +1

      This was also my experience with this subject. Funny how underneath all that math the essential concepts are all actually very intuitive...

  • @andrewandrosow4797
    @andrewandrosow4797 2 ปีที่แล้ว

    Hello! Good video! For the first.There are loat of calculations with floating point - it takes a lot of processor time because there isn`t any FPU.The RAM can be too little. It is real to implementation a moving average filter - but this filter is more fit to time domain (it`s bad filtering in frequency domain).

  • @botanysilkiebreeders7732
    @botanysilkiebreeders7732 2 ปีที่แล้ว

    A Low Pass filter acts as an integrator too.
    This content is only available in my 4th year UNI, you learn all the prerequisite math but it's up to you to figure out how to apply the math for hardware applications.

  • @bilalzaenal3795
    @bilalzaenal3795 2 ปีที่แล้ว +1

    This is great video! you explain the math background clearly and easy to understand. Thank you for sharing this video.

    • @curiores111
      @curiores111  2 ปีที่แล้ว

      Glad to hear that. Thanks Bilal. 😊

  • @visit2explore832
    @visit2explore832 2 ปีที่แล้ว

    Very well presentation... Clear my whole concept relate to filter... Well job done.. Really appreciate.

    • @curiores111
      @curiores111  2 ปีที่แล้ว

      oh good! Hopefully you can filter with confidence now :)

  • @surfacta
    @surfacta ปีที่แล้ว

    Wow, I have been looking for a clear tutorial on higher order digital filter and finally i found one! Would you mind making a more detailed video on deriving those parameters, and also for high pass filter? My prof didn't do a great job explaining this on DSP lecture. Thanks!

  • @qli880
    @qli880 3 ปีที่แล้ว +1

    I took a dynamic system course at university 4 years ago and still not clear about the phase diagram mean in the bode plot until I watched this video.

    • @curiores111
      @curiores111  3 ปีที่แล้ว +1

      That's *exactly* what I thought about the phase plot. One of the reasons I included so much detail in this video. Thanks for noticing Q.

  • @janbabkiewicz9137
    @janbabkiewicz9137 2 ปีที่แล้ว

    thanku you very much. Now i understand LPF. It will be great if you do this type video, visualization is the key.

  • @mathmaker6946
    @mathmaker6946 2 ปีที่แล้ว

    Just what i´ve been looking for, thank you so much. I´m thinking on crating a simple guitar tuner.

  • @klave8511
    @klave8511 2 ปีที่แล้ว

    This is a great explanation and has a real input as an example, well done.
    Some inputs need different filters because they use the data for different reasons. Your example showed an IMU data stream likely useful for position control and so time delay becomes crucial. Could you also include some aspects of the time domain signal, how much is the waveform distorted by the filter. I’m thinking about, for example, a single bit of data or a sonar reflection. Ringing artifacts on the time signal add features to the filtered signal. If you choose the wrong filter, the response may affect position control too, causing overshoot and actuator wear.
    Your data bandwidth, your actuator bandwidth and your noise level are some of the inputs that your filter design needs, I’m sure there are a few more. Would be great to see you demystify these in a future video.
    As a late thought, some explanation of the difference between just using a PID control strategy and including a filter before the controller. Is it valid to filter the measured variable before using it for control?

    • @curiores111
      @curiores111  2 ปีที่แล้ว

      time delay is absolutely crucial. Increases in delay directly destabilize the control system. So as you say, this would cause overshoot, and in extreme cases destabilize the control entirely.
      I'd certainly be interested in creating a video exploring the details of filter design. Thank you for the request. There would be a lot to unpack there, so I'd have to think about what might be useful to a general audience on youtube.
      It is absolutely valid to filter the variable in the control system. As you said, if the delay is high, this could cause some stability issues. But in other cases this can be very helpful (for example where there is measurement error, as you can see in this video: th-cam.com/video/HRaZLCBFVDE/w-d-xo.html ). The delay caused by the first order filter is pretty small, so on the time scale of the motor response it's not really destabilizing the system. If you compute the transfer function of the motor, you could multiply the transfer funciton of the filter, and analyze exactly how much the stability using standard methods.

  • @L2.Lagrange
    @L2.Lagrange 9 หลายเดือนก่อน

    Very interesting. I'll have to give these a go in one of my projects, especailly that 2nd order butterworth

  • @FirstLast-du8lb
    @FirstLast-du8lb 2 ปีที่แล้ว

    This is unbelievably helpful. You rock!!!

  • @AhmadAsmndr
    @AhmadAsmndr 11 หลายเดือนก่อน

    I am glad that i found your Channel. You are making perfect content thank you very much!

    • @curiores111
      @curiores111  11 หลายเดือนก่อน

      Great to hear that. Thanks for stopping by, Ahmad.

  • @MohitGupta-qm6ff
    @MohitGupta-qm6ff 2 ปีที่แล้ว

    Great video...
    2nd order low pass filter tutorial will b of great help

    • @curiores111
      @curiores111  2 ปีที่แล้ว

      Hi Mohit, I actually go over the 2nd order butterworth filter in the second half of the video ;)

  • @AmarGUICHI
    @AmarGUICHI ปีที่แล้ว

    Congratulations for this great work, it's very useful. Please let us know how you did you get coefficients a and b.

  • @eyadmothana5506
    @eyadmothana5506 7 หลายเดือนก่อน

    I always want to learn about these things.
    But never find any.
    Thank u very much

  • @gvcallen
    @gvcallen 3 ปีที่แล้ว +2

    Amazing video. Great high level overview of the math it takes to perform such a task as well, which is what I was mainly interested in. Thanks a lot!

    • @curiores111
      @curiores111  3 ปีที่แล้ว +1

      Hi Gary, you're welcome and great to hear that! 😁

  • @mbmaline
    @mbmaline 2 ปีที่แล้ว

    this is what i was looking for, great video

    • @curiores111
      @curiores111  2 ปีที่แล้ว

      Good and I hope it helped :)

  • @user-pk8hn6zw8m
    @user-pk8hn6zw8m 3 ปีที่แล้ว

    just wanted to say that this was godsent for me!

  • @shrinandaggarwal8564
    @shrinandaggarwal8564 3 ปีที่แล้ว +9

    Great video!!! can you also share the code for the actual real sensor readings instead of a synthetic one? I am having a hard time getting the sampling rate for my sensor.

    • @curiores111
      @curiores111  2 ปีที่แล้ว +5

      It only took me seven months... but I did create a video with code operating on a sensor directly, it's here: th-cam.com/video/eM4VHtettGg/w-d-xo.html

  • @rafaguevara08
    @rafaguevara08 3 ปีที่แล้ว

    WHAT A BEAUTIFUL WORK!! It was really useful for me... keep it on!!!

    • @curiores111
      @curiores111  3 ปีที่แล้ว

      Glad to hear that 😊, thanks Rafael!

  • @PalinDynamics
    @PalinDynamics หลายเดือนก่อน

    This makes me wonder, what is the best solution to attenuate signals above the cut-off frequency that minimizes both the transition band and the phase shift?

  • @Dheerajsingh0509
    @Dheerajsingh0509 3 ปีที่แล้ว

    Who are you my love?
    You have made my life easy.
    Thank you.

  • @jamate
    @jamate 2 ปีที่แล้ว

    Thank you for making the video, keep up the great work!

  • @fikrizaini6443
    @fikrizaini6443 2 ปีที่แล้ว

    Thanks for this great lecture. Help me a lot in my final project😊

    • @curiores111
      @curiores111  2 ปีที่แล้ว

      Delighted to hear that fikri :)

  • @qzorn4440
    @qzorn4440 ปีที่แล้ว

    What wonderful example and a beautiful voice. 😎 Thank you. Is there something better?

  • @sullianetrajano2597
    @sullianetrajano2597 2 ปีที่แล้ว

    BROOO thankyou so much, this really helped and the tutorial was really easy to use as well :)

  • @BorisGrishenco
    @BorisGrishenco 2 ปีที่แล้ว

    High-quality video!! Thank you!

  • @ramiramiz5555
    @ramiramiz5555 3 ปีที่แล้ว

    Really that was amazing, i will recommend your video to my students.

    • @curiores111
      @curiores111  3 ปีที่แล้ว

      Thanks Rami, very kind.

  • @gamerharmeet
    @gamerharmeet 3 ปีที่แล้ว

    Thank you for such a nice, clear and useful video.

    • @curiores111
      @curiores111  3 ปีที่แล้ว

      You are welcome, friend.

  • @dhanushkawijethunga
    @dhanushkawijethunga ปีที่แล้ว

    what a great explanation. Thank you so much !

  • @benjamincormack3217
    @benjamincormack3217 11 หลายเดือนก่อน

    You have a wonderful channel!

  • @ViniciusFortuna
    @ViniciusFortuna 4 หลายเดือนก่อน

    How did you plot the real time graph at the end? The one that shows COM3 on the top left with the arduino logo. That's pretty neat!

  • @akompsupport
    @akompsupport ปีที่แล้ว

    Excellent video! Thanks for posting!

  • @annacersongor8553
    @annacersongor8553 3 ปีที่แล้ว +1

    Great video and great explanation, thanks a lot, keep going.

  • @EmbeddedEnigma
    @EmbeddedEnigma 3 ปีที่แล้ว +1

    the video is nice, but man holyshit u were going quick through every step. I had to watch multiple other videos to understand the code here, I guess I am just dumb but u are going super quick and I think u should really include maths in this, that how u are calculating the formulas and etc, because who ever will watch it, they just don't want to copy and paste stuff, they are watching this video to understand the concepts and modify stuff for there own need. And I know u have included python script to modify the cutoff frequency to our use but still need actual formulas to understand the stuff. Dont take this comment as negative, It still helped me.

    • @curiores111
      @curiores111  3 ปีที่แล้ว +2

      Thanks for the feedback Haseeb, it is valuable.
      Here are a few of my thoughts:
      I can understand why you would like to see the details of the math. Unfortunately the details do really require a lot more flushing out (at least an hour). For this video, the intention is to give the high level overview and access to the necessary tools. In other words, the goal is to get you to the practical application of the tools as quickly as possible. For many, spending a lot of time on the theory can be frustrating and uninteresting.
      TBH, I wouldn't mind creating an hour long video about the math (I have a PhD in applied math), I just have no idea if anyone would watch it.

  • @shubhamnayak9369
    @shubhamnayak9369 3 ปีที่แล้ว +3

    Amazing animation and content. Keep posting. I have a question:
    You wrote yn=0.96yn1+....
    After delay of 1ms you do yn1=yn but since the statements are sequential (is it concurrent?) Then yn=0.96yn+.. works good as program will use past value of yn to compute new value of yn like we do sum=sum+1 in c programming. Why did u introduced a new variable yn1?
    Also another question is:
    You said higher order filter leads to more and more phase delay.. so it is occurring because of computational delay but when u implement that on hardware will it still give same phase delay or delay will increase depending on which hardware u choose? What I want to conclude is whether the phase delay also depends on hardware implementation in practical scenario? Or is it like as long as your hardware is able to sample at the specified rate, whatever phase delay u calculated theoretically will match actual implementation.
    Pardon me I still a beginner trying to make sense of DSP 😁

    • @curiores111
      @curiores111  3 ปีที่แล้ว +3

      No particular reason for yn1. Mainly, that's to emphasize that you need to store and use the value from the previous loop (it matches the equation more closely). Of course you can optimize the code to improve the implementation. There are also probably libraries somewhere that could do this for you (although that has its own overhead).
      That's a really insightful question Shubham. In general, the delay shouldn't depend much on your hardware, unless your device can't actually keep up. So for example, you can't do real-time audio processing on an Arduino, because the sampling frequency of the loop function is too low to keep up, so there will be a noticeable delay. There's a similar issue with the Raspberry PI for processing audio signals, but that's because of the overhead of the operating system, rather than an insufficiency of the processor.
      So in general as long as your sampling frequency is well above your frequencies of interest, you shouldn't introduce more delay than what is indicated by the continuous function. However, if you wanted to investigate it further, you could do some analysis of the discrete form of the function with varying sampling rates.

    • @markday3145
      @markday3145 3 ปีที่แล้ว +1

      The way I naively think of it is that when you get a change in input, you have to keep sampling to see if it is a "real," meaningful signal change, or just temporary noise. To figure that out, you have to keep looking at more samples, over a longer time frame. Eventually, you get enough samples to know that the signal is changing, and so you output that change. The delay is how long you wait before deciding whether (or how much) to propagate a change in input.

    • @felixruiztorrez5192
      @felixruiztorrez5192 3 ปีที่แล้ว

      @@markday3145 you can look for the nyquist frequency.

  • @ahmetozdemir7173
    @ahmetozdemir7173 3 ปีที่แล้ว

    The video really intrigued me. I couldn't find a filter for my own project. I think it will work for me. thanks.
    I had questions I wanted to ask;
    1- Can the codes on the "Design and test a Butterworth lowpass filter" page be applied to the arduino as it is? Which frequency is the cutoff frequency?
    2- You have input a sine wave to the Arduino input pin. On the other hand, I need to enter 5v square wave after the shimmet trigger. Is the formulation suitable for this?
    3- Can bandpass filters be designed?
    Örneğin;
    30 - 40hz,
    60 - 80hz,
    Like 100 - 200hz...

    • @curiores111
      @curiores111  3 ปีที่แล้ว +1

      That's three questions ;)
      1 - Yes, it can be applied "as is", but will only work if you're trying to filter above about 10 Hz.
      2 - As I recall, I used a 5 Hz cutoff for everything. But you can always check the jupyter notebook to verify or set your own cutoff!
      3 - Certainly, a bandpass filter is just a combination of a lowpass and highpass filter. For stringent requirements there are a lot of filter designs. Just keep in mind that everything comes at a cost.

    • @ahmetozdemir7173
      @ahmetozdemir7173 3 ปีที่แล้ว

      @@curiores111 thank you for the answer. I believe I paid too much. Although I am an amateur, I have been working on this subject for several years. I just heard about the digital filter issue.
      Now, the hard part is this; Believe me, it is very difficult for me to do what I want because the programming language is python. However, I think that I need it so much and that time is constantly running against me, and I'm getting fed up with it now.

    • @ahmetozdemir7173
      @ahmetozdemir7173 3 ปีที่แล้ว

      @@curiores111 If I go back to the subject;
      I think you are using another module from arduino. What is this? Can't you do this directly on the arduino?
      Also, I'm really out of time and I urgently need to find a solution. For this reason, I am even willing to pay an amount that will not upset anyone for the software.

  • @ArifRahmanMY
    @ArifRahmanMY ปีที่แล้ว

    Fantastic explanation!

  • @muhammadosamaasghar9618
    @muhammadosamaasghar9618 2 ปีที่แล้ว +1

    This is IIR filter implementation, right?

  • @alimar1897
    @alimar1897 2 ปีที่แล้ว

    Wow, great explanation

  • @fakirfakir-e7d
    @fakirfakir-e7d ปีที่แล้ว

    Really impressive explanation. I was wondering why xn and yn required to be multiplied by factor 2? Just for better visualisation or something else?. Thanks

    • @curiores111
      @curiores111  ปีที่แล้ว

      Haha yeah good catch, that was to get the arduino serial plotter to show a comfortable scaling.

  • @youssefashraf7176
    @youssefashraf7176 3 ปีที่แล้ว +1

    Could you please guide me how can I implement low pass filter on a sensor practically ?

    • @curiores111
      @curiores111  3 ปีที่แล้ว

      You can apply the derived formula (implemented here th-cam.com/video/HJ-C4Incgpw/w-d-xo.html ) to any sensor signal. In this case xn would be your signal (from the sensor). And yn would be the filtered signal. If your sensor has multiple outputs, you can apply a filter to each. You could also consider using libraries or writing functions to do some of the work for if it's necessary.

  • @Jintsoo
    @Jintsoo ปีที่แล้ว

    This is amazing, DSP looks like pure magic when filtering out those harmonics!! A question regarding the math derivation, is that something you would realistically derive each time for every type of filter, or is it something you would memorize the implementation of? Because the math looks hard and I even studied that stuff 😅

    • @curiores111
      @curiores111  ปีที่แล้ว +1

      Definitely wouldn't derive it every time. You would write software...or use already written software. There are a few different options.

  • @phillipmaser132
    @phillipmaser132 ปีที่แล้ว

    Thanks for clarifying. Acceleration. I have data coming on the serial port, but it needs to be time date stamped. After filtering I see some hope, However, now I have edge detection problems. I need to capture a pulse with a width and height that meets a requirement. Take a read from a real time clock so I can generate a timeseries stream Time and Date on the x axis and data on the y. I am assuming I could send out the time date, raw and filter data. On the other end, I could build a timetable then plot with real time involved. Is there another way to generate time data on the receive side without an RTC? Just can't wrap my head around this.

  • @widget_wizard
    @widget_wizard 3 ปีที่แล้ว +7

    What did you use to create the animations? They're wonderful!

    • @curiores111
      @curiores111  3 ปีที่แล้ว +4

      Thank you! Mostly python. Camtasia for the annotations and that sort of thing.

    • @widget_wizard
      @widget_wizard 3 ปีที่แล้ว +3

      ​@@curiores111 absolutely spectacular. Especially the live waveform to DFT chart. Thanks for sharing!

    • @ahammadfahad3852
      @ahammadfahad3852 3 ปีที่แล้ว +2

      This is the type of channel that deserves subscribers.. Beautiful presentation.. I hope for a better future for this channel.😃

  • @TheOmnimorpheus
    @TheOmnimorpheus 3 ปีที่แล้ว

    Very good explanation 👍🏻👍🏻👍🏻👍🏻👍🏻

  • @정회조-w4p
    @정회조-w4p 3 ปีที่แล้ว

    your explanation is best!

  • @flywittzbeats4008
    @flywittzbeats4008 6 หลายเดือนก่อน

    Why am I just now learning this after countless videos on dsp and arduino?! Lol

  • @mohamedelsheraiy
    @mohamedelsheraiy 3 ปีที่แล้ว

    Great video as usual, thank you!

  • @HatibSetiana
    @HatibSetiana ปีที่แล้ว +1

    how you create plots in this video?

  • @nitinnarkhede6758
    @nitinnarkhede6758 7 หลายเดือนก่อน

    Very nice explanation, is it iir filter if yes please take little pain to explain the implementation of fir filter, thanks

  • @f.5818
    @f.5818 3 ปีที่แล้ว

    At 2:25 it shows 50Hz but it looks like it's between 100 and 1,000. Isn't that a mistake?

    • @curiores111
      @curiores111  3 ปีที่แล้ว +1

      The axis is measured in angular frequency (radians), so it's between 16 and 160 Hz.

  • @palakthareja2257
    @palakthareja2257 5 หลายเดือนก่อน

    What does the x and y axis represent in the graph?

  • @Horesmi
    @Horesmi 2 ปีที่แล้ว

    Somehow this has been useful in controlling a spacecraft in a videogame by using a physics bug caused by certain kinds of interractions with interior doors.
    The doors make the ship wobble, this will be great for ignoring the high frequency noise.

    • @curiores111
      @curiores111  2 ปีที่แล้ว +1

      Interesting, I would like to see what the data looks like...

    • @Horesmi
      @Horesmi 2 ปีที่แล้ว

      @@curiores111 I mostly just eyeball the controllers haha. I could write a code to print out graphs but I don't feel like it.
      I will consider it though. The graphs would make for great interior design inside the ship, make it look all sci-fi and shit.

  • @curiores111
    @curiores111  2 ปีที่แล้ว +4

    For those that care less about the theory, I created a new direct Arduino implementation, here's the video: th-cam.com/video/eM4VHtettGg/w-d-xo.html
    There's also a high-pass version now:
    github.com/curiores/ArduinoTutorials/blob/main/BasicFilters/ArduinoImplementations/HighPass/HighPass.ino
    with a few details about the derivation here:
    github.com/curiores/ArduinoTutorials/tree/main/BasicFilters/Design/HighPass

  • @mohammedalshrief532
    @mohammedalshrief532 10 หลายเดือนก่อน

    What do you use to display these curves and equations in this amazing way?🎉🎉

  • @alirezaakhavi9943
    @alirezaakhavi9943 ปีที่แล้ว

    really amazing video thank you very much! very informative beautifully explained and technical! subbed! :)

  • @malikjavadov366
    @malikjavadov366 ปีที่แล้ว

    Damn, this was so smooth

  • @RCShowdown
    @RCShowdown 3 ปีที่แล้ว

    Thank you so much for this perfect and easy to follow explaination!! Thumbs Up! :)

    • @curiores111
      @curiores111  2 ปีที่แล้ว

      Well thank you friend. 😊

  • @shahruladli687
    @shahruladli687 ปีที่แล้ว

    Hello can i know how to get the graph at the end of the video?

  • @RESC_Eng
    @RESC_Eng 2 ปีที่แล้ว

    your videos are fantastic reference.really the words is too few to thank you.
    I do the same using matlab , it is simpler than python code, just two or three instructions do the same.

  • @aliala8008
    @aliala8008 3 ปีที่แล้ว

    Thanks for video. I will wait the others :)

    • @curiores111
      @curiores111  3 ปีที่แล้ว +1

      Thank you, friend. More coming soon!

  • @RoboCNCnl
    @RoboCNCnl 3 ปีที่แล้ว

    Great video, may i ask what you use to make such great animations?

    • @curiores111
      @curiores111  3 ปีที่แล้ว +1

      thanks :) I used python for the animated plots and camtasia for the rest.

    • @RoboCNCnl
      @RoboCNCnl 3 ปีที่แล้ว

      @@curiores111 amazing work !