Podcasts about fourier transform

  • 35PODCASTS
  • 73EPISODES
  • 40mAVG DURATION
  • 1MONTHLY NEW EPISODE
  • Jun 18, 2026LATEST

POPULARITY

20192020202120222023202420252026


Best podcasts about fourier transform

Latest podcast episodes about fourier transform

Quanta Science Podcast
Audio Edition: What Is the Fourier Transform?

Quanta Science Podcast

Play Episode Listen Later Jun 18, 2026 12:33


Amid the chaos of revolutionary France, one man's mathematical obsession gave way to a calculation that now underpins much of mathematics and physics. The calculation, called the Fourier transform, decomposes any function into its parts. The story What Is the Fourier Transform? first appeared on Quanta Magazine.

Hacker Public Radio
HPR4648: Simple Podcasting - Episode 4 - Audio Analysis Fun

Hacker Public Radio

Play Episode Listen Later May 27, 2026


This show has been flagged as Clean by the host. 01 This is the fourth episode in a four part series on simple podcasting. 02 Introduction In this episode we will discuss alternatives to Audacity when it comes to analyzing audio spectrums to find the sources of unwanted noise. I previously promised some gratuitous hackery, and we will get into that in this episode. 03 Recall that with Audacity you first import the audio file, then select the part of the audio you wish to analyze (or ctrl-A for all), and then select analyze > plot spectrum. This is in fact the only feature of Audacity that I know how to use. I am definitely not an audio expert. I do however have some background in processing and analyzing other signals, so some of the basics are familiar to me. 04 We can accomplish the same thing that Audacity does in this instance provided we can do the following. First, we need to get the data out of the audio file and into a form which we can import into other software. Second, we need to perform certain mathematical operations on this data. Finally, we need to be able to plot the results of these calculations on a chart. -------------------- 05 Fourier Transforms First though, we need a bit of mathematical background. What Audacity is doing when it shows a plot of frequency versus amplitude is that it is showing the results of a Fourier Transform. A Fourier Transforms is a mathematical operation that converts the time domain into the frequency domain. Any complex signal, audio or otherwise, can be broken down into a collection of sine waves of various frequencies. For example, a simple square wave signal of say 100 hertz can be represented as a sine wave of frequency 100 hertz plus a collection of higher frequency sine waves which add together to give the sharp corners. 06 A Fourier Transform finds these sine waves and sorts them out into separate bins, with each bin representing an individual frequency or a collection of closely related frequencies, depending on how fine grained the sorting is. 07 This is exactly what we want when we are trying to figure out how to filter out noise. Recall that earlier in this series we had to solve a problem with a high pitched background noise which was originating in my cheap microphone. Analyzing this audio by frequency showed that it was a series of individual tones at 1 kHz intervals. We were then able to use filters targeted at those frequencies to get rid of that noise. 08 There are several optimized versions of the Fourier Transform algorithm. A very common one is the Fast Fourier Transform, common abbreviated to just "FFT". This is so common that the term "FFT" is often used to simply mean any Fourier Transform even though this is not technically correct. 09 Typical FFT algorithms require that the number of data samples is exactly a power of two. So the number of samples we need may be something like 4096, 8192, or 65536, to give a few random examples. When we transform from the time domain to the frequency domain, each sample becomes a single frequency "bin". So the more samples we have, the finer the resolution we get in terms of frequency. 10 If we assume we are dealing with flac files recorded at a 44.1 kHz sample rate, that is, 44100 samples per second, then if we have 32768 samples, each "bin" represents slightly more than 1 hertz. If we have 65536 samples, then each "bin" represents a fraction of a hertz. For our purposes we will pick 65536 samples. That means we need 1.48 seconds of data. For simplicity's sake we will record at least 2 seconds of data and then just discard the samples that we don't need. 11 There is a further complication here. Fourier Transforms normally work with complex numbers. Recall from your school days that as well as integers and real numbers there are complex numbers. Each complex number consists of two parts, a real component and an imaginary component. I won't go into the details of this, just accept that each sample needs to have two components. Fortunately, if we don't have complex number data we can just set the imaginary component to zero and use that. This is enough talking about the theory, let's get into the practical details. -------------------- 12 Extracting Data from Audio Files First we will look at how to extract the data from the audio files. Fortunately, one of the programs which we have already been using can do this. To do this we will use Sox. I am not aware of an equivalent feature in ffmpeg. 13 Sox calls itself "SoX - Sound eXchange, the Swiss Army knife of audio manipulation" Sox is free software and is licensed under the GPLV2 or later. In this case we want to use a feature which allows us to convert a binary audio signal file to a text data file. To convert the file to text data we just give the output file a ".dat" file extension and Sox will do this for us. 14 Here is a command example. sox inputfile.flac tdata.dat 15 This gives us a file in the following format, assuming this is a mono audio recording. ; Sample Rate 44100 ; Channels 1 0 0.045471191406 2.2675737e-05 0.055023193359 4.5351474e-05 0.048217773438 6.8027211e-05 0.053192138672 etc. The first line states the sample frequency The second line states that the data is for channel 1. The data starts on the third line. Column 1 is the time in seconds. Column 2 is the waveform data point. 16 To analyze the data we want a subset of these samples. When we convert from the time domain to the frequency domain, our resolution will be determined by the number of samples. We would like therefore to have at least as many samples as the sampling rate. We also want the samples size to be an even multiple of two. The number of points we want to have is equal to the next even multiple of two above our chosen sampling rate, 44,100 Hz. This number would be 65536. 17 To extract this data from the file we can do the following. tail tdata.dat -n+3 | head -n65536 | awk '{printf "%sn", $2}' > tdata.csv 18 We use tail to skip over the first three lines. We use head to take the next 65536 lines and discard the rest. We use awk to extract the second column which we will use as the real component. We now have this data as a csv file in one column. -------------------- 19 Analyzing the Data To analyze the data we need software which can calculate FFTs. I will now show two examples of this, a very simple case using Libre Office Calc, and a more complex but more complete one using GNU Octave. 20 Using Libre Office We can do fourier analysis and plot charts using Libre Office. Take the csv file of data that we previously created. For this example I used data from a recording of silence so that I could see what internal noise was being generated by the headset. Open the csv file and import it into Libre Office Calc. 21 Now select all 65536 rows of column A. The Fourier function will automatically fill the imaginary component with zeros if we don't provide an column of imaginary numbers, so we don't need to provide a column of zeros. Then select Data > Statistics > Fourier Analysis. 22 A window will open allowing you to select various parameters. For Results to:, enter "D1". Grouped by Columns. Select OK. 23 New data should now appear starting in cell D1. The first line will say " Fourier Transform" The second line will state the input range. The third line will state "Real" in column D, and "Imaginary" in column E. The data will start in row 4. 24 For our simple example we will ignore the imaginary data and just use the real data, which will form our Y component when we plot it on a chart. We now need to create the X axis data. 25 Each cell is a "bin" of frequencies. Each cell therefore represents (sample frequency) / (Number of samples) Hz. 26 To create the X axis data showing frequency, enter the following formula in to column C to the left of each D column number. =((44100/65536) * (ROW() - 4) 27 We can now create an XY chart showing the frequency analysis. You may need to exclude the first couple of dozen rows as very low frequency components which cannot be heard may otherwise overwhelm the data we are interested in. Also, you only need the first half of the chart. The FFT mirrors the data from the first half of the array into the second half. 28 Because characterizing a sine wave requires a minimum of 2 points, although we have a sample frequency of 44.1 kHz, we really only have sound waves up to a maximum of half that, or 22.05 kHz. Create the chart with lines only. If you followed the above instructions, you should see something resembling what we saw in Audacity, except with each bin more sharply defined. 29 In the data that I had from a recording of unfiltered headset noise, I could see a distinct noise spike every 1000 hertz. 30 However, we have taken several shortcuts. First, the imaginary component of the data was ignored. Second, the magnitude (that is, Y axis) has both positive and negative peaks. Third, the data is not scaled to dB sound units, so we just have a relative measure. However, that by itself is enough to tell us where the frequencies are that we need to construct filters to deal with. 31 We could refine this spreadsheet a bit more to deal with the above issues, but I think we have demonstrated the basic principle, and working with a spreadsheet can be a bit awkward. However, if working with a spreadsheet is what you want to do, then you can add more columns and more formulae to improve on it. -------------------- 32 Other Analysis Software I will go on to GNU Octave in a moment, but I want to get a few other alternatives out of the way first. I won't go into any detail on them other than to point them out to people who want to have a go at trying these themselves. 33 Grace There is math and plotting software called Grace. This is free software, released under the GPL V2. According to the documentation, it seems to have the features we need, including an FFT function. However, I could not get it to work properly on Ubuntu 24.04. I could not get it to load a data file and plot data. 34 The error messages were vague and unhelpful. The file navigation system didn't work. There was no obvious path to success, and if it isn't easy to use then there is no point to it. This is fairly old software, designed for X Window and Motif. I gave up on it as not suitable for this series as I am looking for some fairly low effort things for people to try themselves. If someone else can get it to work on their PC, perhaps they could do an HPR episode on this themselves. 35 Command Line FFT Packages There are several command line FFT packages. They will read data from std in or from a file and output the FFT. However, these are not packaged for Ubuntu and appear to be distributed as C source code which you would download and compile. You can experiment with those if you wish, but I felt they were a bit out of scope for discussion here as I am looking at common tools that are ready to use. 36 Here are two examples. One is Command-line Fast Fourier Transform utility https://github.com/gregfjohnson/fft Another is cli-fft https://github.com/jonolafur/cli-fft 37 I have not tried these and cannot say whether they are any good or not. Similarly, there are a number of FFT packages that are libraries for languages such as Python. If you want to take the time to write a short program to go with them, you can create a dedicated FFT command line program. However, I felt that this too was out of scope for what I was trying to do here. 38 Doing it the Hard Way Hypothetically, it may be possible to write an FFT function in bash bc, which is the arbitrary precision calculator language which is part of the standard shell package. I say hypothetically, because I have not tried it. I think it would be an interesting challenge, but I don't have the time at the moment to try it. If anyone feels motivated to give it a try, they're welcome to give it a go and then do a podcast episode on it. -------------------- 39 GNU Octave We have seen that as well as using features built into Audacity to analyze the audio spectrum to see the frequencies of undesired noises, we were able to do the same using a Libre Office spreadsheet. 40 Now we'll look at another bit of software, GNU Octave. GNU Octave is free software, licensed under the GPL V3 or later. It is a mathematical scripting language, very similar to Matlab. People use it for mathematical, engineering, and scientific work. It can be found in most Linux distros and is available for some other operating systems as well. 41 Octave has two features built in that we need for our purposes. It does FFTs, and it has a plotting system built in to produce graphs. -------------------- 42 We will take the same audio test file that we used with Audacity and Libre Office and use it here as well. The bash script to convert the flac file to text data is essentially the same, with the exception that file extension on the output file as is ".txt" instead of ".csv". This latter change was an arbitrary decision on my part. 43 As a quick review, this bash script uses sox to convert a flac file to a text ".dat" file. Then it uses tail, head, and awk to extract the first 65536 rows of data, skipping over the header information and ignoring the first column of time data. This script will be in the show notes. -------------------- #!/bin/bash # This version is for use with the GNU Octave script. sox hsnoisemono.flac hsnoisemono.dat tail hsnoisemono.dat -n+3 | head -n65536 | awk '{printf "%sn", $2}' > hsnoisemono.txt -------------------- 44 We now have a 1.1 MB file containing 65536 samples of data in text format. Now the next thing we need to do is to create a short Octave script file. I will just give a brief overview of the script here, the full script will be in the show notes. 45 I put the script in a file called "octavespectrum.m". I have never used Octave before now, but the convention seems to be to give the script a ".m" ending. The "she-bang" line is "#!/usr/bin/env octave". If you make the file executable you can run it like any other script, or you can type "octave" and then the name of the script to run. 46 I won't read out the script in detail, as that would be too hard to following along in a podcast. However, I pass several arguments to the script including the name of the data file, and then two integers that I use to limit the display area in the Y and X axes so I can have the chart focus on the areas of interest that I want to see. I also pass a string containing the name of the graphic file that I want the chart exported to. This was an arbitrary decision on my part and you can just hard code these values in if that is what you want to do. 47 The arguments are accessed by calling the "args()" function, which returns an array of strings. Next, it reads in the specified file using the "dlmread()" function. This reads all of the data into an array. 48 Next, it performs a hamming windowing function on the data. I'll explain that briefly. It is standard practice when doing FFT signal processing to "window" the signal. Since the signal sample is of finite length, it will stop at each end of the array. 49 Unless you were lucky enough for this to happen exactly at a zero crossing, this would produced an abrupt transition in the data which looks like "noise" to the FFT. The solution is to taper the signal off gradually towards the ends so that when it gets cut off the signal is fairly small at that point anyway. There are a variety of different windowing functions, but "hamming" seems to be the most commonly used. 50 Next, it does an FFT using the "fft()" function. 51 This gives us real and imaginary outputs. These are combined by summing the squares of each corresponding real and imaginary element and then taking the square root of each and storing that in a new array. This gives a single array of the same length as the originals, but combining the two output components. If anyone wants to tell me that this isn't how things are done in the audio world, they're welcome to make an HPR episode telling us all the right way to do things. 52 Then it does some scaling and selection of subsets of data so we get the X axis in hertz and just the number of samples that we wish to look at. If you are looking at the script, the thing to keep in mind is that Octave will work on entire arrays of data in a single operation. You don't need to write explicit loops for this. The looping is handled implicitly as part of the syntax. 53 It also does various other things that make the chart easier to read. The comments in the script describe these in more detail. Since this is a script it's easier to add these sorts of refinements than is the case for a spreadsheet so I have made the effort to add them. Finally it calls the "plot()" function. If an output graphics file name was provided, it also creates a PNG file containing the same image using the "saveas" function. 54 We now see the chart, and it looks more or less as expected. However, this chart is interactive. You can zoom and pan the data, something that you can't do with either Audacity or Libre Office. The chart window doesn't have a function for exporting the resulting chart to a "png" file, it will only save to an ".ofig" file. The ofig file is not a standard graphics file, it is a serialization of the chart data that can only be looked at using the Octave chart viewer. 55 Alternatively, you can just take a screenshot of the chart after you have interactively zoomed and panned to a point of interest. At the bottom left of the chart window is a pair of x-y coordinates which tell you the current position of the mouse pointer in chart units. This is very handy as it can be used to get the exact (or close to exact) frequency of each noise spike. 56 The Y axis is not scaled in any particular units such as dB, as I'm not sure how to do that according to audio industry conventions. On the other hand, I'm not sure that it's really necessary, as I don't know what dB means in tangible terms anyway. It does show relative sizes, so it helps to determine whether you have one noise frequency or multiple frequencies to worry about. 57 If anyone is familiar with how to scale the raw data from a flac file as exported by Sox into dB units according to audio industry convention, then they are welcome to create an HPR episode telling us how to do it. -------------------- 58 Comments on GNU Octave I had never used GNU Octave before this, although I had heard of it and it is quite a significant piece of software for a specific segment of users. 59 The syntax is a bit odd especially in how it deals with array operations, but I was able to google various examples and answers to eventually get this working. A few other peculiarities are that it uses the percent "%" character to denote a comment, and leaving out the semi-colon at the end of the line causes it to print the answer to the console after executing the statement. 60 The GNU Octave solution was harder to get working than the Libre Office method. However, once it was working it is easier to use repeatedly. If I were to want to automatically generate audio files with different filtering or other options and wanted to script the creation of a large number of images showing the results, this would be the way to do it. 61 When your run the Octave script you may get a warning which says something like "QSocketNotifier: Can only be used with threads started with QThread". This is apparently a routine warning message from the Qt graphics system which has no real significance in this context and can be ignored for our purposes. -------------------- 62 We now have a bash script which will use sox to extract the data from a flac file, and a GNU Octave script which can be used to display the resulting frequency spectrum. This does more or less the same thing as "Plot Spectrum" does in Audacity, but allows for zooming and panning to get a more detailed look at the data. 63 However it doesn't give you an absolute reading of the sound levels in dB, something that Audacity does provide. What I wanted it for though was to find the frequencies of the audible noise in the signal, something that it does quite well. -------------------- #!/usr/bin/env octave % Perform an FFT on the data in a file and plot the results. % ====================================================================== % The sampling frequency. This must be changed to accommodate the % actual sampling frequency if it was something else. samplefreq = 44100; % Thickness of line on plot. linewidth = 2; % ====================================================================== % The name of the data file is passed as a argument. args = argv(); if length(args) < 3 quit endif % File name. fname = args{1}; % Clip the peak values. peakclip = str2double(args{2}); % How much data to show, in kHz. rbound = str2double(args{3}) * 1000; % The optional file name to save a chart image to. if length(args) > 3 chartfile = args{4}; else chartfile = ""; endif % ====================================================================== % Read the data in from the file. sampledata = dlmread(fname); % Number of samples. samplecount = length(sampledata); % ====================================================================== % Window the data. This helps deal with the discontinuity of data at % each end of the array and the effects this has on introducing apparent % noise into the signal. windoweddata = (hamming(samplecount) .* sampledata); % ====================================================================== % Do the actual FFT. fftresults = fft(windoweddata); % Get real component. r = real(fftresults); % Get the imaginary component. i = imag(fftresults); % Combine the real and imaginary. In order to square each element of each % array, we must use the ".^" operator, not just "^". rfft = sqrt(r.^2 + i.^2); realfft = rfft(1:samplecount); % ====================================================================== % Scale factor for frequency. fscale = samplefreq / samplecount; % X axis scale, scaled to frequency. f = (0:samplefreq/2) * fscale; % Take a subset of the data if specified. rbound has to be re-scaled % from kHz to array increments. freq = f(1:min(rbound / fscale,length(f))); % y axis. We take the absolute value and then limit (clip) the peaks % so that a few large peaks don't obscure the smaller ones. mag = min(abs(realfft(1: length(freq))), peakclip); % Plot the results. figure; whandle = plot(freq, mag, 'LineWidth', linewidth); title(["Audio Spectrum of ", fname]); xlabel("Frequency (Hz)"); ylabel("Unscaled Magnitude"); grid on; % If the appropriate optional argument was specified, save the chart % to a file of that name. if length(chartfile) > 4 saveas(gcf, chartfile, "png"); endif % Need this so the plot window stays open. waitfor(whandle); % ====================================================================== -------------------- This is the shell script used with the above Octave script. The arguments are 1 - the file name for the input data file. 2 - The value to clip the peaks at. 3 - The upper frequency bound in kHz. 4 - The output graphics file name. #!/bin/bash octave octavespectrum.m hsnoisemono.txt 10 12 hsnoisemono.png -------------------- 64 Episode Conclusion In this episode we covered the following topics. What Fourier transforms are. Extracting data from audio files using Sox. Analyzing the data using Libre Office. Analyzing the data using GNU Octave. And, several alternative analysis methods. 65 Series Conclusion This is the end of a four part series on simple podcasting. In the first episode, we covered a simple podcast recording method. This first episode is all you really need to make a podcast. 66 In the second episode we covered basic filtering and a few other simple topics. The methods discussed in that episode provide basic improvements to your audio if you feel the need for it. 67 In the third episode we covered how to analyze audio noise problems using Audacity and additional filtering techniques to deal with specific problems that we may find. We also covered command line recording, playback, and getting information about an audio recording. 68 In the fourth episode we engaged in a bit of gratuitous hackery for the fun of it and showed how to use alternative software methods to analyze audio signals. 69 I hope that this series has been both useful and entertaining and that you will use the knowledge gained here to create and submit your own HPR podcast episodes. -------------------- -------------------- Provide feedback on this episode.

Hacker Public Radio
HPR4638: Simple Podcasting - Episode 3 - Analyzing and Filtering

Hacker Public Radio

Play Episode Listen Later May 13, 2026


This show has been flagged as Clean by the host. 01 This is the third in a four part series on simple podcasting. 02 In this episode we will cover the following topics: Analysis of audio noise problems and filtering methods used to deal with specific problems that we may find. Command line recording. Command line playback. Getting information about an audio recording. 03 Introduction When I did my first couple of podcasts I didn't notice that there was a quiet high pitched whine or buzz in the background. Nobody complained about it, but I thought I could do better in subsequent episodes. 04 Creating an Audio Sample If you have a similar problem, the first step is to find out where it is coming from. If there is no audible noise where you are recording, there is a good chance the problem is in the microphone or another part of the audio system. Plug in your microphone and record 2 or 3 seconds of quiet audio where you do not speak into the microphone or make other noise. 05 You will need a minimum amount of data in order to analyze it. For a flac file sampled at 44.1 kHz, 2 to 3 seconds of data should be enough. To get a sample of just electronic noise you can put the microphone in a drawer or somewhere like that if you want to be sure of getting a quiet signal. Any sound recorded in this way should be mainly from the microphone or other electronic elements in the analogue pathway. To get a sample of possible ambient noise, such as fans, make sure the microphone is in the open air in an area which is representative of where it will be when you are recording. -------------------- 06 Analyzing using Fourier Transforms Next you need to look at the wave form. At this point I will describe this using Audacity. I will show other ways later, but Audacity is actually the easiest if you are starting from nothing. You don't need to become an expert in Audacity to use it, just follow the steps I will describe. I myself don't know how to use Audacity beyond using this one feature. 07 We are going to analyze the sound spectrum in our sample. The technique being used is a Fourier Transform. A Fourier transform, often called an "FFT" for fast fourier transform, is a mathematical method of showing a signal in terms of frequency along the x axis instead of time. This allows us to spot troublesome noise frequencies which appear when we don't want them to. The FFT is a very common mathematical technique which is widely used in signal processing, not just in audio. 08 There is software which will create pretty coloured animations of sound waves, but this is not what you want. These are simply decorative patterns and won't tell us what we want to know. -------------------- 09 Using Audacity Install Audacity if you haven't already. Start Audacity. Select file > import > audio, then navigate to your sample and select "open". The file should load. 10 In the wave form part of the window, click anywhere and then type Ctrl-S to select all data points. The chart should turn a slightly darker colour. From the menu, select Analyze > Plot Spectrum. A new window will open, showing magnitude in db on the Y axis, and frequency in hertz on the x axis. For "algorithm" be sure it is set to "spectrum" 11 There are now two settings that we need to play with while we look for problems. One is "size" The default for this is 1024. The other is "axis". The default for this is "log frequency". -------------------- 12 What to Look For What we are looking for are large obvious spikes that stand out in the data. Since our test signal has very little to no actual audio data, any spikes should represent electrical or other noise that doesn't belong there. 13 I have found two combinations of settings to be most helpful in finding problems. These are Size 2048, axis linear frequency. Size 32768, axis log frequency. 14 A small size value can help very narrow spikes stand out from the background more, while a large size value can help separate spikes from surrounding noise. A linear frequency axis can help with seeing all spikes across the full frequency range, while a log frequency axis can help to better see what is happening in the often very crowded lowest frequency range. -------------------- 15 A Real Example of an Audio Problem If you have good audio equipment you may find nothing obvious. If you cannot hear any noise in the signal, there may be none of any consequence and there is nothing for you to do. 16 However, in my case I found two main problems and one lesser one. One problem was a spike at 60 Hz, which is the AC line frequency. There is also a lesser problem of a collection of a broad frequency range of noise below 60Hz. Both of these however will be taken care of by the basic filtering that we looked at earlier so we do not need to worry about them here. 17 The other main problem is I had a large spike at every 1 kHz interval from 1 kHz to 19 KHz. This was noise generated within the head set electronics, or the result of noise on the USB power supply. This is the product of a cheap headset. 18 These spikes are not very large compared to the volume of my voice, but if I do the same sort of analysis of samples where I am speaking, they appear in the intervals between words. This results in a high pitched whine or buzz. This was the source of the background noise or buzz in my first two podcast episodes. I need to get rid of this. 19 One option would be to get a better microphone, but, well, that wouldn't be any fun would it. It would also cost money and I don't want to spend any of that if I don't have to. If you analyze your own signal, you may find a different pattern, or even no noise at all. If you did not find anything when shielding your microphone from ambient audio noise, repeat the same test but with the microphone exposed to acoustic noise in the room. -------------------- 20 Advanced Filtering The next step is to figure out how to get rid of this noise. I have called this section "advanced filtering", but we are actually just making use of a technique that was already covered in basic filtering. 21 To deal with the remaining spikes we can use additional "band reject" filters, each of which removes a specific frequency at 1 kHz intervals from 1 kHz to 12 kHz. We will use this in combination with the filtering that we have already done previously, so we don't need to worry about anything above 12 kHz as we already remove that with a low pass filter. After a small amount of experimenting I came up with the following. 22 Because I am applying a total of 16 filters, 4 for basic filtering and 12 to deal with the specific microphone problems that I have, I have broken up the filters into separate strings. I then generate the 12 new band reject filters from a template. Note that I don't show the "de-esser" filter here. I would recommend adding it as a separate step after doing the sort of filtering we are talking about here. 23 Rather than reading out multiple lines of bash script, I will post them in the show notes. I will give a brief description of them here which you can refer to when reading the show notes. The FFMPEG and Sox versions are very similar in concept so I don't need to go over the Sox version in detail. See the show notes for it. FFMPEG Version Here's the FFMPEG version. # The high and low pass filters. hlpfil="highpass=f=80, lowpass=f=12000" # Band reject filters filter for 60Hz and another for 50Hz. linefil="bandreject=f=60:width_type=h:w=20, bandreject=f=50:width_type=h:w=20" # Create a series of band reject filters, from 1 kHz to 12 kHz. # Change or remove this part if your recording hardware does not require it. ftemplate="bandreject=f=%s000:width_type=h:w=100" kilospikefil=$( seq 1 12 | xargs printf "$ftemplate," ) # Using ffmpeg ffmpeg -i input.flac -af "$hlpfil, $linefil, $kilospikefil" output.flac 24 There are a total of 5 lines of bash script. In the first line, we create a string called "hlpfil" which is just the high and low pass filters copied from our previous discussion on basic filtering. In the second line, we create a string called "linefil" which is just the simple bandreject filters to cover 50 and 60 hertz AC line noise filters also from basic filtering. 25 In the third and fourth lines, we create a string called "kilospikefil" containing the new filters. The "f" parameter represents the frequency we are targeting. The "w" parameter represents the "width" of the frequency range we are filtering in terms of hertz. The filter is applied gradually rather than with a sharp cut-off, so to get more filtering action we need to have larger width. In this case I decided to hammer the spike quite aggressively and so used a relatively wide width of 100 hertz. Testing with a voice file did not show any noticeable distortion, so it's an acceptable solution. 26 For this filter we need to create a dozen filter command so we use the shell "seq" command to generate a sequence of numbers from 1 to 12. We then pipe that into the xargs command which applies each number to the next command. The next command is "printf", which takes the number it gets from xargs and applies it to the "ftemplate" string template in a manner very similar to C programming printf string templates. 27 We also have a comma in there to separate each of the individual filters. We then surround this with a $ and () so we can run the command and capture the output into a variable. Then we call ffmpeg and pass it the filters we created by putting the variable names inside a double quoted string, separated by commas. All of this will be in the show notes, so don't worry about trying to get the exact details right now. Sox Version Here's the Sox version. # The high and low pass filters. sxhlpfil="highpass 80 lowpass 12000" # Band reject filters filter for 60Hz and another for 50Hz. sxfilter="$sxhlpfil $sxkilospikefil bandreject 60 20 bandreject 50 20" # Create a series of reject filters filters, from 1 kHz to 12 kHz. sxftemplate="bandreject %s000 100" sxkilospikefil=$( seq 1 12 | xargs printf "$sxftemplate " ) # Using SOX. sox input.flac output.flac $sxhlpfil $sxfilter $sxkilospikefil 28 The Sox version is very similar with the exception that the command arguments representing the filters must not be in quoted strings as Sox wants to see them as separate arguments instead of parsing a string. -------------------- 29 Confirming the Effect If we apply the above filters and look at this headset noise output file in the Audacity spectrum analyzer we will now see that these noise spikes are almost completely gone. We can now confirm how well this works by using a test audio file. Any normal short voice audio file will do for this. Just talk into the microphone normally and create a voice sample file that is 5 or 10 seconds long, or whatever you feel comfortable with. 30 With the original unfiltered voice audio I can hear a distinct high pitched whine overlaying the voice. With the filtered audio that whine or hum is not detectable. If we then look at the voice file in the Audacity spectrum analyzer, we can see distinct "notches" at the 50 Hz and 60 Hz frequencies, and at every 1 kHz from 1 kHz to 12 kHz. These notches are narrow enough that they won't cause a noticeable problem with voice signals. If we apply this filter to voice samples, the buzz or whine is gone and the voice signal sounds fine. Despite using a very cheap microphone, I now have acceptable quality audio for a podcast. 31 Again I want to emphasize that in this instance I am dealing with deficiencies with my hardware instead of buying a better microphone. These additional filters are intended to deal with the specific hardware problem I am facing. You don't need these additional filters if you cannot detect an audible problem. On the other hand, if you have a different problem you may wish to deal with a different set of frequencies. Finding these problems is the reason for using a spectrum analyzer. 32 FFMPEG has other filtering methods as well. However, as I didn't end up using them I can't really do an adequate job of describing them. If anyone has used them successfully, they are welcome to make a podcast on the subject. -------------------- 33 Completing the Process With these new filters added into the middle of the processing steps, you can now complete the processing by doing the de-essing, normalizing, and review steps as described in the previous episode. -------------------- 34 Command Line Recording I will now cover a separate topic, which is recording using command line programs. I am covering it in this episode as it is a short topic and it is convenient to talk about it here. 35 As well as using GUI based recording programs such as Gnome Sound Recorder, it is possible to record podcast episodes using command line tools such as FFMPEG. As for why you may wish to use command line tools to record audio, there are several reasons. One is that you may simply prefer to do it this way because it pleases you to do so. Another is that it allows the recording step to be included in a script that encompasses other parts of the process, automating what may have otherwise been separate manual steps. 36 However, if you don't find these arguments particularly compelling, then I'm not going to attempt to persuade you to use the command line to record audio. I am doing this part of this episode out of a desire to have a bit of fun and I probably won't be using it much myself. I will however use one of these methods to record this part of this episode. 37 Recording with FFMPEG - The Basics One of the common command line tools you can use is FFMPEG, a package which I have previously mentioned with respect to filtering audio files. Here is an example of how to record using FFMPEG. We call FFMPEG specifying the audio input system as the FFMPEG input, and then specify a file to output to. 38 # Record audio. ffmpeg -f pulse -i default ff.flac 39 Press 'q' to stop. This uses pulse audio on Linux for input "-f pulse", and the default input "-i default". However, this does not specify the the sample rate or mono recording. To do that we need to add a few more parameters as in the following 40 ffmpeg -f pulse -i default -ac 1 -ar 44100 ff.flac 41 "-ac 1" specifies mono output "-ar 44100" specifies 44.1 khz bit rate. 42 Playback with FFMPEG - The Basics FFMPEG can also play back music. In this case however we need to call the "ffplay" program rather than FFMPEG itself. To play an audio file, simply call ffplay and give it the name of the audio file as an argument to the command. For example: 43 # Play an audio file. ffplay podcast.flac 44 We can also call it with the "autoexit" option, which tells ffplay to automatically exit when the audio file has finished playing. ffplay -autoexit ff.flac 45 -autoexit means Exit when the audio file is done playing. 46 To exit in the middle of the recording, press "q' or ESC. To pause the playback, press "p" or space bar. To decrease the volume press "9" or "/". To increase the volume press "0" or "*". 47 To seek forward 10 seconds, press the right cursor button. To seek backward 10 seconds, press the left cursor button. To seek forward 1 minute, press the up cursor button. To seek backward 1 minute, press the down cursor button. 48 The "0" and "9" keys mentioned above are those on the top row of the keyboard, not the ones on the separate numeric pad. 49 While the recording is playing, a graphical window will open which shows a cascading waveform based on the current content. This is purely decorative and does not serve any particularly useful purpose. -------------------- #!/bin/bash # Record a podcast episode segment. # Get the next file name. # First we check if any matching file patterns exist. If they don't, # then we create the first one starting counting at 1. fcount=$( ls [0-9][0-9].flac 2>/dev/null | wc -l ) if (( $fcount < 1 )); then fname="01.flac" else # If there are any matching file patterns, we find the highest number # and increment it by 1. filenum=$( ls [0-9][0-9].flac 2>&1 | cut -d. -f1 | sort | tail -1 ) newfilecount=$(( 10#$filenum + 1 )) fname=$( printf "%02d.flac" $newfilecount ) fi echo "Recording to: $fname" # Record using ffmpeg. # This makes use of pulse audio and the input is the default audio input. # The sample rate is set to 44.1 kHz, and it is recorded as mono (1 channel). ffmpeg -f pulse -i default -ar 44100 -ac 1 $fname echo "Recorded audio to: $fname" # Report on basic information about the audio file that was just recorded. ffprobe -hide_banner $fname -------------------- 50 Sox - Not so Good I did not find the recording or playback features of Sox to be as useful as those of FFMPEG, so I won't bother to cover them here. -------------------- 51 Getting Information About an Audio Recording There are also command line tools which can be used to retrieve information about audio recordings. 52 FFMPEG Version With FFMPEG this is called "ffprobe". For example: 53 ffprobe hpr4566.mp3 54 This will print out a lot of information about FFMPEG itself. To skip that use the hide_banner option. 55 ffprobe -hide_banner hpr4566.mp3 56 This will print out information about the audio recording. This will include things like the duration, bit rate, sample rate, stereo or mono, etc. If the author added metadata tags to the file, it will also show those. HPR add things like the title, author, copyright license, comment, etc. You can extract the ones you want using something like grep and cut. 57 Sox Version Sox has a similar feature, called "soxi". 58 soxi ff.flac 59 However, it may not work on mp3 files if you do not have an mp3 handler for it installed. -------------------- 60 Conclusion In this episode we took a brief look at an example of how to solve an audio problem through filtering. We looked at how to use Audacity to find where the problems were. We then looked at how to apply filters to remove these sources of noise. We also looked at how to record podcasts and get information about audio files using command line tools. 61 In the next episode we will look at alternatives to Audacity for analyzing audio. While Audacity works just fine, this is an opportunity to have a bit fun with some gratuitous hackery. 62 This has been the third episode in a four part series on simple podcasting. -------------------- -------------------- Full Audio Processing Pipeline This version includes the special filters used to fix my headset problems. Use the version from the previous episode if you do not have the same audio hardware problems. #!/bin/bash # Full processing pipeline for making simple podcasts. # ====================================================================== # Concatenate multiple flac files into a single flac file. # This is used to combine podcast recorded segments into a single # flac file for uploading to HPR. concataudio () { outputname="$1" # First create the list file. printf "file '%s'n" [0-9][0-9].flac > podseglist.txt # Now concatenate them ffmpeg -f concat -safe 0 -i podseglist.txt "$outputname" rm podseglist.txt } # ====================================================================== # Basic and advanced filters. filter () { inputfile=$1 outputname=$2 # Using ffmpeg. # The high and low pass filters. hlpfil="highpass=f=80, lowpass=f=12000" # Band reject filters filter for 60Hz and another for 50Hz. linefil="bandreject=f=60:width_type=h:w=20, bandreject=f=50:width_type=h:w=20" # Create a series of band reject filters, from 1 kHz to 11 kHz. ftemplate="bandreject=f=%s000:width_type=h:w=100" kilospikefil=$( seq 1 11 | xargs printf "$ftemplate," ) # Using ffmpeg ffmpeg -i $inputfile -af "$hlpfil, $linefil, $kilospikefil" $outputname } # ====================================================================== # De-Essing. deessing () { inputfile=$1 outputname=$2 option=$3 # De-essing filter. ffmpeg -i $inputfile -filter_complex "deesser=i=0.5:m=0.5:f=0.5:s=$option" -b:a 336k -sample_fmt s16 $outputname } # ====================================================================== # Normalizing the audio to EBU R128 standard for review using ffmpeg. normffmpeg () { inputfile=$1 outputname=$2 # Normalize to EBU R128 standard. ffmpeg -i $inputfile -af loudnorm=I=-17:TP=-2.0:LRA=4.0 -ar 44.1k $outputname } # ====================================================================== # Output an MP3 version to help with reviewing. mp3convert () { inputfile=$1 # Get the name of the file and then create the output file name. j=$( basename $inputfile ".flac" ) outputname="$j"".mp3" # Convert to MP3. ffmpeg -i $inputfile $outputname } # ====================================================================== # Concatenate the separate audio files. concataudio fullpod-unfiltered.flac # Basic filtering. filter fullpod-unfiltered.flac filtered.flac # De-essing. This is the version to send for publishing. # The third argument should be "o" for de-essing, or "i" for pass through without de-essing. deessing filtered.flac fullpod.flac o # Normalized for review. normffmpeg fullpod.flac fullpod-norm.flac # Output an MP3 copy for review. mp3convert fullpod-norm.flac -------------------- -------------------- Provide feedback on this episode.

