主要内容

vco

R2026b

压控振荡器

描述

y = vco(x,Fc,Fs) 创建一个信号,该信号以由实数输入向量或矩阵 x 以及采样率 Fs 确定的频率振荡。如果 x 是矩阵,则 vco 生成矩阵,其各列根据 x 的各列振荡。

示例

y = vco(x,[Fmin Fmax],Fs) 缩放频率调制范围,使得 x 的 ±1 值分别产生 Fmin Hz 和 Fmax Hz 的振荡。

示例

示例

全部折叠

生成一个长度为两秒的信号,该信号由压控振荡器 (VCO) 和四个高斯原子组成。瞬时频率由啁啾函数调制。采样率为 14 kHz。

fs = 14000;
t = (0:1/fs:2)';

gaussFun = @(A,x,mu,f) exp(-(x-mu).^2/(2*0.01^2)).*sin(2*pi*f.*x)*A';
s = gaussFun([1 1 1 1],t,[0.2 0.5 1 1.75],[10 60 25 5]*100)/10;
x = vco(chirp(t+.1,0,t(end),3).*exp(-2*(t-1).^2),0.2*fs,fs);

s = s/10 + x;

绘制生成的信号的频谱图。指定 90% 重叠和中等频谱泄漏。

pspectrum(s,fs,"spectrogram",OverlapPercent=90,Leakage=0.5)

Figure contains an axes object. The axes object with title Fres = 164.0842 Hz, Tres = 15.6429 ms, xlabel Time (s), ylabel Frequency (kHz) contains an object of type image.

生成以 10 kHz 采样的两秒信号,其瞬时频率是时间的三角函数。

fs = 10000;
t = 0:1/fs:2;
x = vco(sawtooth(2*pi*t,0.75),[0.1 0.4]*fs,fs);

绘制生成的信号的频谱图。将泄漏指定为 0.80,相邻段之间的重叠指定为 95%。

pspectrum(x,fs,"spectrogram",Leakage=0.80,OverlapPercent=95)

Figure contains an axes object. The axes object with title Fres = 106.1965 Hz, Tres = 15.7 ms, xlabel Time (s), ylabel Frequency (kHz) contains an object of type image.

输入参数

全部折叠

输入数据,指定为实数向量或实矩阵。x 的范围从 –1 到 1,其中 x = –1 对应于 0 频率输出,x = 0 对应于 Fc,x = 1 对应于 2*Fc。

用于调制输入信号的载波或参考频率,指定为正实数标量。

频率调制范围界限,指定为实数向量。为获得最佳结果,Fmin 和 Fmax 应在 0 到 Fs/2 的范围内。

注意

vco 使用 modulate 函数执行 FM 调制。

采样率,指定为正标量。采样率是单位时间内的采样数。如果时间单位是秒,则采样率的单位是赫兹。

  • 如果将 Fs 指定为空数组 [],则 vco 假定输入信号 x 的采样率为 1 Hz。

  • 如果未指定 Fs,则 vco 假定输入信号 x 的采样率为 2π 弧度/采样点。

输出参量

全部折叠

振荡输出信号,以实数向量或实矩阵形式返回。y 与 x 大小相同,并且振幅等于 1。

扩展功能

全部展开

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2006a 之前推出

全部展开

另请参阅

|