matlab的costas环载波恢复,环路滤波器系数有推导
一种改进的变步长LMS算法在Costas环中的应用

一种改进的变步长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 滤波器系数

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等。
Matlab实现滤波器[1]
![Matlab实现滤波器[1]](https://img.taocdn.com/s3/m/171654629b6648d7c1c746c9.png)
滤波器设计示例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)。
科斯塔斯环路Matlab

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;
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); %科斯塔斯环的输入信号
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));
%将数据转换到基带
temp = temp+c2*phase_discri(frame);
wfc = wfc-dfrq*2*pi; %改变本地频率
dfrq_frame(frame) = wfc;
phase = wfc*ts*n+phase; %得到不同块的相位
dphase_frame(frame) = phase;
基于COSTAS环的载波恢复技术

证 明此 方法的正确性、 可行性 。 最后对加以改进的 C o s t a s 环进行详细的仿真分析。 通过仿真结果可知 ,
本次设 计 的 C o s t a s 环 能准确 对接 收信 号进 行跟踪 和 同步 。 关键字 : C o s t a S环 ; 载 波 恢复 ; M A T L A B
Ab s t r a c t :T h e a p p l i c a t i o n o f C o s t a s l o o p i n c a r r i e r r e c o v e r y i s s t u d i e d . F i r s t l y ,b a s e d o n t h e b a s i c mo d e l o f C o s t a s , t h e b a s i c p i r n c i p l e o f C o s ts r i n g i s na a l y z e d . T h e r o l e s o f t h e v a r i o u s c o mp o n e n t s o f C o s t a s l o o p a n d t h e d e s i g n o f MAT L AB s i mu l a t i o n re a An a l y z e d a n d s t u d i e d i n d e t a i l . I n o r d e r t o i mp r o v e t h e a c c u r a c y o f t h e d e t e c t i o n , t h e me t h o d o f r e p l a c i n g t h e t r a d i t i o n a l me t h o d o f mu l t i p l i c a t i o n i s r e p l a c e d b y t h e me t h o d o f p h a s e d e t e c t i o n .F i n a l l y ,a d e t a i l e d s i mu l a t i o n a n ly a s i s o f C o s t a s l o o p i s c a r r i e d o u t . T h r o u g h t h e s i mu la t i o n r e s u l t s , t h e d e s i g n o f t h e C o s t a s l o o p c a n a c — c u r a t e l y t r a c k a n d s y n c h r o n i z e t h e r e c e i v e d s i g n a 1 . Ke y wo r d s : Co s t a s l o o p ; c a r r i e r r e c o v e r y ; MAT L AB
二相BPSK(DPSK)调制解调实验

电子科技大学通信学院《通信原理及同步技术系列实验八》二相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滤波器系数方法总结

使用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 环法等。
由于在获得相同的工作性能时,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 环好。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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;。