|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 38)
|
May 27 2015, 10:07
|
Местный
  
Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312

|
Цитата(Artunique @ May 27 2015, 11:24)  Что на вход каждого фильтра, что на выход, можно загонять сигнал любой разрядности. Как ее выбирать? исходя из чего? Динамический диапазон вроде обеспечил требуемый, а вот с избирательностью по соседнему каналу никак не получается. Получаемые значения очень сильно зависят от разрядности. Как ее грамотно выбрать? При учете того, что с АЦП идет 14 бит и на выходе FIR фильтра нужна конкретная разрядность 24 бита. Заранее спасибо. Разрядность сигнала на вход я выбирал исходя из разрядности АЦП, отбросив шумящие младшие разряды. В моём случае из 14 я брал только 8. Коэффициенты фильтра рассчитал в матлабе и далее округлил до целого значения в 16ти или 32 разрядной сетке. На выходе округлил значения до требуемой разрядности. Все действия проверял матлабом.
|
|
|
|
|
May 27 2015, 10:16
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820

|
Цитата(farbius @ May 27 2015, 13:07)  Разрядность сигнала на вход я выбирал исходя из разрядности АЦП, отбросив шумящие младшие разряды. В моём случае из 14 я брал только 8. Коэффициенты фильтра рассчитал в матлабе и далее округлил до целого значения в 16ти или 32 разрядной сетке. На выходе округлил значения до требуемой разрядности. Все действия проверял матлабом. Я так понимаю, что за избирательность отвечает именно FIR фильтр?
|
|
|
|
|
May 27 2015, 10:33
|
Местный
  
Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312

|
Цитата(Artunique @ May 27 2015, 13:16)  Я так понимаю, что за избирательность отвечает именно FIR фильтр? После АЦП фильтр. Его частотная характеристика зависит от разрядности при округлении.
|
|
|
|
|
May 27 2015, 11:49
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820

|
Цитата(des00 @ May 27 2015, 13:39)  считайте по эффектиной разрядности = разрядность на входе фильтра + log2(полоса на входе/полоса на выходе) и учтите требуемый вам динамический диапазон. Ну и сам фильтр, для подавления соседнего канала должен быть соотвествующим образом посчитан. Ну и в фильтре промежуточных округлений быть не должно. Спасибо! А правила округления есть какие-либо? у меня на выходе FIR мегафункция предлагает 50 бит, мне нужно только 24.
|
|
|
|
|
May 29 2015, 08:01
|
Знающий
   
Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866

|
Цитата Везде использовать математическое округление, это сильно влияет на качество. Его нужно ставить там, где это нужно. Отсутствие математического округления порождает постоянку. Если схема игнорирует постоянку, то округлять не требуется. Также это критично при малых разрядностях, когда постоянка в 1 бит сопоставима с уровнем сигнала. Цитата Наибольшее влияние на качество оказывает разрядность первых CIC-ов, чем ближе к выходу, тем менее критично. На каждой ступени обработки необходимая разрядность считается, как подсказывает des00 по формуле разрядность на входе фильтра + log2(полоса на входе/полоса на выходе). Независимо от структуры фильтра. Просто у первых CICов понижение частоты самое значительное, т.к. они как правило очень узкополосные (за тем их и ставят), поэтому на этой стадии влияние роста разрядности самое критическое. Цитата Если есть возможность - делайте разрядность по максимуму, на выходе ставите окно нужного размера (обязательно с округлением) - получаете цифровое АРУ. Использование максимальной разрядности актуально только в процессорах, т.к. они работают с фиксированной разрядностью в принципе. В ПЛИС такой подход затратен. Нужно разрядность ставить ровно столько, сколько нужно для обеспечения требуемого чутья в приёмнике или точности в передатчике.
|
|
|
|
|
May 29 2015, 17:26
|
Частый гость
 
Группа: Участник
Сообщений: 112
Регистрация: 27-12-08
Пользователь №: 42 786

|
Цитата(serjj @ May 29 2015, 11:01)  Его нужно ставить там, где это нужно. Отсутствие математического округления порождает постоянку. Если схема игнорирует постоянку, то округлять не требуется. Также это критично при малых разрядностях, когда постоянка в 1 бит сопоставима с уровнем сигнала. Отбрасываемые разряды тоже содержат информацию, при простом обрезании она теряется, при округлении - частично сохраняется. Цитата(serjj @ May 29 2015, 11:01)  На каждой ступени обработки необходимая разрядность считается, как подсказывает des00 по формуле разрядность на входе фильтра + log2(полоса на входе/полоса на выходе). Независимо от структуры фильтра. Просто у первых CICов понижение частоты самое значительное, т.к. они как правило очень узкополосные (за тем их и ставят), поэтому на этой стадии влияние роста разрядности самое критическое. Формула корректная, но если пользоваться готовыми реализациями от Xilinx, например, то нельзя выставить произвольную разрядность, в таком случае экономия выходит боком. Цитата(serjj @ May 29 2015, 11:01)  Использование максимальной разрядности актуально только в процессорах, т.к. они работают с фиксированной разрядностью в принципе. В ПЛИС такой подход затратен. Нужно разрядность ставить ровно столько, сколько нужно для обеспечения требуемого чутья в приёмнике или точности в передатчике. В теории - да, в жизни - если в ПЛИСе есть место, почему бы не добавить системе помехоустойчивости?
|
|
|
|
|
Jun 1 2015, 06:24
|
Знающий
   
Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866

|
Цитата Я бы добавил: на NCO тоже надо заложить увеличение разрядности не менее чем на 2. С чем это связано? В моём понимание на смесителе (вы же имеете в виду не сам NCO а смеситель?) динамический диапазон никак не изменяется, т.к. сигнал от NCO идёт в полную шкалу, соответственно, если у нас с NCO сигнал, например, 16 бит, то на перемножение мы добавляем 16 бит, а после спокойно можем их отнять, ничего не потеряв. Вы предлагаете отнять не 16 а 14, правильно я понял? С чем это связано? Цитата В теории - да, в жизни - если в ПЛИСе есть место, почему бы не добавить системе помехоустойчивости? Вы добавляете не помехоустойчивость а точность. Есть например приёмник. На тепловой шум отводится 6-8 разрядов, арифметический шум - 1 разряд. В таком случае очевидно, что тепловой шум много больше арифметического, следовательно арифметическим шумом можно принебречь и оптимальный приём будет работать как в учебнике. Добавляя разрядности, вы увеличиваете точность квантования теплового шума. Т.к. от этого сигнал-шум не поменяется, откуда взяться выигрышу в помехоустойчивости. Другое дело, если у вас рекурсивная схема, в ней 1 битный арифметический шум может вырасти и стать сравнимым или даже большим чем шум тепловой, снизив помехоустойчивость. Или другой пример - выделение сверхмалого сигнала на фоне большой помехи. Если выбрать малую разрядность, то в процессе обработки малый сигнал потеряется, т.к. в процессе выделения используется корреляционная обработка (т.е. фактически эквивалент возведению в квадрат, а это приведет к двукратному росту динамического диапазона, отбросив разрядность очень легко потерять слабый сигнал, который после возведение в квадрат станет еще слабее). С практической точки зрения разрядность все таки уменьшать стоит, но не более чем до разрядности умножителя ПЛИС.
Сообщение отредактировал serjj - Jun 1 2015, 06:27
|
|
|
|
|
Jun 1 2015, 07:22
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(serjj @ Jun 1 2015, 09:24)  С чем это связано? В моём понимание на смесителе (вы же имеете в виду не сам NCO а смеситель?) динамический диапазон никак не изменяется, т.к. сигнал от NCO идёт в полную шкалу, соответственно, если у нас с NCO сигнал, например, 16 бит, то на перемножение мы добавляем 16 бит, а после спокойно можем их отнять, ничего не потеряв. Вы предлагаете отнять не 16 а 14, правильно я понял? С чем это связано? Пр повороте вектора длина проекции может увеличиться. Т.е. если на входе ты закладываешься на максимальное значение в каждой квадратуре K, то на выходе надо иметь sqrt(2) * K
|
|
|
|
|
Jun 1 2015, 07:34
|
Знающий
   
Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866

|
Цитата Пр повороте вектора длина проекции может увеличиться. Т.е. если на входе ты закладываешься на максимальное значение в каждой квадратуре K, то на выходе надо иметь sqrt(2) * K А ведь да ) только тогда можно 1 бит добавить, т.к. sqrt(2) < 2.
|
|
|
|
|
Jun 2 2015, 07:26
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820

