rloc 56 18 октября, 2007 Опубликовано 18 октября, 2007 · Жалоба И что? Никакого шума к сигналу проходящему через фильтр это не добавляет. Покажите источник шума. Покажите непроходимую границу между умножением на число, где вы соглашаетесь что шума нету, и фильтром. Источник шума - квантователь. Если мы возмем любой учебник по аналого-цифровой обработке сигналов и посмотрим как определяются шумы квантования, то увидим -20*log(2^N) дБ Не знаю, как на пальцах объяснить, но попробую. Возмем для примера такие коэффициенты: 10101.0101b (неокругленный коэффициент) и 10101.0000b (округленный коэффициент), и умножим их на 1.0000b (входное число), в лучшем случае мы должны были получить после умножителя 10101.0101b, а за счет округления получили 10101.0000, небольшая разница - 0.0101 (шум) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mse 0 18 октября, 2007 Опубликовано 18 октября, 2007 · Жалоба Я не говорю, что у числа есть сигнал-шум. ... И правильно. А чем К фильтра отличается от числа? Теперь посчитайте, какая разница (еще раз повторяю в общем случае) будет между арифметикой с плавающей точкой (double если так будет угодно) и целочисленной, скажем 16 бит, 14 бит, 12 бит и т.д. Разница будет. Но будет она в степени приближения К к теоретически посчитанному. И выразится не в С/Ш выходного сигнала, а в степени приближения результирующей АЧХ к образцовой. А это очень разные вещи. 8-р коэффициентов может вполне хватить для выполнения ТЗ, хотя данные могут быть и 24р. Я согласен, есть достаточно большой класс фильтров, дающих при ограниченной разрядности неплохое внеполосное подавление (тот же CIC фильтр, о котором Вы все пытаетесь сказать), но это все частные случаи. Речь идёт не о "неплохом", а о требуемом. И не о классах фильтров, а о фильтрах вообще. При длине ФИР меньше 20-30, например, очень часто можно пользовать 8-р К. Практически без потери качества АЧХ. Некоторые этим пользуются. ;О) Источник шума - квантователь. Если мы возмем любой учебник по аналого-цифровой обработке сигналов и посмотрим как определяются шумы квантования, то увидим -20*log(2^N) дБ Не знаю, как на пальцах объяснить, но попробую. Возмем для примера такие коэффициенты: 10101.0101b (неокругленный коэффициент) и 10101.0000b (округленный коэффициент), и умножим их на 1.0000b (входное число), в лучшем случае мы должны были получить после умножителя 10101.0101b, а за счет округления получили 10101.0000, небольшая разница - 0.0101 (шум) ;О).То, что вы тут понаписали - округление-усечение в АСС. Оно будет, что при 24р что при 8р коэффициентах. И выразится в тех-же 1ЛСБ при усечении и 1/2ЛСБ при округлении. Просто при 24р вы вынуждены "откусить" результат "выше". Принципиальной разницы нет. В шумах, ессно. Разница будет только в приближении реальной АЧХ к образцовой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 18 октября, 2007 Опубликовано 18 октября, 2007 · Жалоба Возмем для примера такие коэффициенты: 10101.0101b (неокругленный коэффициент) и 10101.0000b (округленный коэффициент), и умножим их на 1.0000b (входное число), в лучшем случае мы должны были получить после умножителя 10101.0101b, а за счет округления получили 10101.0000, небольшая добавочка - 0.0101 (шум) Доказываете что умножение на число вносит шум... Ни в первом случае ни во втором никакого шума при умножении не вносится. Будем иметь два сигнала по разному промасштабированые. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 18 октября, 2007 Опубликовано 18 октября, 2007 · Жалоба Данные и коэфф у меня изначально 16 бит. Умножитель 18x18. Ессно всё расширяю до 18 бит и после умножения, конечно - 36 Нуёмаё, ещё раз повторяю: не надо ничего расширять! Какая разрядность есть у числа, ту и умножайте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rloc 56 18 октября, 2007 Опубликовано 18 октября, 2007 · Жалоба Разница будет. Но будет она в степени приближения К к теоретически посчитанному. И выразится не в С/Ш выходного сигнала, а в степени приближения результирующей АЧХ к образцовой. А это очень разные вещи. 8-р коэффициентов может вполне хватить для выполнения ТЗ, хотя данные могут быть и 24р. Да, хороший мозговой штурм получается, даже автору вопроса не успеваю отвечать. Перейдем к более сложным примерам. Попробуйте синтезировать некоторый ФНЧ с коэффициентом усиления = 1 и ограничить его по разрядности. Далее подайте чистый синусоидальный сигнал (в плавающей арифметике) на этот фильтр с такой частотой, чтобы сигнал попал в полосу фильтра. С учетом того, что изначально фильтр мы брали с коэффициентом усиления = 1 (можно даже специально так рассчитать фильтр, чтобы на нужной частоте фильтр имел коэффициент передачи точно равный 1) и он идеальный (вообще без всяких шумов), то на выходе мы должны получить точно такой же сигнал, с точно такой же мощностью. Понятно, что ограничение разрядности коэффициентов фильтра приведет к некоторому искажению нашего сигнала, не говоря уже об искажении АЧХ. Это и есть ухудшение отношения сигнал-шум. Приведите мне пожалуйста аналитическую формулу, которая показала бы (для общего случая), на сколько ухудшиться сигнал на выходе фильтра. И потом, ради эксперимента, попробуйте уменьшить разрядность коэффициентов до 5, 4, 3, 2. Для того примера, что я привел, посчитать будет несложно - мощность шума будет равна разности входной и выходной мощности сигнала. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mse 0 18 октября, 2007 Опубликовано 18 октября, 2007 · Жалоба Да, хороший мозговой штурм получается ... ;О) Предположим, у нас посчитан ФИР с К: 128765 150071 194775 150071 128765 он обладает некоей АЧХ. Мы округляем К: 129 150 195 150 129 чем фильтр с такими К они будут отличаться от: 129000 150000 195000 150000 129000 ? ;О) Кроме того, что результат АСС придётся округлять по уровню "+3 порядка". Два нижних фильтра будут близнецы-братья и отличаться от первого в абс. равной степени. Это будут просто 2 разных фильтра(первый и вторые ;О) и все "шумовые" свойства у них будут одинаковы. Ваш пример я даже считать не буду. Потому как знаю наперёд, что сумма произведений констант равна константе. С нулевым шумом. ;О) Даже если её усекать-округлять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rloc 56 18 октября, 2007 Опубликовано 18 октября, 2007 · Жалоба Признаю свою ошибку, спасибо Всем за помощь. Подтверждаю, ограничение разрядности коэффициентов приведет к искажению АЧХ. Предлагаю всем помочь автору разобраться с его вопросами. :beer: Я очень самокритичен, прошу модератора сдвинуть мой уровень репутации на один уровень ниже. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vLx0F 0 18 октября, 2007 Опубликовано 18 октября, 2007 · Жалоба Нуёмаё, ещё раз повторяю: не надо ничего расширять! Какая разрядность есть у числа, ту и умножайте. Нуёмаё, ещё раз повторяю: :) я на либовский эл-ет mult18x18 подаю сигналы и как тут не расширять ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 18 октября, 2007 Опубликовано 18 октября, 2007 · Жалоба Нуёмаё, ещё раз повторяю: :) я на либовский эл-ет mult18x18 подаю сигналы и как тут не расширять ??? Зачем либовский??? Всё намного проще. Смотрите пост №20. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vLx0F 0 18 октября, 2007 Опубликовано 18 октября, 2007 · Жалоба Зачем либовский??? Всё намного проще. Смотрите пост №20. Хорошо, тогда 16х16 получим 32 бита, как снять правильно 16 бит. (31 downto 16) ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mse 0 18 октября, 2007 Опубликовано 18 октября, 2007 · Жалоба Хорошо, тогда 16х16 получим 32 бита, как снять правильно 16 бит. (31 downto 16) ? Сдвинуть. Или описать, типа "res_FIR (15 dowto 0)=res_MAC(31 downto 16)" Ну это на "ВХДЛ для домохозяек". ;О) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 18 октября, 2007 Опубликовано 18 октября, 2007 · Жалоба Хорошо, тогда 16х16 получим 32 бита, как снять правильно 16 бит. (31 downto 16) ? Естественно, вы берете старшие разряды произведения. Если не возникает ситуация, когда могут умножиться два минимальных числа, то (30 downto 15) Это усечение. Если оно вас устраивает, то делайте так. Если не устраивает, то надо делать округление. Про него в этой теме писали выше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorL 0 18 октября, 2007 Опубликовано 18 октября, 2007 (изменено) · Жалоба для автора вопроса Очень Вам рекомендую разобраться в представлении чисел с фиксированной двоичной точкой, Ваш вопрос вызван именно этим... Достаточно подробно это изложено в книжке про ADSP процессоры ( по крайней мере мне понравилось как там это описано) http://www.analog.com/UploadedFiles/Associ...dsp2100vol1.zip (есть и перевод этой книжки на русский) Кстати, это Вам поможет, если Вы надумаете использовать, например, FIR Compiler Изменено 18 октября, 2007 пользователем IgorL Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vLx0F 0 28 октября, 2007 Опубликовано 28 октября, 2007 · Жалоба Допустим Вы домножали свои коэффициенты на 2^N, и после такого домножения получилось, что коэффициенты вписались в 16-разрядную сетку. Предположим, что входные данные - 18 бит, выходные - 20 бит (я специально взял разное количество разрядов). Тогда после умножителя необходимо брать 18+16 разрядов и подавать на аккумулятор разрядностью 18+16+log2(64)=18+16+6=40 (нужную разрядность получаем дополнением). С выхода этого аккумулятора необходимо снимать разряды с 16+(N-16)-(20-18) по 16+(N-16)+18-1. Если быть более точным, то дополнительная разрядность аккумулятора должна быть не log2(64), а N-16 (не стоит забывать, что я предполагал коэффициент усиления фильтра, полученный в Матлабе или какой-либо другой программе, равным 1). Напоследок напоминаю, что данные необходимо округлять, а не отсекать. Хотелось бы уточнить: повторюсь немного - коэфиициенты у меня - матлабовские, умноженные на 2^15 (16 бит, реально, но расширенный до 18, так как mult18x18). Отсчёт тож 16 - битный (реально)?, но так же расширенные до 18. Но с выхода acc нужно снять 16 бит (т.е. конечный результат). 1. Далее я умножаю отсчёт 16-бит на некторое число (тож 16), но на умножителе 18x18, так что два числа расширяю до 18, получаю 36 бит и и гоню в tap'ы биты (31 downto 14), т.е. 18 бит. Так ? 2. Потом из tap'a значение у множаю на коэфф, реально 16 бит, но расширенных до 18. 3. Ну и в аккумулятор. Так вопрс - как в моём случае рассчитать длину и биты съёма аккумулятора. Для рассчёта брать реальное кол-во бит (16, 32 либо 18, 36): 3(а) Реальное к-во бит: длина acc = 18 + 18 + log2(64) = 42; Ну и съёмные биты: 18 + (15-18)-(18+18) = 15 и того (30 downto 15). 18 здесь, т.к. после умножения коэф и тапа беру из 36 бит (31 downto 14) 4(a) Теперь с расширенными битами: длина acc = 36 + 36 + 6 = 78 съёмные биты: 36 + (15-36)-(36+36) = 57 и того (73 downto 57). Я ессно скклоняюсь к варианту 3(a). Что посоветуете ? Или вообще пользовать тока 16 бит т.е. на mlt18x18 2 16 бит, снимаю (31 downto 15), далее в тапы там расширяю до 18 умножаю на 18 битный коэф и в acc гоню опять (31 downto 15) ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rloc 56 28 октября, 2007 Опубликовано 28 октября, 2007 · Жалоба У меня к сожалению нет опыта преподавания, не знаю как правильно объяснить. Перед тем, как приступать к умножению, рекомендую на время забыть об умножителе 18x18 и внимательно изучить следующие вопросы: 1) Представление числа в дополнительном коде 2) Преобразование дополнительного кода 3) Знаковое расширение 4) Арифметические операции: сложение и вычитание 5) Умножение Есть очень хороший справочник Л.М.Гольденберг, Б.Д.Матюшкин, М.Н.Поляк "Цифровая обработка сигналов" / Глава 3 Эффекты квантования сигналов в цифровых фильтрах стр.82-стр.109 http://referatik.com.ua/zip/textbook/gold.djv Объяснить лучше, чем написано в этой книге, я не могу. На английском языке, все это можно прочитать на wikipedia.org Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться