Передискретизация данных

Что передискретизирует?

Передискретизация сигналов данных в продукте System Identification Toolbox™ применяет сглаживающийся (lowpass) КИХ-фильтр к данным и изменяет частоту дискретизации сигнала децимацией или интерполяцией.

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

Совет

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

Передискретизация учитывает, как данные ведут себя между выборками, которые вы задаете, когда вы импортируете данные в приложение System Identification (нулевой порядок или хранение первого порядка). Для получения дополнительной информации о свойствах данных вы задаете прежде, чем импортировать данные, видите, Представляют Данные.

Можно передискретизировать данные с помощью приложения System Identification или resample команда. Можно только передискретизировать данные временного интервала в универсальных временных интервалах.

Для детального обсуждения об обработке воздействий см. главу по предварительной обработке данных в System Identification: Теория для Пользователя, Второго Выпуска, Lennart Ljung, PTR Prentice Hall, 1999.

Передискретизация данных, не искажая эффекты

Как правило, вы десятикратно уменьшаете сигнал удалить высокочастотные вклады, которые следуют из шума от полной энергии. Идеально, вы хотите удалить энергетический вклад из-за шума и сохранить плотность энергии сигнала.

Команда resample выполняет децимацию, не искажая эффекты. Эта команда включает фактор T, чтобы нормировать спектр и сохранить плотность энергии после децимации. Для получения дополнительной информации о нормализации спектра, смотрите Нормализацию Спектра.

Если вы используете ручную децимацию вместо resample— путем выбора каждой четвертой выборки от сигнала например — энергетические вклады от более высоких частот отложены в более низкие частоты ("искажение"). Поскольку общая энергия сигнала сохраняется этой операцией, и эта энергия должна теперь быть сжата в меньший частотный диапазон, амплитуду спектра на каждой частоте увеличения. Таким образом плотность энергии подкошенного сигнала не является постоянной.

В этом примере показано, как resample старается не сворачивать эффекты.

Создайте процесс скользящего среднего значения четвертого порядка.

m0 = idpoly(1,[ ],[1 1 1 1]);

m0 является моделью timeseries без входных параметров.

Сгенерируйте сигнал ошибки.

e = idinput(2000,'rgs');

Симулируйте выход с помощью сигнала ошибки.

sim_opt = simOptions('AddNoise',true,'NoiseData',e);
y = sim(m0,zeros(2000,0),sim_opt);
y = iddata(y,[],1);

Оцените спектр сигнала.

g1 = spa(y);

Оцените спектр модифицированного сигнала включая каждую четвертую выборку исходного сигнала. Эта команда автоматически устанавливает Ts на 4.

g2 = spa(y(1:4:2000));

Постройте частотную характеристику, чтобы просмотреть складные эффекты.

h = spectrumplot(g1,g2,g1.Frequency);
opt = getoptions(h);
opt.FreqScale = 'linear';
opt.FreqUnits = 'Hz';
setoptions(h,opt);

Оцените спектр после предварительной фильтрации, которая не вводит складные эффекты.

g3 = spa(resample(y,1,4));
figure
spectrumplot(g1,g3,g1.Frequency,opt)

Используйте resample десятикратно уменьшить сигнал прежде, чем оценить спектр и построить частотную характеристику.

g3 = spa(resample(y,1,4));
figure
spectrumplot(g1,g3,g1.Frequency,opt)

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

Похожие темы