Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: stm32 синус и частота дискретизации синуса .

Пн мар 11, 2024 04:35:32

Да простят меня армоводы, есть

Re: stm32 синус и частота дискретизации синуса .

Пн мар 11, 2024 14:42:13

Ну и совсем не обязательно частота дискретизации должна совпадать с частотой ШИМа. ... и быть вообще не когерентна ШИМу.

Это как?

Re: stm32 синус и частота дискретизации синуса .

Пн мар 11, 2024 17:35:07

Я это не могу прокоментировать.Практика покажет.

Re: stm32 синус и частота дискретизации синуса .

Пн мар 11, 2024 19:51:35

pixar писал(а):Это как?
Хоть КРАМ и писал пост про это, но попробую разжевать точнее. Возьмем аудио дорожку и откроем в редакторе к примеру синус 50 герц увидим это
СпойлерИзображение
Как видим изменение амплитуды сигнала от -n значений до + n значений. Теперь берем и масштабируем синусойду до максимального значения получим это
СпойлерИзображение
Как видим на масштабируемой синусойде появились точки с равным промежутком во времени. Это и есть дискретизация сигнала. Если быть точнее то 44100 герц, по стандарту. То есть за одну секунду пролетает 44100 точек. Если брать шим то там картина будет такая
СпойлерИзображение
Черная полоса это текущая скважность шим, является аналогией точки в синусойде к примеру 20-ая точка. 21-ая точка в синусойде это будет шим которая отображена пунктиром. И так далее. Чем больше скважность шим тем выше амплитуда. Ну или наоборот. Частота шим при этом не меняется. Меняется только скважность шим. Таким образом можно менять скважность шим с частотой дискретизации 44100 герц, как у аудио дорожки. И на выходе через RC-фильтр мы получим синусойду.

Добавлено after 23 minutes 42 seconds:
И еще кое что. Каждая точка в представленой картинке имеет некоторое значение к примеру 100, следущая точка будет иметь значение около 200. (В тонкости вдаваться не буду потому как значения там будут изменяться по sin(x)) Так же и с шимом с начала скважность было 100 следущее значение будет 200.

Re: stm32 синус и частота дискретизации синуса .

Пн мар 11, 2024 21:19:16

Ну и совсем не обязательно частота дискретизации должна совпадать с частотой ШИМа. ... и быть вообще не когерентна ШИМу.

Это как?

Немного добавлю.
Сам по себе ШИМ вместе с ФНЧ вырезающим спектр ШИМа - это ЦАП. Дискретизация при синтезе сигнала в ЦАП может быть любой. И не важно как устроен сам ЦАП - R2R матрица или ШИМ с ФНЧ.
Таким образом, в спектре синтезируемого с помощью ШИМ сигнала есть два независимых спектра - спектр ШИМа и спектр дискретизации (зеркальные спектры в высших зонах Найквиста из-за ступенчатой формы на выходе ЦАПа).Если частота дискретизации заметно ниже частоты ШИМа, то один ФНЧ на выходе выполняющий функцию антиалиасинга (выделения первой зоны Найквиста - до половины частоты дискретизации) так же эффективно вырежет и несущую самого ШИМа.
Из этого следует, что количество периодов ШИМа на один отсчет может быть любым, даже дробным. Так же точно, как может быть дробным количество отсчетов при DDS - никто не мешает синтезировать сигнал с плывущей фазой отсчетов от периода к периоду синтезируемого сигнала.
Так же работает УНЧ в режиме D. Сложный спектр звукового сигнала модулирует скважность ШИМа с фиксированной частотой.

Re: stm32 синус и частота дискретизации синуса .

Пт мар 15, 2024 12:21:23

При постоянной частоте ШИМ, если частота ШИМ не совпадает с частотой дискретизации, то , фактически, имеем передискретизацию на частоту ШИМ. В итоге, частота дискретизации = частоте ШИМ.
Если ШИМ выше исходной частоты выборок сигнала и ШИМ с постоянной длительностью импульса и переменной частотой, то хз как там все назвать. Но частота выборок по любому будет равна частоте ШИМ.
Вопрос был об этом.

Re: stm32 синус и частота дискретизации синуса .

Пт мар 15, 2024 12:27:56

ШИМ, где ширина импульса постоянная, но частота разная это ЧИМ. Частотно-импульсная модуляция. И даже существует такой прикол, как ЧИМом с шириной импульса Х нарисовать нужную форму сигнала, а той самой шириной Х регулировать уже мощность.

Re: stm32 синус и частота дискретизации синуса .

