Задание 5: Дискретизация. Теорема Котельникова. Алиасинг.

Раздел: 1. Временное и частотное представление сигналов
Тема: 2.3 Теорема Котельникова-Шеннона
Тип: MATLAB Script
Срок выполнения: 2 ч СРС
Максимальный балл: 2.5


Цель работы

Экспериментально подтвердить теорему Котельникова (Найквиста-Шеннона) о дискретизации. Наблюдать алиасинг при нарушении условия дискретизации и количественно оценить качество восстановления через SNR.


Теоретическая справка

Теорема Котельникова (Найквиста-Шеннона):

Для точного восстановления сигнала с максимальной частотой f_max достаточно дискретизировать его с частотой:

\[f_s \geq 2 \cdot f_{max}\]

Алиасинг возникает при f_s < 2·f_max: высокочастотные составляющие «отражаются» и появляются на ложных (alias) частотах:

\[f_{alias} = |f - n \cdot f_s|_{min}\]
Пример: f = 100 Гц, f_s = 120 Гц → f_alias = 100 − 120 = 20 Гц (вместо 100 Гц слышим 20 Гц!)

SNR (отношение сигнал/шум) характеризует качество восстановления:

\[\text{SNR} = 10 \cdot \lg\left(\frac{P_{signal}}{P_{error}}\right), \quad \text{дБ}\]

Задание

Параметры (не изменять!)

Аналоговый сигнал: x(t) = sin(2π·80·t) + 0.5·sin(2π·100·t)
fmax = 100 Гц   (максимальная частота в сигнале)
fs_cont = 100000 Гц  (эмулирует «аналог»)

Три частоты дискретизации

Переменная fs, Гц Условие Ожидаемый SNR
snr_fs1 250 ✅ Выполнена (250 > 200) > 20 дБ
snr_fs2 120 ❌ Нарушена (120 < 200) « snr_fs1
snr_fs3 500 ✅ Перекрытие (500 » 200) > 20 дБ

Что нужно сделать

  1. Дискретизировать сигнал при каждой fs (взять каждый step = round(fs_cont/fs) отсчёт)
  2. Восстановить через interp1(..., 'spline')
  3. Вычислить SNR для каждого случая
  4. Найти f_alias — alias-частоту при fs2 = 120 Гц для f = 100 Гц

Файлы задания

Файл Назначение
task05_template.m Шаблон — заполнить ???
task05_grader.m Автопроверка

Ожидаемые результаты

Переменная Ожидание    
snr_fs1 > 20 дБ    
snr_fs2 < snr_fs1 − 10 дБ    
snr_fs3 > 20 дБ    
f_alias 20 Гц ( 100 − 120 = 20)

Контрольные вопросы

  1. Почему не достаточно дискретизировать с частотой ровно 2·f_max? Что происходит «на границе»?
  2. Как антиалиасинговый фильтр (ФНЧ) помогает предотвратить алиасинг?
  3. В вашем примере при fs=120 Гц: составляющая 80 Гц тоже даст alias. Вычислите эту частоту.

Критерии оценки

Балл Критерий
2.0 snr_fs1, snr_fs2, f_alias верны, grader ≥ 9/10
1.5 2 из 4 переменных верны
1.0 Хотя бы snr_fs1 или f_alias правильные
+0.5 Аннотированные выводы: почему возникает алиасинг

This site uses Just the Docs, a documentation theme for Jekyll.