[an error occurred while processing this directive]
Ну, давайте посмотрим, что получается (+)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено homekvn 14 сентября 2006 г. 20:07
В ответ на: Ответ: отправлено <font color=gray>ip657</font> 14 сентября 2006 г. 19:08

Ваш сигнал имеет вариацию: 2^13 плюс-минус 20. После умножения на 32 получается 2^18 плюс-минус 640. Допустим, что поступившее значение нулевого отсчета входного сигнала, будучи умноженным на 32 равно

x[0] = 2^18.

Теперь пропустим его через фильтр, полагая, что линия задержки фильтра была перед экспериментом обнулена, т.е.

x[-1] = 0, y[-1] = 0.

Вычислим теперь y[1], полагая для удобства, что 131071 приближенно равно (с точностью до 1) 2^17:

y[0] = 117340*y[-1] + 131071*(x[0] - x[-1]) =
~= 117340*0 + (2^17)*(2^18 - 0) = 2^35.

Вот тут-то возникает первый вопрос: а уверены ли Вы, что делаете правильно округление и что симулинк не отсекает все, что выше 2^31-1?

У меня создается впечатление после описания, которое Вы дали мне в последнем посте, что дело обстоит именно таким образом. Отсечение - ни что иное, как нелинейность, которая производит шумы во всей полосе.

Та же "петрушка" произойдет в двойном экземпляре на втором шаге при вычислении y[1].

Чтобы проверить эту гипотезу, подайте на Ваш фильтр короткий сигнал в виде ступеньки амплитуды 2^18 (десяти отсчетов вполне хватит, чтобы увидеть, что происходит) и посмотрите на выходные значения. Если нулевой выходной отсчет равен 2^31-1, то имеет место именно та проблема, о которой я написал.


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание