Моделирование систем ЦОС
Моделирование многоскоростных систем
Многоскоростные системы
Цифровые системы, в которых присутствуют сигналы с различными частотами дискретизации, называются многоскоростными системами. Общая схема простейшей многоскоростной системы представлена на рисунке: на вход системы поступает сигнал с одной частотой дискретизации, на выходе получается сигнал с другой частотой дискретизации.
Если происходит понижение частоты дискретизации, то этот процесс называется децимацией (decimation) или даунсэмплингом (downsampling). Если частота дискретизации повышается, то этот процесс называется апсэмплингом (upsampling).
Блоки Engee для многоскоростной обработки сигналов
В Engee имеются следующие блоки, изменяющие частоту дискретизации сигнала (они находятся в библиотеке Обработка сигналов -> Сигнальные операции):
- Блок Уменьшение частоты дискретизации уменьшает частоту дискретизации входного сигнала в
Mраз (гдеM– целое положительное число), удаляя промежуточные значения.
-
Блок обрабатывает каждый элемент входа как отдельный канал и передискретизирует каждый такой канал отдельно. Частота дискретизации на выходе в
Mраз ниже частоты дискретизации на входе, гдеM– значение параметра Коэффициент понижения частоты дискретизации, M. Блок Downsample передискретизирует вход, отбрасываяM-1значений после каждого выведенного значения. -
Блок Upsample увеличивает частоту дискретизации каждого канала входного сигнала в
Lраз (гдеL– целое положительное число), вставляяL-1нулей между соседними значениями входного сигнала, гдеL– значение параметра Upsample factor, L.
Повышение частоты дискретизации
✏️Задание 1
В этом Задании вы сгенерируете синусоидальный сигнал частотой Гц и временем выборки с. С помощью блока Upsample повысите частоту дискретизации сигнала в 5 раз.
- Создайте новую модель. Добавьте в модель блок Генератор синусоиды (ЦОС). В окне настроек блока задайте значение параметра Частота равным
100Гц, а параметра Период дискретизации –1/1000. - Добавьте в модель блок Upsample. В окне настроек блока задайте значение параметра Upsample factor, L (коэффициент повышения частоты дискретизации) равным
5. - Добавьте в модель блок Заглушка.
- Последовательно соедините все три блока.
- Залогируйте исходный и передискретизированный сигналы.
- В окне настроек модели задайте время моделирования равным
0.1с, размер шага равным1/5000(в 5 раз меньше периода дискретизации исходного сигнала). - В окне настроек модели во вкладке Отладка в разделе Отображение информации выберите Частота дискретизации сигналов и Выделение цветом.
- Запустите модель. Постройте на отдельных полотнах графики залогированных сигналов.
Решение
Модель:
График исходной синусоиды:
График синусоиды с частотой дискретизации, повышенной в 5 раз:
Понижение частоты дискретизации
✏️Задание 2
Уменьшите частоту дискретизации синусоидального сигнала в 3 раза. Для этого выполните следующие действия:
- Удалите из модели блок Upsample.
- На его место добавьте в модель блок Уменьшение частоты дискретизации. В окне настроек блока задайте значение параметра Коэффициент понижения частоты дискретизации, M равным
3. - Залогируйте выход блока Уменьшение частоты дискретизации.
- Запустите модель. Постройте график передискретизированного сигнала.
Решение
Модель:
График синусоиды с частотой дискретизации, уменьшенной в 3 раза:
Проблемы, возникающие при изменении частоты дискретизации
При понижении частоты дискретизации может возникнуть одна проблема: мы можем не соблюсти условие теоремы Котельникова. Мы осуществляем дискретизацию сигнала на другой шкале дискретных отсчетов времени. Из-за эффекта алиасинга мы можем потерять данные, и восстановить исходный сигнал не получится. Поэтому на практике применяется прореживание с предварительной фильтрацией для гарантированного соблюдения условий теоремы Котельникова.
При этом достаточно пропустить сигнал через фильтр нижних частот, у которого частота среза будет не более половины частоты дискретизации выходного прореженного сигнала. После фильтрации необходимо выполнить операцию децимации. Такая схема позволяет гарантированно избежать алиасинга. Такой фильтр называется антиалиасинговым.