Пт мар 15, 2024 12:37:20

При постоянной частоте ШИМ, если частота ШИМ не совпадает с частотой дискретизации, то , фактически, имеем передискретизацию на частоту ШИМ. В итоге, частота дискретизации = частоте ШИМ.

НЕТ. Частота дисретизации может совпадать с ШИМ, а может не совпадать и в УНЧ D-типа частота шима нынче шкалит выше 1 МГц, чтобы минимизировать размеры фильтров на выходе.

Re: stm32 синус и частота дискретизации синуса .

Пт мар 22, 2024 22:19:34

У меня возник такой вопрос .Если можно построить синус с помощью шим сигнала а как вычислить частоту дискретизации синусоидального(ШИМ) сигнала по какой формуле? что на что умножать что на что делить.В нете как по stm32 так и по avr нет чёткой информации.


Ну частота ШИМ, это, грубо говоря, тоже самое, что частота дискретизации выходного сигнала. Ну или точнее можно выразиться, что ШИМ - это специальный нелинейный экстраполятор дискретного сигнала с такой частотой дискретизации. С таком случае, на вскидку, все побочные (вредные) частоты спектра самого ШИМ импульса (внутри одной дискреты) будет располагаться на самой частоте дискретизации и выше. Назовём эту частоту дискретизации как f_d, В тоже время нам нужно генерировать полезный сигнал на частоте f_s. Отсюда следует, что необходимо, чтобы f_d > f_s, чтобы принципиально можно было отфильтровать побочный спектр ШИМ. Вопрос только стоит в том, как сильно их нужно подавить. Линейный фильтр НЧ подавляет частоту с крутизной 20 дБ/дек на каждый порядок N этого фильтра (N - попросту количество конденсаторов и индуктивностей в его конструкции). Если мы настроим фильтр НЧ ровно на частоту выходного сигнала f_s, то тогда первая частота побочного спектра f_d подавится на k_d = 20 дБ * N * log10(f_d/f_s), где k_d - уровень подавления первой частоты побочного спектра ШИМ. Отсюда находим
f_d = f_s * 10^(k_d / (20 дБ * N))

Т.е. если необходимо сильно задавить ШИМ, например, на 100 дБ (на аудиофильском уровне), то для генерируемой синусоиды частотой 50 Гц и использовании фильтра НЧ 2-го порядка (LC) потребуется частота ШИМ f_d = 50*10^(100/(20*2)) = 15.8 кГц.

А вот частота таймера f_t для этого ШИМ зависит уже от условной дискретности выходного сигнала по уровню. Если генерируемый сигнал кодируется m количеством бит, то имеется 2^m уровней и, следовательно, столько же делений одного импульса ШИМ сигнала. Значит во столько же раз необходимо умножить и частоту f_d, чтобы определить частоту таймера для генерации ШИМ сигнала:
f_t = f_d * 2^m.

Таким образом для разрядности 8 бит частота таймера будет равна 15,8 кГц*2^8 = 4 МГц.
Последний раз редактировалось IfoR Пт мар 22, 2024 22:32:09, всего редактировалось 1 раз.

Re: stm32 синус и частота дискретизации синуса .

Пт мар 22, 2024 22:27:44

IfoR писал(а): f_d > f_s

На первый взгляд звучит вполне логично, но Котельников нашёптывает, что таки Fd > 2*Fs.

Re: stm32 синус и частота дискретизации синуса .

Пт мар 22, 2024 22:41:01

Ну тут я рассмотрел необходимые требования только с точки зрения самого ШИМ. Конечно, нельзя забывать, что действительный сигнал всегда имеет зеркальный комплексносопряженный спектр в отрицательной части частот, что при дискретизации накладывается на положительную область частот 0<f<f_d/2, если частота генерируемого сигнала будет больше половины частоты f_d.
Если это сильно важно, представим, что мы генерируем комплексую синусоиду (т.е. два сигнала, сдвинутых на 90 градусов) и фильтр у нас полосовой комплексный... В таком случае мы можем генерировать сигнал вплоть до f_d без наложения в обход запрета Котельникова. :)
Ну а для обычного действительного сигнала нужно просто учесть это, как дополнительное условие.

Re: stm32 синус и частота дискретизации синуса .

Сб мар 23, 2024 10:14:20

Таким образом для разрядности 8 бит частота таймера будет равна 15,8 кГц*2^8 = 4 МГц.

