sweeptone

Экспоненциальный стреловидный синус

Описание

excitation = sweeptone() возвращает сигнал возбуждения, сгенерированный с помощью экспоненциального метода swept sine (ESS). По умолчанию сигнал имеет 6-секундную длительность, за которой следуют 4 секунды молчания, для частоты дискретизации 44100 Гц.

excitation = sweeptone(swDur) задает длительность экспоненциального сигнала стреловидного синуса.

excitation = sweeptone(swDur,silDur) задает длительность тишины после экспоненциального сигнала стреловидного синуса.

пример

excitation = sweeptone(swDur,silDur,fs) задает частоту дискретизации тонального сигнала сдвига следующим fs Гц.

пример

excitation = sweeptone(___,Name,Value) задает опции с использованием одного или нескольких Name,Value аргументы в виде пар, в дополнение к входным параметрам в предыдущих синтаксисах.

Примеры

свернуть все

Создайте сигнал возбуждения тонального сигнала свип-сигнала при помощи sweeptone функция.

excitation = sweeptone(2,1,44100);

plot(excitation)
title('Excitation')

Figure contains an axes. The axes with title Excitation contains an object of type line.

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

[B,A] = butter(10,[.1 .7]);
rec = filter(B,A,excitation);
nrec = rec + 0.12*randn(size(rec));

plot(nrec)
title('System Response')

Figure contains an axes. The axes with title System Response contains an object of type line.

Передайте сигнал возбуждения и отклик системы на impzest функция для оценки импульсной характеристики. Обрезать оценку до 100 точек. Использование impz для определения истинной импульсной характеристики системы. Постройте график истинной импульсной характеристики и расчетной импульсной характеристики для сравнения.

irEstimate = impzest(excitation,nrec);
irEstimate = irEstimate(1:101);

irTrue = impz(B,A,101);
plot(0:100,irEstimate, ...
     0:100,irTrue,'ro')

legend('True impulse response','Estimated impulse response')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent True impulse response, Estimated impulse response.

Сгенерируйте экспоненциальный сигнал стреловидного синуса (ESS) с 3-секундным свипом, который идет от 20 Гц до 20 кГц и заканчивается 2-секундным молчанием. Задайте частоту дискретизации как 48 кГц.

fs = 48e3;
excitation = sweeptone(3,2,fs,'SweepFrequencyRange',[20 20e3]);

Визуализируйте возбуждение во времени и частоте.

t = (0:numel(excitation)-1)/fs;
plot(t,excitation)
xlabel('Time (s)')

Figure contains an axes. The axes contains an object of type line.

spectrogram(excitation,512,0,1024,fs,'yaxis')

Figure contains an axes. The axes contains an object of type image.

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

свернуть все

Длительность экспоненциального стреловидного сигнала синуса в секундах, заданная в виде скаляра в области значений [0.5,15].

Общая длительность сигнала возбуждения должна быть меньше или равной 15 секундам: swDur + silDur ≤ 15.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Длительность тишины после экспоненциального стреловидного синуса, заданная в виде скаляра в области значений (0,14,5].

Общая длительность сигнала возбуждения должна быть меньше или равной 15 секундам: swDur + silDur ≤ 15.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Частота дискретизации в Гц, заданная как положительная скалярная величина.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'ExcitationLevel',-5

Уровень сигнала возбуждения для генерации в дБ, заданный как скаляр в области значений [-42,0].

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Область значений частоты свипа в Гц, заданная как двухэлементный вектор-строка. Частота свип- областью значений может быть задана с низкой до высокой или с высокой до низкой. То есть [10 22000] и [22000 10] оба являются допустимыми входами. Наибольшее значение области значений частот свипа должно быть меньше или равно fs/2.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

свернуть все

Сигнал возбуждения, сгенерированный методом ESS, возвращается как вектор-столбец. Длина вектора-столбца приблизительно (swDur+ silDur) * fs выборки.

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

Ссылки

[1] Фарино, Анджело. «Достижения в измерениях импульсной характеристики свипами синуса». Представлен на 122-м конгрессе Общества аудиотехники, Вена, Австрия, 2007 год.

Введенный в R2018b