|
FSK модулятор |
|
|
|
Feb 27 2016, 10:34
|
Группа: Участник
Сообщений: 7
Регистрация: 26-02-16
Пользователь №: 90 625

|
Добрый день! Нужно сделать FSK модулятор
Есть 2 таблицы IQ составляющих для синуса, соответственно для частоты Fmark(для единичного бита) и Fspace(для 0-го бита) Частота приема входных данных Fin и частота оцифровки Fd Правильно ли я понимаю, что в выходной буфер, размер которого в N=(Fd/Fin) больше входного, кладем N отсчетов из соответствующей таблицы синусов для каждого входного символа?
Если да, то как быть с разрывом фазы модулирующего синуса при смене частоты с Fmark на Fspace и ноборот?
Сообщение отредактировал rimidalv - Feb 27 2016, 10:39
|
|
|
|
|
 |
Ответов
|
Mar 2 2016, 09:10
|

Профессионал
    
Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815

|
Цитата(blackfin @ Mar 1 2016, 12:49)  Весьма странное определение ортогональности. Полагаю, опять что-то проприетарное.. В ортогональность векторов в Гильбертовом пространстве я еще готов поверить, но чтобы два действительных числа 29 Гц и 31 Гц были ортогональны, это что-то уму нерастяжимое..  Опять по словарю буквы сверяете? Орфография, запятые))) Указанный метод - прямое формирование с амплитудой и фазой равными константе. Меняется только частота. Чем меньше шаг частот, тем длиннее выборка и/или чаще передискретизация требуется. Цитата(Fat Robot @ Mar 1 2016, 12:49)  Для каждого символа memcpy или dma могут быть проще, чем операции с указателями при копировании каждого отсчета. Если это МП или МК, то, возможно. Хотя, сомнительно, что можно переключать контроллер ПДП быстрее, чем менять шаг в регистре. Для этого он должен поддерживать блочную выборку переменного размера аппаратно. И указатель, все равно, переключать придется. Хотя и реже. Также, у ТI процессоры поддерживают автоматическое кольцевание указателей внутри инструкции. В результате, все упирается в шину, а не архитектуру, а память и код экономятся, хорошо ложаться в КЭШ, если он есть. А вот на ПЛИС лучше счетчиком играться. Без вариантов.
Сообщение отредактировал Corner - Mar 2 2016, 09:20
|
|
|
|
|
Mar 2 2016, 10:07
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(Corner @ Mar 2 2016, 12:10)  Для этого он должен поддерживать блочную выборку переменного размера аппаратно. Рекомендую ознакомиться: Scatter/gather through linked list operation. Цитата(Corner @ Mar 2 2016, 12:10)  А вот на ПЛИС лучше счетчиком играться. Без вариантов. Есть, есть варианты! Просто они вам не известны..
|
|
|
|
|
Mar 2 2016, 15:25
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(_4afc_ @ Mar 2 2016, 18:37)  Баловался несколько лет назад частотной манипуляцией через таблицы. Для ПЛИС можно вообще обойтись без таблиц, если есть лишний умножитель и есть запас по частоте клока. Для этого можно воспользоваться формулами рекурсивного вычисления sin/cos: sin 0 = 0; sin 1 = amp*sin(dt); ... sin n+2 = 2*cos(w*dt)*sin n+1 - sin n. Точно также: cos 0 = amp; cos 1 = amp*cos(dt); ... cos n+2 = 2*cos(w*dt)*cos n+1 - cos n. Где: amp - амплитуда sin/cos; w - частота sin/cos; dt - величина, обратная частоте дискретизации: dt = 1/Fd; amp*sin(dt) и amp*cos(dt) - две константы, задающие начальные условия рекурсии и cos(w*dt) - константа, задающая частоту sin/cos. Ошибка вычисления синуса/косинуса для больших "n" зависит от разрядности умножителя и в процессе рекурсии, ессно, накапливается, но для FSK это обычно не проблема, так как отношение частоты дискретизации Fd к символьной частоте Fs обычно невелико (то есть, Fd/Fs < 1000) ..
|
|
|
|
Сообщений в этой теме
rimidalv FSK модулятор Feb 27 2016, 10:34 Fat Robot Если у вас нет какого-то сглаживания модулирующих ... Feb 27 2016, 13:09 rimidalv Да, понятно, Большое спасибо, к концу дня приходит... Feb 27 2016, 16:21        Fat Robot Уточнение:
Накапливание ошибки sin/cos будет соотв... Mar 2 2016, 16:21      Corner Цитата(blackfin)Есть, есть варианты! Просто он... Mar 3 2016, 20:10 Fat Robot Для каждого символа memcpy или dma могут быть прощ... Mar 1 2016, 09:49
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|