exponenta event banner

шаг

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

Образцы непрерывной формы сигнала MFSK

Синтаксис

Y = step(sMFSK)

Описание

Примечание

Начиная с R2016b, вместо использования step для выполнения операции, определенной системным object™, можно вызвать объект с аргументами, как если бы это была функция. Например, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции. Когда единственный аргумент для step метод - это сам объект System, замените 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 кГц. На шаг приходится 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.

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

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

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

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

Создайте сигнал 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