The Dictionary
#F195 (fourchée to Fourier transform)

The Dictionary

Play Episode Listen Later Sep 27, 2025 36:26


I read from fourchée to Fourier transform. In the Four Horsemen of the Apocalypse, the White Horse represents Conquest (usually), the Red Horse represents War, the Black Horse represents Famine, and the Pale Horse represents Death. https://en.wikipedia.org/wiki/Four_Horsemen_of_the_Apocalypse Wow. I would not fit well in "The 400" but I would want to go to just one party. They list out all the members but it's NOT 400! https://en.wikipedia.org/wiki/The_Four_Hundred_(Gilded_Age) The Fourier analysis formulas hurt my brain because I never studied those symbols. Same with the theorem/series.https://en.wikipedia.org/wiki/Fourier_analysishttps://en.wikipedia.org/wiki/Fourier_series The word of the episode is "four dimensional".https://en.wikipedia.org/wiki/Four-dimensional_space Final Destination 3https://www.imdb.com/title/tt0414982/ Use my special link https://zen.ai/thedictionary to save 30% off your first month of any Zencastr paid plan. Create your podcast today! #madeonzencastr Theme music from Jonah Krauthttps://jonahkraut.bandcamp.com/ Merchandising!https://www.teepublic.com/user/spejampar "The Dictionary - Letter A" on YouTube "The Dictionary - Letter B" on YouTube "The Dictionary - Letter C" on YouTube "The Dictionary - Letter D" on YouTube "The Dictionary - Letter E" on YouTube "The Dictionary - Letter F" on YouTube https://linktr.ee/spejampar917-727-5757

