{"id":80,"date":"2016-11-08T03:57:46","date_gmt":"2016-11-08T03:57:46","guid":{"rendered":"http:\/\/imalogic.com\/blog\/?p=80"},"modified":"2017-05-15T13:34:37","modified_gmt":"2017-05-15T13:34:37","slug":"reconnaissance-vocale-serie-de-fourier-fft","status":"publish","type":"post","link":"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/","title":{"rendered":"Reconnaissance vocale : S\u00e9rie de Fourier, FFT"},"content":{"rendered":"<body><p><\/p>\n<h1>1. Repr\u00e9sentation de la d\u00e9composition en s\u00e9rie de Fourier<\/h1>\n<p><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/04\/Fourier_2.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"130\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaisance-vocale-generalites\/ifourij001p1-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/04\/Fourier_2.jpg?fit=257%2C326&amp;ssl=1\" data-orig-size=\"257,326\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;ifourij001p1&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;ifourij001p1&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ifourij001p1\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;ifourij001p1&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/04\/Fourier_2.jpg?fit=257%2C326&amp;ssl=1\" class=\"wp-image-130 alignleft\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/04\/Fourier_2.jpg?resize=122%2C154&#038;ssl=1\" alt=\"ifourij001p1\" width=\"122\" height=\"154\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/04\/Fourier_2.jpg?resize=237%2C300&amp;ssl=1 237w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/04\/Fourier_2.jpg?w=257&amp;ssl=1 257w\" sizes=\"auto, (max-width: 122px) 100vw, 122px\" \/><\/a><\/p>\n<p>La transform\u00e9e de Fourier est bas\u00e9e sur la d\u00e9couverte que toute fonction p\u00e9riodique du temps\u00a0<em>x<\/em>(<em>t<\/em>) peut \u00eatre d\u00e9compos\u00e9e\u00a0en\u00a0une\u00a0somme infinie de sinus et cosinus dont les fr\u00e9quences commencent \u00e0 z\u00e9ro et augmentent par multiples entiers\u00a0d\u2019une fr\u00e9quence de base\u00a0<em>f<\/em><sub>0<\/sub>\u00a0= 1\/<em>T<\/em>, o\u00f9\u00a0<em>T<\/em>\u00a0est la p\u00e9riode de\u00a0<em>x<\/em>(<em>t<\/em>). Ce d\u00e9veloppement se pr\u00e9sente ainsi :<img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"131\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaisance-vocale-generalites\/fseries\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/04\/fseries.gif?fit=678%2C104&amp;ssl=1\" data-orig-size=\"678,104\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"fseries\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/04\/fseries.gif?fit=678%2C104&amp;ssl=1\" class=\"size-full wp-image-131 aligncenter\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/04\/fseries.gif?resize=678%2C104&#038;ssl=1\" alt=\"fseries\" width=\"678\" height=\"104\" loading=\"lazy\"><\/p>\n<p>L\u2019expression du membre de droite est appel\u00e9e\u00a0<strong>s\u00e9rie de Fourier<\/strong>.\u00a0Le r\u00f4le de la transform\u00e9e de Fourier est de trouver toutes\u00a0les valeurs\u00a0<em>a<sub>k<\/sub><\/em>\u00a0et\u00a0<em>b<sub>k<\/sub><\/em>\u00a0qui composent la s\u00e9rie, connaissant la fr\u00e9quence\u00a0de base et la fonction\u00a0<em>x<\/em>(<em>t<\/em>).\u00a0Nous pouvons consid\u00e9rer le terme\u00a0<em>a<\/em><sub>0<\/sub>\u00a0\u00e0 l\u2019ext\u00e9rieur de la somme comme le coefficient du cosinus pour\u00a0<em>k<\/em>=0. Il n\u2019y a pas de coefficient correspondant\u00a0<em>b<\/em><sub>0<\/sub>\u00a0pour le sinus car le sinus de z\u00e9ro vaut z\u00e9ro, et donc ce coefficient n\u2019aurait pas d\u2019effet.<\/p>\n<p>Bien s\u00fbr, aucun ordinateur r\u00e9el ne peut calculer de sommes infinies ; il nous faut donc trouver un ensemble fini de sinus et cosinus. C\u2019est facile \u00e0 faire pour une entr\u00e9e num\u00e9rique \u00e9chantillonn\u00e9e, si nous stipulons qu\u2019il y a autant de fr\u00e9quences en sortie qu\u2019il y a de valeurs temporelles en entr\u00e9e. Nous profitons aussi du fait que tout enregistrement audio num\u00e9rique a une longueur finie. Nous pouvons pr\u00e9tendre que la fonction\u00a0<em>x<\/em>(<em>t<\/em>) est p\u00e9riodique, et que la p\u00e9riode est \u00e9gale \u00e0 la longueur de l\u2019enregistrement. En d\u2019autres termes, imaginons que l\u2019enregistrement se r\u00e9p\u00e8te continuellement, et appelons\u00a0<em>x<\/em>(<em>t<\/em>) cette fonction. La dur\u00e9e de la section r\u00e9p\u00e9t\u00e9e d\u00e9finit la fr\u00e9quence de base\u00a0<em>f<\/em><sub>0\u00a0<\/sub>dans l\u2019\u00e9quation ci-dessus. En d\u2019autres termes,\u00a0<em>f<\/em><sub>0<\/sub>\u00a0=\u00a0sampling Rate\u00a0\/\u00a0<em>N<\/em>, o\u00f9\u00a0<em>N<\/em>\u00a0est le nombre d\u2019\u00e9chantillons dans l\u2019enregistrement.<\/p>\n<p>Par exemple, si nous utilisons un taux d\u2019\u00e9chantillonnage (sampling Rate)de 44100 \u00e9chantillons \/ seconde, et que la longueur de l\u2019enregistrement (<em>N<\/em>) est de 1024 \u00e9chantillons, la dur\u00e9e repr\u00e9sent\u00e9e par l\u2019enregistrement est 1024 \/ 44100 = 0.02322 seconde, de sorte que la fr\u00e9quence de base\u00a0<em>f<\/em><sub>0<\/sub>\u00a0sera 1 \/ 0.02322 = 43.07 Hz. Si nous soumettons ces 1024 \u00e9chantillons \u00e0 la FFT, nous obtiendrons les coefficients\u00a0<em>a<sub>k<\/sub><\/em>\u00a0et\u00a0<em>b<sub>k<\/sub><\/em>\u00a0des sinus et cosinus pour les fr\u00e9quences 43.07Hz, 2*43.07Hz, 3*43.07Hz, etc<\/p>\n<table width=\"75%\">\n<tbody>\n<tr>\n<td width=\"14%\"><\/td>\n<td width=\"84%\"><\/td>\n<td width=\"2%\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>L\u2019applet suivante montre la d\u00e9composition en s\u00e9rie de Fourier de signaux de forme simple comme le triangle, le carr\u00e9 et l\u2019impulsion. Il est int\u00e9ressant de visualiser l\u2019effet du nombre de termes de la s\u00e9rie sur la forme du signal.<\/p>\n<h1>2. Calcul de la transform\u00e9e de Fourier<\/h1>\n<p>La transform\u00e9e de Fourier discr\u00e8te est un algorithme qui convertit une fonction du temps \u00e0 valeurs complexes \u00e9chantillonn\u00e9es en une fonction \u00e0 valeurs complexes de la fr\u00e9quence, \u00e9galement \u00e9chantillonn\u00e9e. La plupart du temps, nous travaillons sur des fonctions \u00e0 valeurs r\u00e9elles, donc nous fixons toutes les parties imaginaires des entr\u00e9es \u00e0 z\u00e9ro.<\/p>\n<p>Pour une meilleure compr\u00e9hension math\u00e9matique de la transform\u00e9e de Fourier discr\u00e8te, l\u2019\u00e9quation suivante donne la relation exacte entre l\u2019entr\u00e9e et la sortie. Dans cette \u00e9quation,\u00a0<em>x<sub>k<\/sub><\/em>\u00a0est le\u00a0<em>k<sup>i\u00e8me<\/sup><\/em>\u00a0nombre complexe en entr\u00e9e (domaine temporel),\u00a0<em>y<sub>p<\/sub><\/em>\u00a0est le\u00a0<em>p<sup>i\u00e8me<\/sup><\/em>\u00a0nombre complexe en sortie (domaine fr\u00e9quentiel), et\u00a0<em>n<\/em>\u00a0= 2<em><sup>N<\/sup><\/em>\u00a0est le nombre total d\u2019\u00e9chantillons. Notez que\u00a0<em>k<\/em>\u00a0et\u00a0<em>p<\/em>\u00a0sont dans l\u2019intervalle 0 ..\u00a0<em>n<\/em>-1.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/04\/fftdef.gif?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"128\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaisance-vocale-generalites\/fftdef\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/04\/fftdef.gif?fit=484%2C89&amp;ssl=1\" data-orig-size=\"484,89\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"fftdef\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/04\/fftdef.gif?fit=484%2C89&amp;ssl=1\" class=\"alignnone size-full wp-image-128\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/04\/fftdef.gif?resize=484%2C89&#038;ssl=1\" alt=\"fftdef\" width=\"484\" height=\"89\" loading=\"lazy\"><\/a><\/p>\n<p>Souvent on ne s\u2019int\u00e9resse qu\u2019au module (amplitude) ou \u00e0 l\u2019argument (phase) du r\u00e9sultat, pour chaque composant de fr\u00e9quence.<\/p>\n<p>amplitude = sqrt ( PartieReel*PartieReel + Partie Imaginaire*Partie Imaginaire );<br>\nPhase = arctan ( Partie Imaginaire, Partie R\u00e9el );<\/p>\n<p>Pour faire la conversion inverse, de la magnitude et l\u2019angle vers les parties r\u00e9elles et imaginaires :<\/p>\n<p>Partial Reel = amplitude * cos(phase);<br>\nPartie Imaginaire = amplitude * sin(phase);<\/p>\n<table width=\"75%\">\n<tbody>\n<tr>\n<td width=\"20%\"><\/td>\n<td width=\"79%\"><\/td>\n<td width=\"1%\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h1>3. FFT (Fast Fourier Transform)<\/h1>\n<p>La transform\u00e9e de Fourier rapide est simplement un algorithme permettant de r\u00e9duire le nombre d\u2019op\u00e9rations pour calculer la DFT (Discrete Fourier Transform).<\/p>\n<table style=\"height: 461px;\" width=\"591\">\n<tbody>\n<tr>\n<td width=\"51%\"><\/td>\n<td width=\"34%\"><\/td>\n<td width=\"15%\"><\/td>\n<\/tr>\n<tr>\n<td width=\"51%\">Rappelons la relation permettant de calculer la DFT :<\/td>\n<td width=\"34%\">\u00a0<a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image14.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"93\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image14\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image14.jpg?fit=210%2C99&amp;ssl=1\" data-orig-size=\"210,99\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image14\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image14.jpg?fit=210%2C99&amp;ssl=1\" class=\"alignnone wp-image-93\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image14.jpg?resize=213%2C101&#038;ssl=1\" alt=\"Image14\" width=\"213\" height=\"101\" loading=\"lazy\"><\/a><\/td>\n<td width=\"15%\">(1)<\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\">Par cons\u00e9quent, les op\u00e9rations \u00e0 effectuer pour obtenir les N valeurs de la DFT sont :<\/td>\n<\/tr>\n<tr>\n<td width=\"51%\"><\/td>\n<td width=\"34%\">(N.N) multiplications complexes<\/td>\n<td width=\"15%\"><\/td>\n<\/tr>\n<tr>\n<td width=\"51%\"><\/td>\n<td width=\"34%\">N(N-1) additions complexes<\/td>\n<td width=\"15%\"><\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\">Bien entendu, les multiplications complexes ont une dur\u00e9e d\u2019ex\u00e9cution beaucoup plus longue que les additions.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h1>4. Algorithme de Cooley-Tukey<\/h1>\n<p>L\u2019algorithme de FFT le plus connu est celui de Cooley-Tukey, \u00e9galement appel\u00e9 algorithme de r\u00e9duction \u00e0 base 2 dans le domaine temporel. Cet algorithme requiert un nombre d\u2019\u00e9chantillons qui soit une puissance de 2. Par exemple : N=128, 256, 4096, etc.<br>\nD\u2019autres algorithmes FFT existent qui requi\u00e8rent d\u2019autres exigences, mais nous ne les consid\u00e9rerons pas ici.<br>\nDans le cas d\u2019une FFT selon l\u2019algorithme de Cooley-Tukey, le nombre d\u2019op\u00e9rations est consid\u00e9rablement r\u00e9duit :<\/p>\n<table style=\"height: 109px;\" width=\"496\">\n<tbody>\n<tr>\n<td colspan=\"2\"><\/td>\n<td width=\"26%\">\u00a0<a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image15.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"94\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image15\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image15.jpg?fit=106%2C69&amp;ssl=1\" data-orig-size=\"106,69\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image15\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image15.jpg?fit=106%2C69&amp;ssl=1\" class=\"alignnone size-full wp-image-94\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image15.jpg?resize=106%2C69&#038;ssl=1\" alt=\"Image15\" width=\"106\" height=\"69\" loading=\"lazy\"><\/a><\/td>\n<td width=\"65%\">multiplications complexes<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image18.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"96\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image18\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image18.jpg?fit=929%2C222&amp;ssl=1\" data-orig-size=\"929,222\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image18\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image18.jpg?fit=810%2C194&amp;ssl=1\" class=\"wp-image-96 aligncenter\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image18.jpg?resize=526%2C126&#038;ssl=1\" alt=\"Image18\" width=\"526\" height=\"126\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image18.jpg?resize=300%2C72&amp;ssl=1 300w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image18.jpg?resize=768%2C184&amp;ssl=1 768w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image18.jpg?w=929&amp;ssl=1 929w\" sizes=\"auto, (max-width: 526px) 100vw, 526px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image13.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"92\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image13\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image13.jpg?fit=910%2C426&amp;ssl=1\" data-orig-size=\"910,426\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image13\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image13.jpg?fit=810%2C379&amp;ssl=1\" class=\"wp-image-92 aligncenter\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image13.jpg?resize=585%2C273&#038;ssl=1\" alt=\"Image13\" width=\"585\" height=\"273\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image13.jpg?resize=300%2C140&amp;ssl=1 300w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image13.jpg?resize=768%2C360&amp;ssl=1 768w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image13.jpg?w=910&amp;ssl=1 910w\" sizes=\"auto, (max-width: 585px) 100vw, 585px\" \/><\/a><\/p>\n<p>Exemple :<br>\nPrenons 8 \u00e9chantillons, qui ont les valeurs successives suivantes s0, s1, s2, s3, s4, s5, s6, s7.<br>\nLa DFT se pr\u00e9sente ainsi :<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image10.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"89\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image10\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image10.jpg?fit=831%2C412&amp;ssl=1\" data-orig-size=\"831,412\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image10\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image10.jpg?fit=810%2C402&amp;ssl=1\" class=\"wp-image-89 aligncenter\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image10.jpg?resize=559%2C278&#038;ssl=1\" alt=\"Image10\" width=\"559\" height=\"278\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image10.jpg?resize=300%2C149&amp;ssl=1 300w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image10.jpg?resize=768%2C381&amp;ssl=1 768w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image10.jpg?w=831&amp;ssl=1 831w\" sizes=\"auto, (max-width: 559px) 100vw, 559px\" \/><\/a><\/p>\n<p>En s\u00e9parant les \u00e9chantillons pairs et impairs et en factorisant les nombres impairs, on peut mettre en \u00e9vidence des similitudes entre les op\u00e9rations pratiqu\u00e9es sur ces \u00e9chantillons. Prenons comme exemple la ligne S1, en s\u00e9parant les \u00e9chantillons pairs\/impairs, puis en factorisant les \u00e9chantillons impairs.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image11.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"90\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image11\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image11.jpg?fit=896%2C189&amp;ssl=1\" data-orig-size=\"896,189\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image11\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image11.jpg?fit=810%2C171&amp;ssl=1\" class=\"wp-image-90 aligncenter\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image11.jpg?resize=538%2C113&#038;ssl=1\" alt=\"Image11\" width=\"538\" height=\"113\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image11.jpg?resize=300%2C63&amp;ssl=1 300w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image11.jpg?resize=768%2C162&amp;ssl=1 768w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image11.jpg?w=896&amp;ssl=1 896w\" sizes=\"auto, (max-width: 538px) 100vw, 538px\" \/><\/a><\/p>\n<p>Traduction en langage math\u00e9matique :<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image12.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"91\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image12\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image12.jpg?fit=357%2C88&amp;ssl=1\" data-orig-size=\"357,88\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image12\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image12.jpg?fit=357%2C88&amp;ssl=1\" class=\"wp-image-91 aligncenter\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image12.jpg?resize=409%2C101&#038;ssl=1\" alt=\"Image12\" width=\"409\" height=\"101\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image12.jpg?resize=300%2C74&amp;ssl=1 300w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image12.jpg?w=357&amp;ssl=1 357w\" sizes=\"auto, (max-width: 409px) 100vw, 409px\" \/><\/a><\/p>\n<p>On voit que les termes W sont identiques pour les couples 0-1, 2-3, 4-5, 6-7 \u00e0 un facteur exp(-jpi\/4) pr\u00e8s. On peut encore subdiviser les N\/2 \u00e9chantillons de nos parenth\u00e8ses :<a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image9.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"88\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image9\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image9.jpg?fit=947%2C99&amp;ssl=1\" data-orig-size=\"947,99\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image9\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image9.jpg?fit=810%2C85&amp;ssl=1\" class=\"wp-image-88 aligncenter\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image9.jpg?resize=629%2C65&#038;ssl=1\" alt=\"Image9\" width=\"629\" height=\"65\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image9.jpg?resize=300%2C31&amp;ssl=1 300w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image9.jpg?resize=768%2C80&amp;ssl=1 768w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image9.jpg?w=947&amp;ssl=1 947w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><\/a><\/p>\n<p>On voit qu\u2019en factorisant, on arrive \u00e0 former les couples s0-s4, s2-s6, s1-s5, s3-s7, puis \u00e0 remonter dans les parenth\u00e8ses pour arriver \u00e0 S1.<br>\nSi on prend en compte les huit lignes, cela nous donne :<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image10.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"89\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image10\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image10.jpg?fit=831%2C412&amp;ssl=1\" data-orig-size=\"831,412\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image10\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image10.jpg?fit=810%2C402&amp;ssl=1\" class=\"wp-image-89 aligncenter\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image10.jpg?resize=584%2C290&#038;ssl=1\" alt=\"Image10\" width=\"584\" height=\"290\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image10.jpg?resize=300%2C149&amp;ssl=1 300w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image10.jpg?resize=768%2C381&amp;ssl=1 768w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image10.jpg?w=831&amp;ssl=1 831w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/a><\/p>\n<p>En langage plus math\u00e9matique :<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image7.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"86\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image7\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image7.jpg?fit=860%2C201&amp;ssl=1\" data-orig-size=\"860,201\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image7\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image7.jpg?fit=810%2C189&amp;ssl=1\" class=\"wp-image-86 aligncenter\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image7.jpg?resize=557%2C130&#038;ssl=1\" alt=\"Image7\" width=\"557\" height=\"130\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image7.jpg?resize=300%2C70&amp;ssl=1 300w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image7.jpg?resize=768%2C179&amp;ssl=1 768w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image7.jpg?w=860&amp;ssl=1 860w\" sizes=\"auto, (max-width: 557px) 100vw, 557px\" \/><\/a><\/p>\n<p>En appliquant les r\u00e8gles (4) et (5), on simplifie ais\u00e9ment les facteurs WN nk. Le r\u00e9sultat est le suivant :<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image6.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"85\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image6\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image6.jpg?fit=860%2C245&amp;ssl=1\" data-orig-size=\"860,245\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image6\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image6.jpg?fit=810%2C231&amp;ssl=1\" class=\"wp-image-85 aligncenter\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image6.jpg?resize=607%2C172&#038;ssl=1\" alt=\"Image6\" width=\"607\" height=\"172\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image6.jpg?resize=300%2C85&amp;ssl=1 300w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image6.jpg?resize=768%2C219&amp;ssl=1 768w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image6.jpg?w=860&amp;ssl=1 860w\" sizes=\"auto, (max-width: 607px) 100vw, 607px\" \/><\/a><\/p>\n<h2>4.1 Op\u00e9ration \u201cButterfly\u201d<\/h2>\n<p>L\u2019op\u00e9ration \u201cbutterfly\u201d ou papillon est la suivante :<\/p>\n<table style=\"height: 175px;\" width=\"583\">\n<tbody>\n<tr>\n<td width=\"33%\"><\/td>\n<td width=\"67%\">\u00a0<a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image5.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"84\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image5\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image5.jpg?fit=379%2C244&amp;ssl=1\" data-orig-size=\"379,244\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image5\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image5.jpg?fit=379%2C244&amp;ssl=1\" class=\"alignnone size-medium wp-image-84\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image5.jpg?resize=300%2C193&#038;ssl=1\" alt=\"Image5\" width=\"300\" height=\"193\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image5.jpg?resize=300%2C193&amp;ssl=1 300w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image5.jpg?w=379&amp;ssl=1 379w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>4.2 Application \u00e0 la FFT<\/h2>\n<p>L\u2019op\u00e9ration \u201cButterfly\u201d est particuli\u00e8rement adapt\u00e9e \u00e0 l\u2019algorithme FFT, comme on peut le voir dans la Figure 2. Cette figure correspond directement \u00e0 la r\u00e9solution de l\u2019\u00e9nonc\u00e9 (6).<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image2.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"81\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image2\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image2.jpg?fit=814%2C669&amp;ssl=1\" data-orig-size=\"814,669\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image2.jpg?fit=810%2C666&amp;ssl=1\" class=\"alignnone wp-image-81\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image2.jpg?resize=633%2C521&#038;ssl=1\" alt=\"Image2\" width=\"633\" height=\"521\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image2.jpg?resize=300%2C247&amp;ssl=1 300w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image2.jpg?resize=768%2C631&amp;ssl=1 768w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image2.jpg?w=814&amp;ssl=1 814w\" sizes=\"auto, (max-width: 633px) 100vw, 633px\" \/><\/a><\/p>\n<p>Figure 2<\/p>\n<h2>4.3 L\u2019incr\u00e9ment en \u201creverse carry\u201d<\/h2>\n<p>Comme on peut le voir sur la Figure 2, les couples d\u2019\u00e9chantillons doivent \u00eatre choisis au d\u00e9part selon un ordre particulier : s0-s4, s2-s6, etc.<br>\nCette incr\u00e9mentation particuli\u00e8re est appel\u00e9e \u201creverse carry\u201d (retenue inverse). Elle consiste \u00e0 additionner N\/2 \u00e0 l\u2019indice, mais \u00e0 reporter la retenue \u00e0 droite plut\u00f4t qu\u2019\u00e0 gauche.<br>\nExemple pour 8 \u00e9chantillons (N\/2 = 4) :<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image21.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"98\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image21\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image21.jpg?fit=757%2C289&amp;ssl=1\" data-orig-size=\"757,289\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image21\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image21.jpg?fit=757%2C289&amp;ssl=1\" class=\"alignnone wp-image-98\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image21.jpg?resize=543%2C208&#038;ssl=1\" alt=\"Image21\" width=\"543\" height=\"208\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image21.jpg?resize=300%2C115&amp;ssl=1 300w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image21.jpg?w=757&amp;ssl=1 757w\" sizes=\"auto, (max-width: 543px) 100vw, 543px\" \/><\/a><\/p>\n<p>Les processeurs sp\u00e9cialis\u00e9s type DSP proposent tous un m\u00e9canisme d\u2019incr\u00e9mentation de ce type pour leurs pointeurs.<\/p>\n<h2>4.4 R\u00e9duction dans le domaine fr\u00e9quentiel<\/h2>\n<p>Les \u00e9quations d\u00e9crites dans (6) peuvent encore \u00eatre arrang\u00e9es autrement :<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image3.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"82\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image3\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image3.jpg?fit=852%2C241&amp;ssl=1\" data-orig-size=\"852,241\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image3\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image3.jpg?fit=810%2C229&amp;ssl=1\" class=\"wp-image-82 aligncenter\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image3.jpg?resize=645%2C183&#038;ssl=1\" alt=\"Image3\" width=\"645\" height=\"183\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image3.jpg?resize=300%2C85&amp;ssl=1 300w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image3.jpg?resize=768%2C217&amp;ssl=1 768w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image3.jpg?w=852&amp;ssl=1 852w\" sizes=\"auto, (max-width: 645px) 100vw, 645px\" \/><\/a><\/p>\n<p>La structure de l\u2019algorithme n\u2019est pas diff\u00e9rente, simplement ce sont les index qui changent :<br>\nles \u00e9chantillons sont ordonn\u00e9s lin\u00e9airement, alors que les valeurs de fr\u00e9quence sont ordonn\u00e9s en \u201creverse carry\u201d (situation inverse de la Figure 2).<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image4.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"83\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image4\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image4.jpg?fit=570%2C466&amp;ssl=1\" data-orig-size=\"570,466\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image4\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image4.jpg?fit=570%2C466&amp;ssl=1\" class=\"alignnone wp-image-83\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image4.jpg?resize=553%2C452&#038;ssl=1\" alt=\"Image4\" width=\"553\" height=\"452\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image4.jpg?resize=300%2C245&amp;ssl=1 300w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image4.jpg?w=570&amp;ssl=1 570w\" sizes=\"auto, (max-width: 553px) 100vw, 553px\" \/><\/a><\/p>\n<p>Exemple d\u2019algorithme FFT en \u201cC\u201d. Notons que l\u2019on utilise deux Butterfly aux seins de la boucle principales.<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">void FFT( SHORT INT *fix_x ) {<\/span><\/p>\n<p><span style=\"font-family: Arial, Helvetica, sans-serif;\">\/* Local declarations *\/<br>\nSHORT INT fix_xt, fix_t1, fix_t2;<br>\nSHORT INT fix_cos,fix_sin;<br>\nSHORT INT fix_temp,fix_temp1,fix_temp2;<br>\nSHORT INT *fix_src1,*fix_src2,*fix_src3,*fix_src4;<br>\nSHORT INT *fix_dst1;<br>\n\u2026<br>\n\/*** Compute digit reverse counter ***\/<br>\nj = 0;<\/span><\/p>\n<p><span style=\"font-family: Arial, Helvetica, sans-serif;\">for ( i = 0; i &lt; NB_SAMPLES \u2013 1; i++ ) {<\/span><br>\n<span style=\"font-family: Arial, Helvetica, sans-serif;\">if ( i &lt; j ) {<\/span><span style=\"font-family: Arial, Helvetica, sans-serif;\"><br>\nfix_xt = fix_x[j];<br>\nfix_x[j] = fix_x[i];<br>\nfix_x[i] = fix_xt; <\/span><br>\n<span style=\"font-family: Arial, Helvetica, sans-serif;\">}<br>\nk = NB_SAMPLES &gt;&gt; 1;<br>\nwhile ( k &lt; (j+1) ) { \u00a0j -= k; k &gt;&gt;= 1; \u00a0}<br>\nj += k;<\/span><br>\n<span style=\"font-family: Arial, Helvetica, sans-serif;\">}<\/span><span style=\"font-family: Arial, Helvetica, sans-serif;\"><br>\n\u2026.<br>\n\/*** butterflies ***\/<br>\n<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">n2 = 1;<br>\nn1 = 2;<br>\nn8 = NB_SAMPLES &gt;&gt; 1;<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"font-family: Arial, Helvetica, sans-serif;\">for ( k = 1; k &lt; NB_STAGE; k++ ) {<br>\nn4 = n2;<br>\nn2 = n1;<br>\nn1 &lt;&lt;= 1;<br>\nn8 &gt;&gt;= 1;<\/span><span style=\"font-family: Arial, Helvetica, sans-serif;\"><br>\nfor ( i = 0; i &lt;= NB_SAMPLES-1; i += n1 ) \u00a0{<\/span><br>\n<span style=\"font-family: Arial, Helvetica, sans-serif;\">fix_xt = fix_x[i] &gt;&gt; 1;<br>\nfix_temp = fix_x[i+n2] &gt;&gt; 1;<br>\nfix_x[i] = fix_xt + fix_temp;<br>\nfix_x[i+n2] = fix_xt \u2013 fix_temp;<br>\nfix_x[i+n4+n2] = \u2013 fix_x[i+n4+n2]; <\/span><span style=\"font-family: Arial, Helvetica, sans-serif;\"><br>\nit = -1;<br>\nfix_src1 = &amp;fix_x[i+1];<br>\nfix_src3 = &amp;fix_x[i+n2+1];<br>\nfix_src2 = &amp;fix_x[i+n2-1];<br>\nfix_src4 = &amp;fix_x[i+n1-1];<\/span><br>\n<span style=\"font-family: Arial, Helvetica, sans-serif;\">for ( j = 1; j &lt;= n4-1; j++ ) \u00a0{<\/span><span style=\"font-family: Arial, Helvetica, sans-serif;\"><br>\nit += n8;<br>\nfix_cos = Table[NB_SAMPLES\/4-2-it]; \/\/ Table COSINUS \/ SINUS<br>\nfix_sin = Table[it];<\/span><br>\n<span style=\"font-family: Arial, Helvetica, sans-serif;\">\u00a0 \u00a0 \u00a0fix_temp1 = *fix_src3; \/\/ SOURCES<br>\nfix_temp2 = *fix_src4;<\/span><br>\n<span style=\"font-family: Arial, Helvetica, sans-serif;\">\u00a0 \u00a0 \u00a0fix_t3 = ( fix_temp1 * fix_cos ); \/\/ (S1*COS) + (S2*SIN)<br>\nfix_t3 += ( fix_temp2 * fix_sin );<br>\nfix_t1 = fix_t3 &gt;&gt; 16; <\/span><br>\n<span style=\"font-family: Arial, Helvetica, sans-serif;\">\u00a0 \u00a0 \u00a0fix_t4 = ( fix_temp1 * fix_sin ); \/\/(S1*SIN)-(S2*COS)<br>\nfix_t4 -= ( fix_temp2 * fix_cos );<br>\nfix_t2 = fix_t4 &gt;&gt; 16;<\/span><br>\n<span style=\"font-family: Arial, Helvetica, sans-serif;\">\u00a0 \u00a0 \u00a0fix_temp2 = *fix_src2 &gt;&gt; 1;<br>\n*fix_src4\u2013 = fix_temp2 \u2013 fix_t2; \/\/ Butterfly 1<br>\n*fix_src3++ = \u2013 fix_temp2 \u2013 fix_t2; <\/span><br>\n<span style=\"font-family: Arial, Helvetica, sans-serif;\">\u00a0 \u00a0 \u00a0fix_temp2 = *fix_src1 &gt;&gt; 1; \/\/ Butterfly 2<br>\n*fix_src2\u2013 = fix_temp2 \u2013 fix_t1;<br>\n*fix_src1++ = fix_temp2 + fix_t1;<\/span><br>\n<span style=\"font-family: Arial, Helvetica, sans-serif;\"> }<\/span><br>\n<span style=\"font-family: Arial, Helvetica, sans-serif;\">\u2026<\/span><br>\n<span style=\"font-family: Arial, Helvetica, sans-serif;\">}<br>\n<\/span><\/p>\n<h2>4.5 FFT sur base d\u2019un nombre d\u2019\u00e9chantillons N quelconque<\/h2>\n<h3>4.5.1 L\u2019algorithme FFT pour N=k*j<\/h3>\n<p>A partir des r\u00e8gles (4) et (5), on peut cr\u00e9er des algorithmes de FTT pour N=k\u00d7j avec k et j entiers. L\u2019efficacit\u00e9 est cependant moindre que lorsque N est une puissance de 2.<\/p>\n<h3>4.5.2 L\u2019algorithme de base mixte<\/h3>\n<p>Selon \u00a72.5.1, il est tout \u00e0 fait possible de travailler avec une base (radix) diff\u00e9rente de deux. Parfois, la base change au cours d\u2019op\u00e9ration (split-radix) ! Par exemple, les premi\u00e8res \u201cbutterfly\u201d travaillent en 2\u00d72, puis les suivantes en 4\u00d74.<\/p>\n<h3>4.5.3 L\u2019algorithme de Rader<\/h3>\n<p>Lorsque N est premier, on peut imaginer que la DFT est irr\u00e9ductible. Ce n\u2019est pas le cas, un algorithme particulier (l\u2019algorithme de Rader) est au contraire tr\u00e8s performant !<\/p>\n<h3>4.6 Nombre de points pour une FFT<\/h3>\n<p>La fr\u00e9quence d\u2019\u00e9chantillonnage doit \u00eatre au moins deux fois plus \u00e9lev\u00e9e que la bande passante du signal (th\u00e9or\u00e8me de nyquist). Le rapport de 2.56 est souvent choisi pour calculer des FFT. Imaginons que notre bande passante soit sur 100 points, le nombre d\u2019\u00e9chantillons sera 256, soit une puissance de 2 :<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image22.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"99\" data-permalink=\"https:\/\/imalogic.com\/blog\/2016\/11\/08\/reconnaissance-vocale-serie-de-fourier-fft\/image22\/\" data-orig-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image22.jpg?fit=886%2C510&amp;ssl=1\" data-orig-size=\"886,510\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Image22\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image22.jpg?fit=810%2C466&amp;ssl=1\" class=\"alignnone wp-image-99\" src=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image22.jpg?resize=572%2C330&#038;ssl=1\" alt=\"Image22\" width=\"572\" height=\"330\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image22.jpg?resize=300%2C173&amp;ssl=1 300w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image22.jpg?resize=768%2C442&amp;ssl=1 768w, https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/03\/Image22.jpg?w=886&amp;ssl=1 886w\" sizes=\"auto, (max-width: 572px) 100vw, 572px\" \/><\/a><\/p>\n<p>L\u2019indice\u00a0<em>n<\/em>\/2 est un cas particulier : il correspond \u00e0 la\u00a0<em>fr\u00e9quence de Nyquist<\/em>, qui est toujours \u00e9gale \u00e0 la moiti\u00e9 de la fr\u00e9quence d\u2019\u00e9chantillonnage dans un enregistrement num\u00e9rique. Par exemple, la fr\u00e9quence de Nyquist<em>\u00a0<\/em>d\u2019un CD audio vaut (44100 Hz)\/2 = 22050 Hz. La fr\u00e9quence de Nyquist est importante car c\u2019est la plus haute fr\u00e9quence qu\u2019un enregistrement num\u00e9rique peut reproduire. L\u2019enregistrement ne peut rien repr\u00e9senter au-dessus de cette fr\u00e9quence. Si nous essayons d\u2019interpr\u00e9ter un signal de fr\u00e9quence sup\u00e9rieure \u00e0 celle de Nyquist, il s\u2019ensuit une une s\u00e9v\u00e8re distorsion, connue sous le nom d\u2019<em>aliasing<\/em>, et analogue aux illusions d\u2019optique des vieux westerns qui font que les roues semblent tourner \u00e0 l\u2019envers. Les ing\u00e9nieurs du son savent qu\u2019ils doivent filtrer tous les signaux analogiques au-dessus de la fr\u00e9quence de Nyquist avant de les num\u00e9riser, afin d\u2019\u00e9viter les probl\u00e8mes d\u2019<em>aliasing<\/em>. Notons que cette limitation est inh\u00e9rente \u00e0 l\u2019enregistrement num\u00e9rique lui-m\u00eame, qu\u2019il fasse ou non l\u2019objet d\u2019une FFT.<\/p>\n<h3>4.7 Inconv\u00e9nient de la s\u00e9rie de Fourier<\/h3>\n<p>Le principal inconv\u00e9nient de la s\u00e9rie de Fourier dans le traitement du son est que l\u2019enregistrement num\u00e9rique doit \u00eatre divis\u00e9 en blocs de n valeurs, or la s\u00e9rie de Fourier associ\u00e9e se comporte comme \u00e9tant une fonction p\u00e9riodique ce qui n\u2019est pas le cas de nos blocs d\u00e9finis pr\u00e9c\u00e9demment. La transform\u00e9e de Fourier induit des ph\u00e9nom\u00e8nes de bords qui sont ind\u00e9sirables et non repr\u00e9sentatifs du signal d\u2019entr\u00e9e original. L\u2019utilisation de fen\u00eatres permet de r\u00e9duire ces ph\u00e9nom\u00e8nes de bords.<\/p>\n<p>\u00a0<\/p>\n<p>\u00a0<\/p>\n<\/body>","protected":false},"excerpt":{"rendered":"<p>1. Repr\u00e9sentation de la d\u00e9composition en s\u00e9rie de Fourier La transform\u00e9e de Fourier est bas\u00e9e sur la d\u00e9couverte que toute<\/p>\n","protected":false},"author":1,"featured_media":129,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7,6],"tags":[],"class_list":["post-80","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-coding","category-signal-processing"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/imalogic.com\/blog\/wp-content\/uploads\/2016\/04\/Fourier.jpg?fit=268%2C326&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8J21V-1i","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/posts\/80","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/comments?post=80"}],"version-history":[{"count":2,"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/posts\/80\/revisions"}],"predecessor-version":[{"id":393,"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/posts\/80\/revisions\/393"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/media\/129"}],"wp:attachment":[{"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/media?parent=80"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/categories?post=80"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imalogic.com\/blog\/wp-json\/wp\/v2\/tags?post=80"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}