delayseq

Задержите или усовершенствуйте последовательность

Описание

пример

shifted_data = delayseq(data,delay) задержки или усовершенствования сигнал в data количеством отсчетов, заданным в delay. Положительные значения delay задержите сигнал, в то время как отрицательные величины совершенствуют сигнал. Значения нецелого числа delay представляйте дробные задержки или усовершенствования. Для дробных задержек функция интерполирует между выборками.

Как delayseq функция работает с data зависит от размерностей data и delay аргументы:

  • Когда delay скаляр, функция применяет ту же задержку с каждым столбцом data.

  • Когда delay вектор:

    • Если data матрица, длина delay вектор должен равняться количеству столбцов в матрице. Функция применяет задержку с каждым столбцом с помощью соответствующего delay запись.

    • Если data вектор-столбец, функция создает матрицу, где каждый столбец является сдвигом в data вектор каждой записью в delay. Количество столбцов в shifted_data равняется длине delay вектор. kth столбец shifted_data результат сдвига data delay(k).

пример

shifted_data = delayseq(data,delay,fs) задает delay в секундах. fs частота дискретизации data. Если продукт delay и fs не целое число, delayseq реализует дробную задержку или усовершенствование сигнала с помощью интерполяции.

Примеры

свернуть все

Задержите сигнал косинуса на 1 кГц целым числом выборок. Примите частоту дискретизации 10 кГц.

fs = 1.0e4;
t = 0:1/fs:0.005;
signal = cos(2*pi*1000*t)';

Установите задержку с 5 выборками (0,5 мс).

shifted_signal = delayseq(signal,5);

Постройте исходные и задержанные сигналы.

subplot(2,1,1)
plot(t.*1000,signal)
title('Input')
subplot(2,1,2)
plot(t.*1000,shifted_signal)
title('5 Sample Delay')
xlabel('msec')

Figure contains 2 axes objects. Axes object 1 with title Input contains an object of type line. Axes object 2 with title 5 Sample Delay contains an object of type line.

Задержите сигнал косинуса на 1 кГц дробным количеством отсчетов. Примите частоту дискретизации 10 кГц.

fs = 1e4;
t = 0:1/fs:0.005;
signal = cos(2*pi*1000*t)';

Установите задержку с 0,25 мс или 2,5 выборки.

delayed_signal = delayseq(signal,0.25e-3,fs);

Постройте исходные и задержанные сигналы.

plot(t.*1000,signal)
title('Delayed Signal')
hold on
plot(t.*1000,delayed_signal,'r')
axis([0 5 -1.1 1.1])
xlabel('msec')
legend('Original Signal','Delayed Signal')
hold off

Figure contains an axes object. The axes object with title Delayed Signal contains 2 objects of type line. These objects represent Original Signal, Delayed Signal.

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

Входные параметры

свернуть все

Входной сигнал в виде вектора длины-M с действительным знаком, вектора длины-M с комплексным знаком, M с действительным знаком-by-N матрица или M с комплексным знаком-by-N матрица.

M является количеством отсчетов в data. Когда data матрица, N является количеством независимых сигналов.

Типы данных: single | double
Поддержка комплексного числа: Да

Задержка сигнала или усовершенствование в виде скалярного или действительного значения N - вектор длины. Если вы задаете fs аргумент, delay величина в секундах. Когда delay скаляр, та же задержка применяется ко всем столбцам data. delay модули находятся в выборках если fs не задан и в секундах если fs задан.

Типы данных: single | double

Частота дискретизации сигнала в виде положительной скалярной величины. Модули находятся в Гц.

Типы данных: single | double

Выходные аргументы

свернуть все

Задержанный или усовершенствованный сигнал, возвращенный как вектор длины-M с действительным знаком, вектор длины-M с комплексным знаком, M с действительным знаком-by-N матрица или M с комплексным знаком-by-N матрица. shifted_data имеет одинаковое число строк как data, с соответствующими усечениями или нулевым дополнением.

Расширенные возможности

Смотрите также

Введенный в R2011a