|
|
  |
Кора 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 18 2012, 12:02
|
Участник

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

|
Но когда я создавал фильтр в визарде, нигде коэффициент усиления я не видел
|
|
|
|
|
Jun 18 2012, 12:56
|
Местный
  
Группа: Свой
Сообщений: 254
Регистрация: 23-10-10
Из: астрал
Пользователь №: 60 371

|
на выходе - это уже после прохода всех stages и по сигналу READY/RDY? вообще, я бы смотрел тут для как бы единственного и оригинального описания по расширению бит, как бы сейчас - filter gain смотреть Output Width and Gain из http://www.xilinx.com/support/documentatio...piler_ds613.pdf
|
|
|
|
|
Jun 19 2012, 07:54
|
Участник

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

|
Это что же получается? Цитата When the output width is equal to the maximum register width, the core outputs the full precision result and the magnitude of the core output reflects the filter gain. У меня на выходе моя константа и коэффициент усиления?
|
|
|
|
|
Jun 19 2012, 08:50
|
Участник

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

|
Простите мне мою толстолобость, но какую бы константу я не посылал я её получаю, при этом в последних 2-ух разрядах лезут 2 единицы, это что? "Изменение фильтра"?
|
|
|
|
|
Jun 19 2012, 11:02
|
Местный
  
Группа: Свой
Сообщений: 254
Регистрация: 23-10-10
Из: астрал
Пользователь №: 60 371

|
на выходе - это уже после прохода всех CIC pipeline stages и по сигналу READY/RDY? дальше - надо почитать мат часть, http://en.wikipedia.org/wiki/Downsamplingи далее : Цитата CIC filters have a low-pass filter characteristic. There are only three parameters (the rate change factor R, the number of stages N, and the differential delay M) that can be modified to alter the passband characteristics and aliasing/imaging rejection.
However, due to their drooping passband gains and wide transition regions, CIC filters alone cannot provide the flat passband and narrow transition region filter performance that is typically required in decimation or interpolation filtering applications.
This problem can be alleviated by connecting the decimation or interpolation CIC filter to a compensation FIR filter which narrows the output bandwidth and flattens the passband gain. http://www.altera.com/literature/ug/ug_cic.pdfпосмотри Figure 4–10. CIC and Compensation Filter Responses Итог: есть изменения фильтра проще и быстрее это все проверять, IMHO в Matlab'e PS насколько я понял, на форуме мало народу именно в этой теме, может конечно ошибаюсь...
|
|
|
|
|
Jun 19 2012, 11:51
|
Участник

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

|
Спасибо за посильную помощь, посижу пока почитаю.
|
|
|
|
|
Jun 19 2012, 12:13
|
Местный
  
Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066

|
Цитата(евгенийкочин @ Jun 19 2012, 14:51)  Спасибо за посильную помощь, посижу пока почитаю. У Вас 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 в дополнительном коде.
|
|
|
|
|
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 сказать сложно, скорее всего из-за того, что неправильно формируются входные сигналы, возможно, что данные поступают слишком часто.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|