[pll][pm]锁相环模拟相位解调 -ag凯发k8国际
ag凯发k8国际
收集整理的这篇文章主要介绍了
[pll][pm]锁相环模拟相位解调
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
%锁相环测试
%模拟相位解调clear
close all
clcfs=1000; %采样率
tend=100;
t=0:1/fs:tend;
t(end)=[];
fc=1; %载波频偏
fb=100; %pm调制信号频率
gain=0.2; %锁相环输入增益
ebn0=20;[b,a]=cheby2(3,30,0.2); %切比雪甫滤波器
num=gain*b;
den=conv([1 -1],a) [num,0];
pole=roots(den);
abs(pole) %计算系统稳定性
fvtool(b,a);
lb=length(b);
la=length(a)-1;
bb=zeros(1,lb);
aa=zeros(1,la);cio=cos(2*pi*fc*t cos(2*pi*fb*t));
cqo=sin(2*pi*fc*t cos(2*pi*fb*t));
ci=awgn(cio,ebn0,'measured');
cq=awgn(cqo,ebn0,'measured');
cout=complex(zeros(size(ci)),zeros(size(cq)));
phase_out=zeros(size(ci));
phase=0;for k=1:length(cout)cout(k)=exp(1i*phase);err=complex(ci(k),cq(k))*exp(-1i*phase);phase_out(k)=angle(err);err=phase_out(k)*gain;bb=[err,bb(1:lb-1)];err=sum(bb.*b)-sum(aa.*a(2:end));aa=[err,aa(1:la-1)];phase=phase err;if phase>pi, phase=phase-2*pi;elseif phase<-pi, phase=phase 2*pi;end
endco=fft(cio);
co=abs(co)/length(co);
cr=fft(real(cout));
cr=abs(cr)/length(cr);
f=linspace(0,fs,length(cr));
n=ceil(length(f)/2);
plot(f(1:n),co(1:n),'r');
hold on
plot(f(1:n),cr(1:n),'b');
figure
plot(t,phase_out);
po=fft(phase_out);
po=abs(po)/length(po);
figure
plot(f(1:n),po(1:n));
总结
以上是ag凯发k8国际为你收集整理的[pll][pm]锁相环模拟相位解调的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: