коммуникация. DiscreteTimeVCO

Сгенерируйте синусоиду переменной частоты

Описание

DiscreteTimeVCO (управляемый напряжением осциллятор) объект генерирует сигнал, сдвиг частоты которого из статического свойства частоты пропорционален входному сигналу. Входной сигнал интерпретирован как напряжение.

Сгенерировать синусоиду переменной частоты:

  1. Задайте и настройте свое дискретное время управляемый напряжением объект осциллятора. Смотрите Конструкцию.

  2. Вызовите step, чтобы сгенерировать синусоиду переменной частоты согласно свойствам comm.DiscreteTimeVCO. Поведение step характерно для каждого объекта в тулбоксе.

Примечание

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

Конструкция

H = comm.DiscreteTimeVCO создает Системный объект управляемого напряжением осциллятора (VCO) дискретного времени, H. Этот объект генерирует синусоидальный сигнал с частотой, переключенной от заданной статической частоты до значения, пропорционального входному сигналу.

H = comm.DiscreteTimeVCO(Name,Value) создает объект VCO дискретного времени, H, с каждым заданным набором свойств к заданному значению. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN).

Свойства

OutputAmplitude

Амплитуда выходного сигнала

Задайте амплитуду выходного сигнала как двойное - или скалярное значение с одинарной точностью. Значением по умолчанию является 1. Это свойство является настраиваемым.

QuiescentFrequency

Частота выходного сигнала, когда введенный нуль

Задайте статическую частоту выходного сигнала в Герц как двойное - или действительное, скалярное значение с одинарной точностью. Значением по умолчанию является 10. Это свойство является настраиваемым.

Sensitivity

Чувствительность сдвига частоты выходного сигнала

Задайте чувствительность сдвига частоты выходного сигнала на вход как двойное - или действительное, скалярное значение с одинарной точностью. Значением по умолчанию является 1. Это значение масштабирует входное напряжение и, следовательно, сдвиг от статического значения частоты. Свойство измеряет Чувствительность в Герц на вольт. Это свойство является настраиваемым.

InitialPhase

Начальная фаза выходного сигнала

Задайте начальную фазу выходного сигнала, в радианах, как двойная или одинарная точность, действительное, скалярное значение. Значением по умолчанию является 0.

SampleRate

Частота дискретизации входа

Задайте частоту дискретизации входа, в Герц, как двойное - или положительное, скалярное значение с одинарной точностью. Значением по умолчанию является 100.

Методы

сбросСбросьте состояния объекта VCO дискретного времени
шагСгенерируйте синусоиду переменной частоты
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

Примеры

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

Создайте исходную Систему сигнала object™.

reader = dsp.SignalSource;

Сгенерируйте случайные данные и примените формирование меандра.

reader.Signal = randi([0 7],10,1);
reader.Signal = rectpulse(reader.Signal,100);

Создайте регистратор сигнала и Системные объекты VCO дискретного времени.

logger = dsp.SignalSink;
discreteVCO = comm.DiscreteTimeVCO('OutputAmplitude',8,'QuiescentFrequency',1);

Сгенерируйте сигнал FSK.

while(~isDone(reader))
    sig = reader();
    y = discreteVCO(sig);
    logger(y);
end
oscsig = logger.Buffer;

Постройте сгенерированный сигнал FSK.

t = (0:length(oscsig)-1)'/discreteVCO.SampleRate;
plot(t,reader.Signal,'--r', 'LineWidth',3)
hold on
plot(t,oscsig,'-b');
hold off
xlabel('Time (s)')
ylabel('Amplitude (V)')
legend('Input Signal','FSK Signal','location','se')

Алгоритмы

Этот объект реализует алгоритм, входные параметры и выходные параметры, как описано на странице с описанием блока Discrete-Time VCO. Однако этот объект и соответствующий блок не могут сгенерировать те же самые выходные параметры для входных параметров с одинарной точностью или значений свойств из-за следующих различий в кастинге стратегий и арифметических проблем точности:

  • Блок всегда бросает результат промежуточных математических операций к типу входных данных. Объект не бросает промежуточные результаты, и MATLAB решает тип данных. Объект бросает окончательный результат к типу входных данных.

  • Можно задать свойство объекта SampleRate в с одинарной точностью или с двойной точностью. Блок не позволяет это.

  • В арифметических операциях больше чем с двумя операндами со смешанными типами данных результат может отличаться в зависимости от порядка операции. Таким образом следующее вычисление может также способствовать различию в выводе блока и объекта:

    введите * чувствительность * sampleTime

  • Блок выполняет это вычисление слева направо. Однако начиная с чувствительности * sampleTime является одноразовым вычислением, объект вычисляет это следующим образом:

    введите * (чувствительность * sampleTime)

Расширенные возможности

Представленный в R2012a