hahol89 0 18 июня, 2012 Опубликовано 18 июня, 2012 · Жалоба Хочу с помощью данной коры выполнить децимацию сигнала. Возник следующий вопрос: сгенерил агрегат со следующими параметрами: 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 это и есть константа которую я подаю,, что представляют из себя остальные биты? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Timmy 1 18 июня, 2012 Опубликовано 18 июня, 2012 · Жалоба Подаю на неё константу, к примеру 10000001, на выходе получаю 11100000010000, как я понял биты с 4-го по 11-ый т.е. 10000001 это и есть константа которую я подаю,, что представляют из себя остальные биты? Выход должен быть произведением входа на величину усиления фильтра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hahol89 0 18 июня, 2012 Опубликовано 18 июня, 2012 · Жалоба Но когда я создавал фильтр в визарде, нигде коэффициент усиления я не видел Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DevL 0 18 июня, 2012 Опубликовано 18 июня, 2012 · Жалоба на выходе - это уже после прохода всех stages и по сигналу READY/RDY? вообще, я бы смотрел тут для как бы единственного и оригинального описания по расширению бит, как бы сейчас - filter gain смотреть Output Width and Gain из http://www.xilinx.com/support/documentatio...piler_ds613.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hahol89 0 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба Это что же получается? 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. У меня на выходе моя константа и коэффициент усиления? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DevL 0 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба насколько я себе представляю - СIC, это interpolator or decimator ( вообщем изменение частоты/rate change ) тут как бы нет совсем явного усиления/ослабления при изменении частоты, однако важно понимать что, в силу того, что CIC имеет low pass frequency characteristics - кое что по сигналу теряется. если не доверяеш IP-Core, проверь в Matlab. я бы переводил filter gain как "изменения фильтра" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hahol89 0 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба Простите мне мою толстолобость, но какую бы константу я не посылал я её получаю, при этом в последних 2-ух разрядах лезут 2 единицы, это что? "Изменение фильтра"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DevL 0 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба на выходе - это уже после прохода всех 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 насколько я понял, на форуме мало народу именно в этой теме, может конечно ошибаюсь... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hahol89 0 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба Спасибо за посильную помощь, посижу пока почитаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба Спасибо за посильную помощь, посижу пока почитаю. У Вас 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 в дополнительном коде. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба Спасибо за посильную помощь, посижу пока почитаю. Ну что за мода на эти cic фильтры с плохими характеристиками, когда в S-6 полно умножителей? Читайте xapp на DDC, там же пишут как на ких фльтрах отличные дециматоры можно сделать максимум на 4 умножителях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DevL 0 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба Ну что за мода на эти cic фильтры с плохими характеристиками, когда в S-6 полно умножителей? Читайте xapp на DDC, там же пишут как на ких фльтрах отличные дециматоры можно сделать максимум на 4 умножителях. не против умножений, только не понял где читать, "xapp на DDC"? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dmitry-tomsk 0 19 июня, 2012 Опубликовано 19 июня, 2012 · Жалоба не против умножений, только не понял где читать, "xapp на DDC"? :) xap1018. Да собственно, там и читать нечего, логикорный fir умеет прореживать и за счёт этого повышать порядок. Рекомендую только двух или трёхкаскадный фильтр, выгода значительно больше, чем повышать порядок однокаскадного. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hahol89 0 20 июня, 2012 Опубликовано 20 июня, 2012 · Жалоба Самурай, спасибо большущее)) У Вас 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, с чем это связано? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 20 июня, 2012 Опубликовано 20 июня, 2012 · Жалоба Одно только не понимаю, если это в дополнительном, то получается 00011111101111 после инверсии, а затем 00011111110000 после того как прибавили единицу, и это получается -2032, а не -8128, с чем это связано? С тем, что это я не туда посмотрел и не то сказал:))) В общем, как оно должно быть (и как оно действительно есть на самом деле): подаем -127 (10000001), получаем на выходе CIC -8128 (10000001000000), т.е. -127*64. Сейчас вот проверил в ISE 13.3, все так и есть:) Настройки почти как у Вас, только взял Input Sample Frequency: 1 и Clock Frequency: 1, что бы сильно не заморачиваться с тестбенчом. Откуда у Вас на выходе 11100000010000 сказать сложно, скорее всего из-за того, что неправильно формируются входные сигналы, возможно, что данные поступают слишком часто. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться