Можно оценить передаточную функцию неизвестной системы на основе измеренных входных и выходных данных системы.
В DSP System Toolbox™ можно оценить передаточную функцию системы с помощью dsp.TransferFunctionEstimator object™ системы в MATLAB ® и блок оценки дискретной передаточной функции в Simulink ®. Соотношение между входом x и выходом y моделируется линейной инвариантной по времени передаточной функцией Txy. Передаточная функция представляет собой отношение спектральной плотности поперечной мощности x и y, Pyx, к спектральной плотности мощности x, Pxx :
Pxx (f)
dsp.TransferFunctionEstimator объект и блок оценки дискретной передаточной функции используют метод усредненной периодограммы Уэлча для вычисления Pxx и Pxy. Дополнительные сведения об этом методе см. в разделе Спектральный анализ.
Последовательность
Когерентность, или квадрат величины, между x и y определяется как:
2Pxx * Pyy
Функция когерентности оценивает степень, в которой можно предсказать y от x. Значение когерентности находится в диапазоне 0 ≤ Cxy (f) ≤ 1. Если Cxy = 0, входные значения x и выходные значения y не связаны между собой. Значение Cxy больше 0 и меньше 1 указывает на одно из следующих значений :
Измерения шумят.
Система нелинейна.
Выход y является функцией x и других входов.
Когерентность линейной системы представляет собой дробную часть выходной мощности сигнала, которая вырабатывается входом на этой частоте. Для конкретной частоты 1 - Cxy - оценка дробной мощности выходного сигнала, в которую входной сигнал не вносит вклад.
При установке OutputCoherence имущество dsp.TransferFunctionEstimator кому true, объект вычисляет выходную когерентность. В блоке «Оценка дискретной передаточной функции» для вычисления спектра когерентности установите флажок «Оценка квадратичной когерентности выходной величины».
Для оценки передаточной функции системы в MATLAB™ используйте dsp.TransferFunctionEstimator object™ системы. Объект реализует метод средней модифицированной периодограммы Уэлча и использует измеренные входные и выходные данные для оценки.
Инициализация системы
Система представляет собой каскад из двух ступеней фильтра: dsp. LowpassFilter и параллельное соединение dsp. AllpassFilter и dsp. AllpureFilter.
allpole = dsp.AllpoleFilter; allpass = dsp.AllpassFilter; lpfilter = dsp.LowpassFilter;
Указать источник сигнала
Вход в систему представляет собой синусоидальную волну с частотой 100 Гц. Частота дискретизации составляет 44,1 кГц.
sine = dsp.SineWave('Frequency',100,'SampleRate',44100,... 'SamplesPerFrame',1024);
Создание оценщика передаточной функции
Для оценки передаточной функции системы создайте dsp.TransferFunctionEstimator Системный объект.
tfe = dsp.TransferFunctionEstimator('FrequencyRange','onesided',... 'OutputCoherence', true);
Создать печать массива
Инициализация двух dsp.ArrayPlot объекты: один для отображения амплитудной характеристики системы, а другой для отображения оценки когерентности между входом и выходом.
tfeplotter = dsp.ArrayPlot('PlotType','Line',... 'XLabel','Frequency (Hz)',... 'YLabel','Magnitude Response (dB)',... 'YLimits',[-120 20],... 'XOffset',0,... 'XLabel','Frequency (Hz)',... 'Title','System Transfer Function',... 'SampleIncrement',44100/1024); coherenceplotter = dsp.ArrayPlot('PlotType','Line',... 'YLimits',[0 1.2],... 'YLabel','Coherence',... 'XOffset',0,... 'XLabel','Frequency (Hz)',... 'Title','Coherence Estimate',... 'SampleIncrement',44100/1024);
По умолчанию ось X графика массива находится в образцах. Для преобразования этой оси в частоту установите свойство SampleIncrement для dsp.ArrayPlot объект для Fs/1024. В этом примере это значение равно 44100/1024 или 43.0664. Для двустороннего спектра XOffset имущества dsp.ArrayPlot объект должен иметь значение [-Fs/2]. Частота варьируется в диапазоне [-Fs/2 Fs/2]. В этом примере график массива показывает односторонний спектр. Следовательно, установите XOffset в 0. Частота изменяется в диапазоне [0 Fs/2].
Оценка передаточной функции
Блок оценки передаточной функции принимает два сигнала: вход в двухкаскадный фильтр и выход двухкаскадного фильтра. Вход в фильтр представляет собой синусоидальную волну, содержащую аддитивный белый гауссов шум. Шум имеет среднее значение, равное нулю, и стандартное отклонение, равное 0,1. Оценщик оценивает передаточную функцию двухступенчатого фильтра. Выходом оценщика является частотная характеристика фильтра, которая является сложной. Чтобы извлечь часть величины этой комплексной оценки, используйте функцию abs. Чтобы преобразовать результат в дБ, примените коэффициент преобразования 20 * log10 (величина).
for Iter = 1:1000 input = sine() + .1*randn(1024,1); lpfout = lpfilter(input); allpoleout = allpole(lpfout); allpassout = allpass(lpfout); output = allpoleout + allpassout; [tfeoutput,outputcoh] = tfe(input,output); tfeplotter(20*log10(abs(tfeoutput))); coherenceplotter(outputcoh); end


Первый график показывает амплитудную характеристику системы. Второй график показывает оценку когерентности между входом и выходом системы. Когерентность на графике варьируется в диапазоне [0 1], как и ожидалось.
Отклик на величину фильтра с помощью fvtool
Фильтр представляет собой каскад из двух ступеней фильтра - dsp. LowpassFilter и параллельное соединение dsp. AllpassFilter и dsp. AllpureFilter. Все объекты фильтра используются в состоянии по умолчанию. Используя коэффициенты фильтра, выведите системную передаточную функцию и постройте график частотной характеристики с использованием freqz. Ниже приведены коэффициенты в формате [Num] [Den]:
Фильтр всех полюсов - [1 0] [1 0,1]
Фильтр всех проходов - [0,5 -1/sqrt (2) 1] [1 -1/sqrt (2) 0,5]
Фильтр нижних частот - определение коэффициентов с помощью следующих команд:
lpf = dsp.LowpassFilter; Coefficients = coeffs(lpf);
Coefficients.Numerator дает коэффициенты в формате массива. Математическая деривация общей функции переноса системы здесь не показана. Как только вы выведете передаточную функцию, запустите fvtool и вы увидите частотную характеристику ниже:

Отклик величины, который показывает fvtool, соответствует отклику величины, dsp.TransferFunctionEstimator оценки объектов.
Чтобы оценить передаточную функцию системы в Simulink, используйте блок оценки дискретной передаточной функции. Блок реализует метод средней модифицированной периодограммы Уэлча и использует измеренные входные и выходные данные для оценки.
Система представляет собой каскад из двух ступеней фильтра: фильтра нижних частот и параллельного соединения фильтра allpole и фильтра allpass. Вход в систему представляет собой синусоидальную волну, содержащую аддитивный белый гауссов шум. Шум имеет среднее значение, равное нулю, и стандартное отклонение, равное 0,1. Входным сигналом для оценщика является системный вход и системный выход. Выходом оценщика является частотная характеристика системы, которая является сложной. Чтобы извлечь часть величины этой комплексной оценки, используйте блок Abs. Для преобразования результата в дБ используется блок дБ (1 Ом).

Открытие и проверка модели
Для открытия модели введите ex_transfer_function_estimator в командной строке MATLAB.
Вот настройки блоков в модели.
| Блок | Изменения параметров | Назначение блока |
|---|---|---|
| Синусоидальная волна |
|
Синусоидальный сигнал с частотой 100 Гц |
| Случайный источник |
| Блок случайного источника генерирует сигнал случайного шума со свойствами, заданными в диалоговом окне блока |
| Фильтр нижних частот | Без изменений | Фильтр нижних частот |
| Фильтр Allpole | Без изменений | Фильтр Allpole с коэффициентами [1 0.1] |
| Дискретный фильтр |
| Фильтр Allpass с коэффициентами [-1/sqrt(2) 0.5] |
| Оценщик дискретной передаточной функции |
| Оценщик передаточной функции |
| Брюшной пресс | Без изменений | Извлекает информацию о величине из выходного сигнала блока оценки передаточной функции |
| Первый блок печати массива |
Щелкните Вид (View):
| Показывает амплитудную характеристику системы |
| Блок печати второго массива |
Щелкните Вид (View):
| Показывает оценку когерентности |
По умолчанию ось X графика массива находится в образцах. Для преобразования этой оси в частоту параметру Sample increment присваивается значение Fs/1024. В этом примере это значение равно 44100/1024, или 43.0664. Для двустороннего спектра параметр смещения X должен быть –Fs/2. Частота варьируется в диапазоне [-Fs/2 Fs/2]. В этом примере график массива показывает односторонний спектр. Следовательно, смещение по оси X устанавливается равным 0. Частота варьируется в диапазоне [0 Fs/2].
Запустить модель

Первый график показывает амплитудную характеристику системы. Второй график показывает оценку когерентности между входом и выходом системы. Согласованность в графике варьируется в диапазоне [0 1] как и ожидалось.