шаг

Системный объект: поэтапный. 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.

Примечание

Объект выполняет инициализацию в первый раз, когда объект выполняется. Эта инициализация блокирует ненастраиваемые свойства (MATLAB) и входные спецификации, такие как размерности, сложность и тип данных входных данных. Если вы изменяете ненастраиваемое свойство или входную спецификацию, Системный объект выдает ошибку. Чтобы изменить ненастраиваемые свойства или входные параметры, необходимо сначала вызвать метод 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