Как стать автором
Обновить
4
0

Пользователь

Отправить сообщение
только моя нейросеть не видит разницы?
для того чтобы ионизировать водород нужно около 3000 К. почему с расчетом так далеко?
проще единичку нарисовать
не-не-не, скайнет тоже так начинал. это сначала он такой добренький…
Тут все достаточно просто. Допустим есть исходный сигнал — пусть прямоугольный. Из него можно выделить первую гармонику цифровым фильтром. Затем подобрать параметры получившегося сигнала, минимизируя среднеквадратичное отклонение модельного сигнала (это синус неизвестной частоты, амплитуды и фазы) от имеющегося. Этот метод не универсален — требуется знать тип сигнала. Есть и другие недостатки, например, точность сильно зависит от того, насколько хорош оптимизатор. Требуется найти глобальный минимум, но, к сожалению, можно попасть и в локальный…

Измерение частоты так или иначе происходит через сравнение с эталонным источником. Есть специальные компараторы частот.
Тут еще возникает вопрос о стабильности приемника, который применял Автор текущей статьи. Есть ли в нем гетеродин? Если да, то точность будет напрямую зависеть от стабильности гетеродина.
То есть время измерения классическим способом подсчета составит от 2x1000 секунд. Уйдет в районе получаса на одно измерение.

ну давайте, чтобы не быть голословными, проведем маленький эксперимент:)
посмотрим какую точность сможем достичь, если продискретизируем сигнал с частой 10,12345 кГц.
пусть частота дискретизации 44100 Гц. сигнал на входе звуковой карты после делителя почти прямоугольный:

N = 100000
f0 = 1.000012345e4
fd = 44100.0
a_sig = np.sin(2.0*np.pi*f0/fd*np.arange(N)+0.01)
d_sig = np.array([1.0 if x > 0 else 0.0 for x in a_sig])
d_sig += np.random.normal(0.0, 0.1, size=len(d_sig))
f_sig = butter_bandpass_filter(d_sig, 1e4, 1.5e4, fd)[20:]

у меня сигнал на входе карты это d_sig. насыпим к нему шума. профильтруем его — сделаем из прямоугольника синус. и попытаемся пофитить. весь код целиком:
import numpy as np
import matplotlib.pyplot as plt

from scipy.optimize import differential_evolution
from scipy.signal import butter, lfilter

def butter_bandpass(lowcut, highcut, fs, order=6):
  nyq = 0.5 * fs
  low = lowcut / nyq
  high = highcut / nyq
  b, a = butter(order, [low, high], btype='band')
  return b, a
    
def butter_bandpass_filter(data, lowcut, highcut, fs, order=6):
  b, a = butter_bandpass(lowcut, highcut, fs, order=order)
  y = lfilter(b, a, data)
  return y

def sig_estim(x, *args):
  A = x[0]
  f = x[1]
  phi = x[2]
  sig_len = len(args[0])
  sig = np.sin(2.0*np.pi*f*np.arange(sig_len)+phi)

  return np.sum((sig - args[0])**2)

N = 100000
f0 = 1.000012345e4
fd = 44100.0
a_sig = np.sin(2.0*np.pi*f0/fd*np.arange(N)+0.01)
d_sig = np.array([1.0 if x > 0 else 0.0 for x in a_sig])
d_sig += np.random.normal(0.0, 0.1, size=len(d_sig))
f_sig = butter_bandpass_filter(d_sig, 1e4, 1.5e4, fd)[20:]

bounds = [(0.1, 1.0), (1e4/fd, 1.5e4/fd), (-3.14, 3.14)]
result = differential_evolution(sig_estim, bounds, args = (f_sig,))
print(result.x, result.fun)
print(result.x[1]*fd)

в результате получим 10000.122856650896
итого 7 знаков правильно определили. и это за выборку в несколько секунд
там стоит точно такой же кварц. у txc серии стабильност на уровне дестятка ppm.
а вот, к сожалению, не во всех спектроанализаторах стоят хорошие опорники.
а если бОльшая точность нужна, то в любительских условях можно сверять частоту по GPS-приемнику (считай квантовый эталон).
можно делителем частоту поделить до звуковой и на вход звуковой карты подать.
А на последнем графике зависимость ошибки от времени для тренировочного множества?
если да, то какая ошибка на тестовой выборке?
скажем, если на тренировочную выборку чуть-чуть нашуметь, будет ли сеть достоверно воспроизводить модель? как мне кажется, с шумом все достоинства вторых производных сойдут на нет.
может лучше не спект, а мощность сигнала в каком-то диапазоне? это проще
пысы: для улья надо не Wi-Fi, а zigbee :)
Также фаза света пропорциональна мощности света внутри детектора

можете пояснить? не совсем понятно.
шикарно! лучшее чтиво в выходные за последнее время. спасибо!
зы, Вы там только аккуратнее!
Может дело в стабильности выходного напряжения?
а там есть фото с ч/б телевизором, и, увы… изображение на нем черно-белое.
имхо, лапша это. скорее всего пейзажи, где ясно — где трава, где небо, будут нормально раскрашиваться, а вот участки (одежда и пр.), где средняя интенсивность меняется слабо будет работать плохо. оно и ясно — по интенсивности (одно значение) невозможно восстановить цвет (три значения).
Хм. ну вроде достоверность на уровне 5 сигм. т.е. вероятность ложно положительного ~0.02%
Мне просто интересна крутизна преобразования. Т.е преобразование удлинения плеча в Вольты (в конце концов там фотодиод же стоит и напряжение с него снимают?).
Там оч. сложная активная система подавления. Условно — зеркала в противофазе колеблются относительно внешних воздействий.
Интереснее всего, как они стабилизируют амплитуду излучения (а там на минутку, киловатты), чтобы изменение давления излучения на зеркала не влияла на точность в 26-ом знаке. И еще. А с какой точностью надо фазу мерить?
надо мыслить ширше. образ винды на электроне, на котором работает электрон-образ винампа)

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность