主要内容

使用Digilent模拟发现生成任意周期波形

使用函数发生器通道生成任意1kHz波形函数,并同时记录数据,使用模拟输入通道。

发现Digilent设备

发现连接到您系统的Digilent设备daqlist

daqlist (“digilent”) dq = daq(“digilent”
ans = 1×4表的DeviceID DeviceInfo描述模型  ________ _____________________________________________ ____________________ _______________________ " AD1”“Digilent公司。模拟发现2套件Rev. C”“模拟发现2”[1×1 daq.di。DeviceInfo] dq = DataAcquisition using Digilent Inc. hardware: Running: 0 Rate: 10000 NumScansAvailable: 0 NumScansAcquired: 0 NumScansQueued: 0 NumScansOutputByHardware: 0 RateLimit: [] Show channels显示属性和方法

添加一个函数生成器通道

添加带有设备ID的函数生成器通道AD1和通道ID1.设置波形类型为任意的.输出信号的电压范围是-5.0到+5.0伏。

Ch_fgen = addoutput(dq,“AD1”“1”“任意的”);ch_fgen。Name =“AD1_1_fgen”
ch_fgen =指数类型设备通道测量类型范围名称  _____ ______ ______ _______ ________________ ____________________ ____________ 1“fgen”“AD1”“1”“任意”“-5.0 + 5.0伏特”“AD1_1_fgen”

定义正弦信号的和作为输出波形

函数生成器通过反复生成其缓冲区(4096点)的内容来产生周期性输出。一个波形被构造来无重复地填充这个缓冲区。

Buffersize = 4096;Len = buffersize + 1;F0 = 1;F1 = 1 * f0;F2 = 2 * f0;F3 = 3 * f0;波形= sin(linspace(0,2 *pi*f1, len)) +...Sin (linspace(0,2 *pi*f2, len)) +...Sin (linspace(0,2 *pi*f3, len));波形(end) = [];

指定波形数据并设置波形频率

频率= 1000;ch_fgen。WaveformData =波形;ch_fgen。频率=频率;

添加模拟输入通道

添加带有设备ID的模拟输入通道AD1和通道ID1.设置测量类型为电压

Ch_in = addinput(dq,“AD1”“1”“电压”);ch_in。Name =“AD1_1_in”
ch_in =指数类型设备通道测量类型范围名称  _____ ____ ______ _______ ________________ __________________ __________ 1“人工智能”“AD1”“1”“电压(Diff)”"-25到+25伏" "AD1_1_in"

定义采集扫描速率

以高于所生成波形中最高频率的扫描速率获取数据(过采样)。

过振幅= 50;Fn = 2 *频率;Fs =过振幅* Fn;dq。速率= Fs;

生成一个周期波形并记录输入

Data = read(dq, seconds(3));

定义绘图参数

K = 5;宽度= 750;高度= 750;周期= 1/频率;Numperiods = k * period;maxamplitude = 3*ch_fgen.Gain;Wavedesired = repmat(波形',k, 1);Tsamples = linspace(0, numperiods, k * buffersize)';

定义FFT参数

L = 2 *过放大器*缓冲尺寸;NFFT = 2^nextpow2(L);Y = fft(数据。AD1_1_in, NFFT)/L; f0 = (Fs/2) * linspace(0, 1, NFFT/2 + 1);

情节波形

plotScaleFactor = 12;plotRange = NFFT/2;% Plot关于NFFT是对称的plotRange = floor(plotRange / plotScaleFactor);Yplot = Y(1:plotRange);fplot = f0(1:plotRange);图;绘制期望波形Subplot (311) plot(tsamples, wavedesired);包含(的时间(秒));ylabel (的电压(伏));标题('期望波形:sin(2\pi*1000t) + sin(2\pi*2000t) + sin(2\pi*3000t)');xlim ([0 numperiods]);ylim ([-maxamplitude maxamplitude]);图获取波形百分比次要情节(312)(数据。时间,data.AD1_1_in);包含(的时间(秒));ylabel (的电压(伏));标题(获得的波形的);xlim([秒(0)秒(numperiods)]);ylim ([-maxamplitude maxamplitude]);绘制单面振幅谱subplot(313) stem(fplot, 2*abs(Yplot));标题(“波形单面振幅谱”)包含(的频率(赫兹)) ylabel (“Y (f) | |”)轴%使图形变大Outpos = get(图,“OuterPosition”);集(图,“OuterPosition”,[出站点(1)-125出站点(2)-375宽高]);