主要内容

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

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

发现Digilent设备

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

daqlist (“digilent”) dq = daq(“digilent”
ans = 1×4表的DeviceID DeviceInfo描述模型  ________ _____________________________________________ ____________________ _______________________ " AD1”“Digilent公司。模拟发现2套件Rev. C" "模拟发现2" [1×1大全.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和通道标识1.设置波形类型为任意的.输出信号的电压范围是-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 * *f2, len)) +...sin (linspace(0, 2 *π* f3, len));波形(结束)= [];

分配波形数据和设置波形频率

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

添加模拟输入通道

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

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

定义采集扫描速率

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

oversamplingratio = 50;Fn = 2 *频率;Fs =过幅* Fn;dq。率= f;

生成周期波形并记录输入

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

定义图参数

k = 5;宽度= 750;身高= 750;时间= 1 /频率;numperiod = 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);无花果=图;绘制所需波形次要情节(311)情节(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]);绘制单边振幅谱次要情节(313)茎(fplot 2 * abs (Yplot));标题(“单面波形振幅谱”)包含(的频率(赫兹)) ylabel (“Y (f) | |”)轴%使图变大outpos =获得(图,“OuterPosition”);集(图,“OuterPosition”, [outpos(1)-125 outpos(2)-375 width height]);

Baidu
map