Курс лекций «Основы цифровой обработки сигналов»

    Всем привет!

    Часто ко мне обращаются люди с вопросами по задачам из области цифровой обработки сигналов (ЦОС). Я подробно рассказываю нюансы, подсказываю нужные источники информации. Но всем слушателям, как показало время, не хватает практических задач и примеров в процессе познания этой области. В связи с этим я решил написать краткий интерактивный курс по цифровой обработке сигналов и выложить его в открытый доступ.

    Большая часть обучающего материала для наглядного и интерактивного представления реализована с использованием Jupyter Notebook. Предполагается, что читатель имеет базовые знания из области высшей математики, а также немного владеет языком программирования Python.



    Список лекций


    Этот курс содержит материалы в виде законченных лекций по разным тематикам из области цифровой обработки сигналов. Материалы представлены с использованием библиотек на языке Python (пакеты numpy, scipy, matplotlib, и т.д.). Основная информация для этого курса взята из моих лекций, которые я, будучи аспирантом, читал студентам Московского Энергетического Института (НИУ МЭИ). Частично информация из этих лекций была использована на обучающих семинарах в Центре Современной Электроники, где я выступал в качестве лектора. Кроме того, в этот материал входит перевод различных научных статей, компиляция информации из достоверных источников и литературы по тематике цифровой обработки сигналов, а также официальная документация по прикладным пакетам и встроенным функциям библиотек scipy и numpy языка Python.

    Для пользователей MATLAB (GNU Octave) освоение материала с точки зрения программного кода не составит труда, поскольку основные функции и их атрибуты во многом идентичны и схожи с методами из Python-библиотек.

    Все материалы сгруппированы по основным тематикам цифровой обработки сигналов:

    1. Сигналы: аналоговые, дискретные, цифровые. Z-преобразование,
    2. Преобразование Фурье: амплитудный и фазовый сигнала, ДПФ и БПФ,
    3. Свертка и корреляция. Линейная и циклическая свертка. Быстрая свёртка
    4. Случайные процессы. Белый шум. Функция плотности вероятностей
    5. Детерминированные сигналы. Модуляция: АМ, ЧМ, ФМ, ЛЧМ. Манипуляция
    6. Фильтрация сигналов: БИХ, КИХ фильтры
    7. Оконные функции в задачах фильтрации. Детектирование слабых сигналов.
    8. Ресемплинг: децимация и интерполяция. CIC-фильтры, фильтры скользящего среднего


    Список лекций — достаточный но, разумеется, неполный для вводного знакомства с областью ЦОС. При наличии свободного времени я планирую поддерживать и развивать этот проект.

    Где найти?


    Все материалы — абсолютно бесплатны и доступны в виде открытого репозитория на моем гитхабе как opensource проект. Материалы представлены в двух форматах — в виде тетрадок Jupyter Notebook для интерактивной работы, изучения и редактирования, и в виде скомпилированных из этих тетрадок HTML-файлов (после скачивания с гитхаба имеют вполне пригодный формат для чтения и для печати).

    Ниже приводится очень краткое описание разделов курса с небольшими пояснениями, терминами и определениями. Основная информация доступна в исходных лекциях, здесь представлен лишь краткий обзор!

    Сигналы. Z-преобразование


    Вводный раздел, в котором содержится основная информация по типам сигналов. Вводится понятие дискретной последовательности, дельта-функции и функции Хевисайда (единичный скачок).

    Все сигналы по способу представления на множестве можно разделить на четыре группы:
    • аналоговые — описываются непрерывными во времени функциями,
    • дискретные — прерываются во времени с шагом заданным дискретизации,
    • квантованные — имеют набор конечных уровней (как правило, по амплитуде),
    • цифровые — комбинация свойств дискретных и квантованных сигналов.


    Signals

    Для правильного восстановления аналогового сигнала из цифрового без искажений и потерь используется теорема отсчетов, известная как Теорема Котельникова (Найквиста-Шеннона).
    Любой непрерывный сигнал с ограниченным спектром может быть восстановлен однозначно и без потерь по своим дискретным отсчетам, взятым с частотой строго больше удвоенной верхней частоты спектра непрерывного сигнала.

    Такая трактовка справедлива при условии, что непрерывная функция времени занимает полосу частот от 0 до значения верхней частоты. Если шаг квантования и дискретизации выбраны неправильно, преобразование сигнала из аналоговой формы в дискретную будет происходить с искажениями.

    Также в этом разделе описывается Z-преобразование и его свойства, показывается представление дискретных последовательностей в Z-форме.

    Пример конечной дискретной последовательности:
    x(nT) = {2, 1, -2, 0, 2, 3, 1, 0}
    .
    Пример этой же последовательности в Z-форме:

    X(z) = 2 + z-1 — 2z-2 + 2z-4 + 3z-5 + 1z-6

    Преобразование Фурье. Свойства. ДПФ и БПФ


    В этом разделе описывается понятие временной и частотной области сигнала. Вводится определение дискретного преобразования Фурье (ДПФ). Рассмотрены прямое и обратное ДПФ, их основные свойства. Показан переход от ДПФ к алгоритму быстрого преобразования Фурье (БПФ) по основанию 2 (алгоритмы децимации по частоте и по времени). Отражена эффективность БПФ в сравнении с ДПФ.

    В частности, в этом разделе описывается Python пакет scipy.ffpack для вычисления различных преобразований Фурье (синусное, косинусное, прямое, обратное, многомерное, вещественное).

    Преобразование Фурье позволяет представить любую функцию в виде набора гармонических сигналов! Преобразование Фурье лежит в основе методов свертки и проектировании цифровых корреляторов, активно применяется при спектральном анализе, используется при работе с длинными числами.

    Особенности спектров дискретных сигналов:
    1. Спектральная плотность дискретного сигнала – периодическая функция с периодом, равным частоте дискретизации.
    2. Если дискретная последовательность вещественная, то модуль спектральной плотности такой последовательности есть четная функция, а аргумент – нечетная функция частоты.

    Спектр гармонического сигнала:

    FFT for cosine

    Сравнение эффективности ДПФ и БПФ


    Эффективность алгоритма БПФ и количество выполняемых операций линейно зависит от длины последовательности N:

    N ДПФ БПФ Отношение числа комплексных сложений Отношение числа комплексных умножений
    Число операций умножения Число операций сложения Число операций умножения Число операций сложения
    2 4 2 1 2 4 1
    4 16 12 4 8 4 1.5
    8 64 56 12 24 5.3 2.3
    16 256 240 32 64 8 3.75
    32 1024 992 80 160 12.8 6.2
    64 4096 4032 192 384 21.3 10.5
    128 16384 16256 448 896 36.6 18.1
    ... ... ... ... ... ... ...
    4096 16777216 16773120 24576 49152 683 341
    8192 67108864 67100672 53248 106496 1260 630

    Как видно, чем больше длина преобразования, тем больше экономия вычислительных ресурсов (по скорости обработки или количеству аппаратных блоков)!

    Любой сигнал произвольной формы можно представить в виде набора гармонических сигналов разных частот. Иными словами, сигнал сложной формы во временной области имеет набор комплексных отсчетов в частотной области, которые называются *гармоники*. Эти отсчеты выражают амплитуду и фазу гармонического воздействия на определенной частоте. Чем больше набор гармоник в частотной области, тем точнее представляется сигнал сложной формы.

    FFT Gibbs

    Свертка и корреляция


    В этом разделе вводится понятие корреляции и свертки для дискретных случайных и детерминированных последовательностей. Показана связь автокорреляционной и взаимнокорреляционной функций со сверткой. Описываются свойства свертки, в частности, рассмотрены методы линейной и циклической свертки дискретного сигнала с подробным разбором на примере дискретной последовательности. Кроме того, показан метод вычисления «быстрой» свертки с помощью алгоритмов БПФ.

    В реальных задачах часто ставится вопрос о степени похожести одного процесса на другой или же о независимости одного процесса от другого. Иными словами, требуется определить взаимосвязь между сигналами, то есть найти корреляцию. Методы корреляции используются в широком диапазоне задач: поиск сигналов, компьютерное зрение и обработка изображений, в задачах радиолокации для определения характеристик целей и определения расстояния до объекта. Кроме того, с помощью корреляции производится поиск слабых сигналов в шумах.

    Свертка описывает взаимодействие сигналов между собой. Если один из сигналов — импульсная характеристика фильтра, то свертка входной последовательности с импульсной характеристикой есть ни что иное, как реакция цепи на входное воздействие. Иными словами, результирующий сигнал отражает прохождение сигнала через фильтр.

    Автокорреляционная функция (АКФ) находит применение в кодировании информации. Выбор кодирующей последовательности по параметрам длины, частоты и формы во многом обусловлен корреляционными свойствами этой последовательности. Наилучшая кодовая последовательность обладает наименьшим значением вероятности ложного обнаружения или срабатывания (для детектирования сигналов, для пороговых устройств) или ложной синхронизации (для передачи и приема кодовых последовательностей).

    В этом разделе представлена таблица сравнения эффективности быстрой свертки и свертки, вычисляемой по прямой формуле (по числу вещественных умножений).

    Как видно, для длин БПФ до 64, быстрая свёртка проигрывает у прямого метода. Однако, при увеличении длины БПФ результаты меняются в обратную сторону — быстрая свертка начинает выигрывать у прямого метода. Очевидно, чем больше длина БПФ, тем лучше выигрыш частотного метода.

    N Свертка Быстрая свертка Отношение
    8 64 448 0.14
    16 256 1088 0.24
    32 1024 2560 0.4
    64 4096 5888 0.7
    128 16K 13312 1.23
    ... ... .. ...
    2048 4M 311296 13.5

    Случайные сигналы и шум


    В этом разделе вводится понятие случайных сигналов, плотности распределения вероятностей, закона распределения случайной величины. Рассматриваются математические моменты — среднее (математическое ожидание) и дисперсия (или корень этой величины — среднеквадратическое отклонение). Также в этом разделе рассматривается нормальное распределение и связанное с ним понятие белого шума, как основного источника шумов (помех) при обработке сигналов.

    Случайным сигналом называют функцию времени, значения которой заранее неизвестны и могут быть предсказаны лишь с некоторой вероятностью. К основным характеристикам случайных сигналов относятся:

    • закон распределения (относительное время пребывания значения сигнала в определенном интервале),
    • спектральное распределение мощности сигнала.


    Noise AWGN

    В задачах ЦОС случайные сигналы делятся на два класса:

    • шумы — беспорядочные колебания, состоящие из набора разных частот и амплитуд,
    • сигналы, несущие информацию, для обработки которых требуется прибегать к вероятностным методам.


    С помощью случайных величин можно моделировать воздействие реальной среды на прохождение сигнала от источника к приёмнику данных. При прохождении сигнала через какое-то шумящее звено, к сигналу добавляется так называемый белый шум. Как правило, спектральная плотность такого шума равномерно (одинаково) распределена на всех частотах, а значения шума во временной области распределены нормально (Гауссовский закон распределения). Поскольку белый шум физически добавляется к амплитудам сигнала в выбранные отсчеты времени, он называется аддитивный белый гауссовский шум (AWGN — Additive white Gaussian noise).

    Сигналы, модуляция и манипуляция


    В этом разделе показаны основные способы изменения одного или нескольких параметров гармонического сигнала. Вводятся понятия амплитудной, частотной и фазовой модуляции. В частности, выделяется линейная частотная модуляция, применяемая в задачах радиолокации. Показаны основные характеристики сигналов, спектры модулированных сигналов в зависимости от параметров модуляции.

    Freq modulation

    Для удобства на языке Python создан набор функций, осуществляющих перечисленные виды модуляции. Пример реализации ЛЧМ-сигнала:

    def signal_chirp(amp=1.0, freq=0.0, beta=0.25, period=100, **kwargs):
        """
        Create Chirp signal
    
        Parameters
        ----------
        amp : float
            Signal magnitude
        beta : float
            Modulation bandwidth: beta < N for complex, beta < 0.5N for real
        freq : float or int
            Linear frequency of signal
        period : integer
            Number of points for signal (same as period)
        kwargs : bool
            Complex signal if is_complex = True
            Modulated by half-sine wave if is_modsine = True
        """
        is_complex = kwargs.get('is_complex', False)
        is_modsine = kwargs.get('is_modsine', False)
    
        t = np.linspace(0, 1, period)
        tt = np.pi * (freq * t + beta * t ** 2)
        
        if is_complex is True:
            res = amp * (np.cos(tt) + 1j * np.sin(tt))
        else:
            res = amp * np.cos(tt)
    
        if is_modsine is True:
            return res * np.sin(np.pi * t)
        return res
    

    Chirp modulation

    Также в этом разделе из теории передачи дискретных сообщений описаны виды цифровой модуляции — манипуляции. Как и в случае с аналоговыми сигналами, цифровые гармонические последовательности могут быть манипулированы по амплитуде, фазе и частоте (либо по нескольким параметрам сразу).

    Freq Manipulation

    Цифровые фильтры — БИХ и КИХ


    Достаточно большой раздел, посвященный вопросам цифровой фильтрации дискретных последовательностей. В задачах цифровой обработки сигналов данные проходят через цепи, которые называются фильтрами. Цифровые фильтры, как и аналоговые, обладают различными характеристиками — частотные: АЧХ, ФЧХ, временная: импульсная характеристика, а также передаточная характеристика фильтра. Цифровые фильтры используются в основном для улучшения качества сигнала — для выделения сигнала из последовательности данных, либо для ухудшения нежелательных сигналов — для подавления определенных сигналов в приходящих последовательностях отсчетов.

    IIR FIR signals

    В разделе перечислены основные преимущества и недостатки цифровых фильтров (в сравнении с аналоговыми). Вводится понятие импульсной и передаточной характеристик фильтра. Рассматривается два класса фильтров — с бесконечной импульсной характеристикой (БИХ) и конечной импульсной характеристикой (КИХ). Показан способ проектирования фильтров по канонической и прямой форме. Для КИХ фильтров рассматривается вопрос о способе перехода к рекурсивной форме.

    IIR FIR scheme

    Для КИХ фильтров показан процесс проектирования фильтра от стадии разработки технического задания (с указанием основных параметров), до программной и аппаратной реализации — поиска коэффициентов фильтра (с учетом формы представления числа, разрядности данных и т.д.). Вводятся определения симметричных КИХ фильтров, линейной ФЧХ и её связи с понятием групповой задержки.

    FIR full path

    Оконные функции в задачах фильтрации


    В задачах цифровой обработки сигналов используются оконные функции различной формы, которые при наложении на сигнал во временной области, позволяют качественно улучшить его спектральные характеристики. Большое количество всевозможных окон обусловлено в первую очередь одной из главных особенностей любого оконного наложения. Эта особенность выражается во взаимосвязи уровня боковых лепестков и ширины центрального лепестка. Правило:
    Чем сильнее подавление боковых лепестков спектра, тем шире главный лепесток спектра и наоборот.

    Wins (time)

    Одно из применений оконных функций: обнаружение слабых сигналов на фоне более сильных путём подавления уровня боковых лепестков. Основные оконные функции в задачах ЦОС — **треугольное, синусоидальное, окно Ланцоша, Ханна, Хэмминга, Блэкмана, Харриса, Блэкмана-Харриса, окно с плоской вершиной, окно Наталла, Гаусса, Кайзера** и множество других. Большая часть из них выражена через конечный ряд путём суммирования гармонических сигналов с определенными весовыми коэффициентами. Такие сигналы отлично реализуются на практике на любых аппаратных устройствах (программируемые логические схемы или сигнальные процессоры).

    Wins (freq)

    Ресемплинг. Децимация и интерполяция


    В этом разделе рассматриваются вопросы многоскоростной обработки сигналов — изменения частоты дискретизации. Многоскоростная обработка сигналов (multirate processing) предполагает, что в процессе линейного преобразования цифровых сигналов возможно изменение частоты дискретизации в сторону уменьшения или увеличения, либо в дробное число раз. Это приводит к более эффективной обработке сигналов, так как открывается возможность использования минимально допустимых частот дискретизации и, как следствие, значительного уменьшения требуемой вычислительной производительности проектируемой цифровой системы.

    Децимация (прореживание) – понижение частоты дискретизации. Интерполяция – повышение частоты дискретизации.

    Также в разделе рассматривается класс однородных КИХ фильтров, которые называются интегрально-гребенчатыми фильтрами (CIC, Cascaded integrator–comb). Показана реализация, основные свойства и особенности CIC фильтров. В силу линейности математических операций, происходящих в CIC фильтре возможно каскадное соединение нескольких фильтров подряд, что дает пропорциональное уменьшение уровня боковых лепестков, но также увеличивает «завал» главного лепестка амплитудно-частотной характеристики.

    Cascade CIC filter

    График АЧХ фильтра в зависимости от коэффициента децимации:

    CIC Freq Responce

    Также в этом разделе обсуждается вопрос увеличения разрядности данных на выходе CIC фильтра в зависимости от его параметров. Это особенно важно в задачах программной реализации, в частности на ПЛИС.

    Для практической реализации CIC фильтров на Python разработан отдельный класс CicFilter, реализующий методы децимации и интерполяции. Также показаны примеры изменения частоты дискретизации с помощью встроенных методов из scipy пакета Python.

    Python CicFilter Class for Digital Signal Processing
    class CicFilter:
        """
        Cascaded Integrator-Comb (CIC) filter is an optimized class of
        finite impulse response (FIR) filter.
        CIC filter combines an interpolator or decimator, so it has some
        parameters:
    
        R - decimation or interpolation ratio,
        N - number of stages in filter (or filter order)
        M - number of samples per stage (1 or 2)*
    
        * for this realisation of CIC filter just leave M = 1.
    
        CIC filter is used in multi-rate processing. In hardware
        applications CIC filter doesn't need multipliers, just only
        adders / subtractors and delay lines.
    
        Equation for 1st order CIC filter:
        y[n] = x[n] - x[n-RM] + y[n-1].
    
    
        Parameters
        ----------
        x : np.array
            input signal
        """
    
        def __init__(self, x):
            self.x = x
    
        def decimator(self, r, n):
            """
            CIC decimator: Integrator + Decimator + Comb
    
            Parameters
            ----------
            r : int
                decimation rate
            n : int
                filter order
            """
    
            # integrator
            y = self.x[:]
            for i in range(n):
                y = np.cumsum(y)
    
            # decimator
    
            y = y[::r]
            # comb stage
            return np.diff(y, n=n, prepend=np.zeros(n))
    
        def interpolator(self, r, n, mode=False):
            """
            CIC inteprolator: Comb + Decimator + Integrator
    
            Parameters
            ----------
            r : int
                interpolation rate
            n : int
                filter order
            mode : bool
                False - zero padding, True - value padding.
            """
    
            # comb stage
            y = np.diff(self.x, n=n,
                        prepend=np.zeros(n), append=np.zeros(n))
    
            # interpolation
            if mode:
                y = np.repeat(y, r)
            else:
                y = np.array([i if j == 0 else 0 for i in y for j in range(r)])
    
            # integrator
            for i in range(n):
                y = np.cumsum(y)
    
            if mode:
                return y[1:1 - n * r]
            else:
                return y[r - 1:-n * r + r - 1]
    



    CIC Decimation / Interpolation

    Наконец, в этом разделе приведен особый класс фильтров — скользящего среднего. Показано три способа реализации: через свертку сигналов, с помощью КИХ-фильтра и БИХ-фильтра.

    MAF, Moving Average filter

    Заключение


    Надеюсь, этот курс лекций в совокупности с моими предыдущими статьями по цифровой обработке сигналов на ПЛИС принесет практическую пользу и поможет читателю лучше понять основы цифровой обработки сигналов. Этот проект будет улучшаться и дополняться новым полезным и не менее интересным материалом. Следите за развитием!

    Дополнительно к этому материалу я поддерживаю и развиваю свой проект по основным модулям ЦОС (на языке Python). Он содержит пакет генерации различных сигналов, класс CIC фильтров для задач децимации и интерполяции, алгоритм расчета коэффициентов корректирующего КИХ-фильтра, фильтр скользящего среднего, алгоритм вычисления сверх-длинного БПФ через методы двумерного преобразования (последнее очень пригодилось в работе при аппаратной реализации на ПЛИС).

    Спасибо за внимание!
    Поделиться публикацией

    Комментарии 94

      +4
      Поглядел ваш курс и он мне показался слишком, слишком поверхностным. Помимо этого, он так же страдает теми же недостатками, что и прочие курсы того же типа — вводятся понятия и функции без объяснения, откуда они взялись, зачем и почему (та же функция Хевисайда).

      Ну вот например.

      Вы рисуете прямоугольную функцию, я рядом его спектр — но уже в абсолютном значении, причём в линейном масштабе. Ну а как новичок должен догадаться, что там изображена «выпрямленная» функция sinc? Как он должен догадаться, что и наоборот, спектр от sinc — прямоугольный?

      Или вы рассматриваете оконные функции. Ну а как из них выбирать подходящую? А где описания отличий — например, что окно Нуттала гладкое (с нулевой первой производной) на краях? А где окно Дольфа-Чебышева, которая позволяет явно задавать величину боковых лепестков непосредственно в децибелах?

      А почему ресемленг вы сводите исключительно к CIC, в то время как CIC — это лишь один из вариантов реализации, причём не идеальной?
        +4
        В процессе подготовки этого материала у меня постоянно возникало желание выкинуть из курса лишнего, дабы не получилось много теории в ущерб практическим примерам. Плюс, какие-то слишком очевидные (для меня) вещи я мог удалить за ненужностью. С другой стороны — я не позиционирую курс как подробное издание или полноценную законченную книгу (на этот счёт есть библия в виде книги Айфичера).

        Ресемлинг планировался в нескольких частях. Дабы не раздувать тетрадку примерами, я решил обойтись CIC в первой части. Фильтры Фарроу обязательно добавлю. С остальными замечаниями согласен и по возможности доработаю эти моменты.

        Спасибо за фидбек!
          0
          А можно сделать два издания, стартовое и подробное?
          :)
            0
            С другой стороны — я не позиционирую курс как подробное издание или полноценную законченную книгу (на этот счёт есть библия в виде книги Айфичера).
            Подскажите пожалуйста про книгу Айфичера, я посмотрел разницу первого и второго изданий, в основном связано с интерактивной поддержкой на сайте и добавлены примеры на MatLab. Это принципиально для новичка? Цена на 1-е издание сильно демократичнее.
            Не люблю читать с экрана )) Спасибо.
              0
              К сожалению, я не смог нагуглить первое издание вообще, поэтому не могу сравнить их, но если вы говорите, что разница только в интерактивной поддержке, то по критерию цены выбор за первым изданием. Примеры MATLAB всегда можно будет скачать и посмотреть в электронной версии второго издания.

              Кстати, свою книгу я покупал ~10 лет назад за 600 рублей и это было второе издание. Можете скинуть ссылку в ЛС на первое издание для сравнения?
                0
                Про первое издание я прочитал в предисловии ко второму, там сказано про MatLab.

                Спасибо за вашу работу.
            0
            Я бы больше сказал — теорему Котельникова надо по словам разбирать, предварительно разжевав, что такое спектр. Я слушал этот курс в универе, и сейчас со стыдом понял, что я теорему Котельникова не понимаю, и статья не помогла разобраться.
              0
              Рекомендую к прочтению адаптированную статью, УФН от 2006 года "О пропускной способности эфира и проволоки в электросвязи", в которой содержатся все семь теорем Котельникова. Это адаптированный вариант оригинальных трудов Котельникова. Добавил её в репозиторий.
            +1
            ИМХО — все подобные курсы позиционируют себя для изучения обработки сигналов, в реальности же они хороши только для освежения забытых знаний. Если базовых знаний нет — надо курить опенгеймера…
              0
              Можете посоветовать разбор теоремы Найквиста с последовательным усложнением? Типа вначале вводится бесшумный бесконечный по времени сигнал и дискретизация с дельта-функцией, потом сигнал становится конечным, появляется шум, АЦП тоже становится неидеальным (интегрирование по времени вместо точечного «выкалывания»)…
                +1
                Я считаю, что более правильно эту теорему называть теоремой Котельникова. А вот частоту, равную половине частоты дискретизации (о которой идет речь в теореме) — частотой Найквиста.
                0
                Огромное спасибо! Мне, как студенту эти материалы очень пригодятся для ознакомления!
                  0
                  Очень круто, главное не забросить…
                  Очень нехватает вейвлетов.
                  тут цифровая обработка сигналов, глазами химика, постоянно обновляется:
                  terpconnect.umd.edu/~toh/spectrum/IntroToSignalProcessing.pdf
                    0
                    Вейвлеты есть в планах. В принципе набор тем, которые я планирую добавить тянет на полноценный курс, не меньший этого. Спасибо :)
                    0
                    Отличная статья!
                    Однако хотел-бы поправить:

                    Рассматриваются математические моменты — среднее (математическое ожидание) и дисперсия (среднеквадратическое отклонение).


                    Дисперсия и среднеквадратичное отклонение это не одно и то-же. СКО это корень из дисперсии.
                      0
                      Про дисперсию и ско сделаю уточнение, дабы не вводить в заблуждение, спасибо!
                      +1
                      Цитата: «Любой непрерывный сигнал с ограниченным спектром может быть восстановлен однозначно и без потерь по своим дискретным отсчетам, взятым с частотой строго больше удвоенной верхней частоты спектра непрерывного сигнала.»
                      На самом деле:
                      Любой непрерывный сигнал с ограниченным спектром может быть восстановлен однозначно и без потерь по своим дискретным отсчетам, взятым с частотой строго больше удвоенной ширины полосы частот, занимаемой спектром непрерывного сигнала.
                        0
                        Либо добавить уточнение, что спектр сигнала лежит в диапазоне от 0 до fв. Спасибо за замечание!
                          0
                          Да — часто забывают, что теорема Котельникова в оригинале рассматривает полосы частот в радиоэфире. Соответственно и для дискретизации узкополосных гигагерцовых сигналов вовсе не нужен гигагерцовый АЦП.
                            0
                            Позвольте вопрос, чтобы понять Вашу терминологию. Прямой спектр действительного сигнала отличен от нуля в полосе частот от 1 до 3 кГц. Какая ширина (в кГц) полосы этого сигнала?
                              0
                              Без сомнения, ширина полосы частот, занимаемой указанным сигналом — 2 кГц. И для обеспечения возможности его дальнейшего восстановления достаточно частоты сэмплирования > 4 кГц.
                                0
                                А по какой формуле Вы сможете восстановить сигнал без потерь с такой частотой дискретизации?
                                Я к тому спрашиваю, что Ваше утверждение «Любой непрерывный сигнал с ограниченным спектром может быть восстановлен однозначно и без потерь по своим дискретным отсчетам, взятым с частотой строго больше удвоенной ширины полосы частот, занимаемой спектром непрерывного сигнала» не верно, место я указал курсивом.
                                  0
                                  Да вроде всё правильно — теоремы Котельникова IV и V говорят же об этом прямым текстом. Математически это выглядит как-то так: непрерывный сигнал восстанавливается свёрткой дискретного с функцией sinc, затем приводится к аналитическому виду, затем линейно сдвигается вверх по частоте умножением на комплексную синусоиду. Если сдвиг по частоте выше частотной полосы, можно просто умножить на синусоиду и отфильтровать отрицательную часть частот.
                                    0
                                    Не совсем так. Посмотрите, что у Котельникова в теореме V:
                                    1. Дискретизация с частотой f1+f2 (в действительности с частотой 2(f2+f1), если без временного сдвига делать) — получение отсчетов F1 и F2, то есть, отсчетов квадратур.
                                    2. Восстановление квадратур F1 и F2 рядами Котельникова по синкам — получение непрерывных F1(t) и F2(t).
                                    3. И только теперь их дискретизация с частотой 2(f2-f1).
                                    4. Передача отсчетов квадратур по каналу связи (это те самые «числа», которые фигурируют в формулировке теоремы V).
                                    5. Восстановление квадратур F1 и F2 рядами Котельникова по синкам получение непрерывных F1(t) и F2(t).
                                    6. Восстановление F(t) по формуле (13) из теоремы IV.
                                    То есть, Вы сформулировали всё правильно, за исключением того, что исходный сигнал F(t) восстанавливается не по своим отсчетам, а по отсчетам F1(t) и F2(t).
                                    Но автор в формулировке теоремы Котельникова написал про восстановление именно по своим дискретным отсчетам, как у Котельникова и Шеннона и звучит. Вот поэтому, по-моему, Вы не корректно поправили автора.
                                      0
                                      что исходный сигнал F(t) восстанавливается не по своим отсчетам, а по отсчетам F1(t) и F2(t)

                                      Дискретизируется-то по своим же. Вот так это происходит:

                                      При идеальном восстановлении отсчёты будут совпадать.
                                        0
                                        Нет, не по своим.
                                        Пусть f1=1, f2=4. По теореме V у Котельникова частота дискретизации равна f1+f2=5 (или 10 без временного сдвига). Передаваемые по каналу отсчеты квадратур получаются с частотой 2(f2-f1)=6. При частоте 2(f2-f1)=6 отсчеты квадратур не равны отсчетам исходного сигнала.
                                          0
                                          частота дискретизации равна f1+f2=5
                                          Разве? А не 2*(f2-f1)=6? Откуда сложение-то взялось?
                                            0
                                            В теореме V у Котельникова. Я же выше написал, как там (в этой теореме) доказательство делается.
                                            Давайте по другому. В самом начале я привел пример действительного сигнала, у которого спектр отличен от нуля в полосе частот от 1 до 3 кГц. Дискретизируем его с частотой 2*(f2-f1)=4 кГц. Теперь напишите формулу (формулы), по которой можно восстановить сигнал без потерь по полученным так отсчетам.
                                              0
                                              Хорошо, давайте по-другому.

                                              При дискретизации непрерывный сигнал умножается на гребёнку Дирака. Его отсчёты, совпадающие с отсчётами гребёнки Дирака, никуда не деваются.

                                              При этом их спектры сворачиваются. И если период решётки меньше длины спектра — произойдёт их наложение и восстановление будет невозможно.

                                              Ну а поскольку вследствие свёртки спектр «размножился», то восстановление происходит простой фильтрацией в частотном домене в исходной полосе частот. Исходные отсчёты исходного сигнала продолжают оставаться на своих местах.

                                                0
                                                У Вас при дискретизации с частотой 2(f2-f1) и будут наложения, вплоть до полного обнуления. И вот пример.
                                                Возьмем функцию S(t)=sin(2pif1t)/(2pif1t), f1=1 кГц. Функция четная, её спектр действителен и имеет форму прямоугольника на интервале частот от минус f1 до f1, высота прямоугольника равна 1/(2f1). Центральная частота прямоугольника = 0. Нули функции расположены в моменты времени kdt1=k/(2f1), k целое, не равное 0.
                                                Теперь пусть функция F(t)=S(t)*sin(2pi(f2-f1)t)=sin(2pif1t)/(2pif1t)*sin(2pi(f2-f1)t), f2=3 кГц. F(t) — нечетная, её спектр чисто мнимый и состоит из двух прямоугольников (по форме как у функции S(t)) — один прямоугольник (прямой спектр)
                                                c центральной частотой (f2-f1), второй прямоугольник (инверсный спектр) с центральной частотой минус (f2-f1) и с противоположным знаком по отношению к первому. Нули F(t) расположены в моменты времени kdt1=k/(2f1) и ndt2=n/(2(f2-f1)), k,n — целые. Заметим, что моменты времени kdt1=k/(2f1) вложены в моменты ndt2=n/(2(f2-f1)), то есть (совсем не важно для примера, но для порядку) нули функции F(t)=sin(2pif1t)/(2pif1t)*sin(2pi(f2-f1)t) для наших значений f1 и f2 расположены в моменты времени ndt2=n/(2(f2-f1)), n — целое.
                                                Что имеем при дискретизации F(t) с частотой Fs=2(f2-f1) в моменты времени ndt2=n/(2(f2-f1)):
                                                — в частотной области — полное наложение прямого и инверсного спектров на интервале частот от f1 до f2 (а прямой и инверсный спектры одинаковы по форме — прямоугольники — и с противоположными знаками) с результатом наложения в виде тождественного нуля на всем диапазоне частот от 0 до Fs;
                                                — во временной области — те же самые нули (в нули функции F(t) мы попали).
                                                Весьма предсказуемый результат в данном примере от дискретизации с частотой 2(f2-f1).
                                                Посмотрим внимательно на F(t)=sin(2pif1t)/(2pif1t)*sin(2pi(f2-f1)t). Разложение на квадратуры очевидно: F1(t)=0, F2(t)=sin(2pif1t)/(2pif1t). Функцию F2(t) без потерь можно дискретизировать с частотой Fs=2(f2-f1) в моменты времени
                                                ndt2=n/(2(f2-f1), результатом будут все нули, кроме одной единицы при t=0. Можно ли восстановить после такой дискретизации F2(t) без потерь? Можно.
                                                Можно ли восстановить после такой дискретизации F(t) без потерь? Тоже можно.
                                                Об этом и говорит Котоельников в теореме V. Для доказательства он четыре (!) раза производит дискретизацию:
                                                — первый раз исходную F(t) с частотой f1+f2 в моменты времени k/(f1+f2) для получения отсчетов F1(t);
                                                — второй раз исходную F(t) с частотой f1+f2, но в моменты времени (k+0.5)/(f1+f2) для получения отсчетов F2(t);
                                                — третий раз функцию F1(t) с частотой f2-f1 в моменты времени k/(f2-f1) для получения отсчетов F1(t), эта дискретизация отличается по частоте от первой (!);
                                                — четвертый раз функцию F2(t) с частотой f2-f1 в моменты времени k/(f2-f1) для получения отсчетов F2(t), эта дискретизация отличается по частоте от второй (!).
                                                Полученные в третьей и четвертой дискретизациях отсчеты он передает как «числа» (термин из теоремы V), но поскольку одному моменту дискретизации соответствуют два «числа» (от третьей и четвертой дискретизаций), то частоту следования этих
                                                чисел он определяет как 2(f2-f1), то есть в 2 раза больше, чем при третьей и четвертой дискретизациях.
                                                Восстановление по этим «числам» очевидно — сначала через ряд (1) восстанавливаются F1(t) и F2(t), затем вычисляется F(t) по формуле (13).
                                                Убедил?:)
                                                По поводу умножения на гребёнку Дирака — это отдельная и на мой взгляд весьма любопытная тема. Если хотите, можно её обсудить, но не в рамках этой ветки. Можно и по электронной почте. Для затравки — спектры при дискретизации не «размножаются» и периодически не повторяются.
                                                Прошу прощения за «много букв».

                                                  0
                                                  Нет, не убедили. Но и продолжать спорить мне жалко времени. Кроме того, в ваших выкладках я не обнаружил сумму дельта-функций Дирака, описывающих дискретный сигнал.
                                                  Для затравки — спектры при дискретизации не «размножаются» и периодически не повторяются.
                                                  Вроде бы как спектр от гребёнки Дирака — это тоже гребёнка Дирака, и теорему о свёртке вроде бы тоже никто не отменял.
                                                    0
                                                    А без «гребёнки Дирака» у Вас не получается? А ведь «гребёнки Дирака» только один из методов (способов) упрощения жизни, и не более того.
                                                    Давайте с ней. Сверните F(t) из моего примера с гребёнкой Дирака, и получите те же самые наложения прямого и инверсного спектров. В примере прямой спектр весь лежит между двумя дельта-функциями (первая пара), а инверсный тоже лежит между двумя дельта-функциями (вторая пара), но только не между первыми двумя, а между соседней парой (а не между первыми двумя, как надо бы, чтобы потерь не было). При свёртке спектры между соседними парами тупо складываются, в моем примере полностью перекрываются — возникают наложения и потери.
                                                      0
                                                      А без «гребёнки Дирака» у Вас не получается? А ведь «гребёнки Дирака» только один из методов (способов) упрощения жизни, и не более того.
                                                      Гребёнка Дирака — это функция, хорошо подходящая для строго математического описания процедуры дискретизации. Когда Котельников сформулировал свою теорему — законченной теории ЦОС ещё попросту не было, поэтому он оперировал теми понятиями, которые были ему доступны на тот момент.

                                                      В примере прямой спектр весь лежит между двумя дельта-функциями (первая пара), а инверсный тоже лежит между двумя дельта-функциями (вторая пара), но только не между первыми двумя
                                                      Инверсный спектр мы (я) обнулили приведением сигнала к аналитическому виду, поэтому он ни на что не наложится.
                                                        0
                                                        Про гребёнку Дирака и строгую математику Вы несколько неправы. Строгая математика тут — функциональный анализ и изоморфизм L2 и l2(эль малое), а не предложенное (кем и когда, подсказать?) и притянутое за уши (чтобы воткнуть между L2 и l2 что-то такое, что аппаратом обобщенных функций не переваривается ни под каким соусом) нечто, да еще с паровозом в виде периодизации спектра и бесконечных энергий.
                                                        И очень интересно, где это Вы при дискретизации инверсный спектр обнулили? А если перед дискретизацией Вы привели сигнал к аналитическому виду, то откуда в процессе дискретизации аналитического (или его же в ноль смещенного) отсчеты исходной функции взяли?
                                                        Еще раз — с частотой дискретизации Fs=2(f2-f1) можно без потерь дискретизировать квадратуры (функции F1(t) и минус F2(t)), мгновенные значения которых (отсчеты) в моменты времени k/Fs не равны исходной функции в те же моменты времени, о которых написал Navigator_Pirks в своём замечании.
                                                          0
                                                          У меня есть к Вам просьба — подскажите, пожалуйста, литературу, в которой определена операция умножения дельта-функции Дирака с произвольной функцией.
                                                            0
                                                              0
                                                              Конечно, хотелось бы что-то из Владимирова. Но это не важно.
                                                              И у Владимирова и в указанных Вами материалах я не встретил определения операции умножения дельта-функции на другую функцию. Скалярное произведение есть. Но определения простого умножения, которое встречается у Вас в тексте («При дискретизации непрерывный сигнал умножается на гребёнку Дирака»), там нет. И не ищите. Эта операция не определена. Это к вопросу о математической строгости. В литературе встречается результат свертки гребёнки дирака с взвешенной дискретизируемой функцией — взвешенная (пропорционально отсчетам) сумма дельта-функций. Но никак не результат «умножения».
                                                              И, простите, пожалуйста, но «Гребёнка Дирака — это функция» (Ваши слова) — это совсем неправда.
                                                              Но у нас речь о дискретизации с частотой 2(f2-f1). Вы принимаете мои слова «с частотой дискретизации Fs=2(f2-f1) можно без потерь дискретизировать квадратуры» (и только квадратуры, если f1 > 0), но никак не исходный сигнал? Или настаиваете на версии Navigator_Pirks?
                                                              И если Вам интересно, подскажу кто и когда (и литературу Вам в электронном виде смогу переслать) ввел в дискретизацию гребёнку Дирака и зачем.

                                                                0
                                                                И если Вам интересно, подскажу кто и когда (и литературу Вам в электронном виде смогу переслать) ввел в дискретизацию гребёнку Дирака и зачем.
                                                                Мне интересно, так что прошу. В книгах, которые мне попадались, comb function появляется как-то вдруг.
                                                                  0
                                                                  Я тут совсем недавно, поэтому прицепить сюда пока не знаю как. Можно по электронной почте, напишите мне на 729@inbox.ru, в ответе перешлю книгу в djvu. Или подскажите, пожалуйста, как тут файл прицепить.
                                                                    0
                                                                    Ссылка на книгу, о которой писал — yadi.sk/i/rEAbcdNoH8OnIw. Там достаточно первые 12 страниц прочитать, особенно 10-ю.
                                                                    В двух словах: использование дельта-функций — только метод (способ) представления сигнала, к которому может быть применён матаппарат классического анализа (литература [10] 1959 год). Там же и то, что вместо дельта-функции можно применять и просто sinc, но возни с интегралами будет больше.
                                                                    Метод так прижился, что теперь без него дискретизацию и не мыслят вовсе. Но это всё же только метод, и не единственный.
                                                                    0
                                                                    Но определения простого умножения, которое встречается у Вас в тексте («При дискретизации непрерывный сигнал умножается на гребёнку Дирака»), там нет. И не ищите. Эта операция не определена.
                                                                    Если эта операция не определена, то как же Wolfram Alpha/Mathematica смогла выполнить над ней преобразование Фурье?
                                                                      0
                                                                      Всё правильно — преобразование Фурье от произведения, как скалярное произведение дельта-функции с чем-то, определено в обобщенном смысле. Тут нет противоречия со строгой математикой.
                                                                      0
                                                                      «Гребёнка Дирака — это функция» (Ваши слова) — это совсем неправда.
                                                                      Dirac comb also known as sampling function, constructed from Dirac delta functions
                                                                        0
                                                                        Дельта-функция Дирака не является функцией. Её значения в точках не определены. На википедию лучше не ссылаться. Я там для пробы писал всякую откровенную фигню — висело всё это месяцами, пока сам не исправил.
                                                                          0
                                                                          На хабре тоже, бывает, фигню пишут. И что характерно — исправлению не подлежащую в принципе.
                                                                            0
                                                                            Про дельта-функцию Дирака и её значения в точках можно спросить любого математика — даже студент МехМата МГУ Вам повторит то, что я написал. Сам символ дельта-функции — δ(x) — только символ, обозначающий линейный непрерывный (уже не обязательно) функционал (Владимиров, «Обобщенные функции в математической физике»). То есть, вне интеграла не живет.
                                                                              0
                                                                              Что значит «вне интеграла не живёт»? Если я её продифференцирую, она что, умрёт?
                                                                                0
                                                                                Продифференцировать её Вы можете только двумя способами (получите два совершенно разных результата) — в обобщенном смысле (опять интеграл, но зато математики примут), либо сконструировать дельта-образующую последовательность (предел которой Вы назовёте дельта-функцией), продифференцировать каждый член её, найти предел последовательности уже производных (опять же, если он есть) и назвать этот предел производной Вами определённой дельта-функции (математики Вас за этот финт высекут, но физики так делают без всякого сумления). Второй вариант не является математически строгим, но работает. И в нематематической литературе встречается довольно часто. В теории сигналов используется только он.
                                                                            0
                                                                            Дельта-функция Дирака не является функцией. Её значения в точках не определены. На википедию лучше не ссылаться.
                                                                            А на математическую энциклопедию под редакцией Виноградова можно ссылаться? Там дельта-функция Дирака тоже однозначно определена как функция. А если ограничить спектр дельта-функции, то получится sin(x)/x, а в том, что sin(x)/x — это функция вы же не сомневаетесь?

                                                                            И значения её определены во всех точках, включая ноль, только в нуле она невычислима в численном выражении (а во всех остальных случаях равна нулю, например) — точно так же, как и невычислима мнимая единица до тех пор, пока её не возведёшь в квадрат. Но ведь комплексные и прочие числа с мнимыми единицами таки считаются числами?

                                                                            Или вот значение функции 1/x в точке 0 тоже не определено. Но когда мы сокращаем (1/x)*x = 1 это же никого не смущает?
                                                                              0
                                                                              А где у Виноградова Вы прочитали про значения дельта-функции во всех точках? Я что-то не нашел такого. И у него же «Дельта-функция Дирака не является обычной функцией в смысле классической теории функций… и определяется… как сингулярная обобщенная функция» написано.
                                                                              «Её значения в точках не определены» следует из Владимирова (дословно) «Обобщенные функции, вообще говоря, не имеют значений в отдельных точках.» Это не значит, что их трудно посчитать, это значит, что они никак не определяются вообще. В Вашем примере с 1/x можно в нуле функцию просто доопределить нулём. У обобщенной функции значение в точке определить просто никак нельзя, поскольку обобщенная функция — это функционал (не числу ставится в соответствие число — это функция, а функции или множеству функций ставится в соответствие число — функционал). Но значение функционала в окрестности точки определить можно.
                                                                              То, что у Виноградова сначала дельта функция названа функцией, а потом обобщенной функцией, пусть останется на совести автора такой статьи.
                                                                              Про Ваши слова «И значения её определены во всех точках, включая ноль, только в нуле она невычислима в численном выражении (а во всех остальных случаях равна нулю, ...)» у Владимирова тоже есть — если определить так, то интеграл от дельта функции в бесконечных пределах равен 0, а не 1. То есть, всё с таким определением плохо.
                                                                              Ваш пример из wolframalpha никакого противоречия с моими словами не имеет — в отличие от MatLab в этом пакете определение дельта-функции приводится по Владимирову (Владимиров даже упоминается), а тут — functions.wolfram.com/GeneralizedFunctions/DiracDelta/02 — как дельта-функция считается. Но, в отличии от определения, считается в пакете она через предел дельта-образующей последовательности (предел последовательности функций, а не через слабый предел — предел функционалов, как у Владимирова — yadi.sk/d/7Q-r9VMTGuQOjg, стр. 16). Отсюда и результат.
                                                                              А вообще, в этом пакете есть фразы, типа "...so that in the limit as n->infty, the sequences become delta functions." — mathworld.wolfram.com/DeltaSequence.html, что просто убивает наповал — не хватало еще определять дельта-функцию, как последовательность. И разнозначные в нуле определения функции Хэвисайда напрягают. Это навскидку, поскольку wolfram практически не работал и не работаю.
                                                                                0
                                                                                А где у Виноградова Вы прочитали про значения дельта-функции во всех точках? Я что-то не нашел такого.
                                                                                А я про это и не говорил. Я изучаю математику по разным источникам и с разных ракурсов.

                                                                                То, что у Виноградова сначала дельта функция названа функцией, а потом обобщенной функцией, пусть останется на совести автора такой статьи
                                                                                Не вижу никакого противоречия. То, что изначально функция вводится как обобщённая, не мешает её быть функцией в обычном понимании. В математике вообще достаточно вещей, появившихся неочевидным или неестественным образом, а также определяемых по-разному с разных точек зрения.

                                                                                … просто убивает наповал — не хватало еще определять дельта-функцию, как последовательность. И разнозначные в нуле определения функции Хэвисайда напрягают.
                                                                                Раз Вас что-то напрягает — значит, вашим знаниям не хватает непротиворечивости. Достаточно определить дельта-функцию через её спектр, чтобы не возникало никаких вопросов, в том числе и с вычислением значений в её точках.
                                                                                  0
                                                                                  в этом пакете определение дельта-функции приводится по Владимирову (Владимиров даже упоминается), а тут — functions.wolfram.com/GeneralizedFunctions/DiracDelta/02 — как дельта-функция считается. Но, в отличии от определения, считается в пакете она через предел дельта-образующей
                                                                                  Там же написано «Primary definition», а не «Calculation method». А считает Wolfram через символьные преобразования, независимо от определений.
                                                                                    0
                                                                                    А на математическую энциклопедию под редакцией Виноградова можно ссылаться? Там дельта-функция Дирака тоже однозначно определена как функция.
                                                                                    — это разве не Вы написали? Это про
                                                                                    А я про это и не говорил.
                                                                                    .

                                                                                    То, что изначально функция вводится как обобщённая, не мешает её быть функцией в обычном понимании.
                                                                                    Функции 1/x не мешает, f дельта-функции Дирака мешает — возникают противоречия. О них я Вам уже написал.
                                                                                    Достаточно определить дельта-функцию через её спектр, чтобы не возникало никаких вопросов, в том числе и с вычислением значений в её точках.
                                                                                    И опять вылезут противоречия, о коих Вы почему-то не хотите знать. А противоречия следующие: пусть дельта-функция (для краткости — дельта) определена везде равной 0, кроме x=0, где она равна пусть невычислимой бесконечности, тогда интеграл (Лебега) от неё в бесконечных пределах равен 0. А он у Дирака равен 1.
                                                                                    Вот и попробуйте разрулить сие в рамках классического анализа, определив дельту как функцию (в необобщенном смысле) или через её спектр (который в классическом анализе для дельты даже не существует). Как говорится, флаг Вам в руки. И просьба, поделитесь, пожалуйста, результатами.
                                                                                    Там же написано «Primary definition», а не «Calculation method». А считает Wolfram через символьные преобразования, независимо от определений.
                                                                                    Если не трудно, киньте, пожалуйста, ссылку на «Calculation method» вычисления дельты от x при x=1, в котором использованы символьные преобразования. И, пожалуйста, ссылку, где написано, что
                                                                                    А считает Wolfram через символьные преобразования, независимо от определений
                                                                                    А то я после Ваших слов даже боюсь представить, как вообще Wolfram что-либо считает.
                                                                                    И почему Вы упорно игнорируете Владимирова и то, что он пишет про дельту как функцию? Владимиров — это признанная классика.
                                                                                    В математике вообще достаточно вещей, появившихся неочевидным или неестественным образом, а также определяемых по-разному с разных точек зрения.
                                                                                    А можно парочку примеров?
                                                                                      0
                                                                                      И опять вылезут противоречия, о коих Вы почему-то не хотите знать. А противоречия следующие: пусть дельта-функция (для краткости — дельта) определена везде равной 0, кроме x=0, где она равна пусть невычислимой бесконечности, тогда интеграл (Лебега) от неё в бесконечных пределах равен 0. А он у Дирака равен 1.
                                                                                      Я всё это прекрасно знаю и не вижу тут никаких противоречий и упорно не понимаю, почему тут противоречия видите Вы. Если бы интеграл дельта-функции был бы равен нулю — чем бы она тогда отличалась от функции f(x)=0? Вот где было бы противоречие. Можно и по-другому определить дельта-функцию: взять прямоугольную функцию единичной площади (квадрат визуально) и сжимать по оси X одновременно растягивая по Y, сохраняя единичную площадь. В пределе получим искомое без всяких противоречий.

                                                                                      Вот и попробуйте разрулить сие в рамках классического анализа, определив дельту как функцию (в необобщенном смысле) или через её спектр (который в классическом анализе для дельты даже не существует).
                                                                                      А до преобразования Фурье и самого понятия «спектр функции» не существовало, и что теперь? Мы же тут обработку сигналов обсуждаем, а не чистую математику. А в обработке сигналов приоритетно оперирование спектрами, и не всегда обязательно даже переходить во временную область. Белый шум, в частности, только через спектр и определяется.

                                                                                      Как говорится, флаг Вам в руки. И просьба, поделитесь, пожалуйста, результатами.
                                                                                      Вот и вот (алгоритм тоже мой, а не только реализация).

                                                                                      И почему Вы упорно игнорируете Владимирова и то, что он пишет про дельту как функцию?
                                                                                      Оконную функцию он называет «шапочка». И в русско-, и в англо-язычной теории обработки сигналов оконные функции называются «оконные функции», а не «шапочки» или «оконные обобщённые функции».

                                                                                      А то я после Ваших слов даже боюсь представить, как вообще Wolfram что-либо считает.
                                                                                      Читайте «A New Kind of Science» Стивена Вольфрама и его переведённые статьи на хабре.

                                                                                      А можно парочку примеров?
                                                                                      Обобщение факториала в область отрицательных действительных чисел; выражение конечной суммы sinc-функций через произведение двух гамма-функций.
                                                                                        0
                                                                                        Я всё это прекрасно знаю и не вижу тут никаких противоречий и упорно не понимаю, почему тут противоречия видите Вы.
                                                                                        Это не я вижу противоречия, а Владимиров.
                                                                                        Если бы интеграл дельта-функции был бы равен нулю — чем бы она тогда отличалась от функции f(x)=0? Вот где было бы противоречие.
                                                                                        А вот тут-то никаких противоречий, отличалась бы от f(x)=0 ненулевым значением f(0).

                                                                                        Можно и по-другому определить дельта-функцию: взять прямоугольную функцию единичной площади (квадрат визуально) и сжимать по оси X одновременно растягивая по Y, сохраняя единичную площадь. В пределе получим искомое без всяких противоречий.
                                                                                        Я же уже писал Вам — это не будет дельта-функция Дирака, а будет дельта-функция Вашего, например, имени. Поскольку дельта-функция Дирака определяется не как предел последовательности функций, а через слабый предел.

                                                                                        А до преобразования Фурье и самого понятия «спектр функции» не существовало, и что теперь? Мы же тут обработку сигналов обсуждаем, а не чистую математику.
                                                                                        Про «строго математически» Вы начали, а не я. Так что это не мне.
                                                                                        Понятие «спектр» ввел еще Ньютон. Понятие «функция» появилось задолго до рождения Фурье. Неужели Вы думаете, что сложить эти два слова в одно понятие до Фурье никто не догадался?

                                                                                        А в обработке сигналов приоритетно оперирование спектрами, и не всегда обязательно даже переходить во временную область.
                                                                                        Это Вы, мягко говоря, очень сильно заблуждаетесь.

                                                                                        Вот и вот (алгоритм тоже мой, а не только реализация).
                                                                                        А это тут каким боком? Особенно преобразование Хартли? Поясните, пожалуйста. Я Вас просил разрулить противоречия с определением дельта-функции как функции. Могу еще противоречий накидать. Вы как-то упомянули определение дельта-функции через спектр. Скажите, пожалуйста, какой формулой Вы определяете спектр дельты (можно словами, я пойму)?

                                                                                        И очень хотелось бы увидеть ссылки на «Calculation method» вычисления дельты от x при x=1, в котором использованы
                                                                                        символьные преобразования, независимо от определений
                                                                                        в Wolfram.

                                                                                        Оконную функцию он называет «шапочка». И в русско-, и в англо-язычной теории обработки сигналов оконные функции называются «оконные функции», а не «шапочки» или «оконные обобщённые функции».
                                                                                        И только из-за этого? Вы это серьёзно? А можно ссылку на «шапочки» или «оконные обобщённые функции» у Владимирова, чтобы мне его не перерывать?

                                                                                        Читайте «A New Kind of Science» Стивена Вольфрама и его переведённые статьи на хабре.
                                                                                        Так дело не пойдет. Я Вам книгу, страницу, чуть ли не номер формулы. А Вы мне — читайте Вольфрама. Я Вас попросил показать (в виде ссылки) очень конкретную вещь — дельту от единицы. Сначала Вы сослались на на «Calculation method», ссылку на который так и не дали, а потом вообще заявили, что
                                                                                        считает Wolfram через символьные преобразования, независимо от определений
                                                                                        Это как так он считает независимо от определений? Поиском решений в интернете, что ли? 2+2 от тоже в интернете ищет? Или всё же как-то считает сам? Вы же знаете, как. Очень прошу и мне рассказать.
                                                                                        Идеи Стивена Вольфрама из «A New Kind of Science» мне не интересны. Пытался читать, но забросил. Какие-то пространные доморощенные суждения, завышенная самооценка (количество «Я» и «Мной» зашкаливает, запрос на создание нового типа науки) и прочее. Чем-то напоминает Стахова (система счисления Бергмана и золотое сечение), Кравченко (теорема отсчетов Кравченко-Котельникова) и им подобных. И убедительная просьба — давайте про эту книгу не будем. Тем более, что на вопрос как считает Wolfram дельту в единице, эта книга не отвечает.

                                                                                        Обобщение факториала в область отрицательных действительных чисел;
                                                                                        Тут Вы не про гамму Адамара?

                                                                                        выражение конечной суммы sinc-функций через произведение двух гамма-функций
                                                                                        А можно ссылку?

                                                                                          0
                                                                                          Я думал, что настоящий математик знает, как раскладывается sinc в произведение двух гамма-функций. Пересказывать идеи, заложенные Стивеном Вольфрамом в Mathematica человеку, которому это не интересно — и тем более смысла нет. Ссылку на преобразование Хартли привёл в качестве демонстрации того, что занимаюсь ЦОС на практике, а не просто цитирую определения из учебника.
                                                                                            0
                                                                                            Мы люди пскопские, мы не «настоящий математик», поэтому и задаём дурацкие с Вашей точки зрения вопросы. Но даже мы, увидев δ(1)=0, пришли в некоторое недоумение. А Вы, похоже, просто не знаете, как Вольфрам такое посчитал.
                                                                                            Я, конечно, сам найду разложение синка на произведение гамм, если оно существует. Но и Вы тогда не обижайтесь, если буду отсылать Вас просто к автору, а не к конкретной книге и странице. И мне так проще, и Вам, наверно, быстрее прочитать всю книгу, а не конкретные места.
                                                                                            Вы, как показывает моя практика общения с Вами, на многие вопросы, даже заданные дважды, вообще не отвечаете. Отчего так? Неужто от нежелания общения с ненастоящим математиком?
                                                                                            К слову, профессионально цифровой обработкой сигналов (за исключением трёх лет в лихих 90-х) я занимаюсь с 1979 года и по сей день. Из них минимум 5 лет обработкой речи. И именно практикой. Ну и? Будем меряться п… и дальше?
                                                                                              0
                                                                                              Я пока не увидел никакого меряния пи… ми с Вашей стороны — обработкой речи можно заниматься просто удаляя шумы в sound forge или подключая вокодеры к микрофону, а обработкой сигналов — паяя фильтры по готовым схемам или рассчитывая их в готовых программах, включая matlab.
                                                                                                0
                                                                                                А ответы на мои Вам вопросы мне ожидать, или не стоит?
                                                                                                Самый главный из этой ветки
                                                                                                Вы принимаете мои слова «с частотой дискретизации Fs=2(f2-f1) можно без потерь дискретизировать квадратуры» (и только квадратуры, если f1 > 0), но никак не исходный сигнал? Или настаиваете на версии Navigator_Pirks?

                                                                                                  0
                                                                                                  Я же уже отвечал на этот вопрос — не принимаю, потому при приведении сигнала к аналитическому через преобразование Гильберта его действительные отсчёты не изменяются; и результат будет одинаковым вне зависимости от того, делать преобразование Гильберта до дискретизации или после.
                                                                                                    0
                                                                                                    Я, конечно, извиняюсь, но где там (в теореме V Котельникова) аналитический сигнал Вы увидели?
                                                                                                    Пусть x(t)=cos(omega0*t)+sin((omega0*t)). Тогда F1(t)=F2(t)=1. Отсчеты x(t) — явно не константы.
                                                                                                    Ну возьмите Вы F1(t)+jF2(t) — снесённый в 0 аналитический сигнал, умножьте на exp(jpi((f2+f1)t)=Re(exp(...))+jIm(exp(...)), получите (F1*Re-F2*Im) + j(F1*Im+F2*Re) — это Ваш аналитический сигнал. И чему равны отсчеты действительной части аналитического сигнала?
                                                                                                      0
                                                                                                      Скобку забыл, исправил.
                                                                                                        0
                                                                                                        Аналитический сигнал я упоминал по причине того, что ранее в ваших выкладках у вас отрицательная часть спектра на положительную накладывалась.

                                                                                                        А что вы этими выкладками хотели сказать — мне не совсем понятно. Может быть, что когда сигнал состоит из одной синусоиды, периоды дискретизации могут попадать на нули функции? Так такой случай не подпадает под теорему, поскольку верхняя и нижняя частоты не включены в диапазон, а значит, не могут совпадать.
                                                                                                          0
                                                                                                          Отрицательная часть спектра на положительную накладывалась из-за неправильно выбранной частоты дискретизации 1/2(f2-f1). А выкладками хотел сказать, что опять же из-за неправильно выбранной частоты дискретизации Вы теряете сигнал вплоть до его полной потери (в примере моменты взятия отсчетов в нули попали). И это не обязательно для чистой синусоиды. Это будет в приведённом мной примере: спектр функции есть два прямоугольника шириной f2-f1, с центрами в +(f2+f1)/2 и с разными знаками. И, чтобы Вас не смущали края прямоугольников, считайте, что реальный спектр на полкилогерца уже справа и слева. У такого сигнала имеется аналитическое выражение, его и привел.
                                                                                                            0
                                                                                                            В приведённом вами примере сумма синуса и косинуса с одной частотой — это даст тот же синус, только смещённый по фазе на 45° и увеличенный по амплитуде в корень из два.
                                                                                                              0
                                                                                                              И у него ненулевые квадратуры.
                                                                                                        0
                                                                                                        Вы квадратурами называете Re и Im аналитического сигнала? Это неправильно. Квадратуры — это функции F1(t) и F2(t) из теоремы IV Котельникова. На букварь ссылку дать?
                                                                                                          0
                                                                                                          Давайте:
                                                                                                          «Квадратура — общий термин, относящийся к сигналам, алгоритмам и устройствам обработки сигналов, означающий сдвиг фазы одного сигнала (квадратурного) относительно другого сигнала (опорного, синфазного) на 90°»
                                                                                                            0
                                                                                                            От точно говорил — в википедии всякую фигню пишут.
                                                                                                            А тут — вообще сверху одно, в середине совсем другое.
                                                                                                            Вот определение квадратур — формула (2), которым в ЦОС пользуются. Могу еще ссылок накидать.
                                                                                                              0
                                                                                                              Ну вот ещё 8 миллионов ссылок, утверждающих то же самое.
                                                                                                                0
                                                                                                                В первой же ссылке от Tektronix то, что я и говорю. А Вы почитайте её внимательно, а не только первый абзац, что там I и Q — квадратуры. Квадратуры — это произвольные функции, а комплексный сигнал «в квадратурах» — это и есть (I*cos+jQsin). Ну прочитайте же всю статью по первой ссылке до конца.
                                                                                                                  0
                                                                                                                  Квадратуры (обе ненулевые) есть и чисто действительного сигнала (его мнимая часть, как комплексного, равна 0). Уже привел такой — простой синус со сдвигом фазы, например, на pi/4.
                                                                                                                0
                                                                                                                Ссылка пропала — kprf.mipt.ru/attachments/article/54/Лекция_2_окт_2017.pdf.
                                                                                                                Формула (2) — определение квадратур. Раздел «Квадратурная дискретизация» — аккурат теорема V Котельникова в формулах и картинках.
                                                                                                                  0
                                                                                                                  Да, ваша формулировка точнее. Прошу прощения.
                                                                                                                    0
                                                                                                                    Для теоремы V Котельникова названия F1 и F2 не принципиальны. Принципиальна частота дискретизации. Теперь Вы согласились с
                                                                                                                    Вы принимаете мои слова «с частотой дискретизации Fs=2(f2-f1) можно без потерь дискретизировать квадратуры» (и только квадратуры, если f1 > 0), но никак не исходный сигнал? Или настаиваете на версии Navigator_Pirks?
                                                                                                                    или нет?
                                                                                                                      0
                                                                                                                      Да, я же уже ответил. Теперь Ваша очередь соглашаться со мной) Точнее даже не со мной, а с Вольфрамом. В справке он пишет, что «DiracDelta[x] returns 0 for all real numeric x other than 0».

                                                                                                                      Используя функцию FourierTransform легко увидеть, что:

                                                                                                                      FourierTransform[DiracDelta[x], x, w] = 1/Sqrt[2 Pi] (константа)
                                                                                                                      FourierTransform[DiracDelta[x+t], x, w] = E^(-I t w)/Sqrt[2 Pi] (комплексная синусоида)
                                                                                                                      FullSimplify[FourierTransform[DiracDelta[x+t] + DiracDelta[x-t], x, w]] = Sqrt[2/Pi] Cos[t w] (обычная синусоида)

                                                                                                                      Соответственно и наоборот, преобразования Фурье от синусоид дают дельта-функции в спектре:
                                                                                                                      FourierTransform[Cos[t x] + I Sin [t x], x, w] = Sqrt[2 Pi] DiracDelta[t+w]

                                                                                                                      Свёртка с дельта-функцией даёт то же самое:
                                                                                                                      Convolve[E^x, DiracDelta[x], x, w] = E^w

                                                                                                                      Свёртка с суммой дельта-функций даёт «размножение»:
                                                                                                                      Convolve[E^x, DiracDelta[x] + DiracDelta[x+1], x, w] = E^w + E^(1+w)

                                                                                                                      Операция умножения на гребёнку Дирака вполне легальна:
                                                                                                                      FourierTransform[DiracComb[x]*(Cos[x] + I Sin[x]), x, w] = DiracComb[(1+w)/(2 Pi)]/Sqrt[2 Pi]
                                                                                                                        0
                                                                                                                        Против почти всего, что Вы написали, у меня возражений и нет. Ссылку прочитал ранее, и что «DiracDelta[x] returns 0 for all real numeric x other than 0» видел. Но Вы упомянули «Calculation method», который я не нашел, поэтому попросил Вас дать на него ссылку. Если «Calculation method» и есть то, что по этой ссылке, то больше Вас им терзать не буду.
                                                                                                                        В последнем Вашем абзаце
                                                                                                                        Операция умножения на гребёнку Дирака вполне легальна:
                                                                                                                        FourierTransform[DiracComb[x]*(Cos[x] + I Sin[x]), x, w] = DiracComb[(1+w)/(2 Pi)]/Sqrt[2 Pi]
                                                                                                                        нет тут операции умножения дельты на что-то, а есть преобразование Фурье от произведения, которое есть интеграл (в данном случае функционал), он и легален.

                                                                                                                        Но есть возражения против значения δ(1)=0. Вольфрамом так считает, грубо говоря, по определению (и нет тут никаких символьных вычислений, да еще «независимо от определений»). И чтобы это понять, совсем не обязательно вникать в идеи из «A New Kind of Science», как Вы написали. В нестрогой математике так можно, в строгой нельзя. Я уже писал об этом. А чтобы в выкладках и рассуждениях не было каши из строгих и нестрогих математик, по-моему, лучше придерживаться строгой математики. По крайней мере, это не вызовет негатива со стороны «строгих математиков». В нестрогой с дельта-функцией можно обойтись просто — определив её (дельту), как предел какой-либо дельта-образующей последовательности, а не как слабый предел. Но, как я писал, это не будет дельта-функция Дирака, а будет совсем другая, и уже функция во всех смыслах. Чтобы их не путать читателю, её именем Дирака лучше не называть. Но при этом все используемые свойства такой функции надо будет по ходу доказывать заново, что бывает сложно.

                                                                                                                        Разложение синка на две гаммы я нашел. В своей практике гамму ни разу не пришлось использовать, поэтому это соотношение не знал. Но это соотношение, но никак не определение ни синка, ни гаммы, как Вы написали.

                                                                                                                        В математике вообще достаточно вещей, появившихся неочевидным или неестественным образом, а также определяемых по-разному с разных точек зрения.
                                                                                                                        По моему разумению, «неочевидным или неестественным образом» в математике появилось почти всё, кроме, быть может, счета натуральных чисел. Опять же, по-моему, для не математика достичь уровня абстракции математика практически не возможно, если не дано природой, или ну очень сложно. Отсюда и «неочевидным или неестественным образом» всё у них, у математиков.

                                                                                                                        Обобщение факториала в область отрицательных действительных чисел
                                                                                                                        Тут Вы не про гамму Адамара?
                                                                                                                        Можно на этот вопрос не отвечать, не интересно, если честно.

                                                                                                                        Про
                                                                                                                        «оконные обобщённые функции» у Владимирова
                                                                                                                        я так и не нашел. Если не трудно, намекните хоть, где искать. Просто очень интересно.

                                                                                                                        Да, чуть не забыл. Прочитал Вашу статью на хабре про амплитудную модуляцию. Есть чем дополнить. Если интересно, можно туда в комментарии заскочить.
                                                                                                                          0
                                                                                                                          Можно на этот вопрос не отвечать, не интересно, если честно.
                                                                                                                          Я не ответил на ваш вопрос, потому не понял, при чём тут гамма Адамара, если и обычная гамма определена на всей комплексной области — но это действительно не имеет особого значения. Ну и поскольку мы в интернете, а не на экзамене — у собеседника есть право не отвечать на вопрос, даже если это выглядит не совсем вежливо.

                                                                                                                          Про «оконные обобщённые функции» у Владимирова я так и не нашел.
                                                                                                                          И не найдёте — слово «обобщённые» я добавил самостоятельно. Я не совсем понял, являются оконные функции обобщёнными, раз рассматриваются в книге про обобщённые функции, но наличие или отсутствие слова «обобщённые» ничего не меняет точно так же, как наличие или отсутствие слов «оконные» и «шапочка».

                                                                                                                          А чтобы в выкладках и рассуждениях не было каши из строгих и нестрогих математик, по-моему, лучше придерживаться строгой математики.
                                                                                                                          Может быть. Но тогда и детям, прежде чем учить их складывать и умножать числа, нужно рассказывать про поля, кольца, и что такое единица. И не обманывать их говоря, что область значений синуса лежит от -1 до 1 или логарифм от отрицательного числа не существует.

                                                                                                                          Прочитал Вашу статью на хабре про амплитудную модуляцию. Есть чем дополнить. Если интересно, можно туда в комментарии заскочить.
                                                                                                                          Конечно пишите — вдруг я там ошибся где-нибудь. На хабре катастрофически не хватает людей, по-настоящему разбирающихся в обработке сигналов, для верификации контента.
                                                                                                                            0
                                                                                                                            Разложение синка на две гаммы я нашел. В своей практике гамму ни разу не пришлось использовать, поэтому это соотношение не знал. Но это соотношение, но никак не определение ни синка, ни гаммы, как Вы написали.
                                                                                                                            Если, допустим, никто ранее с sinc-ом не разу не встречался, то почему это не может быть определением, если в данном случает отношение sin(x)/x вытекает непосредственно из свойств самой гаммы-функции? А если учитывать, что в данном случае sinc выступает в роли интерполирующей функции для биномиальных коэффициентов — то можно и наоборот вывернуть. Кто решает, что первично, что вторично?
                                                                                                                              0
                                                                                                                              Первично, по-моему, определение синка через элементарные функции. А то так и синус через гамму можно ввести. Только никто так не делает. Из определения через элементарные функции и свойства его вытекают. Конечно, можно определить и через гамму. Но со свойствами будет беда. Да и, опять же по моему разумению, чем проще, тем лучше.
                                                                                                                                0
                                                                                                                                А то так и синус через гамму можно ввести. Только никто так не делает.
                                                                                                                                Кстати говоря, что-то подобное попадалось.
                                                                                                  0
                                                                                                  «Шапочку» у Владимирова я нашел, «оконные обобщённые функции» не нахожу.
                                                                                                  Что-то подсказывает, что Владимиров не «опускался» со своих высот до оконных функций (применительно к теории сигналов).
                                                                                                    0
                                                                                                    Тик я как раз и спросил, имеет ли отношение гамма Адамара к определению факториала от отрицательных чисел. Теперь понял, что не имеет. Собственно, это уже ответ на мой вопрос.

                                                                                                    Даже про просто оконные функции у Владимирова я что-то не припоминаю. Интересно, в какой его книге про обобщенные функции они встречаются. В его «Обобщенные функции в математической физике» оконные функции в предметном указателе отсутствуют.
                                                                                                    Если же Вы говорите просто про функции, ти их у него в книгах про обобщенные функции полным полно. Все тестовые у него просто функции.

                                                                                                    Может быть. Но тогда и детям,...
                                                                                                    Мы уже не дети, поэтому, повторюсь — по-моему, математическая строгость нужна. Без этого почти всегда понять что-либо бывает очень трудно.

                                                                                                    В разделе с Вашей статьёй я не авторизован, не пугайтесь, если к Вам придёт запрос на моё авторизацию:)
                                                                                                      0
                                                                                                      Мы уже не дети
                                                                                                      Да. Но я слышал, что даже профессиональные математики не всегда друг друга понимают. Что уж тогда о простых смертных говорить.
                                                                                                        0
                                                                                                        Ну тут-то как раз классика — человек создал своё систему понятий и определений, тереь его никто не понимает. Читать и принимать его систему понятий никто не берётся, тоже понятно — время, и совсем неочевидно, что это время будет потрачено с пользой.
                                                                                                        Ну а чтобы понимали, надо действовать в рамках общепринятого, даже если тошнит. Иначе — артель «Мартышкин труд».
                                                                                                        Определение синка через гамму, по-моему, из той же оперы.
                                                                        0
                                                                        Немного добавлю, для нашего примера (f1=1 кГц, f2=3 кГц) величины f2-f1 и (f1+f2)/2 равны. Так, по-моему, будет понятней.
                                                    0
                                                    Может быть интересным разложение в ряд Фурье при помощи метода БПФ. В качестве домашнего задания можно вывести соответствие между спектральными компонентами и коэффициентами ряда.

                                                    image
                                                      +1
                                                      Раз сюда зайдут люди, интересующиеся ЦОС, то не могу не оставить здесь рекомендацию книги (да простит меня автор), которая на мой взгляд наиболее проста в понимании и чтении именно новичками, при этом не теряя в полноте изложения: Стивен Смит: Цифровая обработка сигналов. Практическое руководство для инженеров и научных работников
                                                      Цена правда как у Айчифера почти, но она стоит своих денег абсолютно.
                                                        0
                                                        Она бесплатная, если с офсайта качать. Ещё, насколько я помню, она какое-то время была «живая»: дописывалась и правилась на сайте.
                                                        0

                                                        Начал смотреть ваши ноутбуки. Да, все, замечательно, много примеров, с графтками, с примерами кода, по-феншую.


                                                        Но… Честно… Расстроен. Вы не приводите решение не одной задачи. Как мне, человеку, который с дпф занимался примерно нисколько, начать все это добро юзать? Вот, например, есть задача про эпилептиков. Нужно дать предикт заблаговременно: будет припадок или нет. Как это добро мне поможет решить ее? Для меня оказывается куда проще нагенерить фичей и пихнуть это в бустинг, чем городить огород из преобразований, хаотично из применяя

                                                          0
                                                          Надо изучать матчасть. Ваша задача из совершенно другой области и конечно её надо решать по другому.
                                                          0
                                                          Дополнительные материалы для начинающих.

                                                          Курс видеоуроков на youtube: Основы ЦОС в Matlab (2018).

                                                          Можно скачать целиком (update.lst для возможной докачки):
                                                          youtube-dl.exe --download-archive update.lst --ignore-errors -f best -o "%%(title)s.%%(ext)s" https://www.youtube.com/playlist?list=PLmu_y3-DV2_kpP8oX_Uug0IbgH2T4hRPL
                                                            0
                                                            Александр, спасибо! Круто!!! Очень кстати!
                                                              +1
                                                              Огромное спасибо за то, что Вы делаете такие статьи и вкладываете в это свой труд!

                                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                              Самое читаемое