https://grok.com/share/c2hhcmQtNQ_ee3cd402-7a5c-4332-89c3-349feb76aeea
Сообщения
- Получить ссылку
- X
- Электронная почта
- Другие приложения
Сколько звука нужно, чтобы осталась информация? Эксперимент о полуволне, диоде и природе слуха Интуитивно звук — это аккуратная синусоида с частотой, амплитудой и фазой. Уберите половину волны — сигнал разрушен. Преобразуйте колебания в прямоугольные импульсы одного уровня — останется только треск. Но слух — не осциллограф. Это легко доказать простым, почти провокационным экспериментом. AM and FM Detection Схема диодного детектора в AM-приёмнике — классический пример полуволнового выпрямления Импульс не информативен Одиночный импульс любой формы, амплитуды и длительности звучит как щелчок — громкий или тихий, но без информации. Последовательность одинаковых импульсов: Короткие → гул. Ещё короче → свист. Форма импульса не важна. Информация не возникает. Значит, дело не в сигнале самом по себе, а в его временной структуре. Sound is encoded as spikes at the cochlear hair cell afferent ... Импульсы (spikes) в слуховом нерве — биологическая основа восприятия Что делает диод (и почему э...
Улитка — не про слух
- Получить ссылку
- X
- Электронная почта
- Другие приложения
1. **Форма улитки не является необходимым условием слуха.** У птиц нет спиральной улитки, при этом слух у них полноценный. Следовательно, спираль — не обязательный элемент сенсорной функции. 2. **Гидродинамика не объясняет форму.** Режимы колебаний в улитке мыши и слона принципиально различны. Любое объяснение через «правильную волну», «резонанс» или «фильтр» разваливается при масштабировании. 3. **Размер головы, жевание, удары — нерелевантны.** Кит с головой размером с автомобиль имеет ту же спираль. Значит, форма не определяется ни габаритами, ни образом жизни, ни механическими перегрузками. 4. **Инвариант один: длинная сенсорная линия с градиентом свойств.** У всех млекопитающих есть протяжённая, непрерывная, градиентная структура, которую нужно: – вырастить, – зафиксировать, – защитить, – масштабировать от мыши до слона. 5. **Спираль — топологическое, а не динамическое решение.** ...
Психология без мозга
- Получить ссылку
- X
- Электронная почта
- Другие приложения
**Психология без мозга: почему поведение нельзя понять, игнорируя эволюцию** *#теорияголоднойстаи* Современная психология оказалась в странном положении: она много говорит о человеке, но редко — о том, из чего человек сделан. Как будто поведение возникает в вакууме, а эмоции — результат тренингов, воспитания или культурных narrative. Однако исследования биологов, нейроучёных и эволюционных антропологов показывают картину совершенно иного масштаба: человеческая психика — это продукт миллионов лет отбора, а культура лишь надстройка над древним, глубоко материальным механизмом, управляемым нейронами, гормонами и инстинктами. ### **1. Эволюционная биология как фундамент психики** Профессор Савельев много лет подчёркивает: мозг — не абстракция, не «чёрный ящик», а конкретный орган со строгой специализацией. Его структура отражает иерархию инстинктов, сформировавшихся в ходе эволюции: голод, размножение, доминирование и самосохранение. Это не метафоры — а набор биологических программ, обеспе...
Операция И
- Получить ссылку
- X
- Электронная почта
- Другие приложения
Для реализации логического элемента "И" на Raspberry Pi, вам потребуется создать систему, которая будет реагировать на импульсы от внешнего источника (например, кнопка или датчик) и внутреннего генератора частоты (обычно реализуемого с помощью таймера). В данной системе мы будем считать количество совпадений импульсов за определенный период времени (скользящее окно). Что вам потребуется: Raspberry Pi с установленной операционной системой (например, Raspbian). Библиотека RPi.GPIO для работы с GPIO-пинами. Библиотека time для управления временными задержками. Внешний источник импульсов (датчик, кнопка и т.д.). Внутренний генератор (будем использовать таймер для создания импульсов). Примерный код на Python import RPi.GPIO as GPIO import time import threading # Настройки EXTERNAL_PIN = 17 # Пин, к которому подключен внешний источник GENERATED_PIN = 27 # Пин, используемый для генерации внутреннего сигнала WINDOW_SIZE = 10 # Размер сколь...
Код
- Получить ссылку
- X
- Электронная почта
- Другие приложения
Для реализации данной задачи на Raspberry Pi с использованием библиотеки RPi.GPIO мы создадим счётчик, который будет увеличивать значение при наличии импульсов на первом пине и уменьшать значение при наличии импульсов на втором пине. Программа будет записывать все изменения показаний счётчика и остановится, когда его значение достигнет нуля. Вот пример кода, который реализует описанную функциональность: import RPi.GPIO as GPIO import time # Настройки пинов PIN_COUNT_UP = 17 # Пин для увеличения счётчика PIN_COUNT_DOWN = 27 # Пин для уменьшения счётчика # Инициализация счётчика и списка для записи изменений counter = 0 history = [] # Список для хранения изменений счётчика # Установка режима GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(PIN_COUNT_UP, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.setup(PIN_COUNT_DOWN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # Функция для увеличения счётчика def count_up ( channel ): global counter counter += 1 hist...
Реверсивный счетчик
- Получить ссылку
- X
- Электронная почта
- Другие приложения
import RPi.GPIO as GPIO import time # Настройки INCREASE_PIN = 17 # Пин для увеличения счетчика DECREASE_PIN = 27 # Пин для уменьшения счетчика START_COUNT = 0 # Начальное значение счетчика DELAY_MS = 10 # Интервал записи в миллисекундах PAUSE_THRESHOLD_MS = 100 # Порог паузы в миллисекундах OUTPUT_FILE = "counter_log.txt" # Файл для записи показаний DEBOUNCE_TIME_MS = 50 # Обработка дребезга GPIO.setmode(GPIO.BCM) GPIO.setup(INCREASE_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(DECREASE_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) def write_counter_value(count): with open(OUTPUT_FILE, "a") as f: f.write(f"{count}\n") def main(): count = START_COUNT last_change_time = 0 # Для отслеживания времени последнего изменения last_write_time = time.time() write_counter_value(count) increase_debounce = 0 decrease_debounce = 0 while True: ...
- Получить ссылку
- X
- Электронная почта
- Другие приложения
2024-12-14 19:16:40] Раис Габдуллин: Написать код Считывается информация попеременно с двух пинов Rasberru pi с частотой 100 гц. Запускается процесс от сигнала на первом пине, количество импульсов суммируется и записывается до появления сигнала на втором пине которые суммируются и записываются. Цикл повторяется при появлении сигнала на первом пине. Цикл заканчивается когда количество импульсов на первом и втором пине сравняются. Затем начинается новый цикл после появления сигнала на первом пине. Сигналы с первого пина записываются как единица а со второго как нуль. Полученный бинарный код преобразуем в равномерный подсчитывая количество единиц и нулей в каждой пачке единиц и нулей, которые затем отобразить наглядным графиком. [2024-12-14 19:16:40] Chat GPT: Для реализации этой задачи на Raspberry Pi можно использовать библиотеку `RPi.GPIO` для работы с GPIO-пинами и `matplotlib` для построения графиков. Вот пример кода, который выполняет описанные вами задачи: ```python i...
- Получить ссылку
- X
- Электронная почта
- Другие приложения
примерный код для выполнения данного алгоритма: import numpy as np import matplotlib.pyplot as plt import sounddevice as sd import wave # Параметры записи sample_rate = 44100 # Часота дискретизации duration = 5 # Длительность записи в секундах filename = 'audio_neg.wav' # Имя файла для сохранения негативной записи # Функция для записи аудио def record_audio(filename, duration, sample_rate): print("Запись... Пожалуйста, говорите") audio_data = sd.rec(int(sample_rate * duration), samplerate=sample_rate, channels=1, dtype='int16') sd.wait() # Ожидание завершения записи print("Запись завершена.") # Сохранение записи в файл with wave.open(filename, 'wb') as wf: wf.setnchannels(1) # Моно wf.setsampwidth(2) # 2 байта (16 бит) wf.setframerate(sample_rate) wf.writeframes(audio_data.tobytes()...
- Получить ссылку
- X
- Электронная почта
- Другие приложения
Использование акустической трубы и двух микрофонов — это интересный подход для создания звуковых эффектов или алгоритмов обработки звука. Вам необходимо учитывать, что для реализации такого проекта вам потребуется оборудование и программное обеспечение, способное обрабатывать звук в реальном времени. Вот пример упрощённой реализации на Python, который использует библиотеку pyaudio для записи и воспроизведения звука. Вы можете адаптировать его под вашу задачу. import pyaudio import numpy as np import time # Параметры звука FORMAT = pyaudio.paInt16 CHANNELS = 2 # два микрофона RATE = 44100 # Частота дискретизации FRAMES_PER_BUFFER = 1024 # Размер блока данных # Инициализация PyAudio p = pyaudio.PyAudio() # Открытие потоков для записи и воспроизведения stream_in = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, ...
- Получить ссылку
- X
- Электронная почта
- Другие приложения
Для реализации такого устройства нам потребуется язык программирования, который позволяет работать с графическим интерфейсом и имеет доступ к тому, чтобы задерживать сигналы. Одним из популярных вариантов является Python с использованием библиотеки tkinter для графического интерфейса и time для задержек. Также можно использовать библиотеку matplotlib для построения графиков. Вот пример базового кода, который отображает частоту сигнала и позволяет имитировать задержку и отображение показаний счётчика: import tkinter as tk import numpy as np import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg import time class FrequencyCounterApp : def __init__ ( self, master ): self.master = master master.title( "Частотный счётчик" ) # Начальная частота self.frequency = 110 # в Герцах self.wavelength = 343 / self.frequency # Длина волны (ускорение звук...
Как протестировать код
- Получить ссылку
- X
- Электронная почта
- Другие приложения
Как протестировать код Тестирование кода — это важный этап разработки, позволяющий убедиться в его корректности и надежности. Существует несколько подходов и методик для тестирования. Вот некоторые из них: 1. Юнит-тестирование Юнит-тесты проверяют отдельные компоненты (функции, классы) вашего кода в изоляции. Используйте библиотеки, такие как: JUnit для Java pytest для Python Jest для JavaScript Пример на Python с использованием pytest: def add(a, b): return a + b def test_add(): assert add(1, 2) == 3 assert add(-1, 1) == 0 Копировать 2. Интеграционное тестирование Интеграционные тесты проверяют взаимодействие между несколькими компонентами или модулями. 3. Функциональное тестирование Функциональные тесты проверяют, соответствует ли приложение требованиям и спецификациям. Это можно делать вручную или с помощью инструментов автоматизации, таких как Selenium. 4. Тестирование производительности Тестирование на производительность позволяет про...
Алгоритм преобразования речевого сигнала в прямоугольные
- Получить ссылку
- X
- Электронная почта
- Другие приложения
Преобразование речевого сигнала в прямоугольные импульсы можно осуществить с помощью метода, называемого «импульсной модуляцией» или «дискретизацией». Вот алгоритм, который может помочь вам в этом процессе: Запись речевого сигнала : Сначала вам нужно записать звуковую волну в цифровом формате. Это можно сделать с помощью микрофона и аудиозаписывающего устройства. Дискретизация : Далее, аудиосигнал нужно дискретизировать, то есть преобразовать его в последовательность значений амплитуды на равных интервалах времени. Обычно это делается с помощью преобразования Фурье или аналогичных методов. Квантование : После дискретизации значение амплитуды звукового сигнала нужно квантовать. Это означает, что вы выбираете определенное количество уровней амплитуды и округляете значения к ближайшему уровню. Преобразование в прямоугольные импульсы : Теперь, когда у вас есть набор квантованных значений, можете преобразовать их в прямоугольные импульсы. Для этого можно установить пороговое значение:...