step

Системный объект: фазированный. 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-на-1, Y.

Примечание

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

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

расширить все

Сигнал MFSK, заданный как phased.MFSKWaveform Системный объект.

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

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

расширить все

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

Примеры

расширить все

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

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);

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

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)')

Figure contains an axes. The axes contains 2 objects of type line.

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

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

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

На график показаны две пары peaks. Первая пара лежит на 0 Гц и 1000 Гц. Вторая пара лежит на частотах 4000 Гц и 5000 Гц. Смещение частоты составляет 1000 Гц.

Вычислите увеличение частоты до второй пары off 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