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))
调制:将各种数字基带信号转换成适于信道传输的数字调制信号(已调信号或频带信号)。调制就是用基带信号去控制载波信号的某个或几个参量的变化,将信息荷载在其上形成已调信号传输,而解调是调制的反过程,通过具体的方法从已调信号的参量变化中将恢复原始的基带信号。解调:在接收端将收到的数字频带信号还原成数字基带信号。 调制就是将基带信号的频谱搬移到信道通带中或者其中的某个频段上的过程,而解调是将信道中来的频带信号恢复为基带信号的反过程。
调制的原因:调制的目的是把要传输的模拟信号或数字信号变换成适合信道传输的信号,这就意味着把基带信号(信源)转变为一个相对基带频率而言频率非常高的代通信号。该信号称为已调信号,而基带信号称为调制信号。调制可以通过使高频载波随信号幅度的变化而改变载波的幅度、相位或者频率来实现。调制过程用于通激携信系统的发端。
常常采用的调制方式有以下几种:
(一)模拟调制:用连续变化的信号去调制一个高频正弦波
主要有:1.幅度调制(调幅AM,双边带调制DSBSC,单边带调幅SSBSC,残留边带调制VSB以及独立边带ISB);
2.角度调制(调频FM,调相PM)两种。因为相位的变化率就是频率,所以调相波和调频波是明扒伏密切相关的;
(二)数字调制:用数字信号对正弦或余弦高频振荡进行调制
主要有:1.振幅键控ASK
2.频率键控此御FSK
3.相位键控PSK
(三)脉冲调制:用脉冲序列作为载波
主要有:1.脉冲幅度调制(PAM:Pulse Amplitude Modulation);
2.脉宽调制(PDM:Pulse Duration Modulation);
3.脉位调制(PPM:Pulse Position Modulation);
4.脉冲编码调制(PCM:Pulse Code Modulation)
先得信号核码的相位,unwrap 校正相位角,使相位在整体上连续喊李,diff对该相位角求导至于线性计算郑氏迟部分跟你的调制公式有关系的,不一定。u=cos(2*pi*fc*t+2*pi*kf*int_m)
int_m是0—t区间内对信号函数的积分。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)