The Dictionary
#F195 (fourchée to Fourier transform)

The Dictionary

Play Episode Listen Later Jun 27, 2025 36:26


I read from fourchée to Fourier transform.     In the Four Horsemen of the Apocalypse, the White Horse represents Conquest (usually), the Red Horse represents War, the Black Horse represents Famine, and the Pale Horse represents Death.  https://en.wikipedia.org/wiki/Four_Horsemen_of_the_Apocalypse     Wow. I would not fit well in "The 400" but I would want to go to just one party. They list out all the members but it's NOT 400!  https://en.wikipedia.org/wiki/The_Four_Hundred_(Gilded_Age)     The Fourier analysis formulas hurt my brain because I never studied those symbols. Same with the theorem/series. https://en.wikipedia.org/wiki/Fourier_analysis https://en.wikipedia.org/wiki/Fourier_series     The word of the episode is "four dimensional". https://en.wikipedia.org/wiki/Four-dimensional_space     Final Destination 3 https://www.imdb.com/title/tt0414982/     Use my special link https://zen.ai/thedictionary to save 30% off your first month of any Zencastr paid plan.    Create your podcast today! #madeonzencastr     Theme music from Jonah Kraut https://jonahkraut.bandcamp.com/     Merchandising! https://www.teepublic.com/user/spejampar     "The Dictionary - Letter A" on YouTube   "The Dictionary - Letter B" on YouTube   "The Dictionary - Letter C" on YouTube   "The Dictionary - Letter D" on YouTube   "The Dictionary - Letter E" on YouTube   "The Dictionary - Letter F" on YouTube     Featured in a Top 10 Dictionary Podcasts list! https://blog.feedspot.com/dictionary_podcasts/     Backwards Talking on YouTube: https://www.youtube.com/playlist?list=PLmIujMwEDbgZUexyR90jaTEEVmAYcCzuq     https://linktr.ee/spejampar dictionarypod@gmail.com https://www.facebook.com/thedictionarypod/ https://www.threads.net/@dictionarypod https://twitter.com/dictionarypod https://www.instagram.com/dictionarypod/ https://www.patreon.com/spejampar https://www.tiktok.com/@spejampar 917-727-5757

Programming Throwdown
177: Vector Databases

Programming Throwdown

Play Episode Listen Later Nov 4, 2024 88:26


Intro topic:  Buying a CarNews/Links:Cognitive Load is what Mattershttps://github.com/zakirullin/cognitive-loadDiffusion models are Real-Time Game Engineshttps://gamengen.github.io/Your Company Needs Junior Devshttps://softwaredoug.com/blog/2024/09/07/your-team-needs-juniorsSeamless Streaming / Fish Speech / LLaMA OmniSeamless: https://huggingface.co/facebook/seamless-streamingFish: https://github.com/fishaudio/fish-speech LLaMA Omni: https://github.com/ictnlp/LLaMA-Omni Book of the ShowPatrick: Thought Emporium Youtubehttps://youtu.be/8X1_HEJk2Hw?si=T8EaHul-QMahyUvQJason: Novel Mindshttps://www.novelminds.ai/Patreon Plug https://www.patreon.com/programmingthrowdown?ty=hTool of the ShowPatrick: Escape Simulatorhttps://pinestudio.com/games/escape-simulator/Jason: Cursor IDEhttps://www.cursor.com/Topic: Vector Databases (~54 min)How computers represent data traditionallyASCII valuesRGB valuesHow traditional compression worksHuffman encoding (tree structure)Lossy example: Fourier Transform & store coefficientsHow embeddings are computedPairwise (contrastive) methodsForward models (self-supervised)Similarity metricsApproximate Nearest Neighbors (ANN)Sub-Linear ANNClusteringSpace Partitioning (e.g. K-D Trees)What a vector database doesPerform nearest-neighbors with many different similarity metricsStore the vectors and the data structures to support sub-linear ANNHandle updates, deletes, rebalancing/reclustering, backups/restoresExamplespgvector: a vector-database plugin for postgresWeaviate, Pinecone Milvus ★ Support this podcast on Patreon ★

python databases java vector programming languages objective c lossy fourier transform programming throwdown
Foundations of Amateur Radio
On the nature of Inspiration ..

Foundations of Amateur Radio

Play Episode Listen Later May 18, 2024 4:45


