💡 Инструкция: Выберите один ответ из пяти. Время — 70 минут. Верный вариант в каждом вопросе один; после завершения доступны общий результат, профиль по 5 темам и объяснения.
Вопрос 4 из 25
Математическая запись должна описывать действие «сформировать временную сетку для N отсчётов с частотой дискретизации Fs, начиная с нуля». Какое соотношение можно использовать для проверки?
t_n=\frac{n}{F_s},\quad m=0,\ldots,N-1
t_n=\frac{n}{F_s},\quad n=0,\ldots,M-1
t_n=\frac{F_s}{n},\quad n=0,\ldots,N-1
t_n=\frac{n}{F_s},\quad n=1,\ldots,N-1
t_n=\frac{n}{F_s},\quad n=0,\ldots,N-1
Вопрос 6 из 25
Разработчик переносит в MATLAB требование: применить фильтр вперёд и назад, чтобы избежать фазового сдвига офлайн-сигнала. Какой код сохраняет математический смысл постановки?
y = filter(b, a, x);
y = smooth(x, a, b);
y = conv(x, b, "causal");
y = filtfilt(b, a, x);
y = fftfilt(a, b, x);
Вопрос 7 из 25
Показанный код из темы «Фильтрация» не соответствует постановке. Какая редакция восстанавливает вычислительный договор?
MATLAB Фрагмент для рецензии Копировать
y = conv(x, b, "causal");
Принять эту редакцию как полную замену текущего блока. Добавить регрессионный пример, на котором исходная версия расходится с требованием по значению или размерности. Результат проверки оформить так, чтобы его можно было повторить без ручной подгонки. y = filter(b, a, x);
Внести показанную замену без изменения входного контракта. После замены проверить обычный и граничный входы, заранее вычислив ожидаемый результат. Допуск и критерий принятия зафиксировать до просмотра результата. y = conv(x, b, "causal");
Заменить исходный блок этой реализацией. Сравнить результат с формулой на двух входах, где меняются ориентация данных и масштаб величин. Отдельно убедиться, что ближайшая неверная реализация этот контроль не проходит. y = fftfilt(a, b, x);
Переписать вычислительный шаг следующим образом. На минимальном примере сопоставить форму выхода и два контрольных значения с независимым эталоном. В журнале проверки сохранить вход, ожидаемый результат и фактическое расхождение. y = smooth(x, a, b);
Использовать показанный вариант вместо дефектного фрагмента. Перед принятием проверить предпосылки операции, форму результата и один численный инвариант. Контрольный пример должен воспроизводиться на чистом запуске проекта. y = filtfilt(b, a, x);
Вопрос 17 из 25
В расчёте по теме «Оконные функции» обнаружено содержательное расхождение. Какую замену следует принять после проверки?
MATLAB Фрагмент для рецензии Копировать
w = hann(size(X,2));
Xw = X .* w;
Переписать вычислительный шаг следующим образом. Сравнить результат с формулой на двух входах, где меняются ориентация данных и масштаб величин. Контрольный пример должен воспроизводиться на чистом запуске проекта. w = hann(size(X,1), "periodic");
Xw = X .* w;
Заменить исходный блок этой реализацией. Добавить регрессионный пример, на котором исходная версия расходится с требованием по значению или размерности. Допуск и критерий принятия зафиксировать до просмотра результата. Для темы «Оконные функции» также сверить класс данных и сохранение ожидаемой структуры выхода. Xw = hann(X);
Внести показанную замену без изменения входного контракта. На минимальном примере сопоставить форму выхода и два контрольных значения с независимым эталоном. Результат проверки оформить так, чтобы его можно было повторить без ручной подгонки. w = hann(size(X,1));
Xw = X * w;
Принять эту редакцию как полную замену текущего блока. Перед принятием проверить предпосылки операции, форму результата и один численный инвариант. В журнале проверки сохранить вход, ожидаемый результат и фактическое расхождение. w = hann(size(X,2));
Xw = X .* w;
Использовать показанный вариант вместо дефектного фрагмента. После замены проверить обычный и граничный входы, заранее вычислив ожидаемый результат. Отдельно убедиться, что ближайшая неверная реализация этот контроль не проходит. Xw = X .* hann(numel(X));
Вопрос 22 из 25
Ниже приведена неудачная реализация из темы «Проверка допущений». Какая редакция возвращает требуемый результат и оставляет независимый контроль?
MATLAB Фрагмент для рецензии Копировать
assert(700 <= Fs, "Nyquist condition met");
Заменить исходный блок этой реализацией. На минимальном примере сопоставить форму выхода и два контрольных значения с независимым эталоном. Контрольный пример должен воспроизводиться на чистом запуске проекта. Для темы «Проверка допущений» также сверить класс данных и сохранение ожидаемой структуры выхода. assert(700 <= Fs, "Nyquist condition met");
Принять эту редакцию как полную замену текущего блока. Сравнить результат с формулой на двух входах, где меняются ориентация данных и масштаб величин. Допуск и критерий принятия зафиксировать до просмотра результата. assert(700 < Fs/2, "Frequency aliases at this sampling rate");
Внести показанную замену без изменения входного контракта. Перед принятием проверить предпосылки операции, форму результата и один численный инвариант. Отдельно убедиться, что ближайшая неверная реализация этот контроль не проходит. assert(700 < Fs, "Frequency is valid");
Использовать показанный вариант вместо дефектного фрагмента. Добавить регрессионный пример, на котором исходная версия расходится с требованием по значению или размерности. В журнале проверки сохранить вход, ожидаемый результат и фактическое расхождение. assert(Fs < 2*700, "Sampling is sufficient");
Переписать вычислительный шаг следующим образом. После замены проверить обычный и граничный входы, заранее вычислив ожидаемый результат. Результат проверки оформить так, чтобы его можно было повторить без ручной подгонки. assert(700 > 0, "Frequency is valid");