这个是可以的,但是前提条件是要作为一个工程。单个VI可以使用 工具 --》通过VI生成应用程序,这样,就自动建立一个工程。
后续 *** 作见下图
注意,新建应用程序(EXE)这步是必须的,然后再新建 安装程序,选择源文件的时候选中你上一步的EXE。这样,就会生成一个安装包,脱离labview。但是安装包一百都要上百M,因为里面包含了labview的好多驱动之类的东西。
FM调制是是恒包络调制,基本没有峰均比,PA利用率高,相对于幅度调制有更好的抗干扰性能,缺点是带宽利用率低。
FM调制信号表示如下,其实质是差分频率调制,即该sample的频率是前一个sample的频率加上调制信号变化量,具体表现为每个sample相位的变化。
假设| x(t) | ≤ 1,则fd是相对于中心频点的最大频偏。当x(t)恒等于1时,等效为上变频fd。
FM调制通常会拓展频谱,这是因为频率调制的本质是搬频,占用带宽为最大的搬频距离加上基带带宽,即R+2*fd,其中R为基带信号带宽(符号速率),调制因子dm=fd/fmax,fmax=R/2,| x(t) | ≤ 1
FM解调使用差分解调,提取相位变化量。
根据FM调制原理,t时刻调制的相位为
2*pi*fd* x(t-1)/fs+2*pi*fd*x(t)/fs
其中dt = 1/fs,相位增量为2*pi*fd*x(t)/fs,需要满足在[-pi pi]的范围内,即x(t)*fd/fs的绝对值应小于0.5,否则会造成相位溢出失真。
在保证相位无失真的情况下调整x(t)的增益可直接调整调制信号带宽。
FM实现需要框图如下,解调时的fs可以不等于调制时的fs,具体通过延时N来调整,不能让相位溢出
频谱仿真
%% Plot Spectrum of FM Modulated Baseband Signal
% Apply FM baseband modulation to BPSK source and plot its
% spectrum.
clearclose all
% Set the example parameters.
fs = 20e3 % Sample rate (Hz)
ts = 1/fs % Sample period (s)
Rs = 1e3 % Baseband symbol rate
dm = 1 % FM modulation factor
fd = Rs/2*dm % Frequency deviation (Hz)
Nup = fs/Rs % Up-sampling times
%%
% Create a BPSK symbol source having a duration of 1s.
%%
Nsymb = 1*Rs
symbBpsk = (randi([0 1],Nsymb, 1)-0.5)*2
%%
% Upsampleing BPSK symbol to fs and shape it by Raised cosine FIR pulse-shaping filter
%%
rrcFilter = rcosdesign(0.25,20,Nup,'norm')
dataRrcIn = upsample(symbBpsk,Nup)
dataRrcTemp = conv(dataRrcIn,rrcFilter)
NtailRrc = floor(length(rrcFilter)/2)
dataRrcOut = dataRrcTemp(NtailRrc+1:end-NtailRrc)
% Scale power, normalise the power of optimum sampling point, the scale
% of FM input signal will directly determine FM bandwidth
xOptSamp = dataRrcOut(1:Nup:end)
plot(xOptSamp,'*')
x = dataRrcOut/mean(abs(xOptSamp))
plot(x,'*')
%%
% Create an FM modulator System object and modulate the input signal.
%%
MOD1 = comm.FMModulator('SampleRate',fs,'FrequencyDeviation',fd)
y = step(MOD1,x)
%%
% Create another modulator object, |MOD2|, whose frequency deviation is
% two times larger and apply FM modulation.
%%
MOD2 = comm.FMModulator('SampleRate',fs,'FrequencyDeviation',2*fd)
z = step(MOD2,x)
%%
% Plot the spectra of the two modulated signals. The larger frequency deviation
% associated with channel 2 results in a noise level that is 10 dB higher.
%%
SA = dsp.SpectrumAnalyzer('SampleRate',fs,'ShowLegend',true)
step(SA,[x y z])
%%
调整信号大小仿真
% FM link
clearclose all
fb = 1e3
dm = 1
fd = Rs/2*dm % Frequency deviation (Hz)
fs = 8e3
Nup = fs/fb
data = (randi([0 1],1000, 1)-0.5)*2 % BPSK
figureplot(data,'-*')
% 成型滤波器
rrcFilter = rcosdesign(0.25,20,Nup,'norm')
dataRrcIn = upsample(data,Nup)
dataRrcTemp = conv(dataRrcIn,rrcFilter)
NtailRrc = floor(length(rrcFilter)/2)
dataRrcOut = dataRrcTemp(NtailRrc+1:end-NtailRrc)
dataIn = dataRrcOut/mean(abs(dataRrcOut)) % Scale power
% 调制相位需要控制在[-pi pi],否则会造成相位失真,即 dataIn*fd/fs的绝对值不能超过0.5
dataIn = dataIn*fs/fd*0.5
maxDelta = max(abs(dataIn*fd/fs))
FMMethod = comm.FMModulator('SampleRate',fs,'FrequencyDeviation',fd)
modSymb = step(FMMethod,dataIn)
FMDeMethod = comm.FMDemodulator('SampleRate',fs,'FrequencyDeviation',fd)
demodSymb = step(FMDeMethod,modSymb)
isequal(fi(dataIn,1,13,10),fi(demodSymb,1,13,10))
return
% my function
addTemp = 0
for i = 1:length(dataIn)
addTemp = dataIn(i)+addTemp
modPhase(i,1) = 2*pi*fd*addTemp*(1/fs)
end
modSymbOut = exp(1j*modPhase)
dataDemodIn = modSymbOut
% demod
dataDemodOut(1,1) = angle(dataDemodIn(1))/(2*pi*fd/fs)
Ndelay = 1
for i = 1:length(dataDemodIn)-Ndelay
deltaPhase = dataDemodIn(i+Ndelay)*conj(dataDemodIn(i))
dataDemodOut(i+1,1) = angle(deltaPhase)/(2*pi*fd/fs)
end
isequal(fi(dataIn,1,13,10),fi(dataDemodOut,1,13,10))
labview做pam调制解调实验:一般的实验板,主要有两种抽样脉冲:一种是由555及其它元件组成,这是一个单谐振荡器电路,能产生极性、脉宽、频率可调的方波信号,可通过调节电位器实现输出脉冲频率的变化,来验证取样定理。
GUI中通过控件调用M里面的函数,也可以和simulink建立联系,可有simulink输出波形,并给出分析。基本上你的题目已经涵盖了Matlab的三个系统,即GUI,M,simulink。
特点:
尽可能采用了通用的硬件,各种仪器的差异主要是软件。
可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
用户可以根据自己的需要定义和制造各种仪器。
虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。使用较多的是IEEE488 或 GPIB协议。未来的仪器也应当是网络化的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)