Foundations of Amateur Radio Over the years you've heard me utter the phrase: "Get on air and make some noise!". It's not an idle thought. The intent behind it is to start, to do something, anything, and find yourself a place within the hobby of amateur radio and the community surrounding it. Since starting my weekly contribution to this community, thirteen years ago, almost to the day, I promise, this wasn't planned, you'll see why in a moment, I've been working my way through the things that take my fancy, things that are of interest to me, and hopefully you. From time-to-time I don't know where the next words are going to come from. Today they came to me five minutes ago when a good friend, Colin, VK6ETE, asked me what inspires me, after I revealed to him that I didn't know what I was going to talk about. That's all it took to get me rolling. There are times when getting to that point takes weeks, I do research, figure out how something works, explore how it might have been tackled before, if at all, and only then I might start putting my thoughts together, often I'll have multiple stabs at it and if I'm lucky, sometimes, something emerges that I'm astonished by. Today is much simpler than all that, since the only research required is to remember the people I've interacted with. Last week I met an amateur, Jess M7WOM, who was in town. Until last week, we'd never met and interacted only online. We discovered that we have a great many things in common. A joy for curiosity, exploration, technology, computers and a shared belief that we can figure out how to make things work. That interaction, over the course of a day, continues to fuel my imagination and provides encouragement to try new things. The same is true for a friend, Eric VK6BJW, who asked what they should do with the hobby after having been away for a long time with family, children, commitments and work. Just asking a few simple questions got the juices going and provided inspiration to start playing again. Another amateur was bored and claimed to have run out of things to do. A few of us started asking questions about their exposure to the hobby. Had they tried a digital mode, had they built an antenna, had they tried to activate a park, or as I have said in the past, any of the other 1,000 hobbies that are embedded within the umbrella that we call amateur radio. Right now I'm in the midst of working through, actually truth be told, I'm starting, Okay, actually, I've yet to start, reading the online book published at PySDR.org. Prompted by a discussion with Jess last week, I started exploring a known gap in my knowledge. I likened it to having a lamp-post in front of my face, I can see to either side, but in-between is this post, obscuring an essential piece of knowledge, how one side is connected to the other. In my case, on one side, I can see the antenna, how it connects to an ADC, or an Analogue to Digital Converter. On the other, I can also see how you have a series of bytes coming into your program that you can compare against what you're looking for, but the two are not quite connected, obscured by that .. post. I know there's a Fourier Transform in there, but I don't yet grok how it's connected. Recently I discussed using an RDS, or Radio Data Systems decoder, called 'redsea', connected to 'rtl_fm', in turn connected to an RTL-SDR dongle, that is, you connect an antenna to a cheap Digital TV decoder, tune to an FM broadcast station and use some software to decode a digital signal. It turns out that the PySDR book serendipitously uses this signal path as an end-to-end tutorial, complete with all the code and example files to make this happen. I actually read the chapter, but it's assuming some knowledge that I don't yet have, so I'm going to start on page one .. again. So, what has this got to do with Inspiration, you ask. Well, everything and nothing. Inspiration doesn't occur in a vacuum. It needs input. You cannot see light without it hitting something, radio waves don't exist and cannot be detected until it hits an antenna, the same is true for inspiration. It needs to hit something. You need to react, it needs to connect. That is why I keep telling you to get on air and make some noise. I'm Onno VK6FLAB

Embedded
461: Am I the Cow in This Scenario?

Embedded

Play Episode Listen Later Oct 5, 2023 58:47


Chris and Elecia discuss the pros and cons of completing one project or starting a dozen.  Elecia's 2nd edition of Making Embedded Systems is coming out in March. (Preview is on O'Reilly's Learning System.) She's working on a companion repository that is already filled with links and goodies: github.com/eleciawhite/making-embedded-systems.  If you'd like to know more about signal processing, check out DSPGuide.com aka The Scientist and Engineer's Guide to Digital Signal Processing By Steven W. Smith, Ph.D. And as noted in last week's newsletter, there is an interesting overlap between smoothies and the Fourier Transform.  Giang Vinh Loc used  Charles Lohr's RISCV on Arduino UNO to boot Linux (in 16 hours).  We also talked a bit about Greg Wilson's recent episode with Elecia (Embedded 460: I Don't Care What Your Math Says). Transcript Thanks to Nordic for sponsoring this week's show! Nordic Semiconductor empowers wireless innovation, by providing hardware, software, tools and services that allow developers to create the IoT products of tomorrow. Learn more about Nordic Semiconductor at nordicsemi.com, check out the DevAcademy at academy.nordicsemi.com and interact with the Nordic Devzone community at devzone.nordicsemi.com.

guide scientists engineers preview cows iot nordic scenario linux greg wilson fourier transform nordic semiconductor arduino uno elecia
DevZen Podcast
Открытые не-хотдоги — Episode 441

DevZen Podcast

Play Episode Listen Later Sep 18, 2023 117:06


В этом выпуске: очередная порция невероятных тем. Шоуноты: [00:04:11] Чему мы научились за неделю But what is the Fourier Transform? A visual introduction. — YouTube TodayTix | Theater Tickets to Musicals, Plays, Broadway, More [00:25:07] HiFiMan Sundara [00:41:09] 28 дней спустя: какова же судьба Сашиных репок на BitBucket? [00:47:49] Qdrant [01:02:10] Unity стреляет себе в… Читать далее →

The Nonlinear Library
AF - Short Remark on the (subjective) mathematical 'naturalness' of the Nanda--Lieberum addition modulo 113 algorithm by Spencer Becker-Kahn

The Nonlinear Library

Play Episode Listen Later Jun 1, 2023 3:08


Welcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Short Remark on the (subjective) mathematical 'naturalness' of the Nanda--Lieberum addition modulo 113 algorithm, published by Spencer Becker-Kahn on June 1, 2023 on The AI Alignment Forum. These remarks are basically me just wanting to get my thoughts down after a Twitter exchange on this subject. I've not spent much time on this post and it's certainly plausible that I've gotten things wrong.In the 'Key Takeaways' section of the Modular Addition part of the well-known post 'A Mechanistic Interpretability Analysis of Grokking' , Nanda and Lieberum write: This algorithm operates via using trig identities and Discrete Fourier Transforms to map x,ycos(w(x+y)),sin(w(x+y)), and then extracting x+y(modp) And The model is trained to map x,y to z≡x+y(mod113) (henceforth 113 is referred to as p) But the casual reader should use caution! It is in fact the case that "Inputs x,y are given as one-hot encoded vectors in Rp ". This point is of course emphasized more in the full notebook (it has to be, that's where the code is), and the arXiv paper that followed is also much clearer about this point. However, when giving brief takeaways from the work, especially when it comes to discussing how 'natural' the learned algorithm is, I would go as far as saying that it is actually misleading to suggest that the network is literally given x and y as inputs. It is not trained to 'act' on the numbers x, y themselves. When thinking seriously about why the network is doing the particular thing that it is doing at the mechanistic level, I would want to emphasize that one-hotting is already a significant transformation. You have moved away from having the number x be represented by its own magnitude. You instead have a situation in which x and y now really live 'in the domain' (its almost like a dual point of view: The number x is not the size of the signal, but the position at which the input signal is non-zero). So, while I of course fully admit that I too am looking at it through my own subjective lens, one might say that (before the embedding happens) it is more mathematically natural to think that what the network is 'seeing' as input is something like the indicator functions t↦1x(t) and t↦1y(t). Here, t is something like the 'token variable' in the sense that these are functions on the vocabulary. And if we essentially ignore the additional tokens for | and =, we can think that these are functions on the group Z/pZ and that we would like the network to learn to produce the function t↦1x+y(t) at its output neurons.In particular, this point of view further (and perhaps almost completely) demystifies the use of the Fourier basis. Notice that the operation you want to learn is manifestly a convolution operation, i.e. And (as I distinctly remember being made to practically chant in an 'Analysis of Boolean Functions' class given by Tom Sanders) the Fourier Transform is the (essentially unique) change of basis that simultaneously diagonalizes all convolution operations. This is coming close to saying something like: There is one special basis that makes the operation you want to learn uniquely easy to do using matrix multiplications, and that basis is the Fourier basis. Thanks for listening. To help us out with The Nonlinear Library or to learn more, please visit nonlinear.org.

The Nonlinear Library
LW - Short Remark on the (subjective) mathematical 'naturalness' of the Nanda--Lieberum addition modulo 113 algorithm by Spencer Becker-Kahn

The Nonlinear Library

Play Episode Listen Later Jun 1, 2023 3:07


Welcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Short Remark on the (subjective) mathematical 'naturalness' of the Nanda--Lieberum addition modulo 113 algorithm, published by Spencer Becker-Kahn on June 1, 2023 on LessWrong. These remarks are basically me just wanting to get my thoughts down after a Twitter exchange on this subject. I've not spent much time on this post and it's certainly plausible that I've gotten things wrong.In the 'Key Takeaways' section of the Modular Addition part of the well-known post 'A Mechanistic Interpretability Analysis of Grokking' , Nanda and Lieberum write: This algorithm operates via using trig identities and Discrete Fourier Transforms to map x,ycos(w(x+y)),sin(w(x+y)), and then extracting x+y(modp) And The model is trained to map x,y to z≡x+y(mod113) (henceforth 113 is referred to as p) But the casual reader should use caution! It is in fact the case that "Inputs x,y are given as one-hot encoded vectors in Rp ". This point is of course emphasized more in the full notebook (it has to be, that's where the code is), and the arXiv paper that followed is also much clearer about this point. However, when giving brief takeaways from the work, especially when it comes to discussing how 'natural' the learned algorithm is, I would go as far as saying that it is actually misleading to suggest that the network is literally given x and y as inputs. It is not trained to 'act' on the numbers x, y themselves. When thinking seriously about why the network is doing the particular thing that it is doing at the mechanistic level, I would want to emphasize that one-hotting is already a significant transformation. You have moved away from having the number x be represented by its own magnitude. You instead have a situation in which x and y now really live 'in the domain' (its almost like a dual point of view: The number x is not the size of the signal, but the position at which the input signal is non-zero). So, while I of course fully admit that I too am looking at it through my own subjective lens, one might say that (before the embedding happens) it is more mathematically natural to think that what the network is 'seeing' as input is something like the indicator functions t↦1x(t) and t↦1y(t). Here, t is something like the 'token variable' in the sense that these are functions on the vocabulary. And if we essentially ignore the additional tokens for | and =, we can think that these are functions on the group Z/pZ and that we would like the network to learn to produce the function t↦1x+y(t) at its output neurons.In particular, this point of view further (and perhaps almost completely) demystifies the use of the Fourier basis. Notice that the operation you want to learn is manifestly a convolution operation, i.e. And (as I distinctly remember being made to practically chant in an 'Analysis of Boolean Functions' class given by Tom Sanders) the Fourier Transform is the (essentially unique) change of basis that simultaneously diagonalizes all convolution operations. This is coming close to saying something like: There is one special basis that makes the operation you want to learn uniquely easy to do using matrix multiplications, and that basis is the Fourier basis. Thanks for listening. To help us out with The Nonlinear Library or to learn more, please visit nonlinear.org.

The Nonlinear Library: LessWrong
LW - Short Remark on the (subjective) mathematical 'naturalness' of the Nanda--Lieberum addition modulo 113 algorithm by Spencer Becker-Kahn

The Nonlinear Library: LessWrong

Play Episode Listen Later Jun 1, 2023 3:07


Link to original articleWelcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Short Remark on the (subjective) mathematical 'naturalness' of the Nanda--Lieberum addition modulo 113 algorithm, published by Spencer Becker-Kahn on June 1, 2023 on LessWrong. These remarks are basically me just wanting to get my thoughts down after a Twitter exchange on this subject. I've not spent much time on this post and it's certainly plausible that I've gotten things wrong.In the 'Key Takeaways' section of the Modular Addition part of the well-known post 'A Mechanistic Interpretability Analysis of Grokking' , Nanda and Lieberum write: This algorithm operates via using trig identities and Discrete Fourier Transforms to map x,ycos(w(x+y)),sin(w(x+y)), and then extracting x+y(modp) And The model is trained to map x,y to z≡x+y(mod113) (henceforth 113 is referred to as p) But the casual reader should use caution! It is in fact the case that "Inputs x,y are given as one-hot encoded vectors in Rp ". This point is of course emphasized more in the full notebook (it has to be, that's where the code is), and the arXiv paper that followed is also much clearer about this point. However, when giving brief takeaways from the work, especially when it comes to discussing how 'natural' the learned algorithm is, I would go as far as saying that it is actually misleading to suggest that the network is literally given x and y as inputs. It is not trained to 'act' on the numbers x, y themselves. When thinking seriously about why the network is doing the particular thing that it is doing at the mechanistic level, I would want to emphasize that one-hotting is already a significant transformation. You have moved away from having the number x be represented by its own magnitude. You instead have a situation in which x and y now really live 'in the domain' (its almost like a dual point of view: The number x is not the size of the signal, but the position at which the input signal is non-zero). So, while I of course fully admit that I too am looking at it through my own subjective lens, one might say that (before the embedding happens) it is more mathematically natural to think that what the network is 'seeing' as input is something like the indicator functions t↦1x(t) and t↦1y(t). Here, t is something like the 'token variable' in the sense that these are functions on the vocabulary. And if we essentially ignore the additional tokens for | and =, we can think that these are functions on the group Z/pZ and that we would like the network to learn to produce the function t↦1x+y(t) at its output neurons.In particular, this point of view further (and perhaps almost completely) demystifies the use of the Fourier basis. Notice that the operation you want to learn is manifestly a convolution operation, i.e. And (as I distinctly remember being made to practically chant in an 'Analysis of Boolean Functions' class given by Tom Sanders) the Fourier Transform is the (essentially unique) change of basis that simultaneously diagonalizes all convolution operations. This is coming close to saying something like: There is one special basis that makes the operation you want to learn uniquely easy to do using matrix multiplications, and that basis is the Fourier basis. Thanks for listening. To help us out with The Nonlinear Library or to learn more, please visit nonlinear.org.