|
Цитата(andyp @ Jun 1 2015, 10:22)  Пр повороте вектора длина проекции может увеличиться. Т.е. если на входе ты закладываешься на максимальное значение в каждой квадратуре K, то на выходе надо иметь sqrt(2) * K Поясните пожалуйста про NCO. Я умножаю 14 бит с NCO на 14 бит с АЦП. И на выходе сколько бит можно оставить? 16? я правильно понял?
Сообщение отредактировал Artunique - Jun 2 2015, 07:26
|
|
|
|
|
Jun 2 2015, 07:54
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Artunique @ Jun 2 2015, 10:26)  Поясните пожалуйста про NCO. Я умножаю 14 бит с NCO на 14 бит с АЦП. И на выходе сколько бит можно оставить? 16? я правильно понял? Вы про какой миксер? Я выше про комплексный писал. Если комплексный, то на выходе для реальной части (мнимая аналогично): s_re * m_re - s_im * m_im. При знаковом умножении 14 на 14 полчается 27 бит результата (28ой, самый старший разряд после перемножения можно отбросить, он тоже знаковый), при суммировании - всего 28. Итого (после вычитания)- 28 разрядов выхода в каждом квадратурном канале. Если считать, что на гетеродинном входе смесителя числа от -1 до 1, а на сигнальном - целые, то точка, разделяющая целую и дробную часть выхода смесителя будет после 13 разряда (15 старших - целая часть, затем 13 - дробная). Если на сигнальном входе смесителя реальный сигнал то для действительной части выхода получаем s * m_re. Аналогично, на выходе 14 бит целой части и 13 дробной.
|
|
|
|
|
Jun 2 2015, 08:23
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820

|
Цитата(andyp @ Jun 2 2015, 10:54)  Вы про какой миксер? Я выше про комплексный писал.
Если комплексный, то на выходе для реальной части (мнимая аналогично):
s_re * m_re - s_im * m_im. При знаковом умножении 14 на 14 полчается 27 бит результата (28ой, самый старший разряд после перемножения можно отбросить, он тоже знаковый), при суммировании - всего 28. Итого (после вычитания)- 28 разрядов выхода в каждом квадратурном канале. Если считать, что на гетеродинном входе смесителя числа от -1 до 1, а на сигнальном - целые, то точка, разделяющая целую и дробную часть выхода смесителя будет после 13 разряда (15 старших - целая часть, затем 13 - дробная).
Если на сигнальном входе смесителя реальный сигнал то для действительной части выхода получаем s * m_re. Аналогично, на выходе 14 бит целой части и 13 дробной. с АЦП шина 14 бит с комплексными отсчетами идет на 2 одинаковых смесителя. В одном смесителе данные с АЦП умножаются на sin, в другом на cos. Цитата(andyp @ Jun 2 2015, 10:54)  Если считать, что на гетеродинном входе смесителя числа от -1 до 1, а на сигнальном - целые, то точка, разделяющая целую и дробную часть выхода смесителя будет после 13 разряда (15 старших - целая часть, затем 13 - дробная). Поясните пожалуйста, как Вы это рассчитали.
Сообщение отредактировал Artunique - Jun 2 2015, 08:24
|
|
|
|
|
Jun 2 2015, 08:33
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Artunique @ Jun 2 2015, 11:23)  Поясните пожалуйста, как Вы это рассчитали. out_re = s_re * m_re - s_im * m_im; m_re = mr*2^-13; m_im = mi*2^-13 m_re, m_im - то, на что надо умножить (-1...+1), mi, mr - представление числа в памяти или регистрах Для сигнального входа представление и само число совпадают. out_re = (s_re*mr - s_im*mi) * 2(-13) - итого, у результата будет тоже 13 дробных разрядов
Сообщение отредактировал andyp - Jun 2 2015, 08:34
|
|
|
|
|
Jun 2 2015, 08:47
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820

|
Цитата(andyp @ Jun 2 2015, 11:33)  out_re = s_re * m_re - s_im * m_im; m_re = mr*2^-13; m_im = mi*2^-13 m_re, m_im - то, на что надо умножить (-1...+1), mi, mr - представление числа в памяти или регистрах
Для сигнального входа представление и само число совпадают.
out_re = (s_re*mr - s_im*mi) * 2(-13) - итого, у результата будет тоже 13 дробных разрядов Спасибо большое. Только все равно не пойму почему m_re = mr*2^-13; m_im = mi*2^-13. почему именно число 13?
|
|
|
|
|
Jun 2 2015, 09:08
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Artunique @ Jun 2 2015, 11:47)  Спасибо большое. Только все равно не пойму почему m_re = mr*2^-13; m_im = mi*2^-13. почему именно число 13? Всего бит 14 (по условию), 1 бит - знак. Остальные 13 используются для хранения дробных бит значения синуса или косинуса из диапазона (-1..1). Это позволяет при заданной разрядности сохранить в регистре наибольшее количество значащих бит.
|
|
|
|
|
Jun 2 2015, 10:08
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820

|
Цитата(andyp @ Jun 2 2015, 12:08)  Всего бит 14 (по условию), 1 бит - знак. Остальные 13 используются для хранения дробных бит значения синуса или косинуса из диапазона (-1..1). Это позволяет при заданной разрядности сохранить в регистре наибольшее количество значащих бит. Понял, спасибо. В общем в итоге-то что? 15 старших бит оставляю, а остальное можно выкинуть?
|
|
|
|
|
Jun 2 2015, 10:26
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Artunique @ Jun 2 2015, 13:08)  Понял, спасибо. В общем в итоге-то что? 15 старших бит оставляю, а остальное можно выкинуть? Если есть вещественный смеситель 14x14 (вход умножается на синус или косинус), то из 28 выходных можно отбросить один старший разряд (он повторяет знак) и 13 младших, где сидит дробная часть. Итого останется 14 разрядов.
|
|
|
|
|
Jun 2 2015, 10:43
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820

|
Цитата(andyp @ Jun 2 2015, 13:26)  Если есть вещественный смеситель 14x14 (вход умножается на синус или косинус), то из 28 выходных можно отбросить один старший разряд (он повторяет знак) и 13 младших, где сидит дробная часть. Итого останется 14 разрядов. Разобрался, спасибо. А еще вопрос про FIR фильтр. Если на выходе режу например 15 младших бит, то динамический диапазон вообще никакой. А если режу 5 старших и 10 младших, то картина лучше становится. Есть ли здесь правила какие-то?
Сообщение отредактировал Artunique - Jun 2 2015, 10:45
|
|
|
|
|
Jun 2 2015, 12:11
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Artunique @ Jun 2 2015, 13:43)  Разобрался, спасибо. А еще вопрос про FIR фильтр. Если на выходе режу например 15 младших бит, то динамический диапазон вообще никакой. А если режу 5 старших и 10 младших, то картина лучше становится. Есть ли здесь правила какие-то? Максимум, на какой может разогнаться сигнал на выходе FIR равен сумме абсолютных величин отсчетов импульсной характеристики. log2 этой суммы даст максимальное увеличение разрядности на выходе. Если редкие переполнения допустимы и фильтр - ФНЧ, то можно оценить требуемое увеличение разрядности просто как сумму отсчетов ИХ (фактически, это коэффициент передачи фильтра на 0).
|
|
|
|
|
Jun 2 2015, 12:30
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820

|
Цитата(andyp @ Jun 2 2015, 15:11)  Максимум, на какой может разогнаться сигнал на выходе FIR равен сумме абсолютных величин отсчетов импульсной характеристики. log2 этой суммы даст максимальное увеличение разрядности на выходе. Если редкие переполнения допустимы и фильтр - ФНЧ, то можно оценить требуемое увеличение разрядности просто как сумму отсчетов ИХ (фактически, это коэффициент передачи фильтра на 0). А еще в чем смысл производить децимацию в несколько этапов? В чем разница, поставлю я один фильтр с коэффициентом децимации 300 или поставлю два с коэффициентами 15 и 20?
|
|
|
|
|
Jun 2 2015, 13:18
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Artunique @ Jun 2 2015, 15:30)  А еще в чем смысл производить децимацию в несколько этапов? В чем разница, поставлю я один фильтр с коэффициентом децимации 300 или поставлю два с коэффициентами 15 и 20? В количестве вычислениий, которые придется сделать. Это что, блитц из "Что? Где? Когда?"  )
|
|
|
|
|
Jun 2 2015, 13:19
|
Знающий
   
Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866

|
Цитата А еще вопрос про FIR фильтр. Если фильтр делали сами, то смотрите где у вас там округление (либо на умножениях либо на интеграторе) и порулите им, чтобы прикурить побольше мощности на выходе. Если не взяли готовый, то как вам сказал andyp, все дело в импульсной, нужно её смасштабировать, чтобы поднять мощность на выходе. Если будете варьировать разрядностью только по выходу, то можете немного дБ профукать. Ну и все эти махинации нужно производить для самого большого сигнала, который может прийти на вход приёмника, чтобы ничего не переполнялось. Если после этого у вас чутьё пропадет вдруг, то значит где-то ошибка - неправильно фильтр посчитан, пожелели разрядности и т.д. Цитата А еще в чем смысл производить децимацию в несколько этапов? В чем разница, поставлю я один фильтр с коэффициентом децимации 300 или поставлю два с коэффициентами 15 и 20? Абсолютно никакого смысла в этом нет, если вы сможете сделать это в 1 каскад и еще и обеспечить требования заказчика по согласованности полосы, крутизны фильтра, согласованного с полосой, удовлетворите критерий Найквиста по MSI, если у вас SC и т.д.
|
|
|
|
|
Jun 2 2015, 13:32
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820

|
Цитата(andyp @ Jun 2 2015, 16:18)  В количестве вычислениий, которые придется сделать. Это что, блитц из "Что? Где? Когда?"  ) Нет, просто мало информации про это все. Приемник заработал, а вот избирательность хромает и непонятно что где крутить )
|
|
|
|
|
Jun 2 2015, 13:55
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Artunique @ Jun 2 2015, 16:32)  Нет, просто мало информации про это все. Приемник заработал, а вот избирательность хромает и непонятно что где крутить ) Избирательность по соседнему каналу Вашего приемника определяется фильтром, попробуйте загнать усиление АРУ на максимум и посмотреть на спектр того, что на выходе приемника. Должна быть АЧХ Вашего фильтра. Еще, как вариант, где-то что-то перегружается.
|
|
|
|
|
Jun 2 2015, 14:06
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820

|
Цитата(andyp @ Jun 2 2015, 16:55)  Избирательность по соседнему каналу Вашего приемника определяется фильтром, попробуйте загнать усиление АРУ на максимум и посмотреть на спектр того, что на выходе приемника. Должна быть АЧХ Вашего фильтра. Еще, как вариант, где-то что-то перегружается. Каким именно фильтром? В приемнике я изменил только часть, отвечающую за сброс на ноль несущей и процесс децимации. До этого стояла отдельная микросхема, все работало. Теперь я все это сделал в плис. Даже коэффициенты FIRа оставил прежними. Как я понимаю, дело исключительно в операциях с разрядами.
|
|
|
|
|
Jun 2 2015, 14:23
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Artunique @ Jun 2 2015, 17:06)  Каким именно фильтром? В приемнике я изменил только часть, отвечающую за сброс на ноль несущей и процесс децимации. До этого стояла отдельная микросхема, все работало. Теперь я все это сделал в плис. Даже коэффициенты FIRа оставил прежними. Как я понимаю, дело исключительно в операциях с разрядами. FIR на последней стадии децимации. Все, что работает на более высоких частотах дискретизации - более широкополосно. Спектр шума на выходе приемника как раз и скажет, правильно ли работает FIR - на выходе должна быть его АЧХ, даже если что и перегружается до него. Если АЧХ нет, то перегруз происходит внутри этого фильтра.
|
|
|
|
|
Jun 2 2015, 14:33
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820

|
Цитата(andyp @ Jun 2 2015, 17:23)  FIR на последней стадии децимации. Все, что работает на более высоких частотах дискретизации - более широкополосно. Спектр шума на выходе приемника как раз и скажет, правильно ли работает FIR - на выходе должна быть его АЧХ, даже если что и перегружается до него. Если АЧХ нет, то перегруз происходит внутри этого фильтра. Как я посмотрю спектр на выходе FIR? Там же отсчеты валятся. Кроме как загонять их в регистры dsp и потом обрабатывать на компе никаких вариантов не придумывается
|
|
|
|
|
Jun 2 2015, 15:21
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Artunique @ Jun 2 2015, 17:33)  Как я посмотрю спектр на выходе FIR? Там же отсчеты валятся. Кроме как загонять их в регистры dsp и потом обрабатывать на компе никаких вариантов не придумывается  Ну да. Обычно так и делают. Если внутри FPGA есть доступные ресурсы, то можно всякую инструментовку для отладки FPGA поиспользовать, чтобы вытянуть отсчеты на PC - типа альтеровского ChipScope. Ну и нечто для визуализации выхода приемника все равно потребуется, если будешь его сдавать. Как еще подтвердить его соответствие ТЗ?
Сообщение отредактировал andyp - Jun 2 2015, 15:35
|
|
|
|
|
Jun 2 2015, 20:25
|
Знающий
   
Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866

