matlab的costas环载波恢复,环路滤波器系数有推导
- 格式:docx
- 大小:15.61 KB
- 文档页数:2
一种改进的变步长LMS算法在Costas环中的应用马丛珊;高俊;娄景艺【摘要】针对传统固定步长LMS算法在稳态误差、收敛速度、跟踪速度方面无法兼得的问题,比较多种不同的变步长LMS算法,提出了一种改进变步长LMS算法.通过对该算法进行仿真分析,发现该算法不仅满足稳态误差、收敛速度、跟踪速度各方面的要求,还减小了噪声对算法的干扰.同时,为了解决科斯塔斯(Costas)环在现实硬件实现中两路信号无法完全一致的问题,将改进变步长LMS算法运用到科斯塔斯(Costas)环中,成功实现了载波恢复.【期刊名称】《通信技术》【年(卷),期】2016(049)006【总页数】6页(P673-678)【关键词】LMS算法;变步长;科斯塔斯(Costas)环;载波恢复【作者】马丛珊;高俊;娄景艺【作者单位】海军工程大学电子工程学院,湖北武汉430033;海军工程大学电子工程学院,湖北武汉430033;海军工程大学电子工程学院,湖北武汉430033【正文语种】中文【中图分类】TN911在短波通信系统接收机中,如何产生与载波信号同频同相的本地载波信号,是最后输出优质解调信号的重要条件之一。
而随着通信、导航等行业的发展,对短波接收机的要求也越来越高。
而在传统的载波同步方法中,无论是平方环还是科斯塔斯(Costas)环,都需要I、Q两路信号,且要求经过低通滤波器后的两路信号具有频率相同、相位相差90°的特性。
然而,现实的硬件设计很难满足。
而在LMS算法中,由于传统固定步长LMS算法[1]无法在稳态误差、收敛速度和跟踪速度方面获得最优性能,因此本文在对多种变步长LMS算法进行讨论的基础上,提出一种改进的变步长LMS算法。
仿真分析表明,该算法不仅可满足稳态误差、收敛速度和跟踪速度的要求,而且对噪声有很好的抑制作用。
同时,本文尝试将改进变步长LMS算法运用到科斯塔斯(Costas)环中,只需一路信号,即可完成最后的本地载波提取。
MATLAB滤波器系数1. 引言滤波器是信号处理中常用的工具,用于改变信号的频率特性。
在MATLAB中,滤波器系数是滤波器设计的核心要素之一。
本文将详细介绍MATLAB中滤波器系数的概念、设计方法和应用。
2. 滤波器系数的概念滤波器系数是滤波器的权重参数,用于调整输入信号的不同频率分量的幅度和相位。
滤波器系数可以通过不同的设计方法来获得,常见的方法包括:窗函数法、频率采样法、极点零点法等。
3. 窗函数法设计滤波器系数窗函数法是一种常用的滤波器设计方法,它通过将理想滤波器的频率响应与一个窗函数相乘来获得滤波器系数。
常见的窗函数有矩形窗、汉宁窗、汉明窗等。
设计滤波器系数的步骤如下:3.1 确定滤波器类型和截止频率根据实际需求确定滤波器的类型(低通、高通、带通、带阻)和截止频率。
3.2 选择窗函数根据设计要求选择合适的窗函数,不同的窗函数对滤波器的频率响应和时域特性有不同的影响。
3.3 计算理想滤波器的频率响应根据滤波器类型和截止频率计算理想滤波器的频率响应。
理想滤波器的频率响应可以通过MATLAB中的函数进行计算,如fir1、fir2等。
3.4 选择窗函数长度窗函数的长度会影响滤波器的频率响应和时域特性,选择合适的窗函数长度是滤波器设计中的关键一步。
3.5 计算滤波器系数将理想滤波器的频率响应与选择的窗函数相乘,得到滤波器的频率响应。
通过MATLAB中的函数进行计算,如fir1、fir2等。
4. 频率采样法设计滤波器系数频率采样法是一种基于频域的滤波器设计方法,它通过对滤波器的频率响应进行采样和插值来获得滤波器的系数。
设计滤波器系数的步骤如下:4.1 确定滤波器类型和截止频率与窗函数法相同,根据实际需求确定滤波器的类型和截止频率。
4.2 选择采样点数选择足够的采样点数,通常要求采样频率是截止频率的2倍以上。
4.3 计算理想滤波器的频率响应根据滤波器类型和截止频率计算理想滤波器的频率响应。
可以使用MATLAB中的函数进行计算,如firls、firpm等。
滤波器设计示例1、Matlab 设计IIR 基本示例 (1)(1)直接设计数字滤波器 (1)(2)脉冲相应不变法 (2)(3)双线性变换 (2)(4)双线形变换法设计chebyshev 高通滤波器 (3)(5)使用MatLab6 下的Filter Designed Tool (4)2、Matlab 设计IIR 高级示例 (4)(1)双线性变换实现ButterWorth 低通 (4)(2)双线性变换法实现Chebyshev 低通(I 型) (5)(3)低通变换为高通 (6)(2)低通变换为带通 (7)(3)低通变换为带通(双线性变换) (8)3、Matlab 窗函数设计FIR 滤波器基本示例 (9)(1)低通滤波器实现 (9)(2)带通滤波器实现 (9)1、Matlab设计IIR基本示例[返回](1)直接设计数字滤波器[返回]低通,采样频率为1Hz,通带临界频率f p =0.2Hz,通带内衰减小于1dB(αp=1);阻带临界频率f s=0.3Hz,阻带内衰减大于25dB(αs=25)。
设计一个数字滤波器满足以上参数。
% Matlab 使用归一化的频率参数(临界频率除以采样频率的1/2)。
%这样临界频率参数的取值范围在0 和1 之间,1 代表Fs/2(用角频率表示的时候对应π)FS=1[n,Wn]=buttord(0.2/(FS/2),0.3/( FS /2),1,25);[b,a]=butter(n,Wn);freqz(b,a,512, FS);(2)脉冲相应不变法[返回]低通,采样频率为1Hz,通带临界频率f p =0.2Hz,通带内衰减小于1dB(αp=1);阻带临界频率f s=0.3Hz,阻带内衰减大于25dB(αs=25)。
设计一个数字滤波器满足以上参数。
FS=1[n,Wn]=buttord(0.2*2*pi,0.3*2*pi,1,25,'s'); %临界频率采用角频率表示[b,a]=butter(n,Wn,'s');%freqs(b,a) %设计模拟的[bz,az]=impinvar(b,a,FS); %映射为数字的freqz(bz,az,512,FS)(3)双线性变换[返回]低通,采样频率为1Hz,通带临界频率f p =0.2Hz,通带内衰减小于1dB(αp=1);阻带临界频率f s=0.3Hz,阻带内衰减大于25dB(αs=25)。
电子科技大学通信学院《通信原理及同步技术系列实验八》二相BPSK(DPSK)调制解调实验班级学生学号教师二相BPSK(DPSK)调制解调实验指导书二相BPSK(DPSK)调制解调实验一、实验目的1、掌握二相BPSK(DPSK)调制解调的工作原理。
2、掌握二相绝对码与相对码的变换方法。
3、熟悉BPSK(DPSK)调制解调过程中各个环节的输入与输出波形。
4、了解载波同步锁相环的原理与构成,观察锁相环各部分工作波形。
5、了解码间串扰现象产生的原因与解决方法,能够从时域和频域上分析经过升余弦滚降滤波器前后的信号。
6、掌握Matlab软件的基本使用方法,学会Simulink环境的基本操作与应用。
二、实验原理数字信号载波调制有三种基本的调制方式:幅移键控(ASK),频移键控(FSK)和相移键控(PSK)。
它们分别是用数字基带信号控制高频载波的参数如振幅、频率和相位,得到数字带通信号。
PSK调制在数字通信系统中是一种极重要的调制方式,它的抗干扰噪声性能及通频带的利用率均优于ASK幅移键控和FSK频移键控。
由于PSK调制具有恒包络特性,频带利用率比FSK高,并在相同的信噪比条件下误码率比FSK低。
同时PSK调制的实现也比较简单。
因此,PSK技术在中、高数据传输中得到了十分广泛的应用。
BPSK是利用载波相位的变化来传递数字信息,而振幅和频率保持不变。
在BPSK中,通常用初始相位0和π分别表示二进制“1”和“0”。
其调制原理框图如图1所示,解调原理框图如图2所示。
图1 BPSK的模拟调制方式由于在BPSK 信号的载波恢复过程中存在着载波相位0 和180 的不确定性反向,所以在实际的BPSK 通信系统设计中,往往采用差分编解码的方法克服这个问题。
差分编解码是利用前后信号相位的跳变来承载信息码元,不再是以载波的绝对相位传输码元信息。
差分编解码的原理可用下式描述。
1n n n d b d -=⊕ 1ˆˆˆn n n b d d -=⊕ 其中第一个公式为差分编码原理,第二个公式为差分解码原理。
使用MATLAB设计ISE中FIR滤波器系数的方法
1、打开MATLAB,在命令行窗口输入“fdatool”,打开“Filter Designer & Analysis Tool”工具。
如下图所示:
2、由于FPGA中滤波器的系数需要为整数,因此需要在此处将系数设置为“Fixed -point”类型。
点击上图中红色方框内的按钮,在新出现的页面中将“Filter arithmetic”设置为“Fixed -point”。
设置完成后如下图所示:
3、点击上图中红色方框内的按钮,进入滤波器参数设置页面,在其中设置采样频率(Fs)、通带频率(Fpass)、阻带频率(Fstop)以及阻带衰减(Astop)等参数,并按最下面的“Design Filter”按钮生成滤波器系数。
如下图所示,采样频率为62MHz,通带频率为2MHz,阻带频率为4MHz,阻带衰减为-80dB。
4、然后导出coe文件,点击下图方框中的按钮即可导出coe文件:
5、在ISE中新建一个FIR滤波器IP核,在第一页设置中将“Select Source”改为“COE File”,然后在下面选择上一步生成的coe文件即可。
COSTAS 环的仿真与实现一. COSTAS 环的原理:同步是通信系统中一个重要的实际问题。
当采用同步解调或相干检测时,接收端需要提供一个与发射端调制载波同频同相的相干载波。
这个相干载波的获取就称为载波恢复,或称为载波同步。
载波恢复的方法通常有两类,一类是在发送信号的同时,在适当的频率上还发送导频信号,实际中这种方法很少采用。
另一类是直接从接收到的信号中提取,可以用平方变换法和COSTAS 环法等。
由于在获得相同的工作性能时,COSTAS 环法的工作频率是平方变换法工作频率的1/2。
因此,COSTAS 环法在实际中更为常用。
其构成原理如图示:设环路的输入信号为 tt m t s t s c PSK ωcos )()()(2==环路锁定时,压控振荡器输出的是与发送信号频率相同相位差为Φ的相干载波,记作 )cos()(φω+=t t u c vco此信号和它的经过相移2π后的正交信号分别在同相支路和正交支路与输入信号相乘,得经低通滤波器后的输出分别为 :由于 和 都包含有调制信号,将它们再相乘可以消除调)i )(0t q (0t 环路锁定时,有0或π,这意味着恢复出的载波可能与理想载波同相,也可能反相。
这种相位关系的不确定性,称为0,π的相位模糊度。
COSTAS 环也可以推广到MPSK的载波提取,具体请参阅相关文献当输入信号为QPSK时,相应的COSTAS环如下:这种方法实现起来比较复杂,实际中一般不采用。
一般采用一种改进型的COSTAS环,该方法可以用数字电路实现,具有比传统COSTAS 环更好的性能。
其原理如下:设接收信号为: )sin()()cos()()(1211φφ+++=wt t s wt t s t s 设参考载波为:sin(+wt d 相位误差: 鉴相并低通滤波后得到:其中把坐标轴化为8个区间:)2φu =2112)sgn()sgn(u u u u −φφφφsin 2)(cos 2)()(cos 2)(sin 2)()(212211t s t s t u t s t s t u −=+=12φφφ−=⎪⎩⎪⎨⎧<−=>+=0,10,00,1)sgn(x x x x当φ位于不同的区间时: Φ 1 2 3 4 5 6 7 8SGNu1 s2(t) s1(t) s1(t) -s2(t)-s2(t)-s1(t)-s1(t) s2(t) SGNu2 s1(t) -s2(t) -s2(t)-s1(t)-s1(t)s2(t) s2(t) s1(t) ⎪⎪⎩⎪⎪⎨⎧−−=区间,在,区间,在,区间,在,区间,在,76cos 32cos 54sin 81sin φφφφφφφφdd d d d k k k k u 其鉴相曲线为:可见改进型的COSTAS 环鉴相曲线为锯齿性,其鉴相灵敏度比传统的COSTAS 环高其,鉴相特性比COSTAS 环好。
Matlab锁相环环路滤波器计算一、概述锁相环(PLL)是一种控制系统,通常用于追踪和锁定输入信号的相位和频率。
锁相环系统由相位比较器、环路滤波器、电压控制振荡器(VCO)和分频器组成。
其中,环路滤波器在锁相环系统中起着至关重要的作用,它用于平滑和调节VCO的控制电压,以确保锁相环系统稳定工作。
二、环路滤波器计算环路滤波器通常由一个低通滤波器构成,用于滤除VCO输出的高频噪声,并且在锁相环系统中起到提高系统稳定性和抑制震荡的作用。
在Matlab中,可以通过以下步骤进行锁相环环路滤波器的计算:1. 确定环路滤波器的类型(如一阶低通滤波器、二阶低通滤波器等)和参数(如截止频率、增益等)。
根据具体的系统要求和性能指标,选择合适的滤波器类型和参数。
2. 在Matlab中,可以使用filter函数来实现环路滤波器的计算。
可以定义滤波器的传递函数H(z),并利用filter函数对输入信号进行滤波处理。
可以利用freqz函数对滤波器的频率响应进行分析和评估。
3. 对于复杂的锁相环系统,可以考虑使用Simulink工具箱进行环路滤波器的建模和仿真。
Simulink提供了丰富的信号处理模块和仿真环境,可以方便地进行锁相环系统的设计、调试和优化。
三、环路滤波器设计注意事项在进行锁相环环路滤波器计算的过程中,需要注意以下几个方面的设计要点:1. 确定滤波器的截止频率和带宽:根据锁相环系统的频率特性和稳定性要求,选择合适的截止频率和带宽,以平衡相位延迟和抖动的性能指标。
2. 考虑滤波器的裙延迟和相位失真:在实际系统设计中,需要考虑滤波器的裙延迟和相位失真对系统稳定性的影响,尽量降低相位延迟和失真,以确保锁相环系统的性能。
3. 考虑VCO的控制电压范围:在设计环路滤波器时,需要考虑VCO的控制电压范围和动态范围,以确保滤波器对VCO控制电压的平滑调节和响应。
4. 考虑环路滤波器对系统稳定性的影响:在整个锁相环系统中,环路滤波器的稳定性和抑制震荡的能力是至关重要的,因此需要对滤波器的频率响应和动态特性进行充分的分析和评估。
为解调抑制载波相位键控(PSK)信号而设计的该相干载波恢复电路,涉及到多种权衡和性能考虑。
虽然有很多的方法是可用的,但本文将把焦点集中在一个多用途PSK解调器上,该解调器不需要改变任何结构,就能适用于不同的调制方案中的不同数据率。
这种解调器对卫星地面站接收来自具有不同有效载荷特性的各种遥感卫星的数据是很理想的。
图1展示了一个PSK解调器的简化结构。
它由一个输入自动增益控制(AGC)放大器、相干载波恢复电路和相干检波器组成。
中频(IF)信号加上噪声经带通滤波AGC放大器放大后,并行加到载波恢复电路和相干数据检波器上。
载波恢复电路再生了加到相干数据检波器的解调相干基准。
相干数据检波器提取了同相(I)和正交(Q)数据流,该数据流经低通滤波后,送到相应的位同步插件和信号调节器(BSSC)单元。
该BSSC单元恢复了用来使数据与符号时钟同步的相干符号时序。
在这种情况下,BSSC单元还提供串行数据和时钟输出。
利用如下的三种载波恢复电路之一,就能满足大多数应用场合:增倍环(像BPSK的平方环)、科斯塔斯(Costas)环和再调制环。
其它类型的载波恢复方案都是这些技术的延伸或改进。
例如,用于MPSK的增倍环(图2)是利用了先用带通滤波器滤除调制的第M阶非线性平方律函数。
一个传统的PLL,工作频率为M×f c,M是谐波乘数,f c是载波频率,锁定在非线性输出的第M谐波分量,而压控振荡器(VOC)除以M,以得到要求到的基准载波频率。
在BPSK Costas环(图3)中,通过将附加噪声的输入压缩载波分别与VCO的输出和经90度相移后的VCO输出信号相乘,对这两个乘积的结果进行滤波,并用这两个滤波后的信号的乘积去控制VCO信号的相位和频率。
当在I和Q臂的滤波器由积分陡落(integrate-and-dump)电路控制时,这个环叫做带有源滤波器的Costas环。
最佳的相位评估器需要在I路滤波器之后的双曲正切[tanh(KE b/N O)]非线性特性。
fs = 50e6; %采样频率
ts = 1/fs;
num = 2e6; %数据长度
SNR = -15;
real_fc = 10000500; %实信号频率
data = sin(2*pi*real_fc*(0:num-1)*ts+pi/4)+sqrt(10^(SNR/10))*randn(1,num); %科斯塔斯环的输入信号
fc = 10000000; %本地频率
n = fs/10000; %累积时间为0.1ms
nn = [0:n-1];
nf = floor(length(data)/n);% 将输入数据分成1ms的多个数据块
wfc = 2*pi*fc; %本地信号
phi_prv = 0;
temp = 0;
frame = 0;
carrier_phase = 0;
phase = 0;
%环路滤波器的参数
c1=1203.9*1.5;
c2=16.22*1.5;
%数据率为4kbps,1bit数据采样点数为12.5K,每5K个点累加一次,相当于4个数据累加清零一次,
%w=0.01*4K,T=1/4K,k0=2*pi*T*fs/2^32,c1=2*0.707*w*T/k0,c2=(wT)^2/k0,
for frame=1:nf
% 产生本地的sin和cos函数
expcol = exp(j*(wfc*ts*nn+phase));
sine = imag(expcol);
cosine = real(expcol);
x = data((1:n)+((frame-1)*n));
%将数据转换到基带
x_sine = x.*sine;
x_cosine = x.*cosine;
Q = sum(x_sine); %经过滤波器
I = sum(x_cosine);
phase_discri(frame) = atan(Q/I); %得到锁相环的输入
%锁相环
dfrq = c1*phase_discri(frame)+temp; %经过环路滤波器temp = temp+c2*phase_discri(frame);
wfc = wfc-dfrq*2*pi; %改变本地频率
dfrq_frame(frame) = wfc;
phase = wfc*ts*n+phase; %得到不同块的相位dphase_frame(frame) = phase;
end
plot(dfrq_frame/(2*pi));
hold on
plot([1:length(dfrq_frame)], real_fc,'r');
legend('锁相环跟踪','实际的载波频率');
grid
mean_freq=mean(dfrq_frame/2/pi)
p=abs(real_fc-mean_freq)/real_fc;。