The tastytrade network
The Skinny on Options: Abstract Applications - August 15, 2022 - Fourier Transform Analysis

The tastytrade network

Play Episode Listen Later Aug 15, 2022 18:09


Complex math and models from all fields can often have an application to what we do as tastytraders. As we see today with the Fourier Transform concept that is more commonly used in Signaling Theory and musical analysis. Which reminds us of the value of deconstructing larger equations into their component parts to aid in decision making.Did you catch our recently on how to determine Delta/Theta levels for your portfolio?

The tastytrade network
The Skinny on Options: Abstract Applications - August 15, 2022 - Fourier Transform Analysis

The tastytrade network

Play Episode Listen Later Aug 15, 2022 17:18


Complex math and models from all fields can often have an application to what we do as tastytraders. As we see today with the Fourier Transform concept that is more commonly used in Signaling Theory and musical analysis. Which reminds us of the value of deconstructing larger equations into their component parts to aid in decision making.Did you catch our recently on how to determine Delta/Theta levels for your portfolio?

Engines of Our Ingenuity
Engines of Our Ingenuity 2803: Fourier Music

Engines of Our Ingenuity

Play Episode Listen Later Jul 7, 2022 3:47


Episode: 2803 Fourier, the Fourier Transform, and Music.  Today, music in translation.

music engines ingenuity fourier lossy fourier transform
Foundations of Amateur Radio
The Rebirth of Homebrew

Foundations of Amateur Radio

Play Episode Listen Later Nov 20, 2021 4:31


Foundations of Amateur Radio On the 12th of December 1961, before I was born, before my parents met, the first amateur radio satellite was launched by Project OSCAR. It was a 10 kilo box, launched as the first private non-government spacecraft. OSCAR 1 was the first piggyback satellite, launched as a secondary payload taking the space of a ballast weight and managed to be heard by over 570 amateurs across 28 countries during the 22 days it was in orbit. It was launched just over four years after Sputnik 1 and was built entirely by amateurs for radio amateurs. In the sixty years since we've come a long way. Today high school students are building and launching CubeSats and several groups have built satellites for less than a $1,000. OSCAR 76, the so-called "$50SAT" cost $250 in parts. It operated in orbit for 20 months. Fees for launching a 10cm cubed satellite are around $60,000 and reducing by the year. If that sounds like a lot of money for the amateur community, consider that the budget for operating VK0EK, the DXpedition to Heard Island in 2016 was $550,000. Operation lasted 21 days. I'm mentioning all this in the context of homebrew. Not the alcoholic version of homebrew, the radio amateur version, where you build stuff for your personal enjoyment and education. For some amateurs that itch is scratched by designing and building a valve based power amplifier, for others it means building a wooden Morse key. For the members of OSCAR it's satellites. For me the itch has always been software. Sitting in my bedroom in the early 1980's, eyeballs glued to the black and white TV that was connected to my very own Commodore VIC-20 was how I got properly bitten by that bug, after having been introduced to the Apple II at my high school. I'm a curios person. Have always been. In my work I generally go after the new and novel and then discover six months down the track that my clients benefit from my weird sideways excursion into something or other. Right now my latest diversion is the FPGA, a Field Programmable Gate Array. Started watching a new series by Digi-Key about how to use them and the experience is exhilarating. One way to simply describe an FPGA is to think of it as a way to create a virtual circuit board that can be reprogrammed in the field. You don't have to go out and design a chip for a specific purpose and deal with errors, upgrades and supply chain issues, instead you use a virtual circuit and reprogram as needed. If you're not sure how powerful this is, you can program an FPGA to behave like a Motorola 65C02 microprocessor, or as a RISC CPU, or well over 200 other open source processor designs, including the 64-bit UltraSPARC T1 microprocessor. I'm mentioning this because while I have a vintage HP606A valve based signal generator that I'm working on restoring to fully working. Homebrew for me involves all that the world has to offer. I don't get excited about solder and my hands and eyes are really not steady enough to manage small circuit designs, but tapping keys on a keyboard, that's something I've been doing for a long time. Another thing I like about this whole upgraded view of homebrew is that we as radio amateurs are already familiar with building blocks. We likely don't design a power supply from scratch, or an amplifier, or the VFO circuit. Why improve something that has stood the test of time? In my virtual world, I too can use those building blocks. In FPGA land I can select any number of implementations of a Fourier Transform and test them all to see which one suits my purpose best. In case you're wondering. My Pluto SDR is looking great as a 2m and 70cm beacon, transmitting on both bands simultaneously. It too has an FPGA on board and I'm not afraid to get my keyboard dirty trying to tease out how to best make use of that. What homebrew adventures have you been up to? I'm Onno VK6FLAB

How the Fourier Transform Works
Better audio engineering with the Fourier Transform

How the Fourier Transform Works

Play Episode Listen Later Nov 15, 2021 26:13 Transcription Available Very Popular


The Fourier Transform has made a huge contribution to almost every area of audio engineering. From individual filters to full mastering suites; from tuning your guitar to how we store and transmit sound, the Fourier Transform is there ferreting out every bit of frequency information from your time-based audio signal.In this episode, we look at a few examples of how the Fourier Transform has revolutionized the way engineers work with sound.Show Notes for this Episode:https://howthefouriertransformworks.com/podcast/audio-engineering/Course Home Page:https://howthefouriertransformworks.comPatreon Page:https://howthefouriertransformworks.com/patreonJoin the mailing list:https://howthefouriertransformworks.com/mailing-list

audio engineering fourier transform
How the Fourier Transform Works
Preventative Maintenance, life saving technology with the Fourier Transform

How the Fourier Transform Works

Play Episode Play 30 sec Highlight Listen Later Aug 10, 2021 22:52 Very Popular


Preventative Maintenance is where we monitor the "health" of a system. If something in the system begins to wear out, we can take it offline for maintenance or repair BEFORE something goes seriously wrong.In this podcast, we'll investigate how the Fourier Transform can be used to listen to the health of an airplane's jet engine in much the same way a doctor uses a stethoscope to listen to your heart, a simple, non-invasive procedure that can save lives.I also answer a listener's question on how the Fourier Transform is used in Filter Banks, as well as giving an update on my progress on the "How the Fourier Transform Works" online course.Show Notes for this Episode:https://howthefouriertransformworks.com/preventative-maintenanceCourse Home Page:https://howthefouriertransformworks.comPatreon Page:https://howthefouriertransformworks.com/patreonJoin the mailing list:https://howthefouriertransformworks.com/mailing-list

How the Fourier Transform Works
Introduction

How the Fourier Transform Works

Play Episode Listen Later Jul 28, 2021 29:18 Transcription Available


The Fourier Transform is everywhere. Few are the days in your life where you won't pick up a piece of technology that implements it to provide you with pictures, videos, music, a phone call, and all manner of everyday applications. However, its very ubiquity means we take The Fourier Transform very much for granted and few are the people that really understand how it works. One of the reasons for this may be that, on the face of it, the maths can seem a little complicated.In this episode, we look at what the Fourier Transform is and I describe my own journey from mathematical ignoramus to actually understanding how the Fourier Transform works.Course Homepage: https://howthefouriertransformworks.com/ Podcast email: podcast@howthefouriertransformworks.comSupport the podcast: https://howthefouriertransformworks.com/patreonJoin the mailing list: https://howthefouriertransformworks.com/mailing-list

mathematics fourier transform
Yannic Kilcher Videos (Audio Only)
FNet: Mixing Tokens with Fourier Transforms (Machine Learning Research Paper Explained)

Yannic Kilcher Videos (Audio Only)

Play Episode Listen Later May 24, 2021 34:22


#fnet #attention #fourier Do we even need Attention? FNets completely drop the Attention mechanism in favor of a simple Fourier transform. They perform almost as well as Transformers, while drastically reducing parameter count, as well as compute and memory requirements. This highlights that a good token mixing heuristic could be as valuable as a learned attention matrix. OUTLINE: 0:00 - Intro & Overview 0:45 - Giving up on Attention 5:00 - FNet Architecture 9:00 - Going deeper into the Fourier Transform 11:20 - The Importance of Mixing 22:20 - Experimental Results 33:00 - Conclusions & Comments Paper: https://arxiv.org/abs/2105.03824 ADDENDUM: Of course, I completely forgot to discuss the connection between Fourier transforms and Convolutions, and that this might be interpreted as convolutions with very large kernels. Abstract: We show that Transformer encoder architectures can be massively sped up, with limited accuracy costs, by replacing the self-attention sublayers with simple linear transformations that "mix" input tokens. These linear transformations, along with simple nonlinearities in feed-forward layers, are sufficient to model semantic relationships in several text classification tasks. Perhaps most surprisingly, we find that replacing the self-attention sublayer in a Transformer encoder with a standard, unparameterized Fourier Transform achieves 92% of the accuracy of BERT on the GLUE benchmark, but pre-trains and runs up to seven times faster on GPUs and twice as fast on TPUs. The resulting model, which we name FNet, scales very efficiently to long inputs, matching the accuracy of the most accurate "efficient" Transformers on the Long Range Arena benchmark, but training and running faster across all sequence lengths on GPUs and relatively shorter sequence lengths on TPUs. Finally, FNet has a light memory footprint and is particularly efficient at smaller model sizes: for a fixed speed and accuracy budget, small FNet models outperform Transformer counterparts. Authors: James Lee-Thorp, Joshua Ainslie, Ilya Eckstein, Santiago Ontanon Links: TabNine Code Completion (Referral): http://bit.ly/tabnine-yannick YouTube: https://www.youtube.com/c/yannickilcher Twitter: https://twitter.com/ykilcher Discord: https://discord.gg/4H8xxDF BitChute: https://www.bitchute.com/channel/yann... Minds: https://www.minds.com/ykilcher Parler: https://parler.com/profile/YannicKilcher LinkedIn: https://www.linkedin.com/in/yannic-ki... BiliBili: https://space.bilibili.com/1824646584 If you want to support me, the best thing to do is to share out the content :) If you want to support me financially (completely optional and voluntary, but a lot of people have asked for this): SubscribeStar: https://www.subscribestar.com/yannick... Patreon: https://www.patreon.com/yannickilcher Bitcoin (BTC): bc1q49lsw3q325tr58ygf8sudx2dqfguclvngvy2cq Ethereum (ETH): 0x7ad3513E3B8f66799f507Aa7874b1B0eBC7F85e2 Litecoin (LTC): LQW2TRyKYetVC8WjFkhpPhtpbDM4Vw7r9m Monero (XMR): 4ACL8AGrEo5hAir8A9CeVrW8pEauWvnp1WnSDZxW7tziCDLhZAGsgzhRQABDnFy8yuM9fWJDviJPHKRjV4FWt19CJZN9D4n

