数字集群MDR中4FSK的matlab仿真

合集下载

FSK的仿真

FSK的仿真

e)
得到解调出来的波形。
MATLAB仿真结果
低通滤波之后的波形
抽样判决波形与基带信号对比
n n
其中 g (t )是脉宽为 Ts 的矩形脉冲表示的NRZ数字基 带信号。 0 ,概率1P 0,概率P n 1,概率 P n 1,概率1P 其中,an 为 an的反码.
a

a

2FSK信号的解调
2FSK信号的接收方法很多,如 鉴频器法 相干法、包 络检波法、过零检测法等。 相干解调法:相干解调在2FSK信号相干解调中,是 将接收信号f(t)与两个可能接收的载波信号作相关。
典型的FSK信号图
频率:f1
频率:f2
FSK的应用
在数字化时代,电脑通信在数据线路(电话线、
网络电缆、光纤或者无线媒介)上进行传输,就是用
FSK调制信号进行的,即把二进制数据转换成FSK 信号传输,反过来又将接收到的FSK信号解调成二 进制数据,并将其转换为用高、低电平所表示的二进 制语言,这是计算机能够直接识别的语言。

低通 f(t)
cosw1t
抽样 判决 低通
s(t)cosw2t来自信 号 调 制 流 程
FSK
产生二进制随机序列作为基带信号st1 将二进制随机序列取反作为基带信号st2 产生两个幅值相等、频率(f1、f2)不 同的载波信号s1和s2。
将基带信号加入载波进行调制 T1=st1.*f1, T2=st2.*f2
FSK的仿真
基于MATLAB的FSK仿真

FSK的基本 概念
FSK:(Frequency-shift keying)-频移键控是利用
载波的频率变化来传递数字信息,是一种数字调制
技术。

基于MATLAB的FSK调制信号发生器的模拟仿真

基于MATLAB的FSK调制信号发生器的模拟仿真

2012年8月第24期科技视界SCIENCE &TECHNOLOGY VISION 科技视界Science &Technology Vision作者简介:葛熠(1991—),男,江苏溧阳人,本科,通信工程专业,研究方向为信息与通信工程。

0引言由于目前大多数信道不适合传输基带信号,为了使基带信号能利用这些信道进行传输,必须使代表信息的原始信号经过一种变换得到另一种新信号,这种变换就是调制。

在数字调制中,频移键控(FSK)[1]方法简单,易于实现,并且解调不须恢复本地载波,可以异步传输,抗噪声和抗衰落性能也较强。

因此,FSK 调制技术在通信行业得到了广泛地应用,并且主要适用于用于低、中速数据传输[2]。

因此本文以通用DSP builder 来实现FSK 调制信号发生器的设计,并借助MATLAB 仿真工具SIMULINK 进行仿真检测。

1MATLAB 和DSP Builder 的简单介绍1.1MATLAB 简介MATLAB 是矩阵实验室的简称,主要包括MATLAB 和Simulink 两大部分。

MATLAB 可以进行矩形运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域[3]。

Simulink 是MATLAB 最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。

在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。

Simulink [4]具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点。

1.2DSP Builder 简介Altera 可编程逻辑器件中的DSP 系统设计需要高级算法和HDL 开发工具。

Altera DSP Builder 将MATLAB 和Simulink 系统级设计工具的算法开发、仿真和验证功能与VHDL 综合、仿真和Altera 开发工具整合在一起,实现了这些工具的集成[5]。

4FSK调制解调器建模仿真与抗噪声性能分析

4FSK调制解调器建模仿真与抗噪声性能分析

4FSK调制解调器建模仿真与抗噪声性能分析作者:张媛媛谢小光来源:《数字技术与应用》2016年第05期摘要:数字调幅(ASM),数字调相(PSK),数字调频(FSK)都属于数字调制技术的其中一种。

FSK又是极其重要的一种方法,在FSK技术中,复杂的数字信号是用不同频率载波传送,并且又控制载波信号的频率。

MATLAB是一种通信系统仿真软件,它功能多样,可以为我们解决很多实际的问题,举例它的功能有数值分析、矩阵运算、信号处理、图像显示等等。

此软件之所以能在通信领域得到大家的肯定,是因为它提供了计算环境,而且此环境不仅高性能而且科学。

老师在教学的过程中喜欢用这个软件来辅助教学,在平时实验过程中也得到广泛应用。

