<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Vinuri Piyathilake on Medium]]></title>
        <description><![CDATA[Stories by Vinuri Piyathilake on Medium]]></description>
        <link>https://medium.com/@vinuri?source=rss-ba79171b5052------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*RLMRXhnY4Ozd9kxCVsbHJQ.png</url>
            <title>Stories by Vinuri Piyathilake on Medium</title>
            <link>https://medium.com/@vinuri?source=rss-ba79171b5052------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Thu, 14 May 2026 14:18:42 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@vinuri/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[A Complete Introduction to Machine Learning Concepts]]></title>
            <link>https://medium.com/new-writers-welcome/a-complete-introduction-to-machine-learning-concepts-3ff2a8283e07?source=rss-ba79171b5052------2</link>
            <guid isPermaLink="false">https://medium.com/p/3ff2a8283e07</guid>
            <category><![CDATA[deep-learning]]></category>
            <category><![CDATA[new-writers-welcome]]></category>
            <category><![CDATA[unsupervised-learning]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <dc:creator><![CDATA[Vinuri Piyathilake]]></dc:creator>
            <pubDate>Fri, 19 Nov 2021 09:24:59 GMT</pubDate>
            <atom:updated>2021-11-19T09:24:59.286Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/700/1*bysfGROvAWQAci4DEXOMGg.png" /><figcaption>Image by author</figcaption></figure><p>Hey Guys<strong><em> </em></strong>👋 So, this article is for the ones who are completely new to Machine Learning. If you’re a student in IT, Computer Science or any other related field, most of you may have probably heard of terms like Machine Learning, AI, and Deep Learning etc. but did you have a proper understanding about what Machine Learning is and how it relates to AI and Deep Learning? As a student, I had to struggle a lot to truly understand the concept of machine learning with the complicated definitions on the internet. Therefore, through this article I’m trying to provide you with a simple yet complete introduction to Machine Learning, and I’m hoping to continue this as an article series covering all of the key topics of ML. Well, let’s get started!</p><h3>What is Machine Learning ?</h3><p><em>“Machine learning is the study of computer algorithms that can improve automatically through experience and by the use of data. It is seen as a part of artificial intelligence.”</em> ~ Wikipedia</p><p>You may have come across many definitions of machine learning on the internet, such as the one above, but I’m sure that most of you will not grasp it from such technical definitions. So I’ll try to explain the concept using a real world scenario. Do you aware that machine learning is used in many of the activities we do in our day-to-day life? We use email, social media networks, Google Maps, Netflix, and other such apps every day, but you may not realize that they are driven by ML. Since we are all familiar with emails, let me explain the idea of machine learning using email spam filtering. You might have noted that some of your emails are automatically sent to the spam folder without your assistance. Have you thought how this happens? That is Machine Learning. Your email program monitors which emails you do or do not mark as spam, and based on that learns how to better filter spam. So basically, it’s the field of study that allows computer programs to learn without being explicitly programmed. This is effectively explained by Tom Mitchell in the following definition.</p><p><em>“A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.”</em> ~ Tom Mitchell (1998)</p><p>According to the above definition, the ultimate <strong>Task</strong> in spam filtering is to classify emails as spam or not spam, the <strong>Experience</strong> is watching you label emails as spam or not spam, and the <strong>Performance</strong> is the number (or fraction) of emails correctly classified as spam/not spam. So, I hope you now have a good sense of machine learning than before. Some people misunderstand machine learning with data analytics, but data analytics only focuses on using data to generate insights, while machine learning focuses on creating and training algorithms through data so that they can function independently.</p><h3>Artificial Intelligence vs. Machine Learning vs. Deep Learning?</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*Cj1AjyGOJ_OuQ9RfS3-Pbw.png" /><figcaption><a href="https://d1jnx9ba8s6j9r.cloudfront.net/blog/wp-content/uploads/2018/03/AI-vs-ML-vs-Deep-Learning.png">https://d1jnx9ba8s6j9r.cloudfront.net/blog/wp-content/uploads/2018/03/AI-vs-ML-vs-Deep-Learning.png</a></figcaption></figure><p>Machine Learning is a subset of Artificial Intelligence and again Deep Learning is a subset of Machine Learning. Artificial Intelligence is a technique which allows the machines to act like humans by replicating their behavior and nature, and it’s a very broader concept. Deep Learning is inspired by the structure and function of the brain called artificial neural networks. This ANN (Artificial Neural Network) algorithm structure, the lower need for human intervention, and the larger data requirements are what defines deep learning special within the field of machine learning. I’m not going to elaborate deeply about these topics since this article is mainly focusing on machine learning. I believe you now have a fundamental understanding of how machine learning relates to AI and DL. So, let’s dive a little more into machine learning.</p><h3>Machine Learning Algorithms</h3><p>Machine learning includes the use of machine learning algorithms and models. Some takes machine learning algorithms and models as the same and that’s totally wrong. Machine learning algorithms are the engines of machine learning. It is similar to any other algorithm in computer science. What it makes different from the traditional algorithm is that it takes an input and an output and develop some logic which can then be used to work with a fresh input to generate an output. Traditional algorithms take input and some logic and gives the output. Machine learning algorithms perform <em>pattern recognition</em>. They learn from data, or are fit on a dataset.</p><p>A model is the output of a machine learning algorithm run on data. It is comprised of model data and a prediction algorithm.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/728/1*eHTCtQh6WdziiT5Sy4LcVw.png" /><figcaption>Image by author</figcaption></figure><p>Okay, we’ve cleared up our concerns about machine learning algorithms and models. So, let’s discover about the different forms of machine learning algorithms. We can categorize ML algorithms into two broader classes, which are as follows.</p><pre>- Supervised learning<br>- Unsupervised learning</pre><p>Others include reinforcement learning, recommender systems, and so on.</p><h3>Supervised Learning</h3><p>Here, the algorithm learns to map a given input to a desired output, such that it can map an unforeseen input to an output. It is called supervised learning because this can be thought of as a teacher supervising the learning process. Simply said, you have input variable X and an output variable Y (right answers given), and you use an algorithm to learn the mapping function from the input to the output.</p><p><strong>Y = f(X)</strong></p><p>This is based on function approximation and in the end of the process we pick the function that best describes the input data, the one that produces the best estimate of y for a given X. When the algorithm achieves an acceptable level of performance, the learning process comes to an end.</p><p>Again, supervised learning can be categorized as Classification and Regression.</p><p><strong>Regression</strong></p><p>This predicts continuous/real value outputs such as temperature, age, salary, price, etc. Let me explain it simply by using the most famous housing price prediction problem. Suppose you have a dataset on the houses’ size(in sq feet) and its price(in dollars) and you want to predict the prices for any given size. Here the house size is the independent variable(x) and housing price is the dependent variable(y). So, you can plot the data like the following and pick the function that best describes the input data.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IpovdLkVlrMw6pirpoL-sw.png" /><figcaption><a href="https://slideplayer.com/slide/9537512/30/images/23/Simple+Linear+Regression+Example%3A+Graphical+Representation.jpg">https://slideplayer.com/slide/9537512/30/images/23/Simple+Linear+Regression+Example%3A+Graphical+Representation.jpg</a></figcaption></figure><p>Here, we only considered one variable regarding the housing prices and it is called simple linear regression. You can use Multivariate Linear Regression if you consider more than one variable.</p><p>Support Vector Regression and Poisson Regression are some other popular regression algorithms besides the linear regression.</p><p><strong>Classification</strong></p><p>Classification algorithms are used to predict/classify the discrete values such as Male or Female, True or False etc. It is the process of finding a function that helps in dividing the dataset into classes based on different parameters. As an example, take the email spam filtering process discussed in the beginning. There were two known categories: spam and non-spam. Since this is a supervised process, the categories are always known, and we solely need to classify the dataset based on their parameters to those known categories.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ujgRvBwNmawWZUmLS0u2cA.png" /><figcaption><a href="https://miro.medium.com/max/1164/1*589X2eXJJkatGRG-z-s_oA.png">https://miro.medium.com/max/1164/1*589X2eXJJkatGRG-z-s_oA.png</a></figcaption></figure><h3>Unsupervised learning</h3><p>Unsupervised learning occurs when there is only input data (X) and no corresponding output variables. That means, there are no correct answers and there’s no teacher to supervise as in supervised learning procedure. Some real-world examples are recommender systems, customer segmentation, and medical imaging.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*p5ObsB_w0KvQZcb7Q5NcOw.png" /><figcaption><a href="https://miro.medium.com/max/1400/1*BKvYt1EHtzHOd_HWjm-Jrw.png">https://miro.medium.com/max/1400/1*BKvYt1EHtzHOd_HWjm-Jrw.png</a></figcaption></figure><p>So, that’s it. I know this is a pretty long article, but I hope it covers you with the fundamental knowledge you need to get started with machine learning. Your feedback is highly appreciated. Let’s catch up soon with the upcoming articles in the series. Keep reading 🖤</p><p><a href="https://vinuri.medium.com/subscribe/@vinuri">Get an email whenever Vinuri Piyathilake publishes.</a></p><p><strong><em>References</em></strong></p><pre><strong>[1]</strong> Theobald, Oliver. Machine Learning for Absolute Beginners, 2021.<br><strong>[2]</strong> Burkov, Andriy. The Hundred-Page Machine Learning Book, 2019.</pre><p>Check out my other recent articles 👇</p><ul><li><a href="https://vinuri.medium.com/discrete-wavelet-transform-analysis-on-audio-signals-using-python-94744a418601">Discrete Wavelet Transform Analysis on Audio Signals using Python</a></li><li><a href="https://medium.com/@vinuri.piyathilake/dsp-1-what-is-digital-signal-processing-5b1605c5064e">DSP#1. What is Digital Signal Processing?</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3ff2a8283e07" width="1" height="1" alt=""><hr><p><a href="https://medium.com/new-writers-welcome/a-complete-introduction-to-machine-learning-concepts-3ff2a8283e07">A Complete Introduction to Machine Learning Concepts</a> was originally published in <a href="https://medium.com/new-writers-welcome">New Writers Welcome</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is Digital Signal Processing?]]></title>
            <link>https://medium.com/new-writers-welcome/what-is-digital-signal-processing-54efcb583852?source=rss-ba79171b5052------2</link>
            <guid isPermaLink="false">https://medium.com/p/54efcb583852</guid>
            <category><![CDATA[internships]]></category>
            <category><![CDATA[introduction]]></category>
            <category><![CDATA[digital-signal-processing]]></category>
            <category><![CDATA[signal-processing]]></category>
            <category><![CDATA[newbie]]></category>
            <dc:creator><![CDATA[Vinuri Piyathilake]]></dc:creator>
            <pubDate>Thu, 11 Nov 2021 08:51:37 GMT</pubDate>
            <atom:updated>2021-11-11T08:51:37.482Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3E6G4hqj2UOQkcMkTwWx5g.png" /><figcaption>Image by author</figcaption></figure><p>Hey folks👋 So, recently I started working as a research intern in an interesting project at my university (I’ll let you know more about this project in a separate article😉). The project is closely related to the domain of digital signal processing, and I thought of sharing the knowledge on DSP I’m gaining while working, through a series of articles. This is the first article in the series, and I’ll try my best to make it clear to readers from any field. So here we go💁‍♀️</p><p>You’re probably aware that the mobile phones, computer equipment, and all the other digital electronics we use in our daily lives transmit digital signals. Thus, Digital Signal Processing is all about these digital signals, which are a special form of data that differentiates it from other fields of computer science. It is the mathematics, the algorithms, and the techniques used to manipulate these signals. It takes real-world signals like voice, audio, video, temperature, pressure, or position that have been digitized and then mathematically process them.</p><p><em>“Digital signal processing (DSP) is the process of analyzing and modifying a signal to optimize or improve its efficiency or performance. It involves applying various mathematical and computational algorithms to analog and digital signals to produce a signal that’s of higher quality than the original signal.”</em> ~Techopedia</p><p>With all of these definitions, you may assume that digital signal processing is heavily reliant on mathematical stuff and is extremely difficult to learn. Yes, it is heavily based on mathematics, but we need this level of detailed mathematics only to grasp the theoretical consequences of the work. The majority of practical DSP techniques can be learned and applied without the usual constraints of extensive mathematics and theory, which will be discussed in the upcoming articles.</p><p>Now that we have a fundamental understanding of what digital signal processing is, let’s have a look at it’s evolution. Digital Signal Processing emerged in the 1960s and 1970s, around the era that digital computers were invented. Due to the high cost of computers at the time, DSP was confined to a few important applications in the areas of radar and sonar, oil exploration, space exploration, and medical imaging. With the revolution of personal computers in the 1980s and 1990s, DSP started to be applied in the commercial marketplace including mobile phones, compact disc players etc. However, it is currently being utilized in a wide range of sectors, including space, medical, commercial, telephone, military, scientific, industrial, and so on, sparking a technological breakthrough.</p><figure><img alt="https://www.dspguide.com/graphics/F_1_1.gif" src="https://cdn-images-1.medium.com/max/1024/1*XI_4vmKYKfzvHFK2-bjVPQ.png" /><figcaption><a href="https://www.dspguide.com/graphics/F_1_1.gif">https://www.dspguide.com/graphics/F_1_1.gif</a></figcaption></figure><p>The image above depicts some of the uses of DSP in various sectors. If you’re a closely related person to an IT or computer science field, you may well aware that DSP is used in image processing, audio processing and telecommunications etc.</p><p>Okay, now we got a basic background knowledge of DSP as beginners. Last but not least, there is another important aspect that you should be aware of. DSP is a highly interdisciplinary field. It is dependent on technical studies in many adjacent fields, and we cannot precisely identify the boundaries between them, as sometimes they overlap. Some of those areas you will need to study together include Communication Theory, Numerical Analysis, Probability and Statistics, and Digital Electronics etc.</p><p>I hope this article has helped you with some knowledge into Digital Signal Processing. Your feedback is highly appreciated. Let’s catch up soon with the upcoming articles in the series. Keep reading 🖤</p><p><a href="https://vinuri.medium.com/subscribe/@vinuri">Get an email whenever Vinuri Piyathilake publishes.</a></p><p><strong><em>References</em></strong></p><pre><strong>[1]</strong> Proakis, John, and Dimitris Manolakis. Digital Signal Processing, 2006.<br><strong>[2]</strong> <em>“The Scientist And Engineer&#39;s Guide To Digital Signal Processing.” The Scientist And Engineer&#39;s Guide To Digital Signal Processing, </em><a href="http://www.dspguide.com,"><em>w</em>ww.dspguide.com,</a> <a href="https://www.dspguide.com">https://www.dspguide.com</a>.</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=54efcb583852" width="1" height="1" alt=""><hr><p><a href="https://medium.com/new-writers-welcome/what-is-digital-signal-processing-54efcb583852">What is Digital Signal Processing?</a> was originally published in <a href="https://medium.com/new-writers-welcome">New Writers Welcome</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Discrete Wavelet Transform Analysis on Audio Signals using Python]]></title>
            <link>https://python.plainenglish.io/discrete-wavelet-transform-analysis-on-audio-signals-using-python-94744a418601?source=rss-ba79171b5052------2</link>
            <guid isPermaLink="false">https://medium.com/p/94744a418601</guid>
            <category><![CDATA[audio-signal-processing]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[wavelet-transform]]></category>
            <category><![CDATA[scipy]]></category>
            <category><![CDATA[python]]></category>
            <dc:creator><![CDATA[Vinuri Piyathilake]]></dc:creator>
            <pubDate>Wed, 03 Nov 2021 17:31:43 GMT</pubDate>
            <atom:updated>2021-11-11T01:48:56.685Z</atom:updated>
            <content:encoded><![CDATA[<h3>Discrete Wavelet Transform Analysis on Audio Signals Using Python</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/1*OTRWHai0Yf0WsyZv2LNemg.png" /><figcaption>Discrete Wavelet Transform Analysis on Audio Signals using Python, <em>Image by the author</em>.</figcaption></figure><p>Over the last two decades, Wavelet Transform (also known as Wavelet Decomposition) has evolved into a powerful signal processing technique. Let’s start with a brief theoretical overview of the Wavelet Transform.</p><p><em>“ The wavelet transform translates the time-amplitude representation of a signal to a time-frequency representation that is encapsulated as a set of wavelet coefficients. These wavelet coefficients can be manipulated in a frequency-dependent manner to achieve various digital signal processing effects. ” </em>~<a href="https://www.ics.uci.edu/~asuncion/180/Asuncion_Wavelet_Final.pdf"><em>Arthur Asuncion, Signal Processing Applications of Wavelets</em></a></p><p>Discrete Wavelet Transform(DWT) and Continuous Wavelet Transform (CWT) are the two major categories of Wavelet Transform. CWT operates over every possible scale and translation, whereas DWT uses a specific subset of scale and translation values. Technically, the CWT computed by computers is not CWT; it is a discretized form of the CWT.</p><p>In this article, I’ll be mainly focusing on the practical implementation of the Discrete Wavelet Transform and won’t be paying much attention to the theoretical stuff from here on. I’m using audio signal data, which is a <strong>1-D signal</strong>, to perform single-level and multi-level discrete wavelet transforms, and I hope you’ll have a better understanding of the technical aspects by the end. Python is used for coding, thus having basic knowledge of Python is required to follow this article. So, Let’s get started!</p><h4>Single Level Discrete Wavelet Transform</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*1Jzq9VtGheuuMKNNbe2xEw.png" /><figcaption>Single Level Discrete Wavelet Decomposition Tree, <em>Image by the author</em>.</figcaption></figure><p>The original signal(S) is decomposed/transformed into a low-frequency band (approximation coefficients, cA) and a higher frequency band (detail coefficients, cD) in Single Level Discrete Wavelet Transform. First, let’s have a look at the support libraries we’ll be using with Python.</p><pre><strong>PyWavelets</strong><br>An open source wavelet transform software for Python. It combines a simple high level interface with low level C and Cython performance.<br><a href="https://pywavelets.readthedocs.io/en/latest/">https://pywavelets.readthedocs.io/en/latest/</a></pre><pre><strong>scipy.io → wavfile</strong><br>Read and Write audio data.<br><a href="https://docs.scipy.org/doc/scipy/reference/generated/scipy.io.wavfile.read.html">https://docs.scipy.org/doc/scipy/reference/generated/scipy.io.wavfile.read.html</a></pre><pre><strong>MatplotLib</strong><br>Data Visualization and Graphical Plotting library for Python<br><a href="https://matplotlib.org/stable/tutorials/introductory/pyplot.html">https://matplotlib.org/stable/tutorials/introductory/pyplot.html</a></pre><pre><strong>NumPy</strong><br>Performs a wide variety of mathematical operations on arrays.<br><a href="https://numpy.org/doc/stable/user/quickstart.html">https://numpy.org/doc/stable/user/quickstart.html</a></pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_OmZ8BdC93QcxbyQULz6cQ.png" /><figcaption>Support Libraries, Created using <a href="https://carbon.now.sh">Carbon</a>.</figcaption></figure><p>After importing the above libraries inside your code, you should proceed by reading the audio file. The wavefile.read() function returns the sample rate (in samples/sec) along with all the data (a NumPy array) read from the input WAV file.</p><p>In addition, I have obtained time(t) for plotting purposes. The np.arange() is a Numpy method that returns the ndarray object containing evenly spaced values within the given range. So, np.arange(len(data)) in the following code creates a NumPy array of the length of the data. We could find the time in seconds by dividing it by the float value of the sample rate. Furthermore, we normalize audio data in the -1 to +1 range since audio data is read as 16(int), which carries very large values.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fcarbon.now.sh%2Fembed%2F6BHI28kPzLido9KF8a4x%3F&amp;display_name=Carbon&amp;url=https%3A%2F%2Fcarbon.now.sh%2F6BHI28kPzLido9KF8a4x&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;type=text%2Fhtml&amp;scroll=auto&amp;schema=carbon" width="1024" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/bfe7aa310e80f857055bb8eda2e5cfc9/href">https://medium.com/media/bfe7aa310e80f857055bb8eda2e5cfc9/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/745/1*8q8G-qpf0lPPuBszjCj7Hg.png" /><figcaption>Output Values, <em>Image by the author</em>.</figcaption></figure><p>Now that we’ve finished reading, retrieving, and normalizing audio data, we can move on to the relevant wavelet transformation code snippet. pywt.dwt(data, ‘bior6.8’, ‘per’) returns the approximation coefficients (cA) and detail coefficients (cD). Here, <em>bior6.8</em> is the mode, and <em>per</em> (Periodized extension (2)) is the extmode.</p><p>You can discover more about these modes and extmodes by clicking <a href="https://in.mathworks.com/help/wavelet/ref/dwt.html#d123e24925">here</a>. pywt.idwt(cA, cD, ‘bior6.8’, ‘per’) executes the inverse discrete wavelet transform and returns y, which is reconstructed audio data using cA and cD.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8vExg9rIjnYcrUUwxY2Kpw.png" /><figcaption>DWT &amp; IDWT, Created using <a href="https://carbon.now.sh">Carbon</a>.</figcaption></figure><p>Finally, we can use the wavfile.write() function to convert these cA, cD, and y into audio WAV files. Listen to the following output audio files and see the difference. cA comprises low-frequency components but no high-frequency components, whereas cD contains high-frequency components but no low-frequency components.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fw.soundcloud.com%2Fplayer%2F%3Furl%3Dhttps%253A%252F%252Fapi.soundcloud.com%252Ftracks%252F1153145335%26show_artwork%3Dtrue&amp;display_name=SoundCloud&amp;url=https%3A%2F%2Fsoundcloud.com%2Fvinuri-samalka%2Fca%3Fin%3Dvinuri-samalka%2Fsets%2Fsingle-dwt%26si%3D23002f0c2c5048c59b2e9a32b23e7e54&amp;image=https%3A%2F%2Fi1.sndcdn.com%2Fartworks-7DqOStqrjJKKDrPE-fRCGJA-t500x500.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=soundcloud" width="800" height="166" frameborder="0" scrolling="no"><a href="https://medium.com/media/1ae5db1cae5169f6fcbdceb269fe6198/href">https://medium.com/media/1ae5db1cae5169f6fcbdceb269fe6198/href</a></iframe><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fw.soundcloud.com%2Fplayer%2F%3Furl%3Dhttps%253A%252F%252Fapi.soundcloud.com%252Ftracks%252F1153145311%26show_artwork%3Dtrue&amp;display_name=SoundCloud&amp;url=https%3A%2F%2Fsoundcloud.com%2Fvinuri-samalka%2Fcd%3Fin%3Dvinuri-samalka%2Fsets%2Fsingle-dwt%26si%3Dc64da8ef35db4925b3c4186a23b0d0e7&amp;image=https%3A%2F%2Fi1.sndcdn.com%2Fartworks-7DqOStqrjJKKDrPE-fRCGJA-t500x500.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=soundcloud" width="800" height="166" frameborder="0" scrolling="no"><a href="https://medium.com/media/918142303759e5b9d6961e02e44abf8f/href">https://medium.com/media/918142303759e5b9d6961e02e44abf8f/href</a></iframe><p>So, that’s it. We successfully developed a code for a single DWT of audio signals using Python. You may use the following code for data plotting and visualization purposes, which I’m not going to explain here.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fcarbon.now.sh%2Fembed%2FXoX81vlu7He6dxVIR4sh%3F&amp;display_name=Carbon&amp;url=https%3A%2F%2Fcarbon.now.sh%2FXoX81vlu7He6dxVIR4sh&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;scroll=auto&amp;schema=carbon" width="1024" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/be11cc93f34b6801a9d80d873d20e13c/href">https://medium.com/media/be11cc93f34b6801a9d80d873d20e13c/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*--vg0SKzb4hSMmfhcraFJg.png" /><figcaption>plot.png, <em>Image by author</em></figcaption></figure><h4>Multi-Level Discrete Wavelet Transform</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*FIJOmen0cwUSJuk73NYS7w.png" /><figcaption>Two Level Discrete Wavelet Decomposition Tree, <em>Image by the author</em>.</figcaption></figure><p>In multi-level DWT, the low-frequency band (approximation coefficients, cA) is used for further decomposition at each subsequent level. We are referring to two levels in this article, and you can see that cA1 has been decomposed again into cA2 and cD2 in the above image.</p><p>I’m not going to explain the relevant code for this from scratch since it is the same as the previous code except for the functions wavedec() and waverec(), that are applied in the multi-level DWT. pywt.wavedec(data, ‘bior6.8’, mode=’sym’, level=2) returns ordered list of coefficients arrays(cA2, cD2, cD1). It simply iterates on the approximation coefficients of the previous level and we only need to specify the number of levels. Similarly, the reconstructed signal is returned by pywt.waverec(coeffs, ‘bior6.8’, mode=’sym’).</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fcarbon.now.sh%2Fembed%2F3wyD4igVLzfVjFU5zomL%3F&amp;display_name=Carbon&amp;url=https%3A%2F%2Fcarbon.now.sh%2F3wyD4igVLzfVjFU5zomL&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;scroll=auto&amp;schema=carbon" width="1024" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/8302d963031d7eae0ff8b815948798d4/href">https://medium.com/media/8302d963031d7eae0ff8b815948798d4/href</a></iframe><p>So, congratulations on making it this far🎉 I know this is a pretty long article, but I hope it has equipped you with all the practical knowledge required to perform single and multi-level DWT using Python. Try developing a code to perform DWT on images as well. Your feedback is highly appreciated. Let’s catch up soon with the upcoming articles. Keep reading 🖤</p><p><strong><em>References</em></strong></p><p>[1] G. Tzanetakis, G. Essl &amp; P. Cook, <a href="https://www.researchgate.net/publication/236625432_Audio_Analysis_using_the_Discrete_Wavelet_Transform">Audio Analysis using the Discrete Wavelet Transform</a>(2001), Proceedings of the Conference in Acoustics and Music Theory Applications.</p><p>[2] Python for Engineers, <a href="https://new.pythonforengineers.com/blog/audio-and-digital-signal-processingdsp-in-python">Audio and Digital Signal Processing(DSP) in Python</a> (2021).</p><p><strong><em>Useful Resources</em></strong></p><ul><li>GitHub Repository: <a href="https://github.com/vinuri-s/DWT-of-an-Audio-Signal.git">https://github.com/vinuri-s/DWT-of-an-Audio-Signal.git</a></li><li>Audio WAV Files: <a href="https://drive.google.com/drive/folders/1rWT4NgkpdbwTdD901VGwXCIcUpNCUw5t?usp=sharing">https://drive.google.com/drive/folders/1rWT4NgkpdbwTdD901VGwXCIcUpNCUw5t?usp=sharing</a></li></ul><p><a href="https://vinuri.medium.com/subscribe/@vinuri">Get an email whenever Vinuri Piyathilake publishes.</a></p><p>Check out my other recent articles 👇</p><ul><li><a href="https://vinuri.medium.com/an-introduction-to-machine-learning-1b7af1f00507">An Introduction to Machine Learning</a></li><li><a href="https://medium.com/@vinuri.piyathilake/dsp-1-what-is-digital-signal-processing-5b1605c5064e">DSP#1. What is Digital Signal Processing?</a></li></ul><p><em>More content at </em><a href="http://plainenglish.io/"><em>plainenglish.io</em></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=94744a418601" width="1" height="1" alt=""><hr><p><a href="https://python.plainenglish.io/discrete-wavelet-transform-analysis-on-audio-signals-using-python-94744a418601">Discrete Wavelet Transform Analysis on Audio Signals using Python</a> was originally published in <a href="https://python.plainenglish.io">Python in Plain English</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A Quick Overview of Distributed Systems]]></title>
            <link>https://vinuri.medium.com/distributed-systems-ef11337d28c0?source=rss-ba79171b5052------2</link>
            <guid isPermaLink="false">https://medium.com/p/ef11337d28c0</guid>
            <category><![CDATA[introduction]]></category>
            <category><![CDATA[middleware]]></category>
            <category><![CDATA[distribute-computing]]></category>
            <category><![CDATA[distributed-systems]]></category>
            <category><![CDATA[centralized-systems]]></category>
            <dc:creator><![CDATA[Vinuri Piyathilake]]></dc:creator>
            <pubDate>Fri, 02 Jul 2021 05:21:56 GMT</pubDate>
            <atom:updated>2021-11-10T16:45:55.562Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NI272PNaT6eOuBzJ1eHTQA.png" /><figcaption><a href="https://www.8bitmen.com/wp-content/uploads/2018/11/blockchain-3508589_1280-min.png">https://www.8bitmen.com/wp-content/uploads/2018/11/blockchain-3508589_1280-min.png</a></figcaption></figure><p>Have you ever thought of how Facebook stores and serves thousands of petabytes of user data, which includes photos, videos, likes, and so on? This question has a solution in <strong>distributed systems</strong>. Now you may be wondering what a distributed system is. Don’t worry:) Through this article, I’ll cover the majority of the aspects of distributed systems briefly, including their characteristics, drawbacks, and advantages. First, let’s take a quick look at the evolution of distributed systems.</p><p>In the 1950s and 1960s, operating systems only supported single process computing. A single computer could only do one task at a time. If we need to complete multiple tasks simultaneously, we will need multiple computers running in parallel. Then came time-sharing, which was enabled by multitasking operating systems. In the late 1980s, with the availability of powerful desktop computers that can be interconnected through very fast networks, centralized multi-processor parallel architectures have been progressively replaced by distributed system architectures.</p><p><strong>So, What is a Distributed System ?</strong></p><p>A distributed system is composed of <strong>nodes</strong> (computers, mobile devices, etc.) that are linked together by <strong>communication links</strong> (cables, Wi-Fi, etc.). The system components have been distributed over these various computers/nodes. Each node has adequate computational power to collaborate on a task. The aggregate of the decisions of the individual nodes determines the final behaviour of the system. Users have equal access to data and can enable user privileges as necessary.</p><p>Distributed systems have more than one component on more than one host. A <strong>host</strong> is a computer that hosts some parts of a distributed system. Therefore, a distributed system can be defined as a “<strong>collection of autonomous hosts that are connected over a computer network</strong>“.</p><p>Following are the common characteristics of a distributed system</p><pre>• Consensus protocols are used by machines to agree on the same values/ transactions/ commands etc.<br>• Every node maintains its own time/clock.<br>• Nodes fail independently without having a significant impact on the overall system.<br>• Multiple autonomous components.<br>• It is possible to use the components solely. (Components are not shared by all users)<br>• Parallel processes have been executed in distributed systems. (Software runs in concurrent processes on different processors)<br>• Multiple points of failure.<br>• Multiple points of control.<br>• Resources may not be accessible.</pre><p>Now that we’ve gained a general idea of what a distributed system is, let’s look at its advantages and drawbacks.</p><p><strong>Advantages of Distributed Systems</strong></p><ul><li>In a distributed system, there is no central point of failure. Even if a node fails or is removed from the system, the system can still function. The fault tolerance is quite high.</li><li>Since each node has considerable processing power, the workload could be divided among multiple machines. This lowers the overloading of a single machine.</li><li>It enables multiple users to access a shared database while minimizing resource constraints.</li><li>Distributed systems can be scaled both horizontally and vertically.</li><li>We can easily add or remove nodes from a distributed system without harming overall system performance.</li></ul><p><strong>Disadvantages of Distributed Systems</strong></p><ul><li>Distributed systems do not share a common memory or a common clock.</li><li>Absence of a common (global) clock: No concept of global time.<br>It’s difficult to reason about the temporal ordering of events.</li><li>It’s difficult to design and debug algorithms in a distributed system.</li><li>Information / data may be lost in the network system due to the absence of a central server.</li><li>Troubleshooting and diagnostics are more difficult based on the distribution across multiple servers.</li></ul><p>As a conclusion, the chart below will show you how a distributed system differs from a centralized system.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/848/1*mIktI-WpkysOmXyNUAMjqg.jpeg" /><figcaption>Image by author</figcaption></figure><p>I hope this content has given you some knowledge into distributed systems. Your feedback is highly appreciated. Keep reading for more articles like this 😁</p><p><strong>References</strong></p><pre>[1] P. Felber, The CORBA object group service: a service approach to object groups in CORBA.<br>[2] W. Emmerich, Engineering distributed objects. Chichester: John Wiley &amp; Sons, 2000.<br>[3] C. Britton and P. Bye, IT Architectures and Middleware: Strategies for Building Large, Integrated Systems, Second Edition. Addison-Wesley Professional, 2004.</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ef11337d28c0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Cyber-Security Vs. Cyber Resilience]]></title>
            <link>https://vinuri.medium.com/cyber-security-vs-cyber-resilience-699c98f11126?source=rss-ba79171b5052------2</link>
            <guid isPermaLink="false">https://medium.com/p/699c98f11126</guid>
            <category><![CDATA[cybersecurity]]></category>
            <category><![CDATA[cyber-security-awareness]]></category>
            <category><![CDATA[introduction]]></category>
            <category><![CDATA[cyber-resilience]]></category>
            <category><![CDATA[information-security]]></category>
            <dc:creator><![CDATA[Vinuri Piyathilake]]></dc:creator>
            <pubDate>Sat, 11 Apr 2020 21:21:38 GMT</pubDate>
            <atom:updated>2021-11-04T07:28:11.357Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vMTVSl_oFTFwm1-R3_j3nA.jpeg" /><figcaption><a href="https://isg-one.com/images/default-source/default-album/cybersecurity-organizational-success.tmb-th1903-746.jpg?sfvrsn=bc7d931_1">https://isg-one.com/images/default-source/default-album/cybersecurity-organizational-success.tmb-th1903-746.jpg?sfvrsn=bc7d931_1</a></figcaption></figure><p>In today’s world, cyber-security isn’t enough, and that we need cyber resilience as well because hackers and cyber-criminals spend all of their time evolving their attack methodologies. Hence, we should improve the ways of countering them. ‘ Cyber-Security ‘ and ‘ Cyber Resilience ‘ are both forms of safety towards cyber threats however cyber resilience acknowledges that the first line of protection might not work and so enables the business enterprise to remain up and running if cyber-security measures fail.</p><p>So what’s ‘<strong>Cyber Security</strong>’ and ‘<strong>Cyber Resilience</strong>’?</p><p>In simple terms, ‘Security’ may be a term which focuses on preventing bad things from happening whereas resilient is about quickly getting back to “good” post-impact of an attack.</p><p>Cyber Security is defined as Technologies, processes and measures designed to shield systems, networks and data from cyber-crimes. It reduces the danger of a cyber-attack and strives to guard entities, organizations and individuals against the deliberate exploration of systems, networks and technologies. Cyber Security consists of</p><p>• Technologies</p><p>• Processors &amp;</p><p>• Measures</p><p>that are designed to guard systems, network and data from cyber-crimes. Cyber Security is effective without compromising the usability of the systems and it includes a strong continuity business decide to resume operations if a cyber-attack is successful.</p><p>Cyber Resilience is an organization’s ability to continuously deliver intended services, operations and outcomes despite the occurrence of cyber events. These events may create an adverse impact on people, information, technologies, systems and facilities. Resilience is clear within the ability to revive and resume core operational and repair functions both during and after cyber events and therefore the capability to continuously change or modify necessary delivery mechanisms to regulate to new or potential risks. Cyber Resilience has three key areas, which are</p><p>• Information Security</p><p>• Operations Continuity &amp;</p><p>• Organizational Strength.</p><p>Cyber Resilience encompasses a wider scope, comprising cyber-security and business resilience. Cyber Resilience requires a cultural shift because the firm adopts security best practices into daily operations and it requires an entity to become agile to handle the potential and real attack.</p><p>In conclusion, ‘Cyber Security’ and ‘Cyber Resilience’ should be recognized as two distinct but complementary disciplines. These disciplines become more crucial with the rapid evolution and increasing use of technologies nowadays.</p><p><em>References :</em></p><ul><li><a href="https://www.quora.com/What-is-the-difference-between-Cyber-Resilient-and-Cyber-Security-1%E2%80%A8https://www.ascentor.co.uk/2019/05/whats-the-difference-between-cyber-security-and-cyber-resilience-and-why-does-resilience-matter/%E2%80%A8https://www.bitsight.com/blog/cyber-resilience">https://www.quora.com/What-is-the-difference-between-Cyber-Resilient-and-Cyber-Security-1</a></li><li><a href="https://www.quora.com/What-is-the-difference-between-Cyber-Resilient-and-Cyber-Security-1%E2%80%A8https://www.ascentor.co.uk/2019/05/whats-the-difference-between-cyber-security-and-cyber-resilience-and-why-does-resilience-matter/%E2%80%A8https://www.bitsight.com/blog/cyber-resilience">https://www.ascentor.co.uk/2019/05/whats-the-difference-between-cyber-security-and-cyber-resilience-and-why-does-resilience-matter/</a></li><li><a href="https://www.quora.com/What-is-the-difference-between-Cyber-Resilient-and-Cyber-Security-1%E2%80%A8https://www.ascentor.co.uk/2019/05/whats-the-difference-between-cyber-security-and-cyber-resilience-and-why-does-resilience-matter/%E2%80%A8https://www.bitsight.com/blog/cyber-resilience">https://www.bitsight.com/blog/cyber-resilience</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=699c98f11126" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is Machine Learning?]]></title>
            <link>https://vinuri.medium.com/what-is-machine-learning-a500b537b7cd?source=rss-ba79171b5052------2</link>
            <guid isPermaLink="false">https://medium.com/p/a500b537b7cd</guid>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[machine-learning-tools]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[introduction]]></category>
            <category><![CDATA[machine-learning-models]]></category>
            <dc:creator><![CDATA[Vinuri Piyathilake]]></dc:creator>
            <pubDate>Sun, 15 Mar 2020 04:22:42 GMT</pubDate>
            <atom:updated>2021-11-04T07:31:25.643Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*DruG1WzQ-SOGG4Eu9exiEg.jpeg" /><figcaption><a href="https://cdn-gcp.marutitech.com/wp-media/2016/10/a6c3baa2-8-problems-that-can-be-easily-solved-by-machine-learning-1.jpg">https://cdn-gcp.marutitech.com/wp-media/2016/10/a6c3baa2-8-problems-that-can-be-easily-solved-by-machine-learning-1.jpg</a></figcaption></figure><p>Machine learning is a method of data analysis that automates analytical model building. It is a branch of <strong><em>artificial intelligence</em></strong> based on the idea that systems can learn from data, identify patterns and make decisions with minimal human intervention.</p><h4>Why is Machine Learning important?</h4><p>The iterative aspect of Machine Learning is important because as models are exposed to new data, they are able to independently adapt. They learn from previous computations to produce reliable, repeatable decisions and results.</p><h4>What’s required to create good machine learning systems?</h4><ul><li>Data preparation capabilities.</li><li>Algorithms-basic and advanced.</li><li>Automation and iterative processes.</li><li>Scalability.</li><li>Ensemble modelling.</li></ul><h4><strong>What is a machine learning model?</strong></h4><p>A <strong><em>Machine Learning Model</em></strong> can be a mathematical representation of a real-world process. The learning algorithm finds patterns in the training data such that the input parameters correspond to the target. The output of the training process is a machine learning model which you can then use to make predictions.</p><h4><strong>What is a machine learning algorithm?</strong></h4><p>Machine learning algorithms build a mathematical model based on sample data, known as “<strong><em>training data</em></strong>”, in order to make predictions or decisions without being explicitly programmed to perform the task.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a500b537b7cd" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>