step

Системный объект: phased.MFSKWaveform
Пакет: поэтапный

Выборки непрерывной формы волны MFSK

Синтаксис

Y = step(sMFSK)

Описание

Примечание

Запуск в R2016b, вместо того, чтобы использовать step метод, чтобы выполнить операцию, заданную Системой object™, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполните эквивалентные операции. Когда единственный аргумент к step методом является сам Системный объект, замена y = step(obj) y = obj().

Y = step(sMFSK) возвращает выборки формы волны MFSK в N-by-1 комплексный оцененный вектор-столбец, Y.

Примечание

Объект выполняет инициализацию в первый раз, когда объект выполняется. Эта инициализация блокирует ненастраиваемые свойства и входные технические требования, такие как размерности, сложность и тип данных входных данных. Если вы изменяете ненастраиваемое свойство или входную спецификацию, Системный объект выдает ошибку. Чтобы изменить ненастраиваемые свойства или входные параметры, необходимо сначала вызвать release метод, чтобы разблокировать объект.

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

развернуть все

Форма волны MFSK в виде phased.MFSKWaveform Системный объект.

Пример: sMFSK= phased.MFSKWaveform;

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

развернуть все

Выведите выборки формы волны MFSK, возвращенной как N-by-1 комплексный вектор. Когда step метод достигает конца формы волны, выходные выборки повторяются от запуска формы волны, давая к периодической форме волны.

Примеры

развернуть все

Создайте форму волны MFSK с частотой дискретизации 1 МГц и пропускной способностью развертки 0,1 МГц. Примите 52 шага со временем шага 4 миллисекунд. Установите смещение частоты к 1 кГц. Существует 4 000 выборок на шаг.

fs = 1e6;
fsweep = 1e5;
tstep = 40e-4;
numsteps = 52;
foffset = 1000;
noutputsteps = 4;
sMFSK = phased.MFSKWaveform('SampleRate',fs,...
    'SweepBandwidth',fsweep,...
    'StepTime',tstep,...
    'StepsPerSweep',numsteps,...
    'FrequencyOffset',foffset,...
    'OutputFormat','Steps',...
    'NumSteps',noutputsteps);

Вызовите метод шага, чтобы получить выборки для четырех шагов.

z = step(sMFSK);

Постройте действительные и мнимые части первых двух шагов.

samplesperstep = fs*tstep;
disp(samplesperstep)
        4000
idx = [1:2*samplesperstep]';
time = idx/fs*1000;
plot(time,real(z(idx)),'b',time,imag(z(idx)),'k');
xlabel('Time (millisec)')

Вычислите БПФ всех данных.

n = size(z,1);
nfft = 2^ceil(log2(n));
Y = fftshift(fft(z,nfft));

Постройте величины спектра.

fmax = fs/2;
ft = [-nfft/2:nfft/2-1]*fmax/(nfft/2);
figure(2);
hp = plot(ft/1000,abs(Y));
axis([-2,8,-1,4000]);
xlabel('Frequency (kHz)')
grid

График показывает две пары peaks. Первая пара находится на уровне 0 Гц и 1 000 Гц. Вторая пара находится на уровне 4 000 Гц и 5 000 Гц. Смещение частоты составляет 1 000 Гц.

Вычислите увеличение частоты к второй паре от peaks.

fdelta = fsweep/(numsteps/2-1);
disp(fdelta)
        4000

Увеличение соглашается с местоположением второй пары peaks в спектре БПФ.

Создайте форму волны MFSK с частотой дискретизации 1 МГц и пропускной способностью развертки 0,1 МГц. Примите 52 шага со временем шага 400 микросекунд. Установите смещение частоты к 1 кГц. Найдите количество выборок возвращенным когда OutputFormat свойство собирается возвратить выборки для одной развертки.

fs = 1e6;
fsweep = 1e5;
tstep = 40e-4;
numsteps = 52;
foffset = 1000;
noutputsweeps = 1;
sMFSK = phased.MFSKWaveform('SampleRate',fs,...
    'SweepBandwidth',fsweep,...
    'StepTime',tstep,...
    'StepsPerSweep',numsteps,...
    'FrequencyOffset',foffset,...
    'OutputFormat','Sweeps',...
    'NumSweeps',noutputsweeps);

Вызовите step метод, чтобы получить выборки для четырех шагов.

z = step(sMFSK);

Считайте количество выборок в развертке.

samplespersweep = fs*tstep*numsteps;
disp(samplespersweep)
      208000

Проверьте, что это значение соглашается с количеством выборок, возвращенных step метод.

disp(size(z))
      208000           1
Представленный в R2015a