Повышение частоты дискретизации также требует наличия фильтра, но в этом случае он используется для подавления спектральных копий сигнала, которые попадают в расширенную зону Найквиста. Такой фильтр называется антиимиджинговым.

Стандартная схема интерполяции: сперва выполняется операция апсэмплинга (вставки нулей), а затем фильтрация антиимиджинговым фильтром. Во временной области сигнал сглаживается, и резкие перепады в ноль из положительных и отрицательных значений усредняются.
Изменение частоты дискретизации в дробное число раз
Если необходимо изменить частоту дискретизации в дробное число раз, то это можно сделать, совместив операции интерполяции и децимации в целое число раз. Отношение коэффициентов даст дробное значение коэффициента изменения частоты дискретизации. Сначала осуществляется интерполяция в раз, затем фильтрация фильтром нижних частот (один фильтр используется и как антиимиджинговый, и как антиалиасинговый) и, наконец, децимация в раз. Частоту среза ФНЧ надо всегда выбирать наименьшей из двух доступных.
✏️Задание 3
Увеличьте частоту дискретизации синусоидального сигнала в раза. Для этого модифицируйте модель, построенную в предыдущем Задании:
- Добавьте в модель блок Upsample. Подсоедините его между блоками Генератор синусоиды (ЦОС) и Уменьшение частоты дискретизации.
- В окне настроек блока задайте значение параметра Upsample factor, L равным
5. - Запустите модель. Постройте график передискретизированного сигнала.
Решение
Модель:
График синусоиды с частотой дискретизации, измененной в раза:
Передискретизация избыточно дискретизированных сигналов
Теорема Котельникова гласит, что данные должны отбираться с частотой дискретизации, по крайней мере, в два раза превышающей максимальную частоту сигнала, чтобы можно было точно восстановить исходные данные.
Если данные были подвергнуты избыточной дискретизации (выборке с частотой, превышающей минимально необходимую), то, несмотря на выполнение условий теоремы Котельникова, используется больше ресурсов, таких как полоса пропускания, чем необходимо для точного представления исходного сигнала. Для экономии ресурсов можно снизить частоту дискретизации до более приемлемого уровня. Критерии «приемлемости» зависят от конкретного случая. Например, аудиоприложения обычно используют полосу пропускания от 20 Гц до 20 кГц из-за ограничений диапазона человеческого слуха.
Пусть, например, ваши данные представляют собой синусоидальную волну частотой 8 кГц, дискретизированную с частотой 30 кГц. Ваша цель – выполнить повторную дискретизацию данных с частотой 20 кГц. Обратите внимание, что частота 20 кГц больше, чем частота 2*8=16 кГц, соответствующая теории дискретизации.
Изменение частоты дискретизации сигнала может быть произведено только с целочисленным коэффициентом. Если вы хотите изменить частоту дискретизации на небольшую величину, как в этом примере, с 30 кГц до 20кГц, то вам необходимо повторно выполнить передискретизацию данных сигнала. Передискретизация – это процесс апсэмплинга с последующим даунсэмплингом для преобразования частоты дискретизации в дробное число раз. Чтобы избежать потери информации о данных, всегда нужно выполнять сначала повышение частоты дискретизации а затем понижение.
Чтобы изменить частоту дискретизации с 30 кГц до 20 кГц, нужно сократить дробь:
Таким образом, , .
✏️Задание 4
В этом Задании вы сгенерируете синусоидальную функцию частотой 8 кГц, дискретизированную с частотой 30 кГц, и затем измените частоту дискретизации в раза. Для этого модифицируйте модель, построенную в предыдущем Задании:
- В окне настроек блока Генератор синусоиды (ЦОС) задайте значение параметра Частота равным
8000Гц, а значение параметра Период дискретизации – равным1/30000. - В окне настроек блока Upsample задайте значение параметра Upsample factor, L равным
2. - В окне настроек модели задайте время моделирования равным
10с, а размер шага равным1/30000/3/2(т.е. частота дискретизации модели кратна частоте дискретизации исходной синусоиды, а также коэффициентам и ). - Запустите модель. Постройте график передискретизированного сигнала в частотной области.
Решение
Модель:
График синусоиды с частотой дискретизации, измененной в раза:
На спектре сигнала присутствует пик, соответствующий исходной синусоиде частотой 8 кГц, а также пик на частоте 22 кГц.
Синусоидальная волна частотой 8 кГц имеет частотный диапазон ± 8 кГц. Поскольку спектр цифрового сигнала всегда повторяется с каждой частотой дискретизации (т.е. каждые 30 кГц), спектральные копии будут отображаться с частотами, кратными 30 кГц, т.е.
..., -38 кГц, -22 кГц, -8 кГц, 8 кГц, 22 кГц, 38 кГц....
Вот почему вы можете наблюдать спектральное изображение на частоте 22 кГц.
Проектирование и применение антиимиджингового фильтра
Чтобы правильным образом увеличить частоту дискретизации синусоидальной волны частотой 8 кГц с 30 кГц до 60 кГц, вам необходимо удалить спектральное изображение на частоте 22 кГц после операции апсэмплинга. Этого можно достичь, используя антиимиджинговый фильтр нижних частот для удаления спектральных копий, выходящих за пределы полосы пропускания исходного сигнала.
Фильтр нижних частот должен удовлетворять следующим требованиям:
- Фильтр работает на повышенной частоте дискретизации. В этом примере частота дискретизации составляет 60 кГц.
- Частота среза фильтра должна гарантировать, чтобы частоты выше меньшей из двух частот Найквиста (т.е. исходной частоты Найквиста и конечной частоты Найквиста после аспсэмплинга) удалялись для предотвращения алиасинга (из-за операции понижения частоты дискретизации). В этом примере исходная частота Найквиста равна кГц, а конечная частота Найквиста, подвергнутая передискретизации, равна кГц. Таким образом, частота среза фильтра должна составлять 10 кГц.
Для проектирования антиимиджингового фильтра вы будете использовать приложение Редактор цифровых фильтров, а для реализации фильтра – блок Дискретный КИХ фильтр.
✏️Задание 5
Спроектируйте антиимиджинговый фильтр с помощью приложения Редактор цифровых фильтров:
-
Откройте приложение Редактор цифровых фильтров.
-
Задайте следующие значения параметров фильтра:
- Тип АЧХ фильтра –
Фильтр нижних частот; - Метод синтеза фильтра –
КИХ,Равномерный; - Порядок фильтра –
Минимальный порядок; - Коэффициент плотности сетки частоты –
20.
Требования по частоте:
- Размерность –
Гц; - Частота дискретизации Fs –
60e3; - Частота пропускания Fpass –
9e3; - Частота подавления Fstop –
11e3.
Требования по амплитуде:
- Единицы измерения –
дБ; - Пульсации (Apass) –
1; - Подавление (Astop) –
80.
- Тип АЧХ фильтра –
-
Нажмите на кнопку Синтез фильтра.
-
Нажмите на кнопку Коэффициенты фильтра. Сохраните коэффициенты числителя на вашем компьютере в файле
num.txt.
Решение
✏️Задание 6
Завершите построение модели:
- Добавьте в модель блок Дискретный КИХ фильтр. Подсоедините его между блоками Upsample и Уменьшение частоты дискретизации.
- Из файла
num.txtскопируйте вектор коэффициентов фильтра и вставьте его в поле значений параметра Коэффициенты в окне настроек блока Дискретный КИХ-фильтр. Напомним, что элементы вектора заключаются в квадратные скобки[...]. - Запустите модель. Постройте график передискретизированного сигнала в частотной области.
Решение
Модель:
График синусоиды с частотой дискретизации, измененной в раза:
Как видно из графика, спектральная копия сигнала на частоте 22 кГц отсутствует, но присутствует ослабленная спектральная копия на частоте 2 кГц ( кГц).
Затухание спектральных копий определяется полосой заграждения фильтра. Чем больше затухание в полосе заграждения, тем менее интенсивными будут спектральные копии.