реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
Виталий_Ж
сообщение Mar 12 2009, 12:33
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 3-07-08
Пользователь №: 38 716



проектирую цифровой фильтр в ISE от xilinx. пробовал в схематике и на vhdl. проблема общего плана: допустим, первый коэффициент фильтра равен -20(возьмем ких-фильтр), допустим выход фильтра 10-разрядный. В симуляторе я подаю на вход единичный импульс, по идее на выходе я должен получить импульсную характеристику, но первый отсчет выходного сигнала мне выдает не -20, что в двоичном знаковом представлении при числе разрядов = 10 должно быть равно 1000010100(старший разряд - знак), а 1111101100, что соотвествует 1024-20. то есть полная лажа какая то , на выходе в итоге я получаю громадное число, уже при единичном сигнале...
Может сталкивался кто с подобной проблемой?
заранее благодарен за участие
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Mar 12 2009, 12:45
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(Виталий_Ж @ Mar 12 2009, 15:33) *
но первый отсчет выходного сигнала мне выдает не -20, что в двоичном знаковом представлении при числе разрядов = 10 должно быть равно 1000010100(старший разряд - знак)
Вы что-то путаете.
Цитата
а 1111101100, что соотвествует 1024-20. то есть полная лажа какая то
Всё правильно. Это в двоично-дополнительном коде. Вся математика делается в нём.
Go to the top of the page
 
+Quote Post
Виталий_Ж
сообщение Mar 12 2009, 12:50
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 3-07-08
Пользователь №: 38 716



Цитата(andrew_b @ Mar 12 2009, 15:45) *
Вы что-то путаете.
Всё правильно. Это в двоично-дополнительном коде. Вся математика делается в нём.

тогда как быть с громадностью выходного сигнала? я ведь получаю 1024-20=1004

Цитата(Виталий_Ж @ Mar 12 2009, 15:49) *
тогда как быть с громадностью выходного сигнала? я ведь получаю 1024-20=1004

точнее как перейти обратно к "беззнаковому" варианту?
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Mar 12 2009, 13:15
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(Виталий_Ж @ Mar 12 2009, 15:50) *
тогда как быть с громадностью выходного сигнала? я ведь получаю 1024-20=1004
Вы знаете, что такое двоично-дополнительный код?

Цитата
точнее как перейти обратно к "беззнаковому" варианту?точнее как перейти обратно к "беззнаковому" варианту?
У вас же отрицательные числа. Куда вы собрались переходить?

P.S. http://telesys.ru/wwwboards/fpga/323/messages/41674.shtml
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Mar 12 2009, 14:25
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(Виталий_Ж @ Mar 12 2009, 15:33) *
проектирую цифровой фильтр в ISE от xilinx. пробовал в схематике и на vhdl. проблема общего плана: допустим, первый коэффициент фильтра равен -20(возьмем ких-фильтр), допустим выход фильтра 10-разрядный. В симуляторе я подаю на вход единичный импульс, по идее на выходе я должен получить импульсную характеристику, но первый отсчет выходного сигнала мне выдает не -20, что в двоичном знаковом представлении при числе разрядов = 10 должно быть равно 1000010100(старший разряд - знак), а 1111101100, что соотвествует 1024-20. то есть полная лажа какая то , на выходе в итоге я получаю громадное число, уже при единичном сигнале...
Может сталкивался кто с подобной проблемой?
заранее благодарен за участие

Вы путаете прямой код и дополнительный код. Xilinx, как и другие производит вычисления в дополнительном коде, где 1111101100 и есть -20
Go to the top of the page
 
+Quote Post
qxov
сообщение Mar 12 2009, 14:28
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 22-03-07
Из: Санкт-Петербург
Пользователь №: 26 406



Цитата(Виталий_Ж @ Mar 12 2009, 15:33) *
проектирую цифровой фильтр в ISE от xilinx. пробовал в схематике и на vhdl. проблема общего плана: допустим, первый коэффициент фильтра равен -20(возьмем ких-фильтр), допустим выход фильтра 10-разрядный. В симуляторе я подаю на вход единичный импульс, по идее на выходе я должен получить импульсную характеристику, но первый отсчет выходного сигнала мне выдает не -20, что в двоичном знаковом представлении при числе разрядов = 10 должно быть равно 1000010100(старший разряд - знак), а 1111101100, что соотвествует 1024-20. то есть полная лажа какая то , на выходе в итоге я получаю громадное число, уже при единичном сигнале...
Может сталкивался кто с подобной проблемой?
заранее благодарен за участие

Код
    0000010100 + // 10
    1111101100 = // -10
(1)0000000000    // 0
Go to the top of the page
 
+Quote Post
Ionistor
сообщение Apr 6 2009, 09:25
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 22-10-07
Пользователь №: 31 601



Двоичная арифметика выполняется в дополнительном коде, что связано с некоторыми особенностями АЛУ.
Вообще отрицательные числа можно представить в:
- прямом коде: пишется то же число, только в старший (знаковый) разряд записывается "1", что соответствует отрицательному числу. -(0000010100) = 1000010100(пр.код) - это наиболее естественная с точки зрения арифметики форма представления отрицательных чисел;
- обратном коде: все разряды числа инвертируются, в знаковый разряд пишется "1". -(0000010100) = 1111101011(обр.код);
- дополнительном коде: к обратному коду отрицательного числа прибавляется единица. -(0000010100) = 1111101100(доп.код);

Отрицательное число, представленное в дополнительном коде, в прямой код можно преобразовать через обратный код:
- из числа в дополнительном коде вычесть "1" (или, если нужно выполнить преобразование аппаратно в дополнительном коде, а не просто "в уме для себя" то прибавить 1111111111 - доп.код минус единицы);
- полученное число в обратном коде проинвертировать поразрядно, не трогая старший. знаковый разряд - получите отрицательное число в прямом коде.
P.S.: понимаю, что автор темы, заглохшей месяц назад, вряд ли нуждается в ответе, но ведь кто-то может и через поиск наткнуться на эту страничку.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 23:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01405 секунд с 7
ELECTRONIX ©2004-2016