Basia's Thoughts
EP 44 Is There a Frequency Space From Which All is Created?

Basia's Thoughts

Play Episode Play 28 sec Highlight Listen Later Apr 29, 2021 19:46


In this explorative episode we ask the material universe might be created as a type of Fourier Transform and how that could relate to more "New Age" types of ideas.We also ask about the atemporal types of experiences that people who experience near death circumstances go through and how they might be connected to the ideas of a frequency space.If the material universe is based on something like a Fourier Transformation, then all that is is created from a sort of primordial "sound".It would be interesting to know what the primordial frequencies are.  And so, physics explorations may be fruitful.  If we choose to explore a more spiritual path, then quieting the mind may provide us greater access to the frequency space, from which timelines originate.If you are interested in more physics oriented types of explorations of the Holographic Order, based on as few suppositions as possible, then you may enjoy "Physics from Wholeness: Dynamical Totality as a Conceptual Foundation for Physical Theories".If you have any comments, questions, or suggestions for the podcast you can contact me on Instagram @BasiasThoughts.  And, of course, if you would like to see more content from me do sponsor me on https://www.patreon.com/basia because that will allow me to focus more on content creation. 

Amlek.AI: ML & AI Podcast
Episode 10: Fourier Transform - אינטרו לפורייה

Amlek.AI: ML & AI Podcast

Play Episode Listen Later Dec 23, 2020 14:12


בפרק זה, נשוחח על מהי התמרת פורייה. מוטיבציות, שימושים, Time Series והקשר ללמידה עמוקה.קישורים רלוונטיים: But what is the Fourier Transform? A visual introduction Fourier Convolutional Neural Networks

time series fourier transform
PaperPlayer biorxiv bioinformatics
Discrimination of melanoma cell lines with Fourier Transform Infrared (FTIR) spectroscopy

PaperPlayer biorxiv bioinformatics

Play Episode Listen Later Sep 7, 2020


Link to bioRxiv paper: http://biorxiv.org/cgi/content/short/2020.09.05.284141v1?rss=1 Authors: Shakya, B. R., Teppo, H.-R., Rieppo, L. Abstract: Among skin cancers, melanoma is the lethal form and the leading cause of death in humans. Melanoma begins in melanocytes and is curable at early stages. Thus, early detection and evaluation of its metastatic potential are crucial for effective clinical intervention. Fourier transform infrared (FTIR) spectroscopy has gained considerable attention due to its versatility in detecting biochemical and biological features present in the samples. Changes in these features are used to differentiate between samples at different stages of the disease. Previously, FTIR spectroscopy has been mostly used to distinguish between healthy and diseased conditions. With this study, we aim to discriminate between different melanoma cell lines based on their FTIR spectra. Formalin-fixed paraffin embedded samples from three melanoma cell lines (IPC-298, SK-MEL-30 and COLO-800) were used. Statistically significant differences were observed in the prominent spectral bands of three cell lines along with shifts in peak positions. Partial least square discriminant analysis (PLS-DA) models built for the classification of three cell lines showed accuracies of 96.38 %, 95.96 % and 99.7 %, for the differentiation of IPC-298, SK-MEL-30 and COLO-800, respectively. The results suggest that FTIR spectroscopy can be used to differentiate between genetically different melanoma cells and thus potentially characterize the metastatic potential of melanoma. Copy rights belong to original authors. Visit the link for more info

PaperPlayer biorxiv biochemistry
Carotenogenesis of Staphylococcus aureus: new insights and impact on membrane biophysical properties

PaperPlayer biorxiv biochemistry

Play Episode Listen Later Jul 19, 2020


Link to bioRxiv paper: http://biorxiv.org/cgi/content/short/2020.07.19.210609v1?rss=1 Authors: Lopez, G.-D., Suesca, E., Alvarez-Rivera, G., Rosato, A., Ibanez, E., Cifuentes, A., Leidy, C., Carazzone, C. Abstract: Staphyloxanthin (STX) is a saccharolipid derived from a carotenoid in Staphylococcus aureus involved in oxidative-stress tolerance and antimicrobial peptide resistance. In this work, a targeted metabolomics and biophysical study was carried out on native and knock-out S. aureus strains to investigate the biosynthetic pathways of STX and related carotenoids. Identification of 34 metabolites at different growth phases (8, 24 and 48h), reveal shifts of carotenoid populations during progression towards stationary phase. Six of the carotenoids in the STX biosynthetic pathway and three menaquinones (Vitamin K2) were identified in the same chromatogram. Furthermore, other STX homologues with varying acyl chain structures reported herein for the first time, which reveal the extensive enzymatic activity of CrtO/CrtN. Fourier Transform infrared spectroscopy show that STX increases acyl chain order and shifts the cooperative melting of the membrane indicating a more rigid lipid bilayer. This study shows the diversity of carotenoids in S. aureus, and their influence on membrane biophysical properties. Copy rights belong to original authors. Visit the link for more info

OCW Scholar: Linear Algebra
Lecture 26: Complex Matrices; Fast Fourier Transform

OCW Scholar: Linear Algebra

Play Episode Listen Later Aug 1, 2018 47:52


complex lecture matrices fourier transform
Linear Digressions
The Fourier Transform

Linear Digressions

Play Episode Listen Later Jan 7, 2018 15:39


The Fourier transform is one of the handiest tools in signal processing for dealing with periodic time series data. Using a Fourier transform, you can break apart a complex periodic function into a bunch of sine and cosine waves, and figure out what the amplitude, frequency and offset of those component waves are. It's a really handy way of re-expressing periodic data--you'll never look at a time series graph the same way again.

SynTalk
#TDAC (The Discrete And Continuous) --- SynTalk

SynTalk

Play Episode Listen Later Dec 22, 2017 77:25


Is grey ‘real’? Is all discretization perspectival? Can there be absolute notions of discreteness and continuity? Is time eternal? Is the world continuous but we perceive it as discrete? Are micro and macro objects continuous, but the meso discrete? Can real numbers be ‘made’ from integers? Are real numbers continuous (analog), & integers discrete (digital)? Do we don’t have access to ‘most’ of the real numbers? Did God make integers – or only 1 (& 0?)? What does Fourier Transform imply? What is the most fundamental signal? When does sampling not lead to loss of information? Can the sense of touch be discretized? Can surgeries be performed remotely? Does discretization happen in Nature? Is noise always continuous? Is speech predictable even if the underlying phonemes seem discrete? Do all manifolds lie on a continuum? Is making linear (analog) circuits difficult? Are higher order infinities deeper forms of ‘silence’? Does mathematics understand the ‘ambiguous’ ways in which things are (sometimes…) equal? Would a world without continuity (& community) be doomed? SynTalk thinks about these & more questions using concepts from logic & philosophy (Prof. Mihir K. Chakraborty, ex-University of Calcutta, Kolkata), mathematics (Prof. Kiran S. Kedlaya, University of California San Diego, La Jolla, California), & electrical engineering (Prof. D. Manjunath, IIT Bombay, Mumbai). Listen in...

Sum Of All Parts - ABC RN
6.1 Slow down, George Solo-son [BONUS]

Sum Of All Parts - ABC RN

Play Episode Listen Later Oct 30, 2017 5:40 Very Popular


Did George Harrison "cheat" the solo to A Hard Day's Night?

Sum Of All Parts - ABC RN
6.0 Magical Mystery Chord

Sum Of All Parts - ABC RN

Play Episode Listen Later Oct 26, 2017 22:24 Very Popular


No one’s sure exactly how the most famous chord in popular music was played. Until now.

Signals and Systems
Lecture 16: Fourier Transform

Signals and Systems

Play Episode Listen Later Jun 27, 2017 45:51


The concept of the Fourier series can be applied to aperiodic functions by treating it as a periodic function with period T = infinity. This new transform has some key similarities and differences with the Laplace transform, its properties, and domains.

lecture laplace fourier fourier transform
Digital Signal Processing
Lecture 4: The discrete-time Fourier transform

Digital Signal Processing

Play Episode Listen Later Jun 14, 2017 44:08


This lecture covers generalization of the frequency response representation of sequences and the inverse Fourier transform relation. It also covers the properties of and the relationship between continuous-time and discrete-time Fourier transforms.

lecture discrete fourier fourier transform
Digital Signal Processing
Lecture 20: Computation of the discrete Fourier transform, part 3

Digital Signal Processing

Play Episode Listen Later Jun 14, 2017 44:58


This lecture covers rearrangements of the basic decimation-in-frequency algorithm and discuss the relation between decimation-in-time and decimation-in-frequency through the transposition theorem. It also covers more general arbitrary radix FFT algorithms.

Digital Signal Processing
Lecture 19: Computation of the discrete Fourier transform, part 2

Digital Signal Processing

Play Episode Listen Later Jun 14, 2017 44:01


This lecture discusses interpretation of the FFT flow graph and bit-reversed data ordering. It also discusses other decimation-in-time FFT algorithms by rearranging the flow graph and the decimation-in-frequency FFT algorithm.

Digital Signal Processing
Lecture 18: Computation of the discrete Fourier transform, part 1

Digital Signal Processing

Play Episode Listen Later Jun 14, 2017 48:56


This lectures covers different methods of computation of the discrete Fourier transform, including direct computation, successive decimation of the sequences, the decimation-in-time form of the FFT algorithm, and basic butterfly computation.

Digital Signal Processing
Lecture 9: The discrete Fourier transform

Digital Signal Processing

Play Episode Listen Later Jun 14, 2017 47:32


This lecture includes more demonstrations of sampling and aliasing with a sinusoidal signal, sinusoidal response of digital filters, dependence of frequency response on sampling period, and the periodic nature of the frequency response of a digital filter.

lecture discrete fourier transform
Linear Algebra
Lecture 26: Complex Matrices; Fast Fourier Transform

Linear Algebra

Play Episode Listen Later Mar 3, 2017 47:52


complex lecture matrices fourier transform
How the Fourier Transform Works
What is The Discrete Fourier Transform (DFT)?

How the Fourier Transform Works

Play Episode Listen Later Dec 3, 2015


To view this content, you must be a member of Mark's Patreon at $5 or more - Click "Read more" to unlock this content at the source The post What is The Discrete Fourier Transform (DFT)? appeared first on How the Fourier Transform Works.

discrete fourier transform
TWTSPodcast – Turil
TWTS – Biological Fourier Transform Peak Experiences!

TWTSPodcast – Turil

Play Episode Listen Later Jul 25, 2015


. TWTS – Episode 21. – Biological Fourier Transform Peak Experiences! http://www.blooomy.org/podcast/BiologicalFourierTransform.mp3 DOWNLOAD (right click to save linked file): TWTS Biological Fourier Transform Peak Experiences! . What matters? Our more “metaphorical” and poetic language turns out to be an excellent clue as to the more scientific processes of what’s going on unconsciously with our more […]

Computational Science and Engineering I
Lecture 31: Examples of discrete Fourier transform; fast Fourier transform; convolution (part 1)

Computational Science and Engineering I

Play Episode Listen Later Jul 15, 2015 51:41


lecture discrete convolution fourier transform
Signals and Systems: an Introduction to Analog and Digital Signal Processing, 1987

This video gives a summary of relationships between continuous-time and discrete-time Fourier series and Fourier transforms.

lecture discrete fourier fourier transform
Signals and Systems: an Introduction to Analog and Digital Signal Processing, 1987

This video covers Fourier transofrm properties, including linearity, symmetry, time shifting, differentiation, and integration. We will also cover convolution and modulation properties and how they can be used for filtering, modulation, and sampling.

lecture properties fourier fourier transform
Signals and Systems: an Introduction to Analog and Digital Signal Processing, 1987

This video covers many uses and applications of Fourier transforms in signal processing. We will derive the Fourier transform representation of aperiodic signals, and examine the relationship between Fourier series and Fourier transforms.

lecture continuous fourier fourier transform
MathsCasts
A simple Fourier transform example - Part 3 (MathsCasts)

MathsCasts

Play Episode Listen Later Jan 3, 2014 4:55


We find the Fourier transform of a simple piecewise function with values 0 and e^(-kt).

MathsCasts
A simple Fourier transform example - Part 2 (MathsCasts)

MathsCasts

Play Episode Listen Later Jan 2, 2014 6:14


We find the Fourier transform of a simple piecewise function with values 0 and t.

MathsCasts
A simple Fourier transform example - Part 1 (MathsCasts)

MathsCasts

Play Episode Listen Later Jan 1, 2014 4:55


We find the Fourier transform of a simple piecewise function with values 0 and 1.

Today's Neuroscience, Tomorrow's History - Professor Roger Ordidge
Magnetic Resonance Imaging how it works: Fourier transform and use of contrast

Today's Neuroscience, Tomorrow's History - Professor Roger Ordidge

Play Episode Listen Later Aug 27, 2012 3:58


AGACSE 2012
Clifford Fourier Transform for Image Harmonic Analysis

AGACSE 2012

Play Episode Listen Later Jul 17, 2012 47:34


T. Batard and M. Berthier

clifford harmonic berthier batard fourier transform
AGACSE 2012
Two-sided Clifford Fourier Transform with Square Roots of -1 Cl (p,q)

AGACSE 2012

Play Episode Listen Later Jul 17, 2012 36:01


E. Hitzer

Inverse Problems
Nonlinear Fourier transform and electrical impedance tomography

Inverse Problems

Play Episode Listen Later Nov 23, 2011 60:50


Siltanen, S (U. of Helsinki) Tuesday 22 November 2011, 14:00-15:00

electrical nonlinear tomography impedance fourier transform s u
OPTI512R - Linear Systems and Fourier Optics
Lecture 13. The Discrete Fourier Transform

OPTI512R - Linear Systems and Fourier Optics

Play Episode Listen Later Sep 8, 2011 62:01


revised Fall 2011

fall lecture discrete fourier transform
Partial Differential Equations
28b Weak solutions of the non-homogeneous Poisson equation. Linear parabolic equations. The Cauchy problem and the Fourier transform. Qualitative properties of solutions. (recorded 2011.05.04 at 15:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:43


weak mathematics properties linear poisson qualitative equations parabolic homogeneous cauchy fourier transform partial differential equations
Partial Differential Equations
30a Convolution and Fourier transform. Fundamental solutions. (recorded 2011.05.06 at 09:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:42


fundamental mathematics convolution fourier transform partial differential equations
Partial Differential Equations
20a The Fourier transform in L^1. Properties and examples. Fourier transform of e^{-|x|^2}. (recorded 2011.04.13 at 14:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:41


mathematics properties fourier transform partial differential equations
Partial Differential Equations
20b The Fourier transform in L^1. Properties and examples. Fourier transform of e^{-|x|^2}. (recorded 2011.04.13 at 15:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:42


mathematics properties fourier transform partial differential equations
Partial Differential Equations
21a Fourier transform and differentiation. On the inversion of the Fourier transform. (recorded 2011.04.14 at 09:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:42


mathematics differentiation inversion fourier transform partial differential equations
Partial Differential Equations
21b Fourier transform and differentiation. On the inversion of the Fourier transform. (recorded 2011.04.14 at 10:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:36


mathematics differentiation inversion fourier transform partial differential equations
Partial Differential Equations
23a Some properties of the Schwarz space. Fourier transform on the Schwarz space. Tempered distributions. (recorded 2011.04.20 at 14:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 32:55


space mathematics properties schwarz distributions tempered fourier transform partial differential equations
Partial Differential Equations
23b Some properties of the Schwarz space. Fourier transform on the Schwarz space. Tempered distributions. (recorded 2011.04.20 at 15:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:43


space mathematics properties schwarz distributions tempered fourier transform partial differential equations
Partial Differential Equations
24b The Fourier transform on tempered distributions. (recorded 2011.04.21 at 10:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:42


mathematics distributions tempered fourier transform partial differential equations
Partial Differential Equations
25a Sobolev spaces with natural exponent. Characterization using the Fourier transform. Embedding in spaces C^k. (recorded 2011.04.27 at 14:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:41


natural spaces mathematics embedding characterization exponent fourier transform sobolev partial differential equations
Partial Differential Equations
25b Sobolev spaces with natural exponent. Characterization using the Fourier transform. Embedding in spaces C^k. (recorded 2011.04.27 at 15:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:42


natural spaces mathematics embedding characterization exponent fourier transform sobolev partial differential equations
Partial Differential Equations
26a Sobolev spaces with real exponent using the Fourier transform. Applications of the Fourier transform to linear elliptic PDEs. (recorded 2011.04.28 at 09:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:40


spaces applications mathematics linear exponent elliptic fourier transform sobolev pdes partial differential equations
Partial Differential Equations
26b Sobolev spaces with real exponent using the Fourier transform. Applications of the Fourier transform to linear elliptic PDEs. (recorded 2011.04.28 at 10:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:41


spaces applications mathematics linear exponent elliptic fourier transform sobolev pdes partial differential equations
Partial Differential Equations
27a Linear elliptic operators and Fourier transform. Poisson equation in the half-space. (recorded 2011.04.29 at 09:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:41


space mathematics equation linear operators poisson elliptic fourier transform partial differential equations
Partial Differential Equations
27b Linear elliptic operators and Fourier transform. Poisson equation in the half-space. (recorded 2011.04.29 at 10:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:32


space mathematics equation linear operators poisson elliptic fourier transform partial differential equations
Partial Differential Equations
28a Weak solutions of the non-homogeneous Poisson equation. Linear parabolic equations. The Cauchy problem and the Fourier transform. Qualitative properties of solutions. (recorded 2011.05.04 at 14:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:42


weak mathematics properties linear poisson qualitative equations parabolic homogeneous cauchy fourier transform partial differential equations
Partial Differential Equations
30b Convolution and Fourier transform. Fundamental solutions. (recorded 2011.05.06 at 10:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:40


fundamental mathematics convolution fourier transform partial differential equations
Partial Differential Equations
24a The Fourier transform on tempered distributions. (recorded 2011.04.21 at 09:00)

Partial Differential Equations

Play Episode Listen Later Aug 31, 2011 59:41


mathematics distributions tempered fourier transform partial differential equations
OPTI512R - Linear Systems and Fourier Optics
Lecture 7. The Convolution Theorem and Other Fourier Transform Properties

OPTI512R - Linear Systems and Fourier Optics

Play Episode Listen Later Aug 22, 2011 52:53


lecture properties theorem convolution fourier transform
OPTI512R - Linear Systems and Fourier Optics
Lecture 7 Notes: Special Properties and Important Theorems involving the Fourier Transform

OPTI512R - Linear Systems and Fourier Optics

Play Episode Listen Later Aug 15, 2011


It is very important to understand how to perform direct convolution, as well as to have a picture in your mind about graphical convolution and how it works. However, there is a vitally important theorem that relates the convolutional of two functions to their Fourier transforms. Consider the system that we’ve put together in Fig. 1. Our picture of linear systems tells us that we can compute the output in one of two ways. Either we can break up the input into a superposition of shifted and weighted delta functions, pass each one through the system to get a superposition of shifted and weighted impulse responses h(x − x0), and then add them up through a convolution integral. Alternately, we can break up our input into a superposition of weighted complex sinusoids via the Fourier transform, pass each one through our system using the transfer function H(ξ), and then add them back up again through the inverse Fourier transform. We might ask ourselves, “what is the relationship between h(x) and H(ξ)? Given the notation we’ve chosen, we might guess that they are related by a Fourier transform.

OPTI512R - Linear Systems and Fourier Optics
Lecture 6 Notes: The Fourier Transform and its Properties

OPTI512R - Linear Systems and Fourier Optics

Play Episode Listen Later Aug 15, 2011


We have discussed the Fourier series and its relative, the Fourier integral. There are many specific forms that the Fourier integral can take, but the one that we are most interested in is known as the Fourier Transform.

lecture properties fourier fourier transform
Mathematik, Informatik und Statistik - Open Access LMU - Teil 02/03

The question is analysed if the human cerebral cortex is self similar in a statistical sense, a property which is usually referred to as being a fractal. The presented analysis includes all spatial scales from the brain size to the ultimate image resolution. Results obtained in two healthy volunteers show that the self similarity does take place down to the spatial scale of 2.5 mm. The obtained fractal dimensions read D=2.73±.05 and D=2.67±.05 correspondingly, which is in good agreement with previously reported results. The new calculational method is volumetric and is based on the fast Fourier Transform of segmented three dimensional high resolved magnetic resonance images. Engagement of FFT enables a simple interpretation of the results and achieves a high performance, which is necessary to analyse the entire cortex.

Biologie - Open Access LMU - Teil 02/02
Fourier-transform Raman spectroscopy applied to photobiological systems.

Biologie - Open Access LMU - Teil 02/02

Play Episode Listen Later Jan 1, 1990


Fluorescence and initiation of photoreactions are problems frequently encountered with resonance Raman spectroscopy of photobiological systems. These problems can be circumvented with Fourier-transform Raman spectroscopy by using the 1064-nm wavelength of a continuous wave neodymium-yttrium/aluminum-garnet laser as the probing beam. This wavelength is far from the absorption band of most pigments. Yet, the spectra of the investigated systems--bacteriorhodopsin, rhodopsin, and phycocyanin--show that these systems are still dominated by the chromophore, or that preresonant Raman scattering is still prevalent. Only for rhodopsin were contributions of the protein and the membrane discernible. The spectra of phycocyanin differ considerably from those obtained by excitation into the UV-absorption band. The results show the usefulness of this method and its wide applicability. In addition, analysis of the relative preresonant scattering cross sections may provide a detailed insight into the scattering mechanism.

applied uv biologie raman fourier fluorescence fourier transform raman spectroscopy