С какого перепуга частота дискретизации присутствует в расчете частоты ШИМа? Причем тут ШИМ? :facepalm:
Я, например, включаю ШИМ с произвольной частотой, которая заметно выше частоты дискретизации и только. Частоту дискретизации формирую посредством NCO, то есть DDS. И этой частотой через DMA подгружаю таблицу сигнала в ШИМ.
Никакой связи частоты ШИМ и частоты дискретизации нет от слова совсем.
Если это сильно важно, представим, что мы генерируем комплексую синусоиду (т.е. два сигнала, сдвинутых на 90 градусов) и фильтр у нас полосовой комплексный... В таком случае мы можем генерировать сигнал вплоть до f_d без наложения в обход запрета Котельникова.

С этого места поподробнее, пожалуйста...
И не забудьте объяснить каким образом ваша квадратурная пара станет реальным сигналом.
Так же объясните почтенной публике, чем отличается квадратурный сигнал при ФИЗИЧЕСКОМ СИНТЕЗЕ от одномерного, но с удвоенной частотой дискретизации?
:tea:
Ну и объясните малограмотному, какое отношение отрицательный спектр имеет к высшим зонам Найквиста... Мы же говорили именно о них, когда рассматривали пересечение спектров при низкой частоте дискретизации.
А так, да, можно выделить полосовым фильтром любую высшую зону и получить даунсемплинг сигнала, когда частота дискретизации много ниже частоты сигнала. Это все безобразие гораздо понятнее называется СТРОБОСКОПИЧЕСКИМ преобразованием.

Re: stm32 синус и частота дискретизации синуса .

Сб мар 23, 2024 10:49:25

Никакой связи частоты ШИМ и частоты дискретизации нет от слова совсем.

Использование ШИМ в качестве ЦАП - это передискретизация исходного потока на частоту ШИМ.

Re: stm32 синус и частота дискретизации синуса .

Сб мар 23, 2024 11:34:13

это передискретизация исходного потока на частоту ШИМ.

И что из этого следует? Как это связано с поставленными мной вопросами?
Впрочем, даже ваше утверждение по сути ложно. Частота дискретизации при модуляции ШИМа не меняется. Нет интерполяции, которая необходима при передискретизации.
Это все равно как говорить о современных быстрых ЦАПах в МК - типа частота дискретизации не равна частоте отсчетов входного сигнала, а равна частоте накачки этого ЦАПа. Что очевидно не так.
Спектр Найквиста определится не ШИМом/ЦАПом, а входной дискретизацией. А спектр ШИМ будет присутствовать сам по себе.

Re: stm32 синус и частота дискретизации синуса .

Сб мар 23, 2024 12:13:46

Спектр Найквиста определится не ШИМом/ЦАПом, а входной дискретизацией.

Смотрели анализатором спектра?

Re: stm32 синус и частота дискретизации синуса .

Сб мар 23, 2024 12:21:17

Смотрели анализатором спектра?

Конечно смотрел. Да и чего там смотреть, если очевидно и так. Берем частоту дискретизации 50 Гц синуса равной 200 Гц. Получаем характерный ступенчатый сигнал. Далее модулируем им ШИМ с частотой 1 МГц. И получаем тот же самый ступенчатый сигнал внизу спектра, но со спектром ШИМа на частоте ШИМа. Можете сами посмотреть в LTspice, например. ФНЧ со срезом ниже спектра ШИМа даст исходный ступенчатый сигнал. Не синус, а ступенчатый. То есть спектр Найквиста с исходной частотой дискретизации был и остался.

Re: stm32 синус и частота дискретизации синуса .

Сб мар 23, 2024 14:27:11

КРАМ, мне тут придётся много чего объяснять на каждый такой вопрос и не хотелось в это лезть. Но если уж спрашиваешь, давай по порядку.

С какого перепуга частота дискретизации присутствует в расчете частоты ШИМа? Причем тут ШИМ? :facepalm:

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

У получившегося экстраполированного сигнала частота следования "переломов" совпадает с частотой дискретизации исходно сигнала.
Точно так же я и говорю, что ШИМ - это просто хитрый экстраполятор, экстраполирующий дискретный сигнал следующим образом:
Изображение
Здесь частота следования передних фронт импульсов ШИМ совпадает с частотой дискретизации.
Отсюда в моих рассуждениях следует прямая связь с частотой дискретизации сигнала.

Я, например, включаю ШИМ с произвольной частотой, которая заметно выше частоты дискретизации и только. Частоту дискретизации формирую посредством NCO, то есть DDS. И этой частотой через DMA подгружаю таблицу сигнала в ШИМ.
Никакой связи частоты ШИМ и частоты дискретизации нет от слова совсем.

