|
Кора CIC Compiler в ISE на 6-м Спартане |
|
|
|
Jun 18 2012, 10:13
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 9-12-10
Пользователь №: 61 507

|
Хочу с помощью данной коры выполнить децимацию сигнала. Возник следующий вопрос: сгенерил агрегат со следующими параметрами: Filter Type: Decimation Number of stages: 3 Delay: 1 Channels:1 Sample Rate Change: Fixed Rate Supported: 4 Input Sample Frequency: 0.001 Clock Frequency:200 Input Data Width: 8 Output Data Width: 14 Quantization Mode: Full Precision Latency: 11 Bits Per Stage: 14,14,14,14,14,14 Подаю на неё константу, к примеру 10000001, на выходе получаю 11100000010000, как я понял биты с 4-го по 11-ый т.е. 10000001 это и есть константа которую я подаю,, что представляют из себя остальные биты?
|
|
|
|
|
 |
Ответов
|
Jun 20 2012, 13:03
|
Участник

Группа: Участник
Сообщений: 53
Регистрация: 9-12-10
Пользователь №: 61 507

|
Самурай, спасибо большущее)) Цитата(Самурай @ Jun 19 2012, 15:13)  У Вас Full Precision, это значит, что CIC корка от хилых не использует округлени/усечение всех внутренних регистров, а так как усиление CIC равно (R*M)^N, то на выходе Вы получите бонусом дополнительных N*log2(R*M) разрядов. Читайте внимательно cic_compiler_ds613.pdf, ссылка выше была. Ну и теорию CIC тоже не лишним было бы знать, все-таки самая простая DSP фишка  Далее, Вы подаетет на вход CIC-а 10000001, это -127 в дополнительном коде, усиление CIC для ваших данных (4*1)^3 = 64, т.е. на выходе Вы получаете -127*64 = -8128, а это и есть 11100000010000 в дополнительном коде. Одно только не понимаю, если это в дополнительном, то получается 00011111101111 после инверсии, а затем 00011111110000 после того как прибавили единицу, и это получается -2032, а не -8128, с чем это связано?
|
|
|
|
|
Jun 20 2012, 19:07
|
Местный
  
Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066

|
Цитата(евгенийкочин @ Jun 20 2012, 16:03)  Одно только не понимаю, если это в дополнительном, то получается 00011111101111 после инверсии, а затем 00011111110000 после того как прибавили единицу, и это получается -2032, а не -8128, с чем это связано? С тем, что это я не туда посмотрел и не то сказал  )) В общем, как оно должно быть (и как оно действительно есть на самом деле): подаем -127 (10000001), получаем на выходе CIC -8128 (10000001000000), т.е. -127*64. Сейчас вот проверил в ISE 13.3, все так и есть  Настройки почти как у Вас, только взял Input Sample Frequency: 1 и Clock Frequency: 1, что бы сильно не заморачиваться с тестбенчом. Откуда у Вас на выходе 11100000010000 сказать сложно, скорее всего из-за того, что неправильно формируются входные сигналы, возможно, что данные поступают слишком часто.
|
|
|
|
Сообщений в этой теме
евгенийкочин Кора CIC Compiler в ISE на 6-м Спартане Jun 18 2012, 10:13 Timmy Цитата(евгенийкочин @ Jun 18 2012, 14:13)... Jun 18 2012, 11:51 евгенийкочин Но когда я создавал фильтр в визарде, нигде коэффи... Jun 18 2012, 12:02 DevL на выходе - это уже после прохода всех stages и по... Jun 18 2012, 12:56 евгенийкочин Это что же получается?
ЦитатаWhen the output width... Jun 19 2012, 07:54 DevL насколько я себе представляю - СIC, это interpolat... Jun 19 2012, 08:31 евгенийкочин Простите мне мою толстолобость, но какую бы конста... Jun 19 2012, 08:50 DevL на выходе - это уже после прохода всех CIC pipelin... Jun 19 2012, 11:02 евгенийкочин Спасибо за посильную помощь, посижу пока почитаю. Jun 19 2012, 11:51 Самурай Цитата(евгенийкочин @ Jun 19 2012, 14:51)... Jun 19 2012, 12:13 dmitry-tomsk Цитата(евгенийкочин @ Jun 19 2012, 14:51)... Jun 19 2012, 12:14  DevL Цитата(dmitry-tomsk @ Jun 19 2012, 14... Jun 19 2012, 13:10   dmitry-tomsk Цитата(DevL @ Jun 19 2012, 16:10) не прот... Jun 19 2012, 16:50
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|