MATLAB不仅在我们现实生活中得到了广泛应用,而且可以大大的拓宽同学们以及研究分析的视野,提高实验室同学们以及老师们设计研究的效率。

关键词:调制 4FSK 解调信号中图分类号:TN763 文献标识码:A 文章编号:1007-9416(2016)05-0000-001 设计目的和意义此次研究性实验,不仅让我对4FSK的调制解调原理与电子信号通信原理有了充分的理解,而且让我对用建模来解决实际问题的方法有了熟悉;并且此次实验将我们平时所学的理论知识与实际问题相结合,极大的提高了我自己的动手创新能力。

2 设计原理4FSK 调制算法分析:(1)奇位、偶位串并转换这种方法,适用于实验中输入的二进制序列。

(2)二进制的0、1序列,需要用到DMR标准中的符号和比特的对应关系,才能映射为相应的四电平符号流。

(3)符号流怎么得到输入调制信号m(n)呢?要把其中的每个符号插入8个数值点,然后进行平滑处理。

(4)抑制邻道干扰和接收机抑制噪声等功能都可以通过方根升余弦滤波器来实现。

一系列间隔为208,33ms(1/4800s)脉冲作为其输入,奈奎斯特升余弦滤波器的分割应该怎么定义呢?来自根升余弦滤波器的频率响应的定义。

(5)FM调制能将m(n)输入频率转化为4FSK调制输出信号。

数字的集群MDR中4FSK地matlab仿真

数字的集群MDR中4FSK地matlab仿真

1.基本概念物理层的定义h=0.27;T是采样周期,1/4800秒。

而D=3h/2T=1.944kHz。

D的物理含义是Maximum deviation,最大频偏。

4FSK是恒包络调制,所以在终端功率上,应该比较省电。

4进制的随机信号产生,并把信号强度调整到规范规定的3,1,-1,-3:M=4;Ts=1/4800; % 4.8K的波特率;x=randint(1000,1,M);x=x.*2-3; %调整到正确的symbol;plot(x);部分信号绘制如下:由于是随机信号,所以是宽带信号。

频谱如下。

只绘制到信号的采样频率,绘制频谱:lx=length(x);Freqs=1/Ts;freq=[-Freqs/2:Freqs/lx:Freqs/2-Freqs/lx];S=fftshift(abs(fft(x)));Sdb=10*log10(S);plot(freq,Sdb);:进行基带滤波,滤波后的信号和频谱为下图。

注意信号带宽被限制为根升余弦滤波的3dB 带宽以内。

这个带宽|cos(f*pi/1920)|=1/2,f>1920,得到f=640+1920=2560Hz。

这是一半带宽:% 滤波器的基本参数:sqrt,0.2。

Fs至少要是2Fd,delay用默认的3。

y=rcosflt(x,1,2,'fir/sqrt',0.2,3,0);%绘制频谱:ly=length(y);Freqs=2/Ts;freq=[-Freqs/2:Freqs/ly:Freqs/2-Freqs/ly];Sy=fftshift(abs(fft(y)));Sdby=10*log10(Sy);figure;plot(freq,Sdby);接下去,对4FSK调制进行仿真。

2.4FSK调制仿真4FSK有3种方式,方式1,用前面余弦滤波后的基带数据进行频率振荡器的控制。

这种方式实现容易,但是频率的稳定性差。

方式2,键控法。

4PSK、4ASK以及4FSK的MATLAB仿真

4PSK、4ASK以及4FSK的MATLAB仿真

4PSK、4ASK以及4FSK的MATLAB仿真一、实验目的:学会利用MATLAB软件进行4PSK、4ASK和4FSK调制的仿真。

通过实验提高学生实际动手能力和编程能力,为日后从事通信工作奠定良好的基础。

二、实验内容:利用MATLAB软件编写程序,画出4PSK 、4ASK和4FSK图形,进一步了解4PSK、4ASK和4FSK调制的原理。

(1)设二进制数字序列为1 1 0 0 1 1 0 0 1 0 0 1 1 1,编程产生4PSK调制信号波形。

(2)设二进制数字序列为1 1 0 0 1 1 0 0 1 0 0 1 1 1,编程产生4ASK调制信号波形。

(3)设二进制数字序列为1 1 0 0 1 1 0 0 1 0 0 1 1 1,编程产生4FSK调制信号波形。

三、程序和实验结果:f=100;t=0:2*pi/99:2*pi;s=[1 1 0 0 1 1 0 0 1 0 0 1 1 1];m1=[];c1=[];b1=[];for i=1;2;length(s)/2if (s(i)==0&&s(i+1)==0)ak(i)=0;bk(i)=0;elseif (s(i)==0&&s(i+1)==1)ak(i)=0 ;bk(i)=1;elseif(s(i)==1&&s(i+1)==0)ak(i)=1;bk(i)=0;elseak(i)=1;bk(i)=1;endendfor i=1:length(s)/2if((ak(i)==0)&&(bk(i)==0))m=ones(1,100);c=sin(f*t);b=zeros(1,100);elseif((ak(i)==0)&&(bk(i)==1))m=ones(1,100);c=sin(f*t+pi/2);b=ones(1,100);elseif((ak(i)==1)&&(bk(i)==0))m=ones(1,100);c=sin(f*t+pi);b=2*ones(1,100);elsem=ones(1,100);c=sin(f*t+3/2*pi);b=3*ones(1,100);endm1=[m1 m];c1=[c1 c];b1=[b1 b];endpsk=c1.*m1;subplot(2,1,1);plot(b1)title('原始信号')axis([0 50*length(s) -0.5 4]); subplot(2,1,2);plot(psk)title('4PSK信号')axis([0 50*length(s) -2 2]); xlabel('周万成')(2)4ASK程序f=100;t=0:2*pi/99:2*pi;s=[1 1 0 0 1 1 0 0 1 0 0 1 1 1]; m1=[];c1=[];for i=1;2;length(s)/2if (s(i)==0&&s(i+1)==0)ak(i)=0;bk(i)=0;elseif (s(i)==0&&s(i+1)==1) ak(i)=0 ;bk(i)=1;elseif(s(i)==1&&s(i+1)==0) ak(i)=1;bk(i)=0;elseak(i)=1;bk(i)=1;endendfor i=1:length(s)/2if((ak(i)==0)&&(bk(i)==0))m=zeros(1,100);elseif((ak(i)==0)&&(bk(i)==1)) m=ones(1,100);elseif((ak(i)==1)&&(bk(i)==0)) m=2*ones(1,100);elsem=3*ones(1,100);endc=sin(f*t);m1=[m1 m];c1=[c1 c];endask=c1.*m1;subplot(2,1,1);plot(m1)title('原始信号')axis([0 50*length(s) -0.5 4]); subplot(2,1,2);plot(ask)title('4ASK信号')axis([0 50*length(s) -4 4]); xlabel('周万成')(3)4FSK程序f1=1;f2=2;f3=3;f4=4;t=0:2*pi/99:2*pi;s=[1 1 0 0 1 1 0 0 1 0 0 1 1 1]; m1=[];c1=[];b1=[];for i=1;2;length(s)/2if (s(i)==0&&s(i+1)==0)ak(i)=0;bk(i)=0;elseif (s(i)==0&&s(i+1)==1)ak(i)=0 ;bk(i)=1;elseif(s(i)==1&&s(i+1)==0)ak(i)=1;bk(i)=0;elseak(i)=1;bk(i)=1;endfor i=1:length(s)/2if((ak(i)==0)&&(bk(i)==0))m=ones(1,100);c=sin(f1*t);b=zeros(1,100);elseif((ak(i)==0)&&(bk(i)==1)) m=ones(1,100);c=sin(f2*t);b=ones(1,100);elseif((ak(i)==1)&&(bk(i)==0)) m=ones(1,100);c=sin(f3*t);b=2*ones(1,100);elsem=ones(1,100);c=sin(f4*t);b=3*ones(1,100);endm1=[m1 m];c1=[c1 c];b1=[b1 b];endfsk=c1.*m1;subplot(2,1,1);plot(b1)title('原始信号')axis([0 50*length(s) -0.5 4]); subplot(2,1,2);plot(fsk)title('4FSK信号')axis([0 50*length(s) -2 2]); xlabel('周万成')四、实验结果以及分析:(1)结果图1图2图3(2)分析在C语言编程中对一个数组可以采用循环的方式对其赋值,所以此处利用循环对ak[]数组,bk[]数组进行赋值。

基于Matlab的多进制数字调制仿真

基于Matlab的多进制数字调制仿真

