>>> By enrolling in this course you agree to the End User License Agreement as set out in the FAQ. Once enrolled you can access the license in the Resources area <<<
This course, Advanced Machine Learning and Signal Processing, is part of the IBM Advanced Data Science Specialization which IBM is currently creating and gives you easy access to the invaluable insights into Supervised and Unsupervised Machine Learning Models used by experts in many field relevant disciplines. We’ll learn about the fundamentals of Linear Algebra to understand how machine learning modes work. Then we introduce the most popular Machine Learning Frameworks for python Scikit-Learn and SparkML. SparkML is making up the greatest portion of this course since scalability is key to address performance bottlenecks. We learn how to tune the models in parallel by evaluating hundreds of different parameter-combinations in parallel. We’ll continuously use a real-life example from IoT (Internet of Things), for exemplifying the different algorithms. For passing the course you are even required to create your own vibration sensor data using the accelerometer sensors in your smartphone. So you are actually working on a self-created, real dataset throughout the course.
If you choose to take this course and earn the Coursera course certificate, you will also earn an IBM digital badge. To find out more about IBM digital badges follow the link ibm.biz/badging.

Taught By

Romeo Kienzler

Nikolay Manchev

Transcript

I wrote a couple of simple Python scripts. Just ignore the code for the time being, we don't care about the code. It's all very basic. And the purposes of the first script is to plot the way file so that you see the combined signal. And then the second script will actually apply Fourier transform and decompose this signal to its original frequencies. So let me first run this script, which will plot our signal. As you saw, the duration of the signal is about 4 seconds, so 4,000 milliseconds. You can see this on the x axis here, and then on the y axis, you have the amplitude of the signal, and the signal you can see slowly fades away because it gradually gets quieter. You can hear this in the recording. Now, if I take the same file and I apply Fourier transform, my expectation is to get this plot, which we call the spectrogram, this is essentially the energy distribution of the signal over the frequency. So my expectation is, let me find the script, to get the spectrogram and see the individual frequencies of all the signals that make up this cord. So let me run this. And this is what we get. Now, by the way, if you are curious and pause the video and look at my Python script. You will see that what I do here is I'm just using an out of the box function that's available in Python to do the Fourier transform because for the time being I'm treating the Fourier transform as a black box, right? I don't care how it does. It's magic. We just want to know what it is, how to use it and then at certain point later, we will open the box and look at the math. So if we now focus on the plot, you see here that we have different signals. It's not perfect, we won't see three perfect signals, three perfect bars for each individual key because this is an actual piano. And there are harmonics and there is also noise in the recording and so on and so on. But what I'm interested in is to focus on the top three signals in terms of strength. So if I look at this plot, maybe I focus on all the signals over 750 or 800, whatever it means. You don't care about the scale of the y-axis because it is not calibrated to my recording equipment and so on and so on, so let's just look at it as the amplitude of the signal and that's it. We don't care about the specific units. So what I will do is I will just trim this plot and look only at the signals above 800. So here I will put this restriction in my script, and because it's a bit difficult to accelerate the plot, I will also print the frequencies. Now, by the way, you can notice that all my signals are somewhere here between, I would say 20 Hertz and not above 4000 Hertz anyway. So this is the range of the piano, this is what I expect to see, right. So let's run the script with the filter and see what we end up with, right. So now we have three signals, you can see them here. These are the most powerful signals in my recording. There are actually four, but the first two are super close together. The first one is something between 329, 330 hertz, so maybe 329.5, something like this, that are just kind of overlapping. The second one is 415 hertz, and the third one is 555 hertz. What does this mean? Let me open a browser, and oops, not here. I will open a browser. Okay, and I will type, piano keys frequencies, right. So our first signal was at 329, 330. So let's look it up. That's middle C here. So we have 329.6 is actually E natural in the middle C octave. So that's exactly the first note in our chord, all right. The second signal is at 415 Hertz. So if we go up to 415 hertz here, you see that this is exactly G sharp. And that signal is at 555 hertz, if we go up to 554.3, this is exactly C sharp. So in other words, mission accomplished. We used Fourier transform against a complex signal, and we were able to decompose it and verify that it actually works perfectly.

Explore our Catalog

Join for free and get personalized recommendations, updates and offers.