В одной из предыдущих статей я рассказал о математических алгоритмах, позволяющих проверить простоту очень большого числа. Но в основе всех тех алгоритмов лежит одна базовая операция — перемножение двух больших чисел. Именно операции длинного умножения занимают 99,9% времени выполнения любого теста простоты. Как же умножение реализуется на практике? Говорят, что при помощи Читать полностью »
Рубрика «преобразование фурье»
Большие простые числа: преобразование Фурье
2024-08-22 в 5:06, admin, рубрики: быстрое умножение, математика, преобразование фурьеТермодатчик из звуковой карты
2022-12-10 в 14:32, admin, рубрики: C#, DIY, diy или сделай сам, звук, преобразование фурье, термисторВсем привет!
Оконные функции своими руками
2020-08-11 в 6:38, admin, рубрики: dsp, wolfram mathematica, математика, оконные функции, преобразование фурье, цосВ цифровой обработке сигналов оконные функции широко используются для ограничения сигнала во времени и их названия хорошо известны всем, кто так или иначе сталкивался с дискретным преобразованием Фурье: Ханна, Хэмминга, Блэкмана, Харриса и прочие. Но являются ли они достаточными, можно ли придумать что-то новое и есть ли в этом смысл?
В этой статье мы рассмотрим вывод оконной функции с новыми свойствами, используя Wolfram Mathematica. Предполагается также, что читатель имеет общие представления о цифровой обработке сигналов в контексте обсуждаемого вопроса и как минимум знаком со статьёй из википедии.
Рисуем звук
2019-10-04 в 9:05, admin, рубрики: aphex twin, Asm.js, fftw, javascript, webassembly, Алгоритмы, визуализация данных, звук, обработка аудио, преобразование фурье, спектрограмма, фонетикаПять лет назад на Хабре была опубликована статья «Печать и воспроизведение звука на бумаге» — о системе создания и проигрывания спектрограмм. Затем, полтора года назад Meklon опубликовал квест, в котором такая чёрно-белая логарифмическая спектрограмма стала одним из этапов. По авторскому замыслу, её надо было распечатать на принтере, отсканировать смартфоном с приложением-проигрывателем, и воспользоваться таким образом «надиктованным» паролем.
У меня в тот момент не было в досягаемости ни принтера, ни смартфона, так что меня заинтересовали два аспекта задачи:
- Как проще всего расшифровать спектрограмму без дополнительных устройств и без дополнительного софта — желательно, прямо в браузере?
- Можно ли её расшифровать вообще без софта — «на глаз»?
Трюк с тригонометрией
2019-08-06 в 11:51, admin, рубрики: 2d графика, 3d графика, fft, Алгоритмы, математика, преобразование фурье, Программирование, Совершенный код, тригонометрия, упрощение кода, упрощение формулСкорее всего, вам известны следующие соотношения еще со школы:
Когда вы в детстве впервые познакомились с этой формулой, скорее всего, вашим первым чувством была боль из-за того, что эту формулу надо запомнить. Это очень плохо, потому что на самом деле вам не нужно запоминать эту формулу — она сама выводится, когда вы поворачиваете треугольник на бумаге. На самом деле, я делаю то же самое, когда записываю эту формулу. Это толкование будет очевидным к середине этой статьи. Но сейчас, чтобы оставить все веселье на потом и отодвинуть момент, когда вы скажете "Эврика!", давайте подумаем, а зачем нам вообще задумываться об этой формуле.
Преобразование Фурье. The Fast and the Furious
2018-12-28 в 13:58, admin, рубрики: Алгоритмы, звук, математика, преобразование фурье, цифровая обработка сигналовЗачастую при разработке алгоритмов мы упираемся в предел вычислительной сложности, который, казалось бы, преодолеть невозможно. Преобразование Фурье имеет сложность , а быстрый вариант, предложенный около 1805 года Гаусом1 (и переизобретенный в 1965 году Джеймсом Кули и Джоном Тьюки) . В данной статье хочу вам показать, что можно получить результаты преобразования за линейное время или даже достичь константной сложности при определенных условиях, которые встречаются в реальных задачах.
Читать полностью »
Амплитудная модуляция на пальцах
2018-07-04 в 19:21, admin, рубрики: wolfram mathematica, амплитудная модуляция, математика, преобразование фурьеВ недавней статье «Амплитудная модуляция произвольного сигнала» её автор довольно сумбурно попытался представить своё понимание формирования спектра при амплитудной модуляции. Но отсутствие иллюстраций и избыток математики с привлечением интегральных преобразований помешало сообществу понять мысли автора и оценить статью по достоинству; в то время как тема это достаточно простая — и рассмотреть которую мы попробуем ещё раз, на этот раз с картинками и привлечением Wolfram Mathematica.
Итак, идея амплитудной модуляции состоит в том, чтобы передавать низкочастотный сигнал — голос или музыку — модулируя высокочастотный (несущий) сигнал, многократно превышающий слышимый диапазон и занимающий узкую полосу частот в радиоэфире. Сама модуляция осуществляется простым умножением сигнала на несущий:
Невероятно эффектная цветомузыка на Arduino и светодиодах
2017-12-11 в 14:58, admin, рубрики: arduino, diy или сделай сам, ардуинщик, вечеринка, звук, красиво, легко, начинающим, Новый Год, преобразование фурье, сделай сам, спектрограмма, цветомузыкаС наступающим!
Приближается Новый год, а значит, пора срочно создавать настроение! Ну и как всегда в это время года рождаются десятки электронных схем различных цветомузыкальных установок.
Чего только самобытные мастера не придумают. От трехцветных моргалок до лазерных многолучевых установок с управлением по MIDI интерфейсу.
Как большой поклонник, так называемых адресных светодиодов, хочу показать вам самую простою, но удивительную цветомузыку. Я вообще такой ни разу не видел. Пока не собрал за один вечер. Итак, визуализатор звука!
Читать полностью »
О классификации методов преобразования Фурье на примерах их программной реализации средствами Python
2017-09-25 в 16:03, admin, рубрики: python, математика, преобразование фурье, разработка под windows, решение дифференциальных уравненийВведение
Публикации по методу Фурье условно можно разделить на две группы. Первая группа так называемых познавательных публикаций, например, [1,2].
Вторая группа публикаций касается применения преобразований Фурье в технике, например, при спектральном анализе [3,4].
Ни в коем случае не умоляя достоинства этих групп публикации стоит признать, что без классификации, или хотя бы попытки осуществить такую классификацию, получить системное представление о методе Фурье, по моему мнению, затруднительно.
Задачи публикации
Провести классификацию методов преобразования Фурье на примерах их программной реализации средствами Python. При этом для облегчения чтения использовать формулы только в программном коде с соответствующими пояснениями.
Гармонический анализ и синтез
Гармоническим анализом называют разложение функции f(t), заданной на отрезке [0, Т] в ряд Фурье или в вычислении коэффициентов Фурье по формулам.
Гармоническим синтезом называют получение колебаний сложной формы путем суммирования их гармонических составляющих (гармоник).
#!/usr/bin/python
# -*- coding: utf-8 -*
from scipy.integrate import quad # модуль для интегрирования
import matplotlib.pyplot as plt # модуль для графиков
import numpy as np # модуль для операций со списками и массивами
T=np.pi; w=2*np.pi/T# период и круговая частота
def func(t):# анализируемая функция
if t<np.pi:
p=np.cos(t)
else:
p=-np.cos(t)
return p
def func_1(t,k,w):# функция для расчёта коэффициента a[k]
if t<np.pi:
z=np.cos(t)*np.cos(w*k*t)
else:
z=-np.cos(t)*np.cos(w*k*t)
return z
def func_2(t,k,w):#функция для расчёта коэффициента b[k]
if t<np.pi:
y=np.cos(t)*np.sin(w*k*t)
else:
y=-np.cos(t)*np.sin(w*k*t)
return y
a=[];b=[];c=4;g=[];m=np.arange(0,c,1);q=np.arange(0,2*np.pi,0.01)# подготовка списков для численного анализа
a=[round(2*quad(func_1, 0, T, args=(k,w))[0]/T,3) for k in m]# интеграл для a[k], k -номер гармоники
b=[round(2*quad(func_2, 0, T, args=(k,w))[0]/T,3) for k in m]# интеграл для b[k], k -номер гармоники
F1=[a[1]*np.cos(w*1*t)+b[1]*np.sin(w*1*t) for t in q]#функции для гармоник
F2=[a[2]*np.cos(w*2*t)+b[2]*np.sin(w*2*t) for t in q]
F3=[a[3]*np.cos(w*3*t)+b[3]*np.sin(w*3*t) for t in q]
plt.figure()
plt.title("Классический гармонический анализ функции n при t<pi f(t)=cos(t) при t>=pi f(t)=-cos(t)")
plt.plot(q, F1, label='1 гармоника')
plt.plot(q, F2 , label='2 гармоника')
plt.plot(q, F3, label='3 гармоника')
plt.xlabel("Время t")
plt.ylabel("Амплитуда А")
plt.legend(loc='best')
plt.grid(True)
F=np.array(a[0]/2)+np.array([0*t for t in q-1])# подготовка массива для анализа с a[0]/2
for k in np.arange(1,c,1):
F=F+np.array([a[k]*np.cos(w*k*t)+b[k]*np.sin(w*k*t) for t in q])# вычисление членов ряда Фурье
plt.figure()
P=[func(t) for t in q]
plt.title("Классический гармонический синтез")
plt.plot(q, P, label='f(t)')
plt.plot(q, F, label='F(t)')
plt.xlabel("Время t")
plt.ylabel("f(t),F(t)")
plt.legend(loc='best')
plt.grid(True)
plt.show()
Применение преобразования Фурье для создания гитарного тюнера на Android. Часть 1
2017-07-17 в 11:58, admin, рубрики: java, Алгоритмы, бпф, гармоника, дпф, звуковая волна, преобразование фурье, разработка мобильных приложений, тюнер для гитары, частота дискретизацииВ основе спектрального анализа звуковых данных лежит алгоритм, который носит название преобразование Фурье. При раскладывании исходного звукового сигнала на частотные составляющие, отдельные частоты называются гармониками. Основная гармоника определяет высоту звучания, а второстепенные гармоники определяют его тембр. Есть достаточно много мобильных приложений, которые используют преобразование Фурье для того, чтобы отобразить весь спектр частот (гармоник). Так же, есть мобильные приложения, которые служат для настройки гитар. Они работают по принципу: основная гармоника находится по самому высокому значению амплитуды в спектре. Такое утверждение не совсем верно, потому что основная гармоника определяется самой наименьшей из всех кратных этой гармонике, либо шагом между гармониками. Возникает необходимость найти способ, который позволит отобразить значение основной гармоники в спектре звукового сигнала.
В первой части статьи мы рассмотрим принцип работы дискретного преобразование Фурье, а также возможность записывать звуковые данные с Android устройства с помощью класса AudioRecord. Читать полностью »