Ну ты сам себе-то не противоречь. Сначала говоришь, что берёшь частоту ШИМ более частоты дискретизации, а потом говоришь, что никакой связи нет.
Если ты имеешь ввиду, что можно просто взять максимально возможную частоту ШИМ и не париться с частотами дискретизации (отсюда типа "тут связи нет"), то это никак не противоречит моим прикидкам. Я же приводил расчёты минимально требуемой частоты ШИМ, удовлетворяющий нужному качеству сигнала.

С этого места поподробнее, пожалуйста...

Ну... это можно показать наглядно. Для простоты рассмотрим сигнал с частотой дискретизации 1 Гц. Вот так будет выглядеть дискретизированный синусоидальный сигнал с частотой 1/10 Гц
Изображение
Ожидаемо, всё выглядит неплохо. Теперь взглянем на сигнал с частотой 1/4 Гц
Изображение
Ну... криво, но разобрать можно. А теперь сравним этот сигнал с сигналом на частоте более 1/2 Гц, а т.е. 3/4 Гц:
Изображение
Оп! Оказывается, дискретизированный сигнал 3/4 Гц никак неотличим от сигнала с частотой 1/4 Гц. Об этом и говорит теорема Котельникова. Мы не можем принципиально достоверно восстановить дискретный сигнал в непрерывный, если при примем, что спектр оригинального сигнал не ограничен частотой 1/2 Гц.
Ну а теперь рассмотрим сигнал на той же самой частоте, но комплексный. Физически это будет просто двухканальный сигнал. На частоте 1/2 Гц он будет выглядеть так:
Изображение
А сигнал частотой 3/4 Гц так:
Изображение
И... Чудо! Хотя и "действительный" канал на обоих частотах выглядит абсолютно одинаково, но второй "мнимый" позволяет определить что это за частота: 1/4 Гц или 3/4 Гц. Соответственно, применив на этом сигнале комплексный фильтр (а физически это фильтр с перекрёстными связями), то мы можем однозначно восстановить оригинальный сигнал вплоть до частоты дискретизации.

С другой же стороны можно рассмотреть этот процесс на частотном плане.
Оригинальная действительная синусоида (рассмотрим с частотой 0.25 Гц) формально является в действительности суммой двух комплексносопряжённых комплексных синусоид. Таким образом их сумма в "мнимом" канале обнуляется, а в "действительном" образуется просто синусоида. Амплитудный спектр такого сигнала имеет простой вид двух дельта-функций:
Изображение
Дискретизация этого сигнала в математическом смысле - это перемножение оригинально сигнала на решетчатую функцию (т.к. сумму дельта-функций, сдвинутых на период дискретизации сигнала T). Из свойств преобразования Фурье известно, что спектр сигнала, получаемого произведением двух сигналов, представляет собой свертку их спектров. Спектр решетчатой функции - тоже решётчатая функция, но с периодом следования дельта-импульсов f_s = 1/T. Таким образом, спектр дискретизированной синусоиды (и любого другого сигнала) есть тот же самый спектр, но продублированный (суммированием) бесконечное количество раз через период f_d:
Изображение
Здесь я для наглядности, окрасил красным положительную частоту спектра оригинальной синусоида, а синим - отрицательную частоту. Серым - оригинальный спектр решетчатой функции. Видно, что здесь мы получили целую россыпь дельта-функций - попросту гармоник. Однако, оригинальный сигнал можно восстановить, если мы применим идеальный НЧ фильтр с частотой 1/2 Гц, спектр которого указан зелёной линией. Тогда все гармоники срежутся и из дискретизированного сигнала восстановится оригинальная непрерывная синусоида.
Если же мы возьмём сигнал с частотой 3/4 Гц, то получится следующая картина.
Изображение
Здесь, чтобы не запутаться, сплошной линией я обозначил оригинальный спектр исходной синусоиды. Всё остальное - условно гармоники. Если мы аккуратно сравним этот спектр со спектром сигнала частотой 1/4 Гц, то прийдём к выводу, что спектрально это абсолютно тот же самый сигнал! Единственный способ их различить - это введённые мною цветовые обозначения. То же самое мы наблюдали и на временном плане - эти сигналы неотличимы при их дискретизации. Это ещё раз подтверждает теорему Котельникова для действительных сигналов.

А вот теперь, если мы возьмём комплексную синусоиду частотой 1/4 Гц, то её спектр будет просто
Изображение
При дискретизации получим:
Изображение
Зелёным обозначен спектр комплексного полосового фильтра, которым дискретизированный сигнал можно восстановить. Для сигнала 0.75 Гц получим следующий спектр
Изображение
Никаких наложений зеркальных составляющих нет! Сигнал с частотой 0,75 Гц точно также можно восстановить с помощью точно такого же фильтра. По сути это же мы и наблюдали на временном плане - эти сигналы отличимы друг от друга.
Как дополнение, эти иллюстрации показываются также почему при AM модуляции действительного сигнала образуется две боковых полосы спектра слева и справа от частоты несущий. Амплитудная модуляция, в математическом смысле, это обычный частотный перенос спектра модулируемого сигнала на частоту несущей, с добавкой самой частоты несущей. А т.к. в действительном сигнале есть как положительные, так и отрицательные частоты, то мы и получаем две боковые полосы.

И не забудьте объяснить каким образом ваша квадратурная пара станет реальным сигналом.

Он состоит из целых двух реальных сигналов. Просто возьми любой из них.

Так же объясните почтенной публике, чем отличается квадратурный сигнал при ФИЗИЧЕСКОМ СИНТЕЗЕ от одномерного, но с удвоенной частотой дискретизации?
:tea:

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


Ну и объясните малограмотному, какое отношение отрицательный спектр имеет к высшим зонам Найквиста... Мы же говорили именно о них, когда рассматривали пересечение спектров при низкой частоте дискретизации.
А так, да, можно выделить полосовым фильтром любую высшую зону и получить даунсемплинг сигнала, когда частота дискретизации много ниже частоты сигнала. Это все безобразие гораздо понятнее называется СТРОБОСКОПИЧЕСКИМ преобразованием.

Как я понимаю, ты меня не правильно понял. Действительно, понимая свойства дискретизации сигналов, можно провернуть трюк, с оцифровкой узкополосого сигнала на формально неограниченной частоте с применением низкочастотного АЦП (при условии "мгновенного замораживания" сигнала в начале периода преобразования), оцифровывая не напрямую его спектр, а его N-гармоники дискретизации. Но я вообще не про это и этой темы я здесь касался лишь вскользь, т.к. её невозможно не коснуться. :)

Re: stm32 синус и частота дискретизации синуса .

Сб мар 23, 2024 14:53:03

Здесь частота следования передних фронт импульсов ШИМ совпадает с частотой дискретизации.
Отсюда в моих рассуждениях следует прямая связь с частотой дискретизации сигнала.
.....
Я же приводил расчёты минимально требуемой частоты ШИМ, удовлетворяющий нужному качеству сигнала.

Странно, вы ни словом не обмолвились про "минимальное требование" и привели РАВЕНСТВО.
Если бы вы привели НЕравенство с нужным знаком, то и разговора никакого не состоялось.
В итоге связи ШИМа и исходной дискретизации, кроме "минимального значения" никакой нет. И по факту никто никогда не прибегает к равенству и когерентности, ибо спектр исходного сигнала, как правило, не обладает монохромностью. А ШИМ выбирают сильно выше частоты дискретизации, дабы обеспечить антиалиасингом одновременное подавление ШИМа.
В этой связи обсуждать интерполяцию ШИМом - никакого смысла нет. Натянуть сову на глобус всегда можно. Но вряд ли интересно. Вы исходно задали когерентный дискретизации ШИМ и пытаетесь на этой ЛОЖНОЙ основе показать что либо. А это просто частный случай и он ничего не интерполирует, ибо точки отсчетов тупо совпадают.
По остальным моим вопросам вы могли и не отвечать, я в курсе теории сигналов.... :)
Я понял вашу позицию еще на этапе чтения комментируемого мной вашего сообщения. Вопросы были риторические и вы на них НЕ ответили.

Re: stm32 синус и частота дискретизации синуса .

Сб мар 23, 2024 14:58:30

КРАМ, скажи, тебе делать что ли нечего?

Re: stm32 синус и частота дискретизации синуса .

Сб мар 23, 2024 15:03:21

Не понял вопроса. Действительный сигнал в физическом смысле - это тот же самый комплексный сигнал, но один из каналов которого ("мнимый") всегда равен нулю.

Равенство нулю imaginary говорит лишь о том, что фаза целевого синуса относительно частоты дискретизации равна 90 или 270 градусов. Еще раз. Это глубоко синтетический случай.

Добавлено after 1 minute 13 seconds:
тебе делать что ли нечего?

Я не люблю неточности, которые ПРИНЦИПИАЛЬНО запутывают слушателя.

ЗЫ. Молодой человек, а вам не кажется, что двухкратная разница в возрасте кагбэ намекаэ на определенную форму обращения?
Ответить