|
А вот тут то и начнётся самое интересное. В случае с такой тривиальной вещью как узкополосный DDC обработка пишется за неделю-полторы, а всё остальное время делается отладочный интерфейс, если его еще нет. Со временем конечно выработаются шаблоны и заготовки, а то и вовсе универсальный интерфейс, но в первый раз придётся поднапрячься. Вывод на комп через COM порт (медленный канал) или Ethernet+UDP (быстрый канал). Если есть возможность по ресурсам сразу ставте простенький проц, т.к. на него потом еще можно что-нибудь понавешать в плане управления. Если нет, можно и на ПЛИС конечно всё сделать, даже UDP аппаратный, но лучше конечно с процом разобраться, пригодится. На компе в Qt например можно сделать программку, QWT библиотека будет в помощь для построения графиков, сокеты и COM порт идут в комплекте с Qt. Средств Signaltap/Chipscope обычно недостаточно чтобы нормально ЦОС отлаживать да и непрезентабельно это.
Сообщение отредактировал serjj - Jun 2 2015, 20:26
|
|
|
|
|
Jun 24 2015, 12:43
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 25-11-14
Из: Санкт-Петербург
Пользователь №: 83 820

|
Цитата(serjj @ Jun 2 2015, 16:19)  Если фильтр делали сами, то смотрите где у вас там округление (либо на умножениях либо на интеграторе) и порулите им, чтобы прикурить побольше мощности на выходе. Если не взяли готовый, то как вам сказал andyp, все дело в импульсной, нужно её смасштабировать, чтобы поднять мощность на выходе. Фильтр взял готовый. По поводу масштабирования: большое количество лишних старших разрядов на выходе фильтра говорит как раз о том, что ИХ смасштабирована неверно, так? А масштабируется ИХ только за счет увеличения разрядности коэффициентов фильтра?
|
|
|
|
|
Sep 20 2015, 21:21
|

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

|
Цитата(Krys @ Aug 21 2015, 07:16)  Выигрыш ещё и в том, что на последующих этапах децимации тактовая частота поступления отсчётов снижается, и фильтры могут работать в т.н. "полифазном" режиме, т.е. когда на одном и том же умножителе обсчитывается сразу несколько коэффициентов последовательно, а на умножитель подаётся повышенная тактовая частота. Более того, если использовать коэффициенты децимации равные 2 и дециматоры цепочкой, то экономия аппаратных умножителей вообще будет бешеная... У меня к ТС сразу ряд вопросов: 1. Какая избирательность по вашему мнению у АЦП. Опишите хоть как-то аппаратную часть! 2. Подробно распишите, сколько и каких разрядов на каждом этапе. Вход, выход. 3. Какой NCO используете. Свой писали/кореген взяли. Штатные Ксайлинкс/Альтера из бесплатных библиотек фуфел полный или надо правильно настроить все параметры, а то такие проблемы неизбежны. Настройки в генераторе ИП в студию. 4. При использовании БИХ фильтров требуется дикое количество дополнительных разрядов. Фильтр их съедает и не давится. Данные на входе нужно расширять, заполняя младшую часть битами обратным знаку. В старшей части исходное число, разумеется. 5. При использовании КИХ фильтров возможны проблемы если результат умножения округляется сразу после умножения, а не на выходе фильтра после суммирования. Плюс, если коэффициенты маленькие относительно выбранной разрядности. Тогда проблемы сходные с п. 4. Что выливается в паразитных лепестках после основной полосы.
Сообщение отредактировал Corner - Sep 20 2015, 21:26
|
|
|
|
|
Oct 13 2015, 08:32
|

Гуру
     
Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271

|
Цитата(Corner @ Sep 21 2015, 04:21)  Более того, если использовать коэффициенты децимации равные 2 и дециматоры цепочкой, то экономия аппаратных умножителей вообще будет бешеная... А подскажите, пожалуйста, за счёт чего коэффициенты децимации 2 дают экономию умножителей? За счёт half-band фильтров? Цитата(Corner @ Sep 21 2015, 04:21)  4. При использовании БИХ фильтров требуется дикое количество дополнительных разрядов. Фильтр их съедает и не давится. Данные на входе нужно расширять, заполняя младшую часть битами обратным знаку. В старшей части исходное число, разумеется. 5. При использовании КИХ фильтров возможны проблемы если результат умножения округляется сразу после умножения, а не на выходе фильтра после суммирования. Плюс, если коэффициенты маленькие относительно выбранной разрядности. Тогда проблемы сходные с п. 4. Что выливается в паразитных лепестках после основной полосы. А это уже не вопросы )))
--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|