[an error occurred while processing this directive]
|
работаю на ADSP2196. При прямой форме 1 результат образуется как сумма произведений входных задержанных и выходных задержанных отсчетов. Все отсчеты и коэффициенты в 16 разрядном формате, однако сумма произведений формируется в 40 разрядном формате. Округление результата производится в конце вычисления один раз.
Теоретически, если ошибки входных отсчетов и коэффициентов независимы, среднеквадратическая ошибка результата увеличивается в корень квадратный из числа операндов. Например, если фильтр 5 порядка, то число операций будет 11, число операндов - 22 и ошибка = 2,4 единицы, если считать, что все ошибки входных операндов равны половине младшего разряда и некоррелированы. Коэффициенты фильтра можно подготовить с ошибкой 0,5 и входные операнды, если они больше по разрядности, округлить. Ошибка округления результата, поскольку она равна половине младшего разряда и всего одна, значительно меньше.
Про работе с секциями второго порядка округление происходит в конце каждой секции. Книжка пишет, что "ослабляются нежелательные эффекты, связанные с ошибками округления". При фильтре 5 порядка, очевидно их будет 3. Т.е. округлений будет 3. Теоретически такой порядок вычислений при прочих равных условиях хуже.
Если бы накопление результатов велось с 16 разрядной точностью, то тогда секции второго порядка однозначно давали бы лучший эффект, поскольку в каждой операции добавлялась бы еще ошибка округления промежуточного результата. А при организации, как у ADSP2196 нужно считать или моделировать на MATLABe.
E-mail: info@telesys.ru