l巨誓盈囝E■堡笠i墨王坚垒!!璺!笪量道型鏊呈迥剑堕墓基于Matlab的多进制数字调制仿真程铃(南京信息工程大学电子与信息工程学院江苏南京210044)摘要:分析当前通信原理课程实验教学存在的问题,提出采用Matlab仿真弥补实验室实验设备等的不足。

给出利用Matlab函数实现多进制数字调制(包括4ASK,4FSK和4PSK)的仿真实例,将抽象的原理形象化。

给出部分仿真程序,井对仿真结果进行分析和讨论,仿真结果与理论结果一致。

这里将Matlab仿真用于多进制数字通信,解决了当前实验设备不能做此类实验的尴尬境地,为相关领域的研究指出了一个实验方法,是实验教学改革进程中的有益尝试。

关键词:Matlab;通信原理;仿真实例;多进制数字调制中图分类号:TN914.3文献标识码:A文章编号:1004—373X(2009)22—060一03SimulationofMulti—decimalDigitiaiModulationBasedonMatlabCHENGLing(CollegeofElectronic8LInformationEngineering.NanjingUniversityofInformationScience8LTechnology,Nanjing.210044,China)Abstract:Theproblemsofcommunicationprincipleexperimentalteachinganalyzed,andMatlabsimulationisadoptedtomakeupthelaboratoryisputforward.Somesimulationexamplesaboutmulti—decimaldigitialmodulationgiven,including4ASK,4FSKand4PSK.Moreover,itenablestheabstractprinciplevisualization.Somesimulationproceduredescribedandthesimulationresultsanalyzed.Itisindicatedthatthesimulationresultsidenticaltheoreticalsuits.Matlabisappliedmulti—decimaldigitialcommunicationandresolutionofsomeexperimentsbemadewithcurrentexperimentalequipments.Anexperimentapproachisproposedforsomerelatedareas.Itisalsobeneficialtrialinexperimentalteachingreform.Keywords:Matlab;communicationprinciple;simulation#multi—decimaldigitialmodulationMatlab与其他计算机语言相比,其特点是简洁和智能化,适应科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高[I],已成为全世界科学工作者共同的学术交流工具以及系统仿真界事实上的工业标准。

FSK课程设计基于MATLAB来实现调制与解调的仿真

FSK课程设计基于MATLAB来实现调制与解调的仿真

摘要在通信过程中,调制与解调占有十分重要的地位。

假如没有调制与解调技术,就没有通信,没有广播和电视,也没有今天的 BP 寻呼、手持电话、传真、电脑通信及Internet 国际互联网。

本设计是基于MATLAB来实现调制与解调的仿真。

主要设计思想是利用MATLAB这个强大的数学软件工具方便快捷灵活的功能实现模拟调制解调中的幅度调制和角度调制及数字调制解调中的FSK和DPSK的调制解调设计。

首先,先介绍这几种模拟和数字调制解调的产生、频谱、解调等过程及原理,接着就编写相应的m文件先后对模拟调制中的幅度调制和角度调制里面的频率调制的进行仿真,并对仿真得出调试及仿真结果并进行分析。

FM调制的时候是让基带信号去控制振荡电路的频率,AM是用基带信号去控制载波的幅度。

无论哪一种调制方式,采用相干解调的性能优于非相干解调的性能。

而且DPS K可以消除PSK的“倒 ”现象。

DPSK的系统性能要优于FSK系统。

相干系统要求本地载波与发送信号之间保持同步,否则误码率增加。

因此,在高质量的数字通信系统中多采用相干解调,而对抗噪声性能要求不高的就采用较为简单的非相干解调。

关键词:MATLAB、调制解调、FSK目录1 概述 (1)1.1MATLAB软件简介 (1)1.2 FSK简介 (1)1.3课题发展的现状 (2)2 调制解调原理 (3)2.1 频移键控(FSK) (3)2.2 . FSK的数学分析 (3)2.2.1 FSK的时域分析 (3)2.2.3.FSK信号的调制方法 (4)2.2.4.二进制移频键控(2FSK)系统的总误码率 (5)3 调制与解调的MATLAB仿真实现 (7)3.1 FSK的调制解调的实现 (7)3.1.1 FSK调制实现 (7)3.2.2 FSK相干解调实现 (10)4 总结 (11)参考文献 (13)致谢 (14)附录:FSK调制解调程序清单 (15)1 概述1.1MATLAB软件简介MATLAB是由MATH WORKS公司于1984年推出的一种面向科学与工程的计算软件,通过MATLAB和相关工具箱,工程师、科研人员、数学家和教育工作者可以在统一的平台下完成相应的科学计算工作。

matlab的仿真流程总结

matlab的仿真流程总结

matlab的仿真流程总结下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 问题定义与分析明确仿真的目的和要解决的问题。

确定系统的输入、输出和关键参数。

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

1.基本概念物理层的定义h=0.27;T是采样周期,1/4800秒。

而D=3h/2T=1.944kHz。

D的物理含义是Maximum deviation,最大频偏。

4FSK是恒包络调制,所以在终端功率上,应该比较省电。

4进制的随机信号产生,并把信号强度调整到规范规定的3,1,-1,-3:M=4;Ts=1/4800; % 4.8K的波特率;x=randint(1000,1,M);x=x.*2-3; %调整到正确的symbol;plot(x);部分信号绘制如下:由于是随机信号,所以是宽带信号。

频谱如下。

只绘制到信号的采样频率,绘制频谱:lx=length(x);Freqs=1/Ts;freq=[-Freqs/2:Freqs/lx:Freqs/2-Freqs/lx];S=fftshift(abs(fft(x)));Sdb=10*log10(S);plot(freq,Sdb);:进行基带滤波,滤波后的信号和频谱为下图。

注意信号带宽被限制为根升余弦滤波的3dB 带宽以内。

这个带宽|cos(f*pi/1920)|=1/2,f>1920,得到f=640+1920=2560Hz。

这是一半带宽:% 滤波器的基本参数:sqrt,0.2。

Fs至少要是2Fd,delay用默认的3。

y=rcosflt(x,1,2,'fir/sqrt',0.2,3,0);%绘制频谱:ly=length(y);Freqs=2/Ts;freq=[-Freqs/2:Freqs/ly:Freqs/2-Freqs/ly];Sy=fftshift(abs(fft(y)));Sdby=10*log10(Sy);figure;plot(freq,Sdby);接下去,对4FSK调制进行仿真。

2.4FSK调制仿真4FSK有3种方式,方式1,用前面余弦滤波后的基带数据进行频率振荡器的控制。

这种方式实现容易,但是频率的稳定性差。

方式2,键控法。

键控分频器的分频比,以控制2种不同分频脉冲的输出。

在经过整形,就可以得到FSK信号。

这种在DSP的实现中常用到。

方法3,用fskmod函数。

不管用何种方式,DMR规范中,对4FSK的调制的结果给出了要求,要求在给定序列下,输出的调制信号,应该和1.2KHz的sine信号,通过最大偏差2.794KHz的FM调制器输出的信号一致。

方法1:fmmod。

Fmmod是模拟调制函数。

它以Fs采样频率来看待输入和输出的数据。

DMR系统中,基带信号的带宽小于2*1944=3888Hz。

Fc我们可以设计的低一些,以降低采样频率,减少计算量。

这样可以设计Fc=15kHz。

足够高了。

这样,为了让输出的图像细致些,我们设计采样频率Fs=150KHz。

这个精度应该购了。

定好了这个调后,回过头看rcosflt函数。

这个函数中我们感兴趣的就是它的Fs设计。

因为是数字信号,所以rcosflt的Fd可以是1,这个1其实代表了1/Ts=4800Hz。

我们的目的是让rcosflt的输出的数据能够和fmmod的Fs=150KHz的采样速率匹配上,于是不难算出,每个输入symbol相当于被采样15k/4800个数据点,也就是31.25个点。

取整后,是32个点。

反过来,调整采样频率成为32*4800=153.6KHz。

既然采样点数已经确定是32,那么rcosflt的Fs也就确定了,调整为32。

所以,matlab代码如下(减少些symbol数目,为20个,便于计算):M=4;Ts=1/4800; % 4.8K的波特率;x=randint(200,1,M);x=x.*2-3; %调整到正确的symbol;% 滤波器的基本参数:sqrt,0.2。

Fs至少要是2Fd,取32,delay用默认的3。

y=rcosflt(x,1,32,'fir/sqrt',0.2,3,0); % 过渡补0后,滤波器增益会下降。

y=(3/max(y)).*y; % 调整滤波器增益,恢复信号强度。

% 根升余弦滤波后,输出的就是模拟的基带信号了。

% 模拟FM调制。

Fc=15KHz, Fs=153.6KHz, freqdev=3888Hz;(因为滤波后,y最大值就在1左右)Fc=15000;Fs=153600;freqdev= 648;ym=fmmod(y,Fc,Fs,freqdev);% 绘制频谱lx=length(ym);Freqs=Fs;freq=[-Freqs/2:Freqs/lx:Freqs/2-Freqs/lx];S=fftshift(abs(fft(ym)));Sdb=10*log10(S);plot(freq,Sdb);用上面的方法,根据标准输入,可以看到输出的信号频谱为:M=4;Ts=1/4800; % 4.8K的波特率;for i =1:200if(mod(i,4)<2) x(i)= 3;else x(i)=-3;endend% 滤波器的基本参数:sqrt,0.2。

Fs至少要是2Fd,取32,delay用默认的3。

y=rcosflt(x,1,32,'fir/sqrt',0.2,3,0); % 过渡补0后,滤波器增益会下降。

y=(3/max(y)).*y; % 调整滤波器增益,恢复信号强度。

% 模拟FM调制。

Fc=15KHz, Fs=153.6KHz, freqdev=3888Hz;(因为滤波后,y最大值就在1左右)Fc=15000;Fs=153600;freqdev= 648;ym=fmmod(y,Fc,Fs,freqdev);% 绘制频谱lx=length(ym);Freqs=Fs;freq=[-Freqs/2:Freqs/lx:Freqs/2-Freqs/lx];S=fftshift(abs(fft(ym)));Sdb=10*log10(S);plot(freq,Sdb);方法2:直接写函数其实就是模拟FM方法,对输入的信号进行积分。

略。

方法3:Fskmodfskmod(x,M,freq_sep,nsamp)注意,这个函数是有问题的。

我对它进行了修改。

对fskmod.m的代码中修改一行如下:phaseIncr = (0:nSamp-1)' * (-(M-1):2:(M-1)) * 2*pi * freq_sep/2 * samptime/nSamp;对fskdemod的代码修改一行如下:t = [0 : 1/(nSamp*Fs) : 1/Fs - 1/(nSamp*Fs)]';另外注意,在fskmod这个函数中,已经把x的数据调整到-(M-1):2:(M-1)来进行处理了。

更新后的函数我重新命令为gyzfskmod和gyzfskdemod。

另外,这个函数已经把输入的0~M-1调整为-(M-1):2:(M-1)了。

符合DMR的需求。

思路还是:通过gyzfskmod函数得到输出的IQ信号。

对IQ信号进行根升余弦滤波;进行载波调制。

所以过程如下:M=4;Ts=1/4800; % 4.8K的波特率;% x=randint(100,1,M);x=[0 1 2 3 2 1 0 1 2 3 2 1 0 ];Num=length(x);freqsep=0.27;nsamp=10;Fs=1;% Fc=nsamp*1/Ts; % 载波频率Fc=10000; % 载波频率y=gyzfskmod(x,M,freqsep,nsamp,Fs);注意,这里调制出来的y信号,就是复数表示的模拟IQ信号。

对于模拟的IQ信号,不能够直接用数字滤波器rcosflt。

正确的如下:% 设计滤波器,用filterbuilder的Nyquist类型。

% 输出信号的Fs是nsamp/Ts。

所以Band=nsamp/2;% Frequency unit我设置为归一化为1;% Transition width是0.2filterbuilder%输出Hnyq。

这个滤波器的时延没有直接的控制参数。

通过解调,可以看到大概时延了2个symbol。

% 输出滤波yf=filter(Hnyq,y);% 输入滤波yfin=filter(Hnyq,y);% 解调Z=gyzfskdemod(yfin,M,freqsep,nsamp);% 输出波形绘图tlen=length(x)*Ts; % 秒% 时间分片t=[0:tlen/length(yf):tlen-tlen/length(yf)];% 计算载波ccos=cos(2*pi*Fc.*t);csin=sin(2*pi*Fc.*t);% 计算输出波形S=reshape(real(yf),1,length(yf)).*ccos-reshape(imag(yf),1,length(yf)).*csin;plot(S);% 绘制频谱figure;p=real(S);lx=length(p);Freqs=nsamp/Ts;freq=[-Freqs/2:Freqs/lx:Freqs/2-Freqs/lx];St=fftshift(abs(fft(p)));Sdb=10*log10(St);plot(freq,Sdb);020406080100120140-1.5-1-0.50.511.5。

相关文档
最新文档