MSK调制解调

1. MSK信号产生原理

1.1 MSK信号时域特征

二进制最小频移键控(Minimum Shift Keying,MSK)信号的标识可写为:
S M S K = c o s ( ω c t + π a k 2 T b t + φ k ) S_{MSK}=cos\left ( \omega _{c}t+\frac{\pi a_{k}}{2T_{b}}t+\varphi _{k} \right ) SMSK=cos(ωct+2Tbπakt+φk)
其中, k T b ⩽ t ⩽ ( k + 1 ) T b kT_{b}\leqslant t\leqslant (k+1)T_{b} kTbt(k+1)Tb ω c \omega _{c} ωc是载波角频率, T b T_{b} Tb是码元宽度, a k a_{k} ak是第k个码元中的数据(取值为 ± 1 \pm1 ±1), φ k \varphi _{k} φk是第k个码元中的相位常数,它在 k T b ⩽ t ⩽ ( k + 1 ) T b kT_{b}\leqslant t\leqslant (k+1)T_{b} kTbt(k+1)Tb中保持不变。
上式中,当 a k = 1 a_{k}=1 ak=1时,信号的频率 f 2 = 1 2 π ( ω c + π 2 T b ) f_{2}=\frac{1}{2\pi }\left ( \omega _{c}+\frac{\pi }{2T_{b}} \right ) f2=2π1(ωc+2Tbπ);当 a k = − 1 a_{k}=-1 ak=1时,信号的频率 f 2 = 1 2 π ( ω c − π 2 T b ) f_{2}=\frac{1}{2\pi }\left ( \omega _{c}-\frac{\pi }{2T_{b}} \right ) f2=2π1(ωc2Tbπ);由此可得频率间隔 △ f = f 2 − f 1 = 1 2 T b \bigtriangleup f=f_{2}-f_{1}=\frac{1}{2T_{b}} f=f2f1=2Tb1,调制指数 h = △ f T b = 0.5 h=\bigtriangleup fT_{b}=0.5 h=fTb=0.5
MSK信号和普通的2FSK信号的差别只是选择两个传信频率 f 1 f_{1} f1 f 2 f_{2} f2,使这两个频率的信号,在一个码元期间的相位积累严格地相差180°。一般频移键控的两个信号波形具有以下的相关系数:
ρ = s i n ( ω 2 − ω 1 ) T b ( ω 2 − ω 1 ) T b + s i n ( ω 2 + ω 1 ) T b ( ω 2 + ω 1 ) T b = s i n ( ω 2 − ω 1 ) T b ( ω 2 − ω 1 ) T b + s i n 2 ω c T b 2 ω c T b \rho=\frac{sin(\omega _{2}-\omega _{1})T_{b}}{(\omega _{2}-\omega _{1})T_{b}}+\frac{sin(\omega _{2}+\omega _{1})T_{b}}{(\omega _{2}+\omega _{1})T_{b}}=\frac{sin(\omega _{2}-\omega _{1})T_{b}}{(\omega _{2}-\omega _{1})T_{b}}+\frac{sin2\omega _{c}T_{b}}{2\omega _{c}T_{b}} ρ=(ω2ω1)Tbsin(ω2ω1)Tb+(ω2+ω1)Tbsin(ω2+ω1)Tb=(ω2ω1)Tbsin(ω2ω1)Tb+2ωcTbsin2ωcTb
MSK是一种正交调制,其信号波形的相关系数等于零,因此,对MSK信号来说,这个公式等号后面的两项都必须等于零。第一项等于零的条件是 ( ω 2 − ω 1 ) T b = 2 π ( f 2 − f 1 ) T b = K π ( K = 1 , 2 , 3 , ⋯   ) (\omega _{2}-\omega _{1})T_{b}=2\pi (f_{2}-f_{1})T_{b}=K\pi (K=1,2,3,\cdots ) (ω2ω1)Tb=2π(f2f1)Tb=Kπ(K=1,2,3,),令K等于其最小值1,则 f 2 − f 1 = 1 2 T b f_{2}-f_{1}=\frac{1}{2T_{b}} f2f1=2Tb1,这正是MSK信号所要求的频率间隔。第二项等于零的条件是 2 ω c T b = 4 π f c T b = n π ( n = 1 , 2 , 3 , ⋯   ) 2\omega _{c}T_{b}=4\pi f_{c}T_{b}=n\pi (n=1,2,3,\cdots ) 2ωcTb=4πfcTb=nπ(n=1,2,3,),即
T b = n 4 1 f c T_{b}=\frac{n}{4}\frac{1}{f_{c}} Tb=4nfc1
它说明MSK信号在每一个码元周期内,必须包含四分之一载波频率周期的整数倍。
相位常数 φ k \varphi _{k} φk的选择应保证信号相位在码元转换时刻是连续的。根据这一要求,可以导出以下的相位递归条件(也称相位约束条件)。
φ k = φ k − 1 + ( a k − 1 − a k ) π k 2 = { φ k − 1 , a k = a k − 1 φ k − 1 + k π , a k ≠ a k − 1 \varphi _{k}=\varphi _{k-1}+(a_{k-1}-a_{k})\frac{\pi k}{2}=\left\{\begin{matrix} \varphi _{k-1},& a_{k}=a_{k}-1\\ \varphi _{k-1}+k\pi ,& a_{k}\neq a_{k}-1 \end{matrix}\right. φk=φk1+(ak1ak)2πk={φk1,φk1+kπ,ak=ak1ak=ak1
上式说明,MSK信号在第k个码元的相位常数不仅与当前 a k a_{k} ak有关,而且与前面的 a k − 1 a_{k-1} ak1及其相位常数 φ k − 1 \varphi _{k-1} φk1有关。或者说,前后码元之间存在着相关性,对于相干解调来说, φ k \varphi _{k} φk的起始参考值可以假定为零而不失一般性。因此可以得到 φ k = 0 或 π ( 模 2 π ) \varphi _{k}=0或\pi(模2\pi) φk=0π2π

1.2 MSK信号频谱特性

MSK信号的功率谱密度表示为:
W ( f ) = 16 A 2 T b π 2 [ c o s [ 2 π ( f − f c ) T b ] 1 − [ 4 ( f − f c ) T b ] 2 ] 2 W(f)=\frac{16A^{2}T_{b}}{\pi ^{2}}\left [ \frac{cos[2\pi (f-f_{c})T_{b}]}{1-[4(f-f_{c})T_{b}]^{2}} \right ]^{2} W(f)=π216A2Tb[1[4(ffc)Tb]2cos[2π(ffc)Tb]]2
式中,A为信号的振幅。为便于比较,下面直接给出4PSK信号的功率谱密度公式:
W ( f ) = 2 A 2 T b [ s i n [ 2 π ( f − f c ) T b ] 2 π ( f − f c ) T b ] 2 W(f)=2A^{2}T_{b}\left [ \frac{sin[2\pi (f-f_{c})T_{b}]}{2\pi (f-f_{c})T_{b}} \right ]^{2} W(f)=2A2Tb[2π(ffc)Tbsin[2π(ffc)Tb]]2
在这里插入图片描述
上图是MSK信号和4PSK信号的功率谱密度曲线。从图中可见,与4PSK信号相比,MSK信号的功率谱密度有较宽的主瓣,前者第一个零点出现于 ( f − f c ) T b = 0.5 (f-f_{c})T_{b}=0.5 (ffc)Tb=0.5处,后者第一个零点出现于 ( f − f c ) T b = 0.75 (f-f_{c})T_{b}=0.75 (ffc)Tb=0.75处。但是,在主瓣意外,MSK信号的功率谱密度曲线却比4PSK衰减得快。这一点,不难从它们的功率谱密度表示式中看出来,因为当 ( f − f c ) T b ≫ 1 (f-f_{c})T_{b}\gg 1 (ffc)Tb1以后,4PSK信号的功率谱随 ( f − f c ) (f-f_{c}) (ffc)的平方而下降,而MSK信号的功率谱却随 ( f − f c ) (f-f_{c}) (ffc)的四次方而下降。以-3dB电平计算时,MSK信号带宽大于4PSK,以-50dB电平计算和以包含99%的信号功率计算时,MSK信号带宽明显小于4PSK信号。

1.3 MSK信号的产生方法

根据MSK的时域表达式,运用三角函数运算公式, c o s [ ω c t + θ ( t ) ] = c o s θ ( t ) c o s ω c t − s i n θ ( t ) s i n ω c t cos[\omega _{c}t+\theta (t)]=cos\theta (t)cos\omega _{c}t-sin\theta (t)sin\omega _{c}t cos[ωct+θ(t)]=cosθ(t)cosωctsinθ(t)sinωct,所以MSK信号也可以看成由两个彼此正交的载波 c o s ω c t cos\omega _{c}t cosωct s i n ω c t sin\omega _{c}t sinωct分别被函数 c o s θ ( t ) cos\theta (t) cosθ(t) s i n θ ( t ) sin\theta (t) sinθ(t)进行振幅调制而合成的。已知 θ ( t ) = π a k 2 T b t + φ k , a k = ± 1 , φ k = 0 或 π ( 模 2 π ) \theta (t)=\frac{\pi a_{k}}{2T_{b}}t+\varphi _{k},a_{k}=\pm 1,\varphi _{k}=0或\pi(模2\pi) θ(t)=2Tbπakt+φk,ak=±1,φk=0π(2π),因而
c o s θ ( t ) = c o s ( π t 2 T b ) c o s φ k , s i n θ ( t ) = a k t s i n ( π t 2 T b ) c o s φ k cos\theta (t)=cos(\frac{\pi t}{2T_{b}})cos\varphi _{k},sin\theta (t)=a_{k}tsin(\frac{\pi t}{2T_{b}})cos\varphi _{k} cosθ(t)=cos(2Tbπt)cosφk,sinθ(t)=aktsin(2Tbπt)cosφk
c o s φ k = I k , a k c o s φ k = Q k cos\varphi _{k}=I_{k},a_{k}cos\varphi _{k}=Q_{k} cosφk=Ik,akcosφk=Qk,得到
S M S K ( t ) = I k c o s ( π t 2 T b ) c o s ω c t − Q k s i n ( π t 2 T b ) s i n ω c t S_{MSK}(t)=I_{k}cos(\frac{\pi t}{2T_{b}})cos\omega _{c}t-Q_{k}sin(\frac{\pi t}{2T_{b}})sin\omega _{c}t SMSK(t)=Ikcos(2Tbπt)cosωctQksin(2Tbπt)sinωct
通过前面的分析,我们知道,只要找到 I k 、 Q k I_{k}、Q_{k} IkQk与原始数据 a k a_{k} ak的转换方法,就不难构建产生MSK信号的方法。显然, I k 、 Q k I_{k}、Q_{k} IkQk的取值只能是1或者-1。
下面给出MSK信号产生的步骤:
(1)对输入数据序列进行差分编码。
(2)把差分编码器的输出数据用串/并转换器分成两路,并且相互交错一个码元宽度 T b T_{b} Tb
(3)用加权函数 c o s ( π t 2 T b ) cos(\frac{\pi t}{2T_{b}}) cos(2Tbπt) s i n ( π t 2 T b ) sin(\frac{\pi t}{2T_{b}}) sin(2Tbπt)分别对两路数据进行加权。
(4)用两路加权后的数据分别对正交载波 c o s ω c t cos\omega _{c}t cosωct s i n ω c t sin\omega _{c}t sinωct进行调制
(5)将两路输出信号进行叠加。
在这里插入图片描述
图中左侧虚线由DDS完成MSK数字化调制,具体实现由FPGA完成,右侧为正交调制器AD9977完成正交上变频功能。要求整个调制器输出中频频率为70MHz,如果完全采用FPGA来实现70MHz中频MSK信号的产生,则DDS核必须工作在200MHz以上才能保证调制器输出信号的质量。因此,为了减少FPGA功耗,将MSK分成两个阶段来完成:首先在FPGA中控制DDS完成中心频率为6MHz的MSK调制,输出速率为32MHz的两路正交信号I(t)、Q(t),然后这两路信号与AD9977里的数字本振64MHz相混频,即完成数字正交调制过程,将中心频率变至70MHz。

2. MSK调制信号的FPGA实现

条件:符号速率Rb=1Mbps,载波信号频率fc=6MHz,采样频率fs=32Rb,输出数据位宽Bout=15。
源码

module MskMod (
	rst,clk,din,
	it,qt);
	
	input    rst;              //复位信号,高电平有效
	input		clk;   				//数据采样时钟:32MHz
	input	   din;              //调制原始数据,Rb=1 MHz
	//输出的CPFSK信号:fc=6 MHz,h=0.5,f1=5.75 MHz,f2=6.25 MHz
	output signed [14:0]	it; 
	output signed [14:0]	qt; 
   
	wire cod;
	//实例化NCO核
	Code	u1 (
		.rst (rst),
		.clk (clk),
		.din (din),
		.dout (cod));

	//实例化频率调制模块核
	FskMod	u2 (
		.rst (rst),
		.clk (clk),
		.din (cod),
		.it (it),
		.qt (qt));

		
endmodule
module Code (
	rst,clk,din,
	dout);
	
	input    rst;              //复位信号,高电平有效
	input		clk;   				//系统时钟信号,与采样频率相同,fs=32 MHz
	input	   din;              //差分编码前的调制数据:1 MHz
	output   dout; 				//差分编码后的调制数据:1 MHz


   reg data;
	reg [4:0] count;
	always @(posedge clk or posedge rst)
		if (rst)
			begin
				data <= 1'b0;
				count <= 5'd0;
			end
		else
			begin
				count <= count + 5'd1;
				if (count==5'd31)
					if (din)
						data <= ~data;
			end
			
	assign dout = data;
		
endmodule
module FskMod (
	rst,clk,din,
	it,qt);
	
	input    rst;              //复位信号,高电平有效
	input		clk;   				//数据采样时钟:32MHz
	input	   din;              //调制原始数据,Rb=1 MHz
	//输出的CPFSK信号:fc=6 MHz,h=0.5,f1=5.75 MHz,f2=6.25 MHz
	output signed [14:0]	it; 
	output signed [14:0]	qt; 


	
	//实例化NCO核所需的接口信号
	wire reset_n,out_valid,clken;
	wire [24:0] carrier;
	wire signed [24:0] frequency_df;
	assign reset_n = !rst;
	assign clken = 1'b1;
	assign carrier=25'd6291456;//6MHz
	
	//实例化NCO核
	dds	u0 (
		.phi_inc_i (carrier),
		.clk (clk),
		.reset_n (reset_n),
		.clken (clken),
		.freq_mod_i (frequency_df),
		.fsin_o (it),
		.fcos_o (qt),
		.out_valid (out_valid));

	//Rb=1MHz,h=0.5,df1=-0.25MHz df2=0.25MHz
	//根据输入数据的高电低平,设置不同的频率偏移量
	assign frequency_df = (din)?25'd262144:-25'd262144;

		
endmodule

3. MSK解调原理

3.1 延迟差分解调

一比特延迟差分解调
在这里插入图片描述
假设中频滤波器输出信号为:
S I F ( t ) = R ( t ) c o s [ ω c t + φ ( t ) ] + n ( t ) S_{IF}(t)=R(t)cos[\omega _{c}t+\varphi (t)]+n(t) SIF(t)=R(t)cos[ωct+φ(t)]+n(t)
式中,R(t)为信号的实时包络,n(t)是噪声或干扰。
中频信号和经过延时 T b T_{b} Tb并移相 π / 2 \pi/2 π/2的中频信号相乘后,得到
S m u l t ( t ) = R ( t ) c o s [ ω c t + φ ( t ) ] R ( t − T b ) c o s [ ω c ( t − T b ) + φ ( t − T b ) ] S_{mult}(t)=R(t)cos[\omega _{c}t+\varphi (t)]R(t-T_{b})cos[\omega _{c}(t-T_{b})+\varphi (t-T_{b})] Smult(t)=R(t)cos[ωct+φ(t)]R(tTb)cos[ωc(tTb)+φ(tTb)]
经过低通滤波器后,此信号变成
y ( t ) = 1 2 R ( t ) R ( t − T b ) s i n [ ω c T b + Δ φ ( T b ) ] y(t)=\frac{1}{2}R(t)R(t-T_{b})sin[\omega _{c}T_{b}+\Delta \varphi (T_{b})] y(t)=21R(t)R(tTb)sin[ωcTb+Δφ(Tb)]
式中, Δ φ ( T b ) = φ ( t ) − φ ( t − T b ) \Delta \varphi (T_{b})=\varphi (t)-\varphi (t-T_{b}) Δφ(Tb)=φ(t)φ(tTb)
根据MSK信号特征,设 ω c T b = k ( 2 π ) \omega _{c}T_{b}=k(2\pi) ωcTb=k(2π)(k为整数),则
y ( t ) = 1 2 R ( t ) R ( t − T b ) s i n Δ φ ( T b ) y(t)=\frac{1}{2}R(t)R(t-T_{b})sin\Delta \varphi (T_{b}) y(t)=21R(t)R(tTb)sinΔφ(Tb)
二比特延迟差分解调
在这里插入图片描述
由图可知,经过相乘器与低通滤波器的信号为
y ( t ) = 1 2 R ( t ) R ( t − 2 T b ) c o s [ 2 ω c T b + Δ φ ( 2 T b ) ] y(t)=\frac{1}{2}R(t)R(t-2T_{b})cos[2\omega _{c}T_{b}+\Delta \varphi (2T_{b})] y(t)=21R(t)R(t2Tb)cos[2ωcTb+Δφ(2Tb)]
式中, Δ φ ( 2 T b ) = φ ( t ) − φ ( t − 2 T b ) \Delta \varphi (2T_{b})=\varphi (t)-\varphi (t-2T_{b}) Δφ(2Tb)=φ(t)φ(t2Tb)
同样,当 2 ω c T b = k ( 2 π ) 2\omega _{c}T_{b}=k(2\pi) 2ωcTb=k(2π),有
y ( t ) = 1 2 R ( t ) R ( t − 2 T b ) c o s [ φ ( t ) − φ ( t − T b ) ] c o s [ φ ( t − T b ) − φ ( t − 2 T b ) ] − s i n [ φ ( t ) − φ ( t − T b ) ] s i n [ φ ( t − T b ) − φ ( t − 2 T b ) ] y(t)=\frac{1}{2}R(t)R(t-2T_{b}){cos[\varphi (t)-\varphi (t-T_{b})]cos[\varphi (t-T_{b})-\varphi (t-2T_{b})]-sin[\varphi (t)-\varphi (t-T_{b})]sin[\varphi (t-T_{b})-\varphi (t-2T_{b})]} y(t)=21R(t)R(t2Tb)cos[φ(t)φ(tTb)]cos[φ(tTb)φ(t2Tb)]sin[φ(t)φ(tTb)]sin[φ(tTb)φ(t2Tb)]

3.2 平方环相干解调

在这里插入图片描述
由于MSK信号的调制指数h=0.5,经过平方处理后,调制指数实际上变为1。调制指数为1的CPFSK信号,其功率谱中存在着离散分量,即二倍传信号频率 2 f H 2f_{H} 2fH和二倍空号频率 2 f L 2f_{L} 2fL。因此,可以用两个锁相环电路分别提取出这两个频率。因此可以得到载波频率 f c f_{c} fc和时钟频率 f R f_{R} fR之间的关系为:
f c = f H + f L 2 , f R = 2 f H − 2 f L f_{c}=\frac{f_{H}+f_{L}}{2},f_{R}=2f_{H}-2f_{L} fc=2fH+fL,fR=2fH2fL
为了得到 f c f_{c} fc f R f_{R} fR,在电路中将两个锁相环锁定的 2 f H 2f_{H} 2fH 2 f L 2f_{L} 2fL两个信号相乘,并经过低通滤波,就可以得到时钟频率 f R f_{R} fR信号,它经脉冲形成后得到所需的时钟脉冲,再由此产生各种定时信号;将除以2后得到 f H f_{H} fH f L f_{L} fL相乘,并讲过低通滤波可获得 f R / 2 f_{R}/2 fR/2,其速率与正交两路数据的速率相同,可用于正交两路数据的判决定时。 2 f H 2f_{H} 2fH 2 f L 2f_{L} 2fL除以2后得到的信号为:
S 1 ( t ) = c o s ( 2 π f H t ) = c o s ( 2 π f c t + π t 2 T b ) S_{1}(t)=cos(2\pi f_{H}t)=cos\left (2\pi f_{c}t +\frac{\pi t}{2T_{b}} \right ) S1(t)=cos(2πfHt)=cos(2πfct+2Tbπt)
S 2 ( t ) = c o s ( 2 π f L t ) = c o s ( 2 π f c t − π t 2 T b ) S_{2}(t)=cos(2\pi f_{L}t)=cos\left (2\pi f_{c}t -\frac{\pi t}{2T_{b}} \right ) S2(t)=cos(2πfLt)=cos(2πfct2Tbπt)
将上式相加/相减得到
S 1 ( t ) + S 2 ( t ) = 2 c o s π t 2 T b c o s ( 2 π f c t ) S_{1}(t)+S_{2}(t)=2cos\frac{\pi t}{2T_{b}}cos(2\pi f_{c}t) S1(t)+S2(t)=2cos2Tbπtcos(2πfct)
S 1 ( t ) − S 2 ( t ) = − 2 s i n π t 2 T b s i n ( 2 π f c t ) S_{1}(t)-S_{2}(t)=-2sin\frac{\pi t}{2T_{b}}sin(2\pi f_{c}t) S1(t)S2(t)=2sin2Tbπtsin(2πfct)
为便于对比,我们将MSK信号的时域表达式重写如下
S M S K ( t ) = I k c o s ( π t 2 T b ) c o s ω c t − Q k s i n ( π t 2 T b ) s i n ω c t S_{MSK}(t)=I_{k}cos\left ( \frac{\pi t}{2T_{b}} \right )cos\omega _{c}t-Q_{k}sin\left ( \frac{\pi t}{2T_{b}} \right )sin\omega _{c}t SMSK(t)=Ikcos(2Tbπt)cosωctQksin(2Tbπt)sinωct
容易看出,将相干载波信号分别与接收到的中频信号相乘,并滤除相干载波的2倍频信号,经过正确的抽样判决后,即可获得两路正交的调制数据。

4. MSK解调的MATLAB仿真

条件:符号速率Rb=1Mbps,载波信号频率fc=3MHz,采样频率fs=16Rb。
由于锁相环的设计比较复杂,本程序不适用锁相环电路仿真,直接用产生调制信号的载波进行相干解调。
源码

ps=1*10^6;  %码速率为1MHz
Fs=16*10^6; %采样速率为16MHz
fc=3*10^6;  %载波频率为3MHz

N=100;        %数据码元个数
Len=N*Fs/ps;  %仿真数据的长度
x = randint(N,1,2)'; % 产生随机数据做为数据码元
%x=ones(1,N);
dx=ones(1,N);
for i=1:N
    if x(i)==0
        x(i)=-1;
    end
end
%求原码的相对码dx
for i=2:N
    if x(i)==1
        dx(i)=-dx(i-1);
    else
        dx(i)=dx(i-1);
    end
end

%将相对码按奇偶序号分成两路数据,形成Ik\Qk
di=ones(1,N);
dq=ones(1,N);
%取dx的偶数位,并列两位为di
for i=2:2:N
    di(i:i+1)=dx(i);
end
%取dx的奇数位,并列两位为dq
for i=1:2:N-1
    dq(i:i+1)=dx(i);
end

%对原始BIT数据进行Fs/ps倍重采样
udi=ones(1,N*Fs/ps);
udq=ones(1,N*Fs/ps);
for i=1:N
    udi(Fs/ps*(i-1)+1:Fs/ps*i)=di(i);
    udq(Fs/ps*(i-1)+1:Fs/ps*i)=dq(i);
end
% udi=rectpulse(di,Fs/ps);
% udq=rectpulse(dq,Fs/ps);

%产生MSK信号所需的载波信号
t=0:1/Fs:(Len-1)/Fs;
cf0c=cos(2*pi*fc.*t);
sf0c=sin(2*pi*fc.*t);
cfps=cos(pi*ps/2.*t);
sfps=sin(pi*ps/2.*t);

%正交调制法产生msk信号
msk=udi.*cfps.*cf0c-udq.*sfps.*sf0c;

 
%MSK 解调
%第一种相干解调,需要同时获取fc,fb的载波频率
% demod_i=msk.*cf0c.*cfps;
% demod_q=msk.*sf0c.*sfps;
%平方环相干解调,只需获取fL、fH的载波频率
fL=cos(2*pi*fc.*t-2*pi*ps/4.*t);%cos(2*pi*ps/4.*t)
fH=cos(2*pi*fc.*t+2*pi*ps/4.*t);

demod_i=msk.*(fH+fL);
demod_q=msk.*(fH-fL);
%低通滤波后,获取I、Q支路基带波形
b=fir1(30,0.5*ps*2/Fs);%设计低通滤波器
f_i=filter(b,1,demod_i);
f_q=filter(b,1,demod_q);

%求Tb/2的时钟信号波形
% fL2=cos(4*pi*fc.*t-4*pi*ps/4.*t);%cos(2*pi*ps/4.*t)
% fH2=cos(4*pi*fc.*t+4*pi*ps/4.*t);
% b2=fir1(30,1*ps*2/Fs);%设计低通滤波器
% fb=fL2.*fH2;
% rb=filter(b2,1,fb);

fb=fL.*fH;
% tb=filter(b,1,fb);
rb=filter(b,1,fb);
% 
% for i=1:length(rb)-1
%     rb(i)=tb(i+1)-tb(i);
% end
% rb=rb>=0;
%绘制解后的I、Q支路基带波形及时钟信号波形
figure(1); 
num=800;
x_t=0:1/Fs:(num-1)/Fs;
x_t=x_t*10^6;
subplot(411);plot(x_t,udi(1:num));axis([0 25 -1.2 1.2]);
legend('I支路原始数据时域波形');
xlabel('时间(us)');ylabel('幅度(V)');
subplot(412);plot(x_t,f_i(1:num),'-',x_t,rb(1:num),'--');
legend('I支路解调数据','时钟信号');
xlabel('时间(us)');ylabel('幅度(V)');
subplot(413);plot(x_t,udq(1:num));axis([0 25 -1.2 1.2]);
legend('Q支路原始数据时域波形');
xlabel('时间(us)');ylabel('幅度(V)');
subplot(414);plot(x_t,f_q(1:num),'-',x_t,rb(1:num),'--');
legend('Q支路解调数据','时钟信号');
xlabel('时间(us)');ylabel('幅度(V)');




%绘制MSK信号的频谱及时域波形
figure(2);
%求MSK信号的FFT变换
m_msk=20*log10(abs(fft(msk,2048)));
m_msk=m_msk-max(m_msk);
%设置幅频响应的横坐标单位为MHz
x_f=1:length(m_msk);
x_f=x_f*Fs/length(m_msk)/10^6;
%绘制MSK信号的频谱
subplot(211);
plot(x_f,m_msk);axis([0 Fs/2/10^6 -80 0]);
legend('MSK信号频谱');
xlabel('频率(MHz)');ylabel('幅度(dB)');grid on;

%绘制MSK信号的时域波形
subplot(212);
%设置横坐标单位为us
LT=100;
x_t=0:1/Fs:(LT-1)/Fs;
x_t=x_t*10^6;
plot(x_t,msk(100:100+LT-1))
legend('MSK信号时域波形');
xlabel('时间(us)');ylabel('幅度(V)');

运行结果图如下。从图中可以看出,对于I支路数据而言,1/2倍码速率时钟信号与解调后的I路数据完全同步,最佳判决时刻为时钟波形的波峰出;对于Q支路数据而言,1/2倍码速率时钟信号与解调后的I路数据完全正交,最佳判决时刻为时钟波形的波谷出。
在这里插入图片描述
在这里插入图片描述

  • 20
    点赞
  • 242
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值