|
Как реализовать генератор квадратуры, Надо генерировать cos/sin одинаковой чатоты в DSP |
|
|
|
Dec 10 2014, 15:43
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 17-11-11
Пользователь №: 68 371

|
Всем привет! Вот есть задача - генерировать квадратурный сигнал для DDC. DDC сам реализован внутри DSP, поэтому надо алгоритм чтобы его можно было-бы реализвать потом на аасемблере. Используется плавующая точка. В идеальном случае ф-я должна выглядеть так: result = GenSinCos(float freq); где result это структура содержащая Cos и Sin, т.е. сигналы сдвинуты на 90 градусов. freq - 0...1. Ф-я вызывается для каждого отсчета. Начальная фаза в общем не очень важна. Главное чтобы 90 градусов было. По идее это даже не ф-я а макрос. Как-то так. Может кто уже встречал подобное? Или может уже есть готовые решения? Особенность в том, что наверняка есть решение которое не вызывает ф-ю sin и cos каждый раз.  Спасибо! PS. Табличный метод не предлагать!
Сообщение отредактировал Russky - Dec 10 2014, 15:56
|
|
|
|
|
 |
Ответов
|
Dec 16 2014, 11:33
|
Местный
  
Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778

|
Цитата(_pv @ Dec 16 2014, 14:05)  расползётся причем синус от косинуса по фазе тоже, так как ошибка будет копиться на каждом шаге. при раздельной генерации косинус можно получить просто как производную от синуса. Компоненты вектора на единичной окружности дают всегда согласованные sin/cos, как они могут расползтись по фазе между собой? Удержание на единичной окружности обеспечивает нормирование. Итого дрейф может быть только по общей фазе/частоте, ну и амплитуда может стабилизироваться с небольшим смещением нормы от единицы. Цитата То-же самое относится когда генератор должен работать на "бесконечном интервале времени". Тут шумы никуда не уйдут, и генератор просто "зазвенит". У меня не звенит на бесконечном времени. Да и частоту тоже перестраивать пробовал в реальном времени.
|
|
|
|
Сообщений в этой теме
Russky Как реализовать генератор квадратуры Dec 10 2014, 15:43 Lmx2315 QUOTE (Russky @ Dec 10 2014, 18:43) Особе... Dec 10 2014, 17:00 des00 Цитата(Russky @ Dec 10 2014, 22:43) Особе... Dec 10 2014, 17:43 Fat Robot Это прекрасно!! хороший синус. будет всегд... Dec 10 2014, 17:54  des00 Цитата(Fat Robot @ Dec 11 2014, 01:54) Эт... Dec 10 2014, 18:53  andyp Цитата(Fat Robot @ Dec 10 2014, 20:54) Чт... Dec 11 2014, 14:06 thermit c(n)=cos(2*pi*f0/sf*n)
s(n)=k*c(n)+c(n-1)-k*s(n-1... Dec 10 2014, 18:17 blackfin Цитата(Fat Robot @ Dec 10 2014, 21:54) Эт... Dec 10 2014, 18:29 ViKo Ну, конечно, CORDIC. Какие могут быть сомнения?... Dec 10 2014, 19:33 Fat Robot На вычислительных платформах, на которых цена унож... Dec 10 2014, 20:35 Russky Поясню. Есть методы генерирования синусоидально си... Dec 11 2014, 11:53 blackfin Цитата(Russky @ Dec 11 2014, 14:53) Но в ... Dec 11 2014, 12:48  Russky Цитата(blackfin @ Dec 11 2014, 16:48) Шко... Dec 11 2014, 18:34   thermit Цитата(Russky @ Dec 11 2014, 21:34) Спаси... Dec 11 2014, 20:59    blackfin Цитата(thermit @ Dec 11 2014, 23:59) кто/... Dec 12 2014, 02:22     thermit Цитата(blackfin @ Dec 12 2014, 05:22) А в... Dec 12 2014, 06:32    Fat Robot Как вы оцениваете, при таком подходе через сколько... Dec 12 2014, 10:35     thermit Цитата(Fat Robot @ Dec 12 2014, 14:35) Ка... Dec 12 2014, 11:11      andyp Цитата(thermit @ Dec 12 2014, 14:11) А дл... Dec 12 2014, 11:39      Russky Цитата(thermit @ Dec 12 2014, 15:11) Ника... Dec 15 2014, 14:07       Fat Robot грустный смайлик..
Цитата(Russky @ Dec 15 20... Dec 15 2014, 14:51       thermit Цитата(Russky @ Dec 15 2014, 18:07) Тогда... Dec 15 2014, 14:59       blackfin Цитата(Russky @ Dec 15 2014, 18:07) Т.е. ... Dec 15 2014, 15:12        Russky Цитата(blackfin @ Dec 15 2014, 19:12) И н... Dec 15 2014, 16:31 stealth-coder Цитата(Fat Robot @ Dec 11 2014, 00:35) На... Dec 11 2014, 20:30 Fat Robot Тут всё на веру, конечно. Не ставя под сомнение кв... Dec 11 2014, 20:53 stealth-coder Цитата(Fat Robot @ Dec 12 2014, 00:53) Ту... Dec 11 2014, 21:09 amaora Умножать на матрицу поворота и нормировать на кажд... Dec 15 2014, 16:42 _pv Цитата(amaora @ Dec 15 2014, 22:42) Умнож... Dec 15 2014, 17:57  thermit Цитата(_pv @ Dec 15 2014, 20:57) так ошиб... Dec 15 2014, 21:45   _pv Цитата(thermit @ Dec 16 2014, 03:45) гы, ... Dec 15 2014, 22:31    thermit Цитата(_pv @ Dec 16 2014, 01:31) чукча - ... Dec 15 2014, 22:50    Fat Robot Вы сами себе противоречите: Чтобы генератор был ... Dec 15 2014, 22:53     thermit Цитата(Fat Robot @ Dec 16 2014, 01:53) Вы... Dec 15 2014, 23:46      Fat Robot Я посчитал. Устойчивость действительного генератор... Dec 16 2014, 08:31       _pv Цитата(Fat Robot @ Dec 16 2014, 14:31) Хо... Dec 16 2014, 08:56        Fat Robot . Dec 16 2014, 09:30         _pv Цитата(Fat Robot @ Dec 16 2014, 15:30) Ва... Dec 16 2014, 09:49          Fat Robot Конечно. Даже в вашем простом примере в диапазоне ... Dec 16 2014, 11:55           _pv Цитата(Fat Robot @ Dec 16 2014, 17:55) Ко... Dec 16 2014, 12:13     _pv Цитата(Fat Robot @ Dec 16 2014, 04:53) Вы... Dec 16 2014, 08:11      thermit Цитата(_pv @ Dec 16 2014, 12:11) с целочи... Dec 16 2014, 11:36       _pv Цитата(thermit @ Dec 16 2014, 17:36) а он... Dec 16 2014, 11:55        thermit Цитата(_pv @ Dec 16 2014, 15:55) а что же... Dec 16 2014, 13:05         _pv Цитата(thermit @ Dec 16 2014, 19:05) Да. ... Dec 16 2014, 13:20 Russky Что-то мы скатились на обсуждение ерунды.
Ситуаци... Dec 16 2014, 11:08 _pv Цитата(Russky @ Dec 16 2014, 17:08) В общ... Dec 16 2014, 11:25  Russky Цитата(_pv @ Dec 16 2014, 15:25) генерато... Dec 16 2014, 12:22   andyp Цитата(Russky @ Dec 16 2014, 15:22) Нет. ... Dec 16 2014, 16:12 mihalevski Цитата(Russky @ Dec 10 2014, 22:43) Всем ... Jan 6 2015, 14:18
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|