[an error occurred while processing this directive]
|
Таким образом я бы не 441 нулей добавлял сразу, а разбил бы на три-четыре каскада (точнее, посчитать надо, на сколько именно). Например так: 7, 9 и 7 (9*7*7=441). Т.е. первый раз добавляем 6 нулей и фильтруем 4000 Гц на частоте дискретизации 8000Гц*7=56 кГц. - Это просто сделать. Затем, во втором каскаде каждый семпл разбавляем восемью нулевыми отсчетами и фильтруем. На этот раз ставим фильтр НЧ на 28 кГц (при частоте дискретизации = 56кГц*0=504 кГц - тоже задача не очень трудная). А затем, на последнем этапе опять разбавляем каждый семпл шестью нулями и ставим ФНЧ на 252 кГц (при частоте дискретизации равной 504кГц*7=3528 кГц).
Интерполяция закончена.
Далее децимацию сделать надо. С этим проще. Здесь можно и в один каскад сделать. Т.е. Отфильтровать при помощи ФНЧ 22050 Гц (на частоте квантования 3528 кГц - задача вполне разрешимая), и далее взять только каждый 80-й отсчет.
Теперь, если посмотреть внимательнее, увидим, что интерполирующий фильтр на последнем этапе интерполяции можно и убрать, а оставить только фильтр, на 22050 Гц в децимирующем каскаде.
Спать охота, но если еще подумать, то, полагаю, и еще можно поскоращать чего-нибудь.
E-mail: info@telesys.ru