Можно оценить передаточную функцию неизвестной системы на основе измеренных входных и выходных данных системы.
В DSP System Toolbox™ можно оценить передаточную функцию системы с помощью Системы dsp.TransferFunctionEstimator
object™ в MATLAB® и блоке Discrete Transfer Function Estimator в Simulink®. Отношение между входом x и выводом y моделируется линейной, независимой от времени передаточной функцией Txy. Передаточная функция является отношением перекрестной степени спектральная плотность x и y, Pyx, к степени спектральная плотность x, Pxx:
Объект dsp.TransferFunctionEstimator
и блок Discrete Transfer Function Estimator используют усредненный метод периодограммы валлийцев, чтобы вычислить Pxx и Pxy. Для получения дополнительной информации на этом методе, смотрите Спектральный анализ.
Когерентность
Когерентность или когерентность в квадрате значением, между x и y задана как:
Функция когерентности оценивает степень, до которой можно предсказать y от x. Значение когерентности находится в области значений 0 ≤ Cxy (f) ≤ 1. Если Cxy = 0, вход x и вывод y не связан. Значение Cxy, больше, чем 0 и меньше чем 1 указывает на одно из следующего:
Измерения являются шумными.
Система нелинейна.
Вывод y является функцией x и других входных параметров.
Когерентность линейной системы представляет дробную часть энергии выходного сигнала, которая произведена входом на той частоте. Для особой частоты 1 – Cxy является оценкой дробной степени вывода, что вход не способствует.
Когда вы устанавливаете свойство OutputCoherence
dsp.TransferFunctionEstimator
к true
, объект вычисляет выходную когерентность. В блоке Discrete Transfer Function Estimator, чтобы вычислить спектр когерентности, устанавливают флажок Output magnitude squared coherence estimate.
Чтобы оценить передаточную функцию системы в MATLAB™, используйте Систему dsp.TransferFunctionEstimator
object™. Объект реализует средний измененный метод периодограммы валлийцев и использует измеренные входные и выходные данные для оценки.
Инициализируйте систему
Система является каскадом двух этапов фильтра: dsp. LowpassFilter и параллельная связь dsp. AllpassFilter и dsp. AllpoleFilter.
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
к Фс/1024. В этом примере это значение является 44100/1024, или 43.0664. Для двухстороннего спектра свойство XOffset
объекта dsp.ArrayPlot
должно быть [-Fs/2]. Частота отличается по области значений [-Fs/2 Фс/2]. В этом примере график массивов показывает односторонний спектр. Следовательно, установите XOffset
на 0. Частота отличается по области значений [0 Фс/2].
Оцените передаточную функцию
Средство оценки передаточной функции принимает два сигнала: введите к фильтру 2D этапа и выводу фильтра 2D этапа. Вход к фильтру является синусоидой, содержащей аддитивный белый Гауссов шум. Шум имеет среднее значение нуля и стандартное отклонение 0,1. Средство оценки оценивает передаточную функцию фильтра 2D этапа. Вывод средства оценки является частотной характеристикой фильтра, который является комплексным. Чтобы извлечь фрагмент значения этой комплексной оценки, используйте функцию 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. AllpoleFilter. Все объекты фильтра используются в их состоянии по умолчанию. Используя коэффициенты фильтра, выведите системную передаточную функцию и постройте частотную характеристику с помощью freqz. Ниже коэффициенты в [Цифре] [Логово] формат:
Весь фильтр полюса - [1 0] [1 0.1]
Весь фильтр передачи - [0.5 - 1/sqrt (2) 1] [1 - 1/sqrt (2) 0.5]
Фильтр Lowpass - Определяет коэффициенты с помощью следующих команд:
lpf = dsp.LowpassFilter; Coefficients = coeffs(lpf);
Коэффициенты. Числитель дает коэффициенты в формате массивов. Математическую деривацию полной системной передаточной функции не показывают здесь. Если вы выводите передаточную функцию, запускаете fvtool, и вы видите частотную характеристику ниже:
Ответ значения, что fvtool показывает соответствиям ответ значения, что объект dsp.TransferFunctionEstimator
оценивает.
Не поддерживаемый в MATLAB Online.
Чтобы оценить передаточную функцию системы в Simulink, используйте блок Discrete Transfer Function Estimator. Блок реализует средний измененный метод периодограммы валлийцев и использует измеренные входные и выходные данные для оценки.
Система является каскадом двух этапов фильтра: фильтр lowpass и параллельная связь фильтра allpole и фильтра allpass. Вход к системе является синусоидой, содержащей аддитивный белый Гауссов шум. Шум имеет среднее значение нуля и стандартное отклонение 0,1. Вход к средству оценки является системным входом и системой вывод. Вывод средства оценки является частотной характеристикой системы, которая является комплексной. Чтобы извлечь фрагмент значения этой комплексной оценки, используйте блок Abs. Чтобы преобразовать результат в дБ, система использует дБ блок (на 1 Ом).
Откройте и осмотрите модель
Чтобы открыть модель, введите ex_transfer_function_estimator
в подсказку команды MATLAB.
Вот настройки блоков в модели.
Блок | Изменения параметра | Цель блока |
---|---|---|
Синусоида |
|
Сигнал синусоиды с частотой на уровне 100 Гц |
Случайный источник |
| Случайный Исходный блок генерирует случайный шумовой сигнал со свойствами, заданными через диалоговое окно блока |
Фильтр Lowpass | Никакое изменение | Фильтр Lowpass |
Фильтр Allpole | Никакое изменение | Allpole фильтруют с коэффициентами [1 0.1] |
Дискретный фильтр |
| Allpass фильтруют с коэффициентами [-1/sqrt(2) 0.5] |
Дискретное средство оценки передаточной функции |
| Средство оценки передаточной функции |
Abs | Никакое изменение | Извлекает информацию о значении от вывода средства оценки передаточной функции |
Первый блок Array Plot |
Нажмите View:
| Показывает ответ значения системы |
Второй блок Array Plot |
Нажмите View:
| Показывает оценку когерентности |
По умолчанию x - ось графика массивов находится в выборках. Чтобы преобразовать эту ось в частоту, параметр Sample increment устанавливается на Fs/1024
. В этом примере этим значением является 44100/1024
или 43.0664
. Для двухстороннего спектра параметром X-offset должен быть –Fs/2
. Частота отличается по области значений [-Fs/2 Fs/2]
. В этом примере график массивов показывает односторонний спектр. Следовательно, X-offset установлен в 0. Частота отличается по области значений [0 Fs/2]
.
Запустите модель
Первый график показывает ответ значения системы. Второй график показывает оценку когерентности между вводом и выводом системы. Когерентность в графике отличается по области значений [0